5509A的DMA接收MCBSP的数据,把repeat打开,就只进一次中断

[复制链接]
3542|26
 楼主| 以马内利3005 发表于 2014-10-23 20:40 | 显示全部楼层 |阅读模式
纠结了这么久,终于在师兄的帮助下解决了!
网上有人说这个问题需要在中断函数内清除DMA中断标志位,但我观察发现,在进入中断之后,DMA中断标志位就自动清除了,但我还是尝试了一下清除,没有效果。
因为之前在关闭repeat时,采用在中断函数里先关闭DMA再在主程序里打开,就可以多次进入中断,所以考虑和DMA_open函数有关,去CSL库源代码查看,发现有一个if语句,if(DMA_RGETH(hDma,DMACSR)){;},大括号内是空的,判断或是不判断不影响效果呀!!!但是,这个if语句不是用来判断的,它只是起到了读取一下DMACSR寄存器的作用,和DMA_RGETH(hDma,DMACSR);的效果是一样的!!
然后,把DMA_RGETH(hDma,DMACSR);复制到中断函数里,OK !可以自动重复进入中断了!

评分

参与人数 1威望 +4 收起 理由
zhangmangui + 4 很给力!

查看全部评分

zhangmangui 发表于 2014-10-23 21:40 | 显示全部楼层
有师兄真好   感谢你的分享
 楼主| 以马内利3005 发表于 2014-10-24 13:44 | 显示全部楼层
zhangmangui 发表于 2014-10-23 21:40
有师兄真好   感谢你的分享

是呀,师兄一出马,我自己纠结的问题就是一句话的事!!
小木欧尼 发表于 2014-10-26 14:29 | 显示全部楼层
楼主真慷慨 分享是美德啊
edishen 发表于 2014-10-26 14:38 | 显示全部楼层
感谢分享
angerbird 发表于 2014-10-26 23:48 | 显示全部楼层
谢谢分享,很好的讨论的。
wangjinlili 发表于 2014-10-29 20:50 | 显示全部楼层
很好的经验 多谢了
meishizhaoshi 发表于 2014-10-29 22:22 | 显示全部楼层
学习了新的经验
shibalihuandao 发表于 2014-10-29 22:52 | 显示全部楼层
保存一下 可能以后会用到
zgsxhzac 发表于 2014-10-29 22:57 | 显示全部楼层
真的啊 有师兄真好
sishangcine 发表于 2014-10-29 23:24 | 显示全部楼层
原来是这个原因
heibaiyinjiag 发表于 2014-10-29 23:26 | 显示全部楼层
有师兄真是件美事
taihezhibanh 发表于 2014-10-29 23:43 | 显示全部楼层
还是师兄强大
beiwaroad 发表于 2014-10-29 23:45 | 显示全部楼层
没有师兄的哭着路过
beiwaroad 发表于 2014-10-29 23:47 | 显示全部楼层
这个BUG可不是一般人能找到的
 楼主| 以马内利3005 发表于 2015-1-13 23:52 | 显示全部楼层
小木欧尼 发表于 2014-10-26 14:29
楼主真慷慨 分享是美德啊

嘿嘿,我在这里收到了帮助,也希望能帮助一下大家!
 楼主| 以马内利3005 发表于 2015-1-13 23:52 | 显示全部楼层
beiwaroad 发表于 2014-10-29 23:47
这个BUG可不是一般人能找到的

 楼主| 以马内利3005 发表于 2015-1-13 23:52 | 显示全部楼层
beiwaroad 发表于 2014-10-29 23:45
没有师兄的哭着路过

嘿嘿。。。师兄比较忙,不轻易出马
 楼主| 以马内利3005 发表于 2015-1-13 23:53 | 显示全部楼层
taihezhibanh 发表于 2014-10-29 23:43
还是师兄强大

是呀!
 楼主| 以马内利3005 发表于 2015-1-13 23:53 | 显示全部楼层
heibaiyinjiag 发表于 2014-10-29 23:26
有师兄真是件美事

嘿嘿
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:十字架十字架,永是我的荣耀。

18

主题

271

帖子

14

粉丝
快速回复 在线客服 返回列表 返回顶部