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闪烁的效果。请问这个地方怎么处理才对?
用 unsigned long 本身就可以處理了.因為相減後不會出現負數, 反而自動變成正確的差.
页:
[1]