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.

ATmega8 - Timer1 CTC - rozbieżność czasów

Nollie 17 Sie 2016 13:50 927 7
  • #1 17 Sie 2016 13:50
    Nollie
    Poziom 4  

    Cześć, mam problem z mierzeniem czasu za pomocą trybu CTC timera1 w ATmedze 8. Mianowicie, dla różnych wartości preskalera pomimo zmieniania wartości OCR czasy wywoływania przerwania są bardzo różne.

    W przerwaniu toggluje LEDa. Z obliczeń wynika, że powinny migać z taką samą częstotliwością, ale widać znaczną, kilkukrotną różnicę częstotliwości (przy preskalerze 64 miga rzadziej). Skąd bierze się ta różnica?

    Procesor taktuje kwarcem 16MHz.

    ATmega8 - Timer1 CTC - rozbieżność czasów

    Dodano po 23 [minuty]:

    Przy preskalerze 8 liczy do 9999, przy preskalerze 64 liczy do 1249. Maksymalna wartość dla timera 16-bitowego to ~65tys.

    0 7
  • #2 17 Sie 2016 14:20
    excray
    Poziom 39  

    W tym wzorze na licznik CTC to ja widzę OCR1A a nie OCR1B. Nie sądzisz, że to jest problemem?

    0
  • #3 17 Sie 2016 15:02
    Nollie
    Poziom 4  

    Nie sądzę. Co to za różnica? Działa dokładnie tak samo czy jest na A czy na B.

    0
  • #4 17 Sie 2016 15:06
    excray
    Poziom 39  

    Naprawdę? Działa tak samo? To w takim razie możesz zamknąć temat. Problemu nie ma.

    0
  • #5 17 Sie 2016 15:41
    Nollie
    Poziom 4  

    Dalej nie rozumiem w czym jest problem. Czy zmienię na OCR1A, TOIE1A, TIMER1_COMPA_vect czy OCR1B, TOIE1B, TIMER1_COMPB_vect, czasy dalej są rozbieżne (pomijając samo to, że jestem w stanie dostrzec miganie diody, co nie powinno mieć miejsca przy żądanej częstotliwości 200Hz).

    0
  • #7 17 Sie 2016 17:43
    Nollie
    Poziom 4  

    piotrva napisał:
    Pokaż cały kod.


    Kod: c
    Zaloguj się, aby zobaczyć kod


    Piotrus_999 napisał:
    Autor postu zachował się chamsko wobec niego - takim nie należy pomagać tylko ignorować.


    ?? Czym kogokolwiek według Ciebie uraziłem :O ?

    0
  • #8 17 Sie 2016 18:03
    Nollie
    Poziom 4  

    WGM12 jest w TCCR1B. To był problem.

    0