OpenEdv-开源电子网

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

关于adc采集以及操作系统中的一些疑惑?

[复制链接]
回帖奖励 5 金钱 回复本帖可获得 5 金钱奖励! 每人限 1 次

9

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2019-3-24
在线时间
37 小时
发表于 2023-2-6 11:13:42 | 显示全部楼层 |阅读模式
在最近项目中遇到一个问题,要完成一个示波器功能,
1、使用AD采集时,我采用的ad采集数据处理的方式是:adc使用dma传输,采集一个数据就进一次dma中断。那么当采集频率过高时就会不停的进入dma中断。而且dma中断的优先级最高,这样会导致其它功能程序特别是通讯功能会受影响。
但是我想不到好的处理方法。
2、而在此基础上如果上操作系统,那么我有一点不确定,当我adc任务开始切换到通讯任务后,我的adc外设还在工作吗?我知道中断优先级大于任务。那么在执行通讯任务时,如果adc发生中断,那么通讯任务不就受影响了?从才开始学习操作系统,还有点迷糊。见谅。


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

使用道具 举报

0

主题

113

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2538
金钱
2538
注册时间
2019-10-18
在线时间
403 小时
发表于 2023-2-6 17:58:53 | 显示全部楼层

回帖奖励 +5 金钱

1.为什么要采集一个数据就进中断,这用dma的意义在哪?dma就是为了解放cpu的,肯定是数据一次采集一批才合算.不影响通讯就要使你的中断处理的快,退出的快.或者优先级降低
2.上操作系统就是为了更好的使你的任务更快的执行.反而认为有好处.至于通讯时会不会影响adc,一般不会,主要看你的程序

假如我来写,我在系统资源充足的情况下会上系统.adc使用定时器驱动,dma搬运,循环不停.dma每采集一半进入中断通知adc处理任务处理这一半数据,adc继续采集另一半的同时任务将处理好的数据发送给需要的任务.至于通讯则是另一个任务.你可以让通讯任务优先级比adc处理任务高.或者直接也使用dma来处理通讯.以现有的cpu速度,这点根本没影响
回复 支持 1 反对 0

使用道具 举报

9

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2019-3-24
在线时间
37 小时
 楼主| 发表于 2023-2-8 10:01:41 | 显示全部楼层
decai 发表于 2023-2-6 17:58
1.为什么要采集一个数据就进中断,这用dma的意义在哪?dma就是为了解放cpu的,肯定是数据一次采集一批才合算. ...

多谢指导!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 17:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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