User Manual
84
getStopwatchX()
Makro vrací obsah čítače stopek X.
Příklady:
if(getStopwatch2() > 1000) { ... }
if(getStopwatch6() > 12324) { ... }
4.6.4. Stavové LED a nárazníky
void setLEDs(uint8_t leds)
Tato funkce umožňuje ovládání 6 stavových LED. Místo obvyklých dekadických čísel se mohou
jednoduše používat binární konstanty. Binární konstanty jsou uváděny ve tvaru: 0bxxxxxx. LED
potřebují binární číslou pouze se 6 číslicemi.
Příklady:
setLEDs(0b000000); // zhasne vsechny LED
setLEDs(0b000001); // blikne StatusLED1 a vypne vsechny ostatni LED
setLEDs(0b000010); // StatusLED2
setLEDs(0b000100); // StatusLED3
setLEDs(0b001010); // StatusLED4 a StatusLED2
setLEDs(0b010111); // StatusLED5, StatusLED3, StatusLED2 a StatusLED1
setLEDs(0b100000); // StatusLED6
Alternativní možnosti jsou:
statusLEDs.LED5 = TRUE; // blikne LED5 v registru LED
statusLEDs.LED2 = FALSE; // zhasne LED2 v registru LED
updateStatusLEDs(); // provede zmeny
Zde se blikne StatusLED5 a zhasne StatusLED2, ale nezmění se stav ostatních LED! Na rozdíl
od jiných částí programu je toto řízení LED jednodušší.
Pozor: statusLEDs.LED5 = TRUE; NEROZSVÍTÍ přímo LED5! Tento příkaz pouze nastaví
příslušný bit v proměnné. LED5 bude svítit po provedení funkce updateStatusLEDs();!
Dva vývody portu s LED se dále používají ke kontrole stavu nárazníků. V případě čtení stavu
nárazníků mikroprocesor rychle přepne směr vývodů do vstupního režimu a zkontroluje, zda
jsou sepnuté připojené mikrospínače. Pro kontrolu nárazníků poskytujeme dvě funkce. První
funkce:
uint8_t getBumperLeft(void)
bude číst stav levého nárazníku, zatímco:
uint8_t getBumperRight(void)
bude číst spínač pravého nárazníku.
Mikroprocesor zpracuje tyto funkce velmi rychle, tak ani nepostřehnete, že LED zhasly,
přestože je několik instrukčních cyklů Pin nastaven na vstup. Samozřejmě nemůžete tuto funkci
volat opakovaně bez vložení několika milisekundového zpoždění.
Vývody portu s LED by měly být ovládány pouze pomocí předem definovaných funkcí! Porty
s nárazníky jsou chráněny rezistory, ale pokud se vývody nastaví na výstup s nízkou úrovní a
zároveň se sepne spínač nárazníku, poteče do portu větší proud. Takový proud je samozřejmě
nežádoucí (obvody AVE mají třístavové výstupy – při nastavení do plovoucího stavu LED
zhasnou).