找回密码
 立即注册
楼主: 乘风飞扬

[分享]简单的按键扫描程序

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:452
  • 最近打卡:2025-05-01 06:20:50
已绑定手机

13

主题

1257

回帖

2971

积分

金牌会员

积分
2971
发表于 2024-4-3 19:09:59 | 显示全部楼层
1楼键盘扫描代码放在1ms定时中断中用很好用,如果有双击的代码就更好了了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:61
  • 最近打卡:2025-02-18 18:39:08

13

主题

91

回帖

279

积分

中级会员

积分
279
发表于 2024-6-16 11:58:47 | 显示全部楼层
很有想法
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-04-03 11:26:38

4

主题

138

回帖

631

积分

高级会员

积分
631
发表于 2024-8-15 19:55:06 来自手机 | 显示全部楼层
学习借鉴借鉴
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-08-21 21:24:19

1

主题

1

回帖

39

积分

新手上路

积分
39
发表于 2024-8-15 22:25:38 | 显示全部楼层
zhang*** 发表于 2024-4-3 18:12
一楼的我认为不能使用。首先 计数没有清零!这个不是问题好解决。但是如果第一个延时到了  标志变成1.但是 ...

我直接做了一个一个计数,少于数字算短按,多于数字算长按,少于50MS算没按
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:350
  • 最近打卡:2025-05-01 00:32:14
已绑定手机

130

主题

1520

回帖

1855

积分

金牌会员

积分
1855
发表于 2025-1-18 13:25:39 | 显示全部楼层
大佬有不有带长按,和双击的版本,
用你这个代码好一段时间了.挺稳定的.就是缺个双击
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:350
  • 最近打卡:2025-05-01 00:32:14
已绑定手机

130

主题

1520

回帖

1855

积分

金牌会员

积分
1855
发表于 2025-1-19 23:44:27 | 显示全部楼层
已经在代码上加入了双击功能,
但是有个问题出来了.
进入省电模式后, 要两次单击(不是双击)才能唤醒单片机,第一次我用电流表量了.其实已经唤醒了. 但是没有执行其他代码, 第二次才进入
但是长按却可以一次唤醒.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:350
  • 最近打卡:2025-05-01 00:32:14
已绑定手机

130

主题

1520

回帖

1855

积分

金牌会员

积分
1855
发表于 2025-1-19 23:45:08 | 显示全部楼层
这个是我添加双击的代码, 大佬帮看看可以吗
  1.     if(!key)
  2.     {
  3.         if(!key_flag)
  4.         {
  5.             key_cnt++;
  6.             if(key_cnt >= 25)                        //长按1s
  7.             {
  8.                 key_Short_Flag = 0;                //清除短按标志
  9.                 key_Long_Flag = 1;                //设置长按标志
  10.                 key_flag = 1;                         //设置按键状态,防止重复触发
  11.                 key_Long_Function = 1;
  12.             }
  13.             else if(key_cnt >= 5)                //50ms防抖
  14.             {
  15.                 key_Short_Flag = 1;                //设置短按标志
  16.                        
  17.             }
  18.         }
  19.     }
  20.     else
  21.     {
  22.         if(key_Short_Flag)                        //判断是否短按
  23.         {
  24.               key_Short_Flag = 0;              //清除短按标志
  25. //            key_Short_Function = 1;
  26.                   key_cnt3=0;
  27.                   key_timers++;                        //统计按键次数
  28.                   if(key_timers ==1)
  29.                   {
  30.                   key_Short_Function = 1;       
  31.                   }
  32.                   else if(key_timers ==2)
  33.                   {
  34.                           
  35.                   key_double_function=1;
  36.                   }
  37.         }
  38.         key_cnt = 0;
  39.         key_flag = 0;                                //按键释放
  40.           
  41.           if(key_timers>0)
  42.           {
  43.           key_cnt3++;
  44.                   if(key_cnt3>20)
  45.                   {
  46.                   key_cnt3=0;                        //清楚双击时间计数       
  47.                   key_timers =0;                        //清除按键次数       
  48.                   }
  49.           }
  50.     }
  51. }
复制代码
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:350
  • 最近打卡:2025-05-01 00:32:14
已绑定手机

130

主题

1520

回帖

1855

积分

金牌会员

积分
1855
发表于 2025-1-20 00:15:41 | 显示全部楼层
21cns*** 发表于 2024-4-3 19:09
1楼键盘扫描代码放在1ms定时中断中用很好用,如果有双击的代码就更好了了。 ...

双击我弄出来了.但是不能唤醒省电模式
有点郁闷
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:108
  • 最近打卡:2025-05-01 08:20:47
已绑定手机

1

主题

63

回帖

521

积分

高级会员

积分
521
发表于 2025-1-20 07:24:38 | 显示全部楼层
收藏学习
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:381
  • 最近打卡:2025-05-01 08:27:28
已绑定手机

10

主题

146

回帖

458

积分

中级会员

积分
458
发表于 2025-1-20 07:28:14 | 显示全部楼层
收藏学习
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 19:57 , Processed in 0.153489 second(s), 109 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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