Synchronizace casu rubrika: Programování: Jiné
Cau,
resim takovy problem a vubec netusim jak to vyresit. Predstavte si dve zarizeni, napriklad PC a arduino. Spojene je to seriovou linkou pomoci BT. Delay komunikace pres BT je promenlive a od 0.1ms do 150ms, A ted potrebuji synchronizovat cas. Napriklad PC program posle pozadavek na zacatek pocitani casu, ale nez dojde do arduina tak to nejakou dobu trva, ale ja potrebuju aby zacalo pocitat od doby kdy to spustil PC program.
1) cas 0, PC posila pozadavek na zacatek pocitani
2) cas 0 + bt delay, arduino zacina pocitat
3) arduino odesila cas 0 + bt delay + mereny usek
Lze nejak v arduinu spocitat kolik byl BT delay? Me totiz vubec nic nenapada :(.
Jako nejjednodussi reseni bych zmenil problem tak, aby se nevyskytoval, takze bych vse preved na Arduino, tudiz i ten startovaci signal (sirena), ktery by byl jen komandovan PC. Pak Arduino bude mit presny udaj o startu i cili a BT komunikace je jen pro zobrazeni a logovani do PC.
Dalsi moznosti je, pripojit k Arduinu modul RTC a pred zacatkem zavodu synchronizovat cas na PC a Arduinu (ne pres BT). Pak muze Arduino ziskat impulz, ze zavod zacal a vratit casovou znacku kdy ji dostal + poslat casove znacky a doby behu ucastniku. Z toho na PC lze odvodit latenci kazdeho udaje a dale s ni pracovat.
Pro zobrazení všech 7 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře