本站改版新增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.0093648433685303 seconds