新闻中心

EEPW首页 > 光电显示 > 设计应用 > LED大屏幕异步控制器多窗口显示的设计

LED大屏幕异步控制器多窗口显示的设计

作者:时间:2012-11-22来源:网络收藏
窗口个数

  if(taskNum>0) // 根据窗口数建立窗口显示任务

  OSTaskCreate(task0,(void*)0,task0Stk[TaskStkLength- 1],3);

  if(taskNum>1)

  OSTaskCreate(task1,(void*)0,task1Stk[TaskStkLength- 1],4);

  ...

  while(1){if(reset) goto RESET; //reset 标志为1, 程序复位

  OSTimeDlyHMSM(0,0,1,0);}

  }

  窗口显示任务用于实现各窗口内容的显示。它根据各窗口显示方式的不同在其相应area 区域中进行下一帧数据的运算,然后调用areaToScreen()和screenToCpld()进行显示。在完成一帧数据的显示后, 调用一次OSTimeDlyHMSM()使当前任务进入等待状态同时进行一次任务调度, 将系统控制权交给处于就绪状态的窗口显示任务中优先级最高的那个, 由此完成窗口显示任务之间的切换。我们也可以通过调整OSTimeDlyHMSM()的参数来改变各窗口相临两帧显示信息之间的时间间隔, 从而可调整各窗口特技显示的效果, 比如移动显示的移动速度。下面是其中一个窗口显示任务的程序演示:

  void Task0(void *pdata){

  pdata=pdata;窗口参数初始化;while(1){uint16 i;

  for(i=0;i 总帧数;i++){下一帧数据的运算; // 在area 区域中进行

  areaToScreen(); // 将数据从area 读出写入screen

  screenToCpld(); // 将screen 中相应数据写入显存完成一帧数据的显示OSTimeDlyHMSM(0,0,0,displaySpeed*20); // 任务调度

  }

  }

  }

  5 结束语

  充分利用32位微处理器的高性能和实时操作系统高效的任务调度算法, 实现了单屏幕多窗口的任意位置显示。使得屏幕显示变得更加丰富灵活, 也使得很多以往只能使用同步控制器或者多个的场合可用单块来替代, 从而降低了系统的成本。

  本文作者创新点:实现了 单屏幕多个窗口任意位置的显示, 并且可实现多窗口重叠显示及“画中画”等显示效果。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭