Quantcast
Channel: プログラミング
Viewing all articles
Browse latest Browse all 7970

4bit-PC ATD-K-004 のポートは使えなかった話 - まつたろうの歩み

$
0
0

 4bit-PC ATD-K-004 でもっと遊べないか考えました。せっかくピンヘッダを付けたので、見ていたらポートが使えるかも知れないと思いました。できたら、5Vを取り出してクローラーを自在に動かすプログラムを書きたいとワクワク感が沸いてきました。

I/O ポート付近の拡大写真

 上の画像のように、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レジスタの使い方を読み取れません。その後も、色々と試しました。どうしてもできません。そこで、何かヒントはないかと探しました。そうしたら、プログラムの解説書ではなく、始めの説明書にありました。解説はすべて熟読し、何回も繰り返して確認すべきだと反省しました。どこかに、ヒントはあるものです。

ポート1を使った、Lチカのプログラム

 ORANGE-4 のポート1を使っています。自分が書いたプログラムとは少し違いました。これを参考に書いて、IDEで出力しました。

; 説明書から
; PORT1に接続したLEDの点滅 Lチカ
start:
ldyi7    ; 1->7 RG3は7番ピンなので
ldi1    ; Aレジスタに1
out     ; 出力ON
ldi5      ; Aレジスタに5 ?なぜ
scall9   ; C->9  Cではオペランド不正となった
ldi0    ; Aレジスタに0
out      ; 出力OFF
ldi5    ; Aレジスタに5 ?なぜ
scall9    ; C->9
jmpfstart  ; startに戻る、繰り返し

E00:A781F7185E980F7185E9F00 

 これで動作を確認すると、ブザーがビー・ビー・と間隔をおいて鳴りました。しかし、RB3の7番ピンに電圧は出力されませんでした。ALUの構成とか何かが違うのでしょうか?

結論:

 しばらく待って、ORANGE-4を買うべきでした。今は販売されていますが、物は増やしたくありません。大体のことは把握したのでこれでやめときます。今度は前に買って置いた、ラズパイピコをやろうと思います。

 

ーーー じいじと孫のお勉強 ーーー

 星やロケットが好きな孫に、ちょうど良いものがありました。まだ、続きそうです。

しつもん!ドラえもん




Viewing all articles
Browse latest Browse all 7970

Trending Articles