msp430g2553 捕获功能,好像没有进入中断~求指导~

2019-03-24 12:18发布

msp430g2553 捕获功能,好像没有进入中断~求指导~

#include <msp430g2553.h>

unsigned int capture1_value = 0;

void main()
{
  WDTCTL = WDTPW + WDTHOLD;
  BCSCTL1 = CALBC1_16MHZ;  //设定cpu
  DCOCTL = CALDCO_16MHZ;   //配置DCOCLK产生16M时钟
  BCSCTL2 |= SELM_1 + DIVM_0 + DIVS_0;  //主时钟MCLK选择DCOCLK,不分频.子时钟SMCLK选择DCOCLK,不分频

  P1DIR &= ~BIT2;   //P1.2 INPUT
  P1SEL |= BIT2;   
  TACTL = TASSEL_2 + TACLR + MC_1; //SMCLK,up mode
    //capture 1
  TACCTL1 = CCIE + CM_2 + CCIS_0 + CAP + SCS ;    //neg. edge,enabled interrupt,CCIxA,capture mode,            
  TACCR1 = 16;  
  _BIS_SR(GIE);
  while(1)
  {}

}

#pragma vector = TIMER0_A0_VECTOR
__interrupt void Timer_A0 (void)
{
  switch (TAIV)
  {
  case 0x02:
    TACCTL1 &= ~CCIFG;
    capture1_value = TACCR1;
  case 0x04:break;   //capture 2
  case 0x0a:break;
  }
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
benni
1楼-- · 2019-03-26 14:42
 精彩回答 2  元偷偷看……
benni
2楼-- · 2019-03-26 16:25
大神,捕获这个还是弄得不明白,官方给的code example里没有给出捕获的例程。我想问的有下面几点(我问题很多 )
1.在捕获下,竟然能进入中断里,不是说明满足了捕获条件了吗,那为什么把TAR时的值放入TACCRx里,但用watch看的值还是0.  
2.当捕获条件满足后,把TAR时的值放入TACCRx里,那么TACCRx 乘以 定时的时间 是不是就是这次捕获所花的时间。
3.如果输入的是方波,且是下降沿捕获,那么是不是一直都在捕获下降沿,不断进入中断,我想只捕获一次,该怎么做?
4..datasheet里不是说msp430g2553有两个定时器,且每个都有三个捕获口,那怎么timer0只有TA0.0,TA0.1,那对应的CCR2的TA0.2是在哪个引脚?
5.CCIXA与CCIXB,有什么区别,两个都是外部触发源输入口,是不是分别对于的是下降沿与上升沿输入口。
好多问题哦,请多指教~
风动随心
3楼-- · 2019-03-26 21:47
定时器要打开CCIE的

一周热门 更多>

相关问题

    相关文章