初级会员

- 积分
- 83
- 金钱
- 83
- 注册时间
- 2011-3-25
- 在线时间
- 0 小时
|
发表于 2012-3-29 13:29:36
|
显示全部楼层
前段时间想用vs1003做频谱分析的,不过没有用用户代码区,后来考虑到它的录音编码格式IMA ADPCM还得解码,挺麻烦,改用wm8978做了。这是当时网上资料中有关用户代码的一段,没仔细看过,不知道有没有用,楼主可以参考下
//加载频谱分析的代码到VS10XX
void LoadPatch(void)
{
u16 i;
for (i=0;i<943;i++)VS_WR_Cmd(atab,dtab);
delay_ms(10);
}
//加载用户代码到VS1053
//FLAC解码.但是加载后不支持WMA.
//写入plugin
void LoadFlacPatch(void)
{
unsigned int i;
unsigned short addr, n, val;
for(i=0;i<VS1053B_PATCHLEN;)
{
addr = vs1053b_patch[i++];
n = vs1053b_patch[i++];
if(n & 0x8000U) //RLE run, replicate n samples
{
n &= 0x7FFF;
val = vs1053b_patch[i++];
while(n--)VS_WR_Cmd(addr, val);
}else //copy run, copy n sample
{
while(n--)
{
val = vs1053b_patch[i++];
VS_WR_Cmd(addr, val);
}
}
}
}
//////////////////////////////////////////////////////////////////////////////
//得到频谱数据
void GetSpec(u8 *p)
{
u8 byteIndex=0;
u8 temp;
VS_WR_Cmd(SPI_WRAMADDR,0x1804);
for (byteIndex=0;byteIndex<14;byteIndex++)
{
temp=VS_RD_Reg(SPI_WRAM)&0x63;//取小于100的数
*p++=temp;
}
} > |
|