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

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

?? aic23_lib.c

?? 數字音頻實驗測試工程
?? C
字號:
/***************************************************
模塊說明      :TLV320AIC23操作庫文件
作    者      :柳軍勝
公    司      :杭州自由電子科技
            :http://www.freefpga.com
電   話       :0571-85084089
修    改      :
日期時間      :20060523
說    明      :
            TLV320AIC23各類控制函數
****************************************************/
#include <alt_types.h>
#include <tlv320aic23.h>
#include <i2c_master.h>

// 寄存器控制值保存
static alt_u16 liv;
static alt_u16 riv;
static alt_u16 lhpv;
static alt_u16 rhpv;
static alt_u16 ap;
static alt_u16 dp;
static alt_u16 pd;
static alt_u16 dif;
static alt_u16 sr;

/*********************************************
函數名:write_I2c_Aic23
功  能:寫TVL320AIC23音頻芯片控制寄存器
輸  入:外設地址,設備地址,字節地址
返  回: 
備  注:通過I2C控制總線寫AIC23控制寄存器
       使用了I2C庫的相關函數。
**********************************************/
int write_I2C_Aic23(alt_u8 slaveAddr,alt_u16 data)
{
    alt_u8 uc;
    int iRet;
       
    iRet=start_write_waitack(slaveAddr);
    if(iRet<0)
      return -1;
    
    //write B15-B8
    uc=(data & 0xff00)>>8;
    iRet=write_waitack(uc);
    if(iRet<0)
      return -2;  
       
    //write B7-B0 
    uc=(data & 0x00ff);
    iRet=write_waitack_stop(uc);
    if(iRet<0)
      return -3;
       
    return 0;
  }

/*********************************************
函數名:aic23_reset
功  能:TLV320AIC23音頻芯片復位函數
輸  入:
返  回: 
備  注:
      軟件復位
**********************************************/
int aic23_reset()
{
  int iRet;

  iRet=write_I2C_Aic23(0x34,CTRL_DATA(AIC23_RST,0));
  if(iRet<0){
    printf("復位AIC23錯誤\n");
    return -1;
  }
  
  return 0;
}

/*********************************************
函數名:aic23_analog_bypass
功  能:TLV320AIC23音頻芯片模擬電路旁路實驗函數
輸  入:
返  回: 
備  注:
      TLV320AIC23支持模擬信號旁路,LINE IN可以通過
      控制寄存器旁路到LINE OUT和HEADPHONE OUT,在旁路
      狀態,我們可以測試數字化增益調整,側音增益調整,還
      可以測試HEADPHONE放大增益調整。
**********************************************/

int aic23_analog_bypass_test()
{
  int iRet;
  
  aic23_reset();
  
  liv=CTRL_DATA(AIC23_LIV, AIC23_LIV_LIV0_MSK|\
                           AIC23_LIV_LIV1_MSK|\
                           AIC23_LIV_LIV2_MSK|\
                           AIC23_LIV_LIV3_MSK|\
                           AIC23_LIV_LIV4_MSK);
  iRet=write_I2C_Aic23(0x34,liv);
  if(iRet<0){
    printf("寫left line input volume control error\n");
  }
  
  riv=CTRL_DATA(AIC23_RIV, AIC23_RIV_RIV0_MSK|\
                           AIC23_RIV_RIV1_MSK|\
                           AIC23_RIV_RIV2_MSK|\
                           AIC23_RIV_RIV3_MSK|\
                           AIC23_RIV_RIV4_MSK);
  iRet=write_I2C_Aic23(0x34,riv);
  if(iRet<0){
    printf("寫right line input volume control error\n");
  }
  
  ap=CTRL_DATA(AIC23_AP,AIC23_AP_MICM_MSK|\
                         AIC23_AP_BYP_MSK);
  //旁路、關閉DAC、關閉MIC 
  iRet=write_I2C_Aic23(0x34,ap);
  if(iRet<0){
    printf("寫analog Audio Path Control error\n");
  }
  
  //address 0000111 Power Down Control
  pd=CTRL_DATA(AIC23_PD,AIC23_PD_MIC_MSK|\
                         AIC23_PD_ADC_MSK|\
                         AIC23_PD_DAC_MSK);
  iRet=write_I2C_Aic23(0x34,pd);
  if(iRet<0){
    printf("寫Power Down Control error\n");
  }
  
  return 0;
}

/*********************************************
函數名:aic23_normal_setup
功  能:TLV320AIC23音頻芯片常規設置函數
輸  入:
返  回: 
備  注:
     開啟LINE,ADC,DAC,DSP數據格式,USB采樣設置模式
     12M MCLK。
**********************************************/
int aic23_normal_setup()
{
  int iRet;
  char ch;
  unsigned short int reg;
 
  aic23_reset();
  
  liv=CTRL_DATA( AIC23_LIV, AIC23_LIV_LIV0_MSK|\
                            AIC23_LIV_LIV1_MSK|\
                            AIC23_LIV_LIV2_MSK|\
                            AIC23_LIV_LIV3_MSK|\
                            AIC23_LIV_LIV4_MSK);
  iRet=write_I2C_Aic23(0x34,liv);
  if(iRet<0){
    printf("寫left line input volume control error\n");
  }
  
  riv=CTRL_DATA( AIC23_RIV, AIC23_RIV_RIV0_MSK|\
                            AIC23_RIV_RIV1_MSK|\
                            AIC23_RIV_RIV2_MSK|\
                            AIC23_RIV_RIV3_MSK|\
                            AIC23_RIV_RIV4_MSK);
  iRet=write_I2C_Aic23(0x34,riv);
  if(iRet<0){
    printf("寫right line input volume control error\n");
  }
 
  ap=CTRL_DATA( AIC23_AP,  AIC23_AP_MICM_MSK|\
                          AIC23_AP_DAC_MSK);
  iRet=write_I2C_Aic23(0x34,ap);//0812
  if(iRet<0){
    printf("寫analog Audio Path Control error\n");
  }
  
  dp=CTRL_DATA(AIC23_DP, 0);
  iRet=write_I2C_Aic23(0x34,dp);
  if(iRet<0){
    printf("寫analog Audio Path Control error\n");
  }
 
  pd=CTRL_DATA(AIC23_PD,AIC23_PD_MIC_MSK); 
  iRet=write_I2C_Aic23(0x34,pd);//0c02
  if(iRet<0){
    printf("寫Power Down Control error\n");
  }
  
  dif=CTRL_DATA(AIC23_DIF, AIC23_DIF_FOR0_MSK|\
                           AIC23_DIF_FOR1_MSK|\
                           AIC23_DIF_LRP_MSK|\
                           AIC23_DIF_MS_MSK);
  iRet=write_I2C_Aic23(0x34,dif);//0x0e53
  if(iRet<0){
    printf("寫Digital Audio Interface Control error\n");
  }
  
  ch=ShowSelect( "選擇96K采樣率?y OR n",'y','n' );
  if(ch=='y'){
    // MCLK、MCLK、96kHz、USB Mode
    sr=CTRL_DATA(AIC23_SR,AIC23_SR_USBNORMAL_MSK|\
                           AIC23_SR_SR0_MSK|\
                           AIC23_SR_SR1_MSK|\
                           AIC23_SR_SR2_MSK);     
  }else{
    ch=ShowSelect( "選擇48K采樣率?y OR n",'y','n' );
    if(ch=='y'){
      // MCLK、MCLK、48kHz、USB Mode 
      sr=CTRL_DATA(AIC23_SR,AIC23_SR_USBNORMAL_MSK);       
    }else{
      ch=ShowSelect( "選擇8K采樣率?y OR n",'y','n' );
      if(ch=='y'){
        // 8khz,USB Mode 
        sr=CTRL_DATA(AIC23_SR,AIC23_SR_USBNORMAL_MSK|\
                           AIC23_SR_SR0_MSK|\
                           AIC23_SR_SR1_MSK); 
      } else
        reg=0x1001;
    }
  }
  iRet=write_I2C_Aic23(0x34,sr);    
  if(iRet<0){
    printf("寫Sample rate Control error\n");
  }
  
  reg=CTRL_DATA(AIC23_DIA,AIC23_DIA_ACT_MSK);
  iRet=write_I2C_Aic23(0x34,reg);
  if(iRet<0){
    printf("寫Sample rate Control error\n");
  }
 
  return 0;
}


/*********************************************
函數名:livc
功  能:左聲道線路增益控制
輸  入:聲道增益控制值:11111~0000(+12db~-34db)
返  回:0 sucesses -1 error 
備  注:10111=0db
**********************************************/
int livc(unsigned char value)
{
  int iRet;
  alt_u16 reg;
  
  reg=value&0x1f;
  liv=liv&(~0x1f);
  liv=liv|reg; 
 
  iRet=write_I2C_Aic23(0x34,liv);
  if(iRet<0){
    printf("寫left line input volume control error\n");
    return -1;
  }
  return 0; 
}

/*********************************************
函數名:rivc
功  能:右聲道線路增益控制
輸  入:右道增益控制值:11111~0000(+12db~-34db)
返  回:0 sucesses -1 error 
備  注:10111=0db
**********************************************/
int rivc(unsigned char value)
{
  int iRet;
  alt_u16 reg;
  
  reg=value&0x1f;
  riv=riv&(~0x1f);
  riv=riv|reg; 
 
  iRet=write_I2C_Aic23(0x34,riv);
  if(iRet<0){
    printf("寫right line input volume control error\n");
    return -1;
  }
  return 0; 
}

/*********************************************
函數名:lim
功  能:左聲道線路靜音控制
輸  入:
返  回:0 sucesses -1 error 
備  注:
**********************************************/
int lim()
{
  int iRet;
  liv=liv|AIC23_LIV_LIM_MSK; 
 
  iRet=write_I2C_Aic23(0x34,liv);
  if(iRet<0){
    printf("寫left line input volume control error\n");
    return -1;
  }
  return 0; 
}

/*********************************************
函數名:rim
功  能:右聲道線路靜音控制
輸  入:
返  回:0 sucesses -1 error 
備  注:
**********************************************/
int rim()
{
  int iRet;
  riv=riv|AIC23_RIV_RIM_MSK; 
 
  iRet=write_I2C_Aic23(0x34,riv);
  if(iRet<0){
    printf("寫left line input volume control error\n");
    return -1;
  }
  return 0; 
}


/*********************************************
函數名:lhpv
功  能:左聲道耳機增益控制
輸  入:聲道增益控制值:1111111~0000000(+6db~-73db)
返  回:0 sucesses -1 error 
備  注:1111001=0db
**********************************************/
int lhpvc(unsigned char value)
{
  int iRet;
  alt_u16 reg;
  
  reg=value&0x7f;
  lhpv=lhpv&(~0x7f);
  lhpv=lhpv|reg; 
 
  iRet=write_I2C_Aic23(0x34,lhpv);
  if(iRet<0){
    printf("寫left headphone out volume control error\n");
    return -1;
  }
  return 0; 
}

/*********************************************
函數名:rhpv
功  能:左聲道耳機增益控制
輸  入:聲道增益控制值:1111111~0000000(+6db~-73db)
返  回:0 sucesses -1 error 
備  注:1111001=0db
**********************************************/
int rhpvc(unsigned char value)
{
  int iRet;
  alt_u16 reg;
  
  reg=value&0x7f;
  rhpv=rhpv&(~0x7f);
  rhpv=rhpv|reg; 
 
  iRet=write_I2C_Aic23(0x34,rhpv);
  if(iRet<0){
    printf("寫right headphone out volume control error\n");
    return -1;
  }
  return 0; 
}





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频在线在亚洲| 成人av先锋影音| 久热成人在线视频| 国产精品99久久久久久宅男| 丁香婷婷综合网| 欧美三级视频在线播放| 国产精品久久久久婷婷| 亚洲视频 欧洲视频| 热久久久久久久| 成人黄色777网| 色噜噜狠狠色综合中国| 日韩午夜激情视频| 亚洲欧洲av另类| 日本不卡不码高清免费观看 | 91美女在线观看| 欧美剧在线免费观看网站 | 一区二区中文视频| 日韩精品一级中文字幕精品视频免费观看 | 亚洲在线观看免费| 韩国一区二区在线观看| 在线观看视频91| 国产婷婷色一区二区三区在线| 亚洲码国产岛国毛片在线| 国产在线精品国自产拍免费| 欧美日韩国产综合一区二区三区| 久久精品人人做| 日韩一区精品字幕| 在线免费观看不卡av| 日本一区二区三区在线观看| 亚洲综合一区在线| jvid福利写真一区二区三区| 欧美一区永久视频免费观看| 综合色中文字幕| 成人国产免费视频| 国产清纯美女被跳蛋高潮一区二区久久w | 国产亚洲精品中文字幕| 丝袜美腿亚洲综合| 欧美网站大全在线观看| 亚洲视频网在线直播| 成人毛片老司机大片| 久久嫩草精品久久久久| 免费高清成人在线| 日韩欧美你懂的| 五月天网站亚洲| 欧美日韩国产高清一区二区| 亚洲精品一卡二卡| 色综合久久久久综合体| 亚洲欧洲另类国产综合| 国产精品一区二区在线播放| 欧美成人性福生活免费看| 热久久国产精品| 日韩免费视频一区二区| 奇米精品一区二区三区在线观看一| 欧美日韩一区二区三区免费看| 亚洲激情五月婷婷| 在线免费观看日本一区| 国产精品久久国产精麻豆99网站| 国产成人免费在线| 欧美国产日本视频| 国产乱色国产精品免费视频| 中文字幕高清一区| 欧美影院午夜播放| 国产在线不卡一卡二卡三卡四卡| **欧美大码日韩| 欧美一级日韩一级| 91老师片黄在线观看| 久久国产麻豆精品| 一区二区三区美女| 久久众筹精品私拍模特| 欧美三级在线视频| 国产一区二区主播在线| 亚洲日本免费电影| 久久夜色精品一区| 欧美日韩在线三级| 国产成人亚洲综合a∨婷婷| 亚洲444eee在线观看| 欧美激情在线一区二区| 欧美精品一二三| 99国产麻豆精品| 国内外成人在线视频| 亚洲一区二区三区在线播放 | 91精品国产综合久久精品麻豆| 国产成人一级电影| 蜜臀av性久久久久蜜臀aⅴ四虎| 1024成人网| 久久女同性恋中文字幕| 欧美一区二区三区在线观看视频| 色婷婷综合视频在线观看| 成人一区在线看| 久久99精品久久久久久久久久久久 | 亚洲另类春色国产| 中文字幕精品—区二区四季| 精品国产免费人成电影在线观看四季| 色美美综合视频| 成人av免费在线播放| 国产成人夜色高潮福利影视| 久久国产欧美日韩精品| 天涯成人国产亚洲精品一区av| 亚洲嫩草精品久久| 自拍偷拍亚洲综合| 国产精品传媒入口麻豆| 国产婷婷色一区二区三区| www日韩大片| 精品91自产拍在线观看一区| 欧美一区二区三区影视| 欧美丰满少妇xxxxx高潮对白 | 色欧美乱欧美15图片| 99这里都是精品| av在线一区二区| 91啪九色porn原创视频在线观看| 国产福利一区在线| 国产不卡视频在线观看| 国产不卡视频一区二区三区| 国产大陆a不卡| 国产99精品国产| 国产高清不卡一区| 波多野结衣的一区二区三区| 99re热这里只有精品视频| 91蜜桃婷婷狠狠久久综合9色| 99国产精品久久久久久久久久| 色综合久久久久综合| 欧美午夜影院一区| 4438亚洲最大| 2024国产精品| 国产精品视频免费| 亚洲欧美日韩久久精品| 亚洲一区二区综合| 免费成人深夜小野草| 国产激情精品久久久第一区二区 | 极品少妇xxxx精品少妇| 国产一区二区伦理| 99久久精品情趣| 在线欧美日韩国产| 日韩免费福利电影在线观看| 久久久久一区二区三区四区| 亚洲人亚洲人成电影网站色| 亚洲风情在线资源站| 久久精品噜噜噜成人av农村| 国产69精品一区二区亚洲孕妇| 99久久综合99久久综合网站| 一本久道中文字幕精品亚洲嫩| 这里是久久伊人| 国产日产精品1区| 亚洲图片欧美一区| 久久成人久久爱| 一本到不卡精品视频在线观看| 日韩欧美你懂的| 日韩毛片精品高清免费| 日本不卡视频在线观看| 99综合电影在线视频| 日韩久久免费av| 亚洲欧美偷拍另类a∨色屁股| 九一九一国产精品| 色综合久久久久综合| 日韩欧美国产综合| 亚洲欧美偷拍三级| 国模套图日韩精品一区二区 | 国产一区啦啦啦在线观看| 91蜜桃免费观看视频| 久久久亚洲综合| 亚洲成av人**亚洲成av**| 国产成人午夜精品5599| 91精品国产欧美日韩| 中文字幕在线观看一区| 久久99深爱久久99精品| 色94色欧美sute亚洲线路一ni | av亚洲精华国产精华精华| 欧美一级久久久| 亚洲无人区一区| av一二三不卡影片| 久久综合久久99| 青青草原综合久久大伊人精品 | 91在线观看视频| 国产三级一区二区| 免费久久99精品国产| 欧美主播一区二区三区| 中文字幕欧美激情一区| 久久国产夜色精品鲁鲁99| 欧美精品第一页| 午夜精品福利在线| 在线观看成人小视频| 中文字幕一区二区三区不卡在线| 国产综合久久久久久久久久久久 | 17c精品麻豆一区二区免费| 国产乱色国产精品免费视频| 欧美成人免费网站| 九九九精品视频| 精品少妇一区二区三区日产乱码 | 午夜精品久久久久久久99樱桃| 一本到不卡精品视频在线观看 | 免费成人在线网站| 欧美另类z0zxhd电影| 亚洲高清免费视频| 欧美日韩一级大片网址| 亚洲图片一区二区| 欧美男人的天堂一二区| 日日摸夜夜添夜夜添精品视频| 制服丝袜亚洲色图| 蜜桃精品视频在线| 久久午夜色播影院免费高清|