MSP430AFE253定时器中断怎么老进不去

sophia516   2013-1-15 16:31 楼主
一下是定时器部分的程序 ,之前在149上调试成功,换了这款单片机 不只为什么进不了中断,请高手指点

void Timer_int()
{
   TACTL=TACLR;
   TACCTL0|=CCIE;
   TACCR0=1000;
  TACTL|=TASSEL_1+MC_2;

}
int main()
{
    WDTCTL = WDTPW + WDTHOLD;
    P1DIR|=BIT0;
    AFE253_int();
    Timer_int();
   _BIS_SR(LPM0_bits + GIE);
    while(1)
    {
         ;
    }
}
#pragma vector=TIMERA1_VECTOR   
__interrupt void Timer_A0()
{
    P1OUT^=BIT0;
}

回复评论 (8)

2推荐 kmf126 

TASSEL1 这个不对 换成TASSEL2  
   TACTL = TASSEL_2 + MC_1;

TASSEL1 是ACLK 驱动的  ACLK 是要低速晶振驱动输出的32768的 那种晶振 如果你没低速晶振的话就没有计数时钟了
点赞  2014-7-14 15:49

2推荐 dk_随风逝去 

这也可以?
点赞  2013-1-17 11:13
这个TIMERA1_VECTOR    中断向量是对的么?
点赞  2013-1-16 10:45

时钟

中断向量为TIMERA0_VECTOR ,试过了,也不行。   理论上MC不为0时,定时器开始计数。但是这款单片机TAR根本没有计数,另外从SMCLK上也测试不出时钟,只有高电平。各种纠结
点赞  2013-1-16 22:03

定时器没使能

TA0CTL = TASSEL1 + TASSEL0 + TACLR + TAIE; // Ext. INCLK, interrupt
点赞  2013-1-17 18:04
楼主SMCLK不输出找到原因了吗 我也遇到这个问题了
点赞  2014-2-11 09:03
引用: kmf126 发表于 2014-7-14 15:49
TASSEL1 这个不对 换成TASSEL2  
   TACTL = TASSEL_2 + MC_1;

TASSEL1 是ACLK 驱动的  ACLK 是要低速 ...

TASSEL1与TASSEL_2是一样的,都是SMCLK  
TASSEL_1才是ACLK
点赞  2016-5-19 10:59
你用的定时器中断,需要开TAIE     你只开了CCIE(捕获/比较中断),可是你没有输入信号,是捕获不到的,所以只能是定时器中断
点赞  2016-5-20 10:26
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复