Timer0 CTC-Mode zickt rum, oder ich mache einen Fehler.

Gast #1359515
Mahlzeit,

ATmega168 20PU
ext. 20MHZ Oszilator

ich möchte gerne den Timer0 im CTC-Mode laufen lassen.
Wenn der µC startet soll der Timmer0 im OCR0A einen Wert einlesen,
und immer beim Match toggle ich den PD6.
Soweit so gut, das funktioniert auch, aber ich kann den OCR0A - Wert 
nicht verändern. Er zählt immer bis zum Überlauf bzw. 255. Ich hätte 
aber gerne 25kHz.
Ich möchte auch keine Interrupt-Routine auslösen da ich schon mit dem 
16Bit-Timer1 was anderes mache und diese Routine sollte nicht 
unterbrochen werden.

Das ist meine Initialisierung:

//Timer0 (8Bit) Konfiguration
//CTC-Modus

TCCR0B   |= (1 << WGM01); //CTC-Mode
TCCR0A   |= (1 << COM0A0);
OCR0A = 49;
TCCR0B  |= (1 << CS01);

Muss ich den OCR0A-Wert immer in einer Interrupt-Routine nachladen oder 
warum geht das nicht.
Mit freundlichen Grüßen
Frank

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.