"tušil bych z křišťálové koule, že ta sekvence 1010 nebo 0101 bude sloužit k synchronizaci ... budeš si muset zmeřit délku těch obdelníků, dle toho si sesynchronizovat přijímač ... ale fakt střílím od boku"
Ano, první 4 bity (znaky) jsou s největší pravděpodobností synchronizační, nikdy se neměmí a jsou vždy na začátku každé sekvence a další čtyři bity jsou polohové po 25 st. Jejich význam znám - tabulku jsem si udělal dekódováním z obrazu na osciloskopu aa známé polohy čidla. Nic proto nepotřebuji dekódovat, pouze nakopnout jak načíst tato sériová data, která přijdou co 1/2 sekundy na nějaký pin Arduina. Nic víc.
Vím, že musím použít přerušení, ale co dále?
Délka dlouhého pulzu je 1ms HIGH, mezera 0,5ms LOW
Krátký pulz má délku 0,5ms HIGH+0,5ms LOW a opět mezera 0,5ms LOW.
Délka jednoho znaku (1ms) včetně mezery (0,5ms) je konstantní, vždy 1,5ms
Délka celeho datagramu je vždy 11,5ms
Doba opakování datagramu je 500ms
Tj. potřebuji načíst vždy 4 bity za synchronizačními 1010 (nebo 0101). Klidně může být výstupem Byte, ve kterém bude horní nibble vždy 0xA nebo 0x5 a spodní je hodnota polohy. Nepotřebuji znát více.
Nic více. Pouze to neumím naprogramovat, změřit ano
