-
-
Erfahrener Benutzer
Roboter-Spezialist
In welchem Frequenzbereich bewegt sich das ganz denn?
Als kurze Idee (nur jetzt mal so aus dem Ärmel kann also locker Denkfehler enthalten) würde ich sagen wenn die Ausgangsspannung proportional zur Frequnz sein soll, dann ist die Periodendauer umgekehrt proportional zur Ausgangssapannung.
Ich würde dann zB mit dem ICP0 Pin die Periodendauer messen. Den Timer möglichst so einstellen, dass er bei der kleinsten Frequenz die vorkommen kann gerade noch nicht überläuft aber trotzdem noch ein wenig was bei der größten Frequenz zu zählen hat.
Auf dem gleichen Timer (kenne den meg8535 nicht, benutze immer den mega
würde ich dann die gemessene Zeit in das Compare Register schreiben. Jetzt brauchst Du nur noch im Compare IRQ einen Pin einschalten und bei Overflow wieder aus. Dann hast du schonmal eine PWM die proportional zur Frequenz ist. Das ganze noch durch einen Tiefpass und dann sollte es das gewesen sein.
Gruß Philipp
PS: Das neue setzen des Compare Wertes vielleicht erst nach einem Timeroverflow wieder freigeben, damit da nix durcheinander geht. Sollten in C nicht viel mehr als 10 Zeilen Code werden.
PPS:
Diese Variante misst die gesamte Periodendauer, also von steigender zu steigender oder fallender zu fallender Flanke (was IMHO auch sinn macht, wenn man eine Frequenzabhängigkeit haben möchte). Wenn du mit der Capture Funktion nur die Hightime zB messen möchtest, dann kannst du die Triggerung in der ISR umschalten musst, dann aber das IRQ Bit löschen, weil das sonst sofort wieder einen IRQ Triggern würde. Steht aber auch im Datenblatt ganz gut beschrieben
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen