找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机按键程序第一次按下确认,第二次按下切换菜单 每次进来都如此 如何实现

[复制链接]
ID:686513 发表于 2022-4-8 10:50 | 显示全部楼层 |阅读模式
单片机源程序如下:
void key_Service()
{         
        switch(key_scan(170))
                {                        
                        case 1:
                                  switch(wnd)
                                  {                                                
                                               
                                        case 0:T1Cnt=epxs_short; parm1 = Read_EEPROM_u16(0x0400);  if(parm1<1000) parm1 = parm1+5; else {parm1++;} if(parm1<30) parm1=30;if (parm1>1050) parm1=1050; Save_EEPROM_u16(0x0400, parm1); break;//psi:0~150,0~100加5,到100退位显示100~150加1
                                        case 1:T1Cnt=epxs_short; parm2 = Read_EEPROM_u16(0x0500);  parm2++;         if(parm2<20) parm2=20;if(parm2>103)  parm2=103;   Save_EEPROM_u16(0x0500, parm2); break;        
                                        case 2:T1Cnt=epxs_short; parm3 = Read_EEPROM_u16(0x0600);  parm3 = parm3+5; if(parm3<20) parm3=20;if(parm3>995)  parm3=995;   Save_EEPROM_u16(0x0600, parm3); break;         
                                        case 3:T1Cnt=epxs_short; parm4 = Read_EEPROM_u16(0x0700);  parm4++;         if(parm4<20) parm4=20;if(parm4>103)  parm4=103;   Save_EEPROM_u16(0x0700, parm4); break;                                                                    
                                        }                                                
                                        FMQCnt = FMQ_short;        //按键声音触发,滴一声就停。                                       
                                        break;
                                
//case 2:第一次按下进来后执行T1Cnt=0; ,第二次按下进来后执行wnd++;if(wnd>3) wnd=0;如此循环,如何实现?                                        
      case 2:                                                                                       
                                        T1Cnt=0;
                                        wnd++;if(wnd>3) wnd=0;

                                                FMQCnt = FMQ_short;        //按键声音触发,滴一声就停。     
                                                break;        

回复

使用道具 举报

ID:752974 发表于 2022-4-8 12:34 | 显示全部楼层
按键计数,1做事情1,2做事情2。
回复

使用道具 举报

ID:121859 发表于 2022-4-8 12:37 | 显示全部楼层
如果就一个按键的话,那么可以设置一个变量,来记录按键次数,奇数次执行第一个,偶数次执行第二个。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:123289 发表于 2022-4-9 09:18 | 显示全部楼层
加一个标记位B_X即可,每按一次键,将B_X求反。
B_X=0、1分别做你想做的事。
回复

使用道具 举报

ID:686513 发表于 2022-4-12 07:47 | 显示全部楼层
munuc_w 发表于 2022-4-8 12:34
按键计数,1做事情1,2做事情2。

明白了,多谢!
回复

使用道具 举报

ID:686513 发表于 2022-4-12 07:48 | 显示全部楼层
zhxiufan 发表于 2022-4-8 12:37
如果就一个按键的话,那么可以设置一个变量,来记录按键次数,奇数次执行第一个,偶数次执行第二个。

谢 谢 ,方法不错!
回复

使用道具 举报

ID:686513 发表于 2022-4-12 07:49 | 显示全部楼层
yzwzfyz 发表于 2022-4-9 09:18
加一个标记位B_X即可,每按一次键,将B_X求反。
B_X=0、1分别做你想做的事。

多谢 ,这个求反很适合按两次,方法很不错!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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