Hallo Thoralt,
schön, daß Du wieder ein wenig Zeit findest.
thoralt hat geschrieben:ich bin gerade dabei, das Handbuch für das DDS der neuen Firmware anzupassen.
Oh ja, das schöne Handbuch ist in der Tat inzwischen nicht angefaßt worden...
thoralt hat geschrieben:Momentan scheitere ich daran, dass ich im Sweep-Modus keine Marker sehe. Woran kann das liegen?
[EDIT]
Ich konnte mittlerweile Marker sehen
![Smile :)](./images/smilies/icon_smile.gif)
Es lag daran, dass ich im dekadischen Modus war und dummerweise keine Dekade im Sweep eingestellt hatte. Aber es war noch ein anderer "Fehler" im Spiel: Ich hatte einen linearen Sweep eingestellt. Dann sehe ich keine Marker. Sobald ich auf logarithmisch umschalte, sind die Marker wieder da. Ist das ein Feature?
[/EDIT]
Wenn Du so willst, dann ist es ein Feature, daß es nur Marker im logarithmischen Modus gibt, aber es ist auch dokumentiert:
Code: Alles auswählen
"changelog.txt":
* Sweep markers are now available for all log sweep modes: up, down, up+down
* note: sweep markers are still not available for linear sweep modes, sorry.
Im logarithischen Modus haben die Marker alle den gleichen Abstand, das kann man einfach vorausberechnen und im Interrupt ist dann nur eine simple Addition nötig. Im linearen Modus muß man da multiplizieren und das hatte ich mich damals nicht getraut. Aufgrund der Erfahrung mit den anderen Modulen, daß man dem Interrupt durchaus mehr zumuten kann, könnte man das vielleicht noch ergänzen, wenn Du nach dem PWM noch Platz überläßt.
thoralt hat geschrieben:
Noch eine andere Sache fiel mir auf:
Code: Alles auswählen
main.c, Zeile 430ff.:
switch (pParams->ucWaveForm)
{
case WAVE_TRIANGLE:
fLevel *= 1.224745;
break;
case WAVE_LOGIC:
fLevel *= 0.70711;
break;
case WAVE_SQUARE:
// no sweep markers in logic mode
break;
}
Irgendwie macht das keinen Sinn - warum steht der Kommentar "no sweep markers in logic mode" im case-Zweig für den Rechteck-Modus? Wie ist das ursprünglich gemeint?
Klingt vielleicht auf den ersten Blick nach wenig Sinn, aber: diese Switch/Case-Anweisung ist Teil der Berechnung, wie hoch die Marker maximal sind, damit der Abschwächer richtig gesteuert werden kann. Da das im Logic-Mode unsymmetrisch wird, und ich auch den Sweep im Logic-Mode unterdrückt habe, ist dieser Kommentar einfach eine Gedankenstütze, daß hier der Sonderfall für Logic nicht beachet werden muß. Da fehlt eigentlich die Anweisung
, die ich mir aber aus offensichtlichen Gründen geschenkt habe.
Viele Grüße
Paul
PS: Nachfrage: Kannst du auch die Bißspuren am Rechteck unterhalb von 20Hz beobachten?