使用NTC计算温度,增加计算精度的算法

uint16_t uGetPCB_Temperature(void)
{
    uint16_t x;
    float Adcn;
    float k;
    Adcn = userADC_var.ADCMeasureVals[num_PCB_ADC];
    for(x=0;x<sizeof(NTC_PCB_D);x++)
    {
        if(Adcn>NTC_PCB_D[x])
        {            
            k=x-((Adcn - NTC_PCB_D[x+1])/(NTC_PCB_D[x]-NTC_PCB_D[x+1]));
            break; 
        }else 
        continue;
    }
    x = (uint16_t)(k*100);
    return x;//
} 

上面是计算得到的AD值,中段采取平均的算法。

猜你喜欢

转载自www.cnblogs.com/TorryLong/p/12979741.html