Some ADC code simplified.

Thu, 28 Sep 2023 11:29:23 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Thu, 28 Sep 2023 11:29:23 +0200
changeset 76
0432d9147682
parent 75
7425fa11f23e
child 77
15dc572a7fcb

Some ADC code simplified.

main/task_adc.c file | annotate | diff | comparison | revisions
--- a/main/task_adc.c	Tue Sep 26 15:15:09 2023 +0200
+++ b/main/task_adc.c	Thu Sep 28 11:29:23 2023 +0200
@@ -30,7 +30,6 @@
 
 
 static bool adc_calibration_init(adc_unit_t unit, adc_atten_t atten, adc_cali_handle_t *out_handle);
-static void adc_calibration_deinit(adc_cali_handle_t handle);
 
 
 void request_adc(void)
@@ -144,7 +143,6 @@
 		    }
 		}
 
-		adc1_cali_handle = NULL;
 		do_calibration = adc_calibration_init(ADC_UNIT_1, atten, &adc1_cali_handle);
 
 		if (xSemaphoreTake(xSemaphoreADC, 10) == pdTRUE) {
@@ -153,10 +151,8 @@
 		    	adc_state->Pressure[i].voltage = 0;
 		    } else {
 		    	adc_reading /= NO_OF_SAMPLES;
-			adc_cali_raw_to_voltage(adc1_cali_handle, adc_reading, &voltage);
+			adc_cali_raw_to_voltage(adc1_cali_handle, adc_reading, &voltage);	// voltage in mV
 			adc_state->Pressure[i].voltage = voltage;
-		    	//adc_state->Pressure[i].voltage = esp_adc_cal_raw_to_voltage(adc_reading, adc_chars); // voltage in mV
-//			ESP_LOGI(TAG, "Voltage %d %d", i, voltage);
 			adc_state->Pressure[i].error = ADC_ERR_NONE;
 		    }
 		    xSemaphoreGive(xSemaphoreADC);
@@ -167,9 +163,9 @@
                     i, adc_reading, atten, (adc_state->Pressure[i].voltage / 1000.0), adc_state->Pressure[i].error);
 
 		//Tear Down
-		ESP_ERROR_CHECK(adc_oneshot_del_unit(adc1_handle));
+		adc_oneshot_del_unit(adc1_handle);
 		if (do_calibration) {
-		    adc_calibration_deinit(adc1_cali_handle);
+		    adc_cali_delete_scheme_line_fitting(adc1_cali_handle);
 		}
 		do_calibration = false;
 	    }
@@ -179,7 +175,6 @@
 	     */
 	    adc_reading = 0;
 	    atten = ADC_ATTEN_DB_6; // Don't use DB_11, it has a bad linearity.
-	    adc1_cali_handle = NULL;
 	    channel = (adc_unit_t)BATT_CHANNEL;
 	    ESP_ERROR_CHECK(adc_oneshot_new_unit(&init_config1, &adc1_handle));
 	    do_calibration = adc_calibration_init(ADC_UNIT_1, atten, &adc1_cali_handle);
@@ -214,9 +209,9 @@
 		ESP_LOGE(TAG, "Missed lock 2");
 	    }
 
-	    ESP_ERROR_CHECK(adc_oneshot_del_unit(adc1_handle));
+	    adc_oneshot_del_unit(adc1_handle);
 	    if (do_calibration) {
-                adc_calibration_deinit(adc1_cali_handle);
+		adc_cali_delete_scheme_line_fitting(adc1_cali_handle);
             }
 	    do_calibration = false;
 
@@ -236,19 +231,16 @@
 static bool adc_calibration_init(adc_unit_t unit, adc_atten_t atten, adc_cali_handle_t *out_handle)
 {
     adc_cali_handle_t handle = NULL;
-    esp_err_t ret = ESP_FAIL;
     bool calibrated = false;
 
-    if (!calibrated) {
-        adc_cali_line_fitting_config_t cali_config = {
-            .unit_id = unit,
-            .atten = atten,
-            .bitwidth = ADC_BITWIDTH_DEFAULT,
-        };
-        ret = adc_cali_create_scheme_line_fitting(&cali_config, &handle);
-        if (ret == ESP_OK) {
-            calibrated = true;
-        }
+    adc_cali_line_fitting_config_t cali_config = {
+	.unit_id = unit,
+	.atten = atten,
+	.bitwidth = ADC_BITWIDTH_DEFAULT,
+    };
+    esp_err_t ret = adc_cali_create_scheme_line_fitting(&cali_config, &handle);
+    if (ret == ESP_OK) {
+	calibrated = true;
     }
 
     *out_handle = handle;
@@ -261,9 +253,3 @@
     return calibrated;
 }
 
-
-static void adc_calibration_deinit(adc_cali_handle_t handle)
-{
-    ESP_ERROR_CHECK(adc_cali_delete_scheme_line_fitting(handle));
-}
-

mercurial