サイト内検索

Silicon Labs EFM32:外部割込みピンに優先度を設定できますか?

EFx32

EFM32では、最大16本を外部割込みのソースとして使用できます。16本の割り込みソースに対して、割り込み(割り込みハンドラ)は2つ用意されています。16本それぞれに割り込みハンドラが用意されているわけではありません。外部割り込みが発生したら、割り込みハンドラの処理の中で、どのピンが要因になったのかを確認し、その結果に従った処理を行います。void GPIO_EVEN_IRQHandler(void);void GPIO_ODD_IRQHandler(void);下図はEFM32LGリファレンスマニュアル「GPIO」からの抜粋です。外部割込みピンから、割り込みが発生するまでの経路を示しています。この回路がPinグループ(P0, P1…P15)ごとに用意されています。

Article header   24

IRQ_GPIO_EVENは偶数ピン(Pin 0, 2, 4, 6, 8, 10, 12,14)、IRQ_GPIO_ODDは奇数ピン(Pin 1, 3, 5, 7, 9, 11, 13, 15)に対応した割り込みです。IRQ_GPIO_EVENとIRQ_GPIO_ODDの優先順位は変更できます。ピンごとに優先順位はつけられません。(Pin 0だけを優先させる、という事はできません)
複数のピンが同時に、或いは時間差をつけて割り込み条件を満たした場合でも、割り込みフラグレジスタ(GPIO_IF、上図のIF[n])には検出した結果が反映されます。どのピンが要因になったのかを割り込みハンドラにて確認した際に、もし複数のフラグが立っていれば、それらに対して処理の優先順位をつけることはソフトウェア的に可能かもしれません。

経験豊富なFAEが
無料でご相談を承ります。

特定製品の仕様からパーツの選定まで、当社のFAEが皆様のテクニカルなお悩みに無料で回答します。ぜひ、お気軽にご相談ください。