利用定时器更新多个传感器的状态,定时器溢出问题。

2019-07-15 18:20发布

本帖最后由 pdzjoy 于 2014-10-13 16:10 编辑

各位大虾,麻烦各位看看我该如何修改这段代码。
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就会变为负值了。请问怎么解决这个溢出的问题啊,谢谢!




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
阿信509
1楼-- · 2019-07-15 22:38
先判断一下if(realtime0<time)则A=realtime0+65535-time

评分

参与人数 1积分 +5 收起 理由 A670521546 + 5 加分鼓励

查看全部评分

pdzjoy
2楼-- · 2019-07-16 02:57
 精彩回答 2  元偷偷看……

一周热门 更多>