当前位置: 网站首页 > 技术应用 > 单片机应用 > AD应用

C语言二分值查表程序,单片机+NTC测温度

  1. //NTC_TAB_SIZE
  2. //当查找值 不等于表格中在值时,返回序列号小于下一个值, 例如  表中相邻 120,130, 输入125 则返回  130的序列号;
  3. /**********二分法查表求温度值*********/
  4.   
  5. unsigned char get_ntc_temp(unsigned int value)
  6. {
  7.         
  8.         unsigned char index,middle,min,max=0;         
  9.  
  10.         min = 0;
  11.         max = NTC_TAB_SIZE-1;
  12.  
  13.     if((value <= NTC10K_TAB[0])&&(value >= NTC10K_TAB[NTC_TAB_SIZE-1]))
  14.     {
  15.                 if(value == NTC10K_TAB[0])
  16.                 {
  17.                         return 0;
  18.                 }
  19.                 if(value == NTC10K_TAB[NTC_TAB_SIZE-1])
  20.                 {
  21.                         return NTC_TAB_SIZE-1;
  22.                 }
  23.                
  24.                 while(min <= max)
  25.                 {
  26.                         middle = (max + min) >>1;
  27.                         
  28.                         if(value == NTC10K_TAB[middle])
  29.                         {
  30.                                 index = middle;     // TestCnt++;
  31.                                 return index;
  32.                         }
  33.                         else if(value > NTC10K_TAB[middle] )
  34.                         {
  35.                                 max = middle;//TestCnt++;
  36.                         }
  37.                         else if( value <= NTC10K_TAB[middle] )
  38.                         {
  39.                                 min  = middle;//TestCnt++;
  40.                                 if((max - min)==1)
  41.                                 {
  42.                                         return min;
  43.                                 }
  44.                         }
  45.                 }
  46.     }
  47.     else
  48.     {
  49.         index = 0xff;          // 温度超出数组范围,就返回0度
  50.     }
  51.     return index;
  52. }
  53.  
  54. //        aa = get_ntc_temp(3674);

ntc.zip下载https://wwvb.lanzout.com/ixTlM2hxixnc

点击次数:  【关闭
  • 壹零零单片机©版权所有 2008-2025 粤ICP备17151077号

Powered by  xinfuke  5.2.5 ©2008-2025  www.100mcu.com