Witam, ostatnio podłączyłem do Atmegi wyświetlacz od nokii 3310 i postanowiłem pouczyć się trochę timerów i przerwań. Chciałem napisać prosty programik liczący impulsy i wyświetlać je na LCD. W przerwaniu od INT0 zliczam impulsy, a w drugim przerwaniu co sekundę przepisuje ilość impulsów do zmiennej i kasuję liczbę impulsów. Problem pojawia się gdy chcę wyświetlić zmienną z liczbą impulsów na sekundę na wyświetlaczu, na LCD bowiem wyświetla się wynik 256*n, dodam, że jeśli wyświetlę liczę impulsów bez zapisywania jej do zmiennej w przerwaniu od timera to wszystko jest ok.
Deklaracja zmiennych:
Konfiguracja timerów, przerwań i linii I/O:
Przerwania:
Gdy próbuję wyświetlić zmienną "impulsy2" pojawia się ten problem, a gdy wyświetlam zmienną "impulsy" wszystko jest ok, ładnie zwiększa się o 1 co każdy impuls.
Macie jakieś pomysły dlaczego tak jest i jakieś sugestie jak to naprawić
Deklaracja zmiennych:
Kod: C / C++
Konfiguracja timerów, przerwań i linii I/O:
Kod: C / C++
Przerwania:
Kod: C / C++
Gdy próbuję wyświetlić zmienną "impulsy2" pojawia się ten problem, a gdy wyświetlam zmienną "impulsy" wszystko jest ok, ładnie zwiększa się o 1 co każdy impuls.
Macie jakieś pomysły dlaczego tak jest i jakieś sugestie jak to naprawić
