微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于μC/OS2II的LED显示屏控制器

基于μC/OS2II的LED显示屏控制器

时间:08-14 来源:21ic 点击:

理各窗口的数据信息,将转换完的数据送往各窗口在screen区域中所对应地址的存取空间,最后将screen中的数据写入地址对应的显存。

3.2 读取CF卡软件设计

  任务1负责将CF卡上的数据读取到SDRAM中,供其他任务使用。在程序中使用了1个指针(3pwmdata),为数据文件在SDRAM中分配空间。在文件系统初始化时,首先调用CF卡初始化函数IDE_initialize()判断CF卡是否存在。若存在,则读取文件系统的基本信息。通过调用函数FS_SearchFile(char3FName,FS_TFile3R,unsignedchardir)来查找需要读取的文件是否存在,若存在,则通过指针(3pwmdata)为数据文件在SDRAM中分配一个缓冲区。读取时,每次读取一个扇区,直到将数据全部读取到SDRAM中。

  部分程序源码如下:

3.3 软件总体设计

  基于以上数据结构,软件设计的流程如图5所示。系统首先进行初始化操作,然后从Flash中读取显示屏参数,进行参数初始化。接着建立任务TaskControl(),其优先级比各窗口显示任务都要高,主要用于实时管理各窗口显示任务,每个窗口的显示由单个窗口显示任务来控制。

窗口显示任务根据各窗口显示方式的不同,在其对应的part存储区域进行下一帧数据的处理运算,然后调用窗口显示子任务进行显示。在完成一帧数据的显示后,调用一次OSTimeDlyHMSM()使当前任务进入等待状态,下一个优先级最高并进入了就绪态的任务,立刻被赋予了CPU的控制权,由此完成窗口显示任务之间的切换。任务TaskControl()定期查询Reset是否有效,若有效则删除原来建立的任务,重新读取窗口数,建立新任务,启用各个窗口显示任务Task_i。

  任务TaskControl的伪程序段描述如下:


  4 结语

  本设计充分利用了NiosII32位处理器的高性能和μC/OS2II实时操作系统高效的任务调度算法,实现了单屏幕多窗口显示,且显示屏控制变得更加灵活。整个控制系统在1片FPGA芯片上完成,有效地降低了系统的成本。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top