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

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

?? consol.c

?? arm7的嵌入式系統ucos2移植
?? C
字號:
/*++
Module name:

        CONSOL.c

Abstract:

        This is the CONSOL Driver module. Supports multiple RS232 console interfaces.

Author:

        Michael Anburaj
        URL              : http:\\embedded.n3.net      Email : embeddedeng@hotmail.com

Environment:

        Processor        : EP73XX (32 bit ARM720T RISC core from CIRRUS)
        IDE              : SDT 2.51 & ADS 1.0

--*/

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

#include "def.h"
#include "EP7312.h"
#include "CONSOL.h"
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>


/* ********************************************************************* */
/* Global definitions */


/* ********************************************************************* */
/* File local definitions */

static int CONSOL_wChannel=1;


/* ********************************************************************* */
/* Local functions */


/* ********************************************************************* */
/* Global functions */

void CONSOL_Init(int wBaud,U8 bFifoFlag)
{
        if(CONSOL_wChannel == 1)
        {
                rUBRLCR1 = ((0x03<<17)|(bFifoFlag<<16)|((115200*2)/wBaud-1));
                rSYSCON1 |= (0x01<<8);
        }
        else
        {
                rUBRLCR2 = ((0x03<<17)|(bFifoFlag<<16)|((115200*2)/wBaud-1));
                rSYSCON2 |= (0x01<<8);
        }
}

void CONSOL_Select(int wCh)
{
        CONSOL_wChannel = wCh;
}

char CONSOL_GetCh(void)
{
        if(CONSOL_wChannel == 1)
        {
                while(rSYSFLG1 & (0x01<<22));
                return rUARTDR1;
        }
        else
        {
                while(rSYSFLG2 & (0x01<<22));
                return rUARTDR2;
        }
}

char CONSOL_GetChar(char * pdata)
{
        if(CONSOL_wChannel==1)
        {
                if((rSYSFLG1 & (0x01<<22)) == 0x00)
                {
                        *pdata = rUARTDR1;
                        return True;
                }
                return False;
        }
        else
        {
                if((rSYSFLG2 & (0x01<<22)) == 0x00)
                {
                        *pdata = rUARTDR2;
                        return True;
                }
                return False;
        }
}

void CONSOL_GetString(char *string)
{
        char *string2=string;
        char c;
        while((c=CONSOL_GetCh())!='\r')
        {
        if(c=='\b')
        {
                if((int)string2<(int)string){CONSOL_Printf("\b \b");string--;}
        }
        else {*string++=c;CONSOL_SendCh(c);}
        }
        *string='\0';
        CONSOL_SendCh('\n');
}


#define __isalpha(c) (c >'9')
#define __isupper(c) !(c & 0x20)

int CONSOL_GetIntNum(void)
{
        char str[30];
        char *string=str;
        int base=10;
        int minus=0;
        int lastIndex;
        int result=0;
        int i;
        
        CONSOL_GetString(string);
        
        if(string[0]=='-'){minus=1;string++;}
        
        if(string[0]=='0' && (string[1]=='x' || string[1]=='X'))
        {
                base=16;
                string+=2;
        }
        
        lastIndex=strlen(string)-1;
        if( string[lastIndex]=='h' || string[lastIndex]=='H' )
        {
                base=16;
                string[lastIndex]=0;
                lastIndex--;
        }

        if(base==10)
        {
                result=atoi(string);
                result=minus ? (-1*result):result;
        }
        else
        {
                for(i=0;i<=lastIndex;i++)
                {
                        if(__isalpha(string[i]))
                        {
                                if(__isupper(string[i]))
                                        result=(result<<4)+string[i]-'A'+10;
                                else
                                        result=(result<<4)+string[i]-'a'+10;
                        }
                        else
                        {
                                result=(result<<4)+string[i]-'0';
                        }
                }
                result=minus ? (-1*result):result;
        }
        return result;
}


void CONSOL_SendCh(char data)
{
        if(CONSOL_wChannel == 1)
        {
                if(data=='\n')
                {
                        while(rSYSFLG1 & (0x01<<23));
//                        Delay(4);        //because the slow response of hyper_terminal 
                        rUARTDR1 = '\r';
                }
                while(rSYSFLG1 & (0x01<<23)); //Wait until THR is empty.
//                Delay(4);
                rUARTDR1 = data;

        }
        else
        {
                if(data=='\n')
                {
                        while(rSYSFLG2 & (0x01<<23));
//                        Delay(4);        //because the slow response of hyper_terminal 
                        rUARTDR2 = '\r';
                }
                while(rSYSFLG2 & (0x01<<23)); //Wait until THR is empty.
//                Delay(4);
                rUARTDR2 = data;
        }        
}                

void CONSOL_SendChar(char data)
{
        if(CONSOL_wChannel == 1)
        {
                while(rSYSFLG1 & (0x01<<23)); //Wait until THR is empty.
//                Delay(4);
                rUARTDR1 = data;
        }
        else
        {
                while(rSYSFLG2 & (0x01<<23)); //Wait until THR is empty.
//                Delay(4);
                rUARTDR2 = data;
        }        
}


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


void CONSOL_Scanf(char *pcText,...)
{
        va_list pArg;
        char cChar;
        int *pwInt;
        char *pbChar;
        
        va_start(pArg, pcText);
        while((cChar=*pcText++) != '\0')
        {
                if(cChar != '%')continue;
                switch(*pcText)
                {
                        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);
}

void CONSOL_Printf(char *fmt,...)
{
        va_list ap;
        char string[256];

        va_start(ap,fmt);
        vsprintf(string,fmt,ap);
        CONSOL_SendString(string);
        va_end(ap);
}


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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国产一区二区精华液 | 97se狠狠狠综合亚洲狠狠| 国产一区二区三区不卡在线观看| 久久99精品久久久| 国产一区二区伦理片| 国产精一品亚洲二区在线视频| 国产精品一二三四区| 成人动漫视频在线| 成人av在线电影| 欧美亚洲高清一区二区三区不卡| 欧美另类z0zxhd电影| 精品国产在天天线2019| 亚洲国产高清在线观看视频| 中文字幕五月欧美| 日韩理论片中文av| 天使萌一区二区三区免费观看| 国产在线视频一区二区三区| av亚洲精华国产精华精| 欧美午夜在线观看| 日韩视频在线你懂得| 国产日韩欧美高清在线| 亚洲日本一区二区三区| 日韩精品乱码av一区二区| 国模冰冰炮一区二区| 91免费视频大全| 91精品国模一区二区三区| 日韩欧美一级二级三级| 亚洲国产成人一区二区三区| 亚洲综合色区另类av| 蜜臀av一区二区在线观看| 成人avav影音| 91精品国产乱| 国产欧美精品一区二区色综合| 一区二区三区毛片| 美女精品一区二区| 91免费观看国产| 欧美哺乳videos| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲精品一区二区三区影院| 国产精品亲子伦对白| 亚洲6080在线| 国产成人精品网址| 欧美精品久久天天躁| 国产精品每日更新在线播放网址| 午夜国产精品影院在线观看| 成人综合在线观看| 欧美美女bb生活片| 国产精品青草综合久久久久99| 亚洲一区二区综合| 成人午夜激情影院| 日韩精品中午字幕| 亚洲免费大片在线观看| 国产精品一区二区91| 欧美日本在线播放| 成人免费一区二区三区在线观看| 久久99精品久久久久久| 欧美日韩中字一区| 久久久久久麻豆| 婷婷国产v国产偷v亚洲高清| av一区二区三区| 国产日韩v精品一区二区| 男女性色大片免费观看一区二区| 91久久线看在观草草青青 | 久热成人在线视频| 欧美日韩1234| 尤物视频一区二区| heyzo一本久久综合| 精品成人免费观看| 亚洲一级二级在线| 国产999精品久久久久久绿帽| 日韩免费性生活视频播放| 丝袜美腿亚洲一区二区图片| 欧洲激情一区二区| 一区二区三区国产精华| 激情文学综合插| 欧美性一二三区| 亚洲精品免费在线| gogo大胆日本视频一区| 国产精品麻豆视频| 成人avav在线| 国产欧美精品区一区二区三区| 亚洲大尺度视频在线观看| 在线国产电影不卡| 亚洲一区二区中文在线| 一本色道久久加勒比精品| 国产精品久久久久婷婷| 大尺度一区二区| 国产精品蜜臀在线观看| 成人福利电影精品一区二区在线观看| 久久精品夜色噜噜亚洲a∨| 国产高清无密码一区二区三区| 精品人在线二区三区| 国产曰批免费观看久久久| 精品国产亚洲在线| 国产在线麻豆精品观看| 久久久综合网站| 看国产成人h片视频| 精品国产百合女同互慰| 国产又黄又大久久| 久久精品亚洲乱码伦伦中文 | 91精品国产一区二区三区蜜臀 | 亚洲精品乱码久久久久久| 91浏览器打开| 亚洲精选一二三| 欧美亚洲丝袜传媒另类| 日韩高清不卡一区二区| 日韩视频123| 精品亚洲国产成人av制服丝袜 | 国产乱一区二区| 欧美激情在线一区二区| 99久久免费国产| 久久精品人人爽人人爽| www.色综合.com| 亚洲一区二区免费视频| 日韩视频一区二区在线观看| 国产一区二区三区黄视频| 自拍偷拍亚洲综合| 欧美一区二区三区不卡| 99麻豆久久久国产精品免费 | 精品日韩一区二区三区 | 日韩中文字幕亚洲一区二区va在线| 欧美sm美女调教| 91在线观看高清| 久久精品国产99国产| 成人免费视频在线观看| 日韩一二三四区| 99国产精品久久| 国产主播一区二区三区| 亚洲二区视频在线| 国产精品亲子伦对白| 日韩欧美一级二级| 欧美亚洲日本一区| 成人黄色网址在线观看| 秋霞午夜av一区二区三区| 国产精品护士白丝一区av| 日韩一区二区电影网| 91丨九色丨黑人外教| 精品一区二区三区免费毛片爱 | 91精品国产手机| 99久久国产免费看| 精品一区二区免费视频| 午夜欧美一区二区三区在线播放| 欧美精彩视频一区二区三区| 91精品国产aⅴ一区二区| 91网站视频在线观看| 国产成人在线视频网站| 蜜桃一区二区三区在线| 亚洲一区在线观看视频| 国产精品视频你懂的| 精品国产污网站| 亚洲天天做日日做天天谢日日欢| 欧美日韩大陆一区二区| 国产麻豆精品视频| 污片在线观看一区二区| 中文字幕亚洲欧美在线不卡| 欧美精品一区二区精品网| 欧美日韩国产乱码电影| 色欧美片视频在线观看在线视频| 国产成人免费av在线| 精品无人区卡一卡二卡三乱码免费卡| 亚洲不卡一区二区三区| 亚洲精品一二三| 亚洲日本va在线观看| 中文字幕精品三区| 久久久无码精品亚洲日韩按摩| 日韩美女视频一区二区在线观看| 欧美图区在线视频| 欧美午夜精品一区| 色欧美片视频在线观看在线视频| 91亚洲国产成人精品一区二区三 | 久久综合精品国产一区二区三区 | 国产盗摄精品一区二区三区在线| 久久国产乱子精品免费女| 日韩中文字幕麻豆| 日韩精品1区2区3区| 日韩av中文字幕一区二区 | 久久影视一区二区| wwwwww.欧美系列| 精品国产1区二区| www国产亚洲精品久久麻豆| 欧美精品一区二区不卡| 欧美成人精品3d动漫h| 日韩欧美高清在线| 日韩欧美一级二级三级| 精品日韩欧美在线| 久久婷婷久久一区二区三区| 久久精品这里都是精品| 国产精品女同互慰在线看| 国产欧美视频一区二区| 中文字幕va一区二区三区| 中文字幕中文字幕在线一区| 18欧美乱大交hd1984| 亚洲黄色小视频| 偷拍与自拍一区| 老司机免费视频一区二区| 另类中文字幕网| 国产成人av在线影院| 91一区二区三区在线观看| 欧美日韩综合在线免费观看| 777奇米四色成人影色区|