msp430f169timera中断测脉宽问题

2019-03-24 11:12发布

下载仿真了800遍了,可是watch窗就是0.中断就进不去 确认过iar设置是正确的。程序也是网上流传最多的一个测脉宽的,为什么我的中断始终进不去呢? #include <msp430x14x.h>
unsigned int start,end;
unsigned char overflow;
void main (void)
{
 WDTCTL = WDTPW+WDTHOLD;                   //关闭看门狗定时器
 P1DIR = BIT0+BIT4;                        //设置P1.0方向为输出
 P1SEL = BIT2;                             //设置P1.2端口为功能模块使
 TACTL = TASSEL0+TACLR+TAIE+MC1;           //定时器A时钟信号选择ACLK,同时设置定时器A计数模式为连续增计模式
 CCTL1 = MC0+SCS+CAP+CCIE;                 //输入上升沿捕获,CCI0A为捕获信号源
 _EINT();                                  //中断允许
 while(1);                                 //LOOP
} #pragma vector=TIMERA1_VECTOR              //定时器A中断处理
__interrupt void timer_a(void)
{
 switch(TAIV)                              //向量查询
  { case 2:                                //捕获中断
        if(CCTL1&CM0)                      //上升沿
         {
           CCTL1=(CCTL1&(~CM0))|CM1;       //更变设置为下降沿触发
           start=TAR;                      //记录初始时间
           overflow=0;                     //溢出计数变量复位
         }
       else if (CCTL1&CM1)                 //下降沿
        { 
           CCTL1=(CCTL1&(~CM1))|CM0;       //更变设置为上升沿触发
           end=TAR;                        //用start,end,overflow计算脉冲宽度
        }   
       break;
    case 10:                               //定时器溢出中断
       overflow++;
       break;                              //溢出计数加1
    default:break;
  }
}
//例程结 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
xiaoguai
2019-03-25 15:23
同求,

一周热门 更多>

相关问题

    相关文章