【发布时间】:2017-05-07 13:39:41
【问题描述】:
我只需要让一个 LED 闪烁 100 毫秒,循环中的延迟功能使我的代码非常无响应。
if (readString.indexOf("?23") >0){
digitalWrite(23, LOW);
delay(100);
digitalWrite(23, HIGH);
}
有没有一种简单的方法可以将delay 替换为millis 只闪烁一次?这个我试过了,还是不行
unsigned long interval1=1000; // the time we need to wait
unsigned long previousMillis1=0; // millis() returns an unsigned long.
if (readString.indexOf("?22") >0){
if ((unsigned long)(millis() - previousMillis1) >= interval1) {
previousMillis1 = millis();
digitalWrite(22, LOW);
}
digitalWrite(22, HIGH);
你们能帮帮我吗?我想不通。
【问题讨论】:
-
你能编辑并包含完整的
loop()函数吗? -
C++11 的
std::condition_variables 有方法在指定的时间段内等待条件变量,可以以毫秒为单位指定。 -
你在做 C 还是 C++?
-
谢谢你们! Josef 循环具有相同的代码,但用于 15 个继电器。
-
我使用 C 而不是 C++