在Arduino中使用while-else

时间:2017-03-14 02:56:39

标签: arduino

我正在实施以下代码

if (t1==1)
{
 digitalWrite(l1, HIGH);
 digitalWrite(l2, HIGH);
 digitalWrite(l3, LOW);
 digitalWrite(l4, LOW);
 while(t2!=1)
 {

 digitalWrite(l1, HIGH);
 digitalWrite(l2, HIGH);
 t2 = digitalRead(IR2);
}

 digitalWrite(l1, LOW);
 digitalWrite(l2, LOW);

 delay(10);

}
  我的问题是,这是否会被接受,或者像我们在python中使用的那样被接受。

我对代码的解释:
  控制流程将进入"如果"如果条件满足则循环并执行接下来的4行。然后while循环将执行直到t2!= 1。一旦t2的值等于1,就应执行最后两个语句。

如果错误请更正。谢谢

1 个答案:

答案 0 :(得分:1)

你是对的。

如果将digitalWrite替换为printf并在c或c ++编译器中运行它,您将看到结果:

#include <stdio.h>

int main()
{
    int t1 = 1;
    int t2 = 2; //Make this higher if you want to see the while loop run longer
    if (t1 == 1)
    {
        printf("l1, HIGH\n");
        printf("l2, HIGH\n");
        printf("l3, LOW\n");
        printf("l4, LOW\n");

        while(t2 != 1)
        {
            printf("l1, HIGH\n");
            printf("l2, HIGH\n");
            //t2 = digitalRead(IR2);
            t2 = t2 - 1; //Make t2 be one less each time the loop runs
        }

        printf("l1, LOW\n");
        printf("l2, LOW\n");

        //delay(10);
    }
}

结果:

l1, HIGH
l2, HIGH
l3, LOW
l4, LOW
l1, HIGH
l2, HIGH
l1, LOW
l2, LOW

试试here