MSP430利用定时器捕获功能,计算脉冲间隔和频率:
void TimrA1Init_captrue(void)
{
TA0CTL = TASSEL0+TACLR+TAIE+MC1; //时钟信号选择MCLK,计数模式为连续增计模式
TA0CCTL1 = CM1+SCS+CAP+CCIE; //输入下降沿捕获,CCI1A为捕获信号源
P1SEL |=BIT2; //设置P1.2端口为功能模块CCI1A输入捕获
}
unsigned int TimeGap=0;
#pragma vector=TIMER0_A1_VECTOR //定时器A中断处理
__interrupt void timer_a(void)
{
switch(TA0IV) //向量查询
{
case 2:
TimeGap=TA0R;//获取脉冲间隔
TA0R=0;
break;
default:
break;
}
}