打印

关于2812的AD采集

[复制链接]
525|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Brand2|  楼主 | 2016-11-22 20:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想用2812内置的AD模块进行实时的数据采集和处理,但是对AD中断部分和数据处理部分的运行有些疑惑。首先AD中断如果采用软件启动的话,假如在中断结尾进行如此设置:AdcRegs.ADCTRL2.bit.SOC_SEQ1=1,是不是马上就开始下一次中断?是不是主函数部分就不会执行?还有有人和我说数据运算的部分最好不要放到中断部分里,但如果和中断分开的话,这两个部分是如何执行的?我希望AD在采集512次之后进行FFT,怎样保证在采到了512个数据能够跳出中断进行FFT运算?如果主函数这样编写:
main()
{
省略初始化部分
  for(;;)
   {
     if(AdcRegs.ADC_ST_FLAG.BIT.SEQ1_BSY==0)
        AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;                    
       //是不是这里只要置1,就马上开始AD中断?中断部分中把各次采集到的数据放在一个数组中,并且不在中断结尾进行软件出发,是不是在满足n=512之前都是一次中断结束就会执行下一次循环,直到n=512才会执行下面的if语句?
     if(n==512)
        FFTmain();  //FFT运算

   }
}

相关帖子

沙发
迪卡| | 2016-11-22 20:42 | 只看该作者
设置好定时器,使用定时器起动AD中断。在AD中断程序中读取采样值。

使用特权

评论回复
板凳
309030| | 2016-11-22 20:51 | 只看该作者
采样样本达到512个时,置位个标志。在主程序中查询该标志去做FFT.

使用特权

评论回复
地板
lwsn| | 2016-11-22 21:01 | 只看该作者

建议用定时器起动AD。不需要人为干涉

使用特权

评论回复
5
拉克丝| | 2016-11-22 21:57 | 只看该作者
样本达到512个并且置位哪个标志位比较好?在置位标志位后是不是就不执行中断开始执行主程序了?

使用特权

评论回复
6
Snow7| | 2016-11-22 22:07 | 只看该作者

自己定义个标志位。

使用特权

评论回复
7
zhangmangui| | 2016-11-22 22:22 | 只看该作者
学习一下了    没搞过

使用特权

评论回复
8
city520boy| | 2016-11-23 11:02 | 只看该作者
用过但是还没整明白

使用特权

评论回复
9
wangdezhi| | 2016-11-23 22:35 | 只看该作者
ADC要设置什么的采样频率

使用特权

评论回复
10
wangdezhi| | 2016-11-23 22:37 | 只看该作者
实时的数据采集和处理,不能在中断里面处置。

使用特权

评论回复
11
shenmu2012| | 2016-11-23 22:42 | 只看该作者
设置Ad的采样率的很关键。

使用特权

评论回复
12
comeon201208| | 2016-11-25 21:40 | 只看该作者
这个可是死循环的哈。。

使用特权

评论回复
13
angerbird| | 2016-11-25 22:35 | 只看该作者
这个是采用中断的方式进行采集数据的,,计数也是在中断函数中的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

157

主题

824

帖子

2

粉丝