标题: 请教关于单片机按键双击的问题 [打印本页]

作者: Zzwh    时间: 2022-6-17 17:01
标题: 请教关于单片机按键双击的问题
其中一个单片机按键单击短按的键值为 case 0x0202:
现在我想在这键值基础上加上双击,既能实现单击又能实现双击,这样可以实现吗?如何实现?求助各位大佬

作者: 兴安xa    时间: 2022-6-17 20:05
单键是可以实现单击和双击的,但是写成0x0202肯定不行吧,得另外写一个按键标志函数

作者: lkc8210    时间: 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. }
复制代码



作者: cdiyy    时间: 2022-6-19 10:31
lkc8210 发表于 2022-6-18 00:36

这段代码有问题。运行不对
作者: 188610329    时间: 2022-6-19 13:41
现在单片机资源都多到这种程度了么?一个键值都16位表示了?  你有那么多按键? 有那么多按键还要双击干啥?
作者: lkc8210    时间: 2022-6-20 00:03
cdiyy 发表于 2022-6-19 10:31
这段代码有问题。运行不对

愿闻其详
作者: lkc8210    时间: 2022-6-20 00:04
188610329 发表于 2022-6-19 13:41
现在单片机资源都多到这种程度了么?一个键值都16位表示了?  你有那么多按键? 有那么多按键还要双击干啥?

可能是阵列键盘
作者: wulin    时间: 2022-6-20 07:03
楼主要提供更多信息。常用的按键代码几十种,各自适用于不同应用场景。单就一小段局部代码case 0x0202:,难以复现其真实应用场景。得到的答复充其量只是一个思路。有一定基础还可能触类旁通,初学者只能如入云雾,于事无补。
作者: Zzwh    时间: 2022-6-20 09:11
lkc8210 发表于 2022-6-18 00:36

谢谢大佬的解答
作者: Zzwh    时间: 2022-6-20 09:14
188610329 发表于 2022-6-19 13:41
现在单片机资源都多到这种程度了么?一个键值都16位表示了?  你有那么多按键? 有那么多按键还要双击干啥?

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




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