?? aic23.c
字號(hào):
#include "DSP28_Device.h"
extern Uint16 volume;
extern unsigned int * SIAdd;
//bit0->CS bit1->Data bit2->SCLK
/*這里是對(duì)AIC23芯片進(jìn)行了初始化,大家學(xué)習(xí)時(shí)可以查看手冊(cè),來看對(duì)它的一些配置,這里我們不在講述*/
void InitAic23()
{
WriteAic23(RESET,0);
WriteAic23(D_INTERFACE_ACT,0x001);
WriteAic23(POWER_CON,0);
WriteAic23(SAMPLE_RATE,0x022); //44.1k
// WriteAic23(SAMPLE_RATE,0x062); //22.05k
// WriteAic23(SAMPLE_RATE,0x02e); //8.021k
WriteAic23(L_LINE_VOLUME,0x0117);
WriteAic23(R_LINE_VOLUME,0x0117);
volume=108;
WriteAic23(L_HEADPHONE_VOLUME,0x0180+volume);
WriteAic23(R_HEADPHONE_VOLUME,0x0180+volume);
// WriteAic23(A_AUDIO_PATH,0x009); //bypass DAC OFF
// WriteAic23(A_AUDIO_PATH,0x014); //MIC ADC DAC ON 0DB
// WriteAic23(A_AUDIO_PATH,0x1fc); //bypass MIC ADC DAC ON 0DB sidetone
WriteAic23(A_AUDIO_PATH,0x07d); //bypass MIC ADC DAC ON 20DB sidetone(-6db)
// WriteAic23(A_AUDIO_PATH,0x011); //LINE ADC DAC ON
WriteAic23(D_AUDIO_PATH,0x04);
WriteAic23(D_AUDIO_INTERFACE,0x043); //AIC23 master, dsp mode, 16BIT
}
void WriteAic23(Uint16 addr,Uint16 dat)
{
Uint16 i,Temp;
Temp = addr<<9;
dat = dat | Temp;//高7位地址,低9位數(shù)據(jù)
//CS=0,SCLK=1;
* SIAdd=0x0004;
for(i=0;i<16;i++)
{
//CS=0,SCLK=0;
* SIAdd=0x0000;
Temp = dat<<i;
Temp = Temp & 0x8000;//先發(fā)高位
if (Temp)
{
* SIAdd=0x0002;
}
else{
* SIAdd=0x0000;
}
delay(5000);
if (Temp)
{
* SIAdd=0x0006; //SCLK=1;
}
else{
* SIAdd=0x0004; //SCLK=1;
}
delay(5000);
}
//CS=1;
* SIAdd=0x0001;
delay(5000);
}
void delay(Uint32 k)
{
while(k--);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -