08-03-2020, 14:10
(08-03-2020, 01:57)m72 napisał(a): Plan jest taki że chcę odczytywać wartość timera1 po każdym wywołaniu przerwania i go zerować.Istotne bo rozwiązanie jest złe. Zanim wykona się przerwanie timer może zliczyć już ileś tam impulsów. Jest to tym bardziej prawdopodobne, że arduinowe biblioteki uwielbiają blokować globalnie przerwania na długi czas. Pomiędzy odczytem timera a jego zerowaniem też mogą się pojawić impulsy. Wynik pomiaru będzie zaniżony a ewentualne blokady przerwań będą powodować niestabilne odczyty. To, że chcesz mierzyć niskie częstotliwości może zamaskuje problem, może nie (zależy co poza pomiarem częstotliwości będziesz robił).
Docelowo ma z tego powstać obrotomierz do silnika ale to teraz nie istotne.
Mierzona częstotliwość nie jest duża. Pewnie chcesz zliczać liczbę impulsów w zadanym czasie? Jeśli tak to błąd, nie tak to się robi, mierzy się okres. Do tego w przypadku popularnych AVR przeznaczony jest timer 1 (ICP), w większych np Mega256 takich timerów jest więcej.
Kod z delay to nie kod, to DEMO!
Możliwości sprzętowe uC trzeba wykorzystywać a nie /machać/. GPIO!
Jestem a usilnie chcę być amatorem to dwie różne rzeczy.
http://er-mik.prv.pl/projekty edw.php
http://er-mik.prv.pl/projekty_avt.php
Możliwości sprzętowe uC trzeba wykorzystywać a nie /machać/. GPIO!
Jestem a usilnie chcę być amatorem to dwie różne rzeczy.
http://er-mik.prv.pl/projekty edw.php
http://er-mik.prv.pl/projekty_avt.php