各位:我用的是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
Peter_Zheng:
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是中断标志位
Young Hu:
回复 Peter_Zheng:
zhi chen,
您好,
在另一个帖子里已经回复了您。
希望您以后在发帖子的时候,能够将采用的编程环境,软件设置等等描述清楚,这样可以更快更好的定位问题解决问题。谢谢!