|
楼主 |
发表于 2019-2-14 22:49:14
|
显示全部楼层
DMTimer库里的isTimeReached函数似乎有问题:
bool DMTimer::isTimeReached(unsigned long currentTime, unsigned long interval){
if(currentTime > _lastTime + interval)
{
_lastTime = currentTime;
return true;
}
return false;
}
这个函数的目的是,过去记录的时间 加上 间隔,和 当前的时间相比,决定是否 时间到。
但如果“过去记录的时间 加上 间隔”,超过 U32 最大值,将会变成很小的数。
我改成:
bool DMTimer::isTimeReached(unsigned long currentTime, unsigned long interval){
if(currentTime - _lastTime > interval)
{
_lastTime = currentTime;
return true;
}
return false;
}
前提是interval参数不超过 U32的一半。
----
我改过的库函数,会不会在下一次更新时被冲掉? |
|