按键松手检测 - 检测是否连续按下
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
按键松手检测 - 检测是否连续按下相关推荐
- 设计一个串行数据检测电路. 当连续出现4个和4个以上的1时, 检测输出信号为1, 其余情况下的输出信号为0(设计1111序列检测电路)
题目: 设计一个串行数据检测电路. 当连续出现4个和4个以上的1时, 检测输出信号为1, 其余情况下的输出信号为0. 分析: 从题目的表述中, 我们获取到信息, 连续出现4个或4个以上的1时, 输出信 ...
- 解决pygame中按键连续按下的问题
如何在飞机大战中实现按键连续按下呢? 解决问题的方法有很多,下面我介绍一下官网给出的方法. 先上代码: #函数原型:pygame.key.set_repeat(delay, interval) pyg ...
- Verilog中按键消抖检测的实现
Verilog按键消抖是FPGA学习时的一个入门教程,为避免眼高手低,还是再次分析与记录一下.此处着重介绍按键消抖的基本原理,对按键消抖与检测的关键技术进行分析,并进行功能仿真. 一.按键消抖基本原理 ...
- 部署可扩展的目标检测管道:推理过程(下)
部署可扩展的目标检测管道:推理过程(下) 融合 感兴趣的目标可以被遮挡.有时只能看到目标的一小部分(少至几个像素). • 图19.车辆和交通信号灯被遮挡. • 图20:阻塞了总线. • 图21:左侧的 ...
- YOLOv4:目标检测(windows和Linux下Darknet 版本)实施
YOLOv4:目标检测(windows和Linux下Darknet 版本)实施 YOLOv4 - Neural Networks for Object Detection (Windows and L ...
- 基于目标检测的无人机航拍场景下小目标检测实践
无人机变得越来越普及,很多场景中由于客观原因的限制大量采用了无人机,无人机预警.无人机抓怕.无人机劝导等等,无人机逐渐成为复杂场景中不可替代的重要觉得,无人机航拍数据与遥感图像数据有几分相似,图像中以 ...
- 活动报名 | 北京交通大学魏云超:连续学习下像素理解的相关算法介绍
活动议程 日期:11月24日(周四) 时间 主题 14:30-14:35 开场简介 穆亚东 北京大学研究员.长聘副教授.博士生导师.北大博雅青年学者,青源会会员 14:35-15:20 连续学习下像 ...
- 飞瞳引擎™AI集装箱识别检测检测云服务箱况检测,正常集装箱信息识别率99.98%以上,实时返回识别结果,集装箱信息识别云服务免费
飞瞳引擎™AI集装箱识别检测检测云服务箱况检测,正常集装箱信息识别率99.98%以上,实时返回识别结果,集装箱信息识别云服务免费.全球港航人工智能独角兽中集飞瞳,成熟港航人工智能AI产品行业第一,人工 ...
- 5.7.24mysql 配置安卓,安卓按键精灵连接MySQL全面解析Windows下安装 mysql5.7的方法
关于在windows下安装mysql 5.7 •要注意的新坑: 5.7版本安装后ROOT账号是有默认的密码的,这个密码在windows下可以在mysql.ini配置文件指定的data文件夹下面,那个为 ...
- 连续时间下的一般资产定价模型
上一篇<资产定价核心等式及其应用>讲了资产定价的核心等式,以及随机贴现因子SDF的一些知识,但是是在离散时间下做的推导,而有时为了研究的方便,需要在连续时间下进行建模,本文对此进行介绍,并 ...
最新文章
- RuntimeError: Integer division of tensors using div or / is no longer supported, and in a future rel
- CV:利用cv2自带两步法haarcascade_frontalcatface.xml实现对猫脸检测
- 设计模式-----单例模式优缺点及使用场景
- 不抛弃,不放弃@《士兵突击》
- lan口配置 petalinux_PetaLinux安装及使用
- 图神经网络(一)图信号处理与图卷积神经网络(2)图信号与图的拉普拉斯矩阵
- 2022央视春晚电视端直播平均收视率达21.93%
- 多校第二场 1004 hdu 5303 Delicious Apples(背包+贪心)
- Confluence 6 Oracle 创建数据库用户
- RF-接口自动化测试-「Body Data格式」
- Cheat Enginee(CE)修改器详细教程
- Firebug 入门指南
- Unable to execute diff program: WinDiff 【SourceOffSite】
- Spark综合学习笔记(五)SparkStreaming介绍
- 空城过客XP系统快捷方式去除箭头方法
- fastboot与fastbootd介绍
- Java各个版本的JDK下载地址你值得拥有
- STM32F103学习之系统时钟配置
- unity3d绘画手册-------地形高度调节
- 博弈论+指鹿为马DP法(CSU 2095: Sweet War题解)
热门文章
- UE4蓝图实现文字个性化显示效果
- 计算机窗口动画效果,win7系统窗口动画慢动作功能开启的修复方案
- oracle row_scn,【Oracle概念】-SCN是什么
- objective-c与Lua的交互(一)
- SVN 服务器禁止修改目录
- div css圆环布局,CSS圆环样式
- 基于确定性最大似然算法 DML 的 DoA 估计,用牛顿法实现(附 MATLAB 源码)
- php特有的调味植物,花椒—从贵族专享到为百姓调味?
- 计算机桌面变小,w7电脑桌面变小了怎么调回去_win7电脑桌面变小如何调整-win7之家...
- java-企业微信推送消息