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有什么区别?
-----------------------------------------------------------------------
每个序列共有8次采样,这个step就是第n次采样,比如ulstep为3,就是对第3次采样进行相应的设置,不知道这么解释你明白了吗?
可以解释下,为什么要8次采样吗? 每个序列共有8次采样
是不是8次采样求平均吗?
-----------------------------------------------------------------------
不是一定要采8次,你可以设定采样1-8次都行,这样做我个人理解是为了方便采不同通道的数据时减少cpu的干预,这个8次采样是独立的,需要为每次采样设置采样通道。
此外,Stellaris总共有4个采样序列,只有采样序列0可以连续采样8次,采样序列1和2可以连续采样4次,采样序列3只可以采样1次。
能同时配置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);
这能在同一个函数下配置使用吗?
-----------------------------------------------------------------------
用函数库应该不能在adcsequstepconfig()中设置多步,因为没步是独立的采样,分别设置有利于可读性;
你在第3次采样设定了adc_ctl_end,标识本次是采样序列最后一次采样的,你后面设置第4次就没作用了。
|