女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子元器件>發光二極管>

任務TaskControl 的程序 - LED大屏幕異步控制器實現方案

2011年11月14日 17:23 《微計算機信息》 作者:王有乾,佘焱,姜建 用戶評論(0
下面是任務TaskControl 的程序演示:

  void TaskControl(void *pdata){

  uint8 taskNum;

  pdata=pdata;

  RESET:

  reset=0; //reset 標志清零

  for(taskNum=3;taskNum<18;taskNum++){ // 刪除原先建立的窗口任務

  OSTaskDEL(taskNum); // 窗口顯示任務優先級從3 開始}// 最多允許設置16 個窗口

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

  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 結束語

   實現了單屏幕多窗口的任意位置顯示。使得屏幕顯示變得更加豐富靈活, 也使得很多以往只能使用同步控制器或者多個異步控制器的場合可用單塊異步控制器來替代, 從而降低了系統的成本。

非常好我支持^.^

(1) 100%

不好我反對

(0) 0%

( 發表人:小蘭 )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?