Problem bei linearer Frequenzerzeugeung

Gast #593199
Lesenswert?
• ▲
▼
Hallo

Habe ein Problem bei der Erzeugung eines Sinus und hoffe ihr könnt mir 
helfen.

Zuerst zur Aufgabenstellung was das Programm machen soll:

Erzeugung eines Siuns von 3-150Hz mittels DA-Wandler und einstellen der 
Frequenz über Poti. Dabei sollte die Frequenz linear einstellbar sein. 
Das ist sie aber bei mir nicht.

Kurz meine Vorgehensweise:

Lese den AD-Wert des Potis ein und schreibe ihn in das Compare-Registers 
des Timers. Der Timer läuft im CTC-Modus und beim Capture Interrupt wird 
der Wert aus einer Sinustabelle (mit 256 Werten) über SPI dem DA-Wandler 
übergeben. D.h. die Frequenz ändere ich durch die Zugriffszeit auf die 
Tabelle.
Nun ändert sich aber dadurch die Frequenz nich linear. Bei kleinen 
Frequenzen kannn man die Frequenz sehr fein einstellen, wobei bei 
höheren diese sprunghaft ansteigt.

Das Problem ist, dass ich einen 8-Bit Timer mit CLK/128 benutze und 
somit dessen Auflösung 8 ns ist (16MHz Quarz). Das bedeutet bei 
niedrigen Comparewerten n=5 (hohen Frequenzen) das Übertragen einer 
Periode          256 x n x 8ns = 10ms = 100Hz
dauert. Wird der comparewert nur um 1 erhöht so dauert die Übertragung
256 x n+1 x 8ns =12ms = 83Hz

Benutzt habe ich ein Mega8. wenn ich den Timer schneller laufen lasse 
wird es zwar besser aber ich komme nicht mehr in die niedrigen 
Frequenzen.

Wie würdet ihr so etwas realisieren bin für jeden Tip dankbar

Gruß








Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.