实验八语音处理实验2.docx
《实验八语音处理实验2.docx》由会员分享,可在线阅读,更多相关《实验八语音处理实验2.docx(34页珍藏版)》请在冰豆网上搜索。
![实验八语音处理实验2.docx](https://file1.bdocx.com/fileroot1/2022-11/16/cf8d7c31-7d9c-4a25-88f5-9a513f661d25/cf8d7c31-7d9c-4a25-88f5-9a513f661d251.gif)
实验八语音处理实验2
***********************************************************************
;*北京达盛科技有限公司
;*研发部
;*
;*
;*
;*---------------------------------------------文件信息8-2---------------
;*
;*文件名称:
AUDIO.C
;*文件功能:
该文件为测试TLV320AIC23的测试程序,CPU=TMS320VC5402
;*MCLK=12.288MHz,TLV320AIC23=MASTER
;*接口说明:
MCBSP0配置成SPI方式,设置TLV320AIC23的寄存器,
;*MCBSP1配置成32位方式,和TLV320AIC23交换数据
*/
//------------------头文件--------------------------------------
//#include"MMRegs.h"
#include"DspRegDefine.h"
#include"stdio.h"
#include"math.h"
//---------------------------------------------------------------
/*******************宏定义***************
************************************************************
*/
#defineUCHARunsignedchar
#defineUINT16unsignedint
#defineUINT32unsignedlong
#defineTRUE1
#defineFALSE0
#definepi3.1415926
/*
************************************************************
******************全局变量*******************
************************************************************
*/
intread_data2,read_data1;//MCBSP1接收数据变量
intwrite_data2,write_data1;//MCBSP1发送数据变量
UINT16readaudio1[256],readaudio2[256];//MCBSP1接收数据变量数组
UCHARflag;
intin[256],out[256];//输入原始数据、输出处理后的数据
doublefs=8000;//采样频率
doublenlpass=0.028;//通带截止频率
doublenlstop=0.228;//阻带起始频率
doublea[3],b[3],x,y;//滤波器参数
/*
**********************************************************************
***************所使用的函数原型*****************
**********************************************************************
*/
voidcpu_init(void);//初始化CPU
voidaic23_init(void);//初始化TLV320AIC23,设置内部寄存器
voidmcbsp0_write_rdy(UINT16out_data);//MCBSP0发送一个数据
voidmcbsp0_init_SPI(void);//MCBSP0设置为SPI模式
voidmcbsp0_close(void);//MCBSP0关闭
voidmcbsp1_init(void);//MCBSP1初始化
voidmcbsp1_write_rdy(intout_data1,intout_data2);//MCBSP1发送一个数据32位
voidmcbsp1_read_rdy(void);////MCBSP1接收一个数据32位
voidmcbsp1_open(void);//MCBSP1打开
voidmcbsp1_close(void);//MCBSP1关闭
interruptvoidmcbsp1_read(void);//MCBSP1中断接收数据
interruptvoidmcbsp1_write(void);//MCBSP1中断发送数据
voidDelay(intnumbers);//延迟
voidbiir2lpdes(doublefs,doublenlpass,doublenlstop,doublea[],doubleb[]);//巴特沃斯低通滤波器参数计算程序
/*
************************************************************************
***********************函数定义******************
************************************************************************
*/
//--------------------------------------------------------------------
//函数名称:
voidcpu_init(void)
//函数说明:
初始化CPU
//输入参数:
无
//输出参数:
无
//--------------------------------------------------------------------
voidcpu_init(void)
{
asm("nop");
asm("nop");
asm("nop");
//-------------------------------------------------------------------
//CLKMDDEFINITIONS:
//PLLMUL(bit15-12)-0000PLLmultiplier=0(multby1)
//PLLDIV(bit11)-0PLLdivider=0(divby1)
//PLLCOUNT(bit10-3)-11111111PLLcountersettomax
//PLLONOFF(bit2)-1PLLon
//PLLNDIV(bit1)-1SelectPLLmode
//PLLSTATUS(bit1)-xPLLStatus(readonly)
//------------------
//0000011111111111=0x07ffCLKMD=1XCLKIN
//--------------------------------------------------------------------
*(unsignedint*)CLKMD=0x0;//switchtoDIVmodeclkout=1/2clkin
while(((*(unsignedint*)CLKMD)&01)!
=0);
*(unsignedint*)CLKMD=0x07ff;//switchtoPLLX1mode
//--------------------------------------------------------------------
//ST0DEFINITIONS:
//ARP(bit15-13)-000Auxiliaryregisterpointer
//TC(bit12)-1Test/controlflag
//C(bit11)-1Carryissetto1iftheresultofanadditiongeneratesacarry;itisclearedto0ifthe
//resultofasubtractiongeneratesaborrow.
//OVA(bit10)-0OverflowflagforaccumulatorA
//OVB(bit9)-0OverflowflagforaccumulatorB
//DP(bit8-0)-00000000Data-memorypagepointer
//--------------------
//0001100000000000=0x1800Resetvalue
//--------------------------------------------------------------------
//*(unsignedint*)ST0=0x1800;
//--------------------------------------------------------------------
//ST1DEFINITIONS:
//BRAF(bit15)-0Block-repeatactiveflag
//CPL(bit14)-1CompilermodeCPL=0DP;CPL=1SP
//XF(bit13)-1XFstatus
//HM(bit12)-0Holdmode
//INTM(bit11)-1InterruptmodeINTM=0,Allunmaskedinterruptsareenabled
//Reser(bit10)-0Alwaysreadas0
//OVM(bit9)-0Overflowmode
//SXM(bit8)-1Sign-extensionmode
//C16(bit7)-0Dual16-Bit/double-precisionarithmeticmode
//FRCT(bit6)-0Fractionalmode
//CMPT(bit5)-0Compatibilitymode
//ASM(bit4-0)-00000Accumulatorshiftmode
//--------------------
//0110100100000000=0x2900Resetvalue
//--------------------------------------------------------------------
//*(unsignedint*)ST1=0x6900;
//-----------