firefly2k 发表于 2025-8-12 18:31:39

ercircle 发表于 2025-8-12 18:28
03和转换次数是我 改的,为了你方便观察数据格式

大佬,我不是不知道数据格式。我是问为啥采样的数据有问题,我把项目工程发出来了,我自己基本就没有几行代码,都是AiCube生成的。所以我想知道,我总共写了没几行代码里,是我哪里有问题?

ercircle 发表于 2025-8-12 18:40:08

firefly2k 发表于 2025-8-12 18:31
大佬,我不是不知道数据格式。我是问为啥采样的数据有问题,我把项目工程发出来了,我自己基本就没有几行 ...
是格式理解不对,不是数据有问题
将缓冲区填充为,A5,DMA次数改为2,观察:
一次的数据量就是这些:0F FF 0F FF 00 00 0F FF 0F FF 0F FF 01 00 0F FF
00 00也不是脏数据,上面截图已解释,哪里不理解可以继续问




ercircle 发表于 2025-8-12 18:45:53

firefly2k 发表于 2025-8-12 18:16
我不知道是我理解的不对还是大佬看错了
我设置的dma采样是500次,也就是前1000个数据都是采样数据。1001才 ...

你应该想设置的其实是这个转换次数DMA_ADC_CFG2 ,最高支持256次,这个参数暂时AiCube上还没配置的地方,已反馈后续版本会加上。



代码里500配置的是扫描次数:



firefly2k 发表于 2025-8-12 19:05:23

ercircle 发表于 2025-8-12 18:45
你应该想设置的其实是这个转换次数DMA_ADC_CFG2 ,最高支持256次,这个参数暂时AiCube上还没配置的地方, ...
刚刚试了下,好像理解了

firefly2k 发表于 2025-8-12 19:38:11

ercircle 发表于 2025-8-12 18:45
你应该想设置的其实是这个转换次数DMA_ADC_CFG2 ,最高支持256次,这个参数暂时AiCube上还没配置的地方, ...
这样看下来,我设置1个通道,ADC转换次数=1,DMA扫描次数=500
但AiCube申请的内存空间是1004是远远不够的,对吧?也就是AiCube是错的,就是这个1004把我弄误解了。按我刚刚研究和理解的,申请的内存空间应该是3000

ercircle 发表于 2025-8-12 19:53:55

firefly2k 发表于 2025-8-12 19:38
这样看下来,我设置1个通道,ADC转换次数=1,DMA扫描次数=500
但AiCube申请的内存空间是1004是远远不够的 ...

是的,这个BUG后续版本更新修复

firefly2k 发表于 2025-8-13 10:07:27

ercircle 发表于 2025-8-12 19:53
是的,这个BUG后续版本更新修复

还有个问题跟大佬请教下(我就不单独开贴问了)
一个通道,要一次去采集多个数据时,使用DMA_ADC_AMT采多次会额外占用较多的内存空间(里面大量的通道号+平均值等信息),如果使用DMA_ADC_CFG2设置的话。请问DMA_ADC_CFG2两次的间隔时间是否有方法任意设置为固定时间?比如10us一次?
(下图AiCube里的相关ADC设置只能是固定的某些值,不能客户任意设置某个值。而且这已经是设到最大值了,没办法达到其他更大值)




ercircle 发表于 2025-8-13 10:18:23

firefly2k 发表于 2025-8-13 10:07
还有个问题跟大佬请教下(我就不单独开贴问了)
一个通道,要一次去采集多个数据时,使用DMA_ADC_AMT采多 ...

这三个时间只有这些值:

不够用的话改ADC 普通中断模式?非DMA模式可以看下这个寄存器

firefly2k 发表于 2025-8-13 10:41:57

ercircle 发表于 2025-8-13 10:18
这三个时间只有这些值:

不够用的话改ADC 普通中断模式?非DMA模式可以看下这个寄存器


好的,多谢
页: 1 [2]
查看完整版本: Ai8051 ADC/DMA数据问题