就是做个普通的按钮中断点亮LED,,,出现了问题,,
uint32_t CurrentClock;
void Int_J() //中断函数,在start_ewarm.c里面都写了
{
while(1)
{
GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0|GPIO_PIN_1, 0);
ROM_SysCtlDelay( CurrentClock / 3 );
GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0|GPIO_PIN_1, 0xff);
ROM_SysCtlDelay( CurrentClock / 3 );
}
}
int main()
{
//Clock Setting
CurrentClock = SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480), 120000000);
//Periph Setting
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION); //这个GPION是LED灯的
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ); //这个是中断的
ROM_GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0|GPIO_PIN_1); //设置GPIO点灯的那个输出
ROM_GPIOPinTypeGPIOInput(GPIO_PORTJ_BASE, GPIO_PIN_0);
GPIOPadConfigSet(GPIO_PORTJ_BASE, GPIO_PIN_0,GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPU); //这俩设置为输入,弱上拉,
ROM_GPIOIntTypeSet(GPIO_PORTJ_BASE, GPIO_PIN_0,GPIO_FALLING_EDGE); //下降沿触发..
ROM_IntEnable(INT_GPIOJ);
ROM_IntMasterEnable();
// ROM_IntPendSet(INT_GPIOJ); 人工触发中断用
while(1)
{
}
}
始终无法进入中断,,但是用
ROM_IntPendSet(INT_GPIOJ); 人工触发中断
就能进入了,,,那哪个地方有毛病呢?