Arduino循环中的另一个“如何X次运行代码”()

时间:2019-04-09 13:09:00

标签: arduino

好吧,别样。 我们知道Arduino loop()函数会连续循环内部的所有内容。 想象一下一个简单的p1()触发函数可以执行某些操作。至少有一种方法可以将其重复X次(此处为hold变量)..以及如何?这样一无所获:if (ledPattern == '1') {do{p1();} while (hold > 1);}if(ledPattern == '1'){for (int i = hold; i > 0 ; i--){p1();}},但我可以想象问题出在代码的其他地方...

2 个答案:

答案 0 :(得分:0)

Arduino中的loop函数旨在无限循环,但是我想这就是您想要的,因为您可能希望不仅检查一次消息。

如果您希望代码在所有if语句的结尾处停止,是否可以在代码的末尾添加while(1);

您如何阅读邮件?这部分代码可能很重要。

(不确定是否值得回答,但我无法发表评论……)

答案 1 :(得分:0)

来自Arduino Reference

  

loop()函数精确执行其名称所暗示的内容,并循环   

如果要永久停止循环,可以在其末尾添加while(1);。这样,您的Arduino将调用一次loop(),然后陷入无限循环,直到您重置它为止。但是,当然,您的Arduino不会再做其他任何事情。

如果您不想一遍又一遍地以相同的if结束,则必须确保mqttmessage的运行一次后loop()的值会发生变化。

否则,假设mqttmessage等于'1',您将输入第一个if语句并调用p1()保持时间。然后,当再次运行循环并且mqttmessage仍然具有相同的值时,您将再次在第一个if语句中结束并调用p1()保持时间,依此类推。

如果您无法在每个循环中更新mqttmessage的值,并且如果您不希望无限期冻结Arduino,则可以使用存储的变量(如果您输入了if语句befor)并且每个if语句都需要检查该变量,因此您无需再次输入。