首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于μC/OS-II的显示控制系统开发
来源:本站整理  作者:佚名  2009-12-28 12:24:20




3 LCD多级菜单显示
    对于多级菜单的编写,控制关系比较复杂,特别是对于不同的界面,人机交互的内容一般都不相同。所以在操作系统实现时,一般把每一级菜单的实现都作为一个任务分别设计。这样思路清晰,不容易出现问题,而且方便删减和增加菜单项,也便于程序的维护和更新。主菜单任务循环体内程序如下:


    程序说明如下:
    ①在任务开始时判断系统模式SystemMode是否为主菜单模式SysMode_MainMenu。如果不是,那么就需要把主菜单显示任务挂起,直到从其他任务返回。
    ②等待按键信号量OSKeySem,根据用户的按键执行相应的操作,RfreshTime是菜单的刷新时间。信号量等待函数在RfreshTime时间内等待,如果等待时间到了按键还没有操作,那么它继续执行下面的程序,err变量会返回错误的数值。
    ③如果②中的err返回没有错误,说明在刷新时间内发生了按键中断,那么进入按键的操作处理程序。
    ④根据键值变量KeyNumber进行相应的操作,例如确定按键的处理、返回按键的处理等。
    ⑤假如是确定键KEY_OK按下,那么首先把系统子菜单的编号SubMenuNumber赋给SystemMode变量,并进行相应的初始化操作。
    ⑥例如是XXXX子菜单,那么在初始化完成后发送信号量OSSemPost(OSDisXXXXSem)。其中,OSDisXXXXSem是子菜单XXXX的显示信号量。
    ⑦目的是调用主菜单显示函数。之所以再次进行判断,是因为在⑥中发送信号量要进行系统调度。如果子系统任务优先级比主菜单高,主菜单就会被挂起而去执行子菜单,在子菜单执行间隙会重新调度回来进行主菜单显示,那么就造成显示错误。
    子菜单显示的任务流程和主菜单类似。在按返回键时发送启动主菜单的信号量OSSemPost(OSDisMain-MenuSem),系统就会重新返回到主菜单。

结 语
    本文对μC/OS-II操作系统下的中断按键消抖处理及LCD多级菜单显示方法进行了研究,并提出了一种简单、可靠性高、维护方便的实现方案。该方法已经应用于某产品的开发设计中,效果较好,运行稳定可靠。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:8,957.03100 毫秒