> Ist TimerA der richtige?
Ja, den kannst Du nehmen. Ebenso geht aber auch Timer_B, wenn denn Dein
MSP430-Derivat einen hat.
> Vom Prinzip setze ich den Timer mit meiner gewünschten Frequenz,
> starte ihn anschließend und lasse dann durch den Timer meinen
> gewünschten Ausgang toggeln?
> Ist das soweit richtig?
Im Prinzip ja. Du musst eine Timerinterruptroutine schreiben, das ist
eine Funktion, die beim Ablauf des Timers aufgerufen wird. In dieser
schaltest Du dann P3.5 um.
Den Timer programmierst Du so, daß Du zunächst die Taktquelle festlegst,
also ACLK, SMCLK oder MCLK. Dann kannst Du einen Eingangsteiler
festlegen (/1 bis /8). Mit der so erzeugten Frequenz zählt der Timer. Du
kannst nun einen (16-Bit-)Wert vorgeben, bis zu dem der Zähler zählt,
bevor er überläuft und sich auf 0 setzt, um wieder von vorne anzufangen.
Angenommen, Du versorgst den Timer mit MCLK (das ist der Takt, mit dem
der CPU-Teil des Controllers läuft), der bei 8 MHz liegt und verwendest
einen Vorteiler /8. Dann zählt Dein Timer mit 1 MHz Taktrate; jeder
Zählvorgang dauert also 1 µs. Wenn Du als Ablaufwert 199 einträgst, dann
zählt der Zähler 200 µs lang, bevor er umspringt. Damit erzeugst Du ein
5 kHz-Signal.
Löst Du damit einen Interrupt aus und toggelst im Interrupt Deinen
Lautsprecherausgang, so erzeugst Du damit effektiv ein Rechtecksignal
mit 2.5 kHz, was ein recht hochfrequentes Quietschen sein dürfte.
Übliche Quarzwecker arbeiten mit 1 kHz; Du musst also den Timer auf 2
kHz Interruptrate anpassen. Also: Ablaufwert 499 verwenden.
Wenn P3.5 aber auch der Ausgang einer der Capture/Compare-Einheiten von
Timer_A/Timer_B ist (-> steht im Datenblatt), dann kannst Du auch die
Capture/Compare-Einheit so programmieren, daß die das Umschalten selbst
übernimmt, dann musst Du keine Interruptroutine schreiben.
Derzeit ist der TI-Server irgendwie gestört, daher kann ich mir das
Datenblatt nicht ansehen.