エッジトリガとレベルトリガ

トリガとは、"引き金"の事であるが...

 マイコン制御の世界では、何らかの出来事(イベント)の事を表す。例えば、下図のように、マイコンにスイッチが接続されていたとする。この時のスイッチの状態を割り込みで検出する事を考えると、スイッチの状態とは、

  1. スイッチがONからOFF(もしくはOFFからON)に切り替わる。  ⇒  エッジトリガ)
  2. スイッチがON状態。(もしくはOFF状態)  ⇒  レベルトリガ

の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とすると、レベルトリガとなる。
なお、実際の信号変化では、電圧が閾値を下回る状態(レベルトリガ)か、立ち下がる(エッジトリガ)状態を割り込みイベントとして扱う。

最終更新:2014年06月20日 14:33