我正在為我的 Arduino 撰寫一些代碼,顯示“計時器(從 1 到 100 計數)”然后顯示“中斷:b”(b 充當回圈次數的占位符)它計數到 100 然后列印出我的 else陳述句,但它不回圈,我的 b 值只是不斷增加。我哪里出錯了?
void loop() {
int a = 0;
int b = 0;
if(a != 100){
lcd.setCursor(0,0);
lcd.print("Timer");
lcd.print("");
a ;
lcd.print(a);
delay(10);
lcd.clear();
}
else{
//
b ;
lcd.print("Interrupt");
lcd.print(b);
delay(1000);
lcd.clear();
//
//
}
}
uj5u.com熱心網友回復:
您正在定義a并且b在 的開頭,loop()每次都會呼叫回圈函式,因此您的a和b每次都會被清除。可能你必須定義然后退出回圈函式。
編輯:在我的示例中,我在setup()函式內宣告了變數,正如評論我的答案的人所說,它僅在該函式的范圍內宣告了一個變數,您實際上需要在任何函式之外宣告它。
int a = 0;
int b = 0;
void loop() {
if(a != 100){
lcd.setCursor(0,0);
lcd.print("Timer");
lcd.print("");
a ;
lcd.print(a);
delay(10);
lcd.clear();
}
else{
b ;
lcd.print("Interrupt");
lcd.print(b);
delay(1000);
lcd.clear();
a=0;
}
}
編輯 2:實際上,您的代碼沒有做您想要的。它從 1 到 100 計數一次,然后開始遞增和列印b。您必須清除aelse 陳述句中的變數才能再次開始計數。我在 Tinkercad 中測驗了代碼,現在它似乎可以作業了。
Tinkercad 中使用的代碼:
void setup()
{
Serial.begin(9600);
}
int a = 0;
int b = 0;
void loop() {
if(a != 100){
a ;
Serial.println(a);
delay(10);
}
else{
b ;
Serial.println(b);
delay(1000);
a = 0;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/368826.html
標籤:C 循环 阿杜伊诺 柜台 arduinoide
下一篇:適當遞增
