实现遥控按键释放消息的方法 【技术领域】
本发明涉及一种电视机的应用领域,尤其涉及一种实现遥控按键释放按键消息的方法。
背景技术
目前在市场上流行的电视机或者其他显示终端设备的遥控器,其发送脉冲数据一般只包含遥控码的相关信息,并不包含按键的什么时刻释放的准确消息;而在电视机或其他设备的遥控按键处理程序中,有时需要对遥控按键释放进行处理。如:在连续按键换频道时,需要知道按键精确的释放时刻,才进行相应的切换频道处理,如果没有精确的释放消息,在这类问题上处理会增加难度,很难保证操作响应的实时性,并且,在对于用户一直按键即连续按键时,传统的按键相应过程比较繁琐,需要反复的读写存储器。传统上对于一次按键的处理过程(如:音量+)主要流程如下:1.从存储器读出当前值,如:音量值;2.程序调整当前值,如:音量值加一;3.根据调整值,设置功能寄存器,如:将音量值写入控制寄存器;4.将调整好的值存入存储器中,以便下次使用时读出,如:将调整好的音量值写入存储器中。可以看出,传统上在对于连续按键处理时,总要循环该过程,这使得程序不断的对存储器读出与写入,从而增加按键相应时间,减少存储设备寿命。总之,遥控消息中缺少按键释放消息,不仅给开发过程带来很多不便,也影响设备的使用寿命。
【发明内容】
本发明的目的是提供一种实现遥控按键释放消息的方法,要解决的技术问题是减少对存储设备的读写次数、延长存储设备的寿命、缩短按键响应时间,使处理按键响应过程更具效率。
为解决上述技术问题,本发明采用以下技术方案:一种实现遥控按键释放消息的方法,包括以下步骤:(1)用户进行一次按键操作,遥控器发送该按键码值相应的红外信号,显示器终端对接收到的红外信号数据进行解码,解出相应的按键码值;(2)显示器终端记录本次按键码和按键的时间,将按键码加入显示器终端的存储器中的按键码队列;(3)显示器终端检测到下一次按键,判断本次按键是否与上次按键相同,如果相同则进入下一步;如果不相同,在按键码队列中加入代表按键释放消息的虚拟按键码,队列中的位置排在上次按键码之后,并进入步骤六;(4)显示器终端判断本次按键与上次按键时间间隔是否大于设定值;(5)如果大于设定值,表明用户有释放按键的操作,显示器终端在按键码队列中加入代表按键释放消息的虚拟按键码,队列中的位置排在上次按键码之后;如果小于设定值,则表明用户并没有释放按键,显示器终端解码程序将本次按键码加入按键码队列中,队列中的位置排在上次按键码之后;(6)用户结束遥控按键,显示器终端完成遥控按键的一次解码过程。
本发明的显示器终端通过定时器记录一次按键时间。
本发明的一次按键时间为从开始按下按键到松手释放按键的时间。
本发明的按键时间间隔的设定用于判定本次按键与上次按键是否是连续按键。
本发明的判定是否为连续按键的时间间隔的设置值为150-500ms。
本发明的显示器终端接收到按键释放消息时,调整显示器终端控制寄存器。
本发明的显示器终端接收到按键释放消息时,根据上一次相应的按键码,向存储器写入相应功能完成后的数据值。
本发明的虚拟按键码用来表示按键释放消息,显示器终端在取得该消息时对按键释放进行相应的处理。
本发明与现有技术相比,在不改变硬件的基础上,在解码过程增加代表按键释放的虚拟按键码,开发人员可以很容易的得到按键的释放消息,并在此时作出按键相应的及时处理,减少对存储设备的读写次数,进而缩短按键响应时间。
【附图说明】
图1为本发明的流程图。
【具体实施方式】
下面结合附图和实施例对本发明作进一步的描述。
本发明实现遥控按键释放消息的方法,包括以下步骤:
如图1所示,为本发明地流程框图,其具体流程如下:(1)用户进行一次按键操作,遥控器发送该按键码值相应的红外信号,显示器终端对接收到的红外脉冲电平数据进行解码,解出相应的按键码值;(2)显示器终端记录本次按键码和按键的时间,将按键码加入显示器终端的存储器中的按键码队列;(3)显示器终端检测到下一次按键,判断本次按键是否与上次按键相同,如果相同则进入下一步;如果不相同,在按键码队列中加入代表按键释放消息的虚拟按键码,队列中的位置排在上次按键码之后,并进入步骤六;(4)显示器终端判断本次按键与上次按键时间间隔是否大于设定值,该值用于判定本次按键与上次按键是否是连续按键;(5)如果大于设定值,表明用户有释放按键的操作,显示器终端在按键码队列中加入代表按键释放消息的虚拟按键码,队列中的位置排在上次按键码之后;如果小于设定值,则表明用户并没有释放按键,显示器终端解码程序将本次按键码加入按键码队列中,队列中的位置排在上次按键码之后;(6)用户结束遥控按键,显示器终端完成遥控按键的一次解码过程。
本发明的显示器终端通过定时器记录一次按键时间。
本发明的一次按键时间为从开始按下按键到松手释放按键的时间,按键时间间隔的设定用于判定本次按键与上次按键是否是连续按键。
本发明的判定是否是连续按键的按键时间间隔的设置值150-500ms。
本发明的显示器终端接收到按键释放消息时,调整显示器终端控制寄存器。
本发明的显示器终端接收到按键释放消息时,根据上一次相应的按键码,向存储器写入相应功能完成后的数据值。
本发明的虚拟按键码用来表示按键释放消息,显示器终端在取得该消息时对按键释放进行相应的处理。
本发明的按键处理过程由于按键解码过程中包含按键释放消息,对于某一具体功能(如,音量+)的按键处理过程也要对按键码消息和按键释放消息作出不同的相应处理:
1.在收到按键码消息时,调整控制寄存器,完成功能;如:收到按键音量+的时候,调整声音控制寄存器,控制声音输出大小。
2.在收到按键释放消息时,根据上一次相应的按键码,来向存储器写入相应功能完成后需要存储的数据值;如:收到按键音量+后,又收到按键释放消息,在该按键释放消息处理过程中,向存储器中写入的最终需保存的音量值。
可以看出,当用户按着某一按键不动时(如:音量+),最终调整的功能数据值,只向存储器中写入一次。即只有按键释放时,才存储一次,不必每次按键响应时都需要存储数据。这样大大的减少了按键响应时间,减少了存储器读写次数,有效延长了存储器的寿命。
本发明采用康佳集团生产的LC55FT68AC型号电视机,用于电视机遥控器解码的MCU采用型号为P89LPC925的微控制器。