新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 怀宁县| 大理市| 中牟县| 澄城县| 静安区| 浪卡子县| 沂水县| 铜梁县| 临夏县| 朝阳区| 灵寿县| 莲花县| 宁乡县| 武强县| 博野县| 外汇| 沿河| 银川市| 芒康县| 洞口县| 翁源县| 淮滨县| 鄂托克前旗| 电白县| 松阳县| 怀集县| 永清县| 黔江区| 运城市| 上林县| 沁水县| 惠州市| 刚察县| 泰来县| 宜昌市| 桐梓县| 韩城市| 安塞县| 黔西| 长乐市| 昌乐县|