初级会员

- 积分
- 54
- 金钱
- 54
- 注册时间
- 2022-4-15
- 在线时间
- 13 小时
|
10金钱
while(1)
{
if(SignalA && SignalB && SignalC)
{
EXTI->IMR &= ~(EXTI_Line2);
EXTI->IMR &= ~(EXTI_Line3);
EXTI->IMR &= ~(EXTI_Line4);
delay_ms(2000);
EXTI->IMR |= EXTI_Line2;
EXTI->IMR |= EXTI_Line3;
EXTI->IMR |= EXTI_Line4;
}
}
if里面的条件是三个中断都发生过一遍。同时我在中断函数里也写了关闭中断的函数,我想在三个中断执行完成后在液晶显示,所以我想先将中断关闭,运行主函数,让液晶显示两秒之后在开始下一轮的中断,
可这样写实际的运行却是这个延迟函数没作用,好像就是一条语句,瞬间执行完就过了,直接执行下面的开启中断,没有在延迟这一句停住。有没有什么办法可以让程序暂时停在这一句,不去执行下面的。
|
|