分类:Zigbee//一路走来 |
最近群里很多人都在问这个函数的意思,最后终于有人做出了一个注释,首先谢谢Yicher!!我总结了一下这个函数,写在下面了。大家可以看一下。
INT8 getTemperature(void){
UINT8 i;
UINT16 accValue;
UINT16 value;
accValue = 0;
for( i = 0; i < 4; i++ ) //采集ad 4次
{
//adc初始化为参考电压1.25v,14bits,通道为内部温度传感器
ADC_SINGLE_CONVERSION(ADC_REF_1_25_V | ADC_14_BIT | ADC_TEMP_SENS);
ADC_SAMPLE_SINGLE(); //启动一次ad
while(!ADC_SAMPLE_READY()); //转换完了么?
value = ADCL >> 2; //lsb 的低 2 位 是无效的 ,now value = (adch:adcl)[5:0]
value |= (((UINT16)ADCH) << 6); // value|= (adch:adcl)[13:6]
accValue += value; //4次之和
}
value = accValue >> 2; // devide by 4
// there is a formula between adcvalue & celsius :
// celsius = (adcvalue/16 -315)
return ADC14_TO_CELSIUS(value);
}
文章评论(0条评论)
登录后参与讨论