- 特定のI/OポートのHigh/Lowを見る方法。
- 例えばポート4に属する8つのI/Oポート(H8 3069のピン配置では#18-21, #23-26)の値は、H8P4DRマクロを使ってアクセスします。
- ポート4の1ビット目は(*((UB *) H8P4DR) & 0x01)でRead/Writeアクセスできます。
- 電圧Highは1、電圧Lowは0となります。
- 特定のI/Oポートの入出力方向の取得/設定方法
- まず、H8ではI/Oポートの入出力方向を設定するレジスタ(DDR: Data Direction Register)が書き込み専用です。その為、現在の設定値を保持する為にTOPPERS/JSPでは特別にカーネル内部に設定値保持の為の変数を設けています。
- 入出力方法の設定には、sil_wrb_ddrサービスコールを用います。例えば、ポート2の1ビット目から6ビット目までは出力、7ビット目と8ビット目は入力、と設定する場合は、sil_wrb_ddr(IO_PORT2, 0x3F)とコールします。出力に設定するI/Oポートのビットは1を、入力に設定するI/Oポートのビットは0を指定します。
- 設定済みの値を読み出したい場合は、sil_reb_ddr(IO_PORT2)とコールし、その返り値をチェックします。
- 設定済みの値に対して特定のビットだけをON/OFFしたい場合は、sil_anb_ddr (既存値とのAND演算)、sil_orb_ddr (既存値とのOR演算)を用います。
- タスクのウエイト
- 通常のCプログラムにおけるsleep関数のような事をしたい場合は、dly_tskサービスコールを用います。引数は1つだけで、ミリ秒単位の時間を表す整数です。
- 例えば、1秒間ウエイトしたい場合は、dly_tsk(1000)とコールします。
2008年11月21日金曜日
TOPPERS/JSP for秋月電子H8 3069 LANボード (2)
引き続き備忘録です。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿