03 - DAC-Problem
Das Problem mit dem nicht ganz sauberen Output an Kanal 2 des Digital-to-Analog-Konverters (siehe Kapitel 12, Abbildung 12.9) ist — dank der Unterstützung durch Herrn Buchmann, der bereits entscheidend bei der Lösung des UART-/USART-Problems mitgewirkt hat — ebenfalls gelöst! Es ist NICHT auf die Software und die dazugehörenden Erläuterungen im Buch zurückzuführen!
Das Problem ist in der Hardware des NUCLEO-Boards zu finden: Der Anschluss GPIOA/PIN5 bedient nicht nur Kanal 2 des DAC, sondern auch die User-LED. Obwohl die LED nicht verwendet wird und der Ausgang in der Betriebsart "Analog" betrieben wird, belastet die LED gemeinsam mit dem Widerstand R31 weiterhin diesen Pin. Herr Buchmann hat nun einfach den Widerstand R31 herausgelötet und die Software dann nochmal ausgeführt. Weiter unten sehen Sie dann, dass das Ausgangssignal des DAC dann wie erwartet aussieht.
Vorsicht: Bei unsachgemäßem Auslöten und späterem Neu-Einlöten des Widerstands R31 besteht die Gefahr, dass das Board zerstört wird)
Wenn Sie gerade dabei sind: Bei der "Rampenumkehr" für den DAC-Kanal 1 (Zeile 33 des Programmlistings, zu finden auf Seite 232) sollten Sie den Vergleich
if (dac1Data > DAC_MAX_VAL_12_BIT)
ändern in
if (dac1Data >= DAC_MAX_VAL_12_BIT).
Für Kanal 2 (gleiches Listing, Zeile 61) ist dieser Vergleich hingegen korrekt implementiert.