打印

ADC采样序列发生器的步值是什么意思?

[复制链接]
5847|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
rainbow99|  楼主 | 2011-7-30 22:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看到stellarisware里关于ADC的函数
void ADCSequenceStepConfigure(unsigned long ulBase,  
      unsigned long ulSequenceNum,  
      unsigned long ulStep,  
      unsigned long ulConfig)  
ulStep:步值,决定触发产生时ADC捕获序列的次序,对于不同的采样序列取值也不相同:
采样序列编号   步值范围
    0            0~7
    1            0~3
    2            0~3
    3             0
问题是:步值是什么意思?比如采样序列为0,歩值0和歩值7有什么区别?

相关帖子

沙发
永远的不知| | 2011-7-30 22:51 | 只看该作者
1# rainbow99

每个序列共有8次采样,这个step就是第n次采样,比如ulstep为3,就是对第3次采样进行相应的设置,不知道这么解释您明白了吗?

使用特权

评论回复
板凳
rainbow99|  楼主 | 2011-7-30 22:56 | 只看该作者
2# 永远的不知

多谢版主。
可以解释下,为什么要8次采样吗? 每个序列共有8次采样   
是不是8次采样求平均吗?

使用特权

评论回复
地板
永远的不知| | 2011-7-30 23:07 | 只看该作者
本帖最后由 永远的不知 于 2011-7-30 23:16 编辑

3# rainbow99

不是一定要采8次,你可以设定采样1-8次都行,这样做我个人理解是为了方便采不同通道的数据时减少cpu的干预,这个8次采样是独立的,需要为每次采样设置采样通道。
此外,Stellaris总共有4个采样序列,只有采样序列0可以连续采样8次,采样序列1和2可以连续采样4次,采样序列3只可以采样1次。

使用特权

评论回复
5
rainbow99|  楼主 | 2011-7-30 23:14 | 只看该作者
4# 永远的不知

能同时配置ulstep 为3和4吗?  
adcsequstepconfig(adc_base, 0, 3, adc_ctl_ch0 |  
                                      adc_ctl_end |  
                                      adc_ctl_ie);  
adcsequstepconfig(adc_base, 0, 4, adc_ctl_ch0 |  
                                      adc_ctl_end |  
                                      adc_ctl_ie);  
这能在同一个函数下配置使用吗?

使用特权

评论回复
6
永远的不知| | 2011-7-30 23:15 | 只看该作者
5# rainbow99

用函数库应该不能在adcsequstepconfig()中设置多步,因为每步是独立的采样,分别设置有利于可读性;
你在第3次采样设定了adc_ctl_end,标识本次是采样序列最后一次采样的,你后面设置第4次就没作用了。

使用特权

评论回复
7
rainbow99|  楼主 | 2011-7-30 23:19 | 只看该作者
6# 永远的不知

明白很多了,多谢不知版主。

使用特权

评论回复
8
xugangling| | 2011-11-14 16:03 | 只看该作者
你好,我想问下我这样设置后
//  ADC采样序列步进配置:ADC基址,采样序列0,步值,采样通道
    ADCSequStepConfig(ADC_BASE, 0, 0, ADC_CTL_CH0);         //  第0步:采样ADC0
    ADCSequStepConfig(ADC_BASE, 0, 1, ADC_CTL_CH1);         //  第1步:采样ADC1
    ADCSequStepConfig(ADC_BASE, 0, 2, ADC_CTL_CH2);         //  第2步:采样ADC2
    ADCSequStepConfig(ADC_BASE, 0, 3, ADC_CTL_CH3 |         //  第4步:采样ADC3后
                                      ADC_CTL_END |         //         结束,并
                                      ADC_CTL_IE);          //         申请中断




怎样用ADCSequenceDataGet( )函数得到4步的各个采样值呢?ADCSequenceDataGet( )函数中的形参只指定了ADC采样序列的编号,但没有指定是哪一个步进值啊.用ADCSequenceDataGet( )函数是不是只能得到一个步进值所对应的采样值呢?

怎样

使用特权

评论回复
9
sqcumt123| | 2011-11-14 16:38 | 只看该作者
期待2楼的网友给到指导,期待ing

使用特权

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

本版积分规则

0

主题

54

帖子

1

粉丝