- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 3 von 3

Thema: Timer OCR1A

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

    Timer OCR1A

    Anzeige

    LiFePo4 Akku selber bauen - Video
    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:
    https://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.802
    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
    39
    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
  •  

12V Akku bauen