我正在尝试在LPC812 uC上设置外部中断。我已经制作了以下代码
#include "LPC8xx.h"
#define RLED 7 // red LED
bool pause = false;
void PININT0_IRQHandler(void)
{
pause = !pause;
}
int main(void) {
LPC_GPIO_PORT->DIR0 |= 1<<RLED; // set pin as output
LPC_GPIO_PORT->SET0 = 1<<RLED;
NVIC_EnableIRQ(PININT0_IRQn);
while (1)
{
if(!pause)
{
LPC_GPIO_PORT->CLR0 = 1<<RLED;
}
}
}
但它不起作用。我错过了什么吗?
答案 0 :(得分:0)
我不熟悉恩智浦MCU。 但至少要在PININT0_IRQHandler中放置中断,以便清楚地了解不会产生中断。
清除处理程序中的中断标志也很好。
除NVIC设置外,某些外设还需要外设寄存器的中断许可。
您是否在某处设置了输入引脚?
您的代码仅将GPIO 7引脚初始化为输出。