Cortex M-0:简单的外部中断

时间:2013-10-26 14:52:05

标签: embedded arm interrupt microcontroller cortex-m

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

}

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

1 个答案:

答案 0 :(得分:0)

我不熟悉恩智浦MCU。 但至少要在PININT0_IRQHandler中放置中断,以便清楚地了解不会产生中断。

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

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

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

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