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

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

?? iic.cpp

?? 包含了大量文件
?? CPP
字號:
#include <windows.h>
#include <Winbase.h>
#include <s2440.h>
#include <nkintr.h>
#include <oalintr.h>
#include <p2.h>
#include "IIC.h"
#include  <Pkfuncs.h>
#include  <Winreg.h>

static volatile int _iicDataCount;
static volatile int _iicMode;
static int _iicPt;

extern volatile	IICreg		*v_pIICregs;		
extern volatile IOPreg		*v_pIOPregs;	
extern volatile CLKPWRreg	*g_pCLKPWRreg;                            
 
static HANDLE IIC_InterruptEvent     =NULL;

#define  len 52
/*BYTE max9851[len]={
	0x00,//0x1  ---------------(read only!)-------------
	0x86,//0x2  adc power up 1 00 0011 0 pnd=1    //mic 0 00 0000 0
	0x07,//0x3  000 0 0 11(mic amp up) 1          //mic 000 11 00 0
	0xaa,//0x4  10(hp on is h) 10 10(sp) 10       //mic 11 11 11 11
	0xa2,//0x5  1(en Auto-Detect) 01 0 0 01(Internal MCLK/LRCK Ratio) 0
	0x00,//0x6  0(slave=0 ) 0(single polrity) 0(1-iis) 1(dis dsp) 00(L_J) 11
	0x00,//0x7  0 0 0 0 0 011
	0x81,//0x8  100 10000
	0x81,//0x9
	0xa5,//0xa  1 0 1 0 0101
	0x00,//0xb  0000 0111
	0x00,//0xc  1 0 01 0 0 0 0
	0x60,//0xd  111 1 00 00
	0x02,//0xe  00 11 0(Register changes take effect immediately)1 0 0
	0x00,//0xf  11(hp unmuted) 11(sp unm) 1 0 1 1  
	0x00,//0x10 0 0(mic1) 1(differential )  11111
	0x00,//0x11   
	0x00,//0x12 1 1 011111 (ALC)    //00
	0x00,//0x13
	0x00,//0x14 0111 1111 (Passthru x Volume:) //18
	0x00,//0x15  
	0x00,//0x16 0111 1111(ADCx Volume) 
	0x00,//0x17
	0x80,//0x18 1 001 1000
	0x80,//0x19 
	0x00,//0x1a 1 001 1000(PCMx Mixer Volume: PCMA)  //18
	0x00,//0x1b
	0x00,//0x1c 0010  0010 (Beep Frequency & On Time)
	0x00,//0x1d 000 00101 (Beep Volume & Off Time)
	0x00,//0x1e 01 0 01 01 1
	0x88,//0x1f 0000 0000(Tone Control)
	0x00,//0x20 0001 1000(Master Volume Control:)
	0x00,//0x21
	0x00,//0x22 0000 0000(Headphone Volume Control:)
	0x00,//0x23 
	0x00,//0x24 0000 0000(Speaker Volume Control:)
	0x00,//0x25
	0x00,//0x26 01 01 01 01 (ADC & PCM Channel Mixer)
	0x00,//0x27 010 010 1  1
	0x7f,//0x28 01 111111
	0xc0,//0x29 11 000000
	0x00,//0x2a 11(alc enable)000000
	0x3f,//0x2b 
	0x00,//0x2c 
	0x00,//0x2d 1 1 0 100 00
	0x00,//0x2e ---------------(read only)--------------
	0x00,//0x2f 1 1 00 1000(Battery Compensation)
	0x00,//0x30 ---------------(read only)--------------
	0xc2,//0x31 ---------------(read only)--------------
	0x3b,//0x32 0  0111011
	0x00,//0x33 0000 1 001
	0x5f,//0x34 0101 1111 
};*/
BYTE CS42L52[len]={
	0x00,//0x1  ---------------(read only!)-------------
	0x1e,//0x2  adc power up 1 00 0011 0 pnd=1    //mic 0 00 0000 0
	0x1f,//0x3  000 0 0 11(mic amp up) 1          //mic 000 11 00 0
	0x50,//0x4  10(hp on is h) 10 10(sp) 10       //mic 11 11 11 11
	0xa0,//0x5  1(en Auto-Detect) 01 0 0 01(Internal MCLK/LRCK Ratio) 0
	0x00,//0x6  0(slave=0 ) 0(single polrity) 0(1-iis) 1(dis dsp) 00(L_J) 11
	0x00,//0x7  0 0 0 0 0 011
	0x90,//0x8  100 10000   *******
	0x90,//0x9              *******
	0xa5,//0xa  1 0 1 0 0101
	0x00,//0xb  0000 0111
	0x00,//0xc  1 0 01 0 0 0 0
	0x60,//0xd  111 1 00 00
	0x00,//0xe  00 11 0(Register changes take effect immediately)1 0 0
	0x00,//0xf  11(hp unmuted) 11(sp unm) 1 0 1 1  
	0x2f,//0x10 0 0(mic1) 1(differential )  11111        *********
	0x2f,//0x11                                          *********
	0x00,//0x12 1 1 011111 (ALC)    //00
	0x00,//0x13
	0x18,//0x14 0111 1111 (Passthru x Volume:) //18
	0x18,//0x15  
	0xf6,//0x16 0111 1111(ADCx Volume) 
	0xfe,//0x17
	0x18,//0x18 1 001 1000
	0x18,//0x19 
	0x18,//0x1a 1 001 1000(PCMx Mixer Volume: PCMA)  //18
	0x18,//0x1b
	0x00,//0x1c 0010  0010 (Beep Frequency & On Time)
	0x00,//0x1d 000 00101 (Beep Volume & Off Time)
	0x41,//0x1e 01 0 01 01 1
	0x21,//0x1f 0000 0000(Tone Control)
	0x18,//0x20 0001 1000(Master Volume Control:)
	0x18,//0x21
	0x00,//0x22 0000 0000(Headphone Volume Control:)
	0x00,//0x23 
	0x00,//0x24 0000 0000(Speaker Volume Control:)
	0x00,//0x25
	0x00,//0x26 01 01 01 01 (ADC & PCM Channel Mixer)
	0x00,//0x27 010 010 1  1
	0x7f,//0x28 01 111111
	0xc0,//0x29 11 000000
	0xc0,//0x2a 11(alc enable)000000
	0x3f,//0x2b 
	0x28,//0x2c 
	0x0c,//0x2d 1 1 0 100 00
	0x00,//0x2e ---------------(read only)--------------
	0x00,//0x2f 1 1 00 1000(Battery Compensation)
	0x00,//0x30 ---------------(read only)--------------
	0x08,//0x31 ---------------(read only)--------------
	0x3b,//0x32 0  0111011
	0x00,//0x33 0000 1 001
	0x5f,//0x34 0101 1111 
};

void IIC_Initialize()

	
{
	g_pCLKPWRreg->rCLKCON |= IIC_INTERNAL_CLOCK_ENABLE;		//   Control PCLK into IIc block.
	
	if (IIC_InterruptEvent == NULL)
	{
		// allocate the interrupt event for IIC
		IIC_InterruptEvent = CreateEvent(NULL, FALSE, FALSE,NULL);
		
		if (NULL == IIC_InterruptEvent) 
		{
			RETAILMSG(1,(TEXT("IIC interrupt event Error1\r\n")));
		}
		// initialize the card insertion interrupt event
		if (!InterruptInitialize (SYSINTR_IIC, IIC_InterruptEvent, NULL, 0)) 
		{
			RETAILMSG(1,(TEXT("IIC interrupt event Error2\r\n")));
		}
	}
	
	MAX_WriteBlock();  //write data finish!
	
	RETAILMSG(1,(TEXT("-------------finsish---------------\r\n")));
}

void MAX_WriteBlock(void)
{
    int i;
    //Sleep(5000);
    
    
   //Wr_MAXIIC(IIC_SLAVEADDRESS_WRITE,0x2,0x9e);
   
   /*U8 data=0;
   Rd_MAXIIC(IIC_SLAVEADDRESS_READ,1,&data);
   RETAILMSG(1,(TEXT("-------------0x1---------------0x%x\r\n"),data));
   //RETAILMSG(1,(TEXT("\r----------------volume value is0x%x \r\n"), ));
   Rd_MAXIIC(IIC_SLAVEADDRESS_READ,0x2e,&data);
   RETAILMSG(1,(TEXT("-------------0x2e---------------0x%x\r\n"),data));
   Rd_MAXIIC(IIC_SLAVEADDRESS_READ,0x30,&data);
   RETAILMSG(1,(TEXT("-------------0x30---------------0x%x\r\n"),data));
   Rd_MAXIIC(IIC_SLAVEADDRESS_READ,0x31,&data);
   RETAILMSG(1,(TEXT("-------------0x31---------------0x%x\r\n"),data));
    */
   
    for(i=2; i<=45; i++)  //2d
    {
		    //RETAILMSG(1,(TEXT("num:%d\r\n"),i));	
	    Wr_MAXIIC(IIC_SLAVEADDRESS_WRITE,i,CS42L52[i-1]);
		//RETAILMSG(1,(TEXT("-------------0x%x---------------0x%x\r\n"),i,max9851[i-1]));
    
		  
	}
	RETAILMSG(1,(TEXT("***********************************************************\r\n")));	
	Wr_MAXIIC(IIC_SLAVEADDRESS_WRITE,0x2f,CS42L52[0x2f-1]);	  
  Wr_MAXIIC(IIC_SLAVEADDRESS_WRITE,0x32,CS42L52[0x32-1]);
  Wr_MAXIIC(IIC_SLAVEADDRESS_WRITE,0x33,CS42L52[0x33-1]);
  Wr_MAXIIC(IIC_SLAVEADDRESS_WRITE,0x34,CS42L52[0x34-1]);
    
    //Sleep(500);
  //power up 0x2
   //Wr_MAXIIC(IIC_SLAVEADDRESS_WRITE,0x2,0x9e);
   
   /*U8 kai;
   for(i=0; i<=45; i++)
   {
	   Rd_MAXIIC(IIC_SLAVEADDRESS_READ,i+1,&kai);
	   RETAILMSG(1,(TEXT("-------------0x%x---------------0x%x\r\n"),i+1,kai));

   }*/
   RETAILMSG(1,(TEXT("--------------CLS4252 OK!--------------\r\n")));  
}

void Wr_MAXIIC(U32 slvAddr, U32 addr, U8 data)
{  
	  v_pIOPregs->rGPEUP  &= ~0xc000;                  	//Pull-up disable
    v_pIOPregs->rGPEUP  |=  0xc000;                  	//Pull-up disable
    v_pIOPregs->rGPECON &= ~(0xF<<28);                //GPE15:IICSDA , GPE14:IICSCL    
    v_pIOPregs->rGPECON |=  (0xa<<28);                //GPE15:IICSDA , GPE14:IICSCL    
	
    //Enable ACK, Prescaler IICCLK=PCLK/16, Enable interrupt, Transmit 
    v_pIICregs->rIICCON  = (1<<7) |  (1<<5) | (0xf);
	
	
    v_pIICregs->rIICSTAT = 0x10; //IIC bus data output enable(Rx/Tx)
    v_pIICregs->rIICLC = (1<<2)|(3);// Filter enable, 15 clocks SDA output delay     added into 2440
	
	
    _iicMode      = WRDATA;
    _iicPt        = 0;
    _iicData[0]   = (U8)addr;
    _iicData[1]   = data;
    _iicDataCount = 2;
    // write slave address
    v_pIICregs->rIICDS	= slvAddr;  //0x42: OV7620 Slave ID 
    // After this time, timing is critical, because IIC start.
    v_pIICregs->rIICSTAT	= 0xf0; 	//Start Master TX Condition    
    v_pIICregs->rIICCON	= 0xef;   	//Clearing the pending bit isn't needed because the pending bit has been cleared.
	
    while(_iicDataCount!=-1)
		Run_IicPoll();
    
}

void Rd_MAXIIC(U32 slvAddr,U32 addr,U8 *data)
{  
	  v_pIOPregs->rGPEUP  &= ~0xc000;                  	//Pull-up disable
    v_pIOPregs->rGPEUP  |=  0xc000;                  	//Pull-up disable
    v_pIOPregs->rGPECON &= ~(0xF<<28);                //GPE15:IICSDA , GPE14:IICSCL    
    v_pIOPregs->rGPECON |=  (0xa<<28);                //GPE15:IICSDA , GPE14:IICSCL    
	
    //Enable ACK, Prescaler IICCLK=PCLK/512, Enable interrupt, Transmit clock value Tx clock=IICCLK/512
    v_pIICregs->rIICCON  = (1<<7) | (1<<6) | (1<<5) | (0xf);
	
	
    v_pIICregs->rIICSTAT = 0x10; //IIC bus data output enable(Rx/Tx)
    v_pIICregs->rIICLC = (1<<2)|(3);// Filter enable, 15 clocks SDA output delay     added into 2440
	
	/*IIC Slave Addr Write + IIC Reg Addr Write */	
	_iicMode      = SETRDADDR;
	_iicPt        = 0;
	_iicData[0]   = (U8)(addr);
	_iicDataCount = 1;
       
    // write slave address
    v_pIICregs->rIICDS	= IIC_SLAVEADDRESS_WRITE;   //write addr!
    // After this time, timing is critical, because IIC start.
    v_pIICregs->rIICSTAT= 0xf0; 	//Start Master TX Condition   
    v_pIICregs->rIICCON	= 0xef;   	//Clearing the pending bit isn't needed because the pending bit has been cleared.
	
	while(_iicDataCount!=-1)
       Run_IicPoll();
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    _iicMode      = RDDATA;
    _iicPt        = 0;
    _iicDataCount = 1;
    
    v_pIICregs->rIICDS   = slvAddr;    //read addr!

    v_pIICregs->rIICSTAT = 0xb0;                   //Master Rx,Start
    v_pIICregs->rIICCON  = 0xef;                    //Resumes IIC operation.
	while(_iicDataCount!=-1)
       Run_IicPoll();

	*data = _iicData[1]; 
	//RETAILMSG(1,(TEXT("max9851 read data!\r\n")));
	//RETAILMSG(1,(TEXT("Data:0x%d\r\n"),_iicData[1]));
}

void Run_IicPoll(void)
{
	DWORD waitStatus;

	waitStatus = WaitForSingleObject(IIC_InterruptEvent, INFINITE);
	// When using polling mode
	//    if(s2440IIC->rIICCON & 0x10)                  //Tx/Rx Interrupt Enable
	IicPoll();
}       

void IicPoll(void)
{

	//RETAILMSG(1,(TEXT("IIC Interrupt occur\r\n")));
	
    switch(_iicMode)
    {		
	case WRDATA:
		if((_iicDataCount--)==0)
		{
			v_pIICregs->rIICSTAT = 0xd0;                //stop MasTx condition 
			v_pIICregs->rIICCON  = 0xef;                //resumes IIC operation.
			Delay(10);                       		// we should adjust this time.
			break;    
		}
		
		v_pIICregs->rIICDS = _iicData[_iicPt++];        	//_iicData[0] has dummy.
		//for setup time until rising edge of IICSCL. we have to adjust this time.
		Delay(10);	
		v_pIICregs->rIICCON = 0xef;                    	 //resumes IIC operation.		
		break;
	case SETRDADDR:
		if((_iicDataCount--)==0)
		{
			v_pIICregs->rIICSTAT = 0xd0;                //stop MasTx condition 
    		v_pIICregs->rIICCON  = 0xef;                //resumes IIC operation.
            Delay(10);      //wait until stop condtion is in effect.
				  
            break;                  //IIC operation is stopped because of IICCON[4]    
		}
		v_pIICregs->rIICDS = _iicData[_iicPt++];
		Delay(10); 
		v_pIICregs->rIICCON = 0xef;             //resumes IIC operation.
		break;

	case RDDATA:
		if((_iicDataCount--)==0)
		{
			_iicData[_iicPt++] = v_pIICregs->rIICDS;
            
			v_pIICregs->rIICSTAT = 0x90;      //Stop MasRx condition 
			v_pIICregs->rIICCON  = 0xef;      //Resumes IIC operation.
			Delay(10);                 //Wait until stop condtion is in effect., Too long time... 
			//The pending bit will not be set after issuing stop condition.
			break;    
		}      
		_iicData[_iicPt++] = v_pIICregs->rIICDS;     //The last data has to be read with no ack.
		
		if((_iicDataCount)==0)
			v_pIICregs->rIICCON = 0x6f;                 //Resumes IIC operation with NOACK in case of OV7620 Cameara  
		else 
			v_pIICregs->rIICCON = 0xef;                 //Resumes IIC operation with ACK
		break;
		
	default:
		break;      
    }
    
    InterruptDone(SYSINTR_IIC);
}

void Delay(int time)
{
    volatile int i;
    
    for(;time>0;time--)
        for(i=0;i<100;i++);
}

void RecordInit()
{
	 Wr_MAXIIC(IIC_SLAVEADDRESS_WRITE,0x2,0x00);
	 Wr_MAXIIC(IIC_SLAVEADDRESS_WRITE,0x3,0x18);
	 Wr_MAXIIC(IIC_SLAVEADDRESS_WRITE,0x4,0xff);
}

void Recordfinish()
{
	 Wr_MAXIIC(IIC_SLAVEADDRESS_WRITE,0x2,0x1f);
	 Wr_MAXIIC(IIC_SLAVEADDRESS_WRITE,0x3,0x1f);
	 Wr_MAXIIC(IIC_SLAVEADDRESS_WRITE,0x4,0x50);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩综合av| 久久久www成人免费毛片麻豆 | 奇米影视一区二区三区| 一区二区国产视频| 欧美日韩综合一区| 粉嫩久久99精品久久久久久夜| 国产真实乱对白精彩久久| 精品在线视频一区| 国产精品99久久不卡二区| 国产乱码精品一品二品| 成人网男人的天堂| 色综合久久66| 91精品国产美女浴室洗澡无遮挡| 91麻豆精品国产91久久久资源速度| 欧美老肥妇做.爰bbww视频| 欧美精品九九99久久| 精品国产乱码久久| 日本一区二区综合亚洲| 亚洲精品老司机| 亚洲第一会所有码转帖| 免费av成人在线| 国产大片一区二区| 色婷婷精品久久二区二区蜜臂av | 99热在这里有精品免费| 91国内精品野花午夜精品| 欧美日韩视频一区二区| 精品国产乱码久久久久久图片 | 亚洲图片激情小说| 丝袜美腿亚洲色图| 国产传媒一区在线| 欧美日韩1234| 久久久蜜桃精品| 亚洲一区二区欧美日韩| 狠狠色综合日日| 91免费视频大全| 蜜臀av一区二区| 欧美videofree性高清杂交| 免费在线视频一区| a4yy欧美一区二区三区| 欧美一区国产二区| 国产精品免费视频网站| 蜜桃av噜噜一区| 99久久精品免费看国产免费软件| 91精品国产色综合久久ai换脸 | 日本在线播放一区二区三区| 成人免费观看男女羞羞视频| 欧美日韩一级二级| 中文字幕精品—区二区四季| 视频一区视频二区在线观看| 9i在线看片成人免费| 日韩欧美自拍偷拍| 亚洲国产视频a| 国产suv一区二区三区88区| 91精品国产91久久久久久一区二区| 国产精品网站在线播放| 九九视频精品免费| 欧美日韩精品电影| 亚洲精品视频在线观看网站| 国产精品一区二区91| 欧美一卡二卡在线观看| 亚洲国产精品天堂| 99精品视频一区二区| 亚洲国产高清在线| 国产精品一二一区| 久久久一区二区三区捆绑**| 麻豆91精品91久久久的内涵| 欧美日本一区二区三区四区| 亚洲免费观看高清完整版在线观看熊| 国产呦萝稀缺另类资源| 日韩精品一区二区三区三区免费| 亚洲午夜在线视频| 在线精品视频一区二区三四| 亚洲三级在线看| 91一区二区三区在线播放| 国产精品精品国产色婷婷| 国产成人av一区| 国产欧美va欧美不卡在线| 国产精品亚洲一区二区三区在线| 欧美大片拔萝卜| 久久99国产精品麻豆| 精品国产伦一区二区三区观看方式 | 国产无人区一区二区三区| 国产在线不卡一卡二卡三卡四卡| 91精品国产综合久久蜜臀| 日本午夜一区二区| 日韩精品自拍偷拍| 国产精品99精品久久免费| 国产午夜精品美女毛片视频| 成人福利视频网站| 一区二区三区四区蜜桃 | 欧美日韩视频一区二区| 免费美女久久99| 日韩区在线观看| 精品一区二区成人精品| 亚洲国产精品成人综合| 91在线视频观看| 亚洲图片欧美综合| 亚洲精品一区二区精华| 懂色av一区二区在线播放| 亚洲欧洲精品一区二区三区| 色94色欧美sute亚洲线路一ni| 五月综合激情日本mⅴ| 精品国产91九色蝌蚪| 99精品在线观看视频| 三级不卡在线观看| 国产欧美视频一区二区三区| 91黄视频在线| 久国产精品韩国三级视频| 国产精品天美传媒沈樵| 欧美日韩一区二区在线视频| 久久99久国产精品黄毛片色诱| 国产精品乱人伦中文| 欧美男人的天堂一二区| 国产1区2区3区精品美女| 亚洲高清免费在线| 国产色91在线| 7777精品伊人久久久大香线蕉完整版| 精品一区二区三区免费| 亚洲影院免费观看| 国产婷婷色一区二区三区四区| 欧美日韩情趣电影| 高清不卡在线观看| 玖玖九九国产精品| 亚洲一区国产视频| 国产精品久久久久久妇女6080 | 国产凹凸在线观看一区二区| 亚洲一区二区欧美日韩| 国产精品午夜电影| 精品国产99国产精品| 欧美日韩视频在线第一区| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 国产福利视频一区二区三区| 亚洲国产视频一区| 亚洲男人天堂av网| 国产色产综合产在线视频| 日韩三级.com| 欧美一级理论片| 在线国产亚洲欧美| 一本到三区不卡视频| 国产精品99久久久久久似苏梦涵| 蜜臀av一级做a爰片久久| 亚洲国产视频一区| 一区二区三区免费观看| 中文字幕制服丝袜一区二区三区| 26uuu亚洲综合色欧美| 日韩精品中文字幕在线一区| 欧美高清视频www夜色资源网| 在线亚洲高清视频| 日本福利一区二区| 91久久精品午夜一区二区| av亚洲精华国产精华精华| jiyouzz国产精品久久| 国产电影精品久久禁18| 国产精品123区| 国产成人午夜99999| 丰满少妇久久久久久久| 国产精品一区免费视频| 懂色av一区二区夜夜嗨| 成人一道本在线| av网站一区二区三区| 成人免费黄色大片| 99久久久无码国产精品| 一本色道久久综合亚洲aⅴ蜜桃| 色先锋aa成人| 欧美日韩三级视频| 日韩美女一区二区三区| 久久精品一区二区三区四区| 国产欧美综合在线| 亚洲欧美综合网| 午夜久久久久久| 久久99深爱久久99精品| 国产成人精品综合在线观看 | 国产精品视频在线看| 国产精品初高中害羞小美女文 | 欧美精品在线一区二区三区| 日韩亚洲欧美成人一区| 欧美经典三级视频一区二区三区| 国产精品夫妻自拍| 亚洲va中文字幕| 国产一区在线观看麻豆| 成人的网站免费观看| 欧美精品aⅴ在线视频| 久久久精品一品道一区| 综合久久久久久| 免费高清在线一区| 色综合中文字幕| 日韩免费福利电影在线观看| 国产精品久久久久影视| 五月天精品一区二区三区| 国产精品自拍一区| 91久久香蕉国产日韩欧美9色| 日韩美女视频一区二区在线观看| 国产精品伦理在线| 全部av―极品视觉盛宴亚洲| 成人一道本在线| 欧美电影免费观看高清完整版在| 中文字幕一区二区三区在线播放 | 久久成人久久鬼色| 一本色道久久加勒比精品| 日韩欧美电影在线|