#include "NTC_Temper.h"
unsigned int NTC_Adv; //定义热敏电阻阻值变量
float NTC_Temper=0xff; //定义温度存储变量
float tm_Table[_TMAX][2]={ //温度与电压值对应关系表格
-40,3027,\
-39,3014,\
-38,3001,\
-37,2987,\
-36,2973,\
-35,2958,\
-34,2942,\
-33,2926,\
-32,2910,\
-31,2893,\
-30,2875,\
-29,2857,\
-28,2838,\
-27,2819,\
-26,2799,\
-25,2779,\
-24,2759,\
-23,2737,\
-22,2715,\
-21,2693,\
-20,2670,\
-19,2647,\
-18,2623,\
-17,2599,\
-16,2574,\
-15,2548,\
-14,2522,\
-13,2496,\
-12,2469,\
-11,2442,\
-10,2414,\
-9,2386,\
-8,2358,\
-7,2329,\
-6,2300,\
-5,2271,\
-4,2241,\
-3,2211,\
-2,2180,\
-1,2150,\
0,2119,\
1,2088,\
2,2057,\
3,2026,\
4,1995,\
5,1963,\
6,1932,\
7,1900,\
8,1869,\
9,1837,\
10,1806,\
11,1774,\
12,1743,\
13,1712,\
14,1681,\
15,1650,\
16,1619,\
17,1588,\
18,1558,\
19,1527,\
20,1498,\
21,1468,\
22,1438,\
23,1409,\
24,1380,\
25,1352,\
26,1324,\
27,1296,\
28,1268,\
29,1241,\
30,1215,\
31,1188,\
32,1162,\
33,1137,\
34,1111,\
35,1087,\
36,1062,\
37,1038,\
38,1015,\
39,992,\
40,969,\
41,947,\
42,925,\
43,904,\
44,882,\
45,862,\
46,942,\
47,822,\
48,803,\
49,784,\
50,765,\
51,747,\
52,729,\
53,712,\
54,695,\
55,687,\
56,662,\
57,646,\
58,631,\
59,616,\
60,601,\
61,587,\
62,572,\
63,559,\
64,545,\
65,532,\
66,520,\
67,507,\
68,495,\
69,483,\
70,471,\
71,460,\
72,449,\
73,438,\
74,428,\
75,418,\
76,408,\
77,398,\
78,388,\
79,379,\
80,370,\
81,361,\
82,353,\
83,345,\
84,337,\
85,329,\
86,321,\
87,314,\
88,306,\
89,299,\
90,292,\
91,286,\
92,279,\
93,273,\
94,266,\
95,260\
};
void T_dis(unsigned int n_Adv){ //温度处理函数采集到的阻值与二维数组的阻值进行比较,从而获得相对应的温度值。
unsigned char i;
float cRdc=0;
if(n_Adv < tm_Table[_TMAX-1][1]){
NTC_Temper = 105;
return;
}else if(n_Adv > tm_Table[0][1]){
NTC_Temper = -40;
return;
}
if(n_Adv > tm_Table[(int)((_TMAX+1)/2)][1]){
for(i=(int)((_TMAX+1)/2);i<(int)((_TMAX+1)/2)+1;i--){
if(n_Adv >= tm_Table[i][1] && n_Adv < tm_Table[i-1][1]){
cRdc =(n_Adv-tm_Table[i][1])/(float)(tm_Table[i-1][1]-tm_Table[i][1]);
NTC_Temper=(tm_Table[i][0]+1)-cRdc;
break;
}
}
}else{
for(i=(int)((_TMAX+1)/2);i<_TMAX+1;i++){
if(n_Adv >= tm_Table[i][1] && n_Adv < tm_Table[i-1][1]){
cRdc =(n_Adv-tm_Table[i][1])/(float)(tm_Table[i-1][1]-tm_Table[i][1]);
NTC_Temper=(tm_Table[i][0]+1)-cRdc;
break;
}
}
}
}
/************end of file***************/