u8 KEY_Scan(void)
{   static u8 keyup=1;      //防止检测多次if(keyup&&(KEY0==0||KEY1==0||KEY3==0)){delay_ms(50);//去抖if(KEY0==0||KEY1==0||KEY3==0){ keyup=0;           if (KEY0==0)return KEY0_PRES;else if(KEY1==0)return KEY1_PRES;else if(KEY3==0)return WKUP_PRES;} }else  if(KEY0==1&&KEY1==1&&KEY3==1)  //若按键全部松开keyup=1; return 0;
}

今天写按键的一个小程序,发现没有松手检测,如果一直按着按键不松开,会一直触发,执行程序。然后发现例程的检测程序,感觉不错。

设置一个静态变量,当此变量为一,并且有按键按下时,进入按键判断函数。进入后把变量设置为0。若一直按着按键,一直执行不到最后若按键全部松开,keyup=1,所以,不会执行多次。

还可以设置一个参数,确定是否需要检测多次:

<pre name="code" class="objc">u8 KEY_Scan(u8 mode)
{    static u8 key_up=1;//按键按松开标志if(mode)key_up=1;  //支持连按          if(key_up&&(KEY0==0||KEY1==0||KEY3==0)){delay_ms(10);//去抖动 key_up=0;if(KEY0==0)return KEY0_PRES;else if(KEY1==0)return KEY1_PRES;else if(KEY3==0)return WKUP_PRES; }else if(KEY0==1&&KEY1==1&&KEY3==1)key_up=1;        return 0;// 无按键按下
}

若mode置一,说明支持连按,则keyup一直为一,会重复检测

2016/1/16






按键松手检测 - 检测是否连续按下相关推荐

  1. 设计一个串行数据检测电路. 当连续出现4个和4个以上的1时, 检测输出信号为1, 其余情况下的输出信号为0(设计1111序列检测电路)

    题目: 设计一个串行数据检测电路. 当连续出现4个和4个以上的1时, 检测输出信号为1, 其余情况下的输出信号为0. 分析: 从题目的表述中, 我们获取到信息, 连续出现4个或4个以上的1时, 输出信 ...

  2. 解决pygame中按键连续按下的问题

    如何在飞机大战中实现按键连续按下呢? 解决问题的方法有很多,下面我介绍一下官网给出的方法. 先上代码: #函数原型:pygame.key.set_repeat(delay, interval) pyg ...

  3. Verilog中按键消抖检测的实现

    Verilog按键消抖是FPGA学习时的一个入门教程,为避免眼高手低,还是再次分析与记录一下.此处着重介绍按键消抖的基本原理,对按键消抖与检测的关键技术进行分析,并进行功能仿真. 一.按键消抖基本原理 ...

  4. 部署可扩展的目标检测管道:推理过程(下)

    部署可扩展的目标检测管道:推理过程(下) 融合 感兴趣的目标可以被遮挡.有时只能看到目标的一小部分(少至几个像素). • 图19.车辆和交通信号灯被遮挡. • 图20:阻塞了总线. • 图21:左侧的 ...

  5. YOLOv4:目标检测(windows和Linux下Darknet 版本)实施

    YOLOv4:目标检测(windows和Linux下Darknet 版本)实施 YOLOv4 - Neural Networks for Object Detection (Windows and L ...

  6. 基于目标检测的无人机航拍场景下小目标检测实践

    无人机变得越来越普及,很多场景中由于客观原因的限制大量采用了无人机,无人机预警.无人机抓怕.无人机劝导等等,无人机逐渐成为复杂场景中不可替代的重要觉得,无人机航拍数据与遥感图像数据有几分相似,图像中以 ...

  7. 活动报名 | 北京交通大学魏云超:连续学习下像素理解的相关算法介绍

    活动议程 日期:11月24日(周四) 时间 主题 14:30-14:35 开场简介 穆亚东  北京大学研究员.长聘副教授.博士生导师.北大博雅青年学者,青源会会员 14:35-15:20 连续学习下像 ...

  8. 飞瞳引擎™AI集装箱识别检测检测云服务箱况检测,正常集装箱信息识别率99.98%以上,实时返回识别结果,集装箱信息识别云服务免费

    飞瞳引擎™AI集装箱识别检测检测云服务箱况检测,正常集装箱信息识别率99.98%以上,实时返回识别结果,集装箱信息识别云服务免费.全球港航人工智能独角兽中集飞瞳,成熟港航人工智能AI产品行业第一,人工 ...

  9. 5.7.24mysql 配置安卓,安卓按键精灵连接MySQL全面解析Windows下安装 mysql5.7的方法

    关于在windows下安装mysql 5.7 •要注意的新坑: 5.7版本安装后ROOT账号是有默认的密码的,这个密码在windows下可以在mysql.ini配置文件指定的data文件夹下面,那个为 ...

  10. 连续时间下的一般资产定价模型

    上一篇<资产定价核心等式及其应用>讲了资产定价的核心等式,以及随机贴现因子SDF的一些知识,但是是在离散时间下做的推导,而有时为了研究的方便,需要在连续时间下进行建模,本文对此进行介绍,并 ...

最新文章

  1. RuntimeError: Integer division of tensors using div or / is no longer supported, and in a future rel
  2. CV:利用cv2自带两步法haarcascade_frontalcatface.xml实现对猫脸检测
  3. 设计模式-----单例模式优缺点及使用场景
  4. 不抛弃,不放弃@《士兵突击》
  5. lan口配置 petalinux_PetaLinux安装及使用
  6. 图神经网络(一)图信号处理与图卷积神经网络(2)图信号与图的拉普拉斯矩阵
  7. 2022央视春晚电视端直播平均收视率达21.93%
  8. 多校第二场 1004 hdu 5303 Delicious Apples(背包+贪心)
  9. Confluence 6 Oracle 创建数据库用户
  10. RF-接口自动化测试-「Body Data格式」
  11. Cheat Enginee(CE)修改器详细教程
  12. Firebug 入门指南
  13. Unable to execute diff program: WinDiff 【SourceOffSite】
  14. Spark综合学习笔记(五)SparkStreaming介绍
  15. 空城过客XP系统快捷方式去除箭头方法
  16. fastboot与fastbootd介绍
  17. Java各个版本的JDK下载地址你值得拥有
  18. STM32F103学习之系统时钟配置
  19. unity3d绘画手册-------地形高度调节
  20. 博弈论+指鹿为马DP法(CSU 2095: Sweet War题解)

热门文章

  1. UE4蓝图实现文字个性化显示效果
  2. 计算机窗口动画效果,win7系统窗口动画慢动作功能开启的修复方案
  3. oracle row_scn,【Oracle概念】-SCN是什么
  4. objective-c与Lua的交互(一)
  5. SVN 服务器禁止修改目录
  6. div css圆环布局,CSS圆环样式
  7. 基于确定性最大似然算法 DML 的 DoA 估计,用牛顿法实现(附 MATLAB 源码)
  8. php特有的调味植物,花椒—从贵族专享到为百姓调味?
  9. 计算机桌面变小,w7电脑桌面变小了怎么调回去_win7电脑桌面变小如何调整-win7之家...
  10. java-企业微信推送消息