新聞中心

EEPW首頁(yè) > 光電顯示 > 設(shè)計(jì)應(yīng)用 > LED顯示屏異步控制器多窗口顯示的設(shè)計(jì)

LED顯示屏異步控制器多窗口顯示的設(shè)計(jì)

作者: 時(shí)間:2011-11-06 來(lái)源:網(wǎng)絡(luò) 收藏
skDel(taskNum); // 窗口顯示任務(wù)優(yōu)先級(jí)從3 開(kāi)始}// 最多允許設(shè)置16 個(gè)窗口

  taskNum=flashReadWord(AREA_NUM_ADDR);// 從FLASH中讀取屏幕窗口個(gè)數(shù)

  if(taskNum>0) // 根據(jù)窗口數(shù)建立窗口顯示任務(wù)

  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 標(biāo)志為1, 程序復(fù)位

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

  }

  窗口顯示任務(wù)用于實(shí)現(xiàn)各窗口內(nèi)容的顯示。它根據(jù)各窗口顯示方式的不同在其相應(yīng)area 區(qū)域中進(jìn)行下一幀數(shù)據(jù)的運(yùn)算,然后調(diào)用areaToScreen()和screenToCpld()進(jìn)行顯示。在完成一幀數(shù)據(jù)的顯示后, 調(diào)用一次OSTimeDlyHMSM()使當(dāng)前任務(wù)進(jìn)入等待狀態(tài)同時(shí)進(jìn)行一次任務(wù)調(diào)度, 將系統(tǒng)控制權(quán)交給處于就緒狀態(tài)的窗口顯示任務(wù)中優(yōu)先級(jí)最高的那個(gè), 由此完成窗口顯示任務(wù)之間的切換。我們也可以通過(guò)調(diào)整OSTimeDlyHMSM()的參數(shù)來(lái)改變各窗口相臨兩幀顯示信息之間的時(shí)間間隔, 從而可調(diào)整各窗口特技顯示的效果, 比如移動(dòng)顯示的移動(dòng)速度。下面是其中一個(gè)窗口顯示任務(wù)的程序演示:

  void Task0(void *pdata){

  pdata=pdata;窗口參數(shù)初始化;while(1){uint16 i;

  for(i=0;i 總幀數(shù);i++){下一幀數(shù)據(jù)的運(yùn)算; // 在area 區(qū)域中進(jìn)行

  areaToScreen(); // 將數(shù)據(jù)從area 讀出寫(xiě)入screen

  screenToCpld(); // 將screen 中相應(yīng)數(shù)據(jù)寫(xiě)入顯存完成一幀數(shù)據(jù)的顯示OSTimeDlyHMSM(0,0,0,displaySpeed*20); // 任務(wù)調(diào)度

  }

  }

  }

  5 結(jié)束語(yǔ)

  充分利用32位微處理器的高性能和實(shí)時(shí)操作系統(tǒng)高效的任務(wù)調(diào)度算法, 實(shí)現(xiàn)了單屏幕多窗口的任意位置顯示。使得屏幕顯示變得更加豐富靈活, 也使得很多以往只能使用同步控制器或者多個(gè)的場(chǎng)合可用單塊來(lái)替代, 從而降低了系統(tǒng)的成本。

  本文作者創(chuàng)新點(diǎn):實(shí)現(xiàn)了 大屏幕單屏幕多個(gè)窗口任意位置的顯示, 并且可實(shí)現(xiàn)多窗口重疊顯示及“畫(huà)中畫(huà)”等顯示效果。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: LED 顯示屏 異步控制器

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉