前回に続き、 「RRP1320-0 ハードデバック」に紹介したLEDを点滅させるプログラム(プロジェクト)について説明します。 今回は割込み及びピン機能の設定についてです。 < PICデバイス=PIC18F1320 >

 コンフィグレーションビットの設定は以下をご覧下さい。
 http://jyosou-robot.livedoor.biz/pic/RRP1320-0/config_out_test1.TXT

RRP1320-0 test1 構造」で紹介した test1.asm の26行目から CALL される、サブルーチンは下図の通りです。

下図は割り込み及びピン機能を設定しているアセンブラソース( intdef.asm )です。
まず最初にA/Dコンバーターの設定をしてから、出力ポートを設定しています。 リセット動作後にA/Dコンバーターに設定される為、ADCON1 でデジタルに指定して置かないと出力ポートに設定できないようです。

intdef_asm

続いて、24行目から TMER0 の設定です。 1秒間隔のイベント用ですが、キースイッチ入力の走査にも使う予定があるので100msec間隔で割り込みが発生するように設定してます。 8MHzの4周期分(0.5usec)と1/16プリスケーラーを使って100msecのカウント値(12500d)を求め、100msecで16bitタイマーカウンターがオーバーフローするように TMR0H , TMR0L の値( 0CF2Ch )を準備します。 tim0defh , tim0defl には割込みの都度 TMR0H , TMR0L の値を初期化するために同じ値( 0CF2Ch )をバックアップしています。

続いて TIMER0 を低位割り込みに設定した上で、TIMER0 の割り込みを許可しています。
これ以降、100msec間隔でTIMER0 による低位割込みが発生します。

以下は、参考のため symboldef1.asm のリストです。

symboldef1_asm

tmp0 , tmp1 はデバック等に使う為に予め定義していますが、今回は未使用です。


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


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