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

Dokładność RTC (TIMER2) zależy od częstości przerwań TIMER0?

Myler 20 Kwi 2005 12:29 1734 2
REKLAMA
  • #1 1421608
    Myler
    Poziom 11  
    Posty: 7
    Witam!
    Programuję w BascomieAVR układ ATmega32 do obsługi węwnętrznego zegara RTC oraz miltipleksacji sześciu wyświetlaczy.
    Chciałem się zapytać czy dokładność wewnętrznego zegara RTC (kwarc 32.768kHz), który uruchamiam komendą:
    Config Clock = Soft,
    zależy od przerwań TIMER0, które odpowiedzialne są za multipleksację wyświetlaczy??
    Rozumiem, że jeżeli wystąpi przerwanie od TIMER0, system przerwań procesora jest wyłączony i tym samym wkrada się błąd ponieważ przerwanie od TIMER2 musi odczekać czas przerwania TIMER0 ??

    $crystal = 8000000
    odświeżanie wyświetlaczy ok 100Hz

    Dzięki za pomoc
    Pozdrawiam Marcin
  • REKLAMA
  • #2 1421898
    shg
    Poziom 35  
    Posty: 2289
    Pomógł: 339
    Ocena: 135
    Nie wiem dokładnie jak to jest w bascomie zrobione, ale teoretycznie nie.

    Przerwanie Timera2 musi wprawdzie poczekać na zakończenie obsługi przerwania timera 0, ale wywoływane jest zawsze w takich samych odstępach czasu (generator nie jest przecież zatrzymywany). więc jeżeli nawet w którymś momencie wykona się za późno, to następnym razem wykona się wcześniej (po krótszym czasie od zakończenia).

    Bład wprowadzany przez takie opóźnienia nie kumuluje się pod warunkiem, że przerwanie timera 2 zrobione jest jakoś "normalnie", znaczy, że np. tmer nie jest zatrzymywany w przerwaniu (AVT sux).
    Jeżeli timer "kręci się w kółko" i ustawia flagę przerwania przy każdym przepełnieniu, to pomiar będzie dokładny pod warunkiem, że procedura obsługi zostanie wywołana w czasie krótszym niż wynosi okres przepełnienia timera.
REKLAMA