Brauche einen code für Arduino Thema: Timer??

2 Antworten

Du speicherst die Frequenzen als rationale Zahlen.

Wenn eine neue Frequenz hinzugefügt wird, dann bestimmst du deine Timer-Frequenz neu. Dazu bestimmst du den kleinsten gemeinsamen Nenner der Frequenzen und bringst alle Frequenzen auf diesen Nenner.

EDIT: Da es mir noch auffliel. Du musst den Bruch für die Hertzzahl vorher invertieren glaube ich. Kommt man leicht durcheinander, da Hz=1/s. Die Frequenz, die rauskommt, müsste mindestens so groß sein wie die höchste Einzelfrequenz.

Dieser Nenner ist die Frequenz, mit der du deinen Timer schachtelst. Die Zähler sind die Male, bei denen für die entsprechende Frequenz ein Impuls ausgelöst werden muss.

Wie du deinen Timer baust? Weiß ich nicht, was der Arduino dir anbietet. Wenn du einen Interrupt-Timer hast, dann nutze den, ansonsten musst du wohl aktiv warten.

Zu beachten auch: Wenn dein Timer die gemeinsame Frequenz nicht hinbekommt können sich womöglich Fehler akkumulieren. Da müsste man dann je nach Anwendungsfall schauen, ob man evtl. eine andere Lösung hernehmen möchte (evtl. irgendetwas mit Fourier).