新闻中心

EEPW首页>光电显示>设计应用> Nios II的LlED显示屏控制器设计

Nios II的LlED显示屏控制器设计

作者: 时间:2010-04-01 来源:网络 收藏


3.1.2 缓存数据的组织
若要进行特技效果显示,则当前显示的数据帧和下一个数据帧存在着某种变换关系。由于CPU只能对显存进行写操作,所以需在缓存中划分出一块大小和显存相等、地址一一对应的区域screen,用于存储当前显示的数据帧信息。如果各窗口之间存在重叠现象,且特技数据处理运算直接在screen区域进行,则窗口重叠部分信息可能发生混乱。故在缓存中再为每一个窗口划分出一块存取空间(part 1,part 2,…,part n),用于存储本窗口显示的前一帧数据信息。在特技数据处理运算时,先在part区域处理各窗口的数据信息,将转换完的数据送往各窗口在screen区域中所对应地址的存取空间,最后将screen中的数据写入地址对应的显存。
3.2 读取CF卡软件
任务1负责将CF卡上的数据读取到SDRAM中,供其他任务使用。在程序中使用了1个指针(*pwmdata),为数据文件在SDRAM中分配空间。在文件系统初始化时,首先调用CF卡初始化函数IDE_initialize()判断CF卡是否存在。若存在,则读取文件系统的基本信息。通过调用函数FS_SearchFile(char*FName,FS_TFile*R,unsigned char dir)来查找需要读取的文件是否存在,若存在,则通过指针(*pwmdata)为数据文件在SDRAM中分配一个缓冲区。读取时,每次读取一个扇区,直到将数据全部读取到sDRAM中。
部分程序源码如下:


3.3软件总体
基于以上数据结构,软件的流程如图5所示。系统首先进行初始化操作,然后从Flash中读取参数,进行参数初始化。接着建立任务TaskControt(),其优先级比各窗口显示任务都要高,主要用于实时管理各窗口显示任务,每个窗口的显示由单个窗口显示任务来控制。窗口显示任务根据各窗口显示方式的不同,在其对应的part存储区域进行下一帧数据的处理运算,然后调用窗口显示子任务进行显示。在完成一帧数据的显示后,调用一次OSTimeDlyHMSM()使当前任务进入等待状态,下一个优先级最高并进入了就绪态的任务,立刻被赋予了CPU的控制权,由此完成窗口显示任务之间的切换。任务TaskControl()定期查询Reset是否有效,若有效则删除原来建立的任务,重新读取窗口数,建立新任务,启用各个窗口显示任务Task_i。



评论


相关推荐

技术专区

关闭