CTC vor oder nach Interrupt

Gast #4676515
Lesenswert?
• ▲
▼
Kann mir jemand sagen, ob bei einem Atmel bei einem Campare Match 
Interupt mit Clear Timer on Compare Match das TCNT Register(der Timer) 
VOR oder NACH dem Aufrufen der ISR(Interruptserviceroutine) auf 0 
zurückgesetzt wird? Habe nämlich irgendwie den Eindruck, das dies 
dannach passiert, weil ich abhängig vom Code in der ISR ziemliche 
Timingdrifte habe. Müßte ich dann ggf. am Anfang der ISR den TCNT 
manuell auf 0 zurücksetzen? Oder gibt es ein Einstellungsregister mit 
dem ich explizit irgendwelche Prioritäten festlegen kann?
Gast #4676519
Lesenswert?
• ▲
▼
Thomas schrieb:
> Kann mir jemand sagen, ob bei einem Atmel bei einem Campare Match
> Interupt mit Clear Timer on Compare Match das TCNT Register(der Timer)
> VOR oder NACH dem Aufrufen der ISR(Interruptserviceroutine) auf 0
> zurückgesetzt wird?

der Controller weiß überhaupt nicht, wann die ICR fertig ist.

Beim compare wird das ISR-Flag gesetzt und das Register zurückgesetzt.
(Firma: Vescomp) #4676614
Lesenswert?
• ▲
▼
Thomas schrieb:
> Habe nämlich irgendwie den Eindruck, das dies dannach passiert

 Beim CTC wird zuerst OCFx Flag gesetzt, danach wird ISR angesprungen.

 OCFx Flag wird aber nicht sofort nach dem Match zwischen TCNT und
 OCRx gesetzt, sondern erst beim nächsten Timer Clock Takt.

 Zwischen 2 CTC Ereignisen bleibt die Zeit immer gleich, der Aufruf
 der ISR selbst kann aber zwischen 1 und 3 CPU Takte verspätet erfolgen.

> weil ich abhängig vom Code in der ISR ziemliche Timingdrifte habe.

 Das ist der Unterschied zwischen CPU Takt und Timer Takt.
 Da dein Timer (wahrscheinlich) mit Vorteiler läuft, ist ein Timer
 Takt = fCPU / Vorteiler.

 Auf jeden Fall erfolgt CTC und das eigentliche setzen des OCFx Flags
 auf ns genau, keine Sorge.

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.