Nepoužíváš konzistentně indexy do pole - na jednom místě jsi to změnil, na druhém ti to zůstalo.
Proč čekáš 2sec když máš (spíš chceš mít) periodu vzorkování 1 ms?
Proč jsi nepřesunul výpočet délky trvání do příslušné větve podmínky if? RTakhle ti to bude vždycky při přechodu 1 -> 0 vypisovat záporné číslo...
Nerozumím úplně přesně tomu proč jsi volání nanosleep vložil zrovna tam, kam jsi ho vložil. A vlastně proč ho tam vlastně máš.
K té periodě vzorkování - i kdybys vyhodil ty 2 sec, nebude ti to sedět na 1 msec. Měl bys změřit trvání aktivního kódu a čekat 1 ms - doba_provádění_kódu. Hlavně jestli to provozuješ na nějakém málo výkonném industrial embedded systému.
Ale dělej jak sám myslíš.
index pole jsem tam nechal omylem, jinak to mam správně, ale to je fuk.
Tak vzorkovačka je 1ms a ten výpis co to vlákno dává je nečitelný při téhle vzorkovačce, proto jsem tam nacpal nanosleep..
Snažil jsem se udělat výpis jen při změně stavu(jakmile by byla 1 na vstupu tak by to vypsalo rozdíl času, ale to se mi prostě nepovedlo, byť to bylo logicky správně přes if..)
Což to já přehodim, ještě to nějak upravim.
No, provozuje se to na prototypu industrial embedded počítači od Axiomteku. Nikdo s tím přede mnou nedělala a neví jak se to chová.
Já jako junior vývojář jsem tohle dostal za úkol, celý kód bych psal jinak a déle, tohle je prostě rychlozkvašená prasečina, kterou bych rád ve středu odevzdal, aby bylo vidět, že to funguje...
[/quote]
Inu, proč ne.
Ale stejně mi pořád vrtá hlavou co to vlastně má dělat a k čemu to je. A proč to logování třeba nemůže být do souboru. A proč nevadí že to nezkoušíš se skutečným vzorkovacím kmitočtem, atd. Ale to už je tvůj boj.