CN108270447B - 键盘消抖方法、扫描控制器、主控制器及测量仪器 - Google Patents
键盘消抖方法、扫描控制器、主控制器及测量仪器 Download PDFInfo
- Publication number
- CN108270447B CN108270447B CN201611254709.XA CN201611254709A CN108270447B CN 108270447 B CN108270447 B CN 108270447B CN 201611254709 A CN201611254709 A CN 201611254709A CN 108270447 B CN108270447 B CN 108270447B
- Authority
- CN
- China
- Prior art keywords
- key
- time
- timer
- time interval
- time information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000008859 change Effects 0.000 claims description 15
- 230000001960 triggered effect Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 2
- 238000012856 packing Methods 0.000 claims 4
- 238000004806 packaging method and process Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 8
- 230000008030 elimination Effects 0.000 abstract description 7
- 238000003379 elimination reaction Methods 0.000 abstract description 7
- 230000004044 response Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M11/00—Coding in connection with keyboards or like devices, i.e. coding of the position of operated keys
- H03M11/20—Dynamic coding, i.e. by key scanning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本申请提供了键盘消抖方法、扫描控制器、主控制器及测量仪器,其中,方法包括:扫描控制器确定按键的按键状态是否发生改变;若按键状态发生了改变,则读取计时器所计的时间信息,读取时间信息之后,清零所述计时器以使所述计时器重新开始计时,将所述时间信息及所有按键的按键状态发送给主控制器。主控制器接收所有按键的按键状态及时间信息;提取上一次接收的所有按键的按键状态;根据本次接收的所有按键的按键状态与上一次接收的所有按键的按键状态、本次接收的时间信息与时间阈值判断是否响应本次接收的按键的按键状态。本申请适用于按键抖动时间不确定、按键抖动不确定、主控制器比较忙的情况,能够加速键盘的响应速度,提高消抖效果。
Description
技术领域
本申请属于键盘按键信号处理领域,尤其涉及一种键盘消抖方法、键盘消抖的扫描控制器及主控制器、测量仪器。
背景技术
键盘是人机交互设备中的一个组成部分,用于接受用户的输入,实现控制人机交互设备的目的。人机交互设备中的键盘扫描程序会定期扫描按键的状态,通过按键状态的改变来表示按键的按下或松开的状态。按键的机械特性决定在按键按下或松开过程中,会存在一个不稳定的状态,一般将这个状态称为“抖动”,如图1所示。键盘扫描程序需要处理这种抖动,通常有以下方法来应对这种抖动:
延时采样:在初次检测到按键状态改变后,再等到一段时间进行重新检测,如果还和以前的状态不一致,则判定为按键状态发生了改变,如图2所示;
过采样:对按键进行多次采样,取其中最稳定的状态(例如出现最多的),作为按键状态,如图3所示。
键盘扫描是键盘处理过程中的必要步骤,有以下的处理方式:
主动扫描:主控制器和键盘直接连接,周期的扫描键盘;
专用扫描控制器扫描:键盘连接到专用扫描控制器上,扫描控制器再连接到主控制器上,扫描控制器周期地扫描键盘,确定键盘状态改变后将扫描结果发送给主控制器。
采用扫描控制器的方式虽然简化了主控制器的程序设计,节省了主控制器的输入、输出接口。但也存在如下缺陷:扫描控制器的引入相当于在键盘和主控制器增加了一个缓冲,这个缓冲的引入使得主控制器不能准确知道按键状态改变所发生的时刻,进而使主控制器消抖处理不准确,产生误操作;另,在常用的键盘“消抖”方案中,“消抖”针对的都是状态改变附近一段相对短的时间进行的,对于抖动的时间变长,或者动态不确定,或者主控器比较忙的情况,会使主控制器消抖的效果变差。
发明内容
本申请提供一种键盘消抖方法、扫描控制器、主控制器及测量仪器,用于解决现有技术中扫描控制器的引入,使得主控制器不能准确知道按键所发生的时刻,进而引起主控制器消抖处理不准确,引起误操作的问题;对于抖动的时间变长,或者动态不确定,或者主控器比较忙的情况,会使主控制器消抖的效果变差。
本申请的一技术方案为提供一种键盘消抖方法(从扫描控制器侧描述),包括:
确定按键的按键状态是否发生改变;
若按键状态发生了改变,则读取计时器记录的时间信息,读取时间信息之后,清零所述计时器以使所述计时器重新开始计时,将所述时间信息及所有按键的按键状态发送给主控制器。
本申请的另一技术方案为一种键盘消抖方法(从主控制器侧描述),包括:
接收扫描控制器发送的所有按键的按键状态及时间信息;
提取上一次接收的所有按键的按键状态;
对于每一按键,当本次接收的该按键的按键状态与上一次接收的该按键的按键状态相同时,将本次接收到的时间间隔与时间阈值进行比较,并根据比较结果处理本次接收的该按键的按键状态。
本申请再一技术方案为提供一种键盘消抖的扫描控制器,包括:计时器、按键扫描模块、主控模块及通讯模块;
所述按键扫描模块用于确定按键的按键状态是否发生改变;
若所述按键扫描模块确定按键状态发生了改变,则由所述主控模块读取所述计时器记录的时间信息,读取时间信息之后,清零所述计时器以使所述计时器重新开始计时,将所述时间信息、所有按键的按键状态通过所述通讯模块发送给主控制器。
本申请又一技术方案为提供一种键盘消抖的主控制器,包括:
通讯模块,用于接收扫描控制器发送的所有按键的按键状态及时间信息;
提取模块,用于提取上一次接收的所有按键的按键状态;
处理模块,用于对于每一按键,当本次接收的该按键的按键状态与上一次接收的该按键的按键状态相同时,将本次接收的时间间隔与时间阈值进行比较,并根据比较结果处理本次接收的该按键的按键状态。
本申请还提供一种测量仪器,包括:键盘;上述技术方案中的键盘消抖的扫描控制器;以及上述技术方案中的键盘消抖的主控制器。
本申请最后还提供一种测量仪器,包括键盘、计时器、扫描控制器及主控制器;
所述键盘包括多个按键;
所述计时器用于记录相邻两次按键触发的时间间隔;
所述扫描控制器用于检测键盘上的按键是否被触发,当有按键被触发时,从所述计时器获取时间间隔,将时间间隔及被触发的按键标识发送至所述主控制器;
所述主控制器用于当本次接收到的按键标识与上一次接收到的按键标识相同时,将本次接收到的时间间隔与时间阈值进行比较,并根据所述比较结果控制所述测量仪器。
本申请在扫描控制器发送给主控制器的信息中添加了时间信息以使主控制器能够准确的确定按键状态改变所发生的时刻,进一步实现准确的消抖。详细的说,该时间信息于每确定按键的按键状态发生改变时从计时器中读取,读取时间信息之后,清零计时器以使计时器重新开始计时。本申请适用于按键抖动时间不确定、按键抖动不确定、主控制器比较忙的情况,能够加速键盘的响应速度,提高消抖效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中按键抖动的波形图;
图2为现有技术中延迟采样原理示意图;
图3为现有技术中过采样原理示意图;
图4为本申请实施例的从扫描控制器侧描述的键盘消抖方法的流程图;
图5为本申请实施例的确定按键的按键状态是否发生改变的流程图;
图6为本申请实施例的从主控制器侧描述的键盘消抖方法的流程图;
图7为本申请实施例的键盘消抖的扫描控制器的结构图;
图8为本申请实施例的键盘消抖的主控制器的结构图;
图9为本申请实施例的测量仪器的结构图。
具体实施方式
为了使本申请的技术特点及效果更加明显,下面结合附图对本申请的技术方案做进一步说明,本申请也可有其他不同的具体实例来加以说明或实施,任何本领域技术人员在权利要求范围内做的等同变换均属于本申请的保护范畴。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
如图4所示,图4为本申请实施例的键盘消抖方法的流程图。本实施例中,通过计时器能够确定两次按键状态改变的时间间隔,将计时器所计的时间信息发生给主控制,以使主控制器准确的确定按键状态改变所发生的时间信息。具体的,包括:
步骤401:确定按键的按键状态是否发生改变。若按键状态发生了改变,则进行步骤402。
按键包括但不限于旋钮、推动按键及按压按键。
按键状态包括触发(选中)及未触发(未选中)。实施时,可用1表示未触发,用0表示触发,若某一按键的按键状态由1变为了0,则表示该按键被按下、被旋转或被扳上,若该按键的按键状态由0变为了1,则表示该按键被松开、被旋回或被扳上。本申请对按键状态具体表现形式不做限定,可根据实际需求进行设定。
一些具体实施例中,如图5所述,步骤401确定按键的按键状态是否发生改变的过程进一步包括:
步骤501:依次扫描键盘中的每个按键得到所有按键的按键状态(扫描结果)。
例如,键盘共包括4个按键,分别为按键1、按键2、按键3及按键4,假设按键2被点中,通过步骤501确定的所有按键的按键状态为{1,0,1,1},其中,0表示按键被选中,1表示按键未选中。
实施时,步骤501可采用过采样的方式得到所有按键的按键状态。步骤501之后还包括将扫描得到的按键状态存储于存储器中。
步骤502:判断本次扫描得到的所有按键的按键状态与上一次扫描得到的所有按键的按键状态是否相同。若判断结果为相同,则继续扫描键盘中每个按键,即继续步骤501。若判断结果为不同,则确定按键的按键状态发生了改变,继续步骤402。
继续步骤501的例子,假设上一次扫描得到的所有按键的按键状态为{0,1,1,1},与本次扫描得到的所有按键的按键状态{1,0,1,1}不同,则通过步骤502可以确定按键的按键状态发生了改变。
步骤402:读取计时器记录的时间信息,读取时间信息之后,清零(复位)计时器以使计时器重新开始计时,将时间信息及所有按键的按键状态发送给主控制器。
详细的说,时间信息为本次按键状态发生改变时间与上一次按键状态发生改变时间之间的相对时间间隔,即两次确定按键状态改变的时间间隔。所有按键的按键状态为本次扫描得到的所有按键的按键状态。
时间信息及所有按键的按键状态经过打包后发送给主控制器。一具体实施例中,打包数据的格式为:帧头、所有按键的按键状态、时间信息、校验码及帧尾。该打包数据中各组成部分之间的顺序不是固定的,实现时,可根据实际进行调整。
本申请于具体实施时,发送给主控制器的信息的宽度是有限的,时间信息会占用一定数据位数,占用一定的数据宽度,因此,对于时间信息需要考虑如下问题:
问题1:时间信息不能太长,若时间信息太长,则表示该时间信息所占用的数据位数就会增大,增加传输的时间。
问题2:时间信息也不能太短,若时间信息太短,则表示的时间不够,或时间分辨率不够。时间不够即不能区分两次按键点击的时间,例如,在第1秒和第7秒分别点击了一次按键,如果时间信息最多纪录6秒,则第7秒的将会是1秒。分辨率不够指的是,时间间隔太长不足以分辨两次按键点击,例如,时间分辨率是2秒,则在第0秒和第1秒的点击按键均会记为0秒。
为了解决上述问题1及问题2,本申请的进一步实施例中,计时器进行计时时还包括判断所述时间信息是否达到预定时间间隔。
若所述时间信息未达到预定时间间隔,则计时器继续计时;若所述时间信息达到预定时间间隔,则控制计时器停止计时,保持所述时间信息不变。
本申请所述的预定时间间隔依赖于:1)抖动最小时间;2)计时器位数或发送给主控制器的时间信息长度;3)系统中的时钟频率。优选的,预定时间间隔大于按键抖动的时间。
本实施例能够解决时间不足和分辨率不足的问题。计时器记录的时间一旦达到预定时间间隔后将不再累计,而是保持预定时间间隔不变,直到下一次按键状态发生改变(即按键点击发生),计时器记录的时间被读取后进行归零,使计时器重新开始计时。
如图6所示,图6为本申请实施例从主控制器侧描述的键盘消抖方法。主控制器通过扫描控制器发送的时间信息能够确定按键触发所发生的时刻,进而提高主控制器的消抖效果。具体的,包括:
步骤601:接收扫描控制器发送的时间信息及所有按键的按键状态。
按键状态包括触发及未触发。时间信息为扫描控制器中计时器记录的一次按键状态发生改变时间与上一次按键状态发生改变时间之间的相对时间间隔,即两次确定按键状态改变的时间间隔。
步骤602:提取上一次接收的所有按键的按键状态。实施时,可从主控制器的存储器中提取上一次接收的所有按键的按键状态,该存储器中记录有接收到的时间信息及所有按键的按键状态。
步骤603:对于每一按键,分别判断本次接收的该按键的按键状态与上一次接收的该按键的按键状态是否相同。
当本次接收的该按键的按键状态与上一次接收的该按键的按键状态不同时,则响应本次接收的该按键的按键状态。
当本次接收的该按键的按键状态与上一次接收的该按键的按键状态相同时,将本次接收到的时间间隔与时间阈值进行比较,并根据比较结果处理本次接收的该按键的按键状态。
一些实施方式中,根据比较结果处理本次接收的该按键的按键状态包括:若所述时间间隔小于所述时间阈值,则丢弃本次接收的该按键的按键状态;若所述时间间隔大于或等于所述时间阈值,则响应本次接收的该按键的按键状态。
一些实施方式中,根据比较结果处理本次接收的该按键的按键状态包括:若所述时间间隔小于或等于所述时间阈值,则丢弃本次接收的该按键的按键状态;若所述时间间隔大于所述时间阈值,则响应本次接收的该按键的按键状态。
实施时,若主控制器比较忙,来不及处理按键的状态,则本次接收的时间信息及按键的按键状态可以为主控制器正在处理的信息,上一次接收的时间信息及按键的按键状态可以为主控制器上一次处理的信息。
时间阈值可根据键盘电路的实际情况进行确定,还可开放该时间阈值,由用户进行配置,本申请对时间阈值不做具体限定。
本申请所述的键盘消抖方法中,在扫描控制器发送给主控制器的信息中添加了时间信息以使主控制器能够准确的确定按键状态改变所发生的时刻,进一步实现准确的消抖。详细的说,该时间信息于每确定按键的按键状态发生改变时从计时器中读取,读取时间信息之后,清零计时器以使计时器重新开始计时。本申请适用于按键抖动时间不确定、按键抖动不确定、主控制器比较忙的情况,能够加速键盘的响应速度,提高消抖效果。
基于同一发明构思,本申请实施例中还提供了一种扫描控制器及主控制器,如下面的实施例所述。由于该扫描控制器及主控制器解决问题的原理与上述方法相似,因此该扫描控制器及主控制器的实施可以参见方法的实施,重复之处不再赘述。
如图7所示,图7为本申请实施例的键盘消抖的扫描控制器的结构图。具体的,扫描控制器包括计时器701、按键扫描模块702、主控模块703及通讯模块704。
所述按键扫描模块702用于确定按键的按键状态是否发生改变。
若所述按键扫描模块702确定按键状态发生了改变,则由所述主控模块703读取所述计时器701记录的时间信息,读取时间信息之后,清零所述计时器701以使所述计时器701重新开始计时,将所述时间信息、所有按键的按键状态通过所述通讯模块704发送给主控制器。
一些实施例中,还包括时间处理模块,用于计时器计时判断所述时间信息是否达到预定时间间隔。
若所述时间信息未达到预定时间间隔,则计时器继续计时;若所述时间信息达到预定时间间隔,则控制计时器停止计时,保持所述时间信息(即保持预定时间间隔)不变。
优选的,所述预定时间间隔大于按键抖动的时间。
一些实施例中,所述按键扫描模块702确定按键的按键状态是否发生改变的过程包括:
依次扫描键盘中的每个按键得到所有按键的按键状态。
判断本次扫描得到的所有按键的按键状态与上一次扫描得到的所有按键的按键状态是否相同;若判断结果为相同,则继续扫描键盘中每个按键;若判断结果为不同,则确定按键的按键状态发生了改变。
如图8所示,图8为本申请实施例的键盘消抖的主控制器的结构图。具体的,包括:
通讯模块801,用于接收扫描控制器发送的所有按键的按键状态及时间信息。
提取模块802,用于提取上一次接收的所有按键的按键状态。
处理模块803,用于对于每一按键,分别判断本次接收的该按键的按键状态与上一次接收的该按键的按键状态是否相同。
当本次接收的该按键的按键状态与上一次接收的该按键的按键状态不同时,则响应本次接收的该按键的按键状态。
当本次接收的该按键的按键状态与上一次接收的该按键的按键状态相同时,将本次接收到的时间间隔与时间阈值进行比较,并根据比较结果处理本次接收的该按键的按键状态。
一些实施方式中,处理模块803根据比较结果处理本次接收的该按键的按键状态包括:若所述时间间隔小于所述时间阈值,则丢弃本次接收的该按键的按键状态;若所述时间间隔大于或等于所述时间阈值,则响应本次接收的该按键的按键状态。
一些实施方式中,处理模块803根据比较结果处理本次接收的该按键的按键状态包括:若所述时间间隔小于或等于所述时间阈值,则丢弃本次接收的该按键的按键状态;若所述时间间隔大于所述时间阈值,则响应本次接收的该按键的按键状态。
如图9所示,图9为本申请实施例的测量仪器的结构图。具体的,包括:键盘901,上述任一实施例所述的键盘消抖的扫描控制器902,以及上述实施例所述的键盘消抖的主控制器903。其中,扫描控制器902连接于键盘901与主控制器903之间。
本实施例所述的测量仪器如为示波器、机床、台式计算机、机顶盒、遥控器等带有物理键盘的设备,本申请对测量仪器具体为何不做限定。
本申请在扫描控制器发送给主控制器的信息中添加了时间信息以使主控制器能够准确的确定按键状态改变所发生的时刻,进一步实现准确的消抖。详细的说,该时间信息于每确定按键的按键状态发生改变时从计时器中读取,读取时间信息之后,清零计时器以使计时器重新开始计时。本申请适用于按键抖动时间不确定、按键抖动不确定、主控制器比较忙的情况,能够加速键盘的响应速度,提高消抖效果。
一实施例中,还提供一种测量仪器,包括键盘、计时器、扫描控制器及主控制器。
所述键盘包括多个按键。所述按键包括但不限于为旋钮,和/或推动按键,和/或按压按键。
所述计时器用于记录相邻两次按键触发的时间间隔。
所述扫描控制器用于检测键盘上的按键是否被触发,当有按键被触发时,从所述计时器获取时间间隔,将时间间隔及被触发的按键标识发送至所述主控制器。按键标识如为按键的键值、按键的地址或按键的ID,本申请对按键标识具体为何不作限定。
所述主控制器用于当本次接收到的按键标识与上一次接收到的按键标识相同时,将本次接收到的时间间隔与时间阈值进行比较,并根据所述比较结果控制所述测量仪器。
一些实施方式中,根据所述比较结果控制所述测量仪器包括:若所述时间间隔小于所述时间阈值,则所述主控制器丢弃本次接收到的按键标识;若所述时间间隔大于或等于所述时间阈值,则所述主控制器根据本次接收到的按键标识控制所述测量仪器。
一些实施方式中,根据所述比较结果控制所述测量仪器包括:若所述时间间隔小于或等于所述时间阈值,则所述主控制器丢弃本次接收到的按键标识;若所述时间间隔大于所述时间阈值,则所述主控制器根据本次接收到的按键标识控制所述测量仪器。
一些实施方式中,所述计时器计时时,还包括判断所述计时器记录的值是否达到预定时间间隔。若所述计时器记录的值未达到预定时间间隔,则计时器继续计时;若所述计时器记录的值达到预定时间间隔,则控制计时器停止计时。
一些实施方式中,所述扫描控制器从所述计时器获得时间间隔后,对所述计时器进行复位或清零处理。
一些实施方式中,所述计时器及所述扫描控制器由同一主控芯片构成。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅用于说明本申请的技术方案,任何本领域普通技术人员均可在不违背本申请的精神及范畴下,对上述实施例进行修饰与改变。因此,本申请的权利保护范围应视权利要求范围为准。
Claims (11)
1.一种键盘消抖方法,其特征在于,应用于扫描控制器,所述扫描控制器设置于键盘与主控制器之间,包括:
确定按键的按键状态是否发生改变,包括:依次扫描键盘中的每个按键得到所有按键的按键状态;判断本次扫描得到的所有按键的按键状态与上一次扫描得到的所有按键的按键状态是否相同;若判断结果为相同,则继续扫描键盘中每个按键;若判断结果为不同,则确定按键的按键状态发生了改变;
若按键状态发生了改变,则读取计时器记录的时间信息,其中,时间信息为本次按键状态发生改变时间与上一次按键状态发生改变时间之间的相对时间间隔,即两次确定按键状态改变的时间间隔;
读取时间信息之后,清零所述计时器以使所述计时器重新开始计时,将所述时间信息及所有按键的按键状态打包发送给主控制器,打包数据格式为:帧头、所有按键的按键状态、时间信息、校验码及帧尾,由所述主控制器根据最新接收到的时间信息及所有按键的按键状态,以及上一次接收到的所有按键状态确定是否存在抖动;
计时器计时时还包括判断所述时间信息是否达到预定时间间隔;
若所述时间信息未达到预定时间间隔,则计时器继续计时;若所述时间信息达到预定时间间隔,则控制计时器停止计时,保持预定时间间隔不变,直到下一次按键状态发生改变,计时器记录的时间被读取后进行归零,使计时器重新开始计时;
所述预定时间间隔根据抖动最小时间确定,通过判断所述时间信息是否达到预定时间间隔,并根据判断结果确定时间信息的处理方式,能够使得时间信息占用一定的数据宽度,避免增加传输时间。
2.如权利要求1所述的键盘消抖方法,其特征在于,所述预定时间间隔大于按键抖动的时间。
3.一种键盘消抖方法,其特征在于,包括:
接收扫描控制器打包发送的所有按键的按键状态及时间信息,其中,时间信息为扫描控制器中计时器记录的一次按键状态发生改变时间与上一次按键状态发生改变时间之间的相对时间间隔,即两次确定按键状态改变的时间间隔,打包数据格式为:帧头、所有按键的按键状态、时间信息、校验码及帧尾;
提取上一次接收的所有按键的按键状态;
对于每一按键,当本次接收的该按键的按键状态与上一次接收的该按键的按键状态相同时,将本次接收到的时间间隔与时间阈值进行比较,并根据比较结果处理本次接收的该按键的按键状态;
其中,计时器计时时还包括判断所述时间信息是否达到预定时间间隔;
若所述时间信息未达到预定时间间隔,则计时器继续计时;若所述时间信息达到预定时间间隔,则控制计时器停止计时,保持预定时间间隔不变,直到下一次按键状态发生改变,计时器记录的时间被读取后进行归零,使计时器重新开始计时;
所述预定时间间隔根据抖动最小时间确定,通过判断所述时间信息是否达到预定时间间隔,并根据判断结果确定时间信息的处理方式,能够使得时间信息占用一定的数据宽度,避免增加传输时间;
根据比较结果处理本次接收的该按键的按键状态包括:
若所述时间间隔小于所述时间阈值,则确定存在抖动,丢弃本次接收的该按键的按键状态;若所述时间间隔大于或等于所述时间阈值,则响应本次接收的该按键的按键状态;或者
若所述时间间隔小于或等于所述时间阈值,则确定存在抖动,丢弃本次接收的该按键的按键状态;若所述时间间隔大于所述时间阈值,则响应本次接收的该按键的按键状态。
4.一种键盘消抖的扫描控制器,其特征在于,包括:计时器、按键扫描模块、主控模块、通讯模块及时间处理模块;
所述按键扫描模块用于确定按键的按键状态是否发生改变,所述按键扫描模块确定按键的按键状态是否发生改变的过程包括:依次扫描键盘中的每个按键得到所有按键的按键状态;判断本次扫描得到的所有按键的按键状态与上一次扫描得到的所有按键的按键状态是否相同;若判断结果为相同,则继续扫描键盘中每个按键;若判断结果为不同,则确定按键的按键状态发生了改变;
若所述按键扫描模块确定按键状态发生了改变,则由所述主控模块读取所述计时器记录的时间信息,读取时间信息之后,清零所述计时器以使所述计时器重新开始计时,将所述时间信息、所有按键的按键状态通过所述通讯模块打包发送给主控制器,打包数据格式为:帧头、所有按键的按键状态、时间信息、校验码及帧尾,由所述主控制器根据最新接收到的时间信息及所有按键的按键状态,以及上一次接收到的所有按键状态确定是否存在抖动;
其中,时间信息为本次按键状态发生改变时间与上一次按键状态发生改变时间之间的相对时间间隔,即两次确定按键状态改变的时间间隔;时间处理模块用于计时器计时判断所述时间信息是否达到预定时间间隔;
若所述时间信息未达到预定时间间隔,则计时器继续计时;若所述时间信息达到预定时间间隔,则控制计时器停止计时,保持预定时间间隔不变,直到下一次按键状态发生改变,计时器记录的时间被读取后进行归零,使计时器重新开始计时;
所述预定时间间隔根据抖动最小时间确定,通过判断所述时间信息是否达到预定时间间隔,并根据判断结果确定时间信息的处理方式,能够使得时间信息占用一定的数据宽度,避免增加传输时间。
5.如权利要求4所述的扫描控制器,特征在于,所述预定时间间隔大于按键抖动的时间。
6.一种键盘消抖的主控制器,其特征在于,包括:
通讯模块,用于接收扫描控制器打包发送的所有按键的按键状态及时间信息,其中,时间信息为扫描控制器中计时器记录的一次按键状态发生改变时间与上一次按键状态发生改变时间之间的相对时间间隔,即两次确定按键状态改变的时间间隔,打包数据格式为:帧头、所有按键的按键状态、时间信息、校验码及帧尾;
提取模块,用于提取上一次接收的所有按键的按键状态;
处理模块,用于对于每一按键,当本次接收的该按键的按键状态与上一次接收的该按键的按键状态相同时,将本次接收的时间间隔与时间阈值进行比较,并根据比较结果处理本次接收的该按键的按键状态;
其中,计时器计时时还包括判断所述时间信息是否达到预定时间间隔;
若所述时间信息未达到预定时间间隔,则计时器继续计时;若所述时间信息达到预定时间间隔,则控制计时器停止计时,保持预定时间间隔不变,直到下一次按键状态发生改变,计时器记录的时间被读取后进行归零,使计时器重新开始计时;
所述预定时间间隔根据抖动最小时间确定,通过判断所述时间信息是否达到预定时间间隔,并根据判断结果确定时间信息的处理方式,能够使得时间信息占用一定的数据宽度,避免增加传输时间;
所述处理模块根据比较结果处理本次接收的该按键的按键状态包括:
若所述时间间隔小于所述时间阈值,则确定存在抖动,丢弃本次接收的该按键的按键状态;若所述时间间隔大于或等于所述时间阈值,则响应本次接收的该按键的按键状态;或者
若所述时间间隔小于或等于所述时间阈值,则确定存在抖动,丢弃本次接收的该按键的按键状态;若所述时间间隔大于所述时间阈值,则响应本次接收的该按键的按键状态。
7.一种测量仪器,其特征在于,包括:键盘;
权利要求4至5任一项所述的键盘消抖的扫描控制器;以及
权利要求6所述的键盘消抖的主控制器。
8.一种测量仪器,其特征在于,包括键盘、计时器、扫描控制器及主控制器;
所述键盘包括多个按键;
所述计时器用于记录相邻两次按键触发的时间间隔;
所述扫描控制器用于检测键盘上的按键是否被触发,当有按键被触发时,从所述计时器获取时间间隔,将时间间隔及被触发的按键标识打包发送至所述主控制器,打包数据格式为:帧头、所有按键的按键状态、时间信息、校验码及帧尾;
所述主控制器用于当本次接收到的按键标识与上一次接收到的按键标识相同时,将本次接收到的时间间隔与时间阈值进行比较,并根据比较结果控制所述测量仪器;
其中,计时器计时时还包括判断所述时间信息是否达到预定时间间隔;
若所述时间信息未达到预定时间间隔,则计时器继续计时;若所述时间信息达到预定时间间隔,则控制计时器停止计时,保持预定时间间隔不变,直到下一次按键状态发生改变,计时器记录的时间被读取后进行归零,使计时器重新开始计时;
所述预定时间间隔根据抖动最小时间确定,通过判断所述时间信息是否达到预定时间间隔,并根据判断结果确定时间信息的处理方式,能够使得时间信息占用一定的数据宽度,避免增加传输时间;
根据所述比较结果控制所述测量仪器包括:
若所述时间间隔小于所述时间阈值,则所述主控制器确定存在抖动,丢弃本次接收到的按键标识;若所述时间间隔大于或等于所述时间阈值,则所述主控制器根据本次接收到的按键标识控制所述测量仪器;或者
若所述时间间隔小于或等于所述时间阈值,则所述主控制器确定存在抖动,丢弃本次接收到的按键标识;若所述时间间隔大于所述时间阈值,则所述主控制器根据本次接收到的按键标识控制所述测量仪器。
9.如权利要求8所述的测量仪器,其特征在于,所述扫描控制器从所述计时器获得时间间隔后,对所述计时器进行复位或清零处理。
10.如权利要求8所述的测量仪器,其特征在于,所述计时器及所述扫描控制器由同一主控芯片构成。
11.如权利要求8所述的测量仪器,其特征在于,所述按键为旋钮,和/或推动按键,和/或按压按键。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611254709.XA CN108270447B (zh) | 2016-12-30 | 2016-12-30 | 键盘消抖方法、扫描控制器、主控制器及测量仪器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611254709.XA CN108270447B (zh) | 2016-12-30 | 2016-12-30 | 键盘消抖方法、扫描控制器、主控制器及测量仪器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108270447A CN108270447A (zh) | 2018-07-10 |
CN108270447B true CN108270447B (zh) | 2024-05-24 |
Family
ID=62754462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611254709.XA Active CN108270447B (zh) | 2016-12-30 | 2016-12-30 | 键盘消抖方法、扫描控制器、主控制器及测量仪器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108270447B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888833B (zh) * | 2019-10-14 | 2023-07-21 | 深圳市德明利技术股份有限公司 | 多路输入开关消抖的方法、装置、存储介质及单片机设备 |
CN112084082B (zh) * | 2020-08-28 | 2023-10-20 | 苏州富强科技有限公司 | 一种键盘检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645711A (zh) * | 2009-08-31 | 2010-02-10 | 深圳华为通信技术有限公司 | 一种键盘纠错方法及装置 |
CN103176608A (zh) * | 2011-12-21 | 2013-06-26 | 北京普源精电科技有限公司 | 一种键盘、键盘控制方法及采用该键盘的信号发生器 |
CN105071816A (zh) * | 2015-08-12 | 2015-11-18 | 长沙市博巨兴电子科技有限公司 | 一种高效率快速按键扫描方法 |
CN105634503A (zh) * | 2015-12-28 | 2016-06-01 | 北京锦鸿希电信息技术股份有限公司 | 检测键盘键值的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7809867B2 (en) * | 2007-11-14 | 2010-10-05 | Fluke Corporation | Keypad de-bouncing apparatus and method |
TWI463800B (zh) * | 2011-11-22 | 2014-12-01 | Inventec Corp | 除彈跳裝置及其方法 |
-
2016
- 2016-12-30 CN CN201611254709.XA patent/CN108270447B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645711A (zh) * | 2009-08-31 | 2010-02-10 | 深圳华为通信技术有限公司 | 一种键盘纠错方法及装置 |
CN103176608A (zh) * | 2011-12-21 | 2013-06-26 | 北京普源精电科技有限公司 | 一种键盘、键盘控制方法及采用该键盘的信号发生器 |
CN105071816A (zh) * | 2015-08-12 | 2015-11-18 | 长沙市博巨兴电子科技有限公司 | 一种高效率快速按键扫描方法 |
CN105634503A (zh) * | 2015-12-28 | 2016-06-01 | 北京锦鸿希电信息技术股份有限公司 | 检测键盘键值的方法及装置 |
Non-Patent Citations (3)
Title |
---|
基于FPGA器件的消除按键抖动方法研究;谷长龙等;《吉林化工学院学报》;20060930(第03期);全文 * |
基于FPGA的按键弹跳消除电路的研究与应用;李婷;《科技创新导报》;20080111(第02期);全文 * |
基于FPGA的按键消抖动设计;许德成;《吉林师范大学学报(自然科学版)》;20091110(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108270447A (zh) | 2018-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6921069B2 (ja) | ネットワーク攻撃を識別するための方法及び装置 | |
WO2020001658A1 (zh) | 编码器信号采样方法及装置 | |
CN110225417A (zh) | 数据处理方法及服务器、检测卡顿的方法及服务器 | |
CN108270447B (zh) | 键盘消抖方法、扫描控制器、主控制器及测量仪器 | |
CN104965676B (zh) | 一种随机存取存储器的访问方法、装置及控制芯片 | |
WO2022028592A1 (zh) | 目标检测跟踪方法、装置、电子设备和存储介质 | |
US7852777B2 (en) | Network hardware device | |
CN109283833A (zh) | 一种时间统计系统和方法 | |
CN105589764A (zh) | Cpu异常处理方法及装置 | |
JP6351827B2 (ja) | ウイルススキャン方法及びウイルススキャン装置 | |
CN110851297A (zh) | 一种接口抖动状态的处理方法、装置、系统及介质 | |
WO2014166451A1 (zh) | 衰减装置、系统、衰减方法及计算机存储介质 | |
CN109167736B (zh) | 高均匀度的数据包发包方法及装置 | |
JP6295850B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
CN107066421B (zh) | 一种示波器及其采集数据上报方法 | |
JP4425055B2 (ja) | クライアント・サーバ音声認識方法、これに用いる装置、そのプログラム及び記録媒体 | |
CN114328153A (zh) | 一种rdma性能测试系统、方法、装置及介质 | |
US11282473B2 (en) | Method and apparatus for identifying rising/falling edge and display panel | |
US20210014086A1 (en) | Method and apparatus for storing data of transmission signal, and computer readable storage medium | |
CN114116274A (zh) | 一种Linux操作系统异常信号检测方法及装置 | |
US6741953B2 (en) | Acquisition unit and method for infrequent capturing of data samples with associated timing information | |
CN111368292B (zh) | 信息处理方法、装置、设备及介质 | |
CN115484454B (zh) | 一种非root手机获取视频卡顿的检测方法及装置 | |
WO2024138816A1 (zh) | 游戏手柄的数据处理方法、装置及游戏系统 | |
JP2019080242A (ja) | データ取得方法およびデータ取得装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |