尊敬的先生/女士:
我的客户 在为 MSP430F5342启用 ADC 和稳定 Vref 后等待更长时间时看到+/- 0.1V 的差异? 要获得稳定的 ADC 设置?
- 用于设置 ADC 的代码:
- 初始化:
i. //初始化内部基准电压
//如果参考生成器忙,请等待
while (REF_isRefGenBusy (__MSP430_BASEADDRESS_REF__);
//选择内部基准= 2.5V
Ref_setReferenceVoltage (_MSP430_BASEADDRESS_REF__、
REF_VREF2_5V);
//初始化 ADC12模块
ADC12_init (_MSP430_BASEADDRESS_ADC12_PLUS__、
ADC12_SAMPLEHOLDSOURCE_SC、
ADC12_CLOCKSOURCE_ADC12OSC、
ADC12_CLOCKDIVIDER_1);
ADC12_setupSamplingTimer (_MSP430_BASEADDRESS_ADC12_plus__、
ADC12_CYCLEHOLD_64_cycles、
ADC12_CYCLEHOLD_4_CYCLES、
ADC12_MULTIPLESAMPLESDISABLE);
ADC12_memoryConfigure (_MSP430_BASEADDRESS_ADC12_plus__、
ADC12_MEMORY_0、
ADC12_INPUT_A5、RFDP 的//输入
ADC12_VREFPS_INT、
ADC12_VREFNEG_AVSS、
ADC12_NOTENDO3DEXPERIENCE);
3.读数前:
i. ADC12_ENABLE (_MSP430_BASEADDRESS_ADC12_PLUS__);
//启用基准
while (REF_isRefGenBusy (__MSP430_BASEADDRESS_REF__);
Ref_enableReferenceVoltage (_MSP430_BASEADDRESS_REF__);
bBatteryIsLoaded = TX_API_loadForBattery (TRUE);//打开发射功率以模拟负载
4、延时时间(改变此值会改变结果+/- 0.1V
5.触发读数:
i. ADC12_startConversion (_MSP430_BASEADDRESS_ADC12_plus__、
ADC12_MEMORY_0、
ADC12_SINGLECHANNEL);
雪睡延迟(10);
电池级别= ADC12_getResults (_MSP430_BASEADDRESS_ADC12_PLUS__、
ADC12_MEMORY_0);