您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 关于音频DMA的疑问
本帖共有612个阅读者
发表帖子 发表投票 回复主题
关于音频DMA的疑问
yaai梦想(论坛新手)
yaai梦想
头衔:社区公民
帮派:无帮无派
帖数:4
金钱:136
积分:6
注册时间:2012/12/27
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
关于音频DMA的疑问

我初始代码是:按键点亮LED,定时器关闭LED,开通音频的DMA传输。耳机能听到声音。

现在改了一下:按键1点LED的时候,开启DMA====>Enable_DMA_Sport1();

                       按键2点亮LED的时候,关闭DMA==>Disable_DMA_Sport1();

功能可以实现,发现问题:

1:开启DMA:能听到声音的时候,按1,结果发现听不到声音了。

2:开启DMA:按键速度快的时候,发现灯点亮了。但是收不到声音。必须长按才能收到声音。

请问:是否在开启和关闭DMA这2个程序中要先关中断再运行?还是运行后要添加延时。


做一款优秀的声音效果器!
等级:论坛新手 参考IP地址:*.*.*.*
2012/12/27 17:20:32
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

你在按键的时候,可以查一下SPROT和DMA各个寄存器的值,在代码中打一些断电,运行时多查看各个标志位和寄存器的状态。查看DMA状态寄存器运行是否完成或者出错,可以用示波器测量一下在听不到声音时,SPROT接口的波形是否正常。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/12/27 19:09:23
yaai梦想(论坛新手)
yaai梦想
头衔:社区公民
帮派:无帮无派
帖数:4
金钱:136
积分:6
注册时间:2012/12/27
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

if(keydata & LUK)
                              {
                                        *pLED_DAT &=~LED0;
                                        Disable_DMA_Sport1();
                              }
                    if(keydata & LLK)
                              {
                                        *pLED_DAT &=~LED1;
                                        Enable_DMA_Sport1();
                              }

在Enable_DMA_Sport1();那里设断点的话,运行正常,如果不设断点,多按几次后将不执行主程序,扫描不到按键,停止的时候一直在EX_INTERRUPT_HANDLER(Sport1_RX_ISR)中运行。


做一款优秀的声音效果器!
等级:论坛新手 参考IP地址:*.*.*.*
2012/12/28 10:09:12
yaai梦想(论坛新手)
yaai梦想
头衔:社区公民
帮派:无帮无派
帖数:4
金钱:136
积分:6
注册时间:2012/12/27
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
按键死机后,进入一个死循环,所以不能扫描到按键,该循环无法step over,只能step into。

做一款优秀的声音效果器!
等级:论坛新手 参考IP地址:*.*.*.*
2012/12/28 10:19:26
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

你在关闭DMA之后加个长延时,使能DMA前加个长延时看看


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/1/3 0:49:05
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159278 Call, 1 Queries, Processed in 0.031250 second(s),