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

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

?? test.c

?? DMDD的嵌入式系統構件源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
*********************************************************************************************************
*                                    Embedded Systems Building Blocks
*                                 Complete and Ready-to-Use Modules in C
*
*                            (c) Copyright 1999, Jean J. Labrosse, Weston, FL
*                                           All Rights Reserved
*
* Filename   : TEST.C
* Programmer : Jean J. Labrosse
*********************************************************************************************************
*/

#include "includes.h"

/*
*********************************************************************************************************
*                                             CONSTANTS
*********************************************************************************************************
*/

#define          TASK_STK_SIZE            512    /* Size of each task's stacks (# of 16-bit words)     */

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

OS_STK           TestStatTaskStk[TASK_STK_SIZE];

OS_STK           TestAIOTaskStk[TASK_STK_SIZE];
OS_STK           TestClkTaskStk[TASK_STK_SIZE];
OS_STK           TestDIOTaskStk[TASK_STK_SIZE];
OS_STK           TestRxTaskStk[TASK_STK_SIZE];
OS_STK           TestTxTaskStk[TASK_STK_SIZE];
OS_STK           TestTmrTaskStk[TASK_STK_SIZE];


/*
*********************************************************************************************************
*                                         FUNCTION PROTOTYPES
*********************************************************************************************************
*/

static void       TestDispLit(void);
static void       TestDispMap(void);

       void       TestStatTask(void *data);
static void       TestInitModules(void);

       void       TestAIOTask(void *data);
       
       void       TestClkTask(void *data);
       
       void       TestDIOTask(void *data);
       
       void       TestRxTask(void *data);
       void       TestTxTask(void *data);
       
       void       TestTmrTask(void *data);
static void       TestTmr0TO(void *arg);
static void       TestTmr1TO(void *arg);

/*$PAGE*/
/*
*********************************************************************************************************
*                                                  MAIN
*
* Description: This is the main program entry point.  If you type the following command (i.e. without
*              arguments) from the DOS command line, the Embedded Systems Building Blocks test code will 
*              execute.
*
*                  TEST
*                   
*              If you specify 'any' argument to TEST on the command line, TEST will display the PC's
*              display character map.  In other words, you could type:
*
*                  TEST display
*
* Arguments  : argc        is the 'standard' C command line argument count
*              argv        is an array containing the arguments passed on the command line
*
* Returns    : nothing
*********************************************************************************************************
*/

void  main (int argc, char *argv[])
{
    if (argc > 1) {
        if (strcmp(argv[1], "display") == 0 || strcmp(argv[1], "DISPLAY") == 0) {
            TestDispMap();                                 /* Display the PC's character map           */
        }
        exit(0);                                           /* Return back to DOS                       */
    }
    
    PC_DispClrScr(DISP_FGND_WHITE + DISP_BGND_BLACK);      /* Clear the screen                         */
    OSInit();                                              /* Initialize uC/OS-II                      */
    OSFPInit();                                            /* Initialize floating-point support        */
    PC_DOSSaveReturn();                                    /* Save environment to return to DOS        */   
    PC_VectSet(uCOS, OSCtxSw);                             /* Install uC/OS-II's context switch vector */
    OSTaskCreateExt(TestStatTask, 
                   (void *)0, 
                   &TestStatTaskStk[TASK_STK_SIZE], 
                   STAT_TASK_PRIO,
                   STAT_TASK_PRIO, 
                   &TestStatTaskStk[0], 
                   TASK_STK_SIZE, 
                   (void *)0, 
                   OS_TASK_OPT_SAVE_FP);
    OSStart();                                             /* Start multitasking                       */
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                      TEST 'Analog I/Os' TASK
*********************************************************************************************************
*/

void  TestAIOTask (void *data)
{
    char    s[81];
    FP32    value;
    INT16S  temp;
    INT8U   err;
    

    data = data;                                           /* Prevent compiler warning                 */
    
    AICfgConv(0, 0.01220740, -4095.875, 10);               /* Configure AI channel #0                  */
    AICfgCal(0,  1.00,           0.00);
    
    for (;;) {
        err  = AIGet(0, &value);                           /* Read AI channel #0                       */
        temp = (INT16S)value;                              /* No need for decimal places               */
        sprintf(s, "%5d", temp);                           
        PC_DispStr(49, 11, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);

        OSTimeDlyHMSM(0, 0, 0, 10);                        /* Run 100 times per second                 */
    }
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                           TEST 'Clk' TASK
*********************************************************************************************************
*/

void  TestClkTask (void *data)
{
    char    s[81];
    INT16U  time;
    TS      ts;


    data  = data;                                          /* Prevent compiler warning                 */

    ClkSetDateTime(12, 31, 1999, 23, 58, 0);               /* Set the clock/calendar                   */

    for (;;) {
        PC_ElapsedStart();
        ClkFormatDate(2, s);                               /* Get formatted date from clock/calendar   */
        time = PC_ElapsedStop();
        PC_DispStr( 8, 11, "                   ", DISP_FGND_WHITE);
        PC_DispStr( 8, 11, s, DISP_FGND_BLUE + DISP_BGND_CYAN);
        sprintf(s, "%3d uS", time);
        PC_DispStr( 8, 14, s, DISP_FGND_RED + DISP_BGND_LIGHT_GRAY);

        PC_ElapsedStart();
        ClkFormatTime(1, s);                               /* Get formatted time from clock/calendar   */
        time = PC_ElapsedStop();
        PC_DispStr( 8, 12, s, DISP_FGND_BLUE + DISP_BGND_CYAN);
        sprintf(s, "%3d uS", time);
        PC_DispStr(22, 14, s, DISP_FGND_RED + DISP_BGND_LIGHT_GRAY);

        ts = ClkGetTS();                                   /* Get current   time stamp                 */
                                              /* Get formatted time stamp                 */
        PC_DispStr( 8, 13, s, DISP_FGND_BLUE + DISP_BGND_CYAN);

        OSTimeDlyHMSM(0, 0, 0, 100);
    }
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                      TEST 'Discrete I/Os' TASK
*********************************************************************************************************
*/

void  TestDIOTask (void *data)
{
    BOOLEAN state;


    data = data;                                           /* Prevent compiler warning                 */
    
    DOSetSyncCtrMax(100);
    
    DOCfgBlink(0, DO_BLINK_EN,  5, 10);                    /* Discrete Out #0, Blink 50% duty          */
    DOCfgMode(0,  DO_MODE_BLINK_ASYNC, FALSE);
    
    DOCfgBlink(1, DO_BLINK_EN, 10, 20);                    /* Discrete Out #1, Blink 50% duty          */
    DOCfgMode(1,  DO_MODE_BLINK_ASYNC, FALSE);
    
    DOCfgBlink(2, DO_BLINK_EN, 25,  0);                    /* Discrete Out #2, Blink 25% duty          */
    DOCfgMode(2,  DO_MODE_BLINK_SYNC, FALSE);

    for (;;) {
        state = DOGet(0);
        if (state == TRUE) {
            PC_DispStr(49,  6, "TRUE ", DISP_FGND_YELLOW + DISP_BGND_BLUE);
        } else {
            PC_DispStr(49,  6, "FALSE", DISP_FGND_YELLOW + DISP_BGND_BLUE);
        }
        state = DOGet(1);
        if (state == TRUE) {
            PC_DispStr(49,  7, "HIGH", DISP_FGND_YELLOW + DISP_BGND_BLUE);
        } else {
            PC_DispStr(49,  7, "LOW ", DISP_FGND_YELLOW + DISP_BGND_BLUE);
        }
        state = DOGet(2);
        if (state == TRUE) {
            PC_DispStr(49,  8, "ON ", DISP_FGND_YELLOW + DISP_BGND_BLUE);
        } else {
            PC_DispStr(49,  8, "OFF", DISP_FGND_YELLOW + DISP_BGND_BLUE);
        }
        OSTimeDlyHMSM(0, 0, 0, 100);                       /* Run 10 times per second                  */
    }
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                           DISPLAY LAYOUT
*********************************************************************************************************
*/

static  void  TestDispLit (void)
{
                     /*           1111111111222222222233333333334444444444555555555566666666667777777777 */
                     /* 01234567890123456789012345678901234567890123456789012345678901234567890123456789 */
    PC_DispStr( 0,  0, "                        EMBEDDED SYSTEMS BUILDING BLOCKS                        ", DISP_FGND_WHITE + DISP_BGND_RED + DISP_BLINK);
    PC_DispStr( 0,  1, "                     Complete and Ready-to-Use Modules in C                     ", DISP_FGND_WHITE);
    PC_DispStr( 0,  2, "                                Jean J. Labrosse                                ", DISP_FGND_WHITE);
    PC_DispStr( 0,  3, "                                  SAMPLE  CODE                                  ", DISP_FGND_WHITE);
    PC_DispStr( 0,  4, "                                                                                ", DISP_FGND_WHITE);
    PC_DispStr( 0,  5, "Chapter 3, Keyboards                    Chapter  8, Discrete I/Os               ", DISP_FGND_WHITE);
    PC_DispStr( 0,  6, "Chapter 4, Multiplexed LED Displays       DO #0:        50% Duty Cycle (Async)  ", DISP_FGND_WHITE);
    PC_DispStr( 0,  7, "Chapter 5, Character LCD Modules          DO #1:        50% Duty Cycle (Async)  ", DISP_FGND_WHITE);
    PC_DispStr( 0,  8, "  -No Sample Code-                        DO #2:        25% Duty Cycle (Sync)   ", DISP_FGND_WHITE);
    PC_DispStr( 0,  9, "                                                                                ", DISP_FGND_WHITE);
    PC_DispStr( 0, 10, "Chapter 6, Time-Of-Day Clock            Chapter 10, Analog I/Os                 ", DISP_FGND_WHITE);
    PC_DispStr( 0, 11, "  Date:                                   AI #0:                                ", DISP_FGND_WHITE);
    PC_DispStr( 0, 12, "  Time:                                                                         ", DISP_FGND_WHITE);
    PC_DispStr( 0, 13, "  TS  :                                                                         ", DISP_FGND_WHITE);
    PC_DispStr( 0, 14, "  Date:         Time:                                                           ", DISP_FGND_WHITE);
    PC_DispStr( 0, 15, "Chapter 7, Timer Manager                Chapter 11, Async. Serial Comm.         ", DISP_FGND_WHITE);
    PC_DispStr( 0, 16, "  Tmr0:                                   Tx   :                                ", DISP_FGND_WHITE);
    PC_DispStr( 0, 17, "                                          Rx   :                                ", DISP_FGND_WHITE);
    PC_DispStr( 0, 18, "  Tmr1:                                                                         ", DISP_FGND_WHITE);
    PC_DispStr( 0, 19, "                                                                                ", DISP_FGND_WHITE);
    PC_DispStr( 0, 20, "                                                                                ", DISP_FGND_WHITE);
    PC_DispStr( 0, 21, "                                                                                ", DISP_FGND_WHITE);
    PC_DispStr( 0, 22, "                                                                                ", DISP_FGND_WHITE);
    PC_DispStr( 0, 23, "MicroC/OS-II Vx.yy    #Tasks: xxxxx   #Task switch/sec: xxxxx   CPU Usage: xxx %", DISP_FGND_YELLOW + DISP_BGND_BLUE);
    PC_DispStr( 0, 24, "                            <-PRESS 'ESC' TO QUIT->                             ", DISP_FGND_WHITE);
                     /*           1111111111222222222233333333334444444444555555555566666666667777777777 */
                     /* 01234567890123456789012345678901234567890123456789012345678901234567890123456789 */
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                       DISPLAY CHARACTER MAP
*
* Description: This function displays the full character mode display map.  The left hand side of the
*              table corresponds to the ASCII characters (i.e. 0x00 to 0x7F) while the right hand side
*              table corresponds to 'special' characters from 0x80 to 0xFF.
*
* Arguments  : none
*
* Returns    : nothing
*********************************************************************************************************
*/

static  void  TestDispMap (void)
{
    INT8U  x;
    INT8U  y;
    INT16S key;
    
    
    PC_DispClrScr(DISP_FGND_WHITE);
    PC_DispStr( 0,  0, "                        EMBEDDED SYSTEMS BUILDING BLOCKS                        ", DISP_FGND_WHITE + DISP_BGND_RED + DISP_BLINK);
    PC_DispStr( 0,  1, "                     Complete and Ready-to-Use Modules in C                     ", DISP_FGND_WHITE);
    PC_DispStr( 0,  2, "                                Jean J. Labrosse                                ", DISP_FGND_WHITE);
    PC_DispStr( 0,  3, "                                 PC DISPLAY MAP                                 ", DISP_FGND_WHITE);
    PC_DispStr( 0,  4, "                                                                                ", DISP_FGND_WHITE);
    PC_DispStr( 0,  5, "     ------ ASCII  Characters ------            ----- Special  Characters ----- ", DISP_FGND_WHITE);
    PC_DispStr( 0,  6, "     0 1 2 3 4 5 6 7 8 9 A B C D E F            0 1 2 3 4 5 6 7 8 9 A B C D E F ", DISP_FGND_WHITE);
    PC_DispStr( 0,  7, "                                                                                ", DISP_FGND_WHITE);
    PC_DispStr( 0,  8, "0x00                                       0x80                                 ", DISP_FGND_WHITE);
    PC_DispStr( 0,  9, "                                                                                ", DISP_FGND_WHITE);
    PC_DispStr( 0, 10, "0x10                                       0x90                                 ", DISP_FGND_WHITE);
    PC_DispStr( 0, 11, "                                                                                ", DISP_FGND_WHITE);
    PC_DispStr( 0, 12, "0x20                                       0xA0                                 ", DISP_FGND_WHITE);
    PC_DispStr( 0, 13, "                                                                                ", DISP_FGND_WHITE);
    PC_DispStr( 0, 14, "0x30                                       0xB0                                 ", DISP_FGND_WHITE);
    PC_DispStr( 0, 15, "                                                                                ", DISP_FGND_WHITE);
    PC_DispStr( 0, 16, "0x40                                       0xC0                                 ", DISP_FGND_WHITE);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕免费观看一区| 国产一区日韩二区欧美三区| 久久在线观看免费| 26uuu成人网一区二区三区| 91免费版pro下载短视频| 成人一区在线观看| 成人教育av在线| 99re这里只有精品首页| 不卡的av中国片| 色婷婷精品大视频在线蜜桃视频| 福利电影一区二区三区| www.在线欧美| 欧美日韩精品免费观看视频| 欧美日本一道本在线视频| 91精品久久久久久久91蜜桃| 日韩欧美一区二区免费| 久久丝袜美腿综合| 亚洲欧洲日产国码二区| 一区二区三区四区视频精品免费 | 亚洲精品成人在线| 亚洲一区在线视频| 麻豆91在线观看| 成人久久18免费网站麻豆| 91亚洲男人天堂| 欧美日本一道本| 国产午夜精品一区二区三区嫩草 | 亚洲成人黄色影院| 麻豆极品一区二区三区| 成人精品视频.| 欧美日韩国产综合久久| 2024国产精品| 亚洲欧美乱综合| 久久66热偷产精品| 色偷偷成人一区二区三区91| 日韩网站在线看片你懂的| 1区2区3区精品视频| 午夜一区二区三区在线观看| 国产精品一二一区| 欧美视频完全免费看| 久久久一区二区三区| 亚洲bt欧美bt精品| eeuss鲁一区二区三区| 欧美一级理论片| 亚洲三级免费电影| 国产精品2024| 6080午夜不卡| 亚洲精品伦理在线| 国产69精品久久777的优势| 欧美乱熟臀69xxxxxx| 国产精品国产三级国产aⅴ入口| 午夜成人免费电影| 91看片淫黄大片一级在线观看| 精品国产乱码久久久久久夜甘婷婷| 亚洲黄色在线视频| www.欧美日韩| 国产午夜精品美女毛片视频| 另类小说图片综合网| 日韩免费看的电影| 亚洲伦理在线精品| 成人app软件下载大全免费| 精品国产一区二区三区久久久蜜月| 亚洲综合色成人| 91麻豆成人久久精品二区三区| 国产欧美日韩卡一| 国产精品中文字幕日韩精品| 91精品国产综合久久精品麻豆| 亚洲最大的成人av| 色诱亚洲精品久久久久久| 国产精品网站在线播放| 国产福利一区二区| 国产三级一区二区| 国产成人啪免费观看软件| 久久久夜色精品亚洲| 激情综合色综合久久综合| 欧美一级久久久久久久大片| 日韩电影在线观看网站| 欧美精品丝袜中出| 日本欧美久久久久免费播放网| 欧美日韩在线播放三区四区| 亚洲国产精品一区二区久久| 欧美无砖专区一中文字| 亚洲午夜精品在线| 欧美精品vⅰdeose4hd| 日本不卡123| 精品国产一区二区三区不卡| 激情综合五月天| 国产农村妇女毛片精品久久麻豆 | 欧美日韩国产另类一区| 天堂在线亚洲视频| 欧美一级一级性生活免费录像| 美女看a上一区| 久久久久久一二三区| 成人免费观看男女羞羞视频| 亚洲视频图片小说| 欧美日韩国产成人在线91| 久久狠狠亚洲综合| 国产精品理论片| 在线成人小视频| 国产一区二区主播在线| 中文字幕的久久| 欧美视频日韩视频在线观看| 免费三级欧美电影| 中文字幕欧美一| 7777精品伊人久久久大香线蕉| 精品一区二区久久| 亚洲手机成人高清视频| 欧美精品在线一区二区| 国产 日韩 欧美大片| 亚洲一级二级三级在线免费观看| 日韩欧美一二三区| 99精品视频一区二区三区| 午夜视频久久久久久| 中文字幕免费不卡| 欧美一个色资源| 91论坛在线播放| 久久se这里有精品| 亚洲综合色在线| 中文字幕的久久| 欧美一区二区美女| 色婷婷av一区二区| 国产美女娇喘av呻吟久久| 一区二区在线免费| 久久精子c满五个校花| 欧美日韩美少妇| 91美女福利视频| 粉嫩久久99精品久久久久久夜| 五月天久久比比资源色| 亚洲欧洲日韩一区二区三区| 日韩精品一区二区三区三区免费| 91网站最新网址| 国产精品一区二区男女羞羞无遮挡| 亚洲欧洲色图综合| 久久蜜桃av一区二区天堂| 欧美日韩的一区二区| a美女胸又www黄视频久久| 国产在线视频一区二区| 日日夜夜免费精品| 一区二区三区 在线观看视频| 国产欧美日韩在线观看| 日韩欧美色电影| 日韩一级片在线播放| 欧美日韩精品一区二区| 日本道免费精品一区二区三区| www.99精品| 成人av电影在线播放| 成人免费福利片| av亚洲精华国产精华| av电影在线观看完整版一区二区| 国产成人精品影视| 国产高清久久久久| 成人免费视频视频| 成人午夜在线播放| 高清免费成人av| 成人av资源网站| 91美女视频网站| 日本精品视频一区二区三区| 色婷婷综合久久久中文字幕| 色偷偷88欧美精品久久久| 色88888久久久久久影院野外| 一本到一区二区三区| 一本大道久久a久久综合| 欧美性猛片xxxx免费看久爱| 欧美性色欧美a在线播放| 欧美日韩视频在线观看一区二区三区 | 欧美成人video| 欧美一级久久久| 国产三级精品视频| 国产精品亲子伦对白| 中文字幕在线一区二区三区| 一区二区三区在线观看国产| 五月婷婷综合网| 国内成+人亚洲+欧美+综合在线| 国产最新精品精品你懂的| 懂色av中文一区二区三区| 99re这里只有精品视频首页| 欧美视频一区二区三区| 精品国产免费视频| 亚洲日本欧美天堂| 丝袜亚洲精品中文字幕一区| 精品无码三级在线观看视频| 不卡的看片网站| 91麻豆精品国产91久久久| 国产日产精品1区| 亚洲成人av一区| 国产精品亚洲第一| 色88888久久久久久影院按摩 | 久久精品一区二区三区不卡牛牛| 国产精品视频一区二区三区不卡| 亚洲综合网站在线观看| 紧缚奴在线一区二区三区| 9i看片成人免费高清| 欧美一区二区视频在线观看| 中文字幕精品综合| 亚欧色一区w666天堂| 国产成人av电影在线观看| 欧美日韩免费视频| 国产精品久久午夜| 免费成人美女在线观看.| 色哟哟国产精品| 国产欧美一二三区|