2017-08-09 56 views
0

这是NodeMCU的Arduino草图的伪代码。它有一个连续更新LED灯条的处理程序。loop()函数之外的无限循环

void setup() { 

} 

void loop() { 

} 

bool handler() { 
//intended infinite loop 
} 

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

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

+0

使用break ..来自循环 –

+1

为什么不只是不使用循环,并使其成为你在主循环中定期调用的处理程序? – Frank

+0

我想我得到你们在说什么。我今晚会检查并回复。谢谢你们。 – Ramki

回答

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 
} 
2

您应该只有一个“无限”循环在你的草图,并且它已经构建对你来说,这是loop()。每一个其他循环 - 或者任何函数调用 - 对于这个问题 - 你构建的必须有有一些方法可以退出并返回到loop(),最好很快。您可以用break或任何其他将控制返回至loop()的机制退出。但是你必须返回...