您的位置:
OpenADSP社区论坛
->
Blackfin专区
->
新手上路
-> BF533音频播放的问题
本帖共有
678
个阅读者
BF533音频播放的问题
fly
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
2
金钱:
119
积分:
3
注册时间:
2015/7/25
小
大
楼主
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
BF533音频播放的问题
在BF533的开发板上,我利用教程bf53x_audio_pcm的代码读取了2M的格式为wav的音频文件存在名为buffer的数组中,我应该怎么讲这个音频播放出来呢,bf53x_audio_pcm里的链表DMA太复杂了,能不能有简单的方式呢,我试着把DMA初始化成
*pDMA4_PERIPHERAL_MAP = 0x4000; //设置SPORT传输接口DMA
*pDMA4_CONFIG = WDSIZE_32 | DI_EN |FLOW_1; //设置DMA工作模式
*pDMA4_START_ADDR = (void *)buffer; //设置DMA 传输数据起始地址
*pDMA4_X_COUNT = 1024*1024*2/4; //设置DMA传输次数
*pDMA4_X_MODIFY = 4; //设置DMA每次地址增量变化
但是使能DMA之后根本播放不出想要的音频,能不能帮我解决一下啊,万分感谢!
这家伙很懒,什么也没有留下!
等级:
2015/7/25 22:12:06
编辑帖子
帖子评价
单帖屏蔽
删除帖子
andy
(论坛版主)
头衔:
社区公民
帮派:
无帮无派
帖数:
2287
金钱:
11132
积分:
2263
注册时间:
2011/6/8
小
大
第
1
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
DMA4_X_COUNT 寄存器的长度只有16位, 最大值为65535 ,你设置的
1024*1024*2/4 已经超过这个范围了。
简单的话,可以开一个二维DMA,这样一次能传输的数据多一点,你可以先读取一定量的数据,再进行传输。
代码中液晶屏传输采用的是2维DMA。你可以参考一下。
这家伙很懒,什么也没有留下!
等级:
2015/7/26 16:37:55
编辑帖子
帖子评价
单帖屏蔽
删除帖子
fly
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
2
金钱:
119
积分:
3
注册时间:
2015/7/25
小
大
第
2
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
andy,你好,我现在想做一个通过按键控制音频播放的工作,意思是当我按up时播放音频1,播放完音频1之后,再按left键播放音频2,这个不使用按键中断的方式是可以实现的,但是我想当我按下按键时通过进入中断来控制音频的播放,我试着写了下程序,当我按下按键时可以进入按键中断,也可以使能DMA传输,但是进不了DMA的传输中断,这是什么原因呢,是中断优先级的问题吗,你可以帮忙解答一下吗,谢谢
这家伙很懒,什么也没有留下!
等级:
2015/8/10 21:44:24
编辑帖子
帖子评价
单帖屏蔽
删除帖子
andy
(论坛版主)
头衔:
社区公民
帮派:
无帮无派
帖数:
2287
金钱:
11132
积分:
2263
注册时间:
2011/6/8
小
大
第
3
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
当代码中出现两个中断时,不管等级高低,两个中断会有冲突的,解决方法时,不要同时开两个中断,比如DMA完成传输后,屏蔽中断,开按键中断,监测按键按下。
这家伙很懒,什么也没有留下!
等级:
2015/9/9 22:44:50
编辑帖子
帖子评价
单帖屏蔽
删除帖子
Powered by
OpenADSP
Copyright © 2010
www.
Openadsp
.com
. All rights reserved.159313 Call, 1 Queries, Processed in 0.048828 second(s),