Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega16[C] - Pomiar czasu obrotu z użyciem timera

Propaganja12 05 Paź 2012 11:55 837 1
  • #1 05 Paź 2012 11:55
    Propaganja12
    Poziom 9  

    Witam
    Jak w temacie,sprawdzałem kod kilka razy i wszystko wydaje się w porządku a jednak nie działa tak jak powinno.
    ziel_on to włączenie wskazówki sekund w zegarze widmowym.
    Według mnie powinno działać,mam 10 000 przerwań na sekundę,wynik mnożę razy 100 i dzielę przez 60 tak by wstawić do pętli z _delay_us.

    Działa tak że wskazówka mignie od czasu do czasu gdzieś na tarczy,tak jak by ten czas był zbyt duży.

    Kod: c
    Zaloguj się, aby zobaczyć kod
    [/code]

    0 1
  • #2 05 Paź 2012 15:05
    pawel_mr
    Poziom 14  

    Wg mnie będzie Ci ciężko zrobić dokładne odstępy czasowe z wykorzystaniem _delay_us i _delay_ms. Wchodzą w to wszystko przerwania, odstęp 1us przy kwarcu 16Mhz to 16 taktów, wejście do przerwania, obsłużenie go i wyjście pewnie zajmuje więcej. Jeśli przerwania przychodzą często to czas podany w parametrze funkcji będzie się rozjeżdżał. Żeby mieć pewność, powinieneś zrezygnować z _delay i całkowicie zrobić obsługę na timerach.

    0