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

Timer 0 AVR: CTC, preskaler 1, rejestr 110, dlaczego f=38kHz zamiast 76kHz?

makipaki123 09 Kwi 2015 21:12 1401 11
REKLAMA
  • #1 14604463
    makipaki123
    Poziom 8  
    Cześć
    Mam pytanie
    Załóżmy że mam taktowanie 8 000 000hz i preskaler jeden oraz rejestr porównania 110 czyli częstotliwość to 1/8 000khz razy 111 czyli mamy T=0,013

    Czyli f=76khz

    korzystam z trybu CTC i timer 0 pin OC0 dlaczego f na tym pinie to 38khz
  • REKLAMA
  • #2 14604513
    BlueDraco
    Specjalista - Mikrokontrolery
    Problemu szukaj w 12-tej linii kodu. Bez podania typu mikrokontrolera ciężko wymyślić coś innego.
  • #3 14604520
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • REKLAMA
  • #5 14604561
    excray
    Poziom 41  
    Skorzystaj z DS i ze wzoru tam podanego na częstotliwość dla trybu CTC to wszystko będzie się zgadzać.
  • #6 14604648
    Konto nie istnieje
    Poziom 1  
  • #7 14605382
    BlueDraco
    Specjalista - Mikrokontrolery
    Reasumując: mamy mikrokontroler nieznanego typu działający z nieznanym oprogramowaniem i próbujemy wyjaśnić jego działanie. Czy to forum dla wróżek?
  • #8 14606135
    makipaki123
    Poziom 8  
    Dzięki panowie za szybki odzew.
    Ale czy moglibyście mi wytłumaczyć skąd jest ta dwójka we wzorze bo znikąd to się ona nie bierze.
  • #9 14606163
    dondu
    Moderator na urlopie...
    Już dostałeś tę odpowiedź:

    niveasoft napisał:
    Jeśli Timer odwraca stan pinu to tylko raz. Musi minąć znów czas do następnego przerwania żeby znów odwrócić stan.

    to jest dzielenie przez dwa :), choć nie przerwanie miał na myśli kolega niveasoft, tylko moment wykrycia spełnienia warunku porównania, a w konsekwencji zerowania licznika TCNT.

    Widać to na rysunku z fragmentu dokumentacji, który wkleiłem. Za każdym razem, gdy licznik doliczy do wartości ustawionej w wybranym rejestrze porównania następuje:
    - wyzerowanie licznika TCNT,
    - oraz zmiana stanu na wyjściu OCnA (czyli co drugi raz masz na nim jedynkę logiczną).
  • REKLAMA
  • #10 14607781
    excray
    Poziom 41  
    makipaki123 napisał:
    Dzięki panowie za szybki odzew.
    Ale czy moglibyście mi wytłumaczyć skąd jest ta dwójka we wzorze bo znikąd to się ona nie bierze.

    Wykazujesz się brakiem elementarnej wiedzy którą byś uzyskał gdybyś chociaż spróbował zajrzeć do DS procesora. W rozdziale o timerze i trybie CTC jest opis oraz grafika która wyjaśnia dlaczego na jeden cykl przebiegu przypadają 2 przerwania CTC, a częstotliwość to nic innego jak liczba pełnych cykli na sekundę.
  • #11 14609748
    Konto nie istnieje
    Poziom 1  
  • #12 14609923
    excray
    Poziom 41  
    Masz rację, chodziło mi oczywiście o porównanie.
REKLAMA