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]