RF komunikace mezi 2 AVR

Už se to tady probíralo. Z přijímače pořád nějaká data lezou. Je to “přeložený” šum z okolí. Jakmile zapneš vysílač, tak signál vysílače tenhle šum potlačí a dostaneš na vstupu data, která jdou z vysílače. Jakmile vysílač vypneš, postupně se na lince opět objeví šum. Dělám to tak, že přijímám data trvale, až dostanu posloupnost 0x00 (ve starších diskuzích najdeš 0x55). Jakmile je jich alespoň 10 za sebou, vím, že můžu začít přijímat data. První byte označuje začátek dat = startovací byte (například 0xDD) a za ním následují data. Pokud první byte není startovací byte (není 0xDD), tak sekvenci zahazuju a čekám na další posloupnost minimálně 10x 0x00 a nový startovací byte. Vysílat 0x00 jako preamble má několik výhod. Jednak není mezi bity žádná sestupná hrana (kromě start bitu), tudíž se lépe synchronizuje přijímač s vysílačem a jedna lze z délky log. 0 na vstupu určit rychlost přenosu, pokud není pevně daná. Pokud je pak možno, tak vysílač je nastaven na 8N2, přijímač na 8N1. Tím dochází v podstatě k automatické synchronizaci přijímače s vysílačem během celého přenosu dat a není tím pádem nutné dělat synchronizační mezery mezi jednotlivými byty nebo není nutné dlouhé přenosy dělit na kratší pakety. Není ani nutné použití krystalů.

Data tím pádem musíš trvale přijímat, analyzovat a zahazovat nebo zpracovávat podle toho, co dorazilo.