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

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

?? 2440lib.c

?? arm  ADS下仿真的源程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
    {
        if(data=='\n')
        {
            while(!(rUTRSTAT1 & 0x2));
            Delay(10);                 //because the slow response of hyper_terminal 
            rUTXH1 = '\r';
        }
        while(!(rUTRSTAT1 & 0x2));   //Wait until THR is empty.
        Delay(10);
        rUTXH1 = data;
    }   
    else if(whichUart==2)
    {
        if(data=='\n')
        {
            while(!(rUTRSTAT2 & 0x2));
            Delay(10);                 //because the slow response of hyper_terminal 
            rUTXH2 = '\r';
        }
        while(!(rUTRSTAT2 & 0x2));   //Wait until THR is empty.
        Delay(10);
        rUTXH2 = data;
    }       
}               

//====================================================================
void Uart_SendString(char *pt)
{
    while(*pt)
        Uart_SendByte(*pt++);
}

#if !USE_MAIN
//If you don't use vsprintf(), the code size is reduced very much.
void Uart_Printf(const char *fmt,...)
{
    va_list ap;
    char string[256];

    va_start(ap,fmt);
    vsprintf(string,fmt,ap);
    Uart_SendString(string);
    va_end(ap);
}
#endif

//**************************[ BOARD LED ]*********************************
void Led_Display(int data)
{
          //Active is low.(LED On)
          // GPF7  GPF6   GPF5   GPF4
          //nLED_8 nLED4 nLED_2 nLED_1
//    rGPFDAT = (rGPFDAT & 0xf) | !((data & 0xf)<<4);
    rGPFDAT = (rGPFDAT & ~(0xf<<4)) | ((~data & 0xf)<<4);    
}


//*************************[ Timer ]********************************
void Timer_Start(int divider)  //0:16us,1:32us 2:64us 3:128us
{
    rWTCON = ((PCLK/1000000-1)<<8)|(divider<<3);  //Watch-dog timer control register
    rWTDAT = 0xffff;  //Watch-dog timer data register
    rWTCNT = 0xffff;  //Watch-dog count register

      // Watch-dog timer enable & interrupt  disable
    rWTCON = (rWTCON & ~(1<<5) & ~(1<<2)) |(1<<5);
}

//=================================================================
int Timer_Stop(void)
{
    rWTCON = ((PCLK/1000000-1)<<8);
    return (0xffff - rWTCNT);
}


//*************************[ MPLL ]*******************************
void ChangeMPllValue(int mdiv,int pdiv,int sdiv)
{
	//Led_Display(0x8);

    rMPLLCON = (mdiv<<12) | (pdiv<<4) | sdiv;
	//Led_Display(0x0);
}


//************************[ HCLK, PCLK ]***************************
/*
// for 2410.
void ChangeClockDivider(int hdivn,int pdivn)
{
     // hdivn,pdivn FCLK:HCLK:PCLK
     //     0,0         1:1:1 
     //     0,1         1:1:2 
     //     1,0         1:2:2
     //     1,1         1:2:4
    rCLKDIVN = (hdivn<<1) | pdivn;    

    if(hdivn)
        MMU_SetAsyncBusMode();
    else 
        MMU_SetFastBusMode();
}
*/
// Modified for 2440.
void ChangeClockDivider(int hdivn_val,int pdivn_val)
{
	int hdivn=2, pdivn=0;
	
     // hdivn_val (FCLK:HCLK)ratio hdivn
     // 11           1:1       (0)
     // 12           1:2       (1)
     // 13           1:3       (3) 
     // 14           1:4       (2)
     // pdivn_val (HCLK:PCLK)ratio pdivn
     // 11           1:1       (0)
     // 12           1:2       (1)
	switch(hdivn_val) {
		case 11: hdivn=0; break;
		case 12: hdivn=1; break;
		case 13:
		case 16: hdivn=3; break;
		case 14: 
		case 18: hdivn=2; break;
	}
	
	switch(pdivn_val) {
		case 11: pdivn=0; break;
		case 12: pdivn=1; break;
	}
	
	//Uart_Printf("Clock division change [hdiv:%x, pdiv:%x]\n", hdivn, pdivn);
	rCLKDIVN = (hdivn<<1) | pdivn;
	//Uart_Printf("rCLKDIVN:%x]\n", rCLKDIVN);

	switch(hdivn_val) {
		case 16:		// when 1, HCLK=FCLK/6.
			rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<8); 
		break; 
		case 18: 	// when 1, HCLK=FCLK/8.
			rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<9); 
		break;
	}
	//Uart_Printf("rCAMDIVN:%x]\n", rCAMDIVN);
	
    if(hdivn!=0)
        MMU_SetAsyncBusMode();
    else 
        MMU_SetFastBusMode();
}



//**************************[ UPLL ]*******************************
void ChangeUPllValue(int mdiv,int pdiv,int sdiv)
{
    rUPLLCON = (mdiv<<12) | (pdiv<<4) | sdiv;
}


//*************************[ General Library ]**********************
#if !USE_MAIN
void * malloc(unsigned nbyte) 
//Very simple; Use malloc() & free() like Stack
//void *mallocPt=Image$$RW$$Limit;
{
    void *returnPt = mallocPt;

    mallocPt = (int *)mallocPt+nbyte/4+((nbyte%4)>0); //To align 4byte

    if( (int)mallocPt > HEAPEND )
    {
        mallocPt = returnPt;
        return NULL;
    }
    return returnPt;
}

//-------------------------------------------------------------------
void free(void *pt)
{
    mallocPt = pt;
}
#endif


 void ChangeSromParameter(char bank, char minacc)  // only for Tacc
{
    int acc;

    //1000000/(hclk/1000000.)=Unit Period(ns)*1000
    acc = (int)(minacc*(HCLK/1000000.)/1000+0.5);	

    if(acc<=1)
		acc=0;    	
    else if(acc==2)
	 	acc=1;
    else if(acc==3)
	 	acc=2;
    else if(acc==4)
	 	acc=3;
    else if((5<acc)&&(acc<=6))
   		acc=4;
    else if((7<acc)&&(acc<=8))
	 	acc=5;
    else if((9<acc)&&(acc<=10))
   		acc=6;	
    else if(11<acc)
	 	acc=7;
	
    switch(bank)
    {
	  case 0 : rBANKCON0 |= (acc<<8); break;
	  case 1 : rBANKCON1 |= (acc<<8); break;
	  case 2 : rBANKCON2 |= (acc<<8); break;
	  case 3 : rBANKCON3 |= (acc<<8); break;
	  case 4 : rBANKCON4 |= (acc<<8); break;
	  case 5 : rBANKCON5 |= (acc<<8); break;
    }	
}


// each timing parameter's unit is nano second..
void ChangeSdramParameter(char bank_num, int minrc, int minrcd, int minrp, int refresh, int col_addr, int cl, char banksize)
{
    int rc, rcd, rp, rcnt, scan;

    //1000000/(hclk/1000000.)=Unit Period(ns)*1000
    rc = (int)(minrc*(HCLK/1000000.)/1000+0.5)-4;
    rcd = (int)(minrcd*(HCLK/1000000.)/1000+0.5)-2;
    rp = (int)(minrp*(HCLK/1000000.)/1000+0.5)-2;
	rcnt = (int)(2048+1-(HCLK/1000000.)*(refresh/1000.)+0.5);
	scan = col_addr-8;

	if (rc<0) rc=0; if (rc>3) rc = 3;
	if (rcd<0) rcd=0; if (rcd>2) rcd = 2;
	if (rp<0) rp=0; if (rp>2) rp = 2;
	if (cl==1) cl = 0;	
	switch(banksize)
	{
	case 2 : banksize = 4; break;
	case 4 : banksize = 5; break;
	case 8 : banksize = 6; break;
	case 16 : banksize = 7; break;
	case 32 : banksize = 0; break;
	case 64 : banksize = 1; break;
	default : banksize = 2; break; // 128MB/128MB
	}

//	Uart_Printf("rc=%d, rcd=%d, rp=%d, rcnt=%d, scan=%d, cl=%d, banksize=%d\n", rc, rcd, rp, rcnt, scan, cl, banksize);
	
    switch(bank_num)
    {
    case 0:
    case 6:
	default:
		rBANKCON6 = ( rBANKCON6 & ~((3<<15)|(0xf<<0)) ) | (3<<15)|(rcd<<2)|(scan); // SDRAM, Trcd, column address number
		rMRSRB6 = (rMRSRB6 & ~(3<<4)) | (cl<<4);
	break;
	case 1:
    case 7: // bank 7
		rBANKCON7 = ( rBANKCON7 & ~((3<<15)|(0xf<<0)) ) | (3<<15)|(rcd<<2)|(scan); // SDRAM, Trcd, column address number
		rMRSRB7 = (rMRSRB7 & ~(3<<4)) | (cl<<4);
	break;
    }	
	rREFRESH = (rREFRESH & ~(0x3f<<18)) | (1<<23)|(0<<22)|(rp<<20)|(rc<<18)|(rcnt); // refresh enable, auto refresh, Trp, Trc, Refresh counter
	rBANKSIZE = (rBANKSIZE & ~(7<<0)) | (banksize); // SCLK power save mode, 128/128 bank
	
}

void Max1718_Set(int voltage)
{

     int vtg;
	//////////////////////////////////////////////
	//   D4    D3  D2   D1     D0
	//	0	 1	0 	0	 0		// 1.35V
	//	0	 1	0 	0	 1		// 1.30V
	//	0	 1	0 	1	 0		// 1.25V
	//	0	 1	0 	1	 1		// 1.20V
	//	0	 1	1 	0	 0		// 1.15V
	//	0	 1	1 	0	 1		// 1.10V
	//	0	 1	1 	1	 0		// 1.05V
	//	0	 1	1 	1	 1		// 1.00V
	//	1	 0	0 	0	 1		// 0.95V
	//	1	 0	0 	1	 1		// 0.90V
	//	1	 0	1 	0	 1		// 0.85V
	//	1	 0	1 	1	 1		// 0.80V
	
    vtg=voltage;
	rGPBCON = (rGPBCON&~((3<<20) |(3<<16) |(3<<14))) | (1<<20) | (1<<16) | (1<<14);
	// GPB7, 8, 10 : Output
	rGPFCON=(rGPFCON&~(0xff<<8))|(0x55<<8);  // GPF4~7: Output , shared with LED4~7

     switch (vtg)
	{
	case 135:
		 rGPBDAT=(rGPBDAT&~(1<<7)) |(0<<7);	//D4
	      rGPFDAT=(rGPFDAT&~(0xf<<4))|(1<<7)|(0<<6)|(0<<5)|(0<<4);	//D3~0
	      break;

	
	case 130:
		 rGPBDAT=(rGPBDAT&~(1<<7)) |(0<<7);	//D4
		 rGPFDAT=(rGPFDAT&~(0xf<<4))|(1<<7)|(0<<6)|(0<<5)|(1<<4); //D3~0
		 break;
       
	case 125:
		 rGPBDAT=(rGPBDAT&~(1<<7)) |(0<<7);	//D4
		 rGPFDAT=(rGPFDAT&~(0xf<<4))|(1<<7)|(0<<6)|(1<<5)|(0<<4); //D3~0
		break;

	case 120:
		 rGPBDAT=(rGPBDAT&~(1<<7)) |(0<<7);	//D4
		 rGPFDAT=(rGPFDAT&~(0xf<<4))|(1<<7)|(0<<6)|(1<<5)|(1<<4); //D3~0
		 break;

	case 115:
		 rGPBDAT=(rGPBDAT&~(1<<7)) |(0<<7);	//D4
		 rGPFDAT=(rGPFDAT&~(0xf<<4))|(1<<7)|(1<<6)|(0<<5)|(0<<4); //D3~0
		 break;

	case 110:
		 rGPBDAT=(rGPBDAT&~(1<<7)) |(0<<7);	//D4
		 rGPFDAT=(rGPFDAT&~(0xf<<4))|(1<<7)|(1<<6)|(0<<5)|(1<<4); //D3~0
		 break;

	case 105:
		 rGPBDAT=(rGPBDAT&~(1<<7)) |(0<<7);	//D4
		 rGPFDAT=(rGPFDAT&~(0xf<<4))|(1<<7)|(1<<6)|(1<<5)|(0<<4); //D3~0
		 break;

	case 100:
		 rGPBDAT=(rGPBDAT&~(1<<7)) |(0<<7);	//D4
		 rGPFDAT=(rGPFDAT&~(0xf<<4))|(1<<7)|(1<<6)|(1<<5)|(1<<4); //D3~0
		break;

	case 95:
		 rGPBDAT=(rGPBDAT&~(1<<7)) |(1<<7);	//D4
		 rGPFDAT=(rGPFDAT&~(0xf<<4))|(0<<7)|(0<<6)|(0<<5)|(1<<4); //D3~0
		 break;

	case 90:
		 rGPBDAT=(rGPBDAT&~(1<<7)) |(1<<7);	//D4
		 rGPFDAT=(rGPFDAT&~(0xf<<4))|(0<<7)|(0<<6)|(1<<5)|(1<<4); //D3~0
		 break;

	case 85:
		 rGPBDAT=(rGPBDAT&~(1<<7)) |(1<<7);	//D4
		rGPFDAT=(rGPFDAT&~(0xf<<4))|(0<<7)|(1<<6)|(0<<5)|(1<<4); //D3~0
		 break;

      	case 80:
		 rGPBDAT=(rGPBDAT&~(1<<7)) |(1<<7);	//D4
	       rGPFDAT=(rGPFDAT&~(0xf<<4))|(0<<7)|(1<<6)|(1<<5)|(1<<4); //D3~0
		 break;

       default:	// 1.2V
		 rGPBDAT=(rGPBDAT&~(1<<7)) |(0<<7);	//D4
		 rGPFDAT=(rGPFDAT&~(0xf<<4))|(1<<7)|(0<<6)|(1<<5)|(1<<4); //D3~0
		 break;

		
	}
		 
	rGPBDAT&=~(1<<8);   //Latch enable
	rGPBDAT|=(1<<10);   //Output enable
	rGPBDAT|=(1<<8);	 //Latch disable

}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜av影视| 国产久卡久卡久卡久卡视频精品| 精品少妇一区二区三区| 91福利在线看| 91在线国产福利| 国产美女一区二区| 国产成人午夜视频| 久久不见久久见免费视频7| 五月激情丁香一区二区三区| 亚洲欧美日韩国产综合| 国产精品毛片久久久久久久| 精品美女一区二区三区| 日韩三级视频中文字幕| 7777精品伊人久久久大香线蕉完整版 | 国产精品人妖ts系列视频| 久久久噜噜噜久久人人看| 精品国产伦理网| 久久久久久久av麻豆果冻| 久久久久久99久久久精品网站| 欧美xxxxx裸体时装秀| 欧美不卡一区二区三区四区| 日韩久久久久久| 欧美日韩一区成人| 3d动漫精品啪啪1区2区免费| 在线观看视频欧美| 欧美日韩第一区日日骚| 欧美蜜桃一区二区三区| 欧美一区二区福利视频| 欧美一区二区日韩| 亚洲精品在线三区| 国产精品久久久久婷婷二区次| 亚洲天堂av一区| 美腿丝袜在线亚洲一区| 成人h动漫精品一区二| 欧美亚洲国产一区二区三区 | 国产亚洲欧洲一区高清在线观看| 26uuu色噜噜精品一区二区| 亚洲欧洲国产日韩| 另类小说欧美激情| 97精品电影院| 91精品国产综合久久福利| 国产亚洲短视频| 蜜桃久久久久久| 色悠悠久久综合| 久久色中文字幕| 日韩av一二三| 欧美日韩一区二区不卡| 中文字幕在线观看不卡| 极品尤物av久久免费看| 在线免费观看视频一区| 中文一区二区在线观看| 男女性色大片免费观看一区二区 | 91影视在线播放| 3751色影院一区二区三区| 亚洲精选一二三| av亚洲精华国产精华| 久久精品视频一区| 久久99国产精品成人| 日韩精品一区二区三区四区| 日韩中文欧美在线| 欧美另类久久久品| 午夜精品爽啪视频| 欧美日韩免费观看一区三区| 一区二区高清视频在线观看| 成人午夜视频在线| 国产精品超碰97尤物18| 91在线小视频| 一区二区三区日本| 欧美日韩不卡在线| 久久国产成人午夜av影院| 91精品国产品国语在线不卡| 蜜臀久久久99精品久久久久久| 在线电影院国产精品| 美女一区二区三区| 日韩av成人高清| 国产午夜亚洲精品羞羞网站| 成人影视亚洲图片在线| 亚洲色图制服诱惑| 欧美剧情片在线观看| 理论片日本一区| 国产精品三级视频| 色婷婷久久99综合精品jk白丝| 亚洲一区在线视频观看| 日韩亚洲欧美在线| 欧美日韩综合在线| 国产一区二三区好的| 国产精品超碰97尤物18| 欧美日韩视频在线观看一区二区三区 | 久久精品99国产国产精| 91精品久久久久久久久99蜜臂| 亚洲综合在线五月| 日韩一区二区三区av| 99视频一区二区三区| 日韩av中文字幕一区二区三区| 国产精品不卡在线观看| 日韩午夜中文字幕| 色综合色狠狠综合色| 美脚の诱脚舐め脚责91| 亚洲综合视频在线观看| 久久综合网色—综合色88| 欧美日韩在线观看一区二区| 国产在线麻豆精品观看| 日韩av中文字幕一区二区三区| 国产精品久久久久久久久免费樱桃 | 色欧美乱欧美15图片| 偷偷要91色婷婷| 亚洲国产成人av网| 亚洲精品日日夜夜| 国产精品久久久久9999吃药| 26uuu国产日韩综合| 欧美乱熟臀69xxxxxx| 欧美天堂一区二区三区| 在线视频国内一区二区| 99久久99久久综合| 99综合电影在线视频| 91视频一区二区| www.日本不卡| 在线影视一区二区三区| 一本到高清视频免费精品| 91论坛在线播放| 色呦呦一区二区三区| 欧美三级在线看| 欧美大度的电影原声| 欧美va在线播放| 国产精品久线在线观看| 国产精品传媒视频| 一区二区三区影院| 视频精品一区二区| 美女视频网站黄色亚洲| 国产一区二区三区日韩 | 欧美日韩你懂的| 欧美午夜精品一区| 精品国产乱码久久久久久久久| 国产亚洲欧美日韩在线一区| 国产精品乱子久久久久| 亚洲高清一区二区三区| 久久国产日韩欧美精品| 欧美一区日本一区韩国一区| 国产亚洲精品资源在线26u| 国产精品网站在线观看| 亚洲中国最大av网站| 狠狠色丁香久久婷婷综合丁香| 成人免费视频一区| 欧美一区2区视频在线观看| 国产人久久人人人人爽| 日韩精品乱码av一区二区| 国产高清亚洲一区| 91精品婷婷国产综合久久| 欧美国产一区二区| 久久精品国产在热久久| 91黄视频在线| 中文字幕巨乱亚洲| 国内精品第一页| 欧美色综合天天久久综合精品| 国产三级久久久| 国产又粗又猛又爽又黄91精品| 在线免费不卡电影| 亚洲欧美偷拍卡通变态| 国产精品911| 久久久噜噜噜久久中文字幕色伊伊 | 日韩免费高清av| 天堂在线一区二区| 在线观看精品一区| 亚洲免费观看高清完整版在线 | 美日韩黄色大片| 国产日韩欧美a| 精品午夜久久福利影院 | 精品国产乱码久久久久久老虎 | 美女久久久精品| 欧美一级夜夜爽| 久久国产精品无码网站| 欧美成人在线直播| 黄色精品一二区| 国产欧美日韩三区| 成人美女在线视频| 国产精品三级在线观看| 99国产精品久久久久久久久久| 国产精品成人一区二区三区夜夜夜| 成人一级视频在线观看| 日本一区二区电影| 色爱区综合激月婷婷| 天天操天天干天天综合网| 制服丝袜日韩国产| 国产大陆亚洲精品国产| 成人免费在线视频观看| 欧美色电影在线| 九九精品视频在线看| 综合自拍亚洲综合图不卡区| 日本电影欧美片| 免费观看一级欧美片| 亚洲国产高清aⅴ视频| 色av一区二区| 国产一区二区三区视频在线播放| 国产精品区一区二区三区| 8x福利精品第一导航| 97精品国产97久久久久久久久久久久| 亚洲国产精品精华液网站| 国产清纯白嫩初高生在线观看91 | 99久久99精品久久久久久| 视频在线观看一区二区三区|