一下是定时器部分的程序 ,之前在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;
}
TASSEL1 这个不对 换成TASSEL2
TACTL = TASSEL_2 + MC_1;
TASSEL1 是ACLK 驱动的 ACLK 是要低速晶振驱动输出的32768的 那种晶振 如果你没低速晶振的话就没有计数时钟了
这个TIMERA1_VECTOR 中断向量是对的么?
时钟
中断向量为TIMERA0_VECTOR ,试过了,也不行。 理论上MC不为0时,定时器开始计数。但是这款单片机TAR根本没有计数,另外从SMCLK上也测试不出时钟,只有高电平。各种纠结
定时器没使能
TA0CTL = TASSEL1 + TASSEL0 + TACLR + TAIE; // Ext. INCLK, interrupt
楼主SMCLK不输出找到原因了吗 我也遇到这个问题了
TASSEL1与TASSEL_2是一样的,都是SMCLK
TASSEL_1才是ACLK
你用的定时器中断,需要开TAIE 你只开了CCIE(捕获/比较中断),可是你没有输入信号,是捕获不到的,所以只能是定时器中断