本人使用MSP430F147中的Timer_B7来计量多个开关量。为了提高准确度,打算先使用捕获形式将捕捉所需的跳变沿,然后利用该模块进行定时中断,在中断时读取该开关量的端口状态,如果状态符合需要就认为该状态是有效的。但是在实际中发现定时不准确。请问:是不是在捕获到定时的转换过程中有什么技巧?
补充一下:模式转换时需要将计数停止吗?需要将TBCLR置位吗?在实际中我已经将计数停止了,情况依旧。
定时时要注意,这样定时:TBCCRx=TBR+0XXH;
我的转换部分程序如下:
//Last是需要定时的时间(已经转换)
//该段代码是在捕获跳变后执行
TBCCTL3 &= ~(CAP + CCIE + CLLD0 + CLLD1);
Last= Last + TBR;
TBCCR3 = Last % 0xFFFF;
TBCCTL3 |= CCIE; //启动TB3
请问,应该是这样写吗??我监控过程序的运行,发现定时是有时候准确,有时候又不准。真是见鬼!