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

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

?? 44blib.c

?? ARM7(s3c44b0)開發平臺LCD驅動程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
;************************************************************************************************************
;*				        				北京精儀達盛科技有限公司
;*                                     	     研    發    部
;*
;*                                 	     http://www.techshine.com
;*
;*--------------------------------------------- 文件信息 ----------------------------------------------------                                      
;*
;* 文件名稱 : 44blib.c	
;* 文件功能 : 該文件為S3C44B0硬件平臺的通用函數初始化。
;* 補充說明 : 
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : ARM7開發小組
;* 修改日期 : 2004/04/25
;* 版本聲明 : V1.0.1
;*-------------------------------------------- 歷史版本信息 -------------------------------------------------
;* 文件作者 : ARM7開發小組
;* 創建日期 : 2004/04/20
;* 版本聲明 : v1.0.0
;*-----------------------------------------------------------------------------------------------------------
;*-----------------------------------------------------------------------------------------------------------
;************************************************************************************************************
;*/
#include "..\inc\44b.h"
#include "..\inc\44blib.h"
#include "..\inc\option.h"

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

static int delayLoopCount = 400;

/*
*************************************************************************************************************
- 函數名稱 :  void Delay(int time)
- 函數說明 :  系統延時
- 輸入參數 :  time
- 輸出參數 :  無
- 詳細說明 :  該函數通過看門狗定時器從0xffff減到某個數值(0x9b4)所對應的時間,來推出當time=1時,延時函數空轉
-             delayLoopCount個循環的時間,這個時間約為100us。具體計算是:(60x64)/60M,60這是一個看門狗時鐘對
-             應的時間,當delayLoopCount=400,time = 200;時,即有80000個循環時,看門狗定時器使用了i個時鐘完
-             成,每個時鐘的時間為(60x64)/60M,它乘以i,就是80000個循環所花的時間,那么,一秒要用多少個循環
-             呢?80000 --------> (60x64)*i/60M 秒
-                   x   -------->     100/1M           那么100us對應多少個循環呢?
-             所以,x = (80000*100/1M)*(60M/60X64*i) = 400*100/(i*64/200);
*************************************************************************************************************
*/
void Delay(int time)
{														              // time=0: 通過看門狗定時器調整延時函數
    int i,adjust = 0;									                            // time>0: 循環時間的數目
    													                                        // 最小 100us 
    if (time == 0)
    {
		time = 200;
		adjust = 1;
		delayLoopCount = 400;
		rWTCON = ((MCLK/1000000 - 1)<<8 ) | (2<<3);  	          // 1/64, Watch-dog,nRESET,interrupt disable
	 	rWTDAT = 0xffff;
		rWTCNT = 0xffff;	 
		rWTCON = ((MCLK/1000000-1)<<8)|(2<<3)|(1<<5); 	    // 1/64,Watch-dog enable, nRESET,interrupt disable 
    }
    
    for (;time>0;time--)
		for (i=0;i<delayLoopCount;i++);
		
    if (adjust == 1)
    {
		rWTCON = ((MCLK/1000000-1)<<8)|(2<<3);
		i = 0xffff - rWTCNT;   							                            //  1count/16us?????????
		delayLoopCount = 400*100/(i*64/200);			                              //  400*100/(i*64/200)   
    }
}

/*
*************************************************************************************************************
- 函數名稱 :  Port_Init(void)
- 函數說明 :  端口初始化
- 輸入參數 :  無
- 輸出參數 :  無
*************************************************************************************************************
*/
	//注意:應遵循配置端口的次序
	// 1) 設定端口初值 2) 配置控制寄存器 3) 配置上拉電阻寄存器
void Port_Init(void)
{
	//端口A控制組 
	//  BIT 9	   8	  7		 6		 5		 4		 3		 2		 1		 0            
	//      GPA9   GPA8  ADDR22	 ADDR21	 ADDR20	 ADDR19	 ADDR18	 ADDR17	 ADDR16	 ADDR0   	      
	//      0,	   0,	 1,      1,      1,      1,      1,      1,      1,      1    
	//      GPA9->SMCALE, GPA8->SMCCLE
	rPCONA = 0xff;
		
	//端口B控制組
	//  BIT  10    9     8         7         6	    5      4     3       2	    1	   0	    
	//      /CS5   /CS4  /CS3     /CS2       /CS1   0      0     /SRAS   /SCAS  SCLK   SCKE      
	//       		     ethernet NANFLASH   USB    LED    LED 	 Sdram   Sdram  Sdram  Sdram     
	//      1,      1,    1,      1,         1,     0,     0,    1,      1,     1,     1          
	rPDATB = 0x3cf;
	rPCONB = 0x7cf;
    
	//端口C控制組
	// BIT    15	  14	   13     12	 11	    10	    9		8                       
	//        O		  0		   RXD1   TXD1	 nCTS1	nCTS0   O	    M/S	                      
	//        NAN_CLE NAN_ALE  Uart1  Uart1	 nCTS1	nCTS0	NAN_CE	USB                 
	//        01	  01	   11	  11	 11	    11		01		01                      

	// BIT	  7		  6		   5	  4		 3		2		1		0
	//		  lcd	  lcd	   lcd    lcd 	 IIS	IIS		IIS		IIS
	//		  VD4	  VD5	   VD6	  VD7	 IISCLK	IISDI	IISDO	IISLRCK
	//		  11	  11	   11	  11	 11	    11	    11	    11
	rPDATC = 0xfeff;	//All IO is high
	rPCONC = 0x5ff5ffff;	
	rPUPC  = 0x0000;	//PULL UP RESISTOR should be enabled to I/O

	//端口D控制組
	//  BIT   7       6      5      4      3      2      1     0                                                      
	//        VFRAME  VM     VLINE  VCLK   VD3    VD2    VD1   VDO                                                      
	//        10      10     10     10     10     10     10    10                                                     
	//rPDATD= 0xff;
	rPCOND= 0xaaaa;
	rPUPD = 0x00;
	
	//端口E控制組
	//  Bit	 8		  7	      6		  5		 4		3		2		1		0	
	//		CODECLK	  TOUT4	  TOUT3	  TOUT2	 TOUT1	TOUT0	RXD0	TXD0	IN	
	//			10	  10	  10	  10	 10		10		10		10		00	
	rPDATE = 0x1;
	rPCONE = 0x2AAA8;
	rPUPE  = 0x1FE;

	//端口F控制組
	//  Bit  8		  7		   6		5		 4	      3		   2	  1       0                          
	//       out     in        out      out      nXDREQ0  nXDACK0  nWAIT  IICSDA  IICSCL                  
	//       001	 000	   001		001	     11		  11	   10	  10      10                      
	rPDATF = 0x1FF;
	rPCONF = 0x827EA;
	rPUPF  = 0x0;

	//端口G控制組
	//  BIT  7   	6      5   	  4   	 3     2   	 1      0    	 
	//       INT7   INT6   INT5   INT4   INT3  INT2  INT1   INT0     
	//       11     11     11     11     11    11    11     11       
	rPDATG = 0x00;
	rPCONG = 0xfdff;
	rPUPG  = 0x0;	
	
	rSPUCR=0x7;  			//D15-D0 pull-up disable
	rEXTINT=0x22202222;       	//所有的外部硬件中斷為低電平觸發
	//rEXTINT=0x00;       	//所有的外部硬件中斷為低電平觸發
}
/*
*************************************************************************************************************
- 函數名稱 : Uart_Init(int mclk,int baud,char port)
- 函數說明 : 串口初始化
- 輸入參數 : mclk,baud
- 輸出參數 : 無
*************************************************************************************************************
*/
void Uart_Init(int mclk,int baud,char port)
{
    int i;
    if (mclk == 0)
	{
		mclk = MCLK;
    }
    i = mclk / (baud * 16);							                 // 圓整 (int)((mclk/16.)/baud + 0.5) -1;
    if (port == 0)
    {												                                 //UART0 配置各控制寄存器
        rUFCON0 = 0x0;           					                                             // 禁用 FIFO 
        rUMCON0 = 0x0;
        rULCON0=0x3;     							                //正常模式,無奇偶校驗,一個停止位,8個數據位
        //rULCON0=0x7;     						                    //正常模式,無奇偶校驗,兩個停止位,8個數據位
        rUCON0=0x245;     //RX邊沿觸發,TX電平觸發,禁用延時中斷,使用RX 錯誤中斷,正常操作模式,中斷請求或表決模式
        rUBRDIV0 = i;								                       //( (int)(mclk/16/baud + 0.5) -1 );
     }
    else if (port == 1)
    {												                                 //UART0 配置各控制寄存器
	 	rUFCON1 = 0x0;								                                             // 禁用 FIFO
    	rUMCON1 = 0x0;
        rULCON1 = 0x3;     							                //正常模式,無奇偶校驗,一個停止位,8個數據位
    	//rULCON1 = 0x7;							                //正常模式,無奇偶校驗,兩個停止位,8個數據位							
    	rUCON1  = 0x245;  //RX邊沿觸發,TX電平觸發,禁用延時中斷,使用RX 錯誤中斷,正常操作模式,中斷請求或表決模式
    	rUBRDIV1 = i;								                      //( (int)(mclk/16./baud + 0.5) -1 );
    }
    for(i=0;i<100;i++);
}

/*
*************************************************************************************************************
- 函數名稱 : Uart_TxEmpty(int port)
- 函數說明 : 等待發送轉換寄存器空
- 輸入參數 : port
- 輸出參數 : 無
*************************************************************************************************************
*/
void Uart_TxEmpty(char port)
{
    if (port == 0)
		while(!(rUTRSTAT0 & 0x4)); 					                                  //一直等到發送轉換器空.
    else
    	while(!(rUTRSTAT1 & 0x4)); 					                                  //一直等到發送轉換器空.
}

/*
*************************************************************************************************************
- 函數名稱 : Uart_Getch
- 函數說明 : 選擇接收數據就緒的串口 
- 輸入參數 : port
- 輸出參數 : RdURXH0(),RdURXH1()
*************************************************************************************************************
*/
char Uart_Getch(char port)
{
    if (port == 0)
    {	    
		while(!(rUTRSTAT0 & 0x1)); 					                                          //接收數據就緒
		return RdURXH0();
    }
    else
    {
		while(!(rUTRSTAT1 & 0x1)); 					                                          //接收數據就緒
		return	rURXH1;
    }
}

/*
*************************************************************************************************************
- 函數名稱 : Uart_GetKey
- 函數說明 : 得到串口的鍵值
- 輸入參數 : port
- 輸出參數 : RdURXH0()或0,rURXH1或0
*************************************************************************************************************
*/
char Uart_GetKey(char port)
{
    if (port == 0)
    {	    
		if(rUTRSTAT0 & 0x1)    						                                           //接收數據就緒
    	    return RdURXH0();
		else
	    	return 0;
    }
    else
    {
		if(rUTRSTAT1 & 0x1)    						                                           //接收數據就緒

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费观看30秒视频久久| 免费不卡在线视频| 国产精品美女久久福利网站| 欧美电视剧免费全集观看| 欧美久久婷婷综合色| 欧美嫩在线观看| 欧美精品色综合| 国产欧美日韩综合精品一区二区 | 日韩欧美一二三四区| 日韩视频在线观看一区二区| 日韩欧美国产一区在线观看| 欧美国产精品一区二区| 亚洲视频中文字幕| 日本v片在线高清不卡在线观看| 青娱乐精品在线视频| 高清在线观看日韩| 欧美一区二区三区视频| 国产精品狼人久久影院观看方式| 亚洲天堂久久久久久久| 九一九一国产精品| 一本一道综合狠狠老| 精品黑人一区二区三区久久| 一区二区三区资源| 国产一区二区不卡老阿姨| 成人国产精品免费观看| 欧美区在线观看| 亚洲一区在线观看视频| 97精品电影院| 久久久影院官网| 婷婷久久综合九色国产成人| 国产成人欧美日韩在线电影| 在线观看亚洲精品| 国产精品欧美极品| 黑人精品欧美一区二区蜜桃| 欧美日韩亚洲综合| 日韩在线一区二区| 在线亚洲精品福利网址导航| 中文字幕av一区二区三区| 国产经典欧美精品| 久久精品视频在线看| 懂色中文一区二区在线播放| 欧美大白屁股肥臀xxxxxx| 日韩高清不卡一区| 欧美精品视频www在线观看| 视频一区二区中文字幕| 欧美群妇大交群的观看方式| 亚洲自拍欧美精品| 在线不卡免费欧美| 麻豆精品在线观看| 精品国产1区2区3区| 国产成人免费在线视频| 一区二区三区久久久| 精品三级在线观看| 91传媒视频在线播放| 日本亚洲三级在线| 日本一区二区久久| 欧美日韩综合在线| 国产一区二区三区四区在线观看| 国产三级一区二区| 欧美剧在线免费观看网站| 国产在线精品一区二区夜色| 亚洲欧洲精品一区二区三区| 日韩你懂的电影在线观看| 99国产精品久久久| 极品少妇xxxx精品少妇偷拍| 国产精品久久久久影院亚瑟| 精品视频免费看| 国产一区不卡在线| 日韩高清国产一区在线| 日韩毛片在线免费观看| 日韩精品专区在线影院观看| 在线欧美日韩精品| 国产九九视频一区二区三区| 视频一区国产视频| 亚洲人成影院在线观看| 中文字幕精品三区| 国产亚洲欧美日韩日本| 精品久久一二三区| 欧美精品vⅰdeose4hd| 91视视频在线观看入口直接观看www | 欧美三级电影网| 972aa.com艺术欧美| 韩国v欧美v日本v亚洲v| 国内精品免费在线观看| 粉嫩绯色av一区二区在线观看| 国产综合久久久久久久久久久久| 亚洲一二三专区| 日韩精品视频网站| 美女一区二区三区在线观看| 韩国精品免费视频| 国内不卡的二区三区中文字幕| 久久99精品久久久久久国产越南| 日本一不卡视频| 看电视剧不卡顿的网站| 成人av在线播放网址| 91精彩视频在线| 日韩欧美激情一区| 亚洲人成人一区二区在线观看 | 肉色丝袜一区二区| 久久97超碰国产精品超碰| 国产成人欧美日韩在线电影| www.亚洲色图| 欧美色中文字幕| 精品国产sm最大网站免费看| 国产欧美一区视频| 夜夜嗨av一区二区三区中文字幕 | 这里是久久伊人| 国产精品毛片无遮挡高清| 石原莉奈在线亚洲三区| 国产精品一级黄| 日韩欧美一区中文| 亚洲综合另类小说| 日韩欧美国产成人一区二区| 偷拍自拍另类欧美| 欧美日韩三级视频| 免费欧美在线视频| 91精品久久久久久蜜臀| 亚洲久草在线视频| 91福利资源站| 午夜精品久久久久久不卡8050| 91丨九色丨国产丨porny| 亚洲精品一二三四区| 99久久综合狠狠综合久久| 国产精品麻豆久久久| 91啪亚洲精品| 午夜成人免费电影| 自拍偷自拍亚洲精品播放| 91丝袜美女网| 亚洲图片欧美色图| 欧美一区2区视频在线观看| 极品美女销魂一区二区三区免费| 91精品在线观看入口| 国产成人综合视频| 国产精品美女久久久久久久久 | 欧美无砖专区一中文字| 亚洲丝袜精品丝袜在线| 成人一道本在线| 一区二区三区在线免费播放| 成人午夜短视频| 亚洲第一综合色| 国产精品美女久久久久久久| 欧美午夜精品久久久久久孕妇| 亚洲二区在线观看| 欧美一区二区三区白人 | 日韩欧美专区在线| 成人免费三级在线| 蜜桃视频在线一区| 国产喷白浆一区二区三区| 欧美亚洲图片小说| 不卡一二三区首页| 国产精品亚洲人在线观看| 一区二区三区在线视频播放| 欧美一区二区三区不卡| 在线欧美日韩国产| jlzzjlzz亚洲女人18| 日韩成人伦理电影在线观看| 午夜日韩在线电影| 日韩中文字幕一区二区三区| 亚洲六月丁香色婷婷综合久久| 久久久久久久性| 日韩欧美国产一区二区在线播放| 日本高清不卡一区| 91免费看视频| 精品在线一区二区| 老司机免费视频一区二区三区| 日韩精品福利网| 免费人成网站在线观看欧美高清| 亚洲美女区一区| 亚洲电影一级黄| 日本不卡一区二区三区| 日本vs亚洲vs韩国一区三区| 性做久久久久久| 久久国产日韩欧美精品| av网站一区二区三区| 国产精品一区二区三区四区| 国产91丝袜在线观看| va亚洲va日韩不卡在线观看| 在线精品视频小说1| 欧美二区三区的天堂| 日韩免费高清视频| 国产午夜精品一区二区三区视频| 国产精品欧美综合在线| 一区二区三区在线视频免费观看| 丝袜美腿亚洲一区| 国产激情偷乱视频一区二区三区| 成人福利在线看| 欧美色大人视频| 欧美麻豆精品久久久久久| 国产拍欧美日韩视频二区 | 亚洲男人的天堂在线观看| 一区二区三区视频在线观看| 日本午夜精品一区二区三区电影 | 欧美一区二区三区日韩视频| 国产日韩欧美综合一区| 一区二区三区资源| 美女在线视频一区| 欧美日韩另类国产亚洲欧美一级| 精品国产sm最大网站| **性色生活片久久毛片| 国产麻豆精品在线观看|