動作環境
OS: Ubuntu 18.04 LTS
基板: LPCXpresso54628
IDE: MCUXpresso IDE v11.0.1 [Build 2563] [2019-09-01]
概要
- GPIO割込のSDKサンプルgint.cがある
- 一入力の割込: 正常動作
- 二入力の割込: 認識しない
準備と実行
- Quickstart PanelからImport SDK example(s)... を選択
- driver_examples > gint を選択
- 他の設定はデフォルトのままとしてプロジェクトを作成
- プロジェクト名(例: 191006_1100_GPIO_interrupt)
- gint.cをビルドして実行する
- 一入力の割込(GINT0): SW2 > 正常動作
- 二入力の割込(GINT1): SW3 or SW4 > 認識しない
SW3 or SW4のところをSW3だけにすると認識するため、SW3が壊れているということではなさそう。
SDK exampleで正常動作する環境と、異常動作になる環境があるのだろうか?
gint.c
/* Select one input, active low for GINT0 */
#define DEMO_GINT0_POL_MASK ~(1U << BOARD_SW2_GPIO_PIN)
#define DEMO_GINT0_ENA_MASK (1U << BOARD_SW2_GPIO_PIN)
/* Select two inputs, active low for GINT1. SW2 & SW3 must be connected to the same port */
#define DEMO_GINT1_POL_MASK ~((1U << BOARD_SW3_GPIO_PIN) | (1U << BOARD_SW4_GPIO_PIN))
#define DEMO_GINT1_ENA_MASK ((1U << BOARD_SW3_GPIO_PIN) | (1U << BOARD_SW4_GPIO_PIN))
関連
-
Group GPIO input interrupt for Two pins (or more) cannot trigger well.
- > 1. When you set the OR mask here, the first button triggers the interrupt, so the second button is not recognized as a new state (no interrupt).