MSP430G2553 Timer A - Interrupt bei TA0CCR1 - funktioniert nicht

Gast #3664605
Lesenswert?

Hi Leute!

Ich bin langsam ratlos...

Ich möchte beim MSP430G2553 den TA0CCR1 für die Compare-Funktion 
benutzen (1s), also habe ich:
1
void mcu_configure_timer_a( void )
2
{
3
  TA0CCTL1 = CCIE;
4
  TA0CCR1  = 32767;
5
  TA0CTL   = ( TASSEL_1 | MC_1 );         // ACLK, up-mode
6
}
und dann die ISR:
1
#pragma vector = TIMER0_A1_VECTOR
2
__interrupt void TIMER0_A1_ISR( void )
3
{
4
  switch( TA0IV )
5
  {
6
    case 2:
7
    {
8
      P2OUT ^= 0x08; // Toggle LED
9

10
      break;
11
    }
12

13
    case 4:
14
    {
15
      break;
16
    }
17

18
    case 10:
19
    {
20
      break;
21
    }
22
  }
23
}

Aber die Geschichte tut nichts...es passiert einfach garnichts - es wird 
kein Flag gesetzt, es kommt kein Interrupt, nichts. Also ehe die Frage 
gleich kommt: Der Rest drum herum passt, Interrupts sind freigegeben und 
so weiter, denn wenn ich:
1
void mcu_configure_timer_a( void )
2
{
3
  TA0CCTL0 = CCIE;
4
  TA0CCR0  = 32767;
5
  TA0CTL   = ( TASSEL_1 | MC_1 );         // ACLK, up-mode
6
}
und die ISR:
1
#pragma vector = TIMER0_A0_VECTOR
2
__interrupt void TIMER0_A0_ISR( void )
3
{
4
  P2OUT ^= 0x08; // Toggle LED
5
}
dann geht alles problemlos. Nur der TA0CCR1 will nicht. Ebenso wenig der 
TA0CCR2, der TA1CCR1 und der TA1CCR2. Aber der TA1CCR0 geht dann wieder. 
Es gehen also nur die CCR0-Interrupts.

Was mache ich falsch? Ich komme langsam nicht mehr weiter und bin am 
verzweifeln...habe bereits alles mögliche probiert. Bin auch die 
msp430g2553.h durchgegangen, sowie das Datenblatt und den User's Guide. 
Aber ich komm' nicht drauf. Habe ich da was übersehen bei den CCR1 und 
CCR2?

Kann jemand helfen?
Gast #3664858
Lesenswert?

Horst schrieb:
> Dann geht up nur mit CCR0.

Warum machst du dir es so schwer? Wirf einen Blick in den family user 
guide. Dort sind Bildchen mit den unterschiedlichen Timer Mode und den 
Zählgrenzen abgebildet. Und da steht genau, wann wohin gezählt. Da 
braucht man nicht raten oder probieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren