全部博文(89)
分类: C/C++
2013-12-29 15:35:03
#include "Sensor.h"#include#define HAL_ADC_REF_115V 0x00 #define HAL_ADC_DEC_256 0x20 #define HAL_ADC_CHN_TEMP 0x0e int8 readTemp(void) { static uint16 reference_voltage; static uint8 bCalibrate-TRUE; uint16 value; ATEST= 0x01; //使能温度传感器 TR0 |= 0x01; //连接温度传感器 ADCIF=0; ADCCON3=(HAL_ADC_REF_115V | HAL_ADC_DEC_256 | HAL_ADC_CHN_TEMP); while(!ADCIF); ADCIF=0; value=ADCL; value|=((uint16)ADCH)<<8; value>>=4; if(bCalibrate) //记录第一次读取的温度值,用于校正温度数据 { reference_voltage=value; bCalibrate=FALSE; } temp=22+((value-reference_voltage)/4); //温度校正函数 return temp; }