OCRnA vom Compiler berechnen lassen.

Gast #2860260
Lesenswert?
• ▲
▼
Hallo, wie berechne ich den OCRnA wert für einen 16bit Timer?
Ich brauche die Formel wo ich den Wert in Klartext als Zeit angebe.
Für einen 8bit Timer sieht sie so aus:

OCR1A = F_CPU / 1024.0 * 10e-3 - 0.5;        // 10ms interrupt

Funktioniert einwandfrei bei 8bit Timer, doch der 16bit läuft nur halb 
so schnell.

Danke im Voraus für die Hilfe.
Gast #2860386
Lesenswert?
• ▲
▼
Hi, so sieht die Initialisierung für den Timer aus:

TCCR1A = 1<<WGM11;                                    // Mode 2. CTC
TCCR1B = 1<<CS12 | 1<<CS10;                           // F_CPU / 1024
OCR1A = F_CPU / 1024.0 * 10e-3 - 0.5;                 // 10ms interrupt
TIMSK1 = 1<<OCIE1A;

Ich meine ist alles richtig eingestellt, oder?
#2860419
Lesenswert?
• ▲
▼
Alex schrieb:
> TCCR1A = 1<<WGM11; // Mode 2. CTC

Das stimmt nicht, das ist Mode 2, beim 16bit-Timer aber Phasenkorrekte 
9bit-PWM. Was du brauchst ist Mode 4, CTC mit TOP in OCR1A Dazu muss nur 
WGM12 gesetzt sein. Dieses Bit ist aber in TCCR1B. Hab jetz auf Verdacht 
im DB des Mega16 geschaut.

mf

PS: Es gibt da noch Mode 12, CTC mit TOP in ICR1. Da kann man dann noch 
beide OCR-Einheiten verwenden, weil OCR1A nicht für TOP gebraucht wird.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.