极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11541|回复: 1

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

[复制链接]
发表于 2015-2-12 17:10:48 | 显示全部楼层 |阅读模式

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

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


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

使用道具 举报

发表于 2015-2-12 17:57:48 | 显示全部楼层
用 unsigned long 本身就可以處理了.  因為相減後不會出現負數, 反而自動變成正確的差.

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 11:00 , Processed in 0.058016 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表