使用1053,OGG录音,插件下载函数如下:
void LoadUserCode(void) {
int i = 0;
while (i<sizeof(plugin)/sizeof(plugin[0])) {
unsigned short addr, n, val;
addr = plugin[i++];
n = plugin[i++];
if (n & 0x8000U) { //RLE run, replicate n samples
n &= 0x7FFF;
val = plugin[i++];
while (n--) {
Mp3WriteRegister1(addr, val>>8, val&0xff);
}
} else { // Copy run, copy n samples
while (n--) {
val = plugin[i++];
Mp3WriteRegister1(addr, val>>8, val&0xff);
}
}
}
}
选用的是venc16k1q05.plg插件。可是我用串口看了,这个插件似乎下到一半就出错了,以后下载的数据都是0x0000,最后我用printf("SPI_AIADDR : 0x%x",w);发现寄存器SPI_AIADDR并不是地址0x0034,而是0x0000,这证明插件下的不对吧。请高人解释一下,怎么使插件下载正确。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
你是怎么看出来这个代码是加载压缩的文件的?这个代码就是加载未压缩啊,插件不是有PLG和IMG两种吗?PLG一般都是一百多KB,就是未压缩的,这个代码就是下载PLG时调用的,手册里是这么说的,除非我理解错误,麻烦指导一下啊
一周热门 更多>