[发明专利]一种基于堆栈的去除键抖动的软件实现方法有效

专利信息
申请号: 201210359952.3 申请日: 2012-09-24
公开(公告)号: CN103677282A 公开(公告)日: 2014-03-26
发明(设计)人: 贾雨生;谢晓丹 申请(专利权)人: 中国航天科工集团第二研究院二O七所
主分类号: G06F3/02 分类号: G06F3/02
代理公司: 核工业专利中心 11007 代理人: 高尚梅
地址: 100076*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 堆栈 去除 抖动 软件 实现 方法
【说明书】:

技术领域

发明属于光电产品应用技术领域,具体涉及一种基于堆栈的去除键抖动的软件实现方法。

背景技术

通过按键实现人机交互或控制功能是数字电路设计中经常遇到的一种方式。因为按键都是机械开关结构,由于机械触点的弹性及电压突跳等原因,在触点闭合和断开的瞬间会出现电压抖动,导致在按键的初始状态和终止状态之间会产生一个或多个中间状态,如果不加处理,会产生意想不到的后果,尤其是在需要精确控制的地方。去除按键抖动的软件方法有延迟法和抖动法。延迟法需要知道按键抖动的时间长短,扫描时间设置不当会导致等待时间过长或漏掉数据;采样法由于对噪声的不敏感,很容易出现错误。

因此,亟需一种基于堆栈的去除键抖动的实现方法,在获取按键的信号后,通过利用堆栈数据结构的后入先出特性,将键抖动产生的中间状态去除,从而达到精确控制的目的。

发明内容

本发明要解决的技术问题是提供一种基于堆栈的去除键抖动的实现方法,在获取按键的信号后,通过利用堆栈数据结构的后入先出特性,将键抖动产生的中间状态去除,从而达到精确控制的目的。

为了实现这一目的,本发明采取的技术方案是:

一种基于堆栈的去除键抖动的软件实现方法,包括以下步骤:

(1)打开设备与DSP(数字信号处理器)连接的串口,设置设备主板与DSP两端的以下串口参数一致:波特率、数据位数、奇偶校验、停止位数;

分配读取串口数据的缓冲区;

建立堆栈组以同时获取N个按键操作产生的数据,N≥1;

堆栈组的长度为通信协议的条数;

清空堆栈组;

(2)循环监听按键的操作;

(3)按键操作产生的数据,由DSP获取并通过串口发送到设备,存放到设备的临时数据缓冲区中;

同步控制对象,将读取操作放在同步控制对象限制的范围内以防止数据缓冲区发生读取和写入引起的冲突;

依次读取缓冲区中的数据,依照DSP和设备的通信协议,根据标识位将协议规定长度的数据压入到堆栈组的相应索引位置的堆栈中;

控制每条协议的标识位彼此不同,且与协议中的其它信息不同;

(4)设定一个时间阈值,每隔一个时间阈值,扫描一次数据缓冲区;

在一个时间阈值内,当数据缓冲区中持续有数据到来时,按键操作产生的信号仍在发送,进行步骤(3);

在一个时间阈值内,数据缓冲区中没有数据到来,按键操作产生的信号已经全部获取,进行下一步骤;

(5)根据协议中规定的长度读取堆栈组中的每个堆栈栈顶相应数目的元素进行处理;

步骤(5)中,采取如下措施保证数据的正确性:①在读取数据前,通过对比数据长度对堆栈组中的每个堆栈中的数据进行判断,以确定读取到协议的完整性;②在取得按照协议规定长度的数据后,校验数据的头部、尾部是否与协议规定的相同,数据的校验和是否与校验位相同;

分析数据以保证数据的正确性;然后对数据行解析,进行系统规定的操作,同时清空堆栈组;

(6)系统退出程序时,进行下一步骤;

否则,重复进行步骤(2)~步骤(5);

(7)关闭串口,清空堆栈组,释放为接收数据分配的内存资源。

进一步的,如上所述的一种基于堆栈的去除键抖动的实现方法,其中:步骤(3)中,同步控制对象采用以下方式中的一种或多种:临界区、信号量、事件。

进一步的,如上所述的一种基于堆栈的去除键抖动的实现方法,其中:步骤(3)中,各条协议的长度相同。

进一步的,如上所述的一种基于堆栈的去除键抖动的实现方法,其中:步骤(4)中,时间阈值为10~30ms。

进一步的,如上所述的一种基于堆栈的去除键抖动的实现方法,其中:步骤(5)中,采取如下措施保证数据的正确性:①在读取数据前,通过对比数据长度对堆栈组中的每个堆栈中的数据进行判断,以确定读取到协议的完整性;②在取得按照协议规定长度的数据后,校验数据的头部、尾部是否与协议规定的相同,数据的校验和是否与校验位相同。

采用本发明技术方案的一种基于堆栈的去除键抖动的软件实现方法,在切换具有多个状态的开关时,通过串口调试助手可以看到会有多个中间状态。利用该方法,可以正确获取最后一个状态信息,即最终状态。

附图说明

图1是本发明一种基于堆栈的去除键抖动的软件实现方法的流程示意图。

具体实施方式

下面结合附图对本发明技术方案进行进一步详细说明。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航天科工集团第二研究院二O七所,未经中国航天科工集团第二研究院二O七所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210359952.3/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top