MSP430定时器无法进入中断

2019-03-24 10:08发布

这是例程稍微改了一下,无法进入中断,我不是很明白TAR也会用在CCR1进行计数么还是只能用在CCR0计数中?那TIMERA1什么时候可以进入中断呢,datasheet中说的定时器溢出(TAIFG)情况下可以,这是跟TIMER0一样当TAR计数到CCR0就触发么?
int main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  P1DIR |= 0x01;                            // P1.0 output
  CCTL1 = CCIE;                             // CCR1 interrupt enabled
  CCR1 = 50000;
  TACTL = TASSEL_2 + MC_2;                  // SMCLK, Contmode
  _EINT(); //开中断
   while(1)
{   
}
}

// Timer_A3 Interrupt Vector (TAIV) handler
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
  switch( TAIV )
  {
  case  2:                                  // CCR1
    {
    P1OUT ^= 0x01;                          // Toggle P1.0
    CCR1 += 50000;                          // Add Offset to CCR1
    }
           break;
  case  4: break;                           // CCR2 not used
  case 10: break;                           // overflow not used
}
}



此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
ljj3166
1楼-- · 2019-03-24 16:25
 精彩回答 2  元偷偷看……
tanzhiying
2楼-- · 2019-03-24 16:40
< :TI_MSP430_内容页_SA7 -->
ljj3166 发表于 2015-6-11 22:11
记得计数器是16位的
最大只能计数到65535吧
这上来就是50000,hole的住不?

不是这个原因,这是连续计数模式,会依次循环的,相同的代码换成TIMER0就可以,用TIMER1就不行,真是不知道为啥?
ljj3166
3楼-- · 2019-03-24 18:23
模式2不会自动清零的吧。清标志位试试?
数码小叶
4楼-- · 2019-03-24 18:45
 精彩回答 2  元偷偷看……
数码小叶
5楼-- · 2019-03-24 21:07
算了,楼主一次问的我都乱了
数码小叶
6楼-- · 2019-03-25 01:55
楼主贴的代码是不是是不能运行的那个

一周热门 更多>

相关问题

    相关文章