这是NodeMCU的Arduino草图的伪代码。它有一个处理器,可以持续更新LED灯条。
void setup() {
}
void loop() {
}
bool handler() {
//intended infinite loop
}
问题是无限循环阻塞了主loop()
。有没有办法可以在不阻塞主loop()
函数的情况下执行无限循环。
对不起,我的问题很模糊,我只是Arduino编程的初学者。
答案 0 :(得分:2)
你应该只有一个"无限"在你的草图中循环,它已经为你构建了loop()
。每个其他循环 - 或任何函数调用 - 就此而言 - 构建必须有一些方法退出并返回loop()
,最好是快速。您可以使用break
或任何其他将控制权返回到loop()
的机制退出。但是你必须回来......
答案 1 :(得分:1)
不要阻塞主循环而是让循环在每次调用函数时调用处理程序...
void setup()
{
//setup required parameters/handlers
}
void loop()
{
// a piece of code that calls the handler
if(handler())
{
// TODDY
}
}
bool handler()
{
//intended infinite loop
}