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

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

?? e2prom.c

?? lpc2136芯片的硬件全部功能示例程序
?? C
字號:
/*************************************************************
		WPD800 Cat1161驅動 E2PROM
		修改歷史    2007-10-11  zaken create version 1.0


*************************************************************/
#include "main.h"
#include "sample.h"
#include "E2PROM.h"

volatile uint8 	I2C_sla;			/* I2C器件從地址 					*/
volatile uint32	I2C_suba;			/* I2C器件內部子地址 				*/
volatile uint8 	I2C_suba_num;		/* I2C子地址字節數					*/
volatile uint8 	*I2C_buf;        	/* 數據緩沖區指針  					*/
volatile uint32 I2C_num;			/* 要讀取/寫入的數據個數 			*/
volatile uint8 	I2C_end;			/* I2C總線結束標志:結束總線是置1 	*/
volatile uint8 	I2C_suba_en;		/* 	子地址控制。
										0--子地址已經處理或者不需要子地址
										1--讀取操作
										2--寫操作
									*/
void I2C_Process(void);
bool Eeprom_Init(DWORD speed)
{
	static int status;
	int i;
	BYTE testbuf[10];
	//初始化I2C接口
	if (speed > 400000)
		speed = 400000;
	PINSEL0 = (PINSEL0 & (~0xF0)) | 0x50; 	// 不影響其它管腳連接
	I2SCLH = (Fpclk/speed + 1) / 2;						/* 設定I2C時鐘 						*/
	I2SCLL = (Fpclk/speed)/2;
	I2CONCLR = 0x2C;
	I2CONSET = 0x40;
	for(i=0;i<10;i++)
		testbuf[i]=0x10+i;
	status=Eeprom_Write(testbuf,0,10);
	for(i=0;i<10;i++)
		testbuf[i]=0;	
	status=Eeprom_Read(testbuf,0,10);
									/* 使能主I2C 						*/
	return TRUE;	
}
//E2PROM寫入處理
bool Eeprom_Write(BYTE *pSrc,WORD addr,WORD size)
{
	DWORD timer;//計算執行時間
	I2C_sla=EEPROM_ADDR;
	if(addr>255)
		I2C_suba_num=2;
	else
		I2C_suba_num=1;
	I2C_suba   	 	= addr;
	I2C_buf     = pSrc;										/* 數據 				*/
	I2C_num     = size;										/* 數據個數 			*/
	I2C_suba_en = 2;										/* 有子地址,寫操作 	*/
	I2C_end     = 0;
	timer_start();//計算執行時間
	I2C_Process();
	timer=get_timer();//clk
	timer=clk_to_time(timer);//ms
	return (I2C_end==1);
}
//E2PROM讀取處理
//流程:
// 先假寫
//
//
//
//
//
//
//
//
bool Eeprom_Read(BYTE *pSrc,WORD addr,WORD size)
{
	DWORD timer;//計算執行時間
	I2C_sla=EEPROM_ADDR|0x01;
	if(addr>255)
		I2C_suba_num=2;
	else
		I2C_suba_num=1;
	I2C_suba   	 	= addr;
	I2C_buf     = pSrc;										/* 數據 				*/
	I2C_num     = size;										/* 數據個數 			*/
	I2C_suba_en = 1;										/* 有子地址,寫操作 	*/
	I2C_end     = 0;
	timer_start();//計算執行時間
	I2C_Process();
	timer=get_timer();//clk
	timer=clk_to_time(timer);//ms
	return (I2C_end==1);
}
void I2C_Process(void)
{
		/* 清除STA,SI,AA標志位 */
		I2CONCLR = 	(1 << 2)|	/* AA 	*/
					(1 << 3)|	/* SI 	*/
					(1 << 5);	/* STA 	*/
		
		/* 置位STA,啟動I2C總線 */
		I2CONSET = 	(1 << 5)|	/* STA 	*/
					(1 << 6);	/* I2CEN*/
	while(I2C_end==0)
	{	
	switch (I2STAT & 0xF8)
	{	/* 根據狀態碼進行相應的處理 */
		case 0x08:	/* 已發送起始條件 */				/* 主發送和主接收都有 		*/
			/* 裝入SLA+W或者SLA+R */
		 	if(I2C_suba_en == 1)/* SLA+R */				/* 指定子地址讀 			*/
		 	{	I2DAT = I2C_sla & 0xFE; 				/* 先寫入地址 				*/
		 	}
            else	/* SLA+W */
            {  	I2DAT = I2C_sla;        				/* 否則直接發送從機地址 	*/
            }
            /* 清零SI位 */
            I2CONCLR =	(1 << 3)|						/* SI 						*/
            			(1 << 5);						/* STA 						*/
            break;
            
       	case 0x10:	/*已發送重復起始條件 */ 			/* 主發送和主接收都有 		*/
       		/* 裝入SLA+W或者SLA+R */
       		I2DAT = I2C_sla;							/* 重起總線后,重發從地址 	*/
       		I2CONCLR = 0x28;							/* 清零SI,STA */
       		break;

		case 0x18:
       	case 0x28:	/* 已發送I2DAT中的數據,已接收ACK */
       		if (I2C_suba_en == 0)
       		{
	       		if (I2C_num > 0)
	       		{	I2DAT = *I2C_buf++;
	       			I2CONCLR = 0x28;					/* 清零SI,STA 				*/
	       			I2C_num--;
	       		}
	       		else	/* 沒有數據發送了 */
	       		{		/* 停止總線 */
	       		  	I2CONSET = (1 << 4);				/* STO 						*/
	       			I2CONCLR = 0x28;					/* 清零SI,STA 				*/
	       		  	I2C_end = 1;						/* 總線已經停止 			*/
	       		}
       		}
       		
            if(I2C_suba_en == 1)	/* 若是指定地址讀,則重新啟動總線 				*/
            { 
            	if (I2C_suba_num == 2)
            	{	I2DAT = ((I2C_suba >> 8) & 0xff);
	       			I2CONCLR = 0x28;					/* 清零SI,STA 				*/
	       			I2C_suba_num--;
	       			break;	
	       		} 
	       		
	       		if(I2C_suba_num == 1)
	       		{	I2DAT = (I2C_suba & 0xff);
	       			I2CONCLR = 0x28;					/* 清零SI,STA 				*/
	       			I2C_suba_num--;
	       			break;	
	       		}
	       		
            	if (I2C_suba_num == 0)
            	{	I2CONSET = 0x20;
               		I2CONCLR = 0x08;
               		I2C_suba_en = 0;     				/* 子地址己處理 			*/
               		break;
               	}
            }
            
            if (I2C_suba_en == 2)/* 指定子地址寫,子地址尚未指定,則發送子地址 		*/
       		{
       		 	if (I2C_suba_num > 0)
            	{	if (I2C_suba_num == 2)
            		{	I2DAT = ((I2C_suba >> 8) & 0xff);
            			I2CONCLR = 0x28;
            			I2C_suba_num--;
            			break;
            		}
            		if (I2C_suba_num == 1)
            		{	I2DAT    = (I2C_suba & 0xff);
               			I2CONCLR = 0x28;
               			I2C_suba_num--;
               			I2C_suba_en  = 0;
               			break;
               		}
               	}
             }
       		break;
       		  
       case 0x40:	/* 已發送SLA+R,已接收ACK */
       		if (I2C_num <= 1)	/* 如果是最后一個字節 */			
       		{	I2CONCLR = 1 << 2;      				/* 下次發送非應答信號 		*/
       		}
       		else
       		{ 	I2CONSET = 1 << 2;						/* 下次發送應答信號 		*/
       		}
       		I2CONCLR = 0x28;							/* 清零SI,STA 				*/
       		break;

       	case 0x20:	/* 已發送SLA+W,已接收非應答              */
       	case 0x30:	/* 已發送I2DAT中的數據,已接收非應答     */
       	case 0x38:	/* 在SLA+R/W或數據字節中丟失仲裁         */
   		case 0x48:	/* 已發送SLA+R,已接收非應答              */
         	I2CONCLR = 0x28;
            I2C_end = 0xFF; 
       		break;   				
	
		case 0x50:	/* 已接收數據字節,已返回ACK */
			*I2C_buf++ = I2DAT;
			I2C_num--;
			if (I2C_num == 1)/* 接收最后一個字節 */
			{  	I2CONCLR = 0x2C;						/* STA,SI,AA = 0 			*/
			}
			else
			{  	I2CONSET = 0x04;						/* AA=1 					*/
			  	I2CONCLR = 0x28;
			}
			break;
		
		case 0x58:	/* 已接收數據字節,已返回非應答 */
			*I2C_buf++ = I2DAT;     					/* 讀取最后一字節數據 		*/
            I2CONSET = 0x10;        					/* 結束總線 				*/
            I2CONCLR = 0x28;
            I2C_end = 1; 
            break;
            
      	default:
      		break;
	}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情文学综合网| 亚洲国产欧美在线| 日韩欧美一二区| 欧美日韩精品欧美日韩精品一综合| 91在线观看地址| 91丨九色丨蝌蚪丨老版| 91高清视频免费看| 欧美三级日韩在线| 日韩精品中午字幕| 久久久久久夜精品精品免费| 欧美国产精品专区| 伊人婷婷欧美激情| 奇米色777欧美一区二区| 久久国产精品露脸对白| 丁香天五香天堂综合| 99久久久无码国产精品| 欧美午夜精品免费| 欧美一区二区三区免费观看视频| 日韩视频永久免费| 国产精品嫩草影院av蜜臀| 樱花草国产18久久久久| 天堂精品中文字幕在线| 国产精品一区二区91| 97国产一区二区| 欧美一区午夜视频在线观看| 久久久噜噜噜久噜久久综合| 亚洲精品视频在线观看网站| 免费美女久久99| 99久久免费精品高清特色大片| 欧美性色欧美a在线播放| 欧美tickling网站挠脚心| 国产精品久久久久9999吃药| 午夜视频久久久久久| 国产风韵犹存在线视精品| 欧美日韩亚洲综合一区| 国产欧美日韩另类一区| 亚洲午夜电影网| 国产成人在线视频网址| 欧美人妖巨大在线| 中文字幕一区在线| 精品夜夜嗨av一区二区三区| 色综合天天在线| 26uuu久久天堂性欧美| 亚洲国产日韩一区二区| 国产91富婆露脸刺激对白| 欧美老年两性高潮| 亚洲免费在线观看视频| 久久99久久99精品免视看婷婷 | 国产欧美精品日韩区二区麻豆天美| 亚洲国产电影在线观看| 美国十次了思思久久精品导航| 91蝌蚪porny成人天涯| 精品国产精品网麻豆系列| 亚洲午夜视频在线观看| 91性感美女视频| 国产亚洲一二三区| 精品一区免费av| 欧美猛男gaygay网站| 亚洲女爱视频在线| 不卡的看片网站| 欧美韩国一区二区| 国产精一区二区三区| 日韩欧美123| 免费观看91视频大全| 欧美日高清视频| 亚洲成人自拍网| 欧美三级资源在线| 亚洲国产精品久久久久秋霞影院| av在线综合网| 亚洲色图欧洲色图| 色综合久久久久| 樱桃国产成人精品视频| 欧美专区亚洲专区| 亚洲乱码一区二区三区在线观看| aaa国产一区| 亚洲日本韩国一区| 91成人在线精品| 亚洲天堂福利av| 91免费看`日韩一区二区| 亚洲欧美日韩国产另类专区| 色综合久久久久综合99| 一区二区三区在线视频免费 | 韩国理伦片一区二区三区在线播放| 欧美丰满一区二区免费视频| 日本视频中文字幕一区二区三区| 欧美三区在线视频| 免费亚洲电影在线| 精品女同一区二区| 成人黄色大片在线观看| 国产精品久久久久aaaa樱花| 91福利区一区二区三区| 免播放器亚洲一区| 久久男人中文字幕资源站| 国产99久久久久| 亚洲精品视频观看| 日韩精品一区二区三区swag | 国产精品自在在线| 亚洲视频在线一区观看| 欧美午夜在线观看| 久久99久久99| 亚洲欧洲综合另类在线| 91精品在线观看入口| 国产电影一区在线| 亚洲一区二区三区在线播放| 精品日韩一区二区三区| 97国产一区二区| 裸体歌舞表演一区二区| 亚洲天堂成人网| 日韩精品中文字幕在线不卡尤物 | 欧美精品18+| 国产激情视频一区二区三区欧美| 亚洲男人都懂的| 久久人人超碰精品| 欧美日韩亚洲不卡| 成人一区二区三区视频在线观看 | 色综合欧美在线视频区| 蜜臀av在线播放一区二区三区| 亚洲国产精品t66y| 欧美一区二区美女| 欧洲激情一区二区| 国产不卡在线一区| 久久99精品久久只有精品| 亚洲视频一二区| 国产欧美一二三区| 日韩欧美一级在线播放| 欧美色图12p| 99精品国产一区二区三区不卡| 久久精品国产亚洲a| 亚洲永久精品国产| 中文字幕一区二| 国产亚洲欧美日韩在线一区| 欧美三级蜜桃2在线观看| av网站一区二区三区| 精品综合免费视频观看| 亚洲国产欧美在线| 亚洲国产精品影院| 亚洲美女精品一区| 中文字幕日韩欧美一区二区三区| 精品成人一区二区| 日韩精品一区二区三区视频在线观看 | www激情久久| 欧美一级淫片007| 欧美日韩国产天堂| 欧美日韩综合在线免费观看| 91福利视频网站| 在线观看91精品国产入口| 色综合色狠狠天天综合色| 91无套直看片红桃| 91美女片黄在线观看| 不卡av免费在线观看| 成人h精品动漫一区二区三区| 国产精品99久| 国产成人av电影在线观看| 国产精品亚洲综合一区在线观看| 国产精品综合av一区二区国产馆| 国产在线观看一区二区| 粉嫩aⅴ一区二区三区四区| 懂色av中文一区二区三区| 粉嫩13p一区二区三区| 91色婷婷久久久久合中文| 在线视频亚洲一区| 制服丝袜激情欧洲亚洲| 日韩一二三区视频| 久久网这里都是精品| 国产精品美女视频| 亚洲免费电影在线| 青青草国产成人av片免费| 国内久久婷婷综合| eeuss鲁一区二区三区| 欧美性三三影院| 欧美mv日韩mv| 亚洲国产成人私人影院tom| 亚洲少妇中出一区| 日精品一区二区三区| 国产成人免费在线| 色婷婷综合视频在线观看| 欧美二区乱c少妇| 久久久综合精品| 一区二区三区在线高清| 日韩精品乱码av一区二区| 丰满少妇久久久久久久| 欧美性欧美巨大黑白大战| 精品剧情v国产在线观看在线| 最新国产の精品合集bt伙计| 丝袜脚交一区二区| 国产91在线|亚洲| 91精品国产手机| 亚洲美女电影在线| 韩国精品主播一区二区在线观看 | 九九九精品视频| www.亚洲在线| 日韩三级在线观看| 最新欧美精品一区二区三区| 伦理电影国产精品| 在线观看亚洲专区| 国产精品美女久久久久久久| 日韩精品一二区| 色菇凉天天综合网| 国产精品三级av在线播放| 午夜精品免费在线观看|