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

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

?? consol.c

?? ucosII和gui的實例
?? C
?? 第 1 頁 / 共 2 頁
字號:
* Arguments  : none.
*
* Return     : Returns the received Integer value.
*
* Note(s)    : 
*********************************************************************************************
*/

int CONSOL_GetIntNum(void)
{
        char abStr[30];
        char *pbString=abStr;
        int wBase=10;
        int wMinus=0;
        int wLastIndex;
        int wResult=0;
        int wI;
        
        CONSOL_GetString(pbString);
        
        if(pbString[0]=='-'){wMinus=1;pbString++;}
        
        if(pbString[0]=='0' && (pbString[1]=='x' || pbString[1]=='X'))
        {
                wBase=16;
                pbString+=2;
        }
        
        wLastIndex=strlen(pbString)-1;
        if( pbString[wLastIndex]=='h' || pbString[wLastIndex]=='H' )
        {
                wBase=16;
                pbString[wLastIndex]=0;
                wLastIndex--;
        }

        if(wBase==10)
        {
                wResult=atoi(pbString);
                wResult=wMinus ? (-1*wResult):wResult;
        }
        else
        {
                for(wI=0; wI<=wLastIndex; wI++)
                {
                        if(__isalpha(pbString[wI]))
                        {
                                if(__isupper(pbString[wI]))
                                        wResult=(wResult<<4)+pbString[wI]-'A'+10;
                                else
                                        wResult=(wResult<<4)+pbString[wI]-'a'+10;
                        }
                        else
                        {
                                wResult=(wResult<<4)+pbString[wI]-'0';
                        }
                }
                wResult=wMinus ? (-1*wResult):wResult;
        }
        return wResult;
}

/*
*********************************************************************************************
*                                       CONSOL_SendChar
*
* Description: This routine waits till the character is sent.
*
* Arguments  : bData - Data to be sent.
*
* Return     : none.
*
* Note(s)    : 
*********************************************************************************************
*/

void CONSOL_SendChar(char bData)
{
        switch(__wChannel)
        {
        case 0:
                while(rUFSTAT0 & 0x200); //Wait until THR is empty.
//                Delay(4);
                rUTXH0 = bData;
                break;

        case 1:
                while(rUFSTAT1 & 0x200); //Wait until THR is empty.
//                Delay(4);
                rUTXH1 = bData;
                break;

        case 2:
                while(rUFSTAT2 & 0x200); //Wait until THR is empty.
//                Delay(4);
                rUTXH2 = bData;
                break;
        }        
}

/*
*********************************************************************************************
*                                       CONSOL_SendCh
*
* Description: This routine waits till the character is sent. It also sends an extra carriage
*              return character when sending a new line character
*
* Arguments  : bData - Data to be sent.
*
* Return     : none.
*
* Note(s)    : 
*********************************************************************************************
*/

void CONSOL_SendCh(char bData)
{
        if(bData == '\n')
        {
                CONSOL_SendChar('\r');
        }

        CONSOL_SendChar(bData);
}

/*
*********************************************************************************************
*                                       CONSOL_SendString
*
* Description: This routine waits till the string is sent.
*
* Arguments  : pbString - String to be sent.
*
* Return     : none.
*
* Note(s)    : 
*********************************************************************************************
*/

void CONSOL_SendString(char *pbString)
{
        while(*pbString)CONSOL_SendCh(*pbString++);
}

/*
*********************************************************************************************
*                                       CONSOL_Scanf
*
* Description: Reads input from the consol stream, under control of the string pointed to by
*              format that specifies the admissible input sequences and how they are to be
*              converted for assignment, using subsequent arguments as pointers to the
*              objects to receive the converted input. If there are insufficient arguments
*              for the format, the behavior is undefined. If the format is exhausted while
*              arguments remain, the excess arguments are ignored.
*
* Arguments  : pcFmt - Format string. It can contain only the following format specifiers:
*                      %s - String.
*                      %c - character.
*                      %i - Integer.
*              ...   - Are the passed parameters (pointers to the objects to receive the
*                      converted input).
*
* Return     : none.
*
* Note(s)    : 
*********************************************************************************************
*/

void CONSOL_Scanf(char *pcFmt,...)
{
        va_list pArg;
        char cChar;
        int *pwInt;
        char *pbChar;
        
        va_start(pArg, pcFmt);
        while((cChar=*pcFmt++) != '\0')
        {
                if(cChar != '%')continue;
                switch(*pcFmt)
                {
                        case 's':
                        case 'S':
                                pbChar = va_arg (pArg, char *);
                                CONSOL_GetString(pbChar);
                                break;
                        case 'i':
                        case 'I':
                                pwInt = va_arg (pArg, int *);
                                *pwInt = CONSOL_GetIntNum();
                                break;
                        case 'c':
                        case 'C':
                                pbChar = va_arg (pArg, char *);
                                *pbChar = CONSOL_GetCh();
                                break;
                }
        }
        va_end(pArg);
}

/*
*********************************************************************************************
*                                       CONSOL_Printf
*
* Description: Writes output to the consol stream, under control of the string pointed to by
*              format that specifies how subsequent arguments are converted for output. If 
*              there are insufficient arguments for the format, the behavior is undefined.
*              If the format is exhausted while arguments remain, the excess arguments are
*              ignored.
*
* Arguments  : pcFmt - Format string. It can contain all the format specifies.
*              ...   - Are the passed parameters (pointers to the objects to receive the
*                      converted input).
*
* Return     : none.
*
* Note(s)    : 
*********************************************************************************************
*/

void CONSOL_Printf(char *pcFmt,...)
{
        va_list ap;
        char pbString[256];

        va_start(ap,pcFmt);
        vsprintf(pbString,pcFmt,ap);
        CONSOL_SendString(pbString);
        va_end(ap);
}


/* ********************************************************************* */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区在线视频| 国产乱码精品一区二区三区av| 国产精品色在线观看| 久久综合久色欧美综合狠狠| 日韩丝袜情趣美女图片| 日韩欧美一级精品久久| 日韩美女视频在线| 精品美女一区二区三区| 日韩欧美成人午夜| 久久综合九色综合97婷婷| 2017欧美狠狠色| 中文字幕 久热精品 视频在线| 国产欧美精品一区二区色综合 | 欧美国产精品专区| 亚洲国产精品ⅴa在线观看| 国产精品久久久久三级| 亚洲色图20p| 樱花影视一区二区| 亚洲福利一区二区| 日本va欧美va瓶| 国产一区二区三区av电影| 国产不卡视频一区| 一本久道久久综合中文字幕| 欧美日韩成人综合| 久久只精品国产| 亚洲欧美怡红院| 日日摸夜夜添夜夜添精品视频| 蜜臀久久99精品久久久久久9 | 国内外精品视频| 国产黄色精品视频| 92精品国产成人观看免费| 欧美日韩视频在线第一区| 日韩写真欧美这视频| 欧美国产精品专区| 亚洲成av人片在线| 国产精品自产自拍| 91福利在线导航| 日韩一级大片在线观看| 国产精品国产三级国产aⅴ无密码| 亚洲精品国产第一综合99久久| 日本v片在线高清不卡在线观看| 国产高清亚洲一区| 欧美日韩三级在线| 国产午夜精品久久| 亚洲国产一区在线观看| 韩国av一区二区三区四区| 在线中文字幕一区| 久久久av毛片精品| 亚洲.国产.中文慕字在线| 国产一区二区91| 欧美亚洲自拍偷拍| 国产网红主播福利一区二区| 亚洲夂夂婷婷色拍ww47| 黄页网站大全一区二区| 日本高清无吗v一区| 久久综合九色综合97婷婷| 亚洲一区在线观看视频| 国产麻豆精品在线观看| 欧美日韩精品一区二区在线播放| 国产欧美一二三区| 免费成人美女在线观看.| 97se亚洲国产综合在线| 精品剧情在线观看| 亚洲国产日日夜夜| 91影院在线观看| 久久蜜桃香蕉精品一区二区三区| 亚洲一区二区三区爽爽爽爽爽| 成人夜色视频网站在线观看| 欧美一区二区三区的| 亚洲精品国产精华液| 成人av电影免费在线播放| 91精品国产91久久久久久一区二区| 国产精品剧情在线亚洲| 精品在线免费观看| 欧美日韩国产一区二区三区地区| 国产欧美一区二区精品久导航 | 午夜精品123| 91色综合久久久久婷婷| 国产三级欧美三级| 狠狠色狠狠色合久久伊人| 88在线观看91蜜桃国自产| 亚洲精品欧美二区三区中文字幕| 国产精品12区| 久久噜噜亚洲综合| 久久99精品久久久久婷婷| 欧美久久久一区| 亚洲综合免费观看高清完整版| www.在线欧美| 国产精品久久久一区麻豆最新章节| 国产一区二区三区不卡在线观看 | 欧美精品一区二区三区一线天视频| 亚洲国产日产av| 在线观看中文字幕不卡| 亚洲美女偷拍久久| 91视频观看视频| 国产精品大尺度| 波多野结衣精品在线| 国产精品视频在线看| 成人小视频免费观看| 日本一区二区三区在线不卡| 国产自产视频一区二区三区| 日韩视频在线永久播放| 久久er99精品| 久久久精品综合| 国产成人精品影视| 中文字幕乱码日本亚洲一区二区| 国产91丝袜在线观看| 中文字幕第一区综合| 99天天综合性| 亚洲精品国久久99热| 欧美日韩一区精品| 日本不卡的三区四区五区| 欧美videos大乳护士334| 久久69国产一区二区蜜臀| 精品999在线播放| 国产精品夜夜嗨| 最近日韩中文字幕| 欧美图片一区二区三区| 日韩在线观看一区二区| 欧美r级在线观看| 国产91精品一区二区| 亚洲欧美另类图片小说| 精品视频免费看| 日本最新不卡在线| 久久精品亚洲一区二区三区浴池| 国产成都精品91一区二区三| 亚洲欧美精品午睡沙发| 欧美日韩一本到| 激情久久久久久久久久久久久久久久 | 欧美一卡在线观看| 国产一区二区在线看| 中文av一区特黄| 在线这里只有精品| 久久精品久久综合| 成人欧美一区二区三区黑人麻豆| 欧美日韩国产一区二区三区地区| 精品系列免费在线观看| 麻豆精品一区二区av白丝在线| 日本一区二区三区视频视频| 色菇凉天天综合网| 久久66热re国产| 亚洲精品你懂的| 久久夜色精品一区| 一本久久精品一区二区 | 7777精品伊人久久久大香线蕉的 | 国产成人精品免费网站| 一区二区三区美女| 精品日韩欧美在线| 91福利国产精品| 国产一区激情在线| 亚洲成av人片在线观看无码| 久久久蜜桃精品| 欧美老人xxxx18| av亚洲产国偷v产偷v自拍| 日韩激情视频在线观看| 中文av一区特黄| 欧美成人精品福利| 一本久道久久综合中文字幕| 黑人巨大精品欧美一区| 亚洲成人动漫精品| 亚洲国产精品精华液2区45| 91精品国产欧美一区二区18| 成人午夜在线播放| 精品综合久久久久久8888| 亚洲与欧洲av电影| 欧美激情在线观看视频免费| 日韩午夜中文字幕| 欧美在线高清视频| 99久久国产综合色|国产精品| 蜜桃精品视频在线| 亚洲一区二区三区四区五区黄 | 国产精品国模大尺度视频| 日韩一区二区不卡| 在线观看一区二区精品视频| 成人一道本在线| 国产一区二区三区在线看麻豆| 亚洲电影一级片| 亚洲视频免费在线观看| 国产欧美综合在线观看第十页| 日韩精品一区二区在线| 欧美三级中文字幕| 在线一区二区三区四区五区 | 国产精品伦理在线| 国产三区在线成人av| 精品久久久久99| 日韩午夜精品视频| 777亚洲妇女| 欧美精品亚洲一区二区在线播放| 色综合亚洲欧洲| 91小宝寻花一区二区三区| 成人一区二区三区视频在线观看| 国产一区啦啦啦在线观看| 久久电影网站中文字幕| 男女性色大片免费观看一区二区 | 成人av影院在线| 成人黄色av电影| 成人一区二区在线观看| 成人深夜在线观看| 成人一区在线观看| a美女胸又www黄视频久久|