Hallo,
für TCBn kann ich dir meine Lib geben. Für TCA ist noch nicht fertig. Ist aber im Prinzip der gleiche Aufbau wie für TCB. Für die Messbereiche musst du die Prescaler durchrechnen und anpassen. Leider hat TCB nur 2 eigene Prescaler. 1 und 2. Man kann ihn noch auf den von TCA umstellen. TCA hat Arduino defaultmäßig einen Prescaler von 64 eingestellt. Es kommt darauf an welche Messauflösung du haben möchtest. Grundsätzlich kann man ja alles mit allen Prescalern messen. Aber 0Hz kann man nicht messen und wenn der Messbereich zu klein gibts Fehlmessungen wegen Überlauf.
Tipp: Bau dir eine Exceltabelle zum rechnen über alle Prescaler.
Bsp. 500Hz sollen gemessen werden. -> Periodendauer 2ms
Prescaler 2 -> Auflösung 125ns. Messbereich 65535. Maximal messbare Periodendauer 125ns * 655535 = 8,191ms
Geht. Geht auch mit Prescaler 1.
5kHz funktioniert demzufolge auch.
Mit Prescaler 2 kannste demzufolge messen bis runter auf 1/8,191ms = 122Hz.
Für alles was drunter liegt musste die Prescaler von TCA verwenden.
Deswegen wäre ein externer D/A nicht falsch.
Wenn die Timer und Ausgänge nicht ausreichen und du doch mehr benötigst, dann kann ich dir noch das Microchip Board "AVR128DB48 Curiosity Nano" empfehlen. Kann man hier und da bestellen. Da ist ein AVR128DB48 drauf. Der ist vom Aufbau und Handhabung zum ATmega4809 sehr ähnlich/verwandt. Hat von allen mehr und man kann zwei TCB zu einem 32Bit TCB kaskadieren. Damit kann man quasi mit Prescaler 2 alles messen. Ein D/A ist auch vorhanden. Wenn du nicht alles selbst machen möchtest gibts auch dafür von Spencekonde auf Github ein Arduino Package. Für den ATmega4809/NanoEvery übrigens auch von MCUdude.
![]()
libraries.zip (41,2 KB)