430f5418 ad转换跳动较大,程序可以改进吗,高手分析下。

2019-03-24 12:56发布

P6SEL |= 0xFF;                            // Enable A/D channel A0
  P6DIR &= 0x00;

  REFCTL0 |= REFMSTR + REFVSEL_2 + REFON;
  /* Initialize ADC12_A */
  ADC12CTL0 = ADC12ON+ADC12MSC+ADC12SHT0_15; // 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  

// ADC12IE = 0x80;
  ADC12CTL0 |= ADC12ENC;                    // Enable conversions 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
ltbytyn
1楼-- · 2019-03-24 21:34
< 轮询的时候,一个通道多读几次。
shzps
2楼-- · 2019-03-24 23:05
< :TI_MSP430_内容页_SA7 --> 我都读了12次了,可是还是偶尔会有跳动,不知道是哪里的原因呢。
ltbytyn
3楼-- · 2019-03-25 00:40
 精彩回答 2  元偷偷看……
ltbytyn
4楼-- · 2019-03-25 03:55
轮询的时候,最好每个通道读3次以上,抛弃前几次采样数据(前几次采样结果偏差较大,原因你自己想想),已最后一组为准。一个通道采样完了在切换另一个通道。
499362154
5楼-- · 2019-03-25 09:51
你采样的模拟电压是不是频率高,纹波太大?
做个软件滤波,采30次取中间的10次,再来个平均。

一周热门 更多>

相关问题

    相关文章