<< Využití LCD displeje | NXC programování | Programování zvuku >>
Vlastnosti tlačítek - Buttons
- tlačítka na programovatelné kostce mohou pracovat ve dvou režimech
Režim ovládání
- ovládání a nastavení kostky
- využití menu na displeji pro volbu funkcí kostky
Režim programového řízení
- ovládání a řízení běhu programu
- stisk libovolného tlačítka je možné v programu testovat a vyhodnotit
Identifikace tlačítek
Tlačítko | Číslo | Číselný název | Popisný název |
Konec | 0 | BTN1 | BTNEXIT |
Vpravo | 1 | BTN2 | BTNLEFT |
Vlevo | 2 | BTN3 | BTNRIGHT |
Enter | 3 | BTN4 | BTNCENTER |
Stavy tlačítek
Stav | Definovaná konstanta |
Stisknuto | BTNSTATE_PRESSED_EV |
Stisknuto déle | BTNSTATE_LONG_PRESSED_EV |
Uvolněno krátce | BTNSTATE_SHORT_RELEASED_EV |
Uvolněno déle | BTNSTATE_LONG_RELEASED_EV |
- krátký stisk/uvolnění - do 2s
- dlouhý stisk/uvolnění - přes 2s
Zjištění stavu tlačítka
Nastavení stavu tlačítka
Ukázka využití tlačítek v NXC programu
Čítač stisků
task main(){
int pocet = 0; // deklarace proměnné pro počet stisků
TextOut(5, LCD_LINE1, "Aktualni pocet:"); // výpis textu
NumOut(40, LCD_LINE3, pocet); // zobrazené počtu stisků
while(!ButtonState(BTNCENTER)){ // opakování dokud nebude stisknuto centrální tlačítko
if(ButtonState(BTNLEFT)){ // kontrola stisku levého tlačítka
pocet -= 1; // odečtení stisku z aktuálního počtu
while(ButtonState(BTNLEFT)); // smyčka pro čekání na uvolnění levého tlačítka
ClearLine(LCD_LINE3); // smazání řádku displeje s počtem stisků
NumOut(40, LCD_LINE3, pocet); // zobrazení nové hodnoty počtu stisků
}
if(ButtonState(BTNRIGHT)){ // kontrola stisku pravého tlačítka
pocet += 1; // přičtení stisku z aktuálního počtu
while(ButtonState(BTNRIGHT)); // smyčka pro čekání na uvolnění pravého tlačítka
ClearLine(LCD_LINE3); // smazání řádku displeje s počtem stisků
NumOut(40, LCD_LINE3, pocet); // zobrazení nové hodnoty počtu stisků
}
}
ClearScreen(); // smazání displeje
TextOut(5, LCD_LINE1, "Konecny pocet:"); // výpis textu
NumOut(40, LCD_LINE3, pocet); // zobrazení konečného počtu stisků
while(true); // smyčka čekání na ukončení programu
}