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] Timer0, Timer2 dla małych częstotliwości

marycyś 10 Wrz 2018 22:13 261 9
  • #1 10 Wrz 2018 22:13
    marycyś
    Poziom 10  

    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.

    0 9
  • #2 11 Wrz 2018 09:00
    tmf
    Moderator Mikrokontrolery Projektowanie

    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.

    0
  • #3 11 Wrz 2018 09:24
    pawel_mr
    Poziom 14  

    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.

    0
  • #4 11 Wrz 2018 09:48
    yokoon
    Poziom 28  

    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.

    0
  • #5 11 Wrz 2018 12:56
    marycyś
    Poziom 10  

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

    0
  • #6 11 Wrz 2018 15:08
    excray
    Poziom 39  

    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.

    0
  • #7 12 Wrz 2018 19:34
    yokoon
    Poziom 28  

    Ale nie są dwa mayb
    Timer2 pracuje asynchroniczcznie

    0
  • #8 12 Wrz 2018 19:55
    excray
    Poziom 39  

    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.

    0
  • #9 13 Wrz 2018 08:33
    yokoon
    Poziom 28  

    Przecież chodzi o tryb pracy normal.
    overflow.

    Dodano po 12 [minuty]:

    Przecież chodzi o tryb pracy normal.
    overflow.

    0
  • #10 13 Wrz 2018 10:46
    excray
    Poziom 39  

    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ń?

    0