PUPPYの開発環境では、マイコンにプログラムを書き込むときにはパソコンとシリアルで接続し、パソコンからプログラムをダウンロードしています。ベースボードのJ4に接続する3本線がそのケーブルです。これを利用してマイコンからパソコンにデータを送信してみましょう。
シリアル通信サンプルプログラムを下のボタンを押してダウンロードします。
ダウンロードしたSCI_sample.lzhを解凍して図1の場所に移動します。
図1 フォルダ位置
SCI_sampleフォルダには以下のファイルが入っています。
main.c | sci実行プログラム |
start.src | マイコンのスタートアップルーチン |
make.bat | ビルド実行ファイル |
sci_sample.sub | ビルド用SUBファイル |
3687s.h | H8/3687F用レジスタ定義ファイル |
36057s.h | H8/36057F用レジスタ定義ファイル |
36064s.h | H8/36064F用レジスタ定義ファイル |
36077.h | H8/36077F用レジスタ定義ファイル |
sci.h | シリアル通信用ヘッダ |
sci.c | シリアル通信用プログラム |
表1 フォルダの中身
次に、パソコン側の通信用プログラムを用意します。今回はハイパーターミナルを使用します。(たいていの場合 スタート→アクセサリ→通信→ハイパーターミナルで起動します。)
ハイパーターミナルを起動すると図2のようなダイアログが出てきますので、接続の設定を行います。
図2
名前に適当な名前をつけます。ここでは「テスト」としました。OKボタンをクリックすると図3のダイアログが出てきます。
図3
接続方法にマイコンとの通信で使用しているポートを選択します。OKボタンを押すと図4が出てきます。
図4
ビッド/秒に「38400」をフロー制御に「なし」を選択しOKを押します。
設定が終わるとハイパーターミナルの通常画面が表示されます。(図5)
図5
注:ハイパーターミナルとマイコンの書込みプログラムは同じcomポートを使用しますので書込みの際はハイパーターミナルの接続を切断してください。
きちんと通信ができるか確認してみましょう。
SCI_sampleフォルダのmake.batをダブルクリックしてプログラムをビルドします。書き込み対象ファイルのsci_sample.hktをマイコンに書込み、書込みが終わったらハイパーターミナルの「電話」ボタンを押してハイパーターミナルとマイコンの通信をスタートします。ハイパーターミナルのウインドウ左下に接続時間が表示されます(図6)
図6
PUPPYの電源を入れると図7のように表示されれば成功です。
図7
それでは、プログラムの中身を見て見ましょう。main.cを開いてください。(リスト1)
リスト1
このプログラムは
5行目:
シリアル通信用プログラムのsci.hをインクルードしてシリアル通信用の関数を使用できるようにする。
8行目:
マイコンのシリアル通信初期設定用関数を実行し、マイコンのシリアル通信モジュールを設定
9行目:
シリアル通信用の関数「sci_puts」を使用しパソコンに文字列を送信
これだけでシリアル通信ができます。
sci.hの中にはシリアル通信用関数が用意されています。リスト2でシリアル通信用関数の使用例を示します。
リスト2
このプログラムを実行するとハイパーターミナルには図8のように表示されます。
図8
ディップスイッチの状態をシリアルでパソコンに転送しハイパーターミナルに表示するプログラムを作ってみましょう