独闷闷网

 找回密码
 立即注册
搜索
查看: 4655|回复: 1
收起左侧

[原创] "Inc-东莞"给大家贡献的NTC查表算法源代码。

[复制链接]
发表于 2015-1-11 16:04:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Inc-东莞:
给大家贡献我的NTC查表算法:
  1. uint8_t Libraryserch(const uint16_t *pNTCBuf, uint8_t len, uint16_t key)
  2. {
  3.         uint8_t high = len;
  4.         uint8_t low = 0;
  5.         uint8_t middle;

  6.         if( key < *(pNTCBuf+high)) //如果小于最小值,报错
  7.         {
  8.                 return NTC_ERROR_MINER_CODE;
  9.         }
  10.         else if ( key > *(pNTCBuf+low) )//大于最大值,报错
  11.         {
  12.                 return NTC_ERROR_BINGER_CODE;
  13.         }
  14.         else
  15.         {
  16.                 for( middle = len/2; ( high - low)!=1; )
  17.                 {
  18.                         if( key > *(pNTCBuf+middle) )//前半段
  19.                         {
  20.                                 high = middle;
  21.                                 middle /= 2;
  22.                         }
  23.                         else if( key < *(pNTCBuf+middle) )//后半段
  24.                         {
  25.                                 low = middle;
  26.                                 middle = (low + high)/2;
  27.                         }
  28.                         else
  29.                         {
  30.                                 return middle;
  31.                         }

  32.                 }
  33.                 //4舍5入
  34.                 if( (*(pNTCBuf+low)-key)>=(key-*(pNTCBuf+high)) )
  35.                 {
  36.                         return low;
  37.                 }
  38.                 else
  39.                 {
  40.                         return high;
  41.                 }
  42.         }


  43. }
复制代码


乐于分享,勇于质疑!
发表于 2015-1-13 22:02:55 | 显示全部楼层
大神手笔{:soso_e179:}
乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2021-7-31 11:48 , Processed in 0.124782 second(s), 17 queries .

快速回复 返回顶部 返回列表