ESP8266延时函数与定时器对比及注意事项

星星
2023-02-03 / 0 评论 / 143 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年02月05日,已超过654天没有更新,若内容或图片失效,请留言反馈。
delay()PKmillis()

delay()函数

 delay()函数的输入参数为int整型值。这个数字表示程序在进入下一行代码之前必须等待的时间,单位是毫秒。当调用 delay(1000) 时,程序在这一行停止1秒。

millis()函数

 millis()函数可以返回自程序首次启动以来所经过的毫秒数,最长可记录接近50天左右的时间。如果超出记录时间上限,记录将从0重新开始。

millis()函数的优点

 为什么这个函数是有用的?因为通过使用一些简单的数学运算就可以在不阻塞程序的情况下验证已经过去了多少时间。 表情 下方是使用millis()函数控制LED灯闪烁的示例程序。

const int ledPin =  2;      // 设置LED的引脚为GPIO2

int ledState = LOW;             // 设置初始化LED状态

unsigned long previousMillis = 0;        // 设置初始化时间,为无符号长整型数据

const long interval = 1000;           // 设置闪烁间隔,为无符号长整型数据

void setup() {
  // 初始化LED引脚
  pinMode(ledPin, OUTPUT);
}

void loop() {
  unsigned long currentMillis = millis();//获取当前时间,为无符号长整形数据

  if (currentMillis - previousMillis >= interval) { //当与初始时间差大于设定值时就闪烁
    // 复位初始时间为该时刻的时间
    previousMillis = currentMillis;

    // LED翻转程序
    if (ledState == LOW) {
      ledState = HIGH;
    } else {
      ledState = LOW;
    }
    digitalWrite(ledPin, ledState);
  }
}

本文共 403 个字数,平均阅读时长 ≈ 2分钟
0

评论 (0)

取消