Notwendigkeit von ICR1H und ICR1L

OP #4866787
Lesenswert?
• ▲
▼
Hallo zusammen,

im Tutorial
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Z%C3%A4hler_des_AVR

habe ich folgendes gelesen:

"Wenn am Input Capture Pin ICP die gemäß Einstellungen im TCCR1B 
definierte Flanke erkannt wird, so wird der aktuelle Inhalt des 
Datenregisters TCNT1H/TCNT1L sofort in dieses Register (ICR1H und ICR1L) 
kopiert und das Input Capture Flag ICF1 im Timer Interrupt Flag Register 
TIFR gesetzt."

Warum gibt es neben TCNT1H und TCNT1L noch die beiden Register ICR1H und 
ICR1L? Im falle eines Interrupts kann ja auch TCNT1H und TCNT1L 
ausgelesen werden.

Geht das auslesen von ICR1H / ICR1L hardwarebedingt schneller?
Gast #4866819
Lesenswert?
• ▲
▼
Die Betonung liegt auf "sofort": bis die Interruptroutine erreicht ist, 
vergehen im besten Fall einige Takte, es können aber auch viele sein, 
wenn z.B. in einem Programmteil Interrupts global gesperrt wurden.
#4866865
Lesenswert?
• ▲
▼
Hans M. schrieb:
> Im falle eines Interrupts kann ja auch TCNT1H und TCNT1L
> ausgelesen werden.

Code ausführen kostet Zeit, d.h. ehe man im Interrupthandler landet, 
kann der Timer schonmal >100 Zyklen weiter gezählt haben, insbesondere 
wenn andere Interrupts gerade in Bearbeitung sind.

Es ist also ne Frage, ob Du Zeiten exakt messen willst oder Dir ne 
ungefähre Hausnummer ausreicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren