语音压缩与回放dsp课程设计(编辑修改稿)内容摘要:

FFF}。 */ static short seg_end[8]={0x3F,0x7F,0xFF,0x1FF,0x3FF,0x7FF,0xFFF,0x1FFF}。 */ Uint32 SourData1[65536]={0}。 Uint32 SourData2[65536]={0}。 Uint32 SourData3[65536]={0}。 Int16 aData1[65536]={0}。 Int16 bData1[65536]={0}。 11 / 28 pragma DATA_SECTION (SourData1,.Audio_in_data1)。 pragma DATA_SECTION (SourData2,.Audio_in_data2)。 pragma DATA_SECTION (SourData3,.Audio_in_data3)。 pragma DATA_SECTION (aData1,.Audio_a_data1)。 pragma DATA_SECTION (bData1,.Audio_b_data1)。 define AUDIOTRY 0xAA0A//音频试听 define AUDIOCOPY 0xAA07//音频存贮并回放 define TESTCOMMAND 2 //操作命令选择 // 定义 McBSP的句柄 MCBSP_Handle hMcbsp。 //函数声明 void delay()。 void blink()。 void blink_D5()。 unsigned char data2alaw(Int16 pcm_val)。 int alaw2data(unsigned char a_val)。 static int search(int val,short *table,int size)。 /**/ // // FUNCTION: MAIN // /**/ void main(void) { Uint16 DataTempLeft = 0。 // 暂存采样数据 Uint16 DataTempRight = 0。 Int16 TempData。 Uint16 i,temp1,temp2。 Uint32 n。 Uint16 TestCommand =0。 12 / 28 // Initialize CSL library This is REQUIRED !!! CSL_init()。 if TESTCOMMAND==1 TestCommand =AUDIOTRY。 //试听 endif if TESTCOMMAND==2 TestCommand =AUDIOCOPY。 //录音并回放 endif // The main frequency of system is 240MHz // 该频率是为了设置 IIC模块的需要设置的 ,为了使用 I2C_setup函数 PLL_setFreq(1, 0xC, 0, 1, 3, 3, 0)。 //EMIF初始化 Emif_Config()。 // Open McBSP port 1 and get a McBSP type handle hMcbsp = MCBSP_open(MCBSP_PORT1,MCBSP_OPEN_RESET)。 // Config McBSP port 1 by use previously defined structure Mcbsp_Config(hMcbsp)。 //I2C初始化 I2C_cofig()。 //CODEC寄存器初始化 inti_AIC()。 /**/ // Receive the ADC output data of CODEC // Then output the received data to DAC of CODEC /**/ while(1) { 13 / 28 switch(TestCommand) { /*音频试听 */ case AUDIOTRY: /* 左通路数据 */ while(!MCBSP_rrdy(hMcbsp)){}。 DataTempLeft = MCBSP_read16(hMcbsp)。 /* 左声道耳机输出 */ while(!MCBSP_xrdy(hMcbsp)) {}。 MCBSP_write16(hMcbsp,DataTempLeft)。 /* 右通路数据 */ while(!MCBSP_rrdy(hMcbsp)){}。 DataTempRight = MCBSP_read16(hMcbsp)。 /* 右声道耳机输出 */ while(!MCBSP_xrdy(hMcbsp)) {}。 MCBSP_write16(hMcbsp,DataTempRight)。 break。 /*音频存贮并回放 */ case AUDIOCOPY: blink()。 //闪烁指示开始录音 for(i=0。 i65535。 i++) { n=1。 while(n5) { while(!MCBSP_rrdy(hMcbsp)){}。 //SourData[i] = MCBSP_read16(hMcbsp)。 aData1[i]=TempData。 TempData=MCBSP_read16(hMcbsp)。 temp1=data2alaw(TempData)。 // 14 / 28 switch(n%4) { case 1: SourData1[i]=(temp1=24)。 break。 case 2: SourData1[i]=(SourData1[i]|(temp1=16))。 break。 case 3: SourData1[i]=(SourData1[i]|(temp1=8))。 break。 case 0: SourData1[i]=(SourData1[i]|temp1)。 break。 default: break。 } n++。 } } for(i=0。 i65535。 i++) { n=1。 while(n5) { while(!MCBSP_rrdy(hMcbsp)){}。 //SourData[i] = MCBSP_read16(hMcbsp)。 TempData=MCBSP_read16(hMcbsp)。 temp1=data2alaw(TempData)。 // switch(n%4) { case 1: SourData2[i]=(temp1=24)。 break。 case 2: SourData2[i]=(SourData2[i]|(temp1=16))。 break。 case 3: SourData2[i]=(SourData2[i]|(temp1=8))。 break。 case 0: SourData2[i]=(SourData2[i]|temp1)。 break。 15 / 28 default: break。 } n++。 } }。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。