ボタン処理は、単純にします。 MCRでは、「スタート」と「ストップ」のトリガーを除いては 人間がマシンに触れることはありません。 利用するマイコンにもよりますが、外部割込みを使い、 「スタート」と「ストップ」を処理します。 外部割込みが2つあると面倒なので、1つにします。 状態を表現する変数を用意して、走行と待機を管理します。 外部割込みが発生するごとに、変数state_cntに1を加えます。 0か1の論理値を使えるように、最下位ビットだけを取り出して おきます。 state_cnt++ ; state_cnt &= 1 ; 変数state_cntに、0か1の値が入るので、状態と値を対応づけます。