打印
[技术问答]

关于NUC130系列的ADC使用PDMA功能的疑问

[复制链接]
1506|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
素心之剑|  楼主 | 2014-9-4 11:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最近遇到了个很奇怪的问题,在使用NUC130RE3CN的时候,我ADC用了两个通道ADC3、ADC4,单端输入,循环扫描方式,使能了PDMA,设置PDMA是源地址是ADDR3的地址,目标地址是unsigned long型的数组adc_result[20],方向是由ADC到数组,一开始很正常,adc_result[0]、adc_result[2]、adc_result[4]……adc_result[18]存放的是ADDR3中的数据,adc_result[1]、adc_result[3]、adc_result[5]……adc_result[19]存放的是ADDR4中的数据,这样我可以根据数组成员序号分别得提取出我需要的通道3和通道4的结果。但我最近修改程序发现了一个问题,在增加一些与ADC和PDMA无关的应用程序时,会影响PDMA的传输结果,ADC的结果在向PDMA传输时错位了,变成了adc_result[0]、adc_result[2]、adc_result[4]……adc_result[18]存放的是ADDR4中的数据,adc_result[1]、adc_result[3]、adc_result[5]……adc_result[19]存放的是ADDR3中的数据,这样我在使用通道3和通道4转换结果的时候就正好反了。请问大家有没有遇到这种情况?NUC100系列的PDMA虽有8个通道,但最多只给ADC分配一个通道,但用户使用ADC往往可能不只使用一个通道。在使用多个ADC通道的情况下,还想使用PDMA的话大家都怎么处理呢?是像我那样处理吗?我感觉是有漏洞的,很危险,我看网上有其他人是在每次PDMA传输完成后变换一次源地址,我觉得这样虽然可以,但是太麻烦了吧?请指教。。
沙发
niuyaliang| | 2014-9-5 17:44 | 只看该作者
网上有其他人是在每次PDMA传输完成后变换一次源地址,这样才是最正确的做法,不然就会出现你那样的错误

使用特权

评论回复
板凳
骗子的片子| | 2014-9-7 08:53 | 只看该作者
niuyaliang 发表于 2014-9-5 17:44
网上有其他人是在每次PDMA传输完成后变换一次源地址,这样才是最正确的做法,不然就会出现你那样的错误 ...

对,是这个样子的

使用特权

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

本版积分规则

9

主题

17

帖子

1

粉丝