palysh_pgm 发表于 2013-5-3 20:06:15

msp430定时器捕获数据遇到奇怪现象

我用msp430F149的定时器A的1通道捕获超声波的应答信号来测量距离出现奇怪现象
下面是定时器设置
void TimerInit()
{
   
    TACTL=TASSEL_2+ID_3+MC_2+TACLR;//SMCLK=1MHZ,连续计数模式 清零计数器
   
    //下降上升沿捕获,输入信号端为CCI1A,同步比较,捕获模式,中断使能
    TACCTL1=CM_3+CCIS_0+SCS+CAP+CCIE;
   
    P1DIR&=~BIT2;
    P1SEL|=BIT2;
    P3DIR|=BIT1;
    _EINT();//开放总中断
         
}

第一种正常现象距离显示正常
#pragma vector=TIMERA1_VECTOR
__interrupt void TIMER_ISR(void)
{
   static uchar i=0;
   switch(TAIV)
   {
   case 2:t1=TACCR1;
            TACTL|=TACLR;//清零         
            break;
   case 10:break;
   }
}

第二中奇怪现象
#pragma vector=TIMERA1_VECTOR
__interrupt void TIMER_ISR(void)
{
   static uchar i=0;
   switch(TAIV)
   {
   case 2:t1=TACCR1;
            TACTL|=TACLR;//清零      
         i++;
         if(i>=4)
             i=0;                  
            break;
   case 10:break;
   }
}
当我把采集的数据依次放入数组的时候,再用串口显示的发现
t1的数据不正常(奇怪的数据)      t1的数据正常
t1的数据不正常(奇怪的数据)      t1的数据正常
...................................................................
t1的数据不正常(奇怪的数据)      t1的数据正常
不知道为什么???纠结啊!
页: [1]
查看完整版本: msp430定时器捕获数据遇到奇怪现象