M4内部ADC多路数据采集,数据顺序混乱

2019-08-03 17:57发布

本帖最后由 sdkxyx 于 2014-7-27 11:42 编辑

我使用M4的内部ADC采集两路数据,一个接地,一个接3V,使用序列0,采集到的数据放到一个8元素数组中。。采集到的值大小正常,但就是在数组中放置的顺序是随机的,完全没有规律。。不知道是哪里出了问题,希望了解的人帮忙解答下。。
下面是ADC的配置函数
  1. void ADCInit(void)
  2. {

  3.         //多通道。。。。。
  4.         SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);

  5.         SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
  6.         GPIOPinTypeADC(GPIO_PORTE_BASE,GPIO_PIN_3|GPIO_PIN_2);

  7.         ADCReferenceSet(ADC0_BASE,ADC_REF_INT);
  8.         ADCSequenceConfigure(ADC0_BASE,SEQ_NUM,ADC_TRIGGER_TIMER,0);//每10us触发一次
  9. //        ADCSequenceConfigure(ADC0_BASE,SEQ_NUM,ADC_TRIGGER_ALWAYS,0);
  10. //        ADCSequenceConfigure(ADC0_BASE,SEQ_NUM,ADC_TRIGGER_PROCESSOR,0);
  11.         ADCSoftwareOversampleConfigure(ADC0_BASE,SEQ_NUM,64);
  12.         ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,0,ADC_CTL_CH1);
  13.         ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,1,ADC_CTL_CH1);
  14.         ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,2,ADC_CTL_CH1);
  15.         ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,3,ADC_CTL_CH1);
  16.         ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,4,ADC_CTL_CH0);
  17.         ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,5,ADC_CTL_CH0);
  18.         ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,6,ADC_CTL_CH0);
  19.         ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,7,ADC_CTL_CH0| ADC_CTL_IE | ADC_CTL_END);


  20.         ADCSequenceEnable(ADC0_BASE, SEQ_NUM);

  21.         ADCIntRegister(ADC0_BASE,SEQ_NUM,ADC0IntHander);
  22.         ADCIntClear(ADC0_BASE,SEQ_NUM);
  23.         ADCIntEnable(ADC0_BASE,SEQ_NUM);
  24. }
复制代码下面是中断函数:
  1. void ADC0IntHander(void)
  2. {
  3.         uint32_t temp[8] = {0};
  4.         ADCSequenceDataGet(ADC0_BASE,SEQ_NUM,temp);
  5.         ADCIntClear(ADC0_BASE,SEQ_NUM);//设置断点。。
  6. }
复制代码下面是每次运行至断点处采集到的数据:
QQ截图20140727113358.png QQ截图20140727113346.png QQ截图20140727113329.png QQ截图20140727113250.png

感觉很奇怪,求解答:'(:'(:'(
0条回答

一周热门 更多>