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

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

?? test.c

?? 《嵌入式實時操作系統μC/OS-Ⅱ》的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:

/*$PAGE*/
/*
*********************************************************************************************************
*                                             CREATE TASKS
*********************************************************************************************************
*/

static  void  TaskStartCreateTasks (void)
{
    OSTaskCreateExt(TaskClk,
                   (void *)0,
                   &TaskClkStk[TASK_STK_SIZE - 1],
                   TASK_CLK_PRIO,
                   TASK_CLK_ID,
                   &TaskClkStk[0],
                   TASK_STK_SIZE,
                   (void *)0,
                   OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);

    OSTaskCreateExt(Task1,
                   (void *)0,
                   &Task1Stk[TASK_STK_SIZE - 1],
                   TASK_1_PRIO,
                   TASK_1_ID,
                   &Task1Stk[0],
                   TASK_STK_SIZE,
                   (void *)0,
                   OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);

    OSTaskCreateExt(Task2,
                   (void *)0,
                   &Task2Stk[TASK_STK_SIZE - 1],
                   TASK_2_PRIO,
                   TASK_2_ID,
                   &Task2Stk[0],
                   TASK_STK_SIZE,
                   (void *)0,
                   OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);

    OSTaskCreateExt(Task3,
                   (void *)0,
                   &Task3Stk[TASK_STK_SIZE - 1],
                   TASK_3_PRIO,
                   TASK_3_ID,
                   &Task3Stk[0],
                   TASK_STK_SIZE,
                   (void *)0,
                   OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);

    OSTaskCreateExt(Task4,
                   (void *)0,
                   &Task4Stk[TASK_STK_SIZE-1],
                   TASK_4_PRIO,
                   TASK_4_ID,
                   &Task4Stk[0],
                   TASK_STK_SIZE,
                   (void *)0,
                   OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);

    OSTaskCreateExt(Task5,
                   (void *)0,
                   &Task5Stk[TASK_STK_SIZE-1],
                   TASK_5_PRIO,
                   TASK_5_ID,
                   &Task5Stk[0],
                   TASK_STK_SIZE,
                   (void *)0,
                   OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                               TASK #1
*
* Description: This task executes every 100 mS and measures the time it task to perform stack checking
*              for each of the 5 application tasks.  Also, this task displays the statistics related to
*              each task's stack usage.
*********************************************************************************************************
*/

void  Task1 (void *pdata)
{
    INT8U       err;
    OS_STK_DATA data;                       /* Storage for task stack data                             */
    INT16U      time;                       /* Execution time (in uS)                                  */
    INT8U       i;
    char        s[80];


    pdata = pdata;
    for (;;) {
        for (i = 0; i < 7; i++) {
            PC_ElapsedStart();
            err  = OSTaskStkChk(TASK_START_PRIO + i, &data);
            time = PC_ElapsedStop();
            if (err == OS_NO_ERR) {
                sprintf(s, "%4ld        %4ld        %4ld        %6d",
                        data.OSFree + data.OSUsed,
                        data.OSFree,
                        data.OSUsed,
                        time);
                PC_DispStr(19, 12 + i, s, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
            }
        }
        OSTimeDlyHMSM(0, 0, 0, 100);                       /* Delay for 100 mS                         */
    }
}
/*$PAGE*/
/*
*********************************************************************************************************
*                                               TASK #2
*
* Description: This task displays a clockwise rotating wheel on the screen.
*********************************************************************************************************
*/

void  Task2 (void *data)
{
    data = data;
    for (;;) {
        PC_DispChar(70, 15, '|',  DISP_FGND_YELLOW + DISP_BGND_BLUE);
        OSTimeDly(10);
        PC_DispChar(70, 15, '/',  DISP_FGND_YELLOW + DISP_BGND_BLUE);
        OSTimeDly(10);
        PC_DispChar(70, 15, '-',  DISP_FGND_YELLOW + DISP_BGND_BLUE);
        OSTimeDly(10);
        PC_DispChar(70, 15, '\\', DISP_FGND_YELLOW + DISP_BGND_BLUE);
        OSTimeDly(10);
    }
}
/*$PAGE*/
/*
*********************************************************************************************************
*                                               TASK #3
*
* Description: This task displays a counter-clockwise rotating wheel on the screen.
*
* Note(s)    : I allocated 500 bytes of storage on the stack to artificially 'eat' up stack space.
*********************************************************************************************************
*/

void  Task3 (void *data)
{
    char    dummy[500];
    INT16U  i;


    data = data;
    for (i = 0; i < 499; i++) {        /* Use up the stack with 'junk'                                 */
        dummy[i] = '?';
    }
    for (;;) {
        PC_DispChar(70, 16, '|',  DISP_FGND_YELLOW + DISP_BGND_BLUE);
        OSTimeDly(20);
        PC_DispChar(70, 16, '\\', DISP_FGND_YELLOW + DISP_BGND_BLUE);
        OSTimeDly(20);
        PC_DispChar(70, 16, '-',  DISP_FGND_YELLOW + DISP_BGND_BLUE);
        OSTimeDly(20);
        PC_DispChar(70, 16, '/',  DISP_FGND_YELLOW + DISP_BGND_BLUE);
        OSTimeDly(20);
    }
}
/*$PAGE*/
/*
*********************************************************************************************************
*                                               TASK #4
*
* Description: This task sends a message to Task #5.  The message consist of a character that needs to
*              be displayed by Task #5.  This task then waits for an acknowledgement from Task #5
*              indicating that the message has been displayed.
*********************************************************************************************************
*/

void  Task4 (void *data)
{
    char   txmsg;
    INT8U  err;


    data  = data;
    txmsg = 'A';
    for (;;) {
        OSMboxPost(TxMbox, (void *)&txmsg);      /* Send message to Task #5                            */
        OSMboxPend(AckMbox, 0, &err);            /* Wait for acknowledgement from Task #5              */
        txmsg++;                                 /* Next message to send                               */
        if (txmsg == 'Z') {
            txmsg = 'A';                         /* Start new series of messages                       */
        }
    }
}
/*$PAGE*/
/*
*********************************************************************************************************
*                                               TASK #5
*
* Description: This task displays messages sent by Task #4.  When the message is displayed, Task #5
*              acknowledges Task #4.
*********************************************************************************************************
*/

void  Task5 (void *data)
{
    char  *rxmsg;
    INT8U  err;


    data = data;
    for (;;) {
        rxmsg = (char *)OSMboxPend(TxMbox, 0, &err);                  /* Wait for message from Task #4 */
        PC_DispChar(70, 18, *rxmsg, DISP_FGND_YELLOW + DISP_BGND_BLUE);
        OSTimeDlyHMSM(0, 0, 1, 0);                                    /* Wait 1 second                 */
        OSMboxPost(AckMbox, (void *)1);                               /* Acknowledge reception of msg  */
    }
}
/*$PAGE*/
/*
*********************************************************************************************************
*                                               CLOCK TASK
*********************************************************************************************************
*/

void  TaskClk (void *data)
{
    char s[40];


    data = data;
    for (;;) {
        PC_GetDateTime(s);
        PC_DispStr(60, 23, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);
        OSTimeDly(OS_TICKS_PER_SEC);
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人网在线播放| 国内外成人在线| 国产精品女同互慰在线看| 欧美一区二区三区视频在线观看| 97精品电影院| 色综合天天综合在线视频| 国产98色在线|日韩| 国产99久久久久| 成人影视亚洲图片在线| 国产乱人伦偷精品视频免下载| 六月婷婷色综合| 欧美96一区二区免费视频| 舔着乳尖日韩一区| 久久99蜜桃精品| 国产在线精品一区二区三区不卡| 激情另类小说区图片区视频区| 男男gaygay亚洲| 黑人巨大精品欧美一区| 国产福利一区在线| 床上的激情91.| 91看片淫黄大片一级在线观看| 色婷婷精品久久二区二区蜜臂av| 91麻豆免费视频| 欧美色中文字幕| 欧美一级欧美三级| 久久精品亚洲国产奇米99| 欧美国产欧美亚州国产日韩mv天天看完整| 久久在线免费观看| 中文字幕亚洲不卡| 亚洲综合激情另类小说区| 日本一区中文字幕| 国产高清久久久| 日本精品一级二级| 日韩欧美卡一卡二| 国产精品国产三级国产aⅴ入口 | 亚洲香肠在线观看| 日韩av一区二区三区四区| 国产尤物一区二区在线| 成人午夜伦理影院| 欧美日韩精品福利| 久久久午夜电影| 亚洲最大成人网4388xx| 人人超碰91尤物精品国产| 成人高清免费在线播放| 67194成人在线观看| 久久久久久久久久久久久夜| 亚洲欧美激情小说另类| 久草中文综合在线| 色猫猫国产区一区二在线视频| 欧美成人精品福利| 亚洲愉拍自拍另类高清精品| 国产一区二区在线电影| 欧美揉bbbbb揉bbbbb| 国产嫩草影院久久久久| 石原莉奈在线亚洲二区| av在线播放成人| 精品国产伦一区二区三区观看方式 | 久久国产尿小便嘘嘘| 91看片淫黄大片一级在线观看| 日韩欧美三级在线| 亚洲成av人片在线| 99精品国产99久久久久久白柏| 日韩精品专区在线影院观看 | 成人中文字幕合集| 欧美成人性福生活免费看| 亚洲国产精品天堂| 91捆绑美女网站| 国产日韩欧美a| 蜜臀久久99精品久久久久久9| 欧美中文字幕一二三区视频| 中文字幕免费一区| 国产精品一品视频| 亚洲精品一区在线观看| 男人的j进女人的j一区| 欧美日韩免费不卡视频一区二区三区| 中文字幕一区不卡| 99riav一区二区三区| 国产日产精品一区| 国产剧情在线观看一区二区| 欧美一级在线免费| 美国欧美日韩国产在线播放| 欧美精品一二三| 婷婷中文字幕一区三区| 欧美一a一片一级一片| 一区二区三区四区国产精品| 91网站在线播放| 一区在线播放视频| 色综合久久中文综合久久牛| 国产精品久久久久影视| 成人开心网精品视频| 国产精品欧美久久久久一区二区| 国产福利不卡视频| 337p粉嫩大胆噜噜噜噜噜91av| 久久国内精品自在自线400部| 日韩欧美激情一区| 国产一区二区三区美女| 国产三级久久久| jlzzjlzz亚洲日本少妇| 亚洲婷婷综合色高清在线| 色欧美片视频在线观看| 亚洲一级片在线观看| 这里只有精品视频在线观看| 麻豆中文一区二区| 国产亚洲1区2区3区| 成人18视频在线播放| 又紧又大又爽精品一区二区| 欧美三级电影在线观看| 日本vs亚洲vs韩国一区三区二区 | 欧美一区二区三区四区五区| 狠狠色丁香婷综合久久| 国产精品久久99| 欧美日韩成人综合天天影院| 精品一区二区三区日韩| 国产精品久久久久久久久免费相片 | 日本欧美一区二区三区| 精品欧美乱码久久久久久| 国产成人免费视| 亚洲一区影音先锋| 久久久99精品久久| 欧美视频在线观看一区| 国产一区二区三区黄视频| 亚洲免费看黄网站| 精品久久久久av影院 | 亚洲视频一二三| 欧美成人女星排行榜| 91在线视频官网| 精品一区二区三区免费视频| 国产精品电影院| 欧美α欧美αv大片| 在线精品观看国产| 国产成人8x视频一区二区| 亚洲一区二区三区国产| 国产日韩精品一区二区三区在线| 欧美色网站导航| av在线不卡免费看| 国产一区二区h| 日韩精品1区2区3区| 亚洲免费在线观看| 欧美激情一区二区| 精品入口麻豆88视频| 欧美日韩国产高清一区二区| 不卡电影免费在线播放一区| 青青国产91久久久久久| 亚洲观看高清完整版在线观看| 中文字幕高清不卡| 久久久久久夜精品精品免费| 欧美日韩精品一区视频| 一本色道久久综合精品竹菊| 岛国精品在线观看| 国产精品一卡二| 老司机午夜精品99久久| 午夜a成v人精品| 亚洲v日本v欧美v久久精品| 亚洲国产wwwccc36天堂| 亚洲欧洲精品一区二区三区 | 国产v综合v亚洲欧| 激情文学综合网| 精品综合久久久久久8888| 美女尤物国产一区| 精久久久久久久久久久| 老司机免费视频一区二区| 日韩中文字幕亚洲一区二区va在线 | 欧美丰满美乳xxx高潮www| 欧洲av在线精品| 在线观看日产精品| 欧美系列一区二区| 欧美肥妇毛茸茸| 7777精品伊人久久久大香线蕉超级流畅| 欧美性一区二区| 欧美色综合影院| 91精品国产aⅴ一区二区| 欧美一区二区三区婷婷月色| 欧美刺激脚交jootjob| 久久亚区不卡日本| 久久精品人人爽人人爽| 中文一区二区在线观看| 亚洲色图在线播放| 一区二区三区欧美亚洲| 香蕉影视欧美成人| 美女在线一区二区| 成人综合婷婷国产精品久久蜜臀| 99re在线视频这里只有精品| 91女人视频在线观看| 欧美视频完全免费看| 日韩欧美电影在线| 国产精品色呦呦| 一区二区三区精密机械公司| 天天色天天爱天天射综合| 免费成人av在线| 成人一级黄色片| 欧美日韩一级大片网址| 日韩欧美国产精品| 亚洲视频一区在线观看| 亚洲成人动漫在线观看| 国产一区二区中文字幕| 一本久道中文字幕精品亚洲嫩| 欧美久久一二区| 国产精品欧美一区喷水| 亚洲第一福利一区| 国产98色在线|日韩|