前へ | 次へ |
先ほどのプロジェクトで、LED点滅のプログラムを作成します。
作成するプログラムは、1秒毎にLEDの消灯と点灯を繰り返します。
ソースファイルは、プロジェクト作成時に自動的に雛形が作成されるので、必要なプログラムを追加編集するだけです。編集はHEW3のエディタで行います。編集したいファイルをダブルクリックすると下のようにエディタが開きます。
編集するソースファイルは、intprg.c、ledtest.cとresetprg.cの3ファイルです。
1.intprg.c割り込みプログラム
割り込み処理を記述します。今回、タイマVの割り込みを使用するので、INT_TimerV()処理にInterruptTimerV()の呼び出しを追加します。InterruptTimerV()は、下の2で記述しています。
2.ledtest.cメインプログラム
このファイルが、メイン関数などを含む重要なファイルです。
このファイルの先頭でIO定義ファイルiodefine.hをインクルードします。CPU内蔵のレジスタの定義ファイルで、IOのマッピングを構造体や共有体で定義しています。ビット毎の処理では、構造体のビットフィールドを使用しているので、特定の1ビットのセット、リセットを他のビットに影響を与えないよううにマスク処理などを行わなくても、代入処理だけですますことができ、スマートなコーディングができます。
void HardwareSetup(void)関数
リセット時に呼び出される関数(下の3参考)で、CPUのピン機能やタイマなどの初期化を行います。
void InterruptTimerV(void)関数
タイマVの割り込み処理
1mSEC毎に割り込みが発生するように、タイマVを初期化しているので、この割り込みを1000回カウントすると1秒になります。1秒毎にLEDのポートを反転します。
void main(void)関数
今回のLED点滅処理は、割り込み処理だけで用が足りるので、このメイン処理では、何もしないで、ひたすらぐるぐる回り続けるだけです。
3.resetprg.cリセットプログラム
HardwareSetup()がコメントになっていますが、この関数を有効にするため、コメントマーク「//」をはずします。
作成したプロジェクトファイル
c:\h8\cqと言うフォルダを作成し、そこに解凍してください。他の場所に解凍した場合は、パスの問題で、HEW3が正常に処理できるか分かりません。また、HEW3のインストール先は、デフォルトの場所です。
モトローラファイルの書き込みユーティリティ
出来上がったモトローラファイル(*.mot)を、ブートモードの設定にして書き込みます。