您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 新手求助关于 BF53x_AUDIO_PCM 的问题
本帖共有412个阅读者
发表帖子 发表投票 回复主题
新手求助关于 BF53x_AUDIO_PCM 的问题
Shadow(论坛新手)
Shadow
头衔:社区公民
帮派:无帮无派
帖数:8
金钱:183
积分:13
注册时间:2014/2/24
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
新手求助关于 BF53x_AUDIO_PCM 的问题
本人使用的板卡是 BF533。尝试修改了一下 BF53x_AUDIO_PCM这个工程。最初的想法是,想要播放一个比较小的声音文件(大概不到两秒钟的样子),所以打算只用一个buffer,而不是像demo中那样用一个循环队列来实现。自己做的修改是,Init_DMA2_Sport0_TX函数改写成
*pDMA2_START_ADDR = buffer;
*pDMA2_X_COUNT = 250000/2;
*pDMA2_X_MODIFY = 2;
*pDMA2_CONFIG = /*0x7900 |*/ WDSIZE_16 | 0x20 | DI_EN;
asm("ssync;");
因为只是想实验一下,只播放一次,所以中断和主函数中的代码屏蔽掉。最后代码运行的结果是只播放了声音的一部分,比如声音是“12345”,则只播放了“123”,开始我以为是 pDMA2_X_COUNT设置的小了,但是我把他加大到280000的时候反而只播放了“1”,而加大了300000的时候更加是什么声音都没有了。是因为在BF533中对身影文件的长度,大小有限制,在文件比较大的时候只能使用队列那样子的模式么?

hello world
等级:论坛新手 参考IP地址:*.*.*.*
2014/2/25 21:53:08
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
DMA2_X_COUNT 寄存器是16位的,你的值超过了最大限制,写入是无效的,你可以用2维DMA来实现你的搬运。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2014/2/26 18:15:40
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
插播一下:OpenADSP开源社区长期现货出售BF533/BF532/BF531芯片及开发板、仿真器,如有需要可联系QQ:5516164.

你们继续!

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2014/2/26 22:07:50
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159139 Call, 1 Queries, Processed in 0.015625 second(s),