Hej!
Tym razem mam miernik refleksu, który został maksymalnie uproszczony, wszystko dzieje się na uruchomionym jednym timerze 16-bitowym . Poniżej wklejam kod.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Pojedynczy pomiar realizowany przez przycisk KEY1 oraz przerwanie zewnętrzne ISR(INT0_vect) działa dobrze, wyświetla rezultat między 150, a 250 ms, co jest poprawnym wynikiem. Niepoprawnie działa pomiar 5-krotny realizowany przez KEY3 oraz to samo przerwanie ISR(INT0_vect). Wyświetla co najmniej dziwne wyniki, potrafiące osiągać tysiące. Podejrzewam, że być może jest jakiś problem w pętli KEY3, ewentualnie w którymś momencie coś nie jest zerowane. Jakby ktoś coś zauważył to proszę o pomoc.