📄 aic23.c
字号:
/***********************************************
copyright by Haia Tech
www.haia2004.com
************************************************/
#include "..\inc\board.h"
#define L_LINE_VOLUME 0x00
#define R_LINE_VOLUME 0x01
#define L_HEADPHONE_VOLUME 0x02
#define R_HEADPHONE_VOLUME 0x03
#define A_AUDIO_PATH 0x04
#define D_AUDIO_PATH 0x05
#define POWER_CON 0x06
#define D_AUDIO_INTERFACE 0x07
#define SAMPLE_RATE 0x08
#define D_INTERFACE_ACT 0x09
#define RESET 0x0f
void write_AIC23(unsigned char addr,unsigned int dat);
void init_AIC23()
{
int volume;
write_AIC23(RESET,0);
write_AIC23(D_INTERFACE_ACT,0x001);
write_AIC23(POWER_CON,0);
write_AIC23(SAMPLE_RATE,0x022); //44.1k
// write_AIC23(SAMPLE_RATE,0x062); //22.05k
// write_AIC23(SAMPLE_RATE,0x02e); //8.021k
write_AIC23(L_LINE_VOLUME,0x0117);
write_AIC23(L_LINE_VOLUME,0x0117);
volume=100;
write_AIC23(L_HEADPHONE_VOLUME,0x0180+volume);
write_AIC23(R_HEADPHONE_VOLUME,0x0180+volume);
// write_AIC23(A_AUDIO_PATH,0x009); //bypass DAC OFF
// write_AIC23(A_AUDIO_PATH,0x014); //MIC ADC DAC ON 0DB
// write_AIC23(A_AUDIO_PATH,0x1fc); //bypass MIC ADC DAC ON 0DB sidetone
write_AIC23(A_AUDIO_PATH,0x07d); //bypass MIC ADC DAC ON 20DB sidetone(-6db)
// write_AIC23(A_AUDIO_PATH,0x011); //LINE ADC DAC ON
write_AIC23(D_AUDIO_PATH,0x04);
// write_AIC23(D_AUDIO_INTERFACE,0x041); //MASTER LEFT_ALINGED
write_AIC23(D_AUDIO_INTERFACE,0x001); //SLAVE LEFT_ALINGED
}
void write_AIC23(unsigned char addr,unsigned int dat)
{
unsigned char i;
unsigned int portf;
dat|=addr<<9;
portf=0xf7; //CS=0
outl(portf,rPDATF);
for(i=0;i<16;i++)
{
//SCLK=0;
portf&=0xfe;
outl(portf,rPDATF);
if((dat<<i)&0x8000)
{
//SDIN=1;
portf|=0x02;
outl(portf,rPDATF);
}
else
{
//SDIN=0;
portf&=0xfd;
outl(portf,rPDATF);
}
//SCLK=1;
portf|=0x01;
outl(portf,rPDATF);
delay(100);
}
//SCLK=0;
portf&=0xfe;
outl(portf,rPDATF);
//CS=1;
portf|=0xff;
outl(portf,rPDATF);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -