Ex_NVIC_Config(GPIO_A,0,RTIR); //上升沿触发
Ex_NVIC_Config(GPIO_A,13,FTIR);//下降沿触发
Ex_NVIC_Config(GPIO_A,15,FTIR);//下降沿触发
MY_NVIC_Init(2,2,EXTI0_IRQChannel,2); //抢占2,子优先级2,组2
MY_NVIC_Init(2,1,EXTI15_10_IRQChannel,2);//抢占2,子优先级1,组2
这两个函数我明白,按键按下,检测到中断信号,但是就是不知道怎么就执行到
void EXTI0_IRQHandler(void)
{
delay_ms(10);//消抖
if(KEY2==1)
//按键2
{
LED0=!LED0;
LED1=!LED1;
}
EXTI->
R=1<<0; //清除LINE0上的中断标志位
}中。
void EXTI0_IRQHandler(void) 是怎么和 MY_NVIC_Init(2,2,EXTI0_IRQChannel,2); chan's产生联系的。
---------------------------------
CPU自动去执行的
当你产生中断的时候,CPU就会响应,然后去中断向量表查找当前中断向量的中断服务函数所在的地址,然后执行中断服务函数.
中断服务函数具体的代码是放在哪里的是紧接着中断服务函数所在地址吗?我看没个中断服务函数就相邻四个字节,这点空间怎么够放得下函数内容?还是说到了中断服务函数所在地址以后再重新指向一个新的地址里,那里存放着中断函数的实体?
一周热门 更多>