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

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

?? 44blib.c

?? UCOS2.83移植的s3c44b0x的最終版,如果那為燒友有好的建議請EMAIL我,不勝感激!
?? C
?? 第 1 頁 / 共 2 頁
字號:
/************************************************
 * NAME     : 44BLIB.C	                        *
 * BY       : HappyHd
 * Version  : 1.Sep.2006				        *
 ************************************************/

#include "44b.h"
#include "44blib.h"
#include "def.h"
#include "option.h"

#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>

#define STACKSIZE    0xa00 //SVC satck size(do not use user stack)
#define HEAPEND     (_ISR_STARTADDRESS-STACKSIZE-0x500) // = 0xc7ff000
	//SVC Stack Area:0xc(e)7ff000-0xc(e)7ffaff

extern char Image$$RW$$Limit[];

void *mallocPt=Image$$RW$$Limit;


/************************* SYSTEM 延時函數*************************/
static int delayLoopCount=400;
void Delay(int time)
{
    int i,adjust=0;

    if(time==0)
    {
		time=200;
		adjust=1;
		delayLoopCount=400;
		rWTCON=((MCLK/1000000-1)<<8)|(2<<3);    //MCLK/1M,Watch-dog disable,1/64,interrupt disable,reset disable
		rWTDAT=0xffff;//for first update
		rWTCNT=0xffff;//resolution=64us	@any MCLK 
		rWTCON=((MCLK/1000000-1)<<8)|(2<<3)|(1<<5); //Watch-dog timer start
    }

    for(;time>0;time--)

	for(i=0;i<delayLoopCount;i++);

    if(adjust==1)
    {
		rWTCON=((MCLK/1000000-1)<<8)|(2<<3);//Watch-dog timer stop
		i=0xffff-rWTCNT;		//1count->64us, 200*400 cycle runtime = 64*i us
		delayLoopCount=8000000/(i*64);	//200*400:64*i=1*x:100 -> x=80000*100/(64*i)   
    }
}

/************************* 端口方向設定 ****************************/
void Port_Init(void)
{
// * Port of Group A Control Registers *.
#define     PA9     0           // 0 = Output 1 = ADDR24
#define     PA8     1           // 0 = Output 1 = ADDR23
#define     PA7     1           // 0 = Output 1 = ADDR22
#define     PA6     1           // 0 = Output 1 = ADDR21
#define     PA5     1           // 0 = Output 1 = ADDR20
#define     PA4     1           // 0 = Output 1 = ADDR19
#define     PA3     1           // 0 = Output 1 = ADDR18
#define     PA2     1           // 0 = Output 1 = ADDR17
#define     PA1     1           // 0 = Output 1 = ADDR16
#define     PA0     1           // 0 = Output 1 = ADDR0
    rPCONA = (PA9<<9)|(PA8<<8)|(PA7<<7)|(PA6<<6)|(PA5<<5)|(PA4<<4)|(PA3<<3)|(PA2<<2)|(PA1<<1)|PA0;
    rPDATA = 0x0;

// * Port of Group B Control Registers *.
#define     PB10    1           // 0 = Output 1 = nGCS5
#define     PB9     1           // 0 = Output 1 = nGCS4
#define     PB8     1           // 0 = Output 1 = nGCS3
#define     PB7     1           // 0 = Output 1 = nGCS2
#define     PB6     1           // 0 = Output 1 = nGCS1
#define     PB5     1           // 0 = Output 1 = nWBE3/nBE3/DQM3
#define     PB4     1           // 0 = Output 1 = nWBE2/nBE2/DQM2
#define     PB3     1           // 0 = Output 1 = nSRAS/nCAS3
#define     PB2     1           // 0 = Output 1 = nSCAS/nCAS2
#define     PB1     1           // 0 = Output 1 = SCLK
#define     PB0     1           // 0 = Output 1 = SCKE
    rPCONB = (PB10<<10)|(PB9<<9)|(PB8<<8)|(PB7<<7)|(PB6<<6)|(PB5<<5)|(PB4<<4)|(PB3<<3)|(PB2<<2)|(PB1<<1)|PB0;
    rPDATB = 0x7ff;

// * Port of Group C Control Registers *.
#define     PC15    1           // 00 = Input 01 = Output 10 = DATA31 11 = nCTS0
#define     PC14    1           // 00 = Input 01 = Output 10 = DATA30 11 = nRTS0
#define     PC13    3           // 00 = Input 01 = Output 10 = DATA29 11 = RxD1
#define     PC12    3           // 00 = Input 01 = Output 10 = DATA28 11 = TxD1
#define     PC11    3           // 00 = Input 01 = Output 10 = DATA27 11 = nCTS1
#define     PC10    3           // 00 = Input 01 = Output 10 = DATA26 11 = nRTS1
#define     PC9     1           // 00 = Input 01 = Output 10 = DATA25 11 = nXDREQ1
#define     PC8     1           // 00 = Input 01 = Output 10 = DATA24 11 = nXDACK1
#define     PC7     3           // 00 = Input 01 = Output 10 = DATA23 11 = VD4
#define     PC6     3           // 00 = Input 01 = Output 10 = DATA22 11 = VD5
#define     PC5     3           // 00 = Input 01 = Output 10 = DATA21 11 = VD6
#define     PC4     3           // 00 = Input 01 = Output 10 = DATA20 11 = VD7
#define     PC3     1           // 00 = Input 01 = Output 10 = DATA19 11 = IISCLK  LED3
#define     PC2     1           // 00 = Input 01 = Output 10 = DATA18 11 = IISDI   LED2
#define     PC1     1           // 00 = Input 01 = Output 10 = DATA17 11 = IISDO   LED1
#define     PC0     1           // 00 = Input 01 = Output 10 = DATA16 11 = IISLRCK PUDIS12
    rPCONC = (PC15<<30)|(PC14<<28)|(PC13<<26)|(PC12<<24)|(PC11<<22)|(PC10<<20)|(PC9<<18)|(PC8<<16)|(PC7<<14)|(PC6<<12)|(PC5<<10)|(PC4<<8)|(PC3<<6)|(PC2<<4)|(PC1<<2)|PC0;
    rPDATC = 0x0ffff;            // All I/O Is High
    rPUPC  = ~0x0ff00;           // PULL UP RESISTOR should be enabled to I/O

// Port of Group D Control Registers.
#define     PD7     2           // 00 = Input 01 = Output 10 = VFRAME 11 = Reserved
#define     PD6     2           // 00 = Input 01 = Output 10 = VM     11 = Reserved
#define     PD5     2           // 00 = Input 01 = Output 10 = VLINE  11 = Reserved
#define     PD4     2           // 00 = Input 01 = Output 10 = VCLK   11 = Reserved
#define     PD3     2           // 00 = Input 01 = Output 10 = VD3    11 = Reserved
#define     PD2     2           // 00 = Input 01 = Output 10 = VD2    11 = Reserved
#define     PD1     2           // 00 = Input 01 = Output 10 = VD1    11 = Reserved
#define     PD0     2           // 00 = Input 01 = Output 10 = VD0    11 = Reserved
    rPCOND = (PD7<<14)|(PD6<<12)|(PD5<<10)|(PD4<<8)|(PD3<<6)|(PD2<<4)|(PD1<<2)|PD0;
    rPDATD = 0xff;
	rPUPD  = 0x0;

// Port of Group E Control Registers.
#define     PE8     2           // 00 = Reserved(ENDIAN) 01 = Output 10 = CODECLK 11 = Reserved
#define     PE7     1           // 00 = Input 01 = Output 10 = TOUT4 11 = VD7
#define     PE6     1           // 00 = Input 01 = Output 10 = TOUT3 11 = VD6
#define     PE5     1           // 00 = Input 01 = Output 10 = TOUT2 11 = TCLK in
#define     PE4     1           // 00 = Input 01 = Output 10 = TOUT1 11 = TCLK in
#define     PE3     1           // 00 = Input 01 = Output 10 = TOUT0 11 = Reserved
#define     PE2     2           // 00 = Input 01 = Output 10 = RxD0  11 = Reserved
#define     PE1     2           // 00 = Input 01 = Output 10 = TxD0  11 = Reserved
#define     PE0     3           // 00 = Input 01 = Output 10 = Fpllo out 11 = Fout out
    rPCONE = (PE8<<16)|(PE7<<14)|(PE6<<12)|(PE5<<10)|(PE4<<8)|(PE3<<6)|(PE2<<4)|(PE1<<2)|PE0;
    rPDATE = 0x1ff;  	        // All I/O Is High
    rPUPE  = 0x06;	            // PE8 do not have programmable pull-up resistor.  

// Port of Group F Control Registers.
#define     PF8     4           // 000 = Input 001 = Output 010 = nCTS1 011 = SIOCLK 100 = IISCLK Others = Reserved
#define     PF7     4           // 000 = Input 001 = Output 010 = RxD1  011 = SIORxD 100 = IISDI Others = Reserved
#define     PF6     4           // 000 = Input 001 = Output 010 = TxD1  011 = SIORDY 100 = IISDO Others = Reserved
#define     PF5     4           // 000 = Input 001 = Output 010 = nRTS1 011 = SIOTxD 100 = IISLRCK Others = Reserved
#define     PF4     1           // 00 = Input 01 = Output 10 = nXBREQ 11 = nXDREQ0
#define     PF3     1           // 00 = Input 01 = Output 10 = nXBACK 11 = nXDACK0
#define     PF2     1           // 00 = Input 01 = Output 10 = nWAIT 11 = Reserved
#define     PF1     2           // 00 = Input 01 = Output 10 = IICSDA 11 = Reserved
#define     PF0     2           // 00 = Input 01 = Output 10 = IICSCL 11 = Reserved
    rPCONF = (PF8<<19)|(PF7<<16)|(PF6<<13)|(PF5<<10)|(PF4<<8)|(PF3<<6)|(PF2<<4)|(PF1<<2)|PF0;
    rPDATF = 0x1ff;	            // All I/O Is High
    rPUPF  = 0x163;

// Port of Group G Control Registers.
#define     PG7     3           // 00 = Input 01 = Output 10 = IISLRCK 11 = EINT7
#define     PG6     3           // 00 = Input 01 = Output 10 = IISDO   11 = EINT6
#define     PG5     3           // 00 = Input 01 = Output 10 = IISDI   11 = EINT5
#define     PG4     3           // 00 = Input 01 = Output 10 = IISCLK  11 = EINT4
#define     PG3     3           // 00 = Input 01 = Output 10 = nRTS0   11 = EINT3
#define     PG2     3           // 00 = Input 01 = Output 10 = nCTS0   11 = EINT2
#define     PG1     3           // 00 = Input 01 = Output 10 = VD5     11 = EINT1
#define     PG0     3           // 00 = Input 01 = Output 10 = VD4     11 = EINT0
    rPCONG = (PG7<<14)|(PG6<<12)|(PG5<<10)|(PG4<<8)|(PG3<<6)|(PG2<<4)|(PG1<<2)|PG0;
    rPDATG = 0xff;
    rPUPG  = 0x00;               // should be enabled  

// Pull-up Control Register.
#define     HZSTOP  1           // 0 = Previous state of PAD 1 = HZ @ stop
#define     SPUCR1  1           // 0 = DATA[15:8] port pull-up resistor is enabled 1 = DATA[15:8] port pull-up resistor is disabled
#define     SPUCR0  1           // 0 = DATA[7:0] port pull-up resistor is enabled  1 = DATA[7:0] port pull-up resistor is disabled
    rSPUCR = (HZSTOP<<2)|(SPUCR1<<1)|SPUCR0;

// External Interrupt Control Register
#define     EINT7   2           // 000 = Low level interrupt 001 = High level interrupt
                                // 01x = Falling edge triggered 10x = Rising edge triggered
                                // 11x = Both edge triggered
#define     EINT6   2           // ...
#define     EINT5   2           // ...
#define     EINT4   2           // ...
#define     EINT3   2           // ...
#define     EINT2   2           // ...
#define     EINT1   2           // ... 
#define     EINT0   2           // ...
    rEXTINT = (EINT7<<28)|(EINT6<<24)|(EINT5<<20)|(EINT4<<14)|(EINT3<<12)|(EINT2<<8)|(EINT1<<4)|EINT0;
}


/************************* UART 串口函數****************************/

static int whichUart=0;

void Uart_Init(int mclk,int baud)
{
    int i;
    if(mclk==0)
	mclk=MCLK;
    rUFCON0=0x0;     //FIFO禁止
    rUFCON1=0x0;
    rUMCON0=0x0;
    rUMCON1=0x0;
//串口0
    rULCON0=0x3;     //普通模式,無流控制,1 停止位,8 數據位
    rUCON0=0x245;    //rx=edge,tx=level,disable timeout int.,enable rx error int.,normal,interrupt or polling
    rUBRDIV0=( (int)(mclk/16./baud + 0.5) -1 ); 
   

//串口1
    rULCON1=0x3;
    rUCON1=0x245;
    rUBRDIV1=( (int)(mclk/16./baud + 0.5) -1 );

    for(i=0;i<100;i++);
}


void Uart_Select(int ch)
{
    whichUart=ch;
}


void Uart_TxEmpty(int ch)
{
    if(ch==0)
	while(!(rUTRSTAT0 & 0x4));     //等待直到 tx shifter 為空.
    else
    	while(!(rUTRSTAT1 & 0x4)); //等待直到 tx shifter 為空.
}


char Uart_Getch(void)
{
    if(whichUart==0)
    {	    
	while(!(rUTRSTAT0 & 0x1)); //接受數據就緒.
	return RdURXH0();
    }
    else
    {
	while(!(rUTRSTAT1 & 0x1)); //接受數據就緒.
	return	rURXH1;
    }
}


char Uart_GetKey(void)
{
    if(whichUart==0)
    {	    
	if(rUTRSTAT0 & 0x1)    //接受數據就緒.
    	    return RdURXH0();
	else
	    return 0;
    }
    else
    {
	if(rUTRSTAT1 & 0x1)    //接受數據就緒.
	    return rURXH1;
	else
	    return 0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区在线视频| 欧美性大战久久久久久久蜜臀| 国产蜜臀av在线一区二区三区| 91久久精品午夜一区二区| 不卡的av在线播放| 日日摸夜夜添夜夜添国产精品 | 国产清纯白嫩初高生在线观看91 | 日韩二区三区在线观看| 亚洲va天堂va国产va久| 亚洲精品第一国产综合野| 国产精品久久久久久福利一牛影视 | 国产精品久久久久桃色tv| 美女一区二区在线观看| 日日噜噜夜夜狠狠视频欧美人 | 免费一级片91| 国产精品影视天天线| 国产一区二区三区免费观看| 国产成人精品一区二| 成人国产电影网| 久久久久久久综合色一本| 亚洲欧美一区二区三区极速播放 | 美国三级日本三级久久99 | 26uuu国产一区二区三区| 国产欧美视频一区二区| 蜜臀av一区二区| 欧美日韩和欧美的一区二区| 精品少妇一区二区三区| 2019国产精品| 麻豆91精品视频| 欧美高清一级片在线| 久久九九影视网| 亚洲精品国产a久久久久久| 国产激情视频一区二区三区欧美| 欧美变态tickle挠乳网站| 青青草一区二区三区| 欧美另类高清zo欧美| 五月天激情小说综合| 国产麻豆欧美日韩一区| 欧美精品一区二区三区四区| 国产精品国产三级国产| 国产91精品露脸国语对白| 欧美日韩国产成人在线免费| 一区二区三区四区在线播放| 玖玖九九国产精品| 91麻豆国产在线观看| 日韩午夜电影av| 亚洲日本一区二区| 黄色成人免费在线| 在线影视一区二区三区| 夜夜爽夜夜爽精品视频| 精品视频一区二区三区免费| 国产精品嫩草久久久久| 精品一区二区免费在线观看| 日本精品视频一区二区| 亚洲第一av色| 精品美女一区二区| 99久久久久久| 国产女主播在线一区二区| 成人黄色一级视频| 亚洲一区二区在线免费观看视频| 成人午夜电影网站| 国产亚洲精品超碰| 97久久精品人人爽人人爽蜜臀| 亚洲国产视频一区二区| 欧洲视频一区二区| 亚洲男人天堂一区| 欧美高清激情brazzers| 国产精品自拍三区| 亚洲精品网站在线观看| 日韩色视频在线观看| 99久久精品99国产精品| 蜜臀av性久久久久蜜臀av麻豆| 亚洲国产成人午夜在线一区| 国产一区二区三区久久久| 成人欧美一区二区三区1314 | 美腿丝袜在线亚洲一区| 国产精品久久二区二区| 欧美丰满高潮xxxx喷水动漫| 欧美不卡在线视频| 亚洲成a人v欧美综合天堂| 国产一区二区精品久久99| 国产精品污网站| 欧美一区二区视频观看视频| 成人精品国产免费网站| 奇米精品一区二区三区在线观看一| 日本一区二区三区国色天香 | 国产成人av福利| 舔着乳尖日韩一区| 亚洲激情欧美激情| 中文字幕av一区 二区| 日韩午夜中文字幕| 在线观看亚洲精品| 99精品黄色片免费大全| 国产美女精品人人做人人爽| 日韩和欧美一区二区| 亚洲制服丝袜一区| 最近中文字幕一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 欧美精品在线视频| 在线观看免费成人| av不卡免费在线观看| 亚洲欧美日韩中文播放| 久久精品夜色噜噜亚洲a∨| 日韩欧美国产一二三区| 国产美女精品一区二区三区| 日本中文在线一区| 亚洲电影在线播放| 亚洲一区二区三区四区在线免费观看| 亚洲国产成人在线| 国产精品久久久久久久久免费相片 | av不卡一区二区三区| 国产成人免费在线视频| 国产一区二区女| 激情国产一区二区| 国产一区二区导航在线播放| 国产呦萝稀缺另类资源| 国模少妇一区二区三区| 黑人巨大精品欧美黑白配亚洲| 国产在线精品视频| 国产一区二区剧情av在线| 国产伦精品一区二区三区免费迷| 狠狠色综合色综合网络| 国产老肥熟一区二区三区| 国产成人免费在线| 99视频有精品| 欧美三级一区二区| 欧美日韩日日骚| 精品女同一区二区| 久久精品网站免费观看| 中文字幕免费不卡在线| 日韩久久一区二区| 亚洲第一会所有码转帖| 另类小说一区二区三区| 国产高清在线观看免费不卡| caoporm超碰国产精品| 欧美性色欧美a在线播放| 欧美乱妇23p| 久久精品人人做人人综合 | 丁香婷婷综合五月| 一本久久精品一区二区| 九九**精品视频免费播放| 国产精品88av| 欧美性受xxxx| 久久伊人中文字幕| 亚洲天堂网中文字| 亚洲国产aⅴ天堂久久| 国产原创一区二区| 97精品国产97久久久久久久久久久久| 欧美日韩久久久| 国产亚洲一区字幕| 亚洲精品视频在线| 久久精品国产秦先生| 91蜜桃在线观看| 91精品国产乱码久久蜜臀| 国产日韩欧美亚洲| 偷拍亚洲欧洲综合| 成人午夜看片网址| 欧美一区二区三区电影| 国产精品激情偷乱一区二区∴| 亚洲一区二区三区三| 国产精华液一区二区三区| 欧美日韩国产美| 国产精品免费久久| 伦理电影国产精品| 色猫猫国产区一区二在线视频| 精品国精品国产| 亚洲香蕉伊在人在线观| 国产成人精品网址| 91精品欧美久久久久久动漫| 欧美精品日日鲁夜夜添| 国产精品久久99| 韩日欧美一区二区三区| 精品视频免费看| 亚洲欧洲av色图| 风间由美一区二区三区在线观看| 欧美色中文字幕| 亚洲少妇最新在线视频| 国产高清无密码一区二区三区| 日韩一区二区电影| 亚洲综合另类小说| www.日韩在线| 久久九九99视频| 国产一区二区不卡老阿姨| 日韩一区二区三区视频在线| 亚洲国产精品视频| 色婷婷av一区二区| 1024精品合集| www.日韩av| 自拍偷自拍亚洲精品播放| 国产精品亚洲一区二区三区妖精| 日韩欧美国产精品| 日本午夜一区二区| 日韩欧美中文字幕一区| 五月天激情综合网| 欧美久久一二三四区| 日本午夜精品视频在线观看| 欧美三级一区二区| 日韩福利电影在线观看| 日韩色视频在线观看| 麻豆成人91精品二区三区|