想做一个外部中断按键控制灯闪烁或者不闪烁的实验,但是代码有bug ,key3就是key_up,按一下就闪烁做到了,但是取消闪烁的时候要按按键的时间变成了delay里面确定的(意思就是500ms就要按够500ms才能停止),有大佬知道怎么改这段代码吗?
感激不尽!!!
void EXTI0_IRQHandler(void)
{
u8 i=1;
if(EXTI_GetITStatus(EXTI_Line0)==SET)
{
EXTI_ClearITPendingBit(EXTI_Line0);
EXTI_ClearFlag(EXTI_Line0);
delay_ms(10);//消抖
if(key3==1)
{
while(i)
{
delay_ms(500);
led1=!led1;
led2=!led2;
if(key0==0||key1==0||key2==0||key3==1)
{
delay_ms(10);
i=0;
break;
}
}
}
}
} |