Forum: Mikrocontroller und Digitale Elektronik InputCapture mit 32bit Auflösung


von Th B. (tbusse)


Lesenswert?

Moin moin

Ich bin zur Zeit dabei ein Frequenzzähler mit Anzeige und einem Atmega16 
als Basis zu realisieren. Der uC ist mit 16MHz getaktet und der 
Messbereich soll zwischen 0,25 und 2kHz liegen. Um die Auflösung im 
unteren Bereich hoch zu halten messe ich die Periodendauer mit Hilfe der 
Inputcapture Funktion.
Nun zu meinem Problem. Ich habe einen Prescale von 1024 gewählt, so dass 
die Anzahl der Takte bei 0,25Hz gerade noch in die 16Bit des ICR passen. 
Dann habe ich aber das Problem das ich bei 2kHz nur noch eine grobe 
Auflösung habe. Wähle ich einen kleineren Scale um die Auflösung im 
"hohen" Bereich zu verbessern läuft der Timer1 zwischen zwei Interrupts 
bei kleinen Frequenzen über...
Ein Lösungsansatz von mir war nun nach jedem CaptureInterrupt den Timer1 
zu reseten und dann die Überläufe des Timers bis zum nächsten Interrupt 
zu zählen plus das was dann im ICR steht. Im Forum stand aber das es 
ungünstig wäre den Timer immer wieder zurück zusetzen, da dies die 
Ergebnisse verfälschen würde.
Ideal wäre für mich ein 32bit Timer1 und ICR ;-).

Hat jemand andere Lösungsansätze?

von Ahh (Gast)


Lesenswert?

Man kann auch laenger als eine 16bit Periode zaehlen wenn man sich den 
Overflow interrupt geben laesst und dort Buch fuehrt.

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.