0

我正在尝试在我的 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;
    }
}

}

但它不起作用。我错过了什么吗?

4

1 回答 1

0

我不熟悉 NXP MCU。但至少在 PININT0_IRQHandler 中放置 break piont,才能清楚地理解不会产生中断。

清除处理程序内的中断标志也会很好。

除了 NVIC 设置外,一些外设还需要外设寄存器中的中断许可。

您是否在某处设置了输入引脚?

您的代码仅将 GPIO 7 引脚初始化为输出。

于 2013-11-05T13:24:12.077 回答