User Manual

94
Synchronizace činnosti ACS se řídí funkcí task_ACS(), která se musí opakovaně volat z hlavní
smyčky pro zajištění pracování příjmu IR signálů a dále pro správu přenosu přes IRCOMM.
Datové pakety RC5 tvoří adresa zařízení, kód tlačítka a přepínací bit. Pěti bitová adresa
zařízení říká, které zařízení se ovlá například televize, video, Hi-Fi systém atd. Pro naši
aplikaci se může adresa zařízení použít pro adresování několika jednotlivých robotů. Šest bitů
kódu tlačítka odpovídá tlačítku stisknutému na lkovém ovladači, ale může dobře posloužit
k přenosu dalších údajů. Umňuje sice přenos pouze šesti bitů, ale 8-bitová data lze předávat
dvěma samostatnými přenosy nebo se dva bity použijí k adresaci či přepínání významu.
Standardní dálkové ovladače používají přepínací bit k rozlišení trvalého stisknutí nebo
opakovaného stisknutí stejného tlačítka. My ak využíváme přepínací bit pro další funkčnost
komunikace mezi roboty.
Dato paket RC5 se může vyslat sledující funkcí:
void IRCOMM_sendRC5(uint8_t adr, uint8_t data)
ve které adr odpoví adrese zařízení a data je kód tlačítka respektive hodnota dat. Parametr
adr vám umožní nastavit přepínací bit na nejvýznamnějším bitu (MSB) sledující aplikací
konstanty TOGGLEBIT:
IRCOMM_sendRC5(12 | TOGGLEBIT, 40);
Tento příkaz vyšle dato paket RC5 do zařízení s adresou 12, aktivuje přepínací bit a hodnota
dat je 40.
IRCOMM_sendRC5(12, 40);
Toto je stej situace bez aktivace přepínacího bitu.
Stejně jako u razníků a ACS, je mož příjem RC5 dat řešit jako obsluhu události. Jakmile se
přijmou RC5 data, bude obsluha události automaticky volat funkci task_ACS(). To například
umňuje sestavení programu, který otočí robot doleva při příjmu kódu 4 a otočení doprava při
kódu 6...
Jeden ukázko program nabízí tuto funkčnost: veškeré pohyby se ovládají pomocí IR
lkového ovladače.
Předepsaný tvar obsluhy události musí odpovídat:
void receiveRC5Data(RC5data_t rc5data)
ale funkci můžete samozřejmě libovolně přejmenovat.
void IRCOMM_setRC5DataReadyHandler(void (*rc5Handler)(RC5data_t))
Tato funkce umňuje registraci předem definované obsluhy události tj.:
IRCOMM_setRC5DataReadyHandler(receiveRC5Data);
Po této definici se bude příslušná funkce volat při kažm příjmu platného kódu RC5.
Další možnosti: RC5data_t je zvláštní, předem definovaný dato typ, který obsahuje adresu
zařízení typu RC5, přepínací bit a kód tlačítka (respektive datovou hodnotu). Tato data můžete
použít stejně jako ostatní ordinální proměnné pomocí sledujících identifikátorů:
rc5data.device, rc5data.toggle_bit, rc5data.key_code