Also. Wie funktioniert ein Timer/Counter? (irrelevant welcher)
Timer und Counter sind prinzipiell das Selbe. Beides sind Zähler. Typischerweise wird ein Timer durch eine Clock (CPU oder externe Frequenz) erhöht um Zeitabstände zu generieren, ggf. auch PWM etc) getaktet. Ein Counter zählt einfach nur bestimmte Events. Was im Endeffekt ja fast das Selbe ist.
Angenommen du hast jetzt einen 2 Bit Counter (gibt es nicht, nur damit es kürzer ist).
Der Controller startet. Wert (binär) 00.
Dann kommt ein Event. Wert 01.
Und das Nächste. Wert = 10
Und das Nächste. Wert = 11
Aber was passiert jetzt? Der Counter ist mit seinen 2 Bits auf Maximum.
Nächstes Event. Wert: 00 - und: wenn gesetzt wird der Overflow Interrupt ausgelöst.
Du siehst, der Counter hat gar keine andere Wahl als überzulaufen, also sich wieder selbst zu nullen.
Hätte er mehr Bits zur Verfügung, dann würde er das 3. Bit setzen. Hat er aber nicht.
Daher brauchst du ihn im Overflow auch nicht zu resetten, das macht er von alleine.
Und, es sollte so gehen. Auch wenn die PWM Frequenz jetzt deutlich unter 64kHz liegt, du könntest ja auch mal die vom Flackercode messen
Ich glaube das war irgendwas 250Hz?
Wie es weiter geht... Dein Frequenzzähler ist jetzt quasi fertig.
Man könnte ihn jetzt detaillierter machen für niedrigere Frequenzen, beispielsweise auf 0,1Hz Auflösung.
Oder man könnte ihn umschaltbar machen und als reinen Zähler (ohne Frequenz) nutzen. Das wäre für Frequenzen im extrem niedrigen Bereich sinnvoll.
Ich würde beides machen, aber als Option per Schalter (oder auf'm Breadboard Steckbrücke, wie auch immer).
Letzteres würde am schnellsten gehen. Musst du wissen.
Das müsstest du auch selbst hin bekommen.