Thread 中讨论的其他器件:EK-TM4C1294XL
您好!
我对 ADC 采集数据的可变性有疑问。
使用两个 ADC 引脚、其中高优先级引脚设置为 AIN11、低优先级引脚设置为 AIN10。
有关 ADC 初始化代码和中断处理、请参阅以下内容。
#define ADC_SEQUENCERS0 #define ADC_SEQUENCERS1 1 #define ADC_SEQUENCERS2 2 #define ADC_SEQUENCERS3 3 #define ADC_PRIORITY0 0 #define ADC_PRIORITY1 1 #define ADC_PRIORITY2 2 #define ADC_PRIORITY3 #define ADC_RATE 25000000u (void) SysCtlPeripheralEnable (SYSCTL_Periph_ADC0); ADCReferenceSet (ADC0_BASE、ADC_REF_INT); ADCSequenceConfigure (ADC0_BASE、ADC_SEQUENCERS0、ADC_TRIGGER_TIMER、ADC_PRIORITY0); ADCSequenceStepConfigure (ADC0_BASE、ADC_SEQUENCERS0、0、ADC_CTL_CH11 | ADC_CTL_IE | ADC_CTL_END); ADCSequenceConfigure (ADC0_BASE、ADC_SEQUENCERS1、ADC_TRIGGER_TIMER、ADC_PRIORITY1); ADCSequenceStepConfigure (ADC0_BASE、ADC_SEQUENCERS1、0、ADC_CTL_CH10 | ADC_CTL_IE | ADC_CTL_END); ADCSequenceEnable (ADC0_BASE、ADC_SEQUENCERS0); ADCIntClear (ADC0_BASE、ADC_SEQUENCERS0); ADCSequenceEnable (ADC0_BASE、ADC_SEQUENCERS1); ADCIntClear (ADC0_BASE、ADC_SEQUENCERS1); MAP_SysCtlPeripheralEnable (SYSCTL_Periph_TIMER0); MAP_TimerControlTrigger (TIMER0_BASE、TIMER_A、TRUE); MAP_TimerConfigure (TIMER0_BASE、TIMER_CFG_A_PERIODICRACASE); MAP_TimerLoadSet (TIMER0_BASE、TIMER_A、SAMPLE_RATE); IntMasterEnable(); ADCIntEnable (ADC0_BASE、ADC_SEQUENCERS0); ADCIntEnable (ADC0_BASE、ADC_SEQUENCERS1); MAP_TimerEnable (TIMER0_BASE、TIMER_A); MAP_IntEnable (INT_TIMER0A); MAP_IntEnable (INT_ADC0SS0); MAP_IntEnable (INT_ADC0SS1); } void ADC0SS0IntHandler (void) { unsigned int adcVal = 0; TimerDisable (TIMER0_BASE、TIMER_A); ADCIntClear (ADC0_BASE、ADC_SEQUENCERS0); ADCSequenceDataGet (ADC0_BASE、ADC_SEQUENCERS0、&adcVal); TimerEnable (TIMER0_BASE、TIMER_A); } void ADC0SS1IntHandler (void) { unsigned int adcVal = 0; TimerDisable (TIMER0_BASE、TIMER_A); ADCIntClear (ADC0_BASE、ADC_SEQUENCERS1); ADCSequenceDataGet (ADC0_BASE、ADC_SEQUENCERS1、&adcVal); TimerEnable (TIMER0_BASE、TIMER_A); }
高优先级 ADC 引脚的转换数据几乎没有变化、但低优先级 ADC 引脚的转换数据显示变化较大、最大变化为144。
下图显示了当 AIN10的输入电压固定并且 AIN11的输入电压变化时的 ADC 转换结果。
此外、下图显示了当 AIN11的输入电压固定且 AIN10的输入电压变化时的 ADC 转换结果。
从结果来看、低优先级 ADC 引脚似乎受到高优先级 ADC 输入数据的影响、您能不能就此因素提出建议以及如何抵消它?
此致、
H.U