# HG changeset patch # User Michiel Broek # Date 1695893363 -7200 # Node ID 0432d914768207b49aa569b65e277c245840c09f # Parent 7425fa11f23efb72ae82a379da251e218dadca22 Some ADC code simplified. diff -r 7425fa11f23e -r 0432d9147682 main/task_adc.c --- 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)); -} -