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

[ATTiny2313][ASM] CTC działa dla Timer1, ale nie Timer0

CSun 13 Kwi 2011 08:59 2663 2
REKLAMA
  • #1 9394561
    CSun
    Poziom 11  
    Witam, mój problem polega na tym, że chcę włączyć tryb CTC dla Timer0. Próbuję to zrobić (ASM i C) i w efekcie licznik się nie zeruje na wertości TOP, ale leci do MAX (255). Jednak tak samo napisany kod dla Timer1 już działa zerując licznik po osiągnięciu wartości TOP (np. 50).

    TIMER1 CTC MODE:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Powyższy kod działa i TCNT1L zeruje się w momencie zrównania z OCR1AL, natomiast w poniższym przypadku zerowanie nie występuje:

    TIMER0 CTC MODE:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Czy ja robię coś źle, że to nie działa?

    Na pytanie jak to sprawdzam:
    Używając przerwania INT1 zatrzymuję timer i wyrzucam jego licznik na LCD więc widzę jakie wartości przyjmuje.
  • REKLAMA
  • Pomocny post
    #2 9394626
    Andrzej__S
    Poziom 28  
    CSun napisał:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Do włączenia trybu CTC dla timera 0 służy bit WGM01, a nie WGM02 jak w timerze 1. Z kolei bit WGM01 jest w rejestrze TCCR0A:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #3 9394673
    CSun
    Poziom 11  
    Dzięki, działa :D

    Zamykam temat.
REKLAMA