📄 user_audio.c
字号:
#include "user_type.h"
#include "user_infer.h"
#include "user_func.h"
#include "dsplib.h"
s16 in_data;
s16 out_data;
s16 audio_data[100];
short db[64];
short *dbptr=&db[0];
short sh_x[1],sh_r[1];
short sh_h[64]={
13,-32,-31,22,52,-16,-84,-9,117,
55,-142,-128,147,225,-115,-339,30,455,
123,-551,-359,597,691,-549,-1143,341,1775,
176,1775,341,-1143,-549,691,597,-359,-551,
123,455,30,-339,-115,225,147,-128,-142,
55,117,-9,-84,-16,52,22,-31,-32,13
};
void main(void)
{
int i=0;
int j=0;
for(j=0;j<64;j++)
{
db[j]=0;
}
sh_r[0]=0;
init_board();
while(1)
{
*(volatile u16 *)SPSA_ADDR(1)=SPCR1_SUBADDR;
while(!((*(volatile u16 *)SPSD_ADDR(1)) & 0x0002)) {};
in_data=*(volatile u16 *)DRR1_ADDR(1);
//从MCBSP1串口的DRR11寄存器接收数据
in_data &=0xFFFE;
//for(i=0;i<100;i++)
//{
// audio_data(i)=in_data;
//}
//while(i=100)
//{
// i=0;
//}
audio_data[i]=in_data;
i++;
if(i>=100) i=0;
//存储100位输入数据作内部测试用
//in_data在DSP内部作各种算法的内部处理
//此处作FIR滤波运算
sh_x[0]=in_data;
fir(sh_x,sh_h,sh_r,&dbptr,64,1);
out_data=sh_r[0];
out_data &=0xFFFE;
*(volatile u16 *)SPSA_ADDR(1)=SPCR2_SUBADDR;
while(!((*(volatile u16 *)SPSD_ADDR(1)) & 0x0002)) {};
*(volatile u16 *)DXR1_ADDR(1)=out_data;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -