Arduino while循环和if语句逻辑

时间:2015-10-04 02:52:12

标签: if-statement while-loop arduino

寻找一些循环逻辑的帮助。现在,这只是陷入了一个while循环,但没有中断。大部分只是好奇,但我怎么能这样做,所以串口写继续只是每次写,但lightThis()函数只被调用一次?

void loop(){
    if ( (x >= 245 && x <= 260) && (accelDifference > STAB_THRESHOLD)){
    // write a command to serial
    Serial.print("p1stab");

    // trace this for now
    Serial.print("\t");
    Serial.print(x);
    Serial.print("\t");
    Serial.print(y);
    Serial.print("\t");
    Serial.print(z);
    Serial.print("\n");

    // keep the LED solid 
    while(true) {
        lightThis();
        if (false){
            break;
        }
    }

    } else {
        Bean.setLed(0, 0, 0);
    }

}

谢谢!

1 个答案:

答案 0 :(得分:1)

假设您在代码中的其他位置调用了loop(),可以在该位置调用lightThis(),并跟踪它只被调用一次。

boolean doneOnce = false;
for (...){
   loop();
   if (!doneOnce){
     lightThis();
     doneOnce = true;
   }
}

请原谅代码,我不确定你的编码是什么,但是你明白了。