Previous: 8.5. タンパーピン出力 |
Up: マイコン徹底入門:周辺回路編:STM32のペリフェラルを活用 |
Next: 9.1. EXTI割込み(ライン0-4) |
これまでの章で紹介してきた割込は、周辺回路に備わっている割込発生機能を利用するものでした。STM32の割込は、こういった周辺回路固有の割込だけではなく、GPIOの入力や、ソフトウェアでも発生させることができます。そのために使用するのが外部割込み/イベントコントローラです。STM32では外部割込み/イベントコントローラをEXTIと呼んでいます。EXTernal Interruptの略ですね。外部割込み/イベントコントローラでは長いので本書では以下単にEXTIと呼びます。
GPIOによる割込では、GPIO入力の立ち上がりエッジ又は立ち下がりエッジで割込を発生させることができます。もちろん望みのエッジ方向を選択可能です。外部割り込みを使用すれば、ボタン入力のポーリングが必要なくなりますから、効率的な処理が可能です。ただしソフトウェア的なチャタリング対策ができませんから、ハードウェア的なチャタリング対策が必要です。
ソフトウェアによる割込を利用すると、メインルーチンから割込の処理優先度をコントロールできるようになります。どういうことかというと、例えば、ある割り込み処理Aが定期的に実行されている時に、メインルーチンが割り込み処理Aよりも優先して処理したい処理Bが発生したとします。処理Bをメインルーチン内に記述しても、処理Aは割り込み処理ですから、処理Aの割り込み優先度をどれだけ低くしても、メインルーチンよりは優先して処理されます。その結果、処理Bはメインルーチンである以上、処理Aより優先度が低くなります。そこで処理Bをソフトウェア割り込みルーチンとして記述し、メインルーチンからソフトウェア割り込みを発生させます。そうするとNVICで処理Bの優先度を処理Aより高くしておけば、処理Bが優先して処理されます。ソフトウェア割り込みを利用することにより、周辺回路で発生している割込よりも、他の処理を優先して処理することができ、結果、各処理の優先度を柔軟に設定できることになります。
Previous: 8.5. タンパーピン出力 |
Up: マイコン徹底入門:周辺回路編:STM32のペリフェラルを活用 |
Next: 9.1. EXTI割込み(ライン0-4) |