Arduinoでは、最初にsetup関数で初期設定を行い、その後はloop関数に書いたコードが繰り返し実行される。このとき、「loop関数が繰り返し実行される」のであって、「loop関数の中身が繰り返し実行される」のではない。つまり、こういうこと。
- ソースコード
void setup() {
Serial.begin(9600);
}
void loop() {
int i = 0;
static int j = 0;
Serial.print("i: ");
Serial.print(i++);
Serial.print(" j: ");
Serial.println(j++);
}
- 実行結果
loop()の中で何気なくローカル変数を使うとはまる…。
「実はmain()があって、次のようにsetup()を一度、その後loop()を繰り返し呼んでいる」と考えるとスッキリする(C言語から来た者にとっては)。
int main() {
setup();
while (1) {
loop();
}
}
コメント