ntc 10k温度探头算法代码
发布时间:2019-11-11 文章来源:敏创原创 点击次数:
次
在NTC检测溫度的计划方案中,NTC的温度仪的长短一般是100-200 一些做到400-500的长短
在这样的事情下假如用逐一查表较为的方式去查溫度 会造成查表的時间太长,危害程序流程的
实行高效率 这儿发布一个出色的优化算法来替代这类最懒的作法
运用案例以下:
#define TempSize 100 //界定表长短
//溫度值相匹配的AD值的表的界定
const int16 TabNtc_100K[TempSize]={0xf00,0xe00,oxd00,......};
int16 *pTmp ; //界定一个字长的表针
pTmp = TabNtc_100K ; //偏向要温度仪的详细地址
CuTemp = FineTab(pTmp,TempSize,R_NTCAD); //查表算出溫度 R_NTCAD为NTC分压电路算出的AD值
- //*************************************
- // 函数名称:FineTab 二分查找算法 ->查温度表
- // 函数功能:查找数据在表中对应的位置 表中数据从大到小
- // 入口参数:表地址、表长度、要查找的数据
- // 出口参数:无
- // 返 回 值:数据在表中的位置
- //*************************************
- uint8 FineTab(uint16 *a,uint8 TabLong,uint16 data)//表中数据从大到小
- {
- uint8 st,ed,m ;
- uint8 i ;
- st = 0 ;
- ed = TabLong-1 ;
- i = 0 ;
- if(data >= a[st]) return st ;
- else if(data <= a[ed]) return ed ;
- while(st < ed)
- {
- m = (st+ed)/2 ;
- if(data == a[m] ) break ;
- if(data < a[m] && data > a[m+1]) break ;
- if(data > a[m]) ed = m ;
- else st = m ;
- if(i++ > TabLong) break ;
- }
- if(st > ed ) return 0 ;
- return m ;
- }
- 上一篇:银浆电极在ntc热敏电阻器中的应用
- 下一篇:开关电源中的浪涌电流限制NTC热敏电阻
您可能需要以下产品: