我现在需要读取CC2530的电压,我直接读取VDD/3那通道的值,但是读到的值变化好大,不知道是不是配置有问题,请各位帮忙看下,还有就用这个监测当前电压不知道准不准,我这个目的主要是监测给CC2530供电的电池电压,当电压低到一定值就提醒更换电池。监测电池电压的转换公式是:VDD/3=Value *1.15V/256
#define HAL_ADC_REF_115V 0x00
#define HAL_ADC_DEC_256 0x20
#define HAL_ADC_CHN_TEMP 0x0e
#define HAL_ADC_DEC_064 0x00
#define HAL_ADC_CHN_VDD3 0x0f
uint16 Get_Vdd_Value(void)
{
uint16 value;
uint8 tmpADDCON3 = ADCCON3;
ADCIF = 0;
ADCCON3 = (HAL_ADC_REF_115V | HAL_ADC_DEC_064 | HAL_ADC_CHN_VDD3);
while(!ADCIF);
ADCIF = 0;
value = ADCH;
value = (value<<8)|ADCL; ADCCON3 = tmpADDCON3;
return (value);
}
P M:
你好,这种方式测电池的电压最后能测的准么?
user4151555:
回复 P M:
其实很简单,用一个已知电压去算当前供电电压,例如加一个稳压1.1V的作为已知电压,通过这个电压数值作为基值去算当前供电电压。
xiaole gu:
回复 user4151555:
您这种方式得出来的电压值是正确的么?采用分辨率7位,采样得到的值
经过计算完全有问题呀!还请赐教。