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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.