-
-
Erfahrener Benutzer
Robotik Visionär
Ich weiss zwar nicht wozu man beim Schrittmotor einen 16 Bit Zähler gebrauchen kann, aber für die Freqwunzerzeugung könnte ich weiterhelfen.
Zum einen kann man wohl irgendwie USI und einen Timer zu einem 12 Bit timer kombinieren.
Die Standradmethode für die Freqwunzerzeugung mit hoher auflösung ist ein NCO oder nummerisch gesteuerter Oszillator. Mit einem AD wandler als Ausgange hat man dann einen DDS Generator. Allerdings braucht man da ziehmlich viel Rechen zeit.
Wenn es einem nur um ein Rechtecksignal mit Variabler frequenz geht, kann man den Zähler um eine Bruchanteil erweitern. Den Zähler in CTC Mode laufen lassen und im Interrupt jeweils den Bruchanteil zu einer 8 oder 16 Bit zahl addieren. Wenn man bei der Addition einen Überlauf kriegt wird der Wert im output compare register um einen höher gesetzt als sonst. Im mittel kriegt man so Frequenzen als hätte der Teilerfaktor des Zählers noch ein Paar Bits nach dem Komma. Es wären als Teilerfaktoren wie z.B. 200.125 möglich.
Für die Vermutlich niedrigen Frequenzen, wie man sie Mit dem 16 Bit timer erhalten würde, müßte man die Überläufe in Software zählen und dann erst kurz vor ende der Zeit, z.B. im vorletzen compare match den output mode auf toogle stellen.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen