找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1959|回复: 6
收起左侧

单片机中断下加一个循环程序,循环不执行

[复制链接]
ID:511572 发表于 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上的中断标志位  
        }
}

回复

使用道具 举报

ID:282850 发表于 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的责任范围。调一下{}位置。
回复

使用道具 举报

ID:584814 发表于 2020-1-6 16:35 | 显示全部楼层
循环不执行,应检查循环执行条件是否满足。
回复

使用道具 举报

ID:519712 发表于 2020-1-6 17:16 | 显示全部楼层
1.中断服务函数不能传入参数; 2.中断服务函数不能有返回值; 3.中断服务函数应做到短小精悍; 4.不要在中断函数中使用printf函数,会带来重入和性能问题
回复

使用道具 举报

ID:519712 发表于 2020-1-6 17:16 | 显示全部楼层
1.中断服务函数不能传入参数;
2.中断服务函数不能有返回值;
3.中断服务函数应做到短小精悍;
4.不要在中断函数中使用printf函数,会带来重入和性能问题
回复

使用道具 举报

ID:282850 发表于 2020-1-7 15:55 | 显示全部楼层
答复千差万别。再重申一次:
                     {
                        while(WK_UP && KEY0==1)
                LED0  =0;
   
改成:
   while(WK_UP && KEY0==1)
           {
                LED0  =0;
   
回复

使用道具 举报

ID:130230 发表于 2020-1-8 11:13 | 显示全部楼层
在中断里面搞循环。。。也是醉了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表