2022年面向对象的C语言之按键 .pdf
《2022年面向对象的C语言之按键 .pdf》由会员分享,可在线阅读,更多相关《2022年面向对象的C语言之按键 .pdf(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、标签: 按键OOPC面向对象的 C语言( OOPC )之按键概述在嵌入式系控制系统中,通常使用按键(Key )来实现人机交互,完成一些控制功能。一般地,按键在按下(KeyDown)和抬起( KeyUp )的过程中会存在10 20ms的抖动毛刺,为了获取稳定的按键信息,必须通过一定的方法来避开这段不稳定的抖动期。本文介绍了一种软件去抖动的方法,并采用面向对象的程序设计,将按键进行封装起来,对外提供统一的接口,生成单独的按键驱动文件,便于程序的移植(程序在STM32F103(ST)和 M16C/62P (RENESAS)系统上调试通过)。1按键软件去抖方法1.1按键在按下( KeyDown)和抬起
2、( KeyUp )的过程中会存在10 20ms的抖动毛刺,软件采用“2 回一致”原则,主循环中每25ms对按键输入口进行采样,如果连续 2 次采样一致,则确认按键的输入信息。1.2Key 输入确认后, 可以在确认值的“上升沿” (上图中水绿色的1 处)触发 KeyUp抬起事件,在“下降沿”(上图中粉色的0 处)触发KeyDown事件。同样,也可以通过计数器来触发长按键KeyPress事件。2OOPC (面向对象的C 语言)对于嵌入式系统的开发,OOPC是一个非常不错的选择,既有 C 语言的小巧、 高效性,又有 C+的封装、 继承。 笔者学习了高焕堂先生编写的 UML+ OOPC嵌入式 C 语言
3、开发精讲,获益匪浅。本按键驱动文件就是使用了书中OOPC的思想完成。我的理解还不够深刻,在这里只是抛砖引玉,大家互相交流。在 MCU 硬件资源越发强悍的今天,感觉嵌入式系统的开发者也过上了“有钱人” 的生活,不需要再节衣缩食,过多的考虑ROM/RAM的占用以及代码的运行速度,而可以更加注重软件的可重用性、可维护性等。按键程序分3 个文件:KeyDrv.h 、 KeyDrv.c、 KeyApp.c。 其中 KeyDrv.h 、 KeyDrv.c属于驱动文件,KeyApp属于应用文件。对于用户而言,只需要在KeyApp文件中的KeyUp/Down/Press事件中编写自己的应用程序即可,代码非常清
4、爽。3Key的功能(1) 实现按键的三种事件( 抬起 KeyUp 、按下 KeyDown、长按 KeyPress)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - (2) KeyPress事件的变速度触发(例如: 开始 2s 触发 1 次,再 1s 触发 1 次,最后 40ms触发 1 次。时间可设)(3) 可选择按键长按再弹起时是否触发KeyUp事件 (默认不触发 )(4) 可选择按键长按是否多次触发KeyPress事件 ( 默
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年面向对象的C语言之按键 2022 面向 对象 语言 按键
限制150内