System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及嵌入式系统的,具体涉及一种io口按键动作信息获取方法、装置及电子设备。
技术介绍
1、随着嵌入式系统的广泛应用,对于用户交互接口的需求也日益增长。特别是在各种控制器和智能设备中,按键作为一种基础且直观的输入方式,扮演着重要的角色。按键的响应速度和准确性直接影响到用户的操作体验,因此,如何有效地获取按键动作信息成为了设计这些系统时的一个核心任务。
2、目前,对于通常用单片机io口做按键输入的设备,程序获取按键动作信息的常见方法是通过不断轮询读取io口的状态。这种方法简单易实现,但存在明显的缺陷。由于机械按键的物理特性,按键在被按下和释放的瞬间会出现抖动,导致信号不稳定,因此需要在软件中实现去抖动逻辑,通常采用原地循环延时的方式。这种处理方法在按键数量较少时尚可应对,但当io口按键较多时,轮询和去抖动处理将占用大量的cpu运算时间,导致处理器不能及时响应其他任务,从而降低整个设备的运行效率。
3、因此,亟需一种io口按键动作信息获取方法、装置及电子设备。
技术实现思路
1、本申请提供一种io口按键动作信息获取方法、装置及电子设备,避免了因为软件去抖导致的cpu资源浪费,提高了单片机的运行效率。
2、在本申请的第一方面提供了一种io口按键动作信息获取方法,该方法包括:响应于定时器的定时中断信号,并暂停当前正在执行的主程序;启动中断服务程序,间隔预设时长对连接的多个io口按键进行中断检测;为各个所述io口按键配置计时存储字节,一个所述io口按键
3、通过采用上述技术方案,通过一个定时中断程序来单独集中处理所有按键的状态读取,减轻了中央处理器的负担。由于不再需要在主程序中不断地轮询每个io口的状态,处理器可以更有效地分配时间给其他任务。这种中断驱动的方法提高了程序的整体效率和响应速度,使得单片机能够更快地响应按键事件,同时保持对其他任务的高效处理。为每个按键配置独立的计时存储字节,使得每个按键的有效按下时间能够通过其对应的计时存储字节数据量化表示。可以精确地跟踪每个按键被按下的持续时间,对于识别短按、长按等不同的按键动作更有效。这种量化方法使得后续处理变得简单明了,便于程序根据不同的计时数据执行相应的操作。去抖动时间靠定时常数确定,有抖动时计时自动清零。这解决了由于按键抖动导致的信号不稳定问题。在定时中断中,只有连续两个预设时长内都检测到按键为按下状态时,才会认为是有效的按键动作,这样就自然地实现了去抖动。这种方法同时提供了一种稳定和可靠的方式来处理按键输入,避免了因为软件去抖导致的cpu资源浪费。提高了单片机的运行效率。
4、可选的,响应于定时器的定时中断信号,并暂停当前正在执行的主程序之前,所述方法还包括:获取所述定时器的初始值和溢出值,所述初始值和所述溢出值间隔时长为所述预设时长;当所述定时器的定时计数达到所述溢出值时,产生所述定时中断信号。
5、通过采用上述技术方案,通过响应定时器的定时中断信号,可以在预设的时间间隔内进行按键状态的检测和处理。定时中断信号的产生可以由定时器的初始值和溢出值来控制,确保按键检测的准确性和稳定性。
6、可选的,获取并监测各个所述io口按键的状态之后,所述方法还包括:若在所述第一时间监测到第二io口按键的状态为非按下状态,则将对应的第二计时存储字节内的第二计时数据清空,所述第二io口按键为多个所述io口按键中的任意一个io口按键。
7、通过采用上述技术方案,当检测到第二io口按键在第一时间为非按下状态时,清空第二计时存储字节内的第二计时数据。这样可以避免误判第二io口按键的按下操作,确保只有在第二时间发现第二io口按键为按下状态时才进行计时。通过清空第二计时数据,可以确保第二计时数据只包含有效的按键持续时间。如果第二io口按键在第一时间为非按下状态,意味着在第二时间之前按键已经释放,因此清空第二计时数据可以排除无效的计时结果,保证计时数据的准确性。
8、可选的,若在第一时间监测到第一io口按键的状态为按下状态,则持续监测所述第一io口按键在第二时间是否为按下状态之后,所述方法还包括:若确定所述第一io口按键在所述第二时间为非按下状态,则确定所述第一io口按键发生了无效动作;将所述第一计时存储字节内的第一计时数据清空。
9、通过采用上述技术方案,通过持续监测第一io口按键的状态变化,如果在第二时间发现该按键为非按下状态,可以判断该按键发生了无效动作。无效动作可能是因为按键在第一时间短暂按下然后立即释放,或者存在按键抖动等干扰因素导致的误触发。通过判断无效动作,可以排除误触发对后续处理的影响,提高按键操作的准确性。将第一计时存储字节内的第一计时数据清空,可以清除无效动作期间的计时记录。这样可以确保第一计时数据只包含有效的按键持续时间,避免无效动作对计时数据的干扰。
10、可选的,若确定所述第一io口按键在所述第二时间为按下状态,则判断所述第一io口按键对应的第一计时存储字节内的第一计时数据与预设字节数的大小关系之后,所述方法还包括:若确定所述第一计时数据等于预设字节数,则将所述第一计时数据清空。
11、通过采用上述技术方案,通过判断第一计时数据与预设字节数的大小关系,可以确定是否达到了字节溢出的临界点。如果第一计时数据等于预设字节数,表示计时已经达到或超过了该字节的最大值,即将发生溢出。为了防止溢出,将第一计时数据清空,可以重新开始计时,避免字节溢出导致的计时错误。
12、可选的,恢复所述主程序的执行,并根据所述第一计时数据执行对应的操作,具体包括:通过所述主程序判断所述第一计时数据与预设阈值的大小关系;若所述第一计时数据小于所述预设阈值,则确定所述第一io口按键对应于短按操作并执行所述短按操作对应的命令;若所述第一计时数据大于或等于所述预设阈值,则确定所述第一io口按键对应于长按操作并执行所述长按操作对应的命令。
13、通过采用上述技术方案,通过根据计时数据判断按键操作类型,并执行相应的命令,可以确保按键操作的准确性。根据预设阈值将按键操作区分为短按和长按,使单片机能够正确响应用户的意图。根据短按和长按操作的不同,可以执行不同的命令和功能。
14、可选的,若所述第一计时数据大于或等于所述预设阈值,则确定所述第一io口按键对本文档来自技高网...
【技术保护点】
1.一种IO口按键动作信息获取方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述响应于定时器的定时中断信号,并暂停当前正在执行的主程序之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述获取并监测各个所述IO口按键的状态之后,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述若在第一时间监测到第一IO口按键的状态为按下状态,则持续监测所述第一IO口按键在第二时间是否为按下状态之后,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述若确定所述第一IO口按键在所述第二时间为按下状态,则判断所述第一IO口按键对应的第一计时存储字节内的第一计时数据与预设字节数的大小关系之后,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述恢复所述主程序的执行,并根据所述第一计时数据执行对应的操作,具体包括:
7.根据权利要求6所述的方法,其特征在于,所述若所述第一计时数据大于或等于所述预设阈值,则确定所述第一IO口按键对应于长按操作并执行所述
8.一种IO口按键动作信息获取装置,其特征在于,包括响应模块(201)、处理模块(202)以及获取模块(203),其中:
9.一种电子设备,其特征在于,包括处理器、存储器、用户接口以及网络接口,所述存储器用于存储指令,所述用户接口和所述网络接口均用于与其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述电子设备执行如权利要求1-7任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令被执行时,执行如权利要求1-7任意一项所述的方法。
...【技术特征摘要】
1.一种io口按键动作信息获取方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述响应于定时器的定时中断信号,并暂停当前正在执行的主程序之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述获取并监测各个所述io口按键的状态之后,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述若在第一时间监测到第一io口按键的状态为按下状态,则持续监测所述第一io口按键在第二时间是否为按下状态之后,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述若确定所述第一io口按键在所述第二时间为按下状态,则判断所述第一io口按键对应的第一计时存储字节内的第一计时数据与预设字节数的大小关系之后,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述恢复所述主程序...
【专利技术属性】
技术研发人员:姜明,曾宪龙,曾庆松,
申请(专利权)人:北京博莱德光电技术开发有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。