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

[Atmega8] Timer0, Timer2 dla małych częstotliwości

marycyś 10 Wrz 2018 22:13 765 9
REKLAMA
  • #1 17433979
    marycyś
    Poziom 12  
    Witam,

    Mam Timer1 zajęty do bardziej zaawansowanych pomiarów. Muszę niezależnie wygenerować częstotliwość około 5Hz na pinie.
    1. Jak wygenerować tak małą częstotliwość Tim0 lub Tim2 bez udziału przerwań?
    2. Jak w CTC ustawić, żeby po wyłączeniu Timera wartość na pinie pozostała niska (L)?

    Pozdrawiam.
  • REKLAMA
  • #2 17434419
    tmf
    VIP Zasłużony dla elektroda
    ad 1. Dla timer 0 nie jest źle, bo masz preskaler i licznik jest 16-bitowy, więc wystarczy odpowiednio to skonfigurować i te 5 Hz uzyskasz. Timer 2 ijest tylko 8-bitowy, więc 5 Hz nie uzyskasz (chyba, że zwolnisz taktowanie MCU).
    ad 2. Zainteresuj się bitami COM, które definiują zachowanie wyjścia timera.
  • #3 17434444
    pawel_mr
    Poziom 15  
    tmf napisał:
    ad 1. Dla timer 0 nie jest źle, bo masz preskaler i licznik jest 16-bitowy.

    Timer 0 jest 8 bitowy, tylko Timer 1 ma 16 bitów więc za dużo nie zdziała bez przerwań i liczenia przepełnień. Jeśli autor nie używa pinów kwarcu, można wykorzystać Timer 2 i tryb asynchroniczny, podpiąć jakiś wolny kwarc i popędzić Timer 2 niezależnie.
  • REKLAMA
  • #4 17434476
    yokoon
    Poziom 29  
    Witam.
    Wykorzystaj Timer2 w trybie normal, rezonator tzw.zegarkowy 32768Hz pod piny 9 i 10 mikrokontrolera. Prescaler = 256, w rejestrze TCNT2 = 231 wychodzi 5,12Hz.
  • REKLAMA
  • #5 17434802
    marycyś
    Poziom 12  
    Nie mogę się doszukać, czy do Atmegi8 można podłączyć jednocześnie obydwa kwarce?
    (czyli 8MHz i 32768Hz dla Timer2)
  • REKLAMA
  • #6 17435021
    excray
    Poziom 41  
    Timer 0 nie ma wyjścia OC0 więc pozostaje Ci tylko T2.

    Dodano po 1 [minuty]:

    marycyś napisał:
    Nie mogę się doszukać, czy do Atmegi8 można podłączyć jednocześnie obydwa kwarce?
    (czyli 8MHz i 32768Hz dla Timer2)

    Nie. To są te same piny więc albo jeden albo drugi. 8MHz masz na RC więc być może nie potrzebujesz kwarcu 8MHz. Jeśli MCU może wolniej chodzić, to przy kwarcach 1,8432MHz oraz 2.4576MHz możesz osiągnąć 10Hz na wyjściu OC2.
  • #7 17437257
    yokoon
    Poziom 29  
    Ale nie są dwa mayb
    Timer2 pracuje asynchroniczcznie
  • #8 17437295
    excray
    Poziom 41  
    yokoon napisał:
    Timer2 pracuje asynchroniczcznie

    Opcjonalnie.

    Dodano po 3 [minuty]:

    yokoon napisał:
    Wykorzystaj Timer2 w trybie normal, rezonator tzw.zegarkowy 32768Hz pod piny 9 i 10 mikrokontrolera. Prescaler = 256, w rejestrze TCNT2 = 231 wychodzi 5,12Hz.

    Nie wychodzi. Mi wychodzi dla CTC coś około 0,276Hz.
  • #9 17437943
    yokoon
    Poziom 29  
    Przecież chodzi o tryb pracy normal.
    overflow.

    Dodano po 12 [minuty]:

    Przecież chodzi o tryb pracy normal.
    overflow.
  • #10 17438136
    excray
    Poziom 41  
    yokoon napisał:
    Przecież chodzi o tryb pracy normal.
    overflow.

    Czyli jak? Chcesz co przerwanie od przepełnienia wpisywać do CNT wartość 231? A jak chcesz to zrobić w trybie Normal Mode bez używania przerwań?
REKLAMA