有关5438A的AD采样
用5438A的AD15做输入,输入是稳定的0.1V左右,12位采集,可如果程序上电就全速跑,AD采回来的数字总是4095.可如果我用仿真器在AD转化后设个断点,全速跑中断2次,然后再全速跑,AD就可以正常采样了。怎么会这样呢?如下是我的AD初始化程序: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_64_CYCLES,
FALSE);
ADC12_setResolution(__MSP430_BASEADDRESS_ADC12_PLUS__,
ADC12_RESOLUTION_12BIT);
ADC12_memoryConfigure(__MSP430_BASEADDRESS_ADC12_PLUS__,
CURR_AD_DET,
CURR_AD_INPUTPIN,
ADC12_VREFPOS_EXT,
ADC12_VREFNEG_AVSS,FALSE);
ADC12_enable(__MSP430_BASEADDRESS_ADC12_PLUS__);
用的是外部2.5V稳压做参考。
采样代码如下:
//Clear ADC Int
ADC12_clearInterrupt(__MSP430_BASEADDRESS_ADC12_PLUS__,CURR_AD_INT_IFG);
//Start Convert
ADC12_startConversion(__MSP430_BASEADDRESS_ADC12_PLUS__,CURR_AD_DET,ADC12_SINGLECHANNEL);
//Wait until convert finish
while(0 == ADC12_getInterruptStatus(__MSP430_BASEADDRESS_ADC12_PLUS__,CURR_AD_INT_IFG));
uwCurrAD = ADC12_getResults(__MSP430_BASEADDRESS_ADC12_PLUS__,CURR_AD_DET);
用的是1.25的driverlib。谁碰到过这种问题?帮忙解答一下吧。多谢多谢。 LZ问题解决了吗?我用AVCC做基准采集数据没问题。用VERF做基准采集数据就成4095的.{:mad:} 求答案,哪位大神出手一下
页:
[1]