Forum: Compiler & IDEs Berechnung Tuning Word (Nachkommastellen)


von MArtin (Gast)


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!

von Falk B. (falk)


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

von Kai G. (runtimeterror)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.