本站改版新增arduino频道
arduino 使用 millis() 实现非阻塞延时的示例
const int ledPin = 48; //定义LED引脚 unsigned long previousMillis = 0;//定义一个变量,记录时间 unsigned long interval = 1000; // 延时1000毫秒,等于1秒 bool ledState = LOW;//定义LED状态为低电平 //只执行一次 void setup() { //设置 ledPin 引脚为 输出模式(OUTPUT) pinMode(ledPin, OUTPUT); } //循环执行 void loop() { //定义一个变量用于存储 millis() 函数返回的值 unsigned long currentMillis = millis(); //如果当前运行的时间 减去 之前运行的时间 大于 1000毫秒 //说明已经过去了1000ms的时间 if (currentMillis - previousMillis >= interval) { //更新之前的时间为当前时间,方便下次计算 previousMillis = currentMillis; // 切换 LED 的状态 ledState = !ledState; digitalWrite(ledPin, ledState); } // 此处之后可以执行其他任务,而无需等待延时 }
Copyright © 2014 ESP56.com All Rights Reserved
晋ICP备14006235号-22 晋公网安备14108102001165号
执行时间: 0.0093979835510254 seconds