📄 aic23.c
字号:
#include "DSP28_Device.h"
extern Uint16 volume;
extern Uint16 AicRegs;
void InitAic23()
{
WriteAic23(RESET,0);
WriteAic23(D_INTERFACE_ACT,0x001);
WriteAic23(POWER_CON,0);
WriteAic23(SAMPLE_RATE,0x022); //44.1k
// write_AIC23(SAMPLE_RATE,0x062); //22.05k
// write_AIC23(SAMPLE_RATE,0x02e); //8.021k
WriteAic23(L_LINE_VOLUME,0x0117);
WriteAic23(R_LINE_VOLUME,0x0117);
volume=100;
WriteAic23(L_HEADPHONE_VOLUME,0x0180+volume);
WriteAic23(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
WriteAic23(A_AUDIO_PATH,0x07d); //bypass MIC ADC DAC ON 20DB sidetone(-6db)
// write_AIC23(A_AUDIO_PATH,0x011); //LINE ADC DAC ON
WriteAic23(D_AUDIO_PATH,0x04);
WriteAic23(D_AUDIO_INTERFACE,0x043); //master dsp mode 16BIT
}
void WriteAic23(Uint16 addr,Uint16 dat)
{
Uint16 i,Temp;
Temp = addr<<9;
dat = dat | Temp;
//CS=0;
AicRegs = AicRegs & ClrAICCS;
Led8Reg = AicRegs;
for(i=0;i<16;i++)
{
//SCLK=0;
AicRegs = AicRegs & ClrSCLK;
Led8Reg = AicRegs;
Temp = dat<<i;
Temp = Temp & 0x8000;
if (Temp)
{
AicRegs = AicRegs | SetSIDIN;
Led8Reg = AicRegs;
}
else{
AicRegs = AicRegs & ClrSIDIN;
Led8Reg = AicRegs;
}
delay(200);
AicRegs = AicRegs | SetSCLK; //SCLK=1;
Led8Reg = AicRegs;
delay(200);
}
//SCLK=0;
AicRegs = AicRegs & ClrSCLK;
Led8Reg = AicRegs;
//CS=1;
AicRegs = AicRegs | SetAICCS;
Led8Reg = AicRegs;
}
void delay(Uint32 k)
{
while(k--);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -