アプリ版:「スタンプのみでお礼する」機能のリリースについて

C言語のPICプログラミングなんですが、
これのどこがおかしいか教えてください。

if(input(PIN_B1))
{
while(input(PIN_B2) == 0)
{
output_high(PIN_B7);//前進後進パルス出力
delay_us(50);//変換待ち
output_low(PIN_B7);
delay_us(16000);//共通遅延16000us
}
break;
}
if(input(PIN_B1))
{
while(input(PIN_B2) == 0)
{
output_high(PIN_B7);//前進後進パルス出力
delay_us(50);//変換待ち
output_low(PIN_B7);
delay_us(16000);//共通遅延16000us
}
break;
}

A 回答 (2件)

省略されているが、そのひとつ上の階層にwhile文かfor文かがあって、break文にてそのループから抜け出すってことでしょうか?


それなら、
if(input(PIN_B1)){
 while(input(PIN_B2) == 0){
  output_high(PIN_B7);//前進後進パルス出力
  delay_us(50);//変換待ち
  output_low(PIN_B7);
  delay_us(16000);//共通遅延16000us
 }
 break;
}
が2つあるのはおかしいですね。一つめのif(input(PIN_B1))中のbreak文にてループから抜けだして、二つめのif(input(PIN_B1))が実行されません。

上の階層にループ文又はswitch文がないのであれば、break文が含まれていること自体おかしいです。
でも、その場合エラー出てコンパイルも通らないと思うので、意図した通りに動かないって言うのであればこれでしょう。
    • good
    • 0

2箇所ある



break;

は不要ではないでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!