基于μC/OS-II的多窗口显示屏控制器设计
3.2 软件设计
基于上述方案,程序的设计将变得非常简洁。首先进行系统初始化,然后从Flash中读取屏参数,进行参数初始化。接着建立任务Task Control,对各窗口显示任务进行实时管理,它拥有比各窗口显示任务都高的优先级。它每隔1 s对reset标志进行一次查询,如果reset=1,则删除原先建立的各窗口显示任务,从Flash中读取新的窗口个数,然后依此建立新任务,将每个窗口的显示交由单个任务来控制。
下面是TaskControl任务的程序演示:
窗口显示任务用于实现屏幕各窗口的显示。它可根据各窗口显示方式的不同在其相应area区域中进行下一帧数据的运算。在完成1帧数据显示后,调用OSTime DlyHMSM()使当前任务进入等待状态并进行一次任务调度,将系统控制权交给其他处于就绪状态的显示任务,由此完成和窗口显示任务之间的切换。也可以通过调整OSTimeDlyHMSM()的参数来改变各窗口2帧显示信息之间的时间间隔,从而可调整各窗口特技显示的效果,如移动显示的移动速度。下面是其中一个窗口显示任务的程序演示:
4 结论
本设计充分利用了Nios II 32位处理器的高性能和μC/OS-II实时操作系统高效的任务调度算法,实现了单屏幕多窗口显示,显示屏控制变得更加灵活。整个控制系统在1片FPGA芯片上完成,有效降低了系统的成本。
评论