1# 创展和众
捕获源为P4.0,即CCI0A(也是CCI0B)
TBCCTL0 =CM_2+SCS+CAP; //下降沿捕获,同步捕获,工作在捕获模式
TBCCTL0 =CCIE; //允许捕获比较模块提出中断请求
TBCTL =ID_3;
TBCTL =TBSSEL_2; //选择时钟MCLK
TBCTL =TBCLR; //定时器清零,
//定时器开始计数(连续计数模式0~0xFFFF)
TBCTL =MC_2; _EINT(); while(1);
} //―――――定时器TB的CCR0的中断:用于检测脉冲上升与下降沿――――
#pragma vector=TIMERB0_VECTOR
__interrupt void TimerB0(void)
{
if(TBCCTL0&CM1) //捕获到下降沿
{
TBCTL =TBCLR;
TBCCTL0=(TBCCTL0&(~CM1)) CM0; //改为上升沿捕获:CM1置零,CM0置一 }
else if(TBCCTL0&CM0) //捕获到上升沿
{
width[i++]=TBCCR0; //记录下结束时间
TBCCTL0=(TBCCTL0&(~CM0)) CM1; //改为下降沿捕获:CM0置零,CM1置一
if(i==10) i=0;
|