完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
系统负载很高,需要ADC 固定频率 DMA模式连续采集 2个通道的 电压, (200HZ 以上)
用单次采集无法保证采样频率,也很占带宽。 查了文档无法明白 ADC continous read mode 是如何工作 的,好像也没看到直接的接口。 希望帮忙解决。谢谢、! |
|
相关推荐
1个回答
|
|
在ESP32中,要实现ADC DMA连续采样模式并保证采样率,可以按照以下步骤进行:
1. 初始化ADC:首先需要初始化ADC模块,设置ADC通道和分辨率。可以使用`adc1_config_channel_atten`函数来配置ADC通道的参数。 2. 配置DMA:接下来需要配置DMA,以便在ADC采样完成后自动将数据传输到内存。可以使用`dma_descriptor_initialize`函数来初始化DMA描述符,并使用`dma_install_descriptor`函数将其安装到DMA通道。 3. 设置DMA传输参数:使用`dma_set_source`函数设置DMA的源地址,即ADC数据寄存器。使用`dma_set_destination`函数设置DMA的目标地址,即存储采样数据的内存地址。使用`dma_set_trans_count`函数设置传输的数据量。 4. 配置ADC采样模式:要实现连续采样,需要设置ADC为连续模式。可以使用`adc1_ulp_enable`函数来启用ADC的低功耗模式,并在该模式下配置连续采样。 5. 启动DMA:使用`dma_start`函数启动DMA传输。这样,在ADC采样完成后,数据将自动传输到指定的内存地址。 6. 处理采样数据:在DMA传输完成后,可以检查内存中的数据,并对数据进行处理。可以使用中断或轮询的方式来检查DMA传输是否完成。 7. 优化系统负载:如果系统负载很高,可以考虑降低ADC采样率,或者优化其他部分的代码以减少系统负载。 8. 调试和测试:在实现上述步骤后,需要对系统进行调试和测试,确保采样率满足要求,并且数据传输正确。 |
|
|
|
只有小组成员才能发言,加入小组>>
1030 浏览 1 评论
562浏览 6评论
470浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
454浏览 5评论
454浏览 4评论
428浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 01:17 , Processed in 0.688611 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号