Jestem studentem, i na laboratoriach z mikrokontrolerów dostaliśmy do wykonania następujące zadanie:
Zliczać w timerze ilość kliknięć przycisku i po zarejestrowaniu 5 kliknięć zapalić diodę. Zdaje sobie sprawę że timery nie powinny być w takim celu.
Największym problemem przy tym prostym programie są drgania styków. Postanowiłem rozwiązać ten problem przy wykorzystaniu drugiego timera. W procedurze przerwania Timer0_comp wyłączam zliczanie impulsów na T0 oraz włączam timer2 i ustawiam obsługę przerwania Timer2_comp, dzięki czemu po upływie zadanego czasu ponownie zostanie włączona możliwość zliczania impulsów. Jednak napotkałem na problem którego kompletnie nie rozumiem, po analizie pracy krokowej zauważyłem że po powrocie z przerwania Timer0_comp w głównej pętli programu samoistnie włącza się timer0 i ustawiana jest obsługa przerwania Timer0_comp. Chciałbym prosić o wyjaśnienie tego zjawiska i ewentualne porady przy rozwiązaniu tego zadania.
Zliczać w timerze ilość kliknięć przycisku i po zarejestrowaniu 5 kliknięć zapalić diodę. Zdaje sobie sprawę że timery nie powinny być w takim celu.
Największym problemem przy tym prostym programie są drgania styków. Postanowiłem rozwiązać ten problem przy wykorzystaniu drugiego timera. W procedurze przerwania Timer0_comp wyłączam zliczanie impulsów na T0 oraz włączam timer2 i ustawiam obsługę przerwania Timer2_comp, dzięki czemu po upływie zadanego czasu ponownie zostanie włączona możliwość zliczania impulsów. Jednak napotkałem na problem którego kompletnie nie rozumiem, po analizie pracy krokowej zauważyłem że po powrocie z przerwania Timer0_comp w głównej pętli programu samoistnie włącza się timer0 i ustawiana jest obsługa przerwania Timer0_comp. Chciałbym prosić o wyjaśnienie tego zjawiska i ewentualne porady przy rozwiązaniu tego zadania.
Kod: C / C++