void main(void) { int date=0; //変数dateの宣言 int i=0; //変数iの宣言 //制御周期の設定[単位:Hz 範囲:30.0~] const BYTE MainCycle = 60; //CPUの初期設定 Init((BYTE)MainCycle); //CPUの初期設定 //ループ while(1){ //()内の条件が真の間{}内を繰り返す(1は常に真) while(i<100){ //i<100の条件が真の間{}内を繰り返す date=AdRead(0); //変数dateに赤外線センサの現在の値を代入 if(date<256){ //変数dateが256以下なら{}内を実行 Mtr_Run(0,0,0,0); //モータ回転方向変更時過負荷防止 Wait(200); //0.2秒待つ Mtr_Run(-64,64,0,0); //前進(右モータ-64左モータ64) while(date<256){ //dateの値が256以上になるまで{}を繰り返す date=AdRead(0); //変数dateに赤外線センサの現在の値を代入 Wait(100); //0.1秒待つ i=i+1; //iの値を1増やす if(i>100){ //変数iが100以上であれば{}を実行 break; //強制的にwhile(date<256)のループを抜ける } } } else{ //変数iが100以下でないなら{}内を実行 Mtr_Run(0,0,0,0); //モータ回転方向変更時過負荷防止 Wait(200); //0.2秒待つ Mtr_Run(-64,-64,0,0); //左旋回(右モータ-64左モータ-64) while(date>256){ //dateの値が256以下になるまで{}を繰り返す date=AdRead(0); //変数dateに赤外線センサの現在の値を代入 Wait(100); //0.1秒待つ i=i+1; //iの値を1増やす if(i>100){ //変数iが100以上であれば{}を実行 break; //強制的にwhile(date>256)のループを抜ける } } } } Mtr_Run(0,0,0,0); //モータ回転方向変更時過負荷防止 Wait(200); //0.2秒待つ i=0; //iの値を0に戻す while(i<100){ //i<100の条件が真の間{}内を繰り返す date=AdRead(0); //変数dateに赤外線センサの現在の値を代入 if(date<256){ //変数dateが256以下なら{}内を実行 Mtr_Run(0,0,0,0); //モータ回転方向変更時過負荷防止 Wait(200); //0.2秒待つ Mtr_Run(-64,64,0,0); //前進(右モータ-64左モータ64) while(date<256){ //dateの値が256以上になるまで{}を繰り返す date=AdRead(0); //変数dateに赤外線センサの現在の値を代入 Wait(50); //0.05秒待つ i=i+1; //iの値を1増やす if(i>100){ //変数iが100以上であれば{}を実行 break; //強制的にwhile(date<256)のループを抜ける } } } else{ //変数iが100以下でないなら{}内を実行 Mtr_Run(0,0,0,0); //モータ回転方向変更時過負荷防止 Wait(200); //0.2秒待つ Mtr_Run(64,64,0,0); //右旋回(右モータ64左モータ64) while(date>256){ //dateの値が256以下になるまで{}を繰り返す date=AdRead(0); //変数dateに赤外線センサの現在の値を代入 Wait(50); //0.05秒待つ i=i+1; //iの値を1増やす if(i>100){ //変数iが100以上であれば{}を実行 break; //強制的にwhile(date>256)のループを抜ける } } } } Mtr_Run(0,0,0,0); //モータ回転方向変更時過負荷防止 Wait(200); //0.2秒待つ i=0; //iの値を0に戻す } }