InputCapture mit 32bit Auflösung

OP #1074555
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?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.