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

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

?? test.c

?? 這是我買uCOS-II第二版本書帶的光盤的資料
?? 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一区二区三区免费野_久草精品视频
国产欧美日韩在线观看| 韩国成人精品a∨在线观看| 日韩 欧美一区二区三区| 国产一区二区毛片| 欧美日韩一区二区在线观看| 日韩免费观看高清完整版| 亚洲精品一二三四区| 激情av综合网| 日韩一区二区在线看| 樱花草国产18久久久久| 成人av免费在线观看| www国产亚洲精品久久麻豆| 天天av天天翘天天综合网色鬼国产| 丁香婷婷综合色啪| 久久麻豆一区二区| 蜜芽一区二区三区| 欧美区视频在线观看| 伊人性伊人情综合网| www.av精品| 国产精品污污网站在线观看 | 欧美tk—视频vk| 亚洲一级二级三级| 91麻豆文化传媒在线观看| 国产婷婷精品av在线| 国产一区二区三区免费播放| 日韩一区二区精品葵司在线 | 午夜不卡av在线| 在线观看不卡一区| 亚洲一区二区三区三| 在线中文字幕一区| 亚洲国产欧美日韩另类综合| 欧美在线一二三四区| 亚洲国产日韩在线一区模特| 日韩欧美国产小视频| 午夜a成v人精品| 欧美一区二区在线看| 蜜桃在线一区二区三区| 精品日韩一区二区三区免费视频| 麻豆精品久久精品色综合| 日韩欧美国产三级电影视频| 国产做a爰片久久毛片| 国产女人18毛片水真多成人如厕 | 欧美高清视频不卡网| 日韩精品乱码av一区二区| 日韩限制级电影在线观看| 久久99久久99小草精品免视看| 精品黑人一区二区三区久久| 国产一区欧美日韩| 国产精品乱码妇女bbbb| 日本韩国一区二区三区视频| 日韩国产在线一| 亚洲自拍欧美精品| 欧美日韩久久一区二区| 麻豆91免费看| 久久久精品人体av艺术| av在线不卡观看免费观看| 亚洲精品高清在线| 欧美成人精品二区三区99精品| 国产999精品久久久久久绿帽| 亚洲精品一二三四区| 日韩午夜小视频| 99久久伊人久久99| 天堂一区二区在线免费观看| 国产丝袜在线精品| 欧美天天综合网| 国产成人aaaa| 午夜亚洲福利老司机| 中文字幕不卡在线| 欧美日韩三级一区| 成人免费视频网站在线观看| 日韩影视精彩在线| 中文字幕乱码久久午夜不卡| 欧美日韩国产a| 高清成人在线观看| 蜜臀久久99精品久久久久宅男| 中文字幕一区日韩精品欧美| 日韩一区二区精品| 一本久久a久久免费精品不卡| 狠狠色丁香久久婷婷综合丁香| 亚洲三级在线免费观看| 精品91自产拍在线观看一区| 欧美综合色免费| 成人免费电影视频| 国精产品一区一区三区mba桃花| 一区二区欧美在线观看| 中文子幕无线码一区tr| 91精品国产综合久久久久久| www.久久久久久久久| 国产一区在线视频| 久久66热偷产精品| 丝袜美腿亚洲综合| 亚洲另类一区二区| 国产欧美日韩三级| xfplay精品久久| 日韩欧美中文一区| 欧洲中文字幕精品| 99热99精品| 国产福利一区二区三区| 美女高潮久久久| 午夜精品成人在线| 亚洲精品一卡二卡| 成人免费一区二区三区视频| 国产偷国产偷精品高清尤物| 欧美变态口味重另类| 欧美一级搡bbbb搡bbbb| 欧美乱熟臀69xxxxxx| 欧美日韩一级大片网址| 色噜噜狠狠成人中文综合| 91丨九色porny丨蝌蚪| av激情亚洲男人天堂| www.欧美精品一二区| 大美女一区二区三区| 成人精品一区二区三区中文字幕| 国产乱码字幕精品高清av| 精品一区二区av| 国产麻豆91精品| 国产91精品在线观看| 国产成人精品网址| 不卡av在线免费观看| 成人禁用看黄a在线| 波波电影院一区二区三区| 不卡av在线免费观看| 色狠狠一区二区| 欧美视频中文字幕| 日韩欧美一级片| 26uuu久久天堂性欧美| 国产精品入口麻豆九色| 国产精品久久久久久久久快鸭| 一区精品在线播放| 亚洲精品国产高清久久伦理二区| 亚洲国产精品影院| 精品在线视频一区| 成人sese在线| 欧美色爱综合网| 欧美电视剧在线看免费| 日本一区二区三区国色天香| 亚洲欧美激情小说另类| 天天做天天摸天天爽国产一区 | 无码av中文一区二区三区桃花岛| 亚洲国产综合在线| 精品中文av资源站在线观看| 日韩欧美一区二区久久婷婷| 日韩欧美电影在线| 亚洲欧洲综合另类| 午夜成人免费电影| 丁香五精品蜜臀久久久久99网站 | 日韩一区二区三区免费看| 亚洲精品一区二区三区蜜桃下载 | 国产精品大尺度| 亚洲成av人片观看| 国产一区二区三区免费播放| 欧美最猛黑人xxxxx猛交| 欧美成人精品高清在线播放| 亚洲你懂的在线视频| 蜜桃视频在线观看一区二区| 99视频超级精品| 日韩欧美高清一区| 亚洲国产综合在线| 成人性视频网站| 欧美一级片在线看| 亚洲免费观看高清完整版在线| 热久久久久久久| 在线一区二区三区四区五区 | 欧美精品一区二区三区蜜桃 | 日韩欧美国产一二三区| 亚洲欧美怡红院| 紧缚奴在线一区二区三区| 99国产精品久久久久久久久久| 日韩视频123| 玉米视频成人免费看| 大尺度一区二区| 精品国内片67194| 天堂蜜桃一区二区三区| 色综合一个色综合| 精品国产乱码久久久久久免费 | 国产一区二区三区四区五区入口| 欧美性高清videossexo| 国产人成亚洲第一网站在线播放 | 美女视频一区二区三区| 欧洲一区二区三区在线| 亚洲视频免费在线| 成人av电影在线| 久久综合中文字幕| 青青国产91久久久久久| 欧美日韩一区二区在线观看| 自拍偷拍亚洲欧美日韩| 成人黄色av电影| 久久久久久久综合色一本| 久久激情五月激情| 51精品视频一区二区三区| 亚洲成在线观看| 欧美日韩一区二区不卡| 有坂深雪av一区二区精品| 一本大道久久a久久精品综合| 亚洲综合色丁香婷婷六月图片| jlzzjlzz欧美大全| 综合久久国产九一剧情麻豆| 99麻豆久久久国产精品免费| 欧美国产一区二区| 97久久精品人人做人人爽50路|