空的while循环,没有该代码将无法工作

时间:2019-08-03 11:12:57

标签: c++ arduino

我遇到了一个相扑机器人的代码。我不明白为什么在代码中使用了 while(BTN)。 while循环有什么用?

没有第一个 while(BTN)的代码将不起作用,没有第二个,则机器人不会停止。下面列出了所有相关代码。

#include <Wire.h>
void setup() {
  //Button
  pinMode(A2, INPUT);
  digitalWrite(A2, HIGH);
  #define BTN !digitalRead(A2)
void loop() {
  Forward(0, 0); //Stop motors 
  delay(100);
if (BTN) { //Turn on program with button
    while (BTN) {}
    while (!BTN) { //stop robot if button is pushed again
//code to move the robot was included here
} 
while(BTN){}
 }
}

1 个答案:

答案 0 :(得分:3)

请考虑扩展<ion-card routerLink="/tabs/dictionary/letter/{{letter}}"> 之后的代码:

BTN

所以说:

  • 如果按钮按下;
  • 等待直到不再崩溃;
  • 然后执行移动代码,直到再次按下按钮
  • 并等待它不再掉下来。

注意:此代码根本不考虑开关弹跳,它的行为可能有些不规律。)