Witam,
Postanowiłem tutaj napisać, ponieważ mam problem z timerem1. Napisałem program zgodny z algorytmem, który umieściłem poniżej (układ ma zliczać impulsy na wejściu, następnie je uśredniać, a wynik wyświetlać). Póki co testuje go na ISISie i jedyne co pojawia mi się na wirtualnym wyświetlaczu to wynik -1. Tak jak wspomniałem w pierwszym zdaniu, podejrzewam, że coś poknociłem z inicjacją timera :/
Dodatkowo, aby to sprawdzić napisałem kolejny program, aby zweryfikować swoje podejście do zagadnienia zliczania. Po odpaleniu go w symulatorze - owszem, widać było jak zmienna b inkrementuje się zgodnie z przerwaniami (b wzrastało), jednak były to stanowczo za wolne zmiany (przy pomiarze trwającym 1 sekunde, timer zliczył zaledwie 40 przepełnień, choć winien ich zliczyć 1000 => jedno przepełnienie winno wystąpić przy 1ms).
Czy mógłby ktoś sprawdzić chociaż pobieżnie mój kod i stwierdzić gdzie robie błąd (błedy) ? Z góry dziękuje, pozdrawiam.
P.S. Używam AVR Studio 5 do kompilacji i programuje ATmege16 (choć docelowo będzie to ATmega8).
Algorytm:
Kod programu:
[code]
Postanowiłem tutaj napisać, ponieważ mam problem z timerem1. Napisałem program zgodny z algorytmem, który umieściłem poniżej (układ ma zliczać impulsy na wejściu, następnie je uśredniać, a wynik wyświetlać). Póki co testuje go na ISISie i jedyne co pojawia mi się na wirtualnym wyświetlaczu to wynik -1. Tak jak wspomniałem w pierwszym zdaniu, podejrzewam, że coś poknociłem z inicjacją timera :/
Dodatkowo, aby to sprawdzić napisałem kolejny program, aby zweryfikować swoje podejście do zagadnienia zliczania. Po odpaleniu go w symulatorze - owszem, widać było jak zmienna b inkrementuje się zgodnie z przerwaniami (b wzrastało), jednak były to stanowczo za wolne zmiany (przy pomiarze trwającym 1 sekunde, timer zliczył zaledwie 40 przepełnień, choć winien ich zliczyć 1000 => jedno przepełnienie winno wystąpić przy 1ms).
Czy mógłby ktoś sprawdzić chociaż pobieżnie mój kod i stwierdzić gdzie robie błąd (błedy) ? Z góry dziękuje, pozdrawiam.
P.S. Używam AVR Studio 5 do kompilacji i programuje ATmege16 (choć docelowo będzie to ATmega8).
Algorytm:
Kod programu:
[code]
Kod: C / C++
