Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

MSP439F5529捕获测频 ??

$
0
0

为什么用下面程序测频时,感觉不是很对,误差很大。

ulint captar=0,capfirst,caplast,time=0,pulse=0,f;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
lcdinit();
P2DIR &=~BIT0;
P2SEL |=BIT0;
TA1CCTL1=CM_1+SCS+CCIS_0+CAP+CCIE;
TA1CTL=TASSEL_1+MC_2+TACLR+TAIE;
_EINT();
while(1){
f=pulse*32768/time;
display(f);
TA1CCTL1 |= CCIE;
TA1CTL |= TAIE;
}
}
#pragma vector = TIMER0_A1_VECTOR
__interrupt void TIMER0_A1 (void)
{
switch(TA1IV){
case 2:{
if(captar==0)
{
capfirst=TA1CCR1;
captar++;
}
else{
caplast=TA1CCR1;
captar++;
}
TA1CCTL1 &=~CCIFG;
break;
}
case 14:{
if(captar==0)
pulse=0;
else{
pulse=captar-1;
time=caplast-capfirst;
captar=0;
}
TA1CCTL1&=~CCIE;
TA1CTL=~TAIE;
break;
}
default:break;
}
}


Viewing all articles
Browse latest Browse all 3634

Trending Articles