4bit-PC ATD-K-004 でもっと遊べないか考えました。せっかくピンヘッダを付けたので、見ていたらポートが使えるかも知れないと思いました。できたら、5Vを取り出してクローラーを自在に動かすプログラムを書きたいとワクワク感が沸いてきました。
上の画像のように、RB3,RB5,RA3,5V,GND,TXD,RXD,3V3 のポートがあります。回路図を見ると、PIC-ICは同じ物を使っています。PIC32MX120F032B のデータシートを調べました。
赤のアンダーラインを引いてるポートが使えそうです。PIN番号 7,10,12,14 の4つです。RB3の7番ピンを使うことで、考え始めました。とりあえずの資料はプログラミングの解説資料です。付録部分に使えそうな所がありました。
F70とF71の命令を使うと、何とかできそうです。Webで調べても、ポートを扱った記事はみつかりませんでした。そこで赤枠の文章を読み込んで、自分なりに考えて書きました。フラグについて書かれたものは、解説資料にもありません。コード例を見ていても、フラグの記述がないので無視して書きました。ORANGE-4 IDEの出力です。下の 80A....を入力して、RUNを押しますが何もテスタは反応しません。RUNの使い方もよくわかりません。資料の 1-> RUNなどそれぞれ試しました。だめでした。
; aitendo ATD-K-004でポートから5Vを出力したい
; 外部モーターを動かしたい
ldi 0 ; Aレジスタに0(出力するように設定する)
ldyi 7 ; Yレジスタにポート番号7を入れる
ioctrl ; ポートの設定をする
ldi 1 ; Aレジスタに1を出力するように設定
out ; 出力する
E00:80A7F7081F71
上の解説書では、Aレジスタの使い方を読み取れません。その後も、色々と試しました。どうしてもできません。そこで、何かヒントはないかと探しました。そうしたら、プログラムの解説書ではなく、始めの説明書にありました。解説はすべて熟読し、何回も繰り返して確認すべきだと反省しました。どこかに、ヒントはあるものです。
ORANGE-4 のポート1を使っています。自分が書いたプログラムとは少し違いました。これを参考に書いて、IDEで出力しました。
E00:A781F7185E980F7185E9F00
これで動作を確認すると、ブザーがビー・ビー・と間隔をおいて鳴りました。しかし、RB3の7番ピンに電圧は出力されませんでした。ALUの構成とか何かが違うのでしょうか?
結論:
しばらく待って、ORANGE-4を買うべきでした。今は販売されていますが、物は増やしたくありません。大体のことは把握したのでこれでやめときます。今度は前に買って置いた、ラズパイピコをやろうと思います。
ーーー じいじと孫のお勉強 ーーー
星やロケットが好きな孫に、ちょうど良いものがありました。まだ、続きそうです。