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

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

?? eeprom.c

?? YL2440開發板的引導程序
?? C
字號:
/*
 create by hzh, to support wr/rd parameters to/from eeprom
*/
#include "def.h"
#include "2440addr.h"
#include "2440lib.h"

#define	SLV_ADDR_24C02	0xa0
#define	SLV_ADDR_CAMERA	0x5a

void mdelay(int ms);

static volatile int iic_ints;
static void __irq IicInt(void)
{
	ClearPending(BIT_IIC);
	iic_ints++;
}

static int iic_wr(U8 data, U8 cnt)
{
	int i, c;

	for(i=0; i<20; i++);
	
	if(cnt)
		rIICDS = data;
		
	rIICCON &= ~0x10;		//Resume IIC operation to send

	i = 3;	//3ms
	//while(!(rIICCON&0x10)&&i--) mdelay(1);
	c = iic_ints;
	while(iic_ints==c&&i--) mdelay(1);
	//rIICCON &= ~0x10;
	
	if(!i)
		return -1;

	return (rIICSTAT&1)?-1:0;
}

static int iic_rd(U8 *pBuf)
{
	int i, c;
	
	for(i=0; i<20; i++);
	
	rIICCON &= ~0x10;		//Resumes IIC operation to receive
	i = 3;	//3ms
	//while(!(rIICCON&0x10)&&i--) mdelay(1);
	c = iic_ints;
	while(iic_ints==c&i--) mdelay(1);
	
	if(i) {
		*pBuf = rIICDS;
		return 0;
	}
	
	return -1;
}

static int seek_iic_device(U8 slvAddr)
{
	int i;
	U8 d;
	
	i = 200;				//200ms
	while(i--) {
		rIICDS   = slvAddr;
		rIICSTAT = 0xb0;	//read mode
		if(!iic_wr(0, 0)) {
			iic_rd(&d);
			break;
		}
		mdelay(1);
	}
	rIICSTAT = 0x90;
	rIICCON &= ~0x10;		//Resume IIC operation to send stop
	mdelay(1);

	return (i>=0)?0:-1;
}

//8 bits register address only
static int write_eeprom(U8 slvAddr, U8 addr, U8 data)
{
	int i;
	U8 ch[3];
	
	ch[1] = addr;
	ch[2] = data;
	
	rIICDS   = slvAddr;
	rIICSTAT = 0xf0;		//MasTx,Start
	for(i=0; i<3; i++)
		if(iic_wr(ch[i], i))
			break;
	rIICSTAT = 0xd0;		//Stop MasTx condition
	rIICCON &= ~0x10;		//Resume IIC operation to send stop
	mdelay(1);
	if(i<3)
		return -1;
		
	return seek_iic_device(slvAddr);
}

//8 bits register address only
static int read_eeprom(U8 slvAddr, U8 addr, U8 *pBuf)
{
	int i;
	U8 ch[2];
	
	ch[1] = addr;
	
	rIICDS   = slvAddr;
	rIICSTAT = 0xf0;		//MasTx,Start
	for(i=0; i<2; i++)
		if(iic_wr(ch[i], i))
			break;
	if(i<2) {
		rIICSTAT = 0xd0;	//Stop MasTx condition
		rIICCON &= ~0x10;	//Resume IIC operation to send stop
		mdelay(1);
		return -1;
	}

	rIICDS   = slvAddr;
	rIICSTAT = 0xb0;		//Master Rx,Start
	if(!iic_wr(0, 0))		//wait ack
		i = iic_rd(pBuf);
	rIICSTAT = 0x90;		//Stop MaxRx condition
	rIICCON &= ~0x10;		//Resume IIC operation to send stop
	mdelay(1);
	
	return i;
}

static void init_iic_op(void)
{
	rCLKCON |= 1<<16;
	
	rGPEUP  |= 0xc000;                  //Pull-up disable
	rGPECON &= ~0xf0000000;
	rGPECON |= 0xa0000000;              //GPE15:IICSDA , GPE14:IICSCL 
	
	//Enable ACK, Prescaler IICCLK=PCLK/16, Enable interrupt, Transmit clock value Tx clock=IICCLK/16
	// If PCLK 50.7MHz, IICCLK = 3.17MHz, Tx Clock = 0.198MHz
	//rIICCON = (1<<7) | (1<<6) | (1<<5) | (0);	//IICCLK=PCLK/512=97K
	//just read one byte, don't enable ack!
	rIICCON = (0<<7) | (1<<6) | (1<<5) | (0);	//IICCLK=PCLK/512=97K
	
	rIICSTAT = 0x10;                    //IIC bus data output enable(Rx/Tx)
	rIICADD  = 0x10;                    //2410 slave address = [7:1]
	
	pISR_IIC = (unsigned)IicInt;
	EnableIrq(BIT_IIC);
}

static void end_iic_op(void)
{
//	rCLKCON &= ~(1<<16);
	DisableIrq(BIT_IIC);
}

int write_24c02(U8 *pBuf)
{
	int i;
	
	init_iic_op();
	
	for(i=0; i<256; i++) {
		//if(seek_iic_device(SLV_ADDR_24C02))
		//	break;
		if(write_eeprom(SLV_ADDR_24C02, i, pBuf[i]))
			break;
	}
	
	end_iic_op();
	
	Uart_Printf("Write EEPROM %s!\n", (i<256)?"Fail":"Success");
	
	return i<256;
}

int read_24c02(U8 *pBuf)
{
	int i;
	
	init_iic_op();
	
	for(i=0; i<256; i++) {
		if(read_eeprom(SLV_ADDR_24C02, i, pBuf+i))
			break;
	}
	
	end_iic_op();
	
	Uart_Printf("Read EEPROM %s!\n", (i<256)?"Fail":"Success");

	return i<256;
}

int find_camera(void)
{
	int ret = -2;
	U8 d[256];
	
	rGPGCON &= ~(3<<24);
	rGPGCON |= 1<<24;
	rGPGUP  &= ~(1<<12);
	rGPGDAT |= 1<<12;
	
	rGPJCON = 0x1aaaaaa;
	rGPJUP  = 0;
	rGPJDAT = 0;
	mdelay(10);
	rGPJDAT = 1<<12;
	mdelay(10);
	
	init_iic_op();
	
	if(!write_eeprom(SLV_ADDR_CAMERA, 0xec, 0)) {
		int i, a;
		
		ret = -1;
		a = 0xb0;
		for(i=0; i<4; i++)
			if(read_eeprom(SLV_ADDR_CAMERA, a+i, d+i))
				break;
		if(i>=4)
			ret = 0;
		
	//	Uart_Printf("i = %d\n", i);
	//	for(i=0; i<256; i++)
	//		Uart_Printf("%c%02x", (i%16)?' ':'\n', d[i]);
	}
	
	end_iic_op();

	switch(ret)	{
	case -2:
		Uart_Printf("Fail to write camera IIC!\n");
		break;
	case -1:
		Uart_Printf("Fail to read camera IIC!\n");
		break;
	case 0:
		Uart_Printf("Read camera ID is 0x%04x, ", (d[0]<<8)|d[1]);
		Uart_Printf("chip version is 0x%04x\n", (d[2]<<8)|d[3]);
		break;
	default:
		break;
	}
		
	return ret;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合色鬼综合色| 亚洲欧洲日韩av| 中文字幕av一区二区三区| 一区二区三区高清| 国产一区二区三区免费看| 欧美三级电影一区| 亚洲国产高清aⅴ视频| 日韩av网站免费在线| 一本在线高清不卡dvd| 亚洲精品一区二区三区蜜桃下载 | 视频一区二区不卡| 成人国产精品免费观看| 国产精品剧情在线亚洲| 日韩激情一区二区| 91丨九色丨蝌蚪丨老版| 国产丝袜美腿一区二区三区| 日本vs亚洲vs韩国一区三区 | 日韩午夜激情电影| 久久精品国产澳门| 91久久奴性调教| 国产精品久久久久久久岛一牛影视 | 粉嫩高潮美女一区二区三区| 日韩一区二区在线看| 亚洲一区二区三区影院| 99国产麻豆精品| 国产精品视频观看| 国产精品系列在线播放| 日韩精品一区二区在线观看| 三级欧美在线一区| 欧美人动与zoxxxx乱| 亚洲成人在线免费| 欧美老女人在线| 亚洲成人tv网| 欧美日韩精品久久久| 亚洲一区二区三区在线| 欧美日韩在线精品一区二区三区激情| 综合欧美一区二区三区| 91美女福利视频| 伊人性伊人情综合网| 91老师国产黑色丝袜在线| 2021中文字幕一区亚洲| 国产一区在线观看视频| 久久久影视传媒| 成人午夜碰碰视频| 成人免费小视频| 在线观看亚洲精品视频| 亚洲国产欧美日韩另类综合| 欧美亚洲高清一区| 免费日韩伦理电影| 欧美一区二区视频网站| 蜜臂av日日欢夜夜爽一区| 久久久亚洲欧洲日产国码αv| 国产一区二区在线视频| 中文字幕不卡在线| 99在线精品一区二区三区| 亚洲免费色视频| 欧美日本一道本| 国产在线精品一区二区不卡了 | 91精品久久久久久久99蜜桃| 美国毛片一区二区| 国产精品高清亚洲| 欧美精品粉嫩高潮一区二区| 久99久精品视频免费观看| 亚洲一区电影777| 欧美日韩国产一级| 国产一区二区三区久久久| 综合精品久久久| 欧美老女人第四色| 成人美女在线观看| 舔着乳尖日韩一区| 国产精品免费视频一区| 欧美美女直播网站| 成人午夜激情视频| 亚洲电影欧美电影有声小说| 亚洲精品在线观看网站| 欧日韩精品视频| 韩国成人在线视频| 亚洲精品写真福利| 久久蜜桃一区二区| 欧美日韩成人在线一区| 国产激情精品久久久第一区二区| 亚洲视频在线观看一区| 日韩免费观看高清完整版| thepron国产精品| 日本在线不卡视频一二三区| 国产精品国产三级国产aⅴ中文| 538prom精品视频线放| 99久久精品国产麻豆演员表| 男人的j进女人的j一区| 亚洲精品国产一区二区精华液| 欧美成人r级一区二区三区| 色综合久久综合网欧美综合网| 久久精品99久久久| 亚洲成av人**亚洲成av**| 国产精品三级视频| 精品成人免费观看| 91麻豆精品国产综合久久久久久| av欧美精品.com| 国产一区二区在线视频| 青青草原综合久久大伊人精品 | 91麻豆精品在线观看| 国模娜娜一区二区三区| 日本视频中文字幕一区二区三区| 悠悠色在线精品| 国产精品蜜臀av| 国产日产欧美一区| 国产喂奶挤奶一区二区三区| 精品久久久久一区| 欧美va在线播放| 精品久久一区二区| 久久亚洲精品小早川怜子| 日韩女优电影在线观看| 日韩免费观看高清完整版在线观看| 51久久夜色精品国产麻豆| 日韩理论片一区二区| 日韩欧美www| 日本成人中文字幕| 久草热8精品视频在线观看| 亚洲色图.com| 欧美成人一区二区三区片免费| 国产成人日日夜夜| 国产一区二区三区免费| 国产精品毛片大码女人| 欧美亚洲一区二区三区四区| 91久久精品一区二区二区| 国产一区二区三区高清播放| 免费在线观看精品| 日本中文字幕一区二区视频| 婷婷亚洲久悠悠色悠在线播放 | 国产亚洲精品资源在线26u| 久久久久久麻豆| 国产精品国产三级国产普通话99| 中文在线一区二区| 亚洲精品视频在线观看免费 | 欧美丝袜自拍制服另类| 欧美日韩一区二区三区免费看| 欧美日韩精品是欧美日韩精品| 欧美乱妇20p| 久久亚洲影视婷婷| 1024亚洲合集| 日韩成人dvd| 国产成人精品免费看| 91久久奴性调教| 欧美zozozo| 国产精品伦理一区二区| 精品一区二区三区蜜桃| 国产电影精品久久禁18| 色婷婷精品久久二区二区蜜臂av| 69堂成人精品免费视频| 国产丝袜在线精品| 亚洲成a人片在线观看中文| 久久成人免费网| 色综合久久中文综合久久97| 欧美一级欧美三级在线观看| 久久久久久免费毛片精品| 亚洲一区免费视频| 国产在线国偷精品产拍免费yy| 91免费国产视频网站| 欧美一级二级三级乱码| 国产精品不卡在线| 久久er精品视频| 欧美色图第一页| 国产精品区一区二区三| 青青国产91久久久久久| 色视频一区二区| 久久精品欧美一区二区三区麻豆 | 欧美视频中文字幕| 欧美国产激情一区二区三区蜜月| 亚洲一区二区美女| 成人av在线播放网站| 欧美大白屁股肥臀xxxxxx| 亚洲色图色小说| 国产福利一区二区| 日韩欧美一区二区久久婷婷| 亚洲精品视频一区二区| 高清不卡一区二区在线| 日韩欧美在线不卡| 亚洲国产日产av| 91伊人久久大香线蕉| 久久青草欧美一区二区三区| 调教+趴+乳夹+国产+精品| 日本道免费精品一区二区三区| 国产午夜精品一区二区| 久久99精品国产麻豆婷婷洗澡| 欧美在线你懂的| 亚洲六月丁香色婷婷综合久久 | 懂色一区二区三区免费观看| 精品国产露脸精彩对白| 五月天精品一区二区三区| 在线这里只有精品| 一区二区三国产精华液| 色噜噜狠狠成人中文综合| 最好看的中文字幕久久| 波多野结衣亚洲| 国产日本一区二区| 激情欧美一区二区| 欧美成人性战久久| 美女高潮久久久| 精品国产一区久久| 久久99精品久久久久久|