原创 ZigBee06协议测温函数注释INT8 getTemperature(void)

2009-9-30 17:47 1256 6 6 分类: 消费电子

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);
}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条