亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? test.c

?? uCosII 郵箱消息和任務管理
?? C
字號:


#include  "includes.h"

#define  TASK_STK_SIZE                 512              /* 任務棧的大小(# of WORDs)            */
#define  MAX_TASKS                      9       	     /* 最大任務數                          */

/*
*********************************************************************************************************
*                                               VARIABLES
*********************************************************************************************************
*/

OS_STK           TaskStk[MAX_TASKS][TASK_STK_SIZE];     /* 任務堆棧                       */
OS_STK           TaskStartStk[TASK_STK_SIZE];           /*初始任務棧                      */
INT8U            task[9]={1,2,3,4,5,6,7,8,9};           /* 9個任務優先級為 1 到 9         */
int              taskflg[9]={0,0,0,0,0,0,0,0,0};        /* 0:沒有任務 1:活動的任務 2:掛起的任務 */
/*
*********************************************************************************************************
*                                           FUNCTION PROTOTYPES
*********************************************************************************************************
*/

 void Task(void *tid);       /*參數指針的內容為任務id,即任務優先級 */
 void TaskStart(void *data);
 void CreateTask();
 void DeleteTask();
 void SuspendTask();
 void ResumeTask();

/*
*********************************************************************************************************
*                                                MAIN
*********************************************************************************************************
*/

void main (void)
{
    PC_DispClrScr(DISP_FGND_WHITE + DISP_BGND_BLACK);      /* Clear the screen                         */
    OSInit();                                              /* Initialize uC/OS-II                      */
    PC_DOSSaveReturn();                                    /* Save environment to return to DOS        */
    PC_VectSet(uCOS, OSCtxSw);                             /* Install uC/OS-II's context switch vector */

    PC_DispStr(26,  0, "uC/OS-II, The Real-Time Kernel", DISP_FGND_WHITE + DISP_BGND_RED + DISP_BLINK);
    PC_DispStr(30,  2, "Task Management Example", DISP_FGND_WHITE + DISP_BLINK);
    PC_DispStr(10,  4, "Usage:", DISP_FGND_WHITE);
    PC_DispStr(15,  5, "C: To Create   A Task          D: To Delete A Task", DISP_FGND_WHITE);
    PC_DispStr(15,  5, "C",DISP_FGND_YELLOW);
    PC_DispStr(21,  5, "C",DISP_FGND_YELLOW);
    PC_DispStr(46,  5, "D",DISP_FGND_YELLOW);
    PC_DispStr(52,  5, "D",DISP_FGND_YELLOW);
    PC_DispStr(15,  6, "S: To Suspend  A Task          R: To Resume A Task", DISP_FGND_WHITE);
    PC_DispStr(15,  6, "S",DISP_FGND_YELLOW);
    PC_DispStr(21,  6, "S",DISP_FGND_YELLOW);
    PC_DispStr(46,  6, "R",DISP_FGND_YELLOW);
    PC_DispStr(52,  6, "R",DISP_FGND_YELLOW);
    PC_DispStr(10,  8, "MAX TASKS NUMBER: 9", DISP_FGND_WHITE);
    PC_DispStr(28,  8, " 9 ", DISP_FGND_WHITE + DISP_BGND_RED + DISP_BLINK);
    PC_DispStr(28, 26, "<-PRESS 'ESC' TO QUIT->", DISP_FGND_WHITE + DISP_BLINK);

    OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
    OSStart();
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                              STARTUP TASK
*********************************************************************************************************
*/
void TaskStart (void *data)
{
#if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
    OS_CPU_SR  cpu_sr;
#endif

    WORD       key;

    OS_ENTER_CRITICAL();
    PC_VectSet(0x08, OSTickISR);                           /* 設置時鐘                                 */
    PC_SetTickRate(OS_TICKS_PER_SEC);
    OS_EXIT_CRITICAL();

    OSStatInit();                                          /* Initialize uC/OS-II's statistics         */

    for (;;) {
        if (PC_GetKey(&key) == TRUE) {                     /* See if key has been pressed              */
            switch(key){                                   /* 按鍵響應                                 */

            	case 'c':
               case 'C':                                    /* c或者C 創建 */
               	CreateTask();
                  continue;
		         case 'd':                                    /* d或者D 刪除 */
               case 'D':
                  DeleteTask();
                  continue;
               case 's':                                    /* s或者S 掛起 */
               case 'S':
                  SuspendTask();
                  continue;
               case 'r':                                    /* r或者R 喚醒 */
               case 'R':
                  ResumeTask();
                  continue;
            	case 0x1B:
                PC_DOSReturn();                            /* ESC  Return to DOS                       */
            }
        }

        OSTimeDlyHMSM(0, 0, 1, 0);                         /* Wait one second                          */
    }
}

void Task (void* tid)
{
    int i;
    int id =*(int*)tid;    /* 取得任務id */

    for (i=0;i<40;i++) {   /*在屏幕上重復打印任務id */
        if(i==39){
        		i=0;
            PC_DispClrRow(id+13,DISP_BGND_BLACK);  /* 滿40次重新開始打印  */
        }
        PC_DispStr(15, id+13,"Task ", DISP_FGND_WHITE);
        PC_DispChar(20,id+13,id+48, DISP_FGND_WHITE);
        PC_DispChar(22,id+13,':', DISP_FGND_WHITE);
        PC_DispChar(i+24, id+13,id+48, DISP_FGND_WHITE);
        OSTimeDly(10);
    }

}

void CreateTask()     /* 創建任務  */
{
	WORD key;
	PC_DispStr(12,10,"You Choose To Create A Task", DISP_FGND_WHITE);
   PC_DispStr(26,10,"CREATE", DISP_FGND_YELLOW);
   PC_DispStr(12,11,"Input Task ID(1-9)(ESC to Cancel):", DISP_FGND_WHITE);
   for (;;) {
        if (PC_GetKey(&key) == TRUE) {                     /* See if key has been pressed              */
            if(key==0x1B){                                 /* ESC 返回上一級并清除提示信息             */
            	PC_DispClrRow(10,DISP_BGND_BLACK);
               PC_DispClrRow(11,DISP_BGND_BLACK);
            	break;
            }
            if(key>='1'&&key<='9'){                        /* 如果1-9 鍵 先檢查任務是否存在, 若已經存在打印提示信息 */
            	if(taskflg[key-49]!=0){
                  PC_DispClrRow(10,DISP_BGND_BLACK);
               	PC_DispClrRow(11,DISP_BGND_BLACK);
               	PC_DispStr(12,10,"Task Already Exist!", DISP_FGND_YELLOW);
                  break;
               }else{                                      /* 任務不存在,則創建新任務,并打印創建信息 */
               	PC_DispClrRow(10,DISP_BGND_BLACK);
               	PC_DispClrRow(11,DISP_BGND_BLACK);
               	PC_DispStr(12,10,"Create Task:", DISP_FGND_YELLOW);
               	PC_DispChar(26,10,key, DISP_FGND_YELLOW);
               	OSTaskCreate(Task, (void*)&task[key-49], &TaskStk[key-49][TASK_STK_SIZE - 1], task[key-49]);/*創建任務 id為 按鍵數值*/
                  taskflg[key-49]=1;    /* 設置活動任務標志 */
               	break;
               }
            }
        }
        OSTimeDly(50);
   }
}

void DeleteTask()
{
	WORD key;
	PC_DispStr(12,10,"You Choose To DELETE A Task", DISP_FGND_WHITE);
   PC_DispStr(26,10,"DELETE", DISP_FGND_YELLOW);
   PC_DispStr(12,11,"Input Task ID(1-9)(ESC to Cancel):", DISP_FGND_WHITE);
   for (;;) {
        if (PC_GetKey(&key) == TRUE) {                     /* See if key has been pressed              */
            if(key==0x1B){                                  /* ESC 返回上一級并清除提示信息             */
            	PC_DispClrRow(10,DISP_BGND_BLACK);
               PC_DispClrRow(11,DISP_BGND_BLACK);
            	break;
            }
            if(key>='1'&&key<='9'){          /* 如果1-9 鍵 先檢查任務是否存在, 若任務不存在打印提示信息 */
            	if(taskflg[key-49]==0){
               	PC_DispClrRow(10,DISP_BGND_BLACK);
               	PC_DispClrRow(11,DISP_BGND_BLACK);
               	PC_DispStr(12,10,"No Such Task!", DISP_FGND_YELLOW);
                  break;
               }else{                        /* 如果任務存在(無論是活動任務還是掛起任務),刪除任務 */
               	PC_DispClrRow(10,DISP_BGND_BLACK);
               	PC_DispClrRow(11,DISP_BGND_BLACK);
               	PC_DispStr(12,10,"Delete Task:", DISP_FGND_YELLOW);
               	PC_DispChar(26,10,key, DISP_FGND_YELLOW);
               	OSTaskDel(task[key-49]);
                  taskflg[key-49]=0;         /* 刪除任務后任務標志設為0 */
               	PC_DispClrRow(key-35,DISP_BGND_BLACK);
               	break;
               }
            }
        }
        OSTimeDly(50);
   }
}

void SuspendTask()
{
	WORD key;
	PC_DispStr(12,10,"You Choose To SUSPEND A Task", DISP_FGND_WHITE);
   PC_DispStr(26,10,"SUSPEND", DISP_FGND_YELLOW);
   PC_DispStr(12,11,"Input Task ID(1-9)(ESC to Cancel):", DISP_FGND_WHITE);
   for (;;) {
        if (PC_GetKey(&key) == TRUE) {                     /* See if key has been pressed              */
            if(key==0x1B){                                 /* ESC 返回上一級并清除提示信息             */
            	PC_DispClrRow(10,DISP_BGND_BLACK);
               PC_DispClrRow(11,DISP_BGND_BLACK);
            	break;
            }
            if(key>='1'&&key<='9'){                   /* 如果1-9 鍵 檢查是否是活動任務, 若任務不存在或者非活動任務打印提示信息 */
            	if(taskflg[key-49]!=1){
                  PC_DispClrRow(10,DISP_BGND_BLACK);
               	PC_DispClrRow(11,DISP_BGND_BLACK);
               	PC_DispStr(12,10,"Not An Active Task or Task Does NOT Exist!", DISP_FGND_YELLOW);
               	break;
               }else{                                /* 是活動任務,掛起該任務 */
               	PC_DispClrRow(10,DISP_BGND_BLACK);
               	PC_DispClrRow(11,DISP_BGND_BLACK);
               	PC_DispStr(12,10,"Suspend Task:", DISP_FGND_YELLOW);
               	PC_DispChar(26,10,key, DISP_FGND_YELLOW);
               	OSTaskSuspend(task[key-49]);     /*掛起任務 */
                  taskflg[key-49]=2;  /*設置掛起任務標志 */
               	break;
               }

            }
        }
        OSTimeDly(50);
   }
}

void ResumeTask()
{
	WORD key;
	PC_DispStr(12,10,"You Choose To RESUME A Task", DISP_FGND_WHITE);
   PC_DispStr(26,10,"RESUME", DISP_FGND_YELLOW);
   PC_DispStr(12,11,"Input Task ID(1-9)(ESC to Cancel):", DISP_FGND_WHITE);
   for (;;) {
        if (PC_GetKey(&key) == TRUE) {                     /* See if key has been pressed              */
            if(key==0x1B){                                  /* ESC 返回上一級并清除提示信息             */
            	PC_DispClrRow(10,DISP_BGND_BLACK);
               PC_DispClrRow(11,DISP_BGND_BLACK);
            	break;
            }
            if(key>='1'&&key<='9'){                  /* 如果1-9 鍵 檢查是否是掛起的任務,若不是則打印提示信息 */
            	if(taskflg[key-49]!=2){
                  PC_DispClrRow(10,DISP_BGND_BLACK);
               	PC_DispClrRow(11,DISP_BGND_BLACK);
               	PC_DispStr(12,10,"Not A Suspended Task or Task Does NOT Exist!", DISP_FGND_YELLOW);
                  break;
               }else{                               /* 若是掛起的任務則恢復任務到活動狀態 */
               	PC_DispClrRow(10,DISP_BGND_BLACK);
               	PC_DispClrRow(11,DISP_BGND_BLACK);
               	PC_DispStr(12,10,"Resume Task:", DISP_FGND_YELLOW);
               	PC_DispChar(26,10,key, DISP_FGND_YELLOW);
               	OSTaskResume(task[key-49]);       /*恢復任務 */
                  taskflg[key-49]=1;  /*設置任務為活動狀態 */
               	break;
               }
            }
        }
        OSTimeDly(50);
   }
}








?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频在线一区| 中文字幕五月欧美| 欧美最新大片在线看| 粗大黑人巨茎大战欧美成人| 国产高清精品在线| 国产风韵犹存在线视精品| 久久99精品网久久| 国产精品77777| 成人aa视频在线观看| 色婷婷久久久亚洲一区二区三区| 99在线视频精品| 91网站在线播放| 在线观看欧美日本| 欧美精品色综合| 日韩欧美高清一区| 国产日韩欧美精品电影三级在线| 国产精品麻豆欧美日韩ww| 亚洲欧美乱综合| 日韩中文字幕91| 国产精品一色哟哟哟| av成人免费在线观看| 一本久久综合亚洲鲁鲁五月天 | 久久先锋影音av鲁色资源| 国产亚洲一本大道中文在线| 自拍偷拍国产精品| 日韩二区三区四区| 国产精品乡下勾搭老头1| 91精彩视频在线观看| 欧美一区二区三区免费大片| 久久久久久久综合狠狠综合| 综合av第一页| 久久99九九99精品| 一本大道综合伊人精品热热 | 亚洲猫色日本管| 午夜精彩视频在线观看不卡| 国产精品99久久久久久久女警| 色偷偷一区二区三区| 精品国产一区二区精华| 国产精品大尺度| 国内精品第一页| 欧美在线一二三四区| 日本一区二区综合亚洲| 免费成人在线影院| 欧美一级高清大全免费观看| 国产日韩欧美激情| 免费人成精品欧美精品| 99久久久免费精品国产一区二区| 欧美一区二区视频在线观看 | 日本aⅴ亚洲精品中文乱码| 国产91精品一区二区麻豆网站 | 国产欧美精品一区二区色综合| 亚洲成在人线在线播放| 国产suv一区二区三区88区| 91精品国产91久久久久久一区二区| 日本一区二区三区电影| 国产资源精品在线观看| 欧美精品在线一区二区三区| 亚洲欧美日韩系列| 成人国产精品免费观看动漫| 国产无人区一区二区三区| 免费成人结看片| 欧美日韩国产bt| 亚洲图片欧美色图| 欧美性受极品xxxx喷水| 一区二区在线观看免费视频播放 | 欧美三级资源在线| 国产精品国产馆在线真实露脸| 蜜桃精品视频在线| 91精品蜜臀在线一区尤物| 亚洲与欧洲av电影| 欧美视频在线一区二区三区| 亚洲最新在线观看| 欧洲av在线精品| 一区二区三区在线视频观看| 91黄视频在线| 亚洲一区二区三区在线| 欧美午夜影院一区| 日韩**一区毛片| 日韩一区二区精品在线观看| 蜜臀av性久久久久av蜜臀妖精 | 国产精品久久久久久久久免费丝袜 | 欧美精品一区二区三| 久久成人精品无人区| 日韩欧美国产一区二区三区| 奇米色一区二区| 欧美videossexotv100| 国产精品一区二区不卡| 国产日韩欧美综合在线| 丁香五精品蜜臀久久久久99网站| 国产午夜精品理论片a级大结局| 国产精品99久久久久| 亚洲欧美偷拍三级| 欧美日韩一区高清| 奇米影视一区二区三区| 精品国产第一区二区三区观看体验| 国产成人av电影在线| 亚洲欧美日韩国产中文在线| 777色狠狠一区二区三区| 狠狠色综合日日| 中文字幕亚洲在| 欧美日韩电影在线播放| youjizz久久| 亚洲高清免费观看| 久久久国际精品| 色久优优欧美色久优优| 麻豆成人免费电影| 亚洲欧美日韩成人高清在线一区| 欧美丰满一区二区免费视频| 国产成+人+日韩+欧美+亚洲| 一区二区免费在线| 久久久午夜精品理论片中文字幕| 色综合久久天天综合网| 极品少妇xxxx精品少妇| 一区二区欧美在线观看| 欧美精品一区二区三区高清aⅴ| 91成人国产精品| 国产成人av一区| 五月天一区二区| 亚洲欧洲性图库| 久久综合九色欧美综合狠狠 | 精品99久久久久久| 色婷婷香蕉在线一区二区| 精品一区二区三区免费毛片爱| 玉米视频成人免费看| 国产欧美日本一区视频| 91精品国模一区二区三区| av资源网一区| 国产一区二区三区四区五区美女| 一区二区三区精品| 亚洲日本免费电影| 国产色产综合产在线视频| 欧美一区二区视频在线观看2020| 91免费看`日韩一区二区| 韩国欧美国产一区| 日韩电影免费一区| 亚洲激情中文1区| 中文字幕中文在线不卡住| 国产亚洲欧美日韩日本| 久久午夜羞羞影院免费观看| 欧美一级免费大片| 欧美日韩免费观看一区二区三区 | 国产xxx精品视频大全| 蜜臀av性久久久久蜜臀aⅴ| 亚洲电影第三页| 亚洲综合清纯丝袜自拍| 国产精品久久久久久久久久久免费看 | 色婷婷久久一区二区三区麻豆| 成人午夜在线视频| 岛国一区二区三区| 懂色av一区二区三区免费看| 精品制服美女丁香| 国产美女主播视频一区| 国产91精品欧美| 成人免费福利片| 91老司机福利 在线| 欧美性淫爽ww久久久久无| 欧美亚洲国产bt| 欧美日韩日日骚| 欧美一区二区三区不卡| 日韩欧美高清dvd碟片| 精品久久久久久综合日本欧美| 欧美电影免费观看高清完整版在| 精品国产91久久久久久久妲己| 精品国产污污免费网站入口| 日韩欧美另类在线| 欧美精品一区二区蜜臀亚洲| 国产精品美女一区二区三区| 中文字幕在线不卡国产视频| 亚洲欧美在线视频观看| 亚洲免费av网站| 亚洲成人免费av| 欧美日韩国产免费| 欧美一区欧美二区| 国产清纯在线一区二区www| 自拍视频在线观看一区二区| 夜夜精品浪潮av一区二区三区| 亚洲在线观看免费| 美女国产一区二区三区| www.成人在线| 欧美精品免费视频| 国产日韩成人精品| 亚洲香肠在线观看| 精品一区二区三区香蕉蜜桃 | av成人老司机| 在线成人小视频| 日本一区二区视频在线观看| 亚洲欧美一区二区三区国产精品| 秋霞av亚洲一区二区三| 91小视频免费看| 欧美一级片在线观看| 亚洲品质自拍视频网站| 国产在线精品不卡| 欧美群妇大交群中文字幕| 久久久久久**毛片大全| 天涯成人国产亚洲精品一区av| 国产.欧美.日韩| 欧美一区二区精品久久911| 日韩理论在线观看| 国产一区二区三区美女| 欧美人动与zoxxxx乱|