硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5763|回复: 5
收起左侧

[有问必答] 请教关于示波器例程中关于3路AD交替采集的问题

[复制链接]

79

主题

191

回帖

428

积分

高级会员

积分
428
发表于 2015-3-6 14:28:02 | 显示全部楼层 |阅读模式
最近在看安福莱示波器的例程,感谢你们提供了这么好的学习教程!在学习的过程中有一点看的不是很明白,就是3路AD交替采集这一块。
我们以往配置的都是以ADC1为主,ADC2、ADC3为从,实现ADC1->ADC2->ADC3循环交替采集数据,3路AD采集到的数据都在CDR寄存器中。
安福莱示波器的例程中3路AD配置的都是独立采集模式,外加3路DMA传输数据,触发模式有自动触发和普通触发。我想请教在自动触发模式下,
这3路AD是如何实现交替采集的?看了几遍代码也没整明白。。。。。。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117530
QQ
发表于 2015-3-6 15:31:36 | 显示全部楼层
看定时器触发,都是用的定时器TIM1作为触发,只是用的不同触发通道,详细看下示波器最后一章的教程,也有简单说明。
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2015-3-6 15:53:21 | 显示全部楼层
usCurPos = 10240 - DMA2_Stream1->NDTR;
if(usCurPos < 2048)
{
j = 8192 + usCurPos;
for(i = j; i < 10240; i++)
{
k = (i-j)*3;
g_usWaveBuf1[k] = ADC1ConvertedValue;
g_usWaveBuf1[k+1] = ADC2ConvertedValue;
g_usWaveBuf1[k+2] = ADC3ConvertedValue;
}
读这些数据的时候,不用担心DMA缓存的数据更新变化么??
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117530
QQ
发表于 2015-3-6 15:57:45 | 显示全部楼层

回 天马行空 的帖子

天马行空:usCurPos = 10240 - DMA2_Stream1->NDTR;
if(usCurPos < 2048)
{
j = 8192 + usCurPos;
for(i = j; i < 10240; i++)
....... (2015-03-06 15:53) 
不用,你看波形显示,最快采样率的时候没有出现覆盖现象。
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2015-3-6 16:17:24 | 显示全部楼层
数据处理改成DMA中断处理,可行么?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117530
QQ
发表于 2015-3-6 16:37:19 | 显示全部楼层

回 天马行空 的帖子

天马行空:数据处理改成DMA中断处理,可行么? (2015-03-06 16:17) 
没问题,都多试试。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 18:08 , Processed in 0.038429 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表