Forum: Mikrocontroller und Digitale Elektronik MSP430F2012 - PWM und Timer Problem


von Nat (Gast)


Lesenswert?

Hallo. Ich brauche Hilfe. Ich arbeite mit MSP430F2012. Ich habe 
folgendes Problem. Ich muss PWM ansteuern und gleichzeitig einen Timer 
von 10 s laufen lassen, der Timer soll nach der Zeit die PWM 
ausschalten. Da der uC nur einen Timer hat, geht das nicht (oder habe 
ich da was falsch verstanden). Hat jemand vielleicht eine Idee, wie ich 
das Problem lösen kann.

Ich bedanke mich schon im Voraus bei Allen, die mir antworten.

von Wolfgang Mües (Gast)


Lesenswert?

Dein PWM-Timer hat ja auch einen Interrupt.

Schreibe eine kleine Interrupt-Routine dafür, die einen Zähler 
dekrementiert und nach 10s den PWM totlegt.

von Stefan (Gast)


Lesenswert?

>Da der uC nur einen Timer hat, geht das nicht
Doch, geht schon!

>oder habe ich da was falsch verstanden?
Ja, hast Du ;-)

Der Timer_A beim F2012 hat 2 CCR-Register.
Im outmode benutzt Du beide CCR-Register um die gewünschte PWM-Frequenz 
und den Duty-Cycle festzulegen. Beim Frequenz-bestimmenden CCR-Register 
benutzt Du zusätzlich dessen IRQ, um in der ISR einen Zähler zu 
inkrementieren (siehe Wolfgang Mües) und bei 10s ist eben Schluß!

Der User-Guide der 2xxx-Familie klärt Dich über die Verwendung von CCR, 
outmodes, usw auf!

von Nat (Gast)


Lesenswert?

Sorry (vieleicht bin zu blöd dafür)
>um in der ISR einen Zähler zu inkrementieren
heißt das ich könnte eine normale Variable hochzälen lassen?

Das habe ich gemacht, aber er spring nie in die ISR.

Könnt Ihr mir vieleicht ein Beispiel geben, wie die ISR für meinen Fall 
sein soll.

von Jörg S. (joerg-s)


Lesenswert?

Kannst auch den Watchdog als 2. Timer nutzen.

von Stefan (Gast)


Lesenswert?

@Nat
>um in der ISR einen Zähler zu inkrementieren
>heißt das ich könnte eine normale Variable hochzälen lassen?
>Das habe ich gemacht, aber er spring nie in die ISR.
Mir scheint so, als würden Dir einige Grundlagen fehlen...
Ich kann Dir nur raten, Dir mal den User-Guide zu Gemüte zu führen und 
die Code-Beispiele von TI anzuschauen!

@Jörg
>Kannst auch den Watchdog als 2. Timer nutzen.
Könnte man, aber Timer_A reicht völlig aus.
Daher würde ich den WDT lieber Watchdog spielen lassen!

von Nat (Gast)


Lesenswert?

Danke für eure HILFE. Es geht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.