ntc_sensor.c 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. #include "ntc_sensor.h"
  2. const uint16_t NTC_Table[200] =
  3. {
  4. 4019,
  5. 4013,
  6. 4007,
  7. 4000,
  8. 3992,
  9. 3985,
  10. 3976,
  11. 3968,
  12. 3958,
  13. 3948,
  14. 3938,
  15. 3927,
  16. 3915,
  17. 3902,
  18. 3889,
  19. 3875,
  20. 3861,
  21. 3845,
  22. 3829,
  23. 3812,
  24. 3793,
  25. 3775,
  26. 3755,
  27. 3734,
  28. 3712,
  29. 3689,
  30. 3665,
  31. 3641,
  32. 3615,
  33. 3588,
  34. 3560,
  35. 3531,
  36. 3501,
  37. 3469,
  38. 3437,
  39. 3404,
  40. 3369,
  41. 3334,
  42. 3297,
  43. 3259,
  44. 3221,
  45. 3181,
  46. 3140,
  47. 3099,
  48. 3056,
  49. 3013,
  50. 2969,
  51. 2924,
  52. 2879,
  53. 2832,
  54. 2785,
  55. 2738,
  56. 2690,
  57. 2641,
  58. 2593,
  59. 2543,
  60. 2494,
  61. 2444,
  62. 2394,
  63. 2345,
  64. 2295,
  65. 2245,
  66. 2195,
  67. 2145,
  68. 2096,
  69. 2047,
  70. 1998,
  71. 1950,
  72. 1902,
  73. 1854,
  74. 1807,
  75. 1761,
  76. 1715,
  77. 1670,
  78. 1626,
  79. 1582,
  80. 1539,
  81. 1496,
  82. 1455,
  83. 1414,
  84. 1374,
  85. 1335,
  86. 1296,
  87. 1259,
  88. 1222,
  89. 1186,
  90. 1151,
  91. 1117,
  92. 1084,
  93. 1052,
  94. 1020,
  95. 989,
  96. 959,
  97. 930,
  98. 902,
  99. 874,
  100. 848,
  101. 822,
  102. 796,
  103. 772,
  104. 748,
  105. 725,
  106. 703,
  107. 681,
  108. 660,
  109. 639,
  110. 620,
  111. 601,
  112. 582,
  113. 564,
  114. 547,
  115. 530,
  116. 514,
  117. 498,
  118. 482,
  119. 468,
  120. 453,
  121. 440,
  122. 426,
  123. 413,
  124. 401,
  125. 389,
  126. 377,
  127. 365,
  128. 354,
  129. 344,
  130. 334,
  131. 324,
  132. 314,
  133. 305,
  134. 296,
  135. 287,
  136. 279,
  137. 270,
  138. 263,
  139. 255,
  140. 247,
  141. 240,
  142. 233,
  143. 227,
  144. 220,
  145. 214,
  146. 208,
  147. 202,
  148. 196,
  149. 191,
  150. 186,
  151. 180,
  152. 175,
  153. 170,
  154. 166,
  155. 161,
  156. 157,
  157. 153,
  158. 148,
  159. 144,
  160. 141,
  161. 137,
  162. 133,
  163. 130,
  164. 126,
  165. 123,
  166. 120,
  167. 117,
  168. 113,
  169. 111,
  170. 108,
  171. 105,
  172. 102,
  173. 100,
  174. 97,
  175. 95,
  176. 92,
  177. 90,
  178. 88,
  179. 86,
  180. 83,
  181. 81,
  182. 79,
  183. 77,
  184. 76,
  185. 74,
  186. 72,
  187. 70,
  188. 69,
  189. 67,
  190. 65,
  191. 64,
  192. 62,
  193. 61,
  194. 59,
  195. 58,
  196. 57,
  197. 55,
  198. 54,
  199. 53,
  200. 52,
  201. 50,
  202. 49,
  203. 48
  204. };
  205. const uint16_t NTC_Table_20K[191] =
  206. {
  207. 4073,4072,4070,4068,4066,4064,4062,4060,4058,4056, //-40~-31
  208. 4053,4050,4047,4044,4041,4038,4034,4030,4026,4022, //-30~-21
  209. 4018,4013,4008,4003,3998,3992,3986,3980,3973,3966, //-20~-11
  210. 3959,3952,3944,3935,3927,3918,3909,3899,3889,3878, //-10~-1
  211. 3865, //0
  212. 3855,3843,3831,3818,3804,3790,3776,3761,3745,3729, //1~10
  213. 3712,3695,3677,3658,3639,3619,3599,3578,3556,3534, //11~20
  214. 3511,3487,3463,3438,3413,3386,3359,3331,3303,3274, //21~30
  215. 3244,3214,3183,3151,3119,3087,3053,3019,2985,2950, //31~40
  216. 2914,2878,2842,2805,2768,2730,2692,2653,2615,2576, //41~50
  217. 2536,2497,2457,2417,2377,2337,2297,2257,2216,2176, //51~60
  218. 2136,2096,2056,2016,1977,1937,1898,1859,1821,1783, //61~70
  219. 1745,1707,1670,1633,1597,1561,1526,1491,1456,1422, //71~80
  220. 1389,1356,1324,1292,1261,1230,1200,1170,1141,1113, //81~90
  221. 1085,1058,1031,1005,979,954,930,906,883,860, //91~100
  222. 838,816,795,774,754,735,716,697,679,661, //101~110
  223. 644,627,611,595,580,565,550,536,522,509, //111~120
  224. 495,483,470,458,447,435,424,414,403,393, //121~130
  225. 384,374,365,356,347,338,330,322,315,307, //131~140
  226. 300,293,286,279,272,266,260,254,248,243 //141~150
  227. };
  228. uint8_t GetNTCTempera(uint16_t ADC_Result)
  229. {
  230. uint8_t Count;
  231. for(Count=0; Count<200; Count++)
  232. {
  233. if(ADC_Result >= NTC_Table[Count])
  234. {
  235. return Count;
  236. }
  237. }
  238. return 0;
  239. }
  240. uint8_t GetNTCTempera_20K(uint16_t ADC_Result)
  241. {
  242. uint8_t Count;
  243. for(Count=0; Count<191; Count++)
  244. {
  245. if(ADC_Result >= NTC_Table_20K[Count])
  246. {
  247. return Count;
  248. }
  249. }
  250. return 0;
  251. }