独闷闷网

 找回密码
 立即注册
搜索
查看: 5430|回复: 3
打印 上一主题 下一主题
收起左侧

[原创] "Tony-青岛"给大家贡献的NTC采集温度的两种算法程序。

[复制链接]
跳转到指定楼层
楼主
发表于 2014-11-7 07:04:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 jianhong_wu 于 2015-1-11 16:07 编辑

为了兑现对鸿锅的承诺,决定发帖。有任何问题,请在鸿锅群当中@Tony——青岛。或者发邮件到。。。。。。

/**************方法一:**************/
ntcchabiao(void)                                         
{
    u16 R=0;
    float adc;  
    u16  i=0;

    adc=Get_Adc_Average(5,10);        
    R=(5470000/adc)  - 1000;
        while(1)
          {
             if(R>(Positivetemperature)) break;
             i=i+1;
             if(i>=106){i=106;break;}
          }
    return i;        
}
/**************方法二****************/
u8 Temperature1(void)
{  


        u8 min = 0;  
        u8 max = 106;
        u8 mid = 53;
        u16 R=0;
        float adc;  
        u16  i=0;

        adc=Get_Adc_Average(5,10);        
        R=(5470000/adc)  - 1000;
        if (R<Positivetemperature[106])  
        { return mid=106;}
        if (R>Positivetemperature[0])  
        { return mid=0;}

        while ((max-min)!=1) // 2分法查表。
          {
                if (R<Positivetemperature[mid])
                  {
                        min=mid;
                          mid = (min + max) / 2;
                  }
                else if (R>Positivetemperature[mid])
                  {
                        max=mid;
                        mid = (min + max) / 2;
                  }
                else
                  {         
                         return mid;
                  }
          }
        return mid;
}


乐于分享,勇于质疑!
沙发
发表于 2014-11-10 11:17:29 | 只看该作者
hao{:soso_e113:}
乐于分享,勇于质疑!
板凳
发表于 2015-2-9 16:31:18 | 只看该作者
第一种方法,如果R>(Positivetemperature)不成立,让i自加106次有何意义呢?
乐于分享,勇于质疑!
地板
发表于 2015-2-9 16:40:21 | 只看该作者
如何滤波呢?
乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-29 18:28 , Processed in 0.159130 second(s), 17 queries .

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