Pretpostavimo da se PIC nalazi u stanju čekanja i da nailazi pogrešna poruka. Pretpostavimo da je poruka od 3B i nema nikakav overhed da bi bilo lakše. Neka je komanda koju očekujemo 123, a primaš 124.
Primaš prvi bajt, porediš ga sa prvim bajtom poruke koju očekuješ, 1 i 1 su identični i čekaš drugi bajt. Primaš drugi bajt i porediš sa drugim koji očekuješ 2=2 OK. Primaš treći bajt i porediš ga sa trećim koji očekuješ 4=3 NIJE OK. Ovde provaljuješ da to nije očekivana komanda i restartuješ proces primanja, odnosno čekaš početak sledeće komande.
Ako ti stigne 123 komanda u poslednjem poređenju će biti 3=3 i tada vidiš da je primljena komanda koja je očekivana i odradiš akciju koju hoćeš.
Ako radiš u asembleru onda ovako. U m_Novi se nalazi primljeni bajt, a u m_KomandaB0 očekivani.
Code:
movf m_Novi, w
xorwf m_KomandaB0, w
btfsc STATUS, Z
goto Isti_Su
Nisu_Isti
....
...
..
Ovako radiš za svaki bajt.
Pitaj šta ti nije jasno.
[Ovu poruku je menjao lord Vader dana 27.11.2005. u 21:03 GMT+1]
2 sxy 4 ma shirt