<< 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ázevPopisný název
Konec0BTN1BTNEXIT
Vpravo1BTN2BTNLEFT
Vlevo2BTN3BTNRIGHT
Enter3BTN4BTNCENTER

Stavy tlačítek

StavDefinovaná konstanta
StisknutoBTNSTATE_PRESSED_EV
Stisknuto déleBTNSTATE_LONG_PRESSED_EV
Uvolněno krátceBTNSTATE_SHORT_RELEASED_EV
Uvolněno déleBTNSTATE_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
}