Zwracam się z prośbą o naprowadzenie co robię źle. Potrzebuje wygenerować przerwanie co czas zależny od danego parametru (tutaj BPM). ATmega1284P pracująca z zegarem 20MHz.
Ustawiam BPM i wyliczam czas:
Inicjuje przerwanie co 1ms:
I obsługuję w taki sposób:
Problem w tym, że kiedy step_time bedzie ustawiony na np. 200, co teoretycznie powinno sprawić ze warunek w przerwaniu będzie spełniony co 200ms, w rzeczywistosci kod w tym if'ie wykonuje się co około sekunde (na oko).
Proszę o pomoc i z góry dziękuję za wszekie odpowiedzi.
Ustawiam BPM i wyliczam czas:
Kod: C / C++
Inicjuje przerwanie co 1ms:
Kod: C / C++
I obsługuję w taki sposób:
Kod: C / C++
Problem w tym, że kiedy step_time bedzie ustawiony na np. 200, co teoretycznie powinno sprawić ze warunek w przerwaniu będzie spełniony co 200ms, w rzeczywistosci kod w tym if'ie wykonuje się co około sekunde (na oko).
Proszę o pomoc i z góry dziękuję za wszekie odpowiedzi.