User Manual

84
getStopwatchX()
Makro vrací obsah čítače stopek X.
Příklady:
if(getStopwatch2() > 1000) { ... }
if(getStopwatch6() > 12324) { ... }
4.6.4. Stavo LED a nárazníky
void setLEDs(uint8_t leds)
Tato funkce umňuje ovládání 6 stavových LED. Místo obvyklých dekadických čísel se mohou
jednoduše používat binární konstanty. Birní konstanty jsou uváděny ve tvaru: 0bxxxxxx. LED
potřebují birní čí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 čás 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
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 razníků poskytujeme dvě funkce. První
funkce:
uint8_t getBumperLeft(void)
bude číst stav levého razníku, zatímco:
uint8_t getBumperRight(void)
bude číst spínač pravého 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 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. Tako proud je samozřejmě
nežádoucí (obvody AVE mají třístavové výstupy při nastavení do plovoucího stavu LED
zhasnou).