This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

A 定时器不能中断问题

Other Parts Discussed in Thread: MSP430F2132

各位:我用的是MSP430F2132的芯片,我的设置如下:

 BCSCTL2=0;
  BCSCTL1|=XT2OFF;
  TACTL=TASSEL_2+MC_2+TAIE;
  _EINT();

但是,就是不产生中断,连TAR记数都是0,我用软件TAR++ 使它溢出,也不产生中断,连TAIFG标记也没有,BCSCTL1|=XT2OFF;
这一句用不用都一样。更怪的是我置1 TAIFG也不中断,我错在哪里?谢谢指点!

 

  • 您好,能不能看看你中断服务程序部分的代码?

    其中,TAxIV寄存器需要程序主动清除相应中断标志位。

    另外,可以参考附件中的例子,仿照例子中中断服务程序的写法:

    msp430x21x2_ta1_03.c

    msp430x21x2_ta1_04.c

    msp430x21x2_ta1_07.c

    msp430x21x2_ta1_08.c

    msp430x21x2_ta1_09.c

    slac163c.zip
  • void main(void)

    {

     WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

     P1DIR |= 0x01;                            // P1.0 output

     TA0CCTL0 = CCIE;                           // TA0CCR0 interrupt enabled

     TA0CCR0 = 50000;

     TA0CTL = TASSEL_2 + MC_2;                  // SMCLK, contmode

     __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0 w/ interrupt

    }

    // Timer A0 interrupt service routine

    #pragma vector=TIMER0_A0_VECTOR

    __interrupt void Timer_A0 (void)

    {

     P1OUT ^= 0x01;                            // Toggle P1.0

     TA0CCR0 += 50000;                          // Add Offset to TA0CCR0

    }

    给你个例程参考一下,你的问题是CCRx没有设置,TAIFG是中断标志位

  • zhi chen,

    您好,

    在另一个帖子里已经回复了您。

    希望您以后在发帖子的时候,能够将采用的编程环境,软件设置等等描述清楚,这样可以更快更好的定位问题解决问题。谢谢!