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

📄 pt2313.c

📁 一款车载DVD音频处理IC驱动程式
💻 C
字号:
/* 功能: i2c开始工作   CLOCK在高电平,DATA从高变低 */
void start_2313()
{
  bc_sda_2313=1;  
  bc_clk_2313=1;
  _nop_(); _nop_(); _nop_(); 
  bc_sda_2313=0;
  _nop_(); _nop_(); _nop_();
  bc_clk_2313=0;
  _nop_();
}


/* 功能: i2c 的结束工作   CLOCK在高电平,DATA从低变高 */
void stop_2313()
{
  _nop_();	
  bc_sda_2313=0;
  _nop_(); _nop_(); 
  bc_clk_2313=1;
  _nop_(); _nop_(); _nop_();
  bc_sda_2313=1;
  _nop_();_nop_();_nop_();
  bc_clk_2313=0;  
}


/* 读应答位 bc_sda_2313被拉低有应答, ack_2313=1有应答,ack_2313=0 没应答 */
uchar get_2313_ack()
{ uchar ack_2313;
  ack_2313=0;
  bc_clk_2313=1; 
  bc_sda_2313=1;              // get ack bit from pt2313,ack bit is save in 000h
  _nop_();  _nop_();  
  if(bc_sda_2313==0) ack_2313=20;   /* 有应答 */
  if(bc_sda_2313==1) ack_2313=10;   /* 没应答 */
  _nop_();
  bc_clk_2313=0; 
  _nop_();
  return ack_2313;
}

/* 功能: 写一字节到i2c 先送最高位, CLOCK低电平时,DATA允许变化; CLOCK高电平时,DATA需稳定
   参数: par_2313=一字节的发送数据  */
void send_a_byte_2313(uchar par_2313)
{
  uchar i;
  for(i=0;i<8;i++ )
    { bc_clk_2313=0;  
      _nop_(); _nop_();  
      if((par_2313&0x80)==0x80)
        { bc_sda_2313=1; }
      else
        { bc_sda_2313=0; }
      par_2313=par_2313<<1;
      _nop_();
     bc_clk_2313=1;
      _nop_(); _nop_(); _nop_();  _nop_(); _nop_(); _nop_();
    }
  bc_clk_2313=0; 
}

/* 发2313的数据 */
void send_pt2313(uchar par_2313 )
{ uchar i,ask_2313;
  uchar temp;
//  error_2313=0;
  for(i=0;i<10;i++)  /* 发10次,无效才返回 */
    { start_2313();
      send_a_byte_2313(0x88);   //0x88=PT2313 address     
      ask_2313=get_2313_ack();
      send_a_byte_2313(par_2313);
      ask_2313=get_2313_ack();
//      error_2313=ask_2313;
      stop_2313();
      _nop_();
      if(ask_2313==20) break;
    }
 }

/* PT2313 音量处理 实际是先置音量为最大,然后一通道是MIC_VOL 另一通道是 MIC_ECHO */
void volume_2313()
{ uchar par_2313;
  
  send_pt2313(2);   

  par_2313=31-par_vol[MIC_VOL]; 
  par_2313=0xc0+par_2313;
  send_pt2313(par_2313);
  
  par_2313=31-par_vol[MIC_ECHO]; 
  par_2313=0xe0+par_2313;
  send_pt2313(par_2313);

}

/* PT2313 低音处理  */
void bass_2313(uchar par_2313)
{ par_2313=par_2313/2;
  par_2313=bass_treble_code[par_2313];
  par_2313=par_2313+0x60;
  send_pt2313(par_2313);  
}


/* PT2313 高音处理  */
void treble_2313(uchar par_2313)
{ par_2313=par_2313/2;
  par_2313=bass_treble_code[par_2313];
  par_2313=par_2313+0x70;
  send_pt2313(par_2313);  
}

⌨️ 快捷键说明

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