Witam,
mam pewien problem, który wydaje mi się banalny, ale nie daje mi spać.
Otóż, utworzyłem sobie funkcję delay_ms_x o ciele:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Ową funkcję wywołuję w pętli, która odpowiedzialna jest za animację a'la "loading" na LCD:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Ciało przerwania Timer'a 2:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Timer2 inicjalizuję na początku funkcji main:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Problem w tym, że raz po raz ten odstęp nie jest równy i co około 3 raz funkcja delay_ms_x kończy swoje instrukcje szybciej niż powinna.
Zmienna arm_bar_dur jest niezmienna. Nawet jak podmieniłem w wywołaniu funkcji argument na wartość liczbową zachowanie jest identyczne.
Proszę, pokażcie mi gdzie popełniam błąd.