www.mikrocontroller.net

Forum: Compiler & IDEs Berechnung Tuning Word (Nachkommastellen)


Autor: MArtin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich habe eine Frage zu einer Berechnung des Tuning Words für einen DDS 
Baustein.
Das TuningWord errechnet sich ja wie folgt:
                          2^32
TuningWord =  fout  *   -----------------
                         SystemClock

Da der SystemTakt konstant bleibt habe ich mir einen eine Konstante 
deklariert. (2^32 / Systemtakt)
Diese Konstante multipliziere ich jetzt mit der Frequenz (fout) und 
erhalte das Tuning Word. Jedoch ist die Konstante ja mit 
Nachkommastellen versehen. Was gibt es für Möglichkeiten den 
Rundungsfehler möglichst gering zu halten?

Danke euch!

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ MArtin (Gast)

>ich habe eine Frage zu einer Berechnung des Tuning Words für einen DDS
>Baustein.

Das Thema hatten wir vor kurzem erst SEHR ausführlich.

>Nachkommastellen versehen. Was gibt es für Möglichkeiten den
>Rundungsfehler möglichst gering zu halten?

Ja, Festkommaarithmetik.

Beitrag "Frage zur C Syntax"
Beitrag "Re: Frage zur C Syntax"

Jaja, als Workaround kann/muss man auf dem AVR Fliesskomma nehmen, 
allerdings verliert man dann gut 9 Bits Auflösung.

MFG
Falk

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was spricht gegen Festkommaarithmetik?

Wie breit ist fout bzw. SystemClock?
Wie genau muss das sein?

Du kannst z.B.

                          2^(32+n)
TuningWord =  (fout  *   -----------------) / 2^n
                         SystemClock

berechnen. n wird einfach so gewählt, dass deine Konstante beim 
kleinsten Möglichen Takt nicht zu groß wird.

"/ 2^n" ist natürlich eine Shift-Operation

Gruß

Kai

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.