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值,中段采取平均的算法。