TCNT1 bei Interrupt nicht zurücksetzen

Gast #4151293
Lesenswert?
• ▲
▼
Hallo,

Ich nutze einen Atmega328p und habe am pin T1 (für Timer1) ein Signal 
anliegen.
Für OCR1A habe ich ein Wert hinterlegt. Wird dieser Wert erreicht, so 
wird ein Interrupt (TIMER1_COMPA_vect) ausgelöst. OCR1A wird darufhin 
ein neuer Wert zugewiesen. Also z.b. OCR1A = 25 --> Interrupt wird 
ausgelöst --> OCR1A = 50 --> Interrupt wird ausgelöst --> OCR1A = 102 
... usw
Mein Problem ist nun folgendes: Beim Interrupt wird auch gleichzeitig 
(automatisch) der Wert von TCNT1 auf 0 gesetzt. D.h. nach jedem 
Interrupt fängt mein Couter bei 0 an zu zählen. Er soll aber einfach 
weiter zählen und nicht auf 0 zurück gesetzt werden.

Gibt es in irgendeinem Register ein Flag, dass ich übersehen habe, dass 
mir oben genannte Funktion ermöglicht? Kurz gesagt: Bei Auslösen des 
Interrupts für das Erreichen des OCR1A Wertes soll TCNT1 nicht auf 0 
gesetzt werden.
Ich habe dies nicht gefunden (übersehen??), trotz mehrfachem durchlesen 
des entsprechenden Kapitels im Datenblatt zu o.g. Mikrocontroller.

Viele Grüße
Dieter B.D.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.