当前位置: 首页 > news >正文

全功能按键非阻塞式实现

按键非阻塞式实现方案

标志位的定义

置标志位的时刻

状态图转移

按键接法

移植流程

Key.h
确定KEY_COUNT按键个数
定义每个按键的名称和索引号
Key.c
实现Key_Init按键引脚初始化的代码
实现Key_GetState读取按键引脚状态的代码
main.c
自行实现一个1ms定时中断,并在中断里调用Key_Tick函数
调用Key_Check函数,若指定按键的指定事件发生,则返回1,否则返回0

注意事项:

在一轮主循环中,只能检查一次指定按键的指定事件(KEY_HOLD除外),若确实需要检查多次,则可先调用一次Key_Check函数并用变量存储返回值,后续多次判断此变量即可
双击事件的存在,使得单击事件响应有一些延迟,若程序中没有使用到双击,则可将双击时间阈值改为0,这样可以消除单击事件的延迟
按键产生了事件,对应的标志位就会一直置1,直到检查了此事件,才会自动清0,这在模式切换时可能会导致误动作(例如:模式1中没有检查过某个标志位,但是按下过按键,此标志位已经置1,随后切换为模式2,开始检查此标志位,那么一旦进入模式2,此标志位的动作就会立刻响应),解决办法是在切换模式时,统一将所有的Key_Flag0,避免上一个模式的按键标志位对这个模式产生影响

http://www.dtcms.com/a/457513.html

相关文章:

  • 学做网站的视频南京谷歌推广
  • iptables
  • STM32+8266+小程序智能家居【小白实战项目】
  • 如何部署一个Java项目
  • 联想乐享赋能笔记本选购新体验:智能解析五大系列,精准匹配用户需求
  • 西安网站设计报价怎样创建网站和网页
  • Go中使用反射的动态方法调用
  • 泰安市住房和城乡建设部网站哪个网站diy做宝宝衣服
  • springboot+vue心理咨询服务小程序(源码+文档+调试+基础修改+答疑)
  • 优秀电商网站设计上海网站建设管理系统
  • 速通JavaWeb1
  • 【开题答辩全过程】以 vue基于SSM框架的高考志愿填报辅助系统设计与实现为例,包含答辩的问题和答案
  • linux网站建设论文logo免费设计图案
  • 怎么把网站源码扒下来wordpress缓存方案
  • 整体设计 逻辑系统程序 之17 Source 容器(Docker)承载 C/P/D 三式的完整设计与双闭环验证 之1
  • 汕头网站设计哪家好网页设计图片与文字对齐左对齐
  • GIS PAD平板手机移动端地理信息系统
  • kafka解决了什么问题?mmap 和sendfile
  • 做网站一定要买免费ppt制作
  • c++ 是静态编译语言
  • 寻找哈尔滨网站建设淘宝客网站的建设
  • 打造机器人行业的「安卓」,Meta的野心能否照进现实?
  • GW级智算中心:开启中国AI算力新纪元
  • 怎样做网站镜像做网站的步骤
  • 神经网络:从失宠到复兴的崛起之路
  • 【Python刷力扣hot100】128. Longest Consecutive Sequence
  • 做网站需要的东西台州网络优化
  • 「机器学习笔记6」从二项分布到置信区间:机器学习中假设效果量化的底层逻辑
  • NumPy 广播(Broadcast)
  • 电子商务网站开发是什么合肥瑶海区最新房价