kagetang 发表于 2015-2-12 17:10:48

millis()指令溢出的时候怎么处理?


做LED 1s闪烁的程序,一般都推荐用Millis指令来做,不推荐用DELAY来做,如下程序,其中interval=1000ms

unsigned long currentMillis=millis();
if(currentMillis-previousMillis>interval)
{
previousMillis=currentMillis;


。。。。
。。。。
这个程序就是反复把当前值赋予给previousMillis,其间隔为1s。但是一旦millis()溢出归零,那么previousMillis是个很大的数字,
currentMillis-previousMillis>interval这句程序则只有在很久以后才能满足,无法达到1s闪烁的效果。请问这个地方怎么处理才对?

Super169 发表于 2015-2-12 17:57:48

用 unsigned long 本身就可以處理了.因為相減後不會出現負數, 反而自動變成正確的差.

页: [1]
查看完整版本: millis()指令溢出的时候怎么处理?