找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1593|回复: 3
收起左侧

单片机程序执行的问题

[复制链接]
ID:103131 发表于 2021-5-20 16:36 | 显示全部楼层 |阅读模式
切换到AD_TEST()就执行可是数值停下来没有动作,数码管不动作

void KEY2_TEST2(void)
{
        
    if(KEY2==0 && locks==2)
         {
                locks=1;        
                change++;
                 printf(" locks = %d\r\n",locks);
                  printf(" change = %d\r\n",change);
                if(change>2){change=1;}
         }        
         

         if(KEY2==1 )
         {        
                locks=2;        
         }                 


                          
         if(change==1)
         {
                  
                POWER_OFF_MODE();
          }               
        
          if(change==2)
          {
                  
                  AD_TEST();
               
          }
        

}

回复

使用道具 举报

ID:451718 发表于 2021-5-20 17:42 | 显示全部楼层
你这个框架不是太合理。  按键会有抖动的,抖动误判,会影响你的程序流程。
给你改了一下,如下:
switch(KEY2)
{
    case 0:
        if(locks==2)
        {
            locks=1;        
            change++;
            printf(" locks = %d\r\n",locks);
            printf(" change = %d\r\n",change);
            if(change>2){change=1;}
            switch(change)
            {
                 case 1:
                       POWER_OFF_MODE();
                 break;
                 case 2:
                       AD_TEST();
                 break;
                 default:
                 break;
            }
        }
    break;
    case 1:
        locks = 2;
    break;
}

回复

使用道具 举报

ID:103131 发表于 2021-5-20 18:12 | 显示全部楼层
robinsonlin 发表于 2021-5-20 17:42
你这个框架不是太合理。  按键会有抖动的,抖动误判,会影响你的程序流程。
给你改了一下,如下:
switch ...

谢谢哈
回复

使用道具 举报

ID:103131 发表于 2021-5-21 14:09 | 显示全部楼层
robinsonlin 发表于 2021-5-20 17:42
你这个框架不是太合理。  按键会有抖动的,抖动误判,会影响你的程序流程。
给你改了一下,如下:
switch ...

你好,我刚才做过实验,没有显示的,按键按上去没有反应
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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