标题: 简单的单片机三按键长按短按多参数程序修改 [打印本页]

作者: wu_expect    时间: 2020-4-28 09:31
标题: 简单的单片机三按键长按短按多参数程序修改
void Keyfn(void)
{
       uint i;
        if(Exit==0)    //   检测EXUT是否按下
        {
          //这里加延时消抖
        if(Exit==1) Bzdata++;
  if(Bzdata>4){Bzdata=0;}
        }
          if(!Add)        //检测按钮加
            {  
                i++;  
          if(i>=H) //时间大于H执行长按操作/H自行修改
                {
                if(Bzdata==1){参数1+10}//参数1

        else if(Bzdata==2){
参数2+10
}//2
        else if(Bzdata==3){
参数3+1
0}//3
        else if(Bzdata==4){
参数4+10
}//4
        i=8000; //??+
                }
            //此处加显
            }  
          else{
       if(i>L&i<H)// 时间大于L,L是消抖时间,小于H执行长按操作/H自行修改      
                {
              if(Bzdata==1){参数1+1}      //1
      
else
if(Bzdata==2){参数2+1}//2
      
else
if(Bzdata==3){参数3+1}//3
      
else
if(Bzdata==4){参数4+1}//4
        i=0;
                }
//此处加显

}
                  if(!Sub)   //检测按钮减
            {  
                i++;         //计算按钮时间
          if(i>=H) //时间大于H执行长按操作/H自行修改
                {
                if(Bzdata==1){参数1-10}        //参数1

        else if(Bzdata==2){
参数2-1
0}        //参数2

        else if(Bzdata==3){
参数3-1
0}        //3

        else if(Bzdata==4){
参数4-10
}        //4

        i=8000;
                }
        //此处加显
            }  
          else{
       if(i>L&i<H) // 时间大于L,L是消抖时间,小于H执行长按操作/H自行修改     
                {
              if(Bzdata==1){参数1-1}//1
      
else
if(Bzdata==2){
参数2-1
}//2
      
else
if(Bzdata==3){
参数3-1
}//3
      
else
if(Bzdata==4){
参数4-1
}//4
        i=0;
                }
/    /此处加显

       }

}

作者: man1234567    时间: 2020-4-28 14:57
这套层能把人整得不知南北,估计还真是啥好东西
作者: hebxk311a    时间: 2020-8-18 17:59
是否用SWITCH CASE来做好一些,框架会更加简单清楚
作者: bhjyqjs    时间: 2020-8-24 09:02
似乎无需弄这么复杂吧
作者: jjwangxu2008    时间: 2020-8-25 13:21
似乎无需弄这么复杂吧
作者: wu_expect    时间: 2022-6-29 15:34
hebxk311a 发表于 2020-8-18 17:59
是否用SWITCH CASE来做好一些,框架会更加简单清楚

那就得5个按键了!




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