トリガとは、"引き金"の事であるが...
マイコン制御の世界では、何らかの出来事(イベント)の事を表す。例えば、下図のように、マイコンにスイッチが接続されていたとする。この時のスイッチの状態を割り込みで検出する事を考えると、スイッチの状態とは、
の2つの状態が考えられる。例えばスイッチが切りかえられた瞬間を検出したいのであれば、1の状態をチェックする必要があるし、ONが継続している(もしくはOFF)を検出したいのであれば、2の状態をチェックする必要がある。
エッジトリガでは、信号のエッジ(つまり、切り替わる瞬間)を検出して、割り込み発生のイベントとする。H8マイコンの場合、エッジは立下り(つまり、信号がONからOFFに切り替わる瞬間)を検出する。ON(Highレベル)とOFF(Lowレベル)の判別は、IRQxピンに加わる電圧が閾値を上回る場合はONであり、下回る場合はOFFである。
レベルトリガでは、信号がONかOFFであるかを検出して、割り込み発生のイベントとする。H8マイコンの場合、IRQxピンに加わる電圧がOFFの場合に割り込みが発生する。この際、信号がOFFの間は、割り込みが続けて発生する事に注意。
■プログラミングの実際
以下のように示すように、ISCRの各ビットが、各IRQの信号線の設定に対応している。(IRQxSCが、IRQx信号線に対応)
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
IRQ名 | IRQ5SC | IRQ4SC | IRQ3SC | IRQ2SC | IRQ1SC | IRQ0SC | ||
初期値 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
IRQxSCの値を1にすれば、該当するIRQx信号線による割り込みがエッジトリガとなる。0とすると、レベルトリガとなる。
なお、実際の信号変化では、電圧が閾値を下回る状態(レベルトリガ)か、立ち下がる(エッジトリガ)状態を割り込みイベントとして扱う。