マイコン入門spacer ad
トップページに戻る(マイコン徹底入門:STM32で始めるARM/Cortex-M3組み込み開発)
「マイコン徹底入門」とは? |  「マイコン徹底入門」を読む |  ダウンロード |  掲示板 |  筆者の自己紹介


Previous: 9.1.5. 割込みハンドラの作成

Up: 9. 外部割込み/イベントコントローラ(EXTI)

Next: 9.3. ソフトウェア割り込み


マイコン徹底入門:周辺回路編:STM32のペリフェラルを活用: 9. 外部割込み/イベントコントローラ(EXTI):

9.2. EXTI割込み(ライン5-15)

サンプルプログラム

exti_interrupt_gpiox5

15?2 回路図

 GPIOX5を利用して前項のサンプルと同じ処理を行うプログラムです。割込みハンドラの処理以外は前項のサンプルプログラムと同じ処理になっています。回路図は 15?2です。

 EXTIラインの0から4まではライン毎に割込みハンドラ関数が用意されています。ライン5以降は5から9までと10から15までが一つの割込みハンドラ関数にまとめられています。5から9までがEXTI9_5_IRQn関数、10から15までがEXTI15_10_IRQn関数です。

  EXTIライン5以降はまとめられてしまっている都合上、割込みハンドラが呼び出されたときに、どのラインで割込みが発生したのかを確認する必要があります。割込みの発生原因を確認するためには、EXTI_GetITStatus関数(ライブラリ 15?5)を使用します。

ライブラリ 15?5 EXTI_GetITStatus関数

関数プロトタイプ

ITStatus EXTI_GetITStatus(uint32_t EXTI_Line )

動作

指定したEXTIラインの割込みが許可されているか、及び、割込みペンディングビットがセットされているかを確認します。

引数

EXTI_Line

確認する対象のEXTIラインをEXTI_Linexで指定します。xには0から19までの数値が入ります。

戻り値

割込みの状態(SET又はRESET)。割込みが許可されており、且つ、割込みペンディングビットがセットされている場合のみSETになります。

 割込みハンドラで使用する際には、以下のように、関数の冒頭で対象となるEXTIラインの割込み状態を確認すればよいでしょう。

void EXTI9_5_IRQHandler(void)

{

? if(EXTI_GetITStatus(EXTI_Line5) != RESET)

??? {

????? ----------------

??? }

}


Previous: 9.1.5. 割込みハンドラの作成

Up: 9. 外部割込み/イベントコントローラ(EXTI)

Next: 9.3. ソフトウェア割り込み


このページはITと知的財産の法律情報「法務ネット」の管理人が制作・運営しています。
_Toc266801166