switch(value) {
case 1:
while(!Serial.available());
char temp = Serial.read();
// 処理が続く
break;
case 2:
while(!Serial.available());
char temp = Serial.read();
// 処理が続く
break;
default:
break;
このコード、Arduinoなら問題なくコンパイルは通ります。
ですが、実際に動かすと、case 1も2もdefaultもどれにも当てはまらないということになっています。
なぜなら、switch文の中で同じ変数が複数宣言されるからです。
正直に言って、コンパイルエラー出してほしかったです。
なので、解決策としては、
switch(value) {
case 1:
while(!Serial.available());
{
char temp = Serial.read();
// 処理が続く
}
break;
case 2:
while(!Serial.available());
{
char temp = Serial.read();
// 処理が続く
}
// 処理が続く
break;
default:
break;
となります。
意外と気づきにくいバグ(だと個人的に思っています)