⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dspcodectest_fori2cset.c

📁 有关于USB的一些主机端驱动
💻 C
字号:

ioport int * gpio_iic;
#define DEV_ADDR 0x1a;

void IIC_delay(void)
{
  int i;
  for (i = 0; i < 3210; i++); 	//10700 is 1ms
}

void IIC_reset(void) 
{ gpio_iic=0;
  gpio_iic[0xf002]=0x0140;
//  setI2CDev(3);
}

void IIC_start(void) 
{    
  IIC_delay();
  gpio_iic=0;
  /* Pull SDA down... */
  
  gpio_iic[0xf002]=0x0040;  
//  setI2CDev(1); 

  IIC_delay();

  /* ...and then SCL -> start condition. */
  gpio_iic[0xf002]=0x0000;   
//  setI2CDev(0);
 
  IIC_delay();
}

void IIC_stop(void) 
{  gpio_iic=0; 
  /* Let SCL go up */
  gpio_iic[0xf002]=0x0040;   
//  setI2CDev(1);
  IIC_delay();

  /* ...and then SDA up -> stop condition. */
  gpio_iic[0xf002]=0x0140;   
//  setI2CDev(3); 
  IIC_delay();
  gpio_iic[0xf002]=0x0140; 
//  setI2CDev(3);
}

void IIC_outBit(int bout) 
{
	int dat;
	unsigned int dat1;
	dat = (bout?4:0);
	
	dat1=(dat<<6)&0x140;
  	gpio_iic[0xf002]=dat1; 	
//	setI2CDev(0+dat);
	IIC_delay();

	/* Let SCL go up */
	dat1=((dat+1)<<6)&0x140;
  	gpio_iic[0xf002]=dat1; 		
//	setI2CDev(1+dat); 	
	IIC_delay();

	/* Pull SCL back down */
//	setI2CDev(0+dat);
	dat1=(dat<<6)&0x140;
  	gpio_iic[0xf002]=dat1; 	
	IIC_delay();                
}

void IIC_outByte(int dat) 
{
  int bit_count = 8;

  while(bit_count) {
    IIC_outBit(dat & 0x80); 
    dat <<= 1;
    bit_count--;
  }     
  gpio_iic=0;
  
  /* Disable outputs */
  gpio_iic[0xf002]=0x100;
//setI2CDev(2);
  IIC_delay();

  gpio_iic[0xf002]=0x0140; 
//  setI2CDev(3);
  IIC_delay();

  gpio_iic[0xf002]=0x100;
//  setI2CDev(2);

  //  !!!  LMK   Added to delay to compensate for increase in clock speed
  //  for (i = 0; i < 18; i++) 
  //for (i = 0; i < 20; i++) 
    IIC_delay(); 
}

void IIC_send(int addr, int data) 
{

  IIC_reset();

  IIC_start();

  // Write the address, ensuring we only use the LSB
  //IIC_outByte((DEV_ADDR<<1) & 0xfe);
  IIC_outByte(0x34);  
  IIC_outByte( ((addr<<1)&0xfe) + (data&0x100?1:0) ); 

  // Write the data
  IIC_outByte(data&0xff); 

  IIC_stop();
}



void IIC_AIC23(void ){
	IIC_send(0xf,0x0);	//reset!					
	
	IIC_send(6,0x00);	//

//	IIC_send(2,0x1F0);	//Left Channel HeadPhone Ctrl 0xf9 is 0dB 
//	IIC_send(3,0x1F0);	//Right Channel
//while(1)
	IIC_send(2,0x1ff);	//Left Channel HeadPhone Ctrl 0xf9 is 0dB 
	IIC_send(3,0x1ff);	//Right Channel
	
//	IIC_send(4,0x12);	//0x25:sidetone, 0x12:passby off, dac on
	IIC_send(4,0x0a);	
	

		
	IIC_send(5,0x04);	//de-emphasis control 44k?
//	IIC_send(5,0x06);	//de-emphasis disable
	
	IIC_send(7,0x43);	//Master mode,16 bit,0x43:dsp mode , 0x42:IIS mode

	IIC_send(8,0x20);	// 44.1k

	IIC_send(9,0X01);
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -