Forum: Mikrocontroller und Digitale Elektronik PWM unterbrechen MSP430


von MSP430 (Gast)


Lesenswert?

Hi,

klurze Frage zum  Beenden einer PWM beim MSP430.

Die PWM läuft problemlos an, einzig würde ich sie gerne in bestimmten 
Zeiten unterbrechen.

1
void timer0_A5_init(void)    //PWM
2
{
3
TA0CTL   = TACLR;
4
TA0CCTL0  = CCIE;
5
TA0CCR0  = 11;          
6
TA0CTL  = TASSEL__ACLK;    
7
TA0CTL    |= MC__UP;// Up mode.
8
  
9
TA0CCR2  = 5;
10
TA0CCTL2 |= OUTMOD_3;  // set / reset - Modus
1
//main-while(1)
2
while(1)
3
{
4
TA0CTL  |= MC__UP;
5
TA1CCTL0 |= CCIE;
6
__delay_cycles(655360); //0,1 on
7
TA1CCTL0 &=~ CCIE;
8
TA0CTL    |= MC__STOP;
9
10
__delay_cycles(655360/3);  //0,1 off
11
        
12
TA1CCTL0 |= CCIE;
13
TA0CTL    |= MC__UP;
14
__delay_cycles(655360/2); //0,1 on
15
TA1CCTL0 &=~ CCIE;
16
TA0CTL    |= MC__STOP;
17
__delay_cycles(5898240);
18
}


...leider läuft die PWM unentwegt weiter... Ich hatet gedacht, durch den 
MC__STOP - Befehl für den Timer würde sie stoppen, tut sie aber nicht.

Was mache ich falsch?

von Nico (nico123)


Lesenswert?

Welcher MSP430? Welcher Timer?

MC__STOP sollte den Timer stoppen!

von MSP430 (Gast)


Lesenswert?

CC430F5137

...oder muss man zum Stoppen TA0CTL &=~ MC__STOP; schreiben?

von Nico (nico123)


Lesenswert?

Probiers aus oder lösche einfach Bit4+5 in TA0CTL von Hand ohne dieses 
Makro zu nutzen.

von nur mal so (Gast)


Lesenswert?

Warum änderst Du nicht einfach den OUTMOD?

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.