PIC32MX440F256H单片机AD转换的值竟然不稳定!

2020-02-10 08:41发布

16个AD通道自动扫描,采样的值显示到240128液晶上面,显示的值跳变很快,范围可能有1V!
不明时何原因,哪位大侠知道帮个忙!
程序结构是这样的:

mian()
{
  .
  .
  .
  chanel[2] = ReadADC10[2]; //]读一个通道的转换结果;
  display();               //把转换结果显示在液晶上;
  .
  .
  .
}

可以确保单片机AD口的电平不会变化!(用示波器看过)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
eagle_avr
2020-02-10 19:15
初始化程序:(16路AD自动扫描)
void init_ADC()
{

        CloseADC10();       

        #define PARAM1  ADC_MODULE_ON | ADC_FORMAT_INTG | ADC_CLK_AUTO | ADC_AUTO_SAMPLING_ON

        #define PARAM2  ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_ON | ADC_SAMPLES_PER_INT_16
                         |ADC_ALT_BUF_OFF|ADC_ALT_INPUT_OFF

        #define PARAM3  ADC_CONV_CLK_INTERNAL_RC | ADC_SAMPLE_TIME_15

         #define PARAM4  0xffff

        #define PARAM5        0x0
       
        SetChanADC10( ADC_CH0_NEG_SAMPLEA_NVREF | ADC_CH0_POS_SAMPLEA_AN1 |  ADC_CH0_NEG_SAMPLEB_NVREF |
                       ADC_CH0_POS_SAMPLEB_AN14);
  
         OpenADC10( PARAM1, PARAM2, PARAM3, PARAM4, PARAM5 );

        EnableADC10(); // Enable the ADC
}

在主程序里调用。

一周热门 更多>