一种基于状态机的多功能按键检测方法技术

技术编号:10599244 阅读:147 留言:0更新日期:2014-10-30 12:55
本发明专利技术公开了一种基于状态机的新型多功能按键检测方法,按键检测方法包括以下步骤:对系统配置进行预定义,定义内容包括:系统支持的按键数量、每个按键支持的按键类型、长按识别时间、连发间隔时间和按键端口;扫描按键端口,获取按键端口值,驱动状态机;对按键扫描进行定时中断,刷新和驱动状态机,用来按键消抖并且作为时间基准;对按键类别进行识别,识别按键扫描所获得的按键的事件类型,同时将按键类型和按键值编码。本发明专利技术通过用状态机处理按键检测问题,省去传统按键的延时去抖,也不在按键的死等待,实现了效率高、可靠性好、健壮的多功能按键检测。

【技术实现步骤摘要】
一种基于状态机的多功能按键检测方法
本专利技术涉及一种按键检测方法,尤其涉及一种基于状态机的多功能按键检测方法。
技术介绍
在人机交互的应用中,按键扮演着十分重要的角色,对于计算机键盘、手机及计算器等电子产品,工作时必须敲打键盘使得按键触电导通、断开,从而实现信息输入,目前按键做的比较好的就是手机的按键,有长按、短按、连发、还有组合等功能。通常的按键所用开关为机械弹性开关,当机械触点断开、闭合是,由于机械触点的弹性作用,一个按键开关在闭合是不会马上稳定的接通,在断开时也不会一下子断开,因而在闭合及断开瞬间均伴随有一连串的抖动,它直接影响着系统的稳定性与可靠性,因而在按键检测过程需要进行消抖处理。传统的消抖方式为RS触发器、延时防抖和功能芯片等方式,但这些方式存在着浪费处理器资源、应用范围不广泛、结构复杂的问题。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种系统效率高、可靠、健壮的基于状态机的多功能按键检测方法。本专利技术的目的是通过以下技术方案来实现的:一种基于状态机的多功能按键检测方法,按键检测方法包括以下步骤:S1.对系统配置进行预定义,定义内容包括:系统支持的按键数量、每个按键支持的按键类型、长按识别时间、连发间隔时间和按键端口;S2.扫描按键端口,获取按键端口值,驱动状态机;S3.对按键扫描进行定时中断,刷新和驱动状态机,用来按键消抖并且作为时间基准;S4.对按键类别进行识别,识别按键扫描所获得的按键的事件类型,同时将按键类型和按键值编码。所述定时中断每10ms调用一次按键检测。所述状态机的状态包括初始态、确认态、释放态和等待释放态。所述状态机的事件驱动机制包括以下步骤:S31.状态机处于初始态,若有按键按下则转到状态确认态,并保存当前按键值;S32.状态机处于确认态时,若无按键按下,触发单键事件,状态机转到初始态并返回按键值,若检测到按键仍按下,则转入按键释放态;S33.状态机处于释放态,若按键抬起则返回初始态、触发双击事件、回送键值,若按键仍按下,启动计时器,当延时大于定义的长按时别时间时转入等待释放态,计时器清零;S34.状态机处于等待释放态,若无键按下,则返回初始态,触发长按事件并回送键值,若检测到按键仍按下,启动计时器,当延时大于已设定的连发间隔时间则触发连发事件,返回初始态,计数器清零。本专利技术的有益效果是:本专利技术通过用状态机处理按键检测问题,省去传统按键的延时去抖,也不在在按键的死等待,实现了效率高、可靠性好、健壮的多功能按键检测。附图说明图1为本专利技术一种基于状态机的多功能按键检测方法流程图;图2为本专利技术一种基于状态机的多功能按键检测状态机的事件驱动机制的流程图。具体实施方式下面结合附图进一步详细描述本专利技术的技术方案,但本专利技术的保护范围不局限于以下所述。如图1所示,一种基于状态机的多功能按键检测方法,按键检测方法包括以下步骤:S1.对系统配置进行预定义,定义内容包括:系统支持的按键数量、每个按键支持的按键类型、长按识别时间、连发间隔时间和按键端口;S2.扫描按键端口,获取按键端口值,驱动状态机;S3.对按键扫描进行定时中断,刷新和驱动状态机,用来按键消抖并且作为时间基准;S4.对按键类别进行识别,识别按键扫描所获得的按键的事件类型,同时将按键类型和按键值编码。所述定时中断每10ms调用一次按键检测。所述状态机的状态包括初始态、确认态、释放态和等待释放态。所述状态机的事件驱动机制包括以下步骤:S31.状态机处于初始态,若有按键按下则转到状态确认态,并保存当前按键值;S32.状态机处于确认态时,若无按键按下,触发单键事件,状态机转到初始态并返回按键值,若检测到按键仍按下,则转入按键释放态;S33.状态机处于释放态,若按键抬起则返回初始态、触发双击事件、回送键值,若按键仍按下,启动计时器,当延时大于定义的长按时别时间时转入等待释放态,计时器清零;S34.状态机处于等待释放态,若无键按下,则返回初始态,触发长按事件并回送键值,若检测到按键仍按下,启动计时器,当延时大于已设定的连发间隔时间则触发连发事件,返回初始态,计数器清零。本文档来自技高网...
一种基于状态机的多功能按键检测方法

【技术保护点】
一种基于状态机的新型多功能按键检测方法,其特征在于:按键检测方法包括以下步骤:S1. 对系统配置进行预定义,定义内容包括:系统支持的按键数量、每个按键支持的按键类型、长按识别时间、连发间隔时间和按键端口;S2. 扫描按键端口,获取按键端口值,驱动状态机;S3. 对按键扫描进行定时中断,刷新和驱动状态机,用来按键消抖并且作为时间基准;S4. 对按键类别进行识别,识别按键扫描所获得的按键的事件类型,同时将按键类型和按键值编码。

【技术特征摘要】
1.一种基于状态机的多功能按键检测方法,其特征在于:按键检测方法包括以下步骤:S1.对系统配置进行预定义,定义内容包括:系统支持的按键数量、每个按键支持的按键类型、长按识别时间、连发间隔时间和按键端口;S2.扫描按键端口,获取按键端口值,驱动状态机;S3.对按键扫描进行定时中断,刷新和驱动状态机,用来按键消抖并且作为时间基准;S4.对按键类别进行识别,识别按键扫描所获得的按键的事件类型,同时将按键类型和按键值编码;所述状态机的状态包括初始态、确认态、释放态和等待释放态;所述状态机的事件驱动机制包括以下步骤:S31.状态机处于初始态,若有按...

【专利技术属性】
技术研发人员:徐雷鸣
申请(专利权)人:成都易默生汽车技术有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1