OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3465|回复: 4

按键的控制求助,想要实现单击双击长按

[复制链接]

3

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
199
金钱
199
注册时间
2020-5-28
在线时间
57 小时
发表于 2022-3-15 23:10:33 | 显示全部楼层 |阅读模式
1金钱
while(1)
        {
                key=KEY_Scan(0);
                   if(key)
                {                                                  
                        switch(key)
                        {                                 
                                case WKUP_PRES:       
                                        BEEP=!BEEP;
                                        break;
                                case KEY2_PRES:       
                                        LED0=!LED0;
                                        break;
                                case KEY1_PRES:                 
                                        LED1=!LED1;
                                        break;
                                case KEY0_PRES:        //////////////下面是我加的关于按键单击双击的判断   单独可以使用,综合到历程里没用  请问是逻辑有问题么,应该怎么写
                                                 key1 = key_read();      
                                                 if (key1== L_key)       // 长按
                                                                 BEEP = ~BEEP;
                                                 else if(key1 == D_key)  //双击
                                                                 LED1 = ~LED1;
                                                 else if(key1 == S_key)  
                                                                 LED0 = ~LED0;        
                                                 delay_ms(10);
                                        break;
                        }
                }else delay_ms(10);
        }         
}















正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

141

帖子

0

精华

高级会员

Rank: 4

积分
679
金钱
679
注册时间
2020-11-21
在线时间
67 小时
发表于 2022-3-16 13:00:34 | 显示全部楼层
你这种使用的是查询方式,当按键按下后,程序执行到这段代码才能成功检测到按键。如果程序里面其他地方有比较长的延时,当按键按下后,程序不一定刚好能执行到按键检测程序,就会导致按键不灵敏,或者识别不出来的情况。
回复

使用道具 举报

77

主题

203

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1208
金钱
1208
注册时间
2017-8-25
在线时间
167 小时
发表于 2022-3-16 14:02:21 | 显示全部楼层
回复

使用道具 举报

77

主题

203

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1208
金钱
1208
注册时间
2017-8-25
在线时间
167 小时
发表于 2022-3-16 14:04:35 | 显示全部楼层
回复

使用道具 举报

0

主题

668

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1926
金钱
1926
注册时间
2021-8-13
在线时间
262 小时
发表于 2022-3-16 16:11:57 | 显示全部楼层
看看楼上大佬的分享
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-28 00:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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