Zitat Zitat von Ceos Beitrag anzeigen
Was ich nicht verstehe, warum der Timer Takt dadurch verzögert wird ... eigentlich sollte doch bei einem PreScale > 1 die Nullung des Registers fertig sein, bevor der Timer inkrementiert wird, aber scheinbr glitcht auch der prescaler dabei um einen Takt mit, aber das scheint wohl ein Atmel Problem zu sein
Hallo Ceos,
ich habe etwas an einem ATmega88 herum gemessen.
Prozessortakt 1MHz
TIMER0 im CTC (kein PWM) mit OCR0A als TOP
kein Presacaler (Timertakt = 1MHz) und OCR0A=0
HW-Timerausgang OC0A an PD6 mit COM0A0 toggeln lassen

Zweikanal Oszi mit einem Kanal auf CLKO um Systemtakt zu sehen, den anderen Kanal auf OC0A

Bei jeder steigenden Systemtaktflanke wurde OC0A getoggelt. Es gab dort keine Verzögerungen des Timertaktes. Auch bei OCR0A mit 1 oder höher sah es nicht so aus, als wenn irgendwo Takte beim Timing verloren gingen.

Allerdings wenn man die Portpins im Interrupt toggeln läßt, gehen Systemtakte "verloren". Messungen versuche ich noch "auf die Reihe" zu kriegen, da sie von der Abarbeitungsgeschwindigkeit der ISR abhängen und ich noch keine Regel erkennen kann.

Ich denke, daß der Timer keine irgenwie geartete Verzögerungen beim Rücksetzten zeigt, sondern es bei der Erkennung der ISR-Anforderung zu Verzögerungen kommt.

Oder hab ich das Problem falsch verstanden?

Gruß
Searcher