「RRP1320-0 ハードデバック」に紹介したLEDを点滅させるプログラム(プロジェクト)について説明します。 割り込みを使う為、プログラムの機能毎に独立した複数のソースファイルを作っています。 それらソースファイルの関係を説明します。 < PICデバイス=PIC18F1320 >

project_RRP1320-0

プロジェクト(フォルダー)には4つのソースファイル( .asm )があります。 test1.asm がメイン・プログラムで、他の3つは test1.asm にインクルードされています。 他に青色で示した標準ヘッダーファイル(MPLAB付属)が必要で、各々概略上図の矢印先端の位置にインクルード命令があります。 各ソースファイルの概要を説明します。

<<< symboldef1.asm >>>
このプロジェクトに必要な「ユーザーによるシンボル定義」を全て書くことにします。 (極ローカルな定数定義を除いて)原則として他のソースファイルでは(プログラム中のラベルを除く)シンボルの定義を行わないようにします。

<<< intdef.asm >>>
必要なSFRに設定を書き込んで割り込み及びピン機能の設定を行います。 今回はA/Dコンバーターを使わない設定と、ポートの入出力設定、TIMER0の割り込み周期及び低位割り込み許可を設定しています。

<<< intlow.asm >>>
低位割り込み(現状はTIMER0のみ)が発生した時に動くプログラムです。 必要なレジスター保護を行い、1秒に1回の頻度で test1.asm に記述したサブルーチンをCALLしています。

<<< test1.asm >>>
前述のインクルード文とコメントを除いた中身は下図の通りです。

test1

単にクロックを内部クロックの8MHzに切り替えて、BSR(バンク・セレクト・レジスター)を0に設定した後は無限ループに突入します。 45行目からのサブルーチンは、割り込み処理プログラムによって1秒間隔でコールされ、RA4に(LEDを接続)をトグル動作させるだけのプログラムです。 割り込み処理からコールされるので、無限ループ突入後にも1秒間隔でコールされます。

1秒毎にLEDを点滅させる為には前述 symboldef1.asm , intdef.asm , intlow.asm の役割があるのですが各々の詳細は別の記事で紹介します。

以下で、ここで紹介したソース・ファイル(プロジェクト)をダウンロード出来ます。
LHA書庫です。 前述以外のソース・ファイルもありますがLCD用です。(無視して下さい)
 http://jyosou-robot.livedoor.biz/pic/RRP1320-0/RRP1320-0-1.lzh

 上のプロジェクトに含まれる情報ですが、この時のコンフィグレーション設定の出力です。
 「コンフィグレーションビット」をご参照の上、ご利用下さい。
  http://jyosou-robot.livedoor.biz/pic/RRP1320-0/config_out_test1.TXT


RRP1320-0 関連記事のインデックスはこちら → RRP1320-0 回路図


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。