TM4C外部中断处理函数不执行
//谢谢各位啦
int in_light = 1;
int FLAG = 1;
void Key2IntHandler(void)//中断服务函数
{
FLAG = 1;
in_light = ~in_light;
GPIOIntClear(GPIO_PORTF_BASE,GPIO_INT_PIN_4);
}
//我尝试把 in_light = ~in_light; 这句话删掉,删掉之后是可以将LED熄灭的。也就是可以执行中断服务函数
//感觉中断服务函数里面只能写一句话
void main(void)
{
//初始化
SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_XTAL_16MHZ|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN);//配置系统时钟80MHz
GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4);
GPIOIntTypeSet(GPIO_PORTF_BASE,GPIO_PIN_4,GPIO_FALLING_EDGE); //设置PF4中断类型 GPIOIntEnable(GPIO_PORTF_BASE,GPIO_PIN_4); //使能PF4中断
GPIOIntRegister(GPIO_PORTF_BASE, Key2IntHandler); //为PF4注册一个中断处理句柄
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);//使能PA引脚
GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE,GPIO_PIN_4);//配置PA4输出
GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,0<<4);//配置LED3开始时点亮
while(1)
{
if(FLAG)
{
if(!in_light)
{
GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,1<<4);
}
if(in_light)
{
GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,0<<4);
}
FLAG = 0;
}
}
}