打印
[应用相关]

DMA设为循环的疑问

[复制链接]
435|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
snakeemail|  楼主 | 2021-3-25 16:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我把DMA设为循环,用ADC触发,采样100个数据。当100个采样完,代码进了DMA中断。100个数据放在数组array[100]中。


请问:
疑问1:在DMA中断里面,DMA是否还在继续运行,还是说要等我清DMA的标志才让DMA继续运行?


疑问2:DMA要向array[100]放,算平均的代码要从array[100]中取。
           我的看法是:即使两者有冲突,代码取的数据也不会乱。因为8bit,16bit,32bit都是原子操作。我算的是平均值,没影响。



使用特权

评论回复
沙发
sonicll| | 2021-3-26 08:55 | 只看该作者
1. DMA中断标志没有清除,DMA也会继续运行
2. 确实不会影响,最多就是你软件读取array数据时,array开头的几个数据可能由于DMA还在运行,被新的数据覆盖了,但是每个数据都是正确的数据,不会出现bit错位,不影响你计算平均值

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:提供500W线性 交流电源。0~300VAC,45~500Hz 提供10KW,0-330V直流电源,具体见http://blog.21ic.com/user1/3639/archives/2012/88528.html

547

主题

1910

帖子

8

粉丝