AVR: Pending Interrupt und Input Capture Unit

Gast #1469736
Lesenswert?

Hallo,

ich möchte die Frequenz eines gepulsten Signals messen. Üblicherweise 
lässt man dazu das Signal einen Interrupt "A" auslösen, in dem dann der 
Wert eines Zählers ausgelesen und z.B. mit dem zuletzt ausgelesenen Wert 
verglichen wird.

Befindet sich das Programm allerdings gerade in einem andern Interrupt 
"B", wird der Interrupt "A" nicht sofort ausgelöst, sondern erst nach 
Beenden von "B". Dann ist aber der Zähler schon etwas weiter gelaufen 
und der Messwert in "A" ist verfälscht.

Habe ich das Datenblatt richtig verstanden, dass die Lösung dieses 
Problems die Input Capture Unit ist? Das zu messende Signal triggert die 
Übertragung des zugehörigen Zählerwertes in das ICR-Register. Dieses 
kann dann bequem später in "A" ausgelesen werden und man erhält wieder 
den korrekten Messwert?

Vielen Dank, Th.

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