ここから本文です
Dr.KIKKIE(KIKI) MSX DeuxLaque
免責:記載誤りによる損害一切

書庫全体表示

シリアル通信(6)

イメージ 1
■仕様の整理
送受信の機械語ルーチンを一本にまとめようとしているうちに、いささか混乱してきた。
改めて仕様を整理し書き留めておく。ただし暫定仕様であり、やっているうちに変更する可能性がある。

(1) 初期化ルーチン
汎用入出力ポートの8ピンは起動直後ではLowであるため、先に試作した送信ルーチンでは74LS14を入れて反転していたが、送受信の開始に先立ち「初期化ルーチン」により8ピンをHighにする。これにより、74LS14が不要になるだけでなく、5Vを供給する必要がなくなって結線が簡単になる。
 D=USR0(0)
により、初期化が実行される。変数はダミーである。

(2) 受信ルーチン
USR関数の戻り値として、1バイトの受信データを整数変数に代入してBASICに渡す。
 A=USR1(0)
により、Aに戻り値が入る。受信データが文字の場合、「PRINT CHR$(A)」で表示できる。
バッファを用意すれば、もっと高速な受信が可能となろうが、いろいろと面倒な処理が付随するので、とりあえずこれで行く。送信側は、相手が1バイトずつの受信であることを勘案して手加減すること。

(3) 送信ルーチン
USR関数の引数として、1バイトの受信データを整数変数に代入してBASICに渡す。
 D=USR2(A)
により、Aに代入されたデータが送信される。Dはダミーである。文字を渡す場合は、「A$="K":D=USR(ASC(A$))」として渡す。
文字列を渡していた試作ルーチンに比べ、1バイト送信では"退化"になるが、MSXとのやりとりを考えると一文字ずつ丁寧に送るのがベターかもしれない。

■まとめ
いろいろと試行錯誤しているうちに、上記の仕様に落ち着いてきた。
仕様を見ながら、かなり書き換えないといけない。タイミングも若干変わるかもしれない。
というわけで、もう少し時間がかかりそうである。

■別のプロジェクト(右写真)
最近ご贔屓のaitendoで購入のボイスレコーダーモジュール(20秒)。特価で1個300円。
しどけなくぶら下がるスピーカーやマイク、スイッチ類を全部外して、プロトタイピング化を図る。
メイン基板の周囲の穴は2.54mmピッチのスルーホールなので、ハンダを除去して改めてピンヘッダをハンダ付ければ簡単にブレッドボードで使えるようになる。
5V電源。RECボタンで「ピッ」音、もう一度で「ピピッ」。最大20秒間録音可能。PLAYボタンで再生。再生中のリトリガ可能。音量調整なし。製品では実装されていなが、ボードには「LED」の表示があり、接続するとちゃんとボタン操作に合わせて点灯する。なお、右写真の最下段では、1.5Vを5Vに昇圧する電池ボックスを使用している。
現在、これの活用方法を思案中である。って、用途も考えずに購入したのかよ。
だって、面白そうで安かったんだもん。1個100円の10秒バージョンもあるし。
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Dr.KIKKIE(KIKI)
Dr.KIKKIE(KIKI)
非公開 / 非公開
人気度
Yahoo!ブログヘルプ - ブログ人気度について

よしもとブログランキング

もっと見る
本文はここまでですこのページの先頭へ

[PR]お得情報

ふるさと納税サイト『さとふる』
実質2000円で特産品がお手元に
10/31まで秋の行楽キャンペーン実施中

その他のキャンペーン

みんなの更新記事