原创 ZigBee06协议测温函数注释

2009-7-8 10:43 1563 6 6 分类: 工程师职场

ZigBee06协议测温函数注释


(自大浪淘沙)



  最近群里很多人都在问这个函数的意思,最后终于有人做出了一个注释,首先谢谢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);
}

PARTNER CONTENT

文章评论0条评论)

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