- void ADCInit(void)
- {
- //多通道。。。。。
- SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);
- SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
- GPIOPinTypeADC(GPIO_PORTE_BASE,GPIO_PIN_3|GPIO_PIN_2);
- ADCReferenceSet(ADC0_BASE,ADC_REF_INT);
- ADCSequenceConfigure(ADC0_BASE,SEQ_NUM,ADC_TRIGGER_TIMER,0);//每10us触发一次
- // ADCSequenceConfigure(ADC0_BASE,SEQ_NUM,ADC_TRIGGER_ALWAYS,0);
- // ADCSequenceConfigure(ADC0_BASE,SEQ_NUM,ADC_TRIGGER_PROCESSOR,0);
- ADCSoftwareOversampleConfigure(ADC0_BASE,SEQ_NUM,64);
- ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,0,ADC_CTL_CH1);
- ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,1,ADC_CTL_CH1);
- ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,2,ADC_CTL_CH1);
- ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,3,ADC_CTL_CH1);
- ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,4,ADC_CTL_CH0);
- ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,5,ADC_CTL_CH0);
- ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,6,ADC_CTL_CH0);
- ADCSequenceStepConfigure(ADC0_BASE,SEQ_NUM,7,ADC_CTL_CH0| ADC_CTL_IE | ADC_CTL_END);
- ADCSequenceEnable(ADC0_BASE, SEQ_NUM);
- ADCIntRegister(ADC0_BASE,SEQ_NUM,ADC0IntHander);
- ADCIntClear(ADC0_BASE,SEQ_NUM);
- ADCIntEnable(ADC0_BASE,SEQ_NUM);
- }
下面是中断函数:
- void ADC0IntHander(void)
- {
- uint32_t temp[8] = {0};
- ADCSequenceDataGet(ADC0_BASE,SEQ_NUM,temp);
- ADCIntClear(ADC0_BASE,SEQ_NUM);//设置断点。。
- }
下面是每次运行至断点处采集到的数据:
感觉很奇怪,求解答:'(:'(:'(