Arduino教程:使用millis()代替delay()

众所周知的Arduino里的delay()将程序暂停指定为毫秒数的参数。

millis()另一方面,是一个返回自程序启动以来经过的毫秒数的函数。

乍一看,您可能会怀疑此功能的实用性。事实是,它在许多情况下非常有用,通常会完全“替换”delay() 。首先让我们看一下如何使用millis()几乎完全像delay()

15739175433027

时序问题经常出现在编程中。

使用像millis()这样的delay()

  1. unsigned long time_now = 0;
  2. void setup() {
  3. Serial.begin(115200);
  4. }
  5. void loop() {
  6. time_now = millis();
  7. Serial.println("Hello");
  8. while(millis() < time_now + period){
  9. //wait approx. [period] ms
  10. }
  11. }

如果您希望代码在每次循环迭代结束时仅暂停1000 ms,则上面的代码有点愚蠢。您可以  delay(1000)改用。上面的代码和delay(1000)结尾的代码之间的唯一区别是,上面的代码中的循环每秒非常准确地运行一次。代码中的循环delay(1000)会减少运行的频率,因为它也需要一些时间执行Serial.println("Hello")

下载权限
查看
  • 免费下载
    评论并刷新后下载
    登录后下载
  • {{attr.name}}:
您当前的等级为
登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员
您已获得下载权限 您可以每天下载资源次,今日剩余

给TA打赏
共{{data.count}}人
人已打赏
未分类

我的信息资源发布-春节喜庆国潮风卡通拟人风装饰元素

2021-5-27 22:04:34

未分类

8×8 点矩阵MAX7219指南 – Arduino教程

2021-5-27 22:10:27

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
信息服务