修改以下捕获ACLK脉冲的代码,移植到开发
板,要求能够测量出两次捕获的计数器差值,
能够直接显示两次捕获的时间差更好。
I/例4
#include
int i=0;
int Cycle[2];
int fCycle = 0;
void main(void)
//将P1.0引
WDTCTL = WDTPW +WDTHOLD;
//关闭看门狗
P1DIR I=BITO;
P1SEL |= BITO;
脚配置为ACLK输出
P2DIR &=~BITO;
P2SEL I= BITO;
引脚配置为定时器捕获输入
//将P2.0
TA1CTL= TASSEL_2+MC_2+ TACLR;
//TA1主计数器时钟选择SMCLK,连续计数模
式,清除TAR
TA1CCTL1 = CM_1 + SCS + CAP + CCIE;//CCR1工作于捕获模式,上升沿触发
_bis_SR_register(LPMO_bits + GIE); // 进
入LPMO并使能全局中断
}
// TA1中断服务程序
#pragma vector=TIMER1_A1_VECTOR
_interrupt void TIMERO_A1_ISR(void)
Cycle[i]=TA1CCR1;获值
i++;
if(i==2)i=0;
fCycle = Cycle[1]-Cycle[O];
TA1CCTL1&=~CCIFG
中断标志位
LPMO_EXIT;
//读取捕