割り込み処理の作り方


割り込み処理の作成法

【割り込み処理とは?】

PICROSでいう割り込み処理とは、割り込み受け付けしレジスタ類の
待避をした後の処理のことを指し、戻りはまたPICROSに戻す。
PICチップ毎に割り込みの内容が異なるが、PICROSで実際に処理
しているのはTIMER0のみである。しかもインターバルタイマとして
の使い方に限定されているので、注意が必要である。

【割り込み処理の構成】

各割込みについてはPICROS内でレジスタの退避や復帰を管理し、
多重割込みを可能としています。
そして、ユーザが作成する各割込みの処理部分は、独立のサブ
ルーチンとして作成することで、PICROSと接続できるようになって
います。これを図で表すと下図の様になり、図中の赤色部分を
ユーザが作成します。その中味は大雑把に書くと、下図の右側の
ような構成とし、最後はRETURNで帰るようにします。
注意が必要なのはRETIENでは無いということです。




PICROS内では、このユーザが作成した割り込み処理から戻ると
他の割込みが同時に入っていないかを確認し、他にあればそちらの
処理にさらに分岐します。全ての割込み要因の処理が完了した時点
で割込み処理を終了し、レジスタを復帰して抜け出ます。

【割り込み処理の注意】

ここでユーザが作成する割込み処理部分を作成する際の条件は
下記のようになります。

(1)割込み処理内は全て割込み禁止のままとすること

(2)処理の最後はRETURNで終わること

(3)処理時間を短くすること
 割込み禁止のままななので、余り長い実行時間とすると、他の
 割込みが受け付けられないし、高速の繰り返し処理も難しくなる
 ので、長時間を要する処理にはしないこと。

(4)チップ独自の割り込みはユーザで処理すること
 PICROSで区別する割込みはINTCONレジスタ内だけなので、PIC
 のチップにより他に割込みステータスのレジスタがある場合には
 ユーザの作成する割込み処理部分に、その処理を含める必要が
 あります。

(5)割込みフラグのリセットもユーザで処理する必要があります。

【割込み処理の作り方】

(1)分岐命令を置く
  ユーザの割込み処理へ分岐するためのCALL命令を下記の様に
  して作成します。
  この分岐命令は使うものだけ置けば良く、使わない部分は何も
  しなくて良い。

    ORG  5
    CALL  USR_CG   PORTBのビット変化割込みの処理へ
    ORG  7
    CALL  USR_EXT   RB0/INT割込みの処理へ
    ORG  9
    CALL  USR_UNIV  その他の割込み処理へ

(2)割り込みの具体的処理部分を作成する
  割り込み処理の最初はまず割り込みフラグをリセットします。
  その後は、個々の処理に従って処理する必要があります。
  それぞれの形は下記のようにします。

     USR_CG          ←上記でセットしたラベル
         処理そのもの
          |
          |
         RETURN


  




  次のページへ     目次ページへ