|
void Rec_SmallWave(U32 addr)
{
unsigned char *pWave;
ChangePllValue(0x69,0x17,0x0); //MCLK=45.1584MHz <-- 5.6448MHz*8
Uart_Init(45158400,115200);
pISR_BDMA0=(unsigned)BDMA0_Rec_Done;
rINTMSK=~(BIT_GLOBAL|BIT_BDMA0);
pWave=(unsigned char *)addr;
pWave+=0x28; //指向wav采样长度
pWave+=4; //指向wav数据
Uart_Printf("\nsample start:0x%x",pWave);
Init1341(RECORD);
/****** IIS Initialize ******/
rIISCON=0x1a; //Tx DMA enable,Rx idle,prescaler enable
rIISMOD=0x49; //Master,Tx,L-ch=low,iis,16bit ch.,codeclk=256fs,lrck=32fs
rIISPSR=0x33; //Prescaler_A/B enable, value=3
rIISFCON=0x500; //Tx/Rx DMA,Tx/Rx FIFO --> start piling....
/****** BDMA0 Initialize ******/
rBDISRC0=(1<<30)+(3<<28)+((U32)rIISFIF);
rBDIDES0=(1<<30)+(1<<28)+(U32)pWave;
rBDICNT0=(1<<30)+(1<<26)+(3<<22)+(1<<21)+(0<<20)+download_len;
rBDICNT0 |= (1<<20);//enable
//iis,reserve,done_int,auto-reload/start,DMA enable,COUNT
rBDCON0 = 0x0<<2;
Uart_Printf("\nNow rec the wave file ...");
Uart_Printf("\nPush any key to exit!!!");
while(!Uart_GetKey());
/****** IIS Rx Start ******/
rIISCON|=0x1;———————————————————————————————就是在这条卡住了
while(!Uart_GetKey());
/****** IIS Rx Stop ******/
rIISCON=0x0; //IIS stop
rBDICNT0=0x0; //BDMA stop
rINTMSK=BIT_GLOBAL;
}
44B0 的IIS音频接口程序 实现录音功能 但是一使能IIS,程序就卡住了,这是什么原因,放音的程序就正常。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|