找回密码
 立即注册
查看: 2506|回复: 26

按键扫描优化方法

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:173
  • 最近打卡:2025-05-01 12:26:51
已绑定手机

17

主题

81

回帖

382

积分

中级会员

积分
382
发表于 2023-12-27 19:44:39 | 显示全部楼层 |阅读模式
按键扫描怎么样才能做的更精准呢?普遍都是延时20ms消抖,或者说调整延时时间来降低误触发的概率。广大网友有什么更好的办法?
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2023-12-28 11:44:16 | 显示全部楼层
假定主循环时间在 【50mS ~ 10mS】
那就查询,主循环中查询到连续2次读按键是按下的状态
就认为有该按键事件 !

处理完该按键事件后,要判断该按键是否已被释放
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:520
  • 最近打卡:2025-05-01 08:06:21

109

主题

1897

回帖

5204

积分

论坛元老

积分
5204
发表于 2023-12-28 08:52:11 | 显示全部楼层
本帖最后由 xxkj2010 于 2023-12-30 15:17 编辑

我以为是技术分享,原来是求助贴。
网上可以找到一些方法,我试过用定时器来协助检测按键,比直接用普通延时delay_ms(20)复杂些。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-01 04:31:49

24

主题

515

回帖

986

积分

荣誉版主

积分
986
发表于 2023-12-28 09:26:29 | 显示全部楼层
仅仅按键扫描就使用定时器,很奢侈。我用累计循环次数进行按键扫描。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:487
  • 最近打卡:2025-05-01 15:22:54
已绑定手机

27

主题

693

回帖

1950

积分

金牌会员

打工人

积分
1950
发表于 2023-12-28 09:45:32 | 显示全部楼层
社区*** 发表于 2023-12-28 09:26
仅仅按键扫描就使用定时器,很奢侈。我用累计循环次数进行按键扫描。

可否分享个例程,谢谢!
打工人
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:487
  • 最近打卡:2025-05-01 15:22:54
已绑定手机

27

主题

693

回帖

1950

积分

金牌会员

打工人

积分
1950
发表于 2023-12-28 09:46:00 | 显示全部楼层
社区*** 发表于 2023-12-28 09:26
仅仅按键扫描就使用定时器,很奢侈。我用累计循环次数进行按键扫描。

是的,定时器资源必定有限
打工人
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2023-12-28 10:08:29 | 显示全部楼层
这个消抖,要么增加硬件电路,,,要么软件处理,,,你这里看到还是普遍延时,,,那还是用用定时器的那种把。
给人机交互接口一个定时器用也不算太奢侈,,毕竟可以用作定时器的片上的资源还是很多的。。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:211
  • 最近打卡:2025-03-21 01:00:25

8

主题

84

回帖

782

积分

高级会员

积分
782
发表于 2023-12-28 11:15:46 | 显示全部楼层
amobbs里有几个关于按键的帖子挺不错的可以去参考下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2023-12-28 15:21:29 | 显示全部楼层
按键识别
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=5753
(出处: 国芯论坛-STC全球32位8051爱好者互助交流社区)

这个帖子也有进行过相关讨论,可以参考一下。
使用定时器做时间片任务调度,或者知道主循环多少时间执行一次的话,就可以设置按键循环扫描次数。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-01 04:31:49

24

主题

515

回帖

986

积分

荣誉版主

积分
986
发表于 2023-12-28 16:00:29 | 显示全部楼层
zhude*** 发表于 2023-12-28 09:45
可否分享个例程,谢谢!

【分享】新型的按键扫描程序 + 累计循环次数。不占用定时器
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=5936
(出处: 国芯论坛-STC全球32位8051爱好者互助交流社区)
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:40 , Processed in 0.155158 second(s), 122 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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