Forum: Mikrocontroller und Digitale Elektronik AVR: Pending Interrupt und Input Capture Unit


von Thomas (Gast)


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.

von Karl H. (kbuchegg)


Lesenswert?

Ja, das hast du richtig herausgelesen.

von Gast (Gast)


Lesenswert?

Genau. Der Sinn des Input Capture-Features besteht darin, Zeitmessungen 
mit der Auflösung von einem Systemclock zu ermöglichen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.