[讨论]对同一模拟量进行4次采样,而采样结果却有很大的不同。
- UID
- 525066
- 性别
- 女
|
[讨论]对同一模拟量进行4次采样,而采样结果却有很大的不同。
有个ADC的初始化程序是这样的: void AD_Init(void) { ATD0CTL1=0x00; //7:1-外部触发,65:00-8位精度,4:放电,3210:ch ATD0CTL2=0x40; //禁止外部触发, 中断禁止 ATD0CTL3=0xa0; //右对齐无符号,每次转换4个序列, No FIFO, Freeze模式下继续转 ATD0CTL4=0x01; //765:采样时间为4个AD时钟周期,ATDClock=[BusClock*0.5]/[PRS+1] ATD0CTL5=0x30; //6:0特殊通道禁止,5:1连续转换 ,4:1多通道轮流采样 ATD0DIEN=0x00; //禁止数字输入 } 我理解是:对通道0连续进行4次采样,不断循环。每一轮采样的结果存放在ATDDR0,ATDDR1,ATDDR2和ATDDR3中。 我用开发板进行了调试。通过改变AN0的模拟输入进行测试。测试结果如下: 模拟输入1: ADDR0 1.68 ; ADDR1 2.21 ; ADDR2 2.25; ADDR3 2.78 模拟输入2: ADDR0 1.45 ; ADDR1 2.03 ; ADDR2 2.50; ADDR3 2.31 模拟输入3: ADDR0 1.09 ; ADDR1 1.86 ; ADDR2 2.31; ADDR3 2.58 我的问题是:为什么对同一输入进行4次采样,而采样结果却有很大的差别呢? 难道这就是要加入滤波算法的原因吗?还是我对程序理解有错误? 请大家给些提示。谢谢!
|
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
ATD0CLT5寄存器的MULT位为1,意味着对多个通道轮流进行采样,而不是对单个通道进行多次采样。 |
|
|
|
|
|