|
再來發一個驅動代碼,希望對大家有幫助,
- //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
2020-7-10 16:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
1.37 KB, 下載次數: 141, 下載積分: 黑幣 -5
|