ESP8266 上的循环多线程问题

问题描述

我的 IoT 项目使用 Nodemcu,我应该使用 PHP。当我按下网站上的按钮时,我正在尝试更改功能。我的 func1 有 1000 毫秒的毫秒延迟。 func2 有 360000 毫秒的延迟,因此我无法在需要时将 func2 更改为 func1。试了很多方法,怎么办?

我的代码是这样的:

void func1() {
  // code for manuel GPIO control 
  // millis....
}

void func2() {
  // code for automatic GPIO control 
  // millis....
}

void loop() {
  // millis....
  if (payload == 1) {
    func1();
  } else if (payload == 0) {
    func2();
  }
}

解决方法

Arduino 不支持多线程,但您可以使用不同的编程技术使您的程序无阻塞地工作,例如 Blink Without Delay