主题中讨论的其他器件:TM4C129XNCZAD、
工具与软件:
您好!
我们最近将嵌入式微控制器从 tm4C129xnczad 更新为 TM4C1294NCPDT。
ADC 设置方法(c++)是:
(tm4c129xnczad )
SysCtlPeripheralEnable (SYSCTL_PERIPH_ADC0);
SysCtlADCSpeedSet (SYSCTL_ADCSPEED_125KSPS);
ADCSequenceDisable (ADC0_BASE、0);
ADCHardwareOversampleConfigure (ADC0_BASE、64);
ADCSequenceConfigure (ADC0_BASE、0、ADC_TRIGGER_processor、0);
ADCSequenceStepConfigure (ADC0_BASE、0、0、
ADC_CTL_CH0 | ADC_CTL_IE);
ADC =新的 TivaWareIntegratedADCDriver (ADC0_BASE、0、0);
((TivaWareIntegratedADCDDriver*) ADC)->setSharedBuffer (* adcSharedBuffer);
...
ADCIntEnable (ADC0_BASE、0);
ADCSequenceEnable (ADC0_BASE、0);
并且工作正常。
处理器驱动程序更新后 、宏 SysCtlADCSpeedSet 不再可用、所以替换它的代码看起来像这样:
(TM4C1294NCPDT)
ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PLL | ADC_CLOCK_RATE_第八、64);
问题是 ADC 反馈不准确。 在 IDLE 状态下、所有 ADC 反馈每秒从1变为1353。
ADC 设置中用于新处理器的代码是否正确? 还有其他方法可以做到这一点吗?
这就是用于新型微控制器的完整方法:
SysCtlPeripheralEnable (SYSCTL_PERIPH_ADC0);
ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PLL | ADC_CLOCK_RATE_第八、64);
ADCSequenceDisable (ADC0_BASE、0);
ADCHardwareOversampleConfigure (ADC0_BASE、64);
ADCSequenceConfigure (ADC0_BASE、0、ADC_TRIGGER_processor、0);
ADCSequenceStepConfigure (ADC0_BASE、0、0、
ADC_CTL_CH0 | ADC_CTL_IE);
ADC= NEW TivaWareIntegraatedADCDriver (ADC0_BASE、0、0);
((TivaWareIntegratedADCDDriver*) ADC)->setSharedBuffer (* adcSharedBuffer);
...
ADCIntEnable (ADC0_BASE、0);
ADCSequenceEnable (ADC0_BASE、0);