Das nachfolgende Beispiel baut auf das Programmierbeispiel 7.2 auf, das wir in Kapitel 7.2 schon kennengelernt haben. Jetzt wird allerdings anstatt eines Dreiecksignals ein Sinussignal am Ausgang erzeugt. Da der MSP430 keine negativen Spannungen erzeugen kann, wurde der Sinus um einen Offset von 2000 (entspricht etwa 1V) verschoben, um so auch die negative Halbwelle generieren zu können.
Listing 7.5: | Sinussignal mit einem D/A-Port |
Das Programm führt nach der Initialisierung eine Endlosschleife aus, in der am Ausgang das Sinussignal aus einer Wertetabelle „sina“ erzeugt wird. Für die Interpolation vieler nichtlinearer Funktionen sind Wertetabellen, wie in diesem Beispiel, platzsparender und effektiver als andere Methoden. Man könnte den Sinus natürlich auch über eine Taylorreihenentwicklung oder durch Verwenden der math.h-Bibliothek berechnen. Das ist allerdings nur dann sinnvoll, wenn man eine besonders hohe numerische Genauigkeit auf Kosten von Rechen- und Speicherkapazität erreichen will.