MxChip obsługa przycisków użytkownika


Level 3 MxChip obsługa przycisków użytkownika

Mamy już programik MxChip zabawy diodą, który potrafi zmieniać kolor diody, ją włączać i wyłączać pójdźmy o krok dalej. Ograniczmy się do pojedynczego uruchomienia funkcji diody wyłączmy diodę ją na zakończenie.
A potem włączmy funkcję na żądanie.
Potrzebujemy monitorować przyciski na płytce tutaj dokumentacja.

Czyli nasłuchujemy zmiany stanu na danym pinie na płytce. Ponieważ mamy wszystko zintegrowane to nie bardzo widać, że są to piny zewnętrzne, jednak właśnie na tym to polega.

Przytrzymaj

Jedną z konfiguracji przycisków jest ich stałe przytrzymywanie i wykonywanie jakiejś operacji w trakcie przyciskania. Ma to dużo sensu np przy nagrywaniu dźwięku.
Musimy określić stan pinu przycisku na INPUT a potem odczytać jego stan za pomocą systemowej funkcji digitalRead.

void setup(void)
{
  // initialize the button pin as a input
  pinMode(USER_BUTTON_A, INPUT);
  lastButtonAState = digitalRead(USER_BUTTON_A);
  pinMode(USER_BUTTON_B, INPUT);
  lastButtonBState = digitalRead(USER_BUTTON_B);
}

Po powyższej inicjalizacji musimy ciągle odczytywać stan i wykrywać zmianę na pinie który chcemy obsłużyć.

void loop(void)
{
  while (1)
  {
    buttonAState = digitalRead(USER_BUTTON_A);
    buttonBState = digitalRead(USER_BUTTON_B);
    
    if (buttonAState == LOW && lastButtonAState == HIGH)
    {
      // do some stuff 
    }
    if (buttonBState == LOW && lastButtonBState == HIGH)
    {
      // do other stuff  
    }
    
    lastButtonAState = buttonAState;
    lastButtonBState = buttonBState;
  }

  delay(10);
}

Naciśnij

Czyli nasłuchujemy zmiany stanu na danym pinie. Nasłuchujemy zmiany na pinie 4 czyli USER_BUTTON_A lub 10 czyli USER_BUTTON_B.
Mamy też różne opcje nasłuchiwanego zdarzenia. Różnią się one sygnałem na pinie i jego dokładnością pomiaru. CHANGE będzie reagować na każde drgnięcie palca na przycisku. Natomiast FALLING tylko na sygnał schodzący.

  • CHANGE = 2
  • FALLING = 3
Gdy taką zmianę dostaniemy wywołana zostanie funkcja callback.
W obsłudze tej funkcji przestawmy sobie tylko znacznik czy uruchomić ponownie funkcje ze zmianą kolorków diody. Uruchomieniem funkcji zajmie się już główna pętla programu


Komentarze

Popularne posty