1、delay(ms)
延时函数,参数是延时时间,单位 ms。
delay() 是一个阻塞函数,阻止程序在完成该特定任务之前执行任何其他操作。如果需要同时执行多个任务,则不能使用 delay()。
2、millis()
返回子程序首次启动以来经过的毫秒数。
中断里不会执行延时函数,可以以此作为中断计时。
使用 millis() 函数,再经过一些计算就可以验证过去了多少时间而不阻塞代码。
使用 millis() 闪烁 LED:
#include <Arduino.h>
const int LED = 2;
int ledState = LOW; // LED 状态标志
const long interval = 1000; // 闪烁间隔,毫秒单位
unsigned long previousMillis = 0; // 时间变量,用长整型存储
void setup()
{
pinMode(LED, OUTPUT);
}
void loop()
{
// 如果当前时间 与 上次闪烁时间 的差 大于 希望闪烁LED的间隔时间,就该闪烁了
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval)