-
        

Ergebnis 1 bis 3 von 3

Thema: Timer OCR1A

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.08.2005
    Alter
    33
    Beiträge
    685

    Timer OCR1A

    Anzeige

    Hallo,

    ich habe ein kleines, jedoch für mich wichtiges Verständnisproblem.
    Laut Datenblatt eines Atmega's 32 wird für den Timer1 bei CTC diese Formel für die gewünschte Frequenz berechnet:

    Quarzfrequenz / (2*Prescaler*(1+OCR1A))

    Dies ist soweit logisch, man kann diesen Wert von OCR1A ja in dezi oder in hex schreiben.

    Mein Problem ist dieser Ausdruck:

    Code:
    OCR1A = (unsigned short) ((unsigned long) F_CPU / IRQS_PER_SECOND-1);
    Wenn man nun Quarzfrequenz durch die IRQ's/s berechnet, dann erhält man einen komplett anderen Wert.

    Beispiel:
    http://www.roboternetz.de/wissen/index.php/Hallo_Welt_für_AVR_(LED_blinken)

    Quarzfrequenz: 1MHz
    IRQ's/s: 2000
    gewünschte Frequenz: 0,5Hz

    Laut der o.g. mir nicht verständlichen Ausdruck erhält man für OCR1A=500.
    Wenn man nun die Formel aus dem Datenblatt mit einem Prescaler von 1 anwendet, dies: OCR1A=999999 bzw. 0xF423F.

    Könnt ihr mir bitte diesen Ausdruck erklären

    Gruß
    Stefan

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Der Faktor 2 kommt daher, daß, wenn man mit Ein-Ausschalten eine Frequenz von f Hz erreichen will, pro Sekunde f mal ein- und f mal ausschalten muss, also 2*f mal schalten muss.

    Wenn pro Sekunde q IRQs ausgelöst werden sollen, dann muss der Timer q mal überlaufen. Da der Timer immer von 0 bis OCR1A zählt (das sind 1+OCR1A Schritte) muss gelten

    (1+OCR1A) * q = F_CPU

    falls PRESCALE=1. Für höhere Prescaler analog

    (1+OCR1A) * q = F_CPU / PRESCALE
    Disclaimer: none. Sue me.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.08.2005
    Alter
    33
    Beiträge
    685
    Danke dir SprinterSB, jetzt ist's verständlich
    Stefan

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •