当您希望在Arduino Uno编程中同时执行不同函数时,使用什么代码/语句
What code/statement is used when you want the different function executed at the same time in Arduino UNO programming?
我想同时在arduino uno中执行一个简单的循环,但是我不知道能够同时执行哪种语句/代码。
我已经尝试了while循环,并有时间包括开始。但是由于该函数在循环中彼此分开。LED的执行是沿不同方向的第一个函数和第二个功能。但是我希望它们同时执行。
void loop() {
// loop from the highest pin to the lowest:
for (int thisPin = 2; thisPin >= 0; thisPin--) {
// turn the pin on:
digitalWrite(ledPins[thisPin], HIGH);
delay(timer);
// turn the pin off:
digitalWrite(ledPins[thisPin], LOW);
}
// loop from the lowest pin to the highest:
for (int thisPin = 0; thisPin < pinCount; thisPin++) {
// turn the pin on:
digitalWrite(ledPins[thisPin], HIGH);
delay(timer);
// turn the pin off:
digitalWrite(ledPins[thisPin], LOW);
}
}
事实证明,执行是从最高引脚到最低引脚执行的。然后,最低引脚到最高引脚。而不是同时执行。
arduino具有并行运行任务的通常功能(它没有多线程(。但是,有一些解决方法。有关更多详细信息
幸运的是,在您的情况下,您无需并行运行循环。您可以通过在相对侧面的销钉的同时将算法重新考虑算法。这样的东西:
for (int i = 0; i < pinCount; ++i) {
// turn the pins on:
digitalWrite(ledPins[i], HIGH);
digitalWrite(ledPins[pinCount - i - 1], HIGH);
delay(timer);
// turn the pins off:
digitalWrite(ledPins[i], HIGH);
digitalWrite(ledPins[pinCount - i - 1], LOW);
}
如果您想同时执行多件事,则此示例非常有用https://forum.arduino.cc/index.php?topic=223286.0不同步,它将在很小的范围内
相关文章:
- 什么时候调用组成单元对象的析构函数
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 什么时候调用析构函数
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 是什么原因导致它无法编译?它是声明签名还是在函数本身的实现中
- 我可以在这里替换什么,因为我不能在 C# 中使用隐式变量的 lambda 函数?
- 是什么让放置新调用对象的构造函数?
- 重载运算符的范围是什么?它是否会影响作为类成员的集合的插入函数?
- 如果我真的真的想从 STL 容器继承,并且我继承构造函数并删除新运算符,会发生什么?
- 函数名称表示什么等等
- 在函数中拥有函数原型的目的是什么?
- 使用基类指针调用基类的值构造函数的语法是什么?
- 什么是自定义比较器以及如何在 C++ 的排序函数中使用它?
- C++:使用方法调用析构函数的顺序是什么?
- 将此布尔值传递给此函数的最有效方法是什么?
- lambda函数什么时候对C++中的类有用
- 函数什么时候必须在c++中返回引用
- 如果void类型函数什么都不返回会发生什么