找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1843|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

NTC10K單片機(jī)源代碼+自動生成規(guī)則列表 NTC計(jì)算表

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:50487 發(fā)表于 2022-3-23 11:04 | 只看該作者 |只看大圖 回帖獎勵 |倒序?yàn)g覽 |閱讀模式


單片機(jī)源程序如下:
  1. #include "ntc10k.h"
  2. extern work_state_def  work_state;
  3. //ntc溫度向量表   4.7k    -9~99度
  4. uint NTC10K_TAB[109]={
  5. 0xE50        ,0xE3E        ,0xE2B        ,0xE18        ,0xE04        ,0xDF0        ,0xDDC        ,0xDC6        ,0xDB1        ,0xD9E        ,0xD84        ,0xD6C        ,
  6. 0xD55        ,0xD3D        ,0xD24        ,0xD0B        ,0xCF1        ,0xCD8        ,0xCBD        ,0xCA6        ,0xC87        ,0xC6C        ,0xC50        ,0xC33        ,
  7. 0xC16        ,0xBF9        ,0xBDC        ,0xBBE        ,0xB9F        ,0xB81        ,0xB62        ,0xB42        ,0xB23        ,0xB03        ,0xAE2        ,0xAC2        ,
  8. 0xAA1        ,0xA80        ,0xA5F        ,0xA3D        ,0xA1B        ,0x9F9        ,0x9D7        ,0x9B5        ,0x992        ,0x970        ,0x94D        ,0x92A        ,
  9. 0x907        ,0x8E4        ,0x8C1        ,0x89E        ,0x87B        ,0x858        ,0x835        ,0x812        ,0x7EF        ,0x7CC        ,0x7A9        ,0x787        ,
  10. 0x764        ,0x742        ,0x720        ,0x6FE        ,0x6DD        ,0x6BB        ,0x69B        ,0x67A        ,0x659        ,0x639        ,0x61A        ,0x5FA        ,
  11. 0x5DB        ,0x5BC        ,0x59E        ,0x580        ,0x562        ,0x545        ,0x529        ,0x50D        ,0x4F1        ,0x4D5        ,0x4BA        ,0x4A0        ,
  12. 0x486        ,0x46C        ,0x453        ,0x43B        ,0x423        ,0x40B        ,0x3F3        ,0x3DC        ,0x3C6        ,0x3B1        ,0x3A4        ,0x386        ,
  13. 0x372        ,0x35E        ,0x34A        ,0x337        ,0x324        ,0x311        ,0x300        ,0x2EE        ,0x2DD        ,0x2CC        ,0x2BC        ,0x2AC        ,
  14. 0x29C        
  15. };

  16. uint get_adc()
  17. {
  18. HAL_ADC_Start(&hadc1);
  19. work_state.adc=        HAL_ADC_GetValue(&hadc1);
  20.         if(work_state.adc>4000)
  21.         {work_state.attention_3=1;work_state.adc=0;}
  22.         else work_state.attention_3=0;
  23. return work_state.adc;
  24. }

  25. int get_ntc_temp(unsigned int value)
  26. {
  27.         
  28.         int index,middle,min,max=0;         
  29.         unsigned int NTC_TAB_SIZE=109;
  30.         min = 0;
  31.         max = NTC_TAB_SIZE-1;

  32.     if((value <= NTC10K_TAB[0])&&(value >= NTC10K_TAB[NTC_TAB_SIZE-1]))
  33.     {
  34.                 if(value == NTC10K_TAB[0])
  35.                 {
  36.                         return 0;
  37.                 }
  38.                 if(value == NTC10K_TAB[NTC_TAB_SIZE-1])
  39.                 {
  40.                         return NTC_TAB_SIZE-1;
  41.                 }
  42.                
  43.                 while(1)
  44.                 {
  45.                         middle = (max + min)/2;//求中間值/2
  46.                         
  47.                         if(value == NTC10K_TAB[middle])
  48.                         {
  49.                                 index = middle;     // TestCnt++;
  50.                                 return index;
  51.                         }
  52.                         else if(value > NTC10K_TAB[middle] )
  53.                         {
  54.                                 max = middle;//TestCnt++;
  55.                         }
  56.                         else if( value <= NTC10K_TAB[middle] )
  57.                         {
  58.                                 min  = middle;//TestCnt++;
  59.                                 if((max - min)==1)
  60.                                 {
  61.                                         return min;
  62.                                 }
  63.                         }
  64.                 }
  65.     }
  66.     else
  67.     {
  68.         index = 0xff;          // 溫度超出數(shù)組范圍,就返回0度
  69.     }
  70.     return index;
  71. }

  72. int ntc_10k()
  73. {
  74. return get_ntc_temp(get_adc())-9;
  75. }

復(fù)制代碼



以上3個(gè)文件下載:excel: MF58-10K.zip (16.94 KB, 下載次數(shù): 50)
2022-3-23-NTC10K.zip (1.3 KB, 下載次數(shù): 47)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表