Witam!
Staram się rozgryźć dlaczego coś co nie ma prawa działać działa
obsługa klawisza na przerwaniach
Klawisz podłączony do portu PCINT
przerwania:
No i sobie sprawdzam - to znaczy wyświetlam wartości __tmp (ilość zdebouncowanych wciśnięć, odpuszczeń klawisza) oraz nint (ile razy byłem w przerwaniu). Na mój chłopski rozum to nie powinno działać jezeli klawisze nie bedą drgać - nie będzie zmiany stanu PCINT i nie wejdzie do przerwania, nie będzie kto miał sprawdzać. A działa bezbłędnie. Nie kumam.
Ilość przerwań przy wciśnięciu zwiększa się od 1 do 3-4 - czyli tak jak być powinno (raz styki drgają, raz nie). Ilość zdebouncowanych zdarzeń zawsze idzie o 1 w górę nawet jeżeli zostało wygenerowane jedno przerwanie. Czary.
Staram się rozgryźć dlaczego coś co nie ma prawa działać działa
obsługa klawisza na przerwaniach
Klawisz podłączony do portu PCINT
przerwania:
Kod: C / C++
No i sobie sprawdzam - to znaczy wyświetlam wartości __tmp (ilość zdebouncowanych wciśnięć, odpuszczeń klawisza) oraz nint (ile razy byłem w przerwaniu). Na mój chłopski rozum to nie powinno działać jezeli klawisze nie bedą drgać - nie będzie zmiany stanu PCINT i nie wejdzie do przerwania, nie będzie kto miał sprawdzać. A działa bezbłędnie. Nie kumam.
Ilość przerwań przy wciśnięciu zwiększa się od 1 do 3-4 - czyli tak jak być powinno (raz styki drgają, raz nie). Ilość zdebouncowanych zdarzeń zawsze idzie o 1 w górę nawet jeżeli zostało wygenerowane jedno przerwanie. Czary.