0

我需要等待一段时间,同时检查是否按下了按钮(因此输入是高电平还是低电平)。

使用延迟功能很烦人,因为它无法在延迟时检查是否正在发生某些事情,所以它必须等待 1 毫秒,检查,等待,检查,等待,检查等......

您能帮我同时检查和暂停一段时间的编码吗?

4

1 回答 1

0

您可以通过第二个条件控制循环来实现这一点。例如,如果您想在每个 arduino 主循环中等待 20 秒并在这段时间内执行更多代码,您可以按如下方式执行此操作:

unsigned long startTime = millis();     // Number of milliseconds since the program started (unsigned long)
unsigned long intervalTime = 20000UL;   // equals 20 seconds
int buttonPin = 3;                      // used button pin

void loop()
{
    while(millis() - startTime < intervalTime){
        if(digitalRead(buttonPin)==HIGH){
           //...
        }
        else {
           //...
        }
    }

   //...
}
于 2014-07-07T16:08:42.330 回答