ESP8266 上的循环多线程问题

问题描述 投票:0回答:2

我正在将 Nodemcu 用于我的 IoT 项目,我应该使用 PHP。当我按下网站上的按钮时,我正在尝试更改功能。我的 func1 有 1000 毫秒的延迟(毫秒)。 func2 有 360000ms 的延迟,所以我无法在需要时将 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();
  }
}
if-statement iot esp8266 nodemcu
2个回答
0
投票

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


0
投票

arduino框架/esp8266确实支持多任务处理。 下面是如何执行此操作的简单示例。

https://medium.com/@srmq/cooperative-multitasking-on-the-esp8266-arduino-665a040457c8

© www.soinside.com 2019 - 2024. All rights reserved.