找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1581|回复: 9
收起左侧

请教关于单片机按键双击的问题

[复制链接]
ID:963748 发表于 2022-6-17 17:01 | 显示全部楼层 |阅读模式
其中一个单片机按键单击短按的键值为 case 0x0202:
现在我想在这键值基础上加上双击,既能实现单击又能实现双击,这样可以实现吗?如何实现?求助各位大佬
回复

使用道具 举报

ID:979299 发表于 2022-6-17 20:05 | 显示全部楼层
单键是可以实现单击和双击的,但是写成0x0202肯定不行吧,得另外写一个按键标志函数
回复

使用道具 举报

ID:161164 发表于 2022-6-18 00:36 | 显示全部楼层
  1. if(KeyVal == 0x0202)
  2. {
  3.         DoubleClickTimerEn = 1;//1ms定时中断内DoubleClickTimer++
  4.         ClickCount++;
  5. }
  6. if(DoubleClickTimer>200)
  7. {
  8.         DoubleClickTimerEn = 0;
  9.         DoubleClickTimer = 0;
  10.         ClickOut = ClickCount;
  11.         ClickCount = 0;
  12. }
  13. if(ClickOut == 1)
  14. {
  15.         ClickOut = 0;
  16.         //运行单按功能
  17. }
  18. if(ClickOut == 2)
  19. {
  20.         ClickOut = 0;
  21.         //运行双按功能
  22. }
复制代码


回复

使用道具 举报

ID:607312 发表于 2022-6-19 10:31 | 显示全部楼层

这段代码有问题。运行不对
回复

使用道具 举报

ID:624769 发表于 2022-6-19 13:41 来自手机 | 显示全部楼层
现在单片机资源都多到这种程度了么?一个键值都16位表示了?  你有那么多按键? 有那么多按键还要双击干啥?
回复

使用道具 举报

ID:161164 发表于 2022-6-20 00:03 | 显示全部楼层
cdiyy 发表于 2022-6-19 10:31
这段代码有问题。运行不对

愿闻其详
回复

使用道具 举报

ID:161164 发表于 2022-6-20 00:04 | 显示全部楼层
188610329 发表于 2022-6-19 13:41
现在单片机资源都多到这种程度了么?一个键值都16位表示了?  你有那么多按键? 有那么多按键还要双击干啥?

可能是阵列键盘
回复

使用道具 举报

ID:213173 发表于 2022-6-20 07:03 | 显示全部楼层
楼主要提供更多信息。常用的按键代码几十种,各自适用于不同应用场景。单就一小段局部代码case 0x0202:,难以复现其真实应用场景。得到的答复充其量只是一个思路。有一定基础还可能触类旁通,初学者只能如入云雾,于事无补。
回复

使用道具 举报

ID:963748 发表于 2022-6-20 09:11 | 显示全部楼层

谢谢大佬的解答
回复

使用道具 举报

ID:963748 发表于 2022-6-20 09:14 | 显示全部楼层
188610329 发表于 2022-6-19 13:41
现在单片机资源都多到这种程度了么?一个键值都16位表示了?  你有那么多按键? 有那么多按键还要双击干啥?

键值只用8位来表示,另外的用来区分长短按
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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