Witam,
Ucząc się programowania mikrokontrolerów, napisałem sobie procedurę obsługi microswitcha, podłączonego bezpośrednio do linii wejścia. Właściwy odczyt realizuję w przerwaniu przepełnienia timera, co około 16 ms, w ten sposób (implementacja na ATmega8):
W moim zamyśle działa to tak:
Sprawdź, jeśli wciśnięty wykonaj debouncing i wpisz wartość do bufora, następnie czekaj do wykrycia zbocza narastającego (zwolnienie przycisku) i ponownie wykonaj debouncing
Samą obsługę zdarzenia wykonuję w nieskończonej pętli w main(). Wszystko działa, ale jako, że jestem początkujący, chciałbym się upewnić, czy taki sposób jest poprawny. Szczególnie zastanawia mnie takie bezsensowne sprawdzanie bufora przy każdej iteracji pętli.
Pozdrawiam!
Ucząc się programowania mikrokontrolerów, napisałem sobie procedurę obsługi microswitcha, podłączonego bezpośrednio do linii wejścia. Właściwy odczyt realizuję w przerwaniu przepełnienia timera, co około 16 ms, w ten sposób (implementacja na ATmega8):
Kod: C / C++
W moim zamyśle działa to tak:
Sprawdź, jeśli wciśnięty wykonaj debouncing i wpisz wartość do bufora, następnie czekaj do wykrycia zbocza narastającego (zwolnienie przycisku) i ponownie wykonaj debouncing
Samą obsługę zdarzenia wykonuję w nieskończonej pętli w main(). Wszystko działa, ale jako, że jestem początkujący, chciałbym się upewnić, czy taki sposób jest poprawny. Szczególnie zastanawia mnie takie bezsensowne sprawdzanie bufora przy każdej iteracji pętli.
Kod: C / C++
Pozdrawiam!