首页 > 编程语言 >按键程序连按与不支持连按

按键程序连按与不支持连按

时间:2024-12-31 11:10:23浏览次数:1  
标签:标志 程序 up 支持 按下 key 按键 PRES

关于按键程序连按与不支持连按的解析。

#u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;//按键按松开标志
if(mode)key_up=1; //支持连按 如果mode=1则使得标志位为1,否则不复位 。
if(key_up&&(KEY00||KEY10||KEY20||WK_UP1))//如果有按键按下
{
delay_ms(10);//去抖动 等待10ms消抖
key_up=0; //标志位清零
if(KEY00)return KEY0_PRES; //如果是key0按下则,返回值为KEY0_PRES 1
else if(KEY10)return KEY1_PRES;//如果是key1按下则,返回值为KEY1_PRES 2
else if(KEY20)return KEY2_PRES;//如果是key2按下则,返回值为KEY2_PRES 3
else if(WK_UP1)return WKUP_PRES;//如果是KW_UP按下则,返回值为KWUP_PRES 4
}else if(KEY01&&KEY11&&KEY21&&WK_UP0)key_up=1; //如果没有按键按下,则按键标志位置1;
return 0;// 无按键按下
}

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。

支持连按的设置从四处代码来实现。
1.static u8 key_up=1;//按键按松开标志
2if(mode)key_up=1; //支持连按 如果mode=1则使得标志位为1
3.key_up=0; //标志位清零
4.else if(KEY01&&KEY11&&KEY21&&WK_UP0)key_up=1; //如果没有按键按下,则按键标志位置1;

原理是程序运行时只有在标志位为1时才会检测按键

第一句代码给 按键标志初始化。标志位第一次运行时一定是1。同时与硬件对应的是,程序开始运行时没有按键按下。

第二句代码,选择支持连按 1 ,不支持为零。

第三句每次程序检测到有按键按下时,在读取前会将标志位清零。所以在每次读取完按键后标志位为零表示有按键按下了。

第四局如果检测没有按键按下,则标志位为1。

按着不放时:
在程序检测到有值按下的时候 kw_up=0 ,在读完按键值后直接跳出按键函数,不回执行第四句。 第一句是一个静态定义只在第一次分配内存时运行定义一次,所以也不会执行。此时我们选择的时模式 0的话,标志位直到下一次检测时还保持为 0.所以就不回检测键值。直接跳到 第四句。 第四句只检测没有按下的情况才会重置标志位。所以直接跳过。 结果就是连按时也只会检测一次键值。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_43745493/article/details/108869827

标签:标志,程序,up,支持,按下,key,按键,PRES
From: https://www.cnblogs.com/54programer/p/18643535

相关文章

  • 人生苦短,转行程序员要趁早啊
    ......
  • 花店卖花小程序如何创建?花店老板一定要会用小程序!
    在如今的互联网时代,很多传统行业都开始借助小程序来提高效率,吸引更多客户,花店行业也不例外。创建一个属于自己花店的小程序不仅能够提升客户体验,还能大大提升销量。本文将详细讲解花店如何通过小程序来提升运营效率,从创建步骤到实际应用,让花店老板也能轻松应对这项技术挑战......
  • 网球馆预约小程序怎么搭建?提前预约节省打网球的时间
    在现代生活节奏加快的今天,网球爱好者们往往希望能高效利用时间,避免因排队或者场地空缺浪费宝贵的运动机会。而搭建一个网球馆预约小程序,不仅能帮助商家更好地管理场地资源,还能为用户提供便捷的预约体验。这篇文章将分享如何搭建一个网球馆预约小程序,并探讨这一工具如何帮你......
  • .NET 9 new features-分布式追踪支持、HTTP/3 改进以及更好的容器镜像支持
    .NET9针对云原生开发进行了显著优化,重点改进了分布式追踪、HTTP/3支持和容器镜像优化等方面。这些特性极大地提升了.NET在现代云原生应用中的适配性与开发效率。1.设计原理1.1分布式追踪支持背景:在云原生架构中,应用程序通常由多个微服务组成。分布式追踪能够帮助开发者......
  • 一名程序员决定学点会计基础知识
    1.概述企业是一种以营利(即获取经济利润)为目的的经济组织。在会计看来,企业一辈子其实只做了三件事:经营、投资和筹资。在正常情况下,企业的经济活动是一个川流不息的过程。这一过程也是运用、分配及耗用企业经济资源的过程。由于资金是企业经济资源的货币表现形式或价值表现形式,......
  • 2025年flask成都美食交流平台 程序+论文 可用于计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着互联网的飞速发展,美食文化作为地方文化的重要组成部分,越来越受到人们的关注。成都,作为中国西南地区的美食之都,其丰富多样的美食文化不......
  • 2025年flask成都某4S店销售管理系统程序+论文 可用于计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着汽车市场的日益繁荣,4S店作为汽车销售与服务的重要载体,其管理效率和服务质量直接影响到企业的竞争力和客户满意度。关于销售管理系统的......
  • 2025年flask车票订购系统 程序+论文 可用于计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着信息技术的飞速发展,车票订购系统已成为现代交通运输领域不可或缺的一部分。目前,国内外对于车票订购系统的研究主要集中在系统架构设计......
  • 【教程4>第4章>第23节】costas环硬件测试1——管脚约束,芯片设置,ila设置,程序改写
    欢迎订阅FPGA/MATLAB/Simulink系列教程《★教程1:matlab入门100例》《★教程2:fpga入门100例》《★教程3:simulink入门60例》《★教程4:FPGA/MATLAB/Simulink联合开发入门与进阶X例》目录1.软件版本2.硬件测试准备工作总结2.1开发板使用2.2定义信号发射源程序2.3......
  • 解锁 Java 解释器模式:赋予程序理解 “新语言” 的魔力
    解锁Java解释器模式:赋予程序理解“新语言”的魔力在Java编程的广袤天地中,我们时常面临需要处理自定义规则、语法或逻辑表达式的场景。此时,解释器模式(InterpreterPattern)宛如一位神奇的翻译官,能够将这些看似晦涩难懂的“新语言”,转化为计算机能够理解并执行的指令,为......