标题: 单片机中断下加一个循环程序,循环不执行 [打印本页]

作者: 哈哈哈1999    时间: 2020-1-6 11:50
标题: 单片机中断下加一个循环程序,循环不执行
我把中加那个while()循环加进去之后,他只亮一下,不是我想要的循环闪亮

void EXTI3_IRQHandler(void)
{
        delay_ms(10);//消抖
        if(KEY1==0)         //按键KEY1
        {                        
                     {
                        while(WK_UP && KEY0==1)
                LED0  =0;
                LED1  =1;
                LED2  =0;
                LED3  =0;  
                LED4  =0;
                LED5  =0;
                LED6  =0;
                LED7  =0;
                LED8  =0;
               
        delay_ms(500);
                LED0  =0;
                LED1  =0;
                LED2  =0;
                LED3  =0;  
                LED4  =0;
                LED5  =1;
                LED6  =1;
                LED7  =0;
                LED8  =0;
               
        delay_ms(500);
                 }        

EXTI_ClearITPendingBit(EXTI_Line3);  //清除LINE3上的中断标志位  
        }
}


作者: f556    时间: 2020-1-6 16:20
        if(KEY1==0)         //按键KEY1
        {                        
                     {
                        while(WK_UP && KEY0==1)
                LED0  =0;
                LED1  =1;
                LED2  =0;
                LED3  =0;  
                LED4  =0;
                LED5  =0;
                LED6  =0;
                LED7  =0;
                LED8  =0;
   相当于  while(WK_UP && KEY0==1)     LED0  =0;
其它LED属于if的责任范围。调一下{}位置。
作者: man1234567    时间: 2020-1-6 16:35
循环不执行,应检查循环执行条件是否满足。
作者: llllw    时间: 2020-1-6 17:16
1.中断服务函数不能传入参数; 2.中断服务函数不能有返回值; 3.中断服务函数应做到短小精悍; 4.不要在中断函数中使用printf函数,会带来重入和性能问题
作者: llllw    时间: 2020-1-6 17:16
1.中断服务函数不能传入参数;
2.中断服务函数不能有返回值;
3.中断服务函数应做到短小精悍;
4.不要在中断函数中使用printf函数,会带来重入和性能问题
作者: f556    时间: 2020-1-7 15:55
答复千差万别。再重申一次:
                     {
                        while(WK_UP && KEY0==1)
                LED0  =0;
   
改成:
   while(WK_UP && KEY0==1)
           {
                LED0  =0;
   
作者: jizhongbiao    时间: 2020-1-8 11:13
在中断里面搞循环。。。也是醉了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1