ホーム > OAKSボード > OAKSボードQ&A > OAKS16Q&A

Q&A

OAKS16シリーズ

質問
シリアルI/OのUART0・UART2を使い送受信したいのですがUART0の割り込み登録については、サンプルプログラムの”sect30.inc”の 割り込みベクターテーブルへの登録をし使えるようになりました。

UART2の登録方法を知りたいのですが お願いします。

回答
ベクタテーブルへの設定はUART2についても同様です。
ただし、UART2の初期設定については制御レジスタ等の内容がUART0、1と異なりますのでユーザズマニュアルをご確認ください(p2-90)

また、UART0,1はCPUボード上でMAX232Cと接続しておりますがUART2はコネクタ(CN1)に接続しているだけです。拡張ボードの方でRS232Cトランシーバ、DSUBコネクタ等の回路を接続していただく必要があります。

(1)割り込みベクタテーブルの確認について以下の方法で確認することが出来ます。
@KD30を立ち上げます。
Aプログラムをダウンロードします。
B[ProgramWindow]の[View]ボタンをクリックし[Disp Aria][ source]を選択します。
Cベクタテーブルを記述しているファイルを選択し表示させます。
D[ProgramWindow]の[mix]ボタンをクリックしUart2のベクタアドレス領域にUart2割込みプログラムの先頭アドレス(4バイトデータ)が入っていることを確認して下さい。
(UART2割り込みプログラムの先頭アドレスは、同様に[ProgramWindow]の[View]ボタンをクリックし[Disp Aria][source]を選択し、Uart2割り込みプログラムを表示して確認します。)

(2)UART2からデータが入力されているかどうか確認して下さい。オシロスコープ等でRxD2端子をチェックしデータが送られてきていることを確認します。この方法が取れなければ、Uart2受信バッファに値が入るかどうか確認してください。
@[basicWindows][RamMonitorWindows]を選択し、[base]ボタンをクリックして先頭アドレス、0370(最下位は0のみ設定可)を入力して下さい。
Aこれで、UART2受信バッファレジスタ(037eh)のモニタリングが可能となりますのでプログラムを実行させてください。
(ここでデータが入っていなければハードの問題が考えられます。)

データが受信できているようであれば、後はプログラムの内容の問題が考えられます。割り込みが複数使われている場合、優先順位によって割り込みがかからなくなる場合もございます。

尚、三菱電機様のHPにもUARTの使用方法についての応用技術情報があります。
http://www.infomicom.maec.co.jp/M16C/apl/60uart/uart1.htm
ご参考になるかと思います。

更新日:2002.10.6

Copyright (C) oaks-ele, Inc.