在外部中断函数中,能直接改变中断触发方式吗
时间:10-02
整理:3721RD
点击:
比如我外部触发设置为上升沿触发,检测到上升沿中断然后进入中断函数中,把触发方式改为下降沿,反之改为下降沿
void EXTI0_IRQHandler(void)
{
delay_ms(10);//消抖
if(WK_UP==1) //WK_UP按键
{ ..
EXTI->FTSR|=1<<0; //改为下降沿
....
}
else if(WK_UP==1) //WK_UP按键
{ ..
EXTI->RTSR|=1<<0; //改为上升沿
..
}
EXTI_ClearITPendingBit(EXTI_Line0); //清除LINE0上的中断标志位
}
void EXTI0_IRQHandler(void)
{
delay_ms(10);//消抖
if(WK_UP==1) //WK_UP按键
{ ..
EXTI->FTSR|=1<<0; //改为下降沿
....
}
else if(WK_UP==1) //WK_UP按键
{ ..
EXTI->RTSR|=1<<0; //改为上升沿
..
}
EXTI_ClearITPendingBit(EXTI_Line0); //清除LINE0上的中断标志位
}
这样也可以做成上升沿和下降沿同时触发中断,进入中断后根据引脚电平来判断是何种边沿中断
这样和我要设计的思路不符
哎,又是在中断中延时,按键消抖可以用个定时器外部中断发生后定时10ms再去检测,这样在中断中用延时非常的不好,影响整个程序的响应时间
STC-ISP下载软件里有下降沿+上升沿触发示例程序