[フォロ] 赤外線乱歩を入れてみたが・・

 

送信側プログラムに「I」命令(IR)を追加

 

IR:赤外線センサー

 

受信側に

・IR発光器をONする命令

・命令「I」が来た際に

 IR受光部を確かめて障害物があると

  一回後退して

  IR受光部の値によって左/右に回転する

を付加しました。

 

取り急ぎ作ったので割り込み処理がうまくいかず、

6回連続動作したらIR乱歩を終了するようになってます。

 

次のような仕組みを追加したかった・・・

 

無線通信の割り込みがあったら(上)

 現在IR(無限)ループ中かを変数LoopOnで調べ

  そうなら強制中止フラグ「Abort」を立てる

  でなければ念のためAbort=0をセット

 

IRループ処理(下)

 開始時に「LoopOn」フラグを立てる

 ループ中に「Abort」フラグが立ったら

  フラグ変数2個をリセットし

  ループを脱出

 

これで行きそうに思ったんだけど、どうも割り込み処理部分が受信メッセージを横取りしてしまって、受信コマンド分岐ルーチンには入らなくなるようで。

 

受け取ったイベントを再リリースする方法がよくわからん。

割り込み内で受信命令分岐処理を書くしかないのか?

 

昼から事前学習回なので時間切れです。

 

 

ダウンロード
microbit-フォロ2(送信側).hex
テキスト文書 1.3 MB
ダウンロード
割り込み処理は入ってません。
microbit-フォロ2(受信側).hex
テキスト文書 1.3 MB