【问题标题】:Infinite loop outside of the loop() functionloop() 函数外的无限循环
【发布时间】:2017-08-09 13:22:37
【问题描述】:

这是我用于 NodeMCU 的 Arduino 草图的伪代码。它有一个不断更新 LED 灯条的处理程序。

void setup() {

}

void loop() {

}

bool handler() {
//intended infinite loop
}

问题是无限循环阻塞了主loop()。有没有一种方法可以在不阻塞主要loop() 函数的情况下执行无限循环。

对不起,我的问题含糊不清,我只是 Arduino 编程的初学者。

【问题讨论】:

  • 使用 break .. 退出循环
  • 为什么不直接使用循环,而让它成为您从主循环中定期调用的处理程序?
  • 我想我明白你们在说什么。我今晚会检查并回复。谢谢大家。

标签: c++ loops arduino nodemcu arduino-esp8266


【解决方案1】:

你的草图中应该只有一个“无限”循环,它已经为你构建好了,它是loop()。您构造的所有其他循环(或任何函数调用)必须 有某种方式可以退出并返回到loop(),最好是快速。您可以使用break 或任何其他将控制权返回给loop() 的机制退出。但你必须回来……

【讨论】:

    【解决方案2】:

    不要阻塞主循环,而是让循环在每次调用函数时调用处理程序...

    void setup()
    {
        //setup required parameters/handlers
    }
    
    void loop()
    {
        // a piece of code that calls the handler
        if(handler())
        {
            // TODDY
        }
    }
    
    bool handler()
    {
        //intended infinite loop
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-16
      • 2013-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多