logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

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

Propaganja12 05 Paź 2012 11:55 1152 1
REKLAMA
  • #1 11379480
    Propaganja12
    Poziom 9  
    Posty: 41
    Ocena: 1
    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 / C++
    Zaloguj się, aby zobaczyć kod
    [/code]
  • REKLAMA
  • #2 11379946
    pawel_mr
    Poziom 15  
    Posty: 99
    Pomógł: 15
    Ocena: 12
    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.
REKLAMA