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

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

?? probe_rs232.c

?? 飛思卡爾HCS12的OS移植(ucosII),實現了三個任務,IDE:CODEWARRIOR
?? C
?? 第 1 頁 / 共 3 頁
字號:

/*
*********************************************************************************************************
*                                            ProbeRS232_Task()
*
* Description : The task which parses the received packet, forms a response, and begins transmission.
*
* Argument(s) : p_arg           The argument passed to 'ProbeRS232_Task()' by  'ProbeRS232_OS_Task()'.
*
* Return(s)   : none.
*
* Caller(s)   : ProbeRS232_OS_Task().
*
* Note(s)     : none.
*********************************************************************************************************
*/

#if (PROBE_RS232_PARSE_TASK == DEF_TRUE)
void  ProbeRS232_Task (void *p_arg)
{
    CPU_INT16U  len;


    (void)p_arg;

    while (DEF_TRUE) {
        ProbeRS232_OS_Pend();                                   /* Wait for a packet to be received.                    */

        len = ProbeRS232_ParseRxPkt();                          /* Parse packet and formulate a response.               */

        if (len > 0) {                                          /* If we have a response.                               */
            ProbeRS232_TxLen = len;
            ProbeRS232_TxStart();
        }
    }
}
#endif


/*
*********************************************************************************************************
*********************************************************************************************************
*                                            RX & TX HANDLERS
*********************************************************************************************************
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*                                         ProbeRS232_RxHandler()
*
* Description : Handle a received byte.
*
* Argument(s) : rx_data         Received data byte.
*
* Return(s)   : none.
*
* Caller(s)   : Rx ISR.
*
* Note(s)     : none.
*********************************************************************************************************
*/

void  ProbeRS232_RxHandler (CPU_INT08U rx_data)
{
#if (PROBE_COM_STAT_EN == DEF_ENABLED)
    ProbeRS232_RxCtr++;
#endif

    switch (ProbeRS232_RxState) {
        case PROBE_RS232_RX_STATE_SD0:                          /* Rx'd the start 1st start delimiter (SD0).            */
             if (rx_data == PROBE_RS232_PROTOCOL_RX_SD0) {
                 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD1;
                 ProbeRS232_RxBufClr();
             }
             break;


        case PROBE_RS232_RX_STATE_SD1:                          /* Rx'd the start 2nd start delimiter (SD1).            */
             if (rx_data == PROBE_RS232_PROTOCOL_RX_SD1) {
                 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD2;
             } else {
                 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
             }
             break;


        case PROBE_RS232_RX_STATE_SD2:                          /* Rx'd the start 3rd start delimiter (SD2).            */
             if (rx_data == PROBE_RS232_PROTOCOL_RX_SD2) {
                 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD3;
             } else {
                 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
             }
             break;


        case PROBE_RS232_RX_STATE_SD3:                          /* Rx'd the start 4th start delimiter (SD3).            */
             if (rx_data == PROBE_RS232_PROTOCOL_RX_SD3) {
                 ProbeRS232_RxState = PROBE_RS232_RX_STATE_LEN1;
             } else {
                 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
             }
             break;


        case PROBE_RS232_RX_STATE_LEN1:                         /* Rx'd the 1st len byte.                               */
#if (PROBE_RS232_USE_CHECKSUM == DEF_TRUE)
             ProbeRS232_RxChkSum    = rx_data;
#endif
             ProbeRS232_RxRemainLen = rx_data;
             ProbeRS232_RxState     = PROBE_RS232_RX_STATE_LEN2;
             break;


        case PROBE_RS232_RX_STATE_LEN2:                         /* Rx'd the 2nd len byte.                               */
#if (PROBE_RS232_USE_CHECKSUM == DEF_TRUE)
             ProbeRS232_RxChkSum    += rx_data;
#endif
             ProbeRS232_RxRemainLen |= rx_data << 8;

                                                                /* Chk len.                                             */
             if ((ProbeRS232_RxRemainLen == 0) || (ProbeRS232_RxRemainLen > PROBE_RS232_RX_BUF_SIZE)) {
                 ProbeRS232_RxState  = PROBE_RS232_RX_STATE_SD0;
             } else {
                 ProbeRS232_RxLen    = ProbeRS232_RxRemainLen;
                 ProbeRS232_RxState  = PROBE_RS232_RX_STATE_PAD1;
             }
             break;


        case PROBE_RS232_RX_STATE_PAD1:                         /* Rx'd the 1st padding byte.                           */
             ProbeRS232_RxState = PROBE_RS232_RX_STATE_PAD2;
             break;


        case PROBE_RS232_RX_STATE_PAD2:                         /* Rx'd the 2nd  padding byte.                          */
             ProbeRS232_RxState = PROBE_RS232_RX_STATE_DATA;
             break;


        case PROBE_RS232_RX_STATE_DATA:                         /* Rx'd data.                                           */
             ProbeRS232_RxStoINT8U(rx_data);
#if (PROBE_RS232_USE_CHECKSUM == DEF_TRUE)
             ProbeRS232_RxChkSum += rx_data;
#endif
             if (--ProbeRS232_RxRemainLen == 0) {
                 ProbeRS232_RxState = PROBE_RS232_RX_STATE_CHKSUM;
             }
             break;


        case PROBE_RS232_RX_STATE_CHKSUM:                       /* Rx'd the checksum.                                   */
#if (PROBE_RS232_USE_CHECKSUM == DEF_TRUE)
             ProbeRS232_RxChkSum += rx_data;
             if ((ProbeRS232_RxChkSum & 0xFF) == 0x00) {
                 ProbeRS232_RxState = PROBE_RS232_RX_STATE_ED;
             } else {
                 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
             }
#else
             ProbeRS232_RxState = PROBE_RS232_RX_STATE_ED;
#endif
             break;


        case PROBE_RS232_RX_STATE_ED:                           /* Rx'd the end delimiter.                              */
             if (rx_data == PROBE_RS232_PROTOCOL_RX_ED) {
                 ProbeRS232_RxPkt();                            /* Parse rx'd pkt.                                      */
             }
             ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
             break;


        default:
             ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
             break;
    }
}


/*
*********************************************************************************************************
*                                         ProbeRS232_TxHandler()
*
* Description : Handle a byte transmission.
*
* Argument(s) : none.
*
* Return(s)   : none.
*
* Caller(s)   : Tx ISR.
*
* Note(s)     : none.
*********************************************************************************************************
*/

void  ProbeRS232_TxHandler (void)
{
    CPU_INT08U  tx_data;


#if (PROBE_COM_STAT_EN == DEF_ENABLED)
    if ((ProbeRS232_TxState != PROBE_RS232_TX_STATE_SD0) ||
        (ProbeRS232_TxLen    > 0                       )) {
        ProbeRS232_TxCtr++;
    }
#endif

    switch (ProbeRS232_TxState) {
        case PROBE_RS232_TX_STATE_SD0:
             if (ProbeRS232_TxLen > 0) {                        /* If pkt is waiting to be sent ...                     */
                 ProbeRS232_Tx1(PROBE_RS232_PROTOCOL_TX_SD0);   /*  ... tx start 1st start delimiter (SD0).             */
                 ProbeRS232_TxActiveFlag = DEF_TRUE;
                 ProbeRS232_TxState      = PROBE_RS232_TX_STATE_SD1;
                 ProbeRS232_TxBufRdIx    = 0;

             } else {                                           /* If no pkt is waiting to be sent ...                  */
                 ProbeRS232_TxActiveFlag = DEF_FALSE;
                 ProbeRS232_TxIntDis();                         /*  ... dis tx int's.                                   */
             }
             break;


        case PROBE_RS232_TX_STATE_SD1:                          /* Tx start 2nd start delimiter (SD1).                  */
             ProbeRS232_Tx1(PROBE_RS232_PROTOCOL_TX_SD1);
             ProbeRS232_TxState = PROBE_RS232_TX_STATE_SD2;
             break;


        case PROBE_RS232_TX_STATE_SD2:                          /* Tx start 3rd start delimiter (SD2).                  */
             ProbeRS232_Tx1(PROBE_RS232_PROTOCOL_TX_SD2);
             ProbeRS232_TxState = PROBE_RS232_TX_STATE_SD3;
             break;


        case PROBE_RS232_TX_STATE_SD3:                          /* Tx start 4th start delimiter (SD3).                  */
             ProbeRS232_Tx1(PROBE_RS232_PROTOCOL_TX_SD3);
             ProbeRS232_TxState = PROBE_RS232_TX_STATE_LEN1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产主播一区二区三区| 亚洲三级在线免费观看| 美女爽到高潮91| 欧美一二三四在线| 紧缚奴在线一区二区三区| 欧美v亚洲v综合ⅴ国产v| 国产老肥熟一区二区三区| 国产精品视频一二三| 91一区一区三区| 亚洲国产视频在线| 9191精品国产综合久久久久久| 五月激情综合婷婷| 欧美精品一区二区久久婷婷| 国产精品中文字幕日韩精品| 国产精品成人免费精品自在线观看| 93久久精品日日躁夜夜躁欧美| 夜夜嗨av一区二区三区中文字幕| 69久久99精品久久久久婷婷| 精品一区二区三区香蕉蜜桃| 国产精品每日更新| 在线观看国产日韩| 美日韩一区二区三区| 欧美国产欧美综合| 欧美综合一区二区| 精品综合久久久久久8888| 国产片一区二区三区| 欧美伊人久久大香线蕉综合69 | 久久精品在线观看| 99vv1com这只有精品| 无吗不卡中文字幕| 日本一区二区三区电影| 欧美日韩国产另类一区| 国产乱子伦视频一区二区三区 | 精品国产乱码久久久久久浪潮| 高清beeg欧美| 午夜精品久久久久久久久| 久久精品免费在线观看| 欧美视频一区在线观看| 国产精品一二一区| 亚洲成在线观看| 国产精品美女久久久久久2018| 欧美精选午夜久久久乱码6080| 成人av网站在线观看免费| 日产精品久久久久久久性色| 国产精品国产三级国产a| 欧美美女喷水视频| 99久久伊人精品| 精品一区二区三区视频| 亚洲一区二区三区四区不卡| 国产精品久久影院| 精品国精品自拍自在线| 欧美日韩视频在线一区二区 | 日本成人中文字幕| 亚洲色图制服诱惑| 国产清纯白嫩初高生在线观看91| 3751色影院一区二区三区| 波多野结衣一区二区三区| 久久66热re国产| 天天影视网天天综合色在线播放 | 91免费版在线| 国产精品888| 久久精品99国产精品| 日韩高清不卡在线| 亚洲小说欧美激情另类| 亚洲欧洲国产专区| 国产欧美一区二区三区鸳鸯浴 | 国产欧美一区二区精品性| 欧美一区二区成人| 欧美三区在线视频| 色噜噜偷拍精品综合在线| 成人国产一区二区三区精品| 国产在线播放一区三区四| 日韩精品一卡二卡三卡四卡无卡| 亚洲自拍另类综合| 亚洲激情网站免费观看| 亚洲欧美日韩综合aⅴ视频| 欧美精彩视频一区二区三区| 国产亚洲精品中文字幕| 久久久久99精品国产片| 久久综合九色综合欧美就去吻 | 久久一区二区视频| 日韩女优制服丝袜电影| 欧美福利视频导航| 777a∨成人精品桃花网| 6080日韩午夜伦伦午夜伦| 在线看国产日韩| 91久久精品一区二区三区| 欧美中文字幕不卡| 欧美精品在线一区二区| 91.com视频| 精品久久五月天| 欧美哺乳videos| 国产欧美日韩另类视频免费观看 | 99热这里都是精品| 91丨国产丨九色丨pron| 色综合天天天天做夜夜夜夜做| 色综合中文字幕| 欧美日韩一区二区三区不卡| 4438成人网| 精品粉嫩超白一线天av| 国产亚洲女人久久久久毛片| 亚洲素人一区二区| 一级日本不卡的影视| 亚洲成人av在线电影| 免播放器亚洲一区| 国产麻豆日韩欧美久久| 一本一本大道香蕉久在线精品 | 亚洲视频在线观看三级| 亚洲香肠在线观看| 久久精品免费看| 国产69精品久久久久毛片| 色综合久久99| 制服丝袜亚洲色图| 久久精品夜色噜噜亚洲aⅴ| 亚洲免费三区一区二区| 日韩av一区二区三区| 国产精品18久久久| 欧美亚洲国产一区二区三区| 亚洲精品一区二区三区在线观看| 日韩理论片在线| 日韩精品成人一区二区三区| 国产成人在线看| 欧美男同性恋视频网站| 国产精品女主播在线观看| 亚洲国产日韩精品| 国产传媒久久文化传媒| 欧美三级电影网站| 久久精品人人做人人爽人人| 亚洲一二三专区| 国产传媒欧美日韩成人| 91精品国产色综合久久不卡蜜臀| 中文字幕乱码日本亚洲一区二区 | 欧美大尺度电影在线| 亚洲欧美一区二区三区极速播放| 青草av.久久免费一区| 91麻豆精品一区二区三区| 日韩免费观看高清完整版| 一区二区在线观看视频| 国产成人精品一区二区三区四区 | 亚洲二区视频在线| 成人激情文学综合网| 日韩一区和二区| 亚洲综合一区二区| 成人网男人的天堂| 日韩精品专区在线影院重磅| 亚洲网友自拍偷拍| 99久久精品久久久久久清纯| 久久久午夜电影| 日本欧美久久久久免费播放网| 色婷婷av一区二区三区大白胸| 国产清纯白嫩初高生在线观看91| 久久电影网站中文字幕 | 99久久精品一区二区| 国产日产欧美精品一区二区三区| 男女性色大片免费观看一区二区 | 91在线一区二区三区| 国产欧美一区二区精品忘忧草 | 国产精品妹子av| 国产一区二区三区综合| 日韩免费看网站| 日本aⅴ亚洲精品中文乱码| 欧美日韩在线直播| 亚洲一区在线看| 欧美视频中文字幕| 亚洲夂夂婷婷色拍ww47| 在线观看国产一区二区| 亚洲一区欧美一区| 色婷婷狠狠综合| 亚洲一区av在线| 欧美日韩国产区一| 首页综合国产亚洲丝袜| 欧美人伦禁忌dvd放荡欲情| 亚洲aⅴ怡春院| 欧美日韩国产不卡| 日韩精品视频网站| 欧美一卡二卡在线观看| 久久国内精品视频| 久久久精品国产免大香伊| 国产成人精品在线看| 国产精品传媒视频| 色悠悠久久综合| 亚洲第一久久影院| 欧美成人免费网站| 国产精品亚洲一区二区三区在线| 国产欧美日韩亚州综合| 91丝袜美女网| 亚洲成人午夜电影| 日韩三级视频中文字幕| 国产在线一区二区| 国产精品免费人成网站| 色av一区二区| 蜜臀av性久久久久蜜臀aⅴ| 26uuu国产一区二区三区| 风间由美一区二区av101 | 亚洲资源中文字幕| 日韩一区二区三区观看| 国产iv一区二区三区| 亚洲美女淫视频| 日韩欧美一级在线播放| 国产91精品一区二区麻豆亚洲|