利用定时器更新多个传感器的状态,定时器溢出问题。
时间:10-02
整理:3721RD
点击:
各位大虾,麻烦各位看看我该如何修改这段代码。
void test(void)
{
static u16 time =0;
if (time != realtime0) // 由PIT模块生成 至少1ms成立
{
GetSensorData(); // 获取传感器的状态
if(RV4S==0)CountofRV4S +=realtime0- time; else CountofRV4S=0; // RV4S传感器状态改变计时 .... // 还有多个传感器的计时
time = realtime0 ;
}
}
我本意是在利用一个ms的定时器,每隔1ms或者几个ms我就更新一次传感器的状态,并且对状态的改变计时。但有可能上次 time = 65533 ,下次再进这个语句时 realtime已经溢出归零了 ,那么 A就会变为负值了。请问怎么解决这个溢出的问题啊,谢谢!
先判断一下if(realtime0<time)则A=realtime0+65535-time
感谢你的回答,问题已解决,思路和你这个差不多。