|
我在定时器里触发AD采集,在串口里打印出采集数据,结果串口采集的数据都是一个值,求大神帮助AD初始化
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0); // 使能ADC模块
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC1);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); //
GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_2|GPIO_PIN_3);
ADCSequenceDisable(ADC0_BASE, 0); // 配置前先禁止采样序列
// 采样序列配置:ADC基址,采样序列编号,触发事件,采样优先级
ADCSequenceConfigure(ADC0_BASE, 0, ADC_TRIGGER_PROCESSOR, 0);
// 采样步进设置:ADC基址,采样序列编号,步值,通道设置
ADCSequenceStepConfigure(ADC0_BASE, 0, 0, ADC_CTL_D | // 差分输入采样
ADC_CTL_CH0 | // 差分通道1:ADC2和ADC3
ADC_CTL_END |
ADC_CTL_IE);
ADCSequenceEnable(ADC0_BASE, 0); // 使能采样序列
定时器中断程序
IntMasterDisable(); //关闭外部中断,不进行中断嵌套
uint32_t ADC_Vaule;
Pit_Cnt++;
if( Pit_Cnt>=500)
Pit_Cnt=0;
ROM_TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);//清除中断标志位
ROM_TimerLoadSet(TIMER0_BASE, TIMER_A, ROM_SysCtlClockGet());//重新装载定时器时间
if( !(Pit_Cnt%2))
ADCSequenceDataGet(ADC0_BASE, 3, &ADC_Vaule);
else
ADCProcessorTrigger(ADC0_BASE, 3);
UARTprintf("AD_Vaule =%d \n",&ADC_Vaule);
IntMasterEnable(); //开启外部中断
|
|