打印

430f5418内部ad12采样不稳定,怎么办

[复制链接]
1307|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
engtafanzhuan|  楼主 | 2013-7-23 23:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
engtafanzhuan|  楼主 | 2013-7-23 23:14 | 只看该作者
P6SEL |= 0xFF;                            // Enable A/D channel A0
  P6DIR &= 0x00;
  
  REFCTL0 |= REFMSTR + REFVSEL_2 + REFON;
  /* Initialize ADC12_A */
  ADC12CTL0 = ADC12ON+ADC12MSC+ADC12SHT0_2; // Turn on ADC12, set sampling time
  ADC12CTL1 = ADC12SHP+ADC12CONSEQ_1;       // Use sampling timer, single sequence
  
  ADC12MCTL0 = ADC12SREF_1+ADC12INCH_0;                 // ref+=AVcc, channel = A0
  ADC12MCTL1 = ADC12SREF_1+ADC12INCH_1;                 // ref+=AVcc, channel = A1
  ADC12MCTL2 = ADC12SREF_1+ADC12INCH_2;                 // ref+=AVcc, channel = A1  
  ADC12MCTL3 = ADC12SREF_1+ADC12INCH_3;                 // ref+=AVcc, channel = A1  
  ADC12MCTL4 = ADC12SREF_1+ADC12INCH_4;                 // ref+=AVcc, channel = A1  
  ADC12MCTL5 = ADC12SREF_1+ADC12INCH_5;                 // ref+=AVcc, channel = A1  
  ADC12MCTL6 = ADC12SREF_1+ADC12INCH_6;                 // ref+=AVcc, channel = A1  
  ADC12MCTL7 = ADC12SREF_1+ADC12INCH_7+ADC12EOS;                 // ref+=AVcc, channel = A1  
  
  ADC12CTL0 |= ADC12ENC;                    // Enable conversions
  delay_us(100);

使用特权

评论回复
板凳
xichengmadia| | 2013-7-23 23:15 | 只看该作者
先判断“不稳定”是来自信号还是来自基准,如果是前者则进一步分析是源信号本身还是前向电路或是干扰造成的,如果是后者则进一步检查基准的性质和精度。

使用特权

评论回复
地板
beiwaroad| | 2013-7-23 23:37 | 只看该作者
看你程序默认的是内部ADC12OS作为ADC12clk 这样算一下你的信号的输入阻抗 加大采样保持时间,可以采集稳定的数据

使用特权

评论回复
5
gaochy1126| | 2013-7-24 21:06 | 只看该作者
你得等待数据稳定之后才能读取的。

使用特权

评论回复
6
gaochy1126| | 2013-7-24 21:06 | 只看该作者
使用中值滤波。

使用特权

评论回复
7
angerbird| | 2013-7-24 23:10 | 只看该作者
beiwaroad 发表于 2013-7-23 23:37
看你程序默认的是内部ADC12OS作为ADC12clk 这样算一下你的信号的输入阻抗 加大采样保持时间,可以采集稳定 ...

具体的怎样做呢?我也想知道这方面的解决办法的啊:L

使用特权

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

本版积分规则

80

主题

958

帖子

0

粉丝