OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4239|回复: 5

请教一个关于如何根据外部输入信号开启和关闭ADC的问题

[复制链接]

85

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2020-12-5
在线时间
202 小时
发表于 2021-4-21 20:50:48 | 显示全部楼层 |阅读模式
需求:目前有两路负载输入到单片机的信号,一个叫AD-SP一个叫AD-trig,都是周期信号,一个周期只有一个AD-SP,但是一个周期有多个AD-trig。我要达到的目标就是当AD-SP高电平到来的时候开启ADC进行采集,采集的频率与AD-Trig的频率相同。也就是AD-SP高电平之后的每一个AD-trig都要触发一次ADC,一共采集256个数据,当采集到256个数据以后就关闭ADC直到下次AD-SP高电平的到来。
AD1.2.png

我想到的程序就是配置两个外部中断,外部中断1的相应引脚配置为AD-SP上升沿触发,外部中断1的中断服务函数是开启外部中断2,外部中断2中配置相应的引脚为AD-trig上升沿触发,然后中断函数中开启ADC单次转换,然后配置DMA搬运进数组。这样的问题是一旦外部中断1的AD-SP信号上升沿到来以后就开启了AD-trig触发单次ADC了,而我只需要AD-SP之后的256个数据,剩下的我都不需要,想请教一下这该如何实现?






正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3389

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8645
金钱
8645
注册时间
2020-5-11
在线时间
4102 小时
发表于 2021-4-21 22:15:14 | 显示全部楼层
“一旦外部中断1的AD-SP信号上升沿到来以后就开启了AD-trig触发单次ADC了”
这是开中断前未清中断标志吧。
只需256个数据那就在中断函数里计数啊。
专治疑难杂症
回复 支持 反对

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2021-4-21 22:34:48 | 显示全部楼层
ADC可以由各种信号触发,如定时器输入捕捉,或EXTI,这里你应该把AD_trig信号接到这里,用于触发ADC采集;

由于你要采集256个数据就停,所以可以开启DMA,DMA数量设置为256,采集够256之后DMA完成自动停止;

AD_sp可以设置为下降沿中断,中断到来则开启DMA。

如上的方案里,软件只需要在每个AD_sp下降沿中断里开启DMA即可,其他一切完全由硬件完成。
你的256个数据自动保存在DMA的buffer里面。
坚决不用寄存器,拒绝重复造轮子。
回复 支持 反对

使用道具 举报

0

主题

114

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2583
金钱
2583
注册时间
2019-10-18
在线时间
414 小时
发表于 2021-4-22 07:20:33 | 显示全部楼层
这个,活人还能吃饭被撑死?不想吃了,把嘴闭上就行.
翻译一下就是,你都开了dma了.肚子容量就是256的饭量,你dma满了,dma中断里就把那两个中断关掉就好了,这2张嘴闭上了就没数据了啊.
回复 支持 反对

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1481
金钱
1481
注册时间
2020-8-19
在线时间
336 小时
发表于 2021-4-22 09:16:28 | 显示全部楼层
帮顶  
回复 支持 反对

使用道具 举报

85

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2020-12-5
在线时间
202 小时
 楼主| 发表于 2021-4-22 10:57:07 | 显示全部楼层
本帖最后由 车嘉炜 于 2021-4-22 11:33 编辑
xkwy 发表于 2021-4-21 22:34
ADC可以由各种信号触发,如定时器输入捕捉,或EXTI,这里你应该把AD_trig信号接到这里,用于触发ADC采集;
...

您好,请问我如何用AD-trig来触发ADC采集?我这一块不是很明白,是外部中断的中断函数里面配置呢,还是说在配置ADC里面直接配置为AD-trig触发呢? 麻烦您去看一下我最新发的帖子,我仿照别人的例子让ADC触发方式为外部输入,但是报错说没有定义这个结构体,请问如何解决?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 03:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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