Forum: Mikrocontroller und Digitale Elektronik MSP430 Timer


von Msp430_user (Gast)


Lesenswert?

Hallo,

auf einem MSP430 wird ein Timer eingesetzt umd ein delay in 
Millisekunden zu erzeugen.
Nun bin ich etwas verwirrt. Welche Frequenz wird für den Timer benutzt? 
Ich benutze den Timer Mode "Up Mode".
Warum eigentlich das Register TA0EX0 = 7?
1
void initTimerA0()
2
{
3
    TA0CCTL0 = CCIE;
4
    TA0CCR0 = 32000;
5
    TA0EX0 = 7;  
6
} 
7
8
void delay(uint16 delay)
9
{
10
    TA0CTL |= TASSEL_1 + TACLR | MC_1; 
11
    TA0CCR0 = delay * 2;    
12
    __bis_SR_register(LPM3_bits + GIE);
13
}
14
15
#pragma vector = TIMER0_A0_VECTOR
16
__interrupt void TIMER0_A0_ISR (void)
17
{
18
    TA0CTL = MC_0; //stop timer
19
    __bic_SR_register_on_exit(LPM3_bits);
20
}

von wv (Gast)


Lesenswert?

Hallo,
sag doch erstmal, welchen MSP430 Du benutzt, das Register TA0EX0 gibts 
nicht bei allen.
Die Zeile
TA0CTL |= TASSEL_1 + TACLR | MC_1;
gehört ins init, damit ist auch festgelegt, dass der Timer mit der ACLK 
läuft, welche Frequenz die ACLK hat, hängt davon ab, wie Dein 
Basic-Clock-System initialisiert ist.
Außerdem würde ich in der init erstmal TA0CCR0 auf 0 setzten, damit der 
Timer erstmal nicht losläuft, sonst landet er gleich nach Aufruf der 
Init in der IRQ und Dein Programm steht erstmal im LPM3.

soweit erstmal

Gruß wv

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.