そもそも Arduino を使って回路のプロトタイプを組んだり、回路のデバッグ用の信号を出したりしようと思ってたわけやけど、いざ買おうとしたときに品切れだったために「自分で作ってみるか」と考えたのがキッカケ。
PIC 等のマイコンや ARM 等の評価基板を使うにしても、プロジェクトを開いて、プログラムをコンパイルして、さらにターゲットにダウンロードして、ようやく動作を確認できるというように、手順がやたら多くなってしまうのが困りもの。
「ある信号をトリガにして、20ms 後にリセットをかける」といった簡単なことをさせたいだけなのに、上のような手順を踏むとなるとちょっと腰が重くなってしまう。
そういうわけで、仮想 COM ポートから簡単にプログラムできる E-BASIC を作った次第。
VAL 型と ARRAY 型を追加。
これを使って昨日のプログラムを書きなおすと、こんな感じに。
SEG7ARY: ARRAY 129 237 67 73 45 25 17 141 1 9 SEG7: DATA GPIOD 0 1 2 3 4 5 6 7 OUT COUNTER: VAL 0 FLAG: VAL 0 TIMER1: TIMER 1000 MAIN: LOOP IF TIMER1 = 500 IF FLAG = 0 COUNTER = COUNTER + 1 IF COUNTER >= 10 COUNTER = 0 ENDIF SEG7ARY = COUNTER SEG7 = SEG7ARY FLAG = 1 ENDIF ELSEIF TIMER1 = 600 FLAG = 0 ENDIF ENDLOOP
配列の扱いが悩ましいところやけど、例えば
SEG7ARY = 3
とすることで、SEG7ARY の(0 から数えて) 3 番目の 73 を参照できるようにしている。
代休で今日まで休みやったから、一気に作ってきたけど、今後はぼちぼち次の項目を実装していこうと思う。
- LOOP 内 LOOP (BREAK で LOOP 脱出)
- DELAY コマンド
- CALL コマンド (別 LOOP の呼出)
- COM ポート入出力