Re: PWM auf der DDS
Verfasst: 16.11.2010, 00:54
Wegen der Marker im Linear-Sweep-Modus: Ich hab da grade mal etwas gespielt, also prinzipiell geht das. Ich muß aber erst meinen Code von vor zwei Jahren wieder verstehen.
Einen Bug hab' ich noch entdeckt: Wenn man die (normale) Frequenzeinstellung auf Terz-Modus umstellt, dann ist der auch bei den Start- und Stopfrequenzen für den Sweep aktiv. Aber irgendwie greift die Routine immer zuächst auf den alten Wert zu, also wenn man grade den Startwert z.B. auf 100Hz gestellt hat und der Endwert steht bei 8000Hz und man ändert diesen, dann springt der erst mal auf die 100Hz. Hmmm.
Gute Nacht
Paul
[EDIT]
So, heute nochmal drüber nachgegrübelt und die Änderungen eingebaut. Jetzt gibt es auch im Linear-Sweep-Modus Marker (der Code ist aber noch nicht eingecheckt). Dabei sind aber zwei Fragen aufgetaucht:
a) Beim absoluten Octave-Marker-Modus bezieht sich der Code auf eine "Frequenz" 6.875Hz. Ich hab keine Ahnung mehr, wie ich darauf komme. Könnte aber auch ein Fehler sein, denn der Kommentar sagt, daß sich die Marker auf 2^x Hz befinden (was sie aber nicht tun). Ich kann das jetzt ändern, aber bei der Gelegenheit die Frage an die "Musiker" unter uns: wäre es nicht sinnvoller, die absoluten Octave-Marker auf 2^x*(eine Grundfrequenz) zu legen? Wenn ja, welche?
b) Im relativen Marker-Modus beziehen sich die Marker auf die Centerfrequenz. Das ist für den Log-Modus perfekt, aber im Linearmodus Quatsch. Soll ich mich für die Marker im Linear-Sweep nicht besser auf die Startfrequenz beziehen?
Der zusätzliche Code frißt derzeit etwas mehr als 600 Byte, das ist aber noch vertretbar. Was meint Ihr?
Viele Grüße
Paul
[EDIT2]
Die Ursache für das Problem mit dem Terzmodus habe ich auch lokalisiert. Leider hatte ich damals mit der Implementierung (schnell-schnell
) nicht bedacht, daß es nicht nur die normale Frequenzeinstellung gibt, sondern eben auch 3 für den Sweep-Modus (Start, Stop, Center). Es gibt aber nur eine (1) Variable (uint8_t gc_TerzNum) für den Terz-Index. Eine einfache Lösung wäre, entsprechend die Indizes für die restlichen drei Frequenzen nachzurüsten (ist jeweils nur ein Byte), und eine entsprechende Fallunterscheidung zu machen. Noch Ideen?
Einen Bug hab' ich noch entdeckt: Wenn man die (normale) Frequenzeinstellung auf Terz-Modus umstellt, dann ist der auch bei den Start- und Stopfrequenzen für den Sweep aktiv. Aber irgendwie greift die Routine immer zuächst auf den alten Wert zu, also wenn man grade den Startwert z.B. auf 100Hz gestellt hat und der Endwert steht bei 8000Hz und man ändert diesen, dann springt der erst mal auf die 100Hz. Hmmm.
Gute Nacht
Paul
[EDIT]
So, heute nochmal drüber nachgegrübelt und die Änderungen eingebaut. Jetzt gibt es auch im Linear-Sweep-Modus Marker (der Code ist aber noch nicht eingecheckt). Dabei sind aber zwei Fragen aufgetaucht:
a) Beim absoluten Octave-Marker-Modus bezieht sich der Code auf eine "Frequenz" 6.875Hz. Ich hab keine Ahnung mehr, wie ich darauf komme. Könnte aber auch ein Fehler sein, denn der Kommentar sagt, daß sich die Marker auf 2^x Hz befinden (was sie aber nicht tun). Ich kann das jetzt ändern, aber bei der Gelegenheit die Frage an die "Musiker" unter uns: wäre es nicht sinnvoller, die absoluten Octave-Marker auf 2^x*(eine Grundfrequenz) zu legen? Wenn ja, welche?
b) Im relativen Marker-Modus beziehen sich die Marker auf die Centerfrequenz. Das ist für den Log-Modus perfekt, aber im Linearmodus Quatsch. Soll ich mich für die Marker im Linear-Sweep nicht besser auf die Startfrequenz beziehen?
Der zusätzliche Code frißt derzeit etwas mehr als 600 Byte, das ist aber noch vertretbar. Was meint Ihr?
Viele Grüße
Paul
[EDIT2]
Die Ursache für das Problem mit dem Terzmodus habe ich auch lokalisiert. Leider hatte ich damals mit der Implementierung (schnell-schnell
