CN116909411A - 一种键盘去抖方法、装置、设备及介质 - Google Patents
一种键盘去抖方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116909411A CN116909411A CN202310857285.XA CN202310857285A CN116909411A CN 116909411 A CN116909411 A CN 116909411A CN 202310857285 A CN202310857285 A CN 202310857285A CN 116909411 A CN116909411 A CN 116909411A
- Authority
- CN
- China
- Prior art keywords
- state
- key
- debounce
- keyboard
- target
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000005070 sampling Methods 0.000 claims abstract description 138
- 238000006243 chemical reaction Methods 0.000 claims abstract description 70
- 230000009471 action Effects 0.000 claims abstract description 65
- 230000005764 inhibitory process Effects 0.000 claims abstract description 30
- 238000003825 pressing Methods 0.000 claims description 47
- 230000007704 transition Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 16
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 206010044565 Tremor Diseases 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004904 shortening Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01H—ELECTRIC SWITCHES; RELAYS; SELECTORS; EMERGENCY PROTECTIVE DEVICES
- H01H13/00—Switches having rectilinearly-movable operating part or parts adapted for pushing or pulling in one direction only, e.g. push-button switch
- H01H13/70—Switches having rectilinearly-movable operating part or parts adapted for pushing or pulling in one direction only, e.g. push-button switch having a plurality of operating members associated with different sets of contacts, e.g. keyboard
- H01H13/84—Switches having rectilinearly-movable operating part or parts adapted for pushing or pulling in one direction only, e.g. push-button switch having a plurality of operating members associated with different sets of contacts, e.g. keyboard characterised by ergonomic functions, e.g. for miniature keyboards; characterised by operational sensory functions, e.g. sound feedback
- H01H13/85—Switches having rectilinearly-movable operating part or parts adapted for pushing or pulling in one direction only, e.g. push-button switch having a plurality of operating members associated with different sets of contacts, e.g. keyboard characterised by ergonomic functions, e.g. for miniature keyboards; characterised by operational sensory functions, e.g. sound feedback characterised by tactile feedback features
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/22—Setup operations, e.g. calibration, key configuration or button assignment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/0202—Constructional details or processes of manufacture of the input device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明公开了一种键盘去抖方法、装置、设备及介质。键盘去抖方法,包括:在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态,或者,在确定键盘处于弹起去抖状态时,根据第二去抖采样时长采集目标次数的按键状态;其中,第一去抖采样时长小于按键机械抖动平均时长;根据第一去抖采样时长采集的目标次数的按键状态,或者根据第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码;在状态转换按键代码不为空时,上报状态转换按键代码,并同时开启禁止触发动作状态。本发明实施例的技术方案能够迅速识别键盘中动作的按键,并及时对键盘中的按键的操作进行响应。
Description
技术领域
本发明涉及键盘去抖技术领域,尤其涉及一种键盘去抖方法、装置、设备及介质。
背景技术
由于按键的按下和弹起过程中,电平会处于一个波动的过程,所以在设计普通键盘或游戏键盘时,都需要进行按键的去抖。
常用的去抖方式是8-12ms的时间内,进行3次按键查询,如果3次查询到都是相同的按下或弹起,则认为当时是按下状态或弹起状态,即常用的按键去抖的时间一般至少需要8ms,此时按键响应就会滞后8ms。但是,一些键盘的使用场景(如游戏场景等),滞后的时长将无法满足使用需要。
发明内容
本发明提供了一种键盘去抖方法、装置、设备及介质,以解决现有键盘去抖方法无法满足快速识别按键状态的应用需要的问题。
根据本发明的一方面,提供了一种键盘去抖方法,包括:
在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态,或者,在确定键盘处于弹起去抖状态时,根据第二去抖采样时长采集目标次数的按键状态;其中,第一去抖采样时长小于按键机械抖动平均时长;
根据第一去抖采样时长采集的目标次数的按键状态,或者根据第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码;
在状态转换按键代码不为空时,上报状态转换按键代码,并同时开启禁止触发动作状态。
根据本发明的另一方面,提供了一种键盘去抖装置,包括:
按键状态采集模块,用于在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态,或者,在确定键盘处于弹起去抖状态时,根据第二去抖采样时长采集目标次数的按键状态;其中,第一去抖采样时长小于按键机械抖动平均时长;
状态转换按键代码确定模块,用于根据第一去抖采样时长采集的目标次数的按键状态,或者根据第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码;
禁止触发动作状态开启模块,用于在状态转换按键代码不为空时,上报状态转换按键代码,并同时开启禁止触发动作状态。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的键盘去抖方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的键盘去抖方法。
本发明实施例的技术方案,通过在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态,或者,在确定键盘处于弹起去抖状态时,根据第二去抖采样时长采集目标次数的按键状态,从而根据第一去抖采样时长采集的目标次数的按键状态,或者根据第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码,进而在状态转换按键代码不为空时,上报状态转换按键代码,并同时开启禁止触发动作状态。在本方案中,第一去抖采样时长小于按键机械抖动平均时长,通过缩减采样时长,大大缩短识别按下按键的时间,从而降低按键代码上报经历的时长,同理若第二去抖采样时长不大于按键机械抖动平均时长,也能达到缩短弹起按键的识别效率,而通过设置禁止触发动作状态,可以确保剩余的按下抖动或者弹起抖动,能够及时消除,不影响后续弹起去抖或按下去抖,解决现有键盘去抖方法无法满足快速识别按键状态的应用需要的问题,能够迅速识别键盘中动作的按键,并及时对键盘中的按键的操作进行响应。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种键盘去抖方法的流程图;
图2为本发明实施例二提供的一种键盘去抖方法的流程图;
图3为本发明实施例三提供的一种键盘去抖装置的结构示意图;
图4示出了可以用来实施本发明的实施例的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供的一种键盘去抖方法的流程图,本实施例可适用于快速响应键盘中按键操作的情况,该方法可以由键盘去抖装置来执行,该键盘去抖装置可以采用硬件和/或软件的形式实现,该键盘去抖装置可配置于电子设备中。电子设备可以是键盘等。如图1所示,该方法包括:
步骤110、在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态,或者,在确定键盘处于弹起去抖状态时,根据第二去抖采样时长采集目标次数的按键状态。
其中,第一去抖采样时长可以是预先设置的,在键盘处于按下去抖状态时采集按键状态的采样时间。第一去抖采样时长小于按键机械抖动平均时长。按键机械抖动平均时长可以是现有按键去抖一般采用的去抖时长。例如,按键机械抖动平均时长可为8ms。目标次数可以是预设的采样回数。示例性的,目标次数可以包括但不限于3次,但为了保证准确性必大于2次。按键状态可以包括按下状态以及弹起状态。
第二去抖采样时长可以是预先设置的,在键盘处于弹起去抖状态时采集按键状态的采样时间。第二去抖采样时长不小于第一去抖采样时长,且不大于按键机械抖动平均时长,可以根据不同的按键类型进行一定程度的微调。可选的,第一去抖采样时长与第二去抖采样时长为两个不同的采样周期。
一般情况下,当按键在弹起状态时,键盘处于按下去抖状态,当按键在按下状态时,键盘处于弹起去抖状态。
具体的,若确定出键盘处于按下去抖状态,则在第一去抖采样时长内,对键盘的按键状态进行目标次数的采集。若确定出键盘处于弹起去抖状态,则在第二去抖采样时长内,对键盘的按键状态进行目标次数的采集。
步骤120、根据第一去抖采样时长采集的目标次数的按键状态,或者根据第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码。
其中,状态转换按键代码可以是由相同采样周期内目标次数的按键状态确定的,用户动作引起状态改变的按键的代码。
在本发明实施例中,若键盘处于按下去抖状态,则根据第一去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码。若键盘处于弹起去抖状态,则根据第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码。
需要说明的是,当用户动作未实际引起按键状态改变时,相同采样周期内目标次数的按键状态会不同,此时状态转换按键代码为空。而当用户动作引起按键状态改变时,相同采样周期内目标次数的按键状态会相同,此时状态转换按键代码不为空。
可选的,根据当前第一去抖采样时长采集的目标次数的按键状态,确定出状态转换按键代码为空,则按照第一去抖采样时长再次采集目标次数的按键状态,并根据更新的目标次数的按键状态,确定状态转换按键代码,直至确定出不为空的状态转换按键代码,并进行上报。
步骤130、在状态转换按键代码不为空时,上报状态转换按键代码,并同时开启禁止触发动作状态。
其中,禁止触发动作状态可以是不进行按下去抖和弹起去抖处理的状态。
在本发明实施例中,可以判别状态转换按键代码是否为空,若状态转换按键代码不为空,则上报状态转换按键代码,并同时开启禁止触发动作状态,以通过禁止触发动作状态,确保剩余的按下抖动或者弹起抖动,能够及时消除,不影响后续弹起去抖或按下去抖,进而在禁止触发动作状态结束后,再次依据按键去抖类型对按键状态进行采样,并进行相应的去抖逻辑处理。
本发明实施例的技术方案,通过在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态,或者,在确定键盘处于弹起去抖状态时,根据第二去抖采样时长采集目标次数的按键状态,从而根据第一去抖采样时长采集的目标次数的按键状态,或者根据第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码,进而在状态转换按键代码不为空时,上报状态转换按键代码,并同时开启禁止触发动作状态。在本方案中,第一去抖采样时长小于按键机械抖动平均时长,通过缩减采样时长,大大缩短识别按下按键的时间,从而降低按键代码上报经历的时长,同理若第二去抖采样时长不大于按键机械抖动平均时长,也能达到缩短弹起按键的识别效率,而通过设置禁止触发动作状态,可以确保剩余的按下抖动或者弹起抖动,能够及时消除,不影响后续弹起去抖或按下去抖,解决现有键盘去抖方法无法满足快速识别按键状态的应用需要的问题,能够迅速识别键盘中动作的按键,并及时对键盘中的按键的操作进行响应。
实施例二
图2为本发明实施例二提供的一种键盘去抖方法的流程图,本实施例以上述实施例为基础进行具体化,给出了在状态转换按键代码不为空时,上报状态转换按键代码,并同时开启禁止触发动作状态之后的具体的可选的实施方式。如图2所示,该方法包括:
步骤210、在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态,或者,在确定键盘处于弹起去抖状态时,根据第二去抖采样时长采集目标次数的按键状态。
在本发明的一个可选实施例中,键盘去抖方法还可以包括:在按键的按下状态的持续时长小于第一去抖采样时长,则不进行按键状态的采集。
在本发明实施例中,若按键由弹起状态到按下状态的持续时长小于第一去抖采样时长,即按键出现电平波动的时长小于第一去抖采样时长,表征用户出现误碰,并非实际按下按键,则不按照第一去抖采样时长对按键状态进行采集。
步骤220、根据第一去抖采样时长采集的目标次数的按键状态,或者根据第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码。
在本发明的一个可选实施例中,根据第一去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码,可以包括:若根据第一去抖采样时长采集的目标次数的按键状态,确定存在按键状态均为按下状态的第一目标按键,则将第一目标按键的按键代码,作为状态转换按键代码;若根据第一去抖采样时长采集的目标次数的按键状态,确定不存在按键状态均为按下状态的第一目标按键,则状态转换按键代码为空。
其中,第一目标按键可以是在当前第一去抖采样时长内采集的,按键状态均为按下状态的按键。
在本发明实施例中,根据当前第一去抖采样时长,采集的目标次数的按键状态,确定每次采集的按键状态为按下状态的按键,并将前述确定出的按键作为第一目标按键,进而确定第一目标按键的按键代码,并将第一目标按键的按键代码作为状态转换按键代码。若根据第一去抖采样时长采集的目标次数的按键状态,确定不存在按键状态均为按下状态的第一目标按键,则可以确定状态转换按键代码为空。
在本发明的一个可选实施例中,根据第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码,可以包括:若根据第二去抖采样时长采集的目标次数的按键状态,确定存在按键状态均为弹起状态的第二目标按键,则将第二目标按键的按键代码,作为状态转换按键代码;其中,第二去抖采样时长不小于第一去抖采样时长,且不大于按键机械抖动平均时长;若根据第二去抖采样时长采集的目标次数的按键状态,确定不存在按键状态均为弹起状态的第二目标按键,则状态转换按键代码为空。
其中,第二目标按键为在当前第二去抖采样时长内采集的,按键状态均为弹起状态的按键。
在本发明实施例中,根据当前第二去抖采样时长采集的目标次数的按键状态,确定每次采集的按键状态为弹起状态的按键,并将此时确定出的按键作为第二目标按键,进而确定第二目标按键的按键代码,并将第二目标按键的按键代码作为状态转换按键代码。若根据第二去抖采样时长采集的目标次数的按键状态,确定不存在按键状态均为弹起状态的第二目标按键,则可以确定状态转换按键代码为空。
步骤230、在状态转换按键代码不为空时,上报状态转换按键代码,并同时开启禁止触发动作状态。
在本发明的一个可选实施例中,开启禁止触发动作状态,可以包括:确定禁止触发动作状态的信息禁止上报时间窗口;在信息禁止上报时间窗口,关闭对按键状态的采集。
其中,信息禁止上报时间窗口可以是禁止触发动作状态开启后,同步打开的时间窗口。信息禁止上报时间窗口的起始时间为完成目标次数的按键状态的采样时间,持续时间为预设状态时长(可以根据不同的按键类型进行一定程度的微调),经过预设状态时长之后为信息禁止上报时间窗口的关闭时间。
相应的,在开启禁止触发动作状态后,可以根据禁止触发动作状态的预设状态时长以及完成目标次数的按键状态的采样时间,确定与禁止触发动作状态匹配的信息禁止上报时间窗口,进而在信息禁止上报时间窗口内,关闭对按键状态的采集,即禁止上报信息,以关闭去抖逻辑。
步骤240、在按键处于按下去抖状态,且禁止触发动作状态结束后,上报与状态转换按键代码匹配的按键为弹起状态。
在本发明实施例中,若按键处于按下去抖状态,且用户结束对按键的按下操作之后,结束了禁止触发动作状态,则上报与状态转换按键代码匹配的按键为弹起状态。
若按键处于按下去抖状态、用户结束对按键的按下操作之前结束了禁止触发动作状态,则根据第二目标按键的确定逻辑,确定出第二目标按键,并将第二目标按键的按键代码作为状态转换按键代码,从而上报与状态转换按键代码匹配的按键为弹起状态。
在本发明的一个可选实施例中,在按键处于按下去抖状态,且禁止触发动作状态结束后,上报与状态转换按键代码匹配的按键为弹起状态,可以包括:根据按键按下时长、信息禁止上报时间窗口对应时长以及第一去抖采样时长,确定待比较时长;根据按键按下时长、待比较时长以及第二去抖采样时长,计算弹起状态上报时刻;在弹起状态上报时刻,上报与状态转换按键代码匹配的按键为弹起状态。
其中,按键按下时长可以是用户对原状态为弹起状态的按键的按下时长。信息禁止上报时间窗口对应时长即为前述预设状态时长。待比较时长可以是根据按键按下时长、信息禁止上报时间窗口对应时长以及第一去抖采样时长确定的,用于与第二去抖采样时长比较的时长。弹起状态上报时刻可以是在按键处于按下去抖状态,且禁止触发动作状态结束后上报相应按键弹起状态的时刻。
在本发明实施例中,可以先计算按键按下时长,与第一去抖采样时长的时长差,并将信息禁止上报时间窗口对应时长,减去计算得到的时长差,得到待比较时长,进而将待比较时长与第二去抖采样时长进行比较。若待比较时长大于或等于第二去抖采样时长,则计算待比较时长与按键按下时长的总时长,并记为第一总时长,从而在用户按下按键的时刻为起始时刻,历经第一总时长的时刻作为弹起状态上报时刻,从而在弹起状态上报时刻,上报与状态转换按键代码匹配的按键为弹起状态。若待比较时长小于第二去抖采样时长,则第二去抖采样时长与按键按下时长的总时长,并记为第二总时长,从而在用户按下按键的时刻为起始时刻,历经第二总时长的时刻作为弹起状态上报时刻,从而在弹起状态上报时刻,上报与状态转换按键代码匹配的按键为弹起状态。
步骤250、在按键处于弹起去抖状态,且禁止触发动作状态结束后,返回执行在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态的操作。
具体的,在按键处于弹起去抖状态,上报了确定出的状态转换按键代码,且在开启的禁止触发动作状态结束后,进一步确定键盘去抖类型,若键盘处于按下去抖状态,则返回执行在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态的操作。
示例性的,先初始化游戏键盘,此时所有按键默认为弹起状态,当按键受到向下的压力,游戏键盘会处于按下去抖状态,每1ms进行3次扫描按键状态,如果3次扫描按键都是按下状态,键盘就会上报按下按键的代码,同时触发禁止触发动作状态。当处于了禁止触发动作状态时,键盘会同时关闭按下去抖和弹起去抖逻辑处理,相当于禁止触发动作状态不会上报任何的按下动作和弹起动作,但弹起去抖的扫描定时器还会运行,以确定信息上报时刻。
随后,当按键在按下状态时,游戏键盘会处于弹起去抖状态,即8ms内进行3次扫描按键状态,如果3次扫描按键都是弹起状态,键盘就会上报弹起按键的代码,同时触发禁止触发动作状态。在触发禁止触发动作状态结束后,返回执行每1ms进行3次扫描按键状态的操作。当处于了禁止触发动作状态时,键盘会同时关闭按下去抖和弹起去抖逻辑处理,相当于禁止触发动作状态不会上报任何的按下动作和弹起动作,但按下去抖的扫描定时器还会运行,用于确定信息上报时刻。
由于禁止触发动作逻辑容易混淆,通过表1描述按键的触发逻辑:(假定键盘最后状态为弹起,并假定按下去抖时间1ms,弹起去抖时间8ms,禁止触发动作状态对应的预设状态时长为12ms):
表1触发时序表
本方案保证了每次按下时,1ms之内一定会把按键按下代码快速上报;弹起去抖保留了经典的8ms以上时间去抖。
本发明实施例的技术方案,通过在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态,或者,在确定键盘处于弹起去抖状态时,根据第二去抖采样时长采集目标次数的按键状态,从而根据第一去抖采样时长采集的目标次数的按键状态,或者根据第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码,进而在状态转换按键代码不为空时,上报状态转换按键代码,并同时开启禁止触发动作状态。在本方案中,第一去抖采样时长小于按键机械抖动平均时长,通过缩减采样时长,大大缩短识别按下按键的时间,从而降低按键代码上报经历的时长,同理若第二去抖采样时长不大于按键机械抖动平均时长,也能达到缩短弹起按键的识别效率,而通过设置禁止触发动作状态,可以确保剩余的按下抖动或者弹起抖动,能够及时消除,不影响后续弹起去抖或按下去抖,解决现有键盘去抖方法无法满足快速识别按键状态的应用需要的问题,能够迅速识别键盘中动作的按键,并及时对键盘中的按键的操作进行响应。
实施例三
图3为本发明实施例三提供的一种键盘去抖装置的结构示意图。如图3所示,该装置包括:
按键状态采集模块310,用于在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态,或者,在确定键盘处于弹起去抖状态时,根据第二去抖采样时长采集目标次数的按键状态;其中,第一去抖采样时长小于按键机械抖动平均时长;
状态转换按键代码确定模块320,用于根据第一去抖采样时长采集的目标次数的按键状态,或者根据第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码;
禁止触发动作状态开启模块330,用于在状态转换按键代码不为空时,上报状态转换按键代码,并同时开启禁止触发动作状态。
本发明实施例的技术方案,通过在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态,或者,在确定键盘处于弹起去抖状态时,根据第二去抖采样时长采集目标次数的按键状态,从而根据第一去抖采样时长采集的目标次数的按键状态,或者根据第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码,进而在状态转换按键代码不为空时,上报状态转换按键代码,并同时开启禁止触发动作状态。在本方案中,第一去抖采样时长小于按键机械抖动平均时长,通过缩减采样时长,大大缩短识别按下按键的时间,从而降低按键代码上报经历的时长,同理若第二去抖采样时长不大于按键机械抖动平均时长,也能达到缩短弹起按键的识别效率,而通过设置禁止触发动作状态,可以确保剩余的按下抖动或者弹起抖动,能够及时消除,不影响后续弹起去抖或按下去抖,解决现有键盘去抖方法无法满足快速识别按键状态的应用需要的问题,能够迅速识别键盘中动作的按键,并及时对键盘中的按键的操作进行响应。
可选的,状态转换按键代码确定模块320,包括第一状态转换按键代码确定单元以及第二状态转换按键代码确定单元。
第一状态转换按键代码确定单元,用于若根据所述第一去抖采样时长采集的目标次数的按键状态,确定存在按键状态均为按下状态的第一目标按键,则将所述第一目标按键的按键代码,作为所述状态转换按键代码;若根据所述第一去抖采样时长采集的目标次数的按键状态,确定不存在按键状态均为按下状态的第一目标按键,则所述状态转换按键代码为空。
第二状态转换按键代码确定单元,用于若根据所述第二去抖采样时长采集的目标次数的按键状态,确定存在按键状态均为弹起状态的第二目标按键,则将所述第二目标按键的按键代码,作为所述状态转换按键代码;其中,所述第二去抖采样时长不小于第一去抖采样时长,且不大于所述按键机械抖动平均时长;若根据所述第二去抖采样时长采集的目标次数的按键状态,确定不存在按键状态均为弹起状态的第二目标按键,则所述状态转换按键代码为空。
可选的,禁止触发动作状态开启模块330,用于确定所述禁止触发动作状态的信息禁止上报时间窗口;在所述信息禁止上报时间窗口,关闭对按键状态的采集。
可选的,键盘去抖装置还包括按键状态更新模块,包括第一状态更新单元以及第二状态更新单元。第一状态更新单元,用于在按键处于按下去抖状态,且所述禁止触发动作状态结束后,上报与所述状态转换按键代码匹配的按键为弹起状态。第二状态更新单元,用于在按键处于弹起去抖状态,且所述禁止触发动作状态结束后,返回执行在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态的操作。
可选的,第一状态更新单元,具体用于根据按键按下时长、所述信息禁止上报时间窗口对应时长以及所述第一去抖采样时长,确定待比较时长;根据所述按键按下时长、所述待比较时长以及所述第二去抖采样时长,计算弹起状态上报时刻;在所述弹起状态上报时刻,上报与所述状态转换按键代码匹配的按键为弹起状态。
本发明实施例所提供的键盘去抖装置可执行本发明任意实施例所提供的键盘去抖方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4示出了可以用来实施本发明的实施例的电子设备的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如键盘去抖方法。
在一些实施例中,键盘去抖方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的键盘去抖方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行键盘去抖方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种键盘去抖方法,其特征在于,包括:
在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态,或者,在确定键盘处于弹起去抖状态时,根据第二去抖采样时长采集目标次数的按键状态;其中,所述第一去抖采样时长小于按键机械抖动平均时长;
根据所述第一去抖采样时长采集的目标次数的按键状态,或者根据所述第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码;
在所述状态转换按键代码不为空时,上报所述状态转换按键代码,并同时开启禁止触发动作状态。
2.根据权利要求1所述的方法,其特征在于,根据所述第一去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码,包括:
若根据所述第一去抖采样时长采集的目标次数的按键状态,确定存在按键状态均为按下状态的第一目标按键,则将所述第一目标按键的按键代码,作为所述状态转换按键代码;
若根据所述第一去抖采样时长采集的目标次数的按键状态,确定不存在按键状态均为按下状态的第一目标按键,则所述状态转换按键代码为空。
3.根据权利要求1所述的方法,其特征在于,根据所述第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码,包括:
若根据所述第二去抖采样时长采集的目标次数的按键状态,确定存在按键状态均为弹起状态的第二目标按键,则将所述第二目标按键的按键代码,作为所述状态转换按键代码;其中,所述第二去抖采样时长不小于第一去抖采样时长,且不大于所述按键机械抖动平均时长;
若根据所述第二去抖采样时长采集的目标次数的按键状态,确定不存在按键状态均为弹起状态的第二目标按键,则所述状态转换按键代码为空。
4.根据权利要求1所述的方法,其特征在于,开启禁止触发动作状态,包括:
确定所述禁止触发动作状态的信息禁止上报时间窗口;
在所述信息禁止上报时间窗口,关闭对按键状态的采集。
5.根据权利要求4所述的方法,其特征在于,在所述状态转换按键代码不为空时,上报所述状态转换按键代码,并同时开启禁止触发动作状态之后,还包括:
在按键处于按下去抖状态,且所述禁止触发动作状态结束后,上报与所述状态转换按键代码匹配的按键为弹起状态;
在按键处于弹起去抖状态,且所述禁止触发动作状态结束后,返回执行在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态的操作。
6.根据权利要求5所述的方法,其特征在于,在按键处于按下去抖状态,且所述禁止触发动作状态结束后,上报与所述状态转换按键代码匹配的按键为弹起状态,包括:
根据按键按下时长、所述信息禁止上报时间窗口对应时长以及所述第一去抖采样时长,确定待比较时长;
根据所述按键按下时长、所述待比较时长以及所述第二去抖采样时长,计算弹起状态上报时刻;
在所述弹起状态上报时刻,上报与所述状态转换按键代码匹配的按键为弹起状态。
7.根据权利要求1所述的方法,其特征在于,还包括:
在按键的按下状态的持续时长小于所述第一去抖采样时长,则不进行按键状态的采集。
8.一种键盘去抖装置,其特征在于,包括:
按键状态采集模块,用于在确定键盘处于按下去抖状态时,根据第一去抖采样时长采集目标次数的按键状态,或者,在确定键盘处于弹起去抖状态时,根据第二去抖采样时长采集目标次数的按键状态;其中,所述第一去抖采样时长小于按键机械抖动平均时长;
状态转换按键代码确定模块,用于根据所述第一去抖采样时长采集的目标次数的按键状态,或者根据所述第二去抖采样时长采集的目标次数的按键状态,确定状态转换按键代码;
禁止触发动作状态开启模块,用于在所述状态转换按键代码不为空时,上报所述状态转换按键代码,并同时开启禁止触发动作状态。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的键盘去抖方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的键盘去抖方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310857285.XA CN116909411A (zh) | 2023-07-12 | 2023-07-12 | 一种键盘去抖方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310857285.XA CN116909411A (zh) | 2023-07-12 | 2023-07-12 | 一种键盘去抖方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116909411A true CN116909411A (zh) | 2023-10-20 |
Family
ID=88357536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310857285.XA Pending CN116909411A (zh) | 2023-07-12 | 2023-07-12 | 一种键盘去抖方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116909411A (zh) |
-
2023
- 2023-07-12 CN CN202310857285.XA patent/CN116909411A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10346597B2 (en) | Method for screen unlocking, method for image acquiring, and electronic terminal | |
CN114223189A (zh) | 时长统计方法、装置、电子设备和计算机可读介质 | |
CN116245865A (zh) | 一种图像质量的检测方法、装置、电子设备及存储介质 | |
CN116909411A (zh) | 一种键盘去抖方法、装置、设备及介质 | |
CN117033058A (zh) | 一种软件崩溃数据的分析方法、装置、设备及介质 | |
CN116820997A (zh) | 一种随机弹窗自动化处理方法、装置、电子设备及介质 | |
CN116623393A (zh) | 一种洗衣设备的控制方法、装置、洗衣设备及存储介质 | |
CN116450176A (zh) | 版本更新方法、装置、电子设备及存储介质 | |
CN116225312A (zh) | 镜像清理方法、装置、电子设备及存储介质 | |
CN113691628B (zh) | 任务切换方法和装置、系统、电子设备、计算机介质 | |
CN115629903A (zh) | 任务延迟监控方法、装置、设备及存储介质 | |
CN113014675B (zh) | 数据处理方法及装置、电子设备和存储介质 | |
CN114173158A (zh) | 人脸识别方法、云端设备、客户端设备、电子设备及介质 | |
CN111475043A (zh) | 终端设备的操作方法和装置 | |
CN116719621B (zh) | 一种针对海量任务的数据回写方法、装置、设备及介质 | |
CN113079262B (zh) | 智能语音对话的数据处理方法和装置、电子设备和介质 | |
CN116820658B (zh) | 一种云应用页面渲染方法、装置、设备及存储介质 | |
CN115630253A (zh) | 一种页面空闲检测方法、装置、电子设备及存储介质 | |
CN113033483B (zh) | 检测目标对象的方法、装置、电子设备和存储介质 | |
CN116319454A (zh) | 应用程序网络耗时检测方法、装置、设备及存储介质 | |
CN117453746A (zh) | 一种数据循环筛选的方法、装置、设备及介质 | |
CN115904899A (zh) | 操作记录生成、操作记录获取方法、装置、设备及介质 | |
CN115576986A (zh) | 一种数据定制方法、装置、设备及存储介质 | |
CN117194113A (zh) | 一种容器快照的生成方法、装置、设备及介质 | |
CN118277143A (zh) | 一种输入设备的端口异常修复方法、装置、设备及介质 |
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 |