各位,我也是最近做项目才碰到的问题,Timer0_A1比较模式中断问题,比如下面代码不能进入中断,但是改为Timer0_A0可以进入中断
硬件是自己设计的,没问题,因为硬件上有LED,所以我写了个下面的实验代码来测试Timer0_A1
#include<msp430g2433.h>
#define LED_R BIT0 //RED LED(P2.0)
void main()
{
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 = CALBC1_1MHZ; // Set DCO
DCOCTL = CALDCO_1MHZ;
P2DIR |= LED_R; //LED
P2OUT &= ~LED_R;
TACTL |= TASSEL_2 + MC_1 + ID_0;
TA0CCTL1 |= CCIE;
TA0CCR1 =10000;
while(1);
}
static unsigned int Timer0_A1_Counter =0;
#pragma vector=TIMER0_A1_VECTOR
__interrupt void Timer0_A1()
{
if(TAIV ==2)
{
Timer0_A1_Counter ++;
if(Timer0_A1_Counter ==50)
{
Timer0_A1_Counter =0;
P2OUT ^=LED_R;
}
}
}
正常工作应该是LED灯1Hz闪烁,但是却不工作。以上代码定时器初始化的时候,如果(TA0CCTL1 |= CCIE; TA0CCR1 =10000;)这处改为(TA0CCTL0 |= CCIE;TA0CCR0 =10000;)并且中断向量(TIMER0_A1_VECTOR)改为(TIMER0_A0_VECTOR),也就是Timer0_A0是没问题的,可以正常闪烁
试了一天了都不行,也查了很多资料,网上也偶有反映这个问题的,谢谢!!