ARM Cortex-M3 の簡単な GPIO 割り込みの例はありますか?
私はいくつかのコードを書きましたが、どういうわけか割り込みが発生していないようです:
#include "LPC17xx.h"
#include "lpc17xx_pinsel.h"
#include "lpc17xx_gpio.h"
void EINT3_IRQHandler(void) {
NVIC_ClearPendingIRQ(EINT3_IRQn);
puts("triggered"); // fired
}
int main() {
/** ... **/
/** ... **/
// listen for input on INPUT pin @ GPIO port 1, pin 31
PINSEL_CFG_Type PinCfg;
PinCfg.Funcnum = 0;
PinCfg.OpenDrain = 0;
PinCfg.Pinmode = 0;
PinCfg.Portnum = 1;
PinCfg.Pinnum = 31;
PINSEL_ConfigPin(&PinCfg);
GPIO_SetDir(port, 1 << pin, 0);
NVIC_EnableIRQ(EINT3_IRQn);
while(1); // wait
/** ... **/
/** ... **/
return 0;
}
LPC1769 Cortex M3 の単純な GPIO 割り込みの例をオンライン/GitHub で検索しましたが、結果が得られません。ただし、次のように表示されます。
- 対象の GPIO 割り込みは
EINT_3
. - ユーザーコードで定義されている場合、IRQ ハンドラー
EINT3_IRQHandler
は上書きされます。
なにが問題ですか?