|
再来发一个驱动代码,希望对大家有帮助,
- //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
1.37 KB, 下载次数: 139, 下载积分: 黑币 -5
|