在线时间24 小时
UID2112609
注册时间2014-7-28
NXP金币0
该用户从未签到
中级会员
 
- 积分
- 315
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2015-9-3 10:30:47
|
显示全部楼层
好长时间没有来了,才看见,贴下我的代码,是使用浮点运算的:
uint16 ADC_Calculate(uint16 result_A, uint16 result_B, int16_t *tmp_10)
{
float Vdd_Cal, ADCR_Temp25, ADCR_100m;
float i;
float Temp;
Vdd_Cal = 655350.0 / result_A;
// ADCR_Temp25 = 471197 / Vdd_Cal; //KL25 25 度,VDD=3v 时对应的电压的AD值*1000,719mv 655350 * 0.719 = 471197
// ADCR_100m = 112393 / Vdd_Cal; //KL25 25 度,VDD=3v 时对应的电压的AD值*1000,719mv 65535 * 1.7152 = 112393
ADCR_Temp25 = 469230.6 / Vdd_Cal; //KL26 25 度,VDD=3v 时对应的电压的AD值*1000,716mv 655350 * 0.716 = 469230.6
ADCR_100m = 106166.7 / Vdd_Cal; //计算温度电压变化率 m 对应的 1.62mV/°C 65535 * 1.62 = 106166.7
Temp = (float)((result_B - ADCR_Temp25) * 100 / ADCR_100m);
i = (float)(25 - Temp);
*tmp_10 = (uint16_t)(i * 10); //°C *100
return (uint16)i;
} |
|