NTC temperature sensor going to A:D input. Topology is: (Vref or 3.3V) -> Series_resistor -> A:D_input -> NTC -> GND. Easy modification of NTC parameters w/o recompile of library

Dependents:   ntc_helloworld

Revision:
6:8e6bd0f9877b
Parent:
5:9655397ba539
Child:
8:781d00449dd7
--- a/ntc.cpp	Tue Apr 11 20:30:30 2017 +0000
+++ b/ntc.cpp	Wed Apr 12 16:56:27 2017 +0000
@@ -29,44 +29,7 @@
     return ntc_set_data.ntc_res;
 }
 
-int NTC::get_ntc_beta_0050() {
-    return ntc_set_data.ntc_beta_0050;
-}
-
-int NTC::get_ntc_beta_2550() {
-    return ntc_set_data.ntc_beta_2550;
-}
-
-int NTC::get_ntc_beta_2580() {
-    return ntc_set_data.ntc_beta_2580;
-}
-
-int NTC::get_ntc_beta_2585() {
-    return ntc_set_data.ntc_beta_2585;
-}
-
-int NTC::get_ntc_beta_25100() {
-    return ntc_set_data.ntc_beta_25100;
-}
-
-int NTC::get_ntc_beta_other() {
-    return ntc_set_data.ntc_beta_other;
-}
-
-int NTC::get_series_res() {
-    return ntc_set_data.sres_res;
-}
-
-float NTC::get_ntc_res_viaAD(uint16_t din) {
-    uint16_t ad = din;
-    if(din == 0) {
-        ad = NTC::read_ad_reg();
-    }
-    float adv = ntc_set_data.vref / ntc_set_data.ad_resolution * (float)ad;
-    return (ntc_set_data.vref / ((ntc_set_data.vref - adv) / ntc_set_data.sres_res) - ntc_set_data.sres_res);
-}
-    
-float NTC::get_ntc_temp(int curve, uint16_t din) {
+int NTC::get_ntc_beta(int curve) {
     int beta = 0;
     switch (curve) {
         case B0_50:
@@ -88,9 +51,27 @@
             beta = ntc_set_data.ntc_beta_other;
             break;
         default:
-            beta = ntc_set_data.ntc_beta_2550;
+            beta = ntc_set_data.ntc_beta_2585;
             break;
     }
+    return beta;
+}
+
+int NTC::get_series_res() {
+    return ntc_set_data.sres_res;
+}
+
+float NTC::get_ntc_res_viaAD(uint16_t din) {
+    uint16_t ad = din;
+    if(din == 0) {
+        ad = NTC::read_ad_reg();
+    }
+    float adv = ntc_set_data.vref / ntc_set_data.ad_resolution * (float)ad;
+    return (ntc_set_data.vref / ((ntc_set_data.vref - adv) / ntc_set_data.sres_res) - ntc_set_data.sres_res);
+}
+    
+float NTC::get_ntc_temp(int curve, uint16_t din) {
+    int beta = NTC::get_ntc_beta(curve);
     float ntc_res = 0.0f;
     if(din == 0) {
         ntc_res = NTC::get_ntc_res_viaAD();
@@ -101,3 +82,4 @@
     return (beta / (log(ntc_res / (ntc_set_data.ntc_res * exp(-beta / 298.0f)))) - 273.0f);
 }
 
+