-
//NTC_TAB_SIZE
-
//当查找值 不等于表格中在值时,返回序列号小于下一个值, 例如 表中相邻 120,130, 输入125 则返回 130的序列号;
-
/**********二分法查表求温度值*********/
-
-
unsigned char get_ntc_temp(unsigned int value)
-
{
-
-
unsigned char index,middle,min,max=0;
-
-
min = 0;
-
max = NTC_TAB_SIZE-1;
-
-
if((value <= NTC10K_TAB[0])&&(value >= NTC10K_TAB[NTC_TAB_SIZE-1]))
-
{
-
if(value == NTC10K_TAB[0])
-
{
-
return 0;
-
}
-
if(value == NTC10K_TAB[NTC_TAB_SIZE-1])
-
{
-
return NTC_TAB_SIZE-1;
-
}
-
-
while(min <= max)
-
{
-
middle = (max + min) >>1;
-
-
if(value == NTC10K_TAB[middle])
-
{
-
index = middle; // TestCnt++;
-
return index;
-
}
-
else if(value > NTC10K_TAB[middle] )
-
{
-
max = middle;//TestCnt++;
-
}
-
else if( value <= NTC10K_TAB[middle] )
-
{
-
min = middle;//TestCnt++;
-
if((max - min)==1)
-
{
-
return min;
-
}
-
}
-
}
-
}
-
else
-
{
-
index = 0xff; // 温度超出数组范围,就返回0度
-
}
-
return index;
-
}
-
-
// aa = get_ntc_temp(3674);
ntc.zip下载https://wwvb.lanzout.com/ixTlM2hxixnc