例程:N76E003_BSP_Keil_C51_V1.0.3\Sample_Code\ADC_Bandgap_VDD
- clr_ADCF; //AD转换完成,该位置1,需要软件清零
- set_ADCS; // Each time ADC start trig signal
- ADCsumH = 0;
- ADCsumL = 0;
- while(ADCF == 0);
-
- for(i=0;i<N;i++)
- {
- Timer0_Delay1ms(20); //必要的延时,T BGEN 带隙电压使能时间
- clr_ADCF;
- set_ADCS; // ADC start trig signal
- while(ADCF == 0);
- ADCdataH[i] = ADCRH;
- ADCdataL[i] = ADCRL;
- }
Timer0_Delay1ms(20); 这个延时不知道从何而来,手册里没看见,20ms时电压获取是比较正确的,加多减少都会影响正确电压。
另外,如果切换了频率CKDIV = 0x01; 将频率降低到8M,那么20ms延时也不能获取正常(在降频后已经相应改写Timer0_Delay1ms函数,20ms是正确的)
|