mirror of
https://github.com/espressif/arduino-esp32
synced 2024-09-21 10:28:04 +00:00
Fix ADC detach bus calibration handle error when not existing. (#8932)
* Add check if adc calibration habdle exists before deleting * check also on adc continous detach
This commit is contained in:
parent
57e8e50e1a
commit
b01775ed17
@ -69,17 +69,19 @@ static bool adcDetachBus(void * pin){
|
||||
return false;
|
||||
}
|
||||
adc_handle[adc_unit].adc_oneshot_handle = NULL;
|
||||
if(adc_handle[adc_unit].adc_cali_handle != NULL){
|
||||
#if ADC_CALI_SCHEME_CURVE_FITTING_SUPPORTED
|
||||
err = adc_cali_delete_scheme_curve_fitting(adc_handle[adc_unit].adc_cali_handle);
|
||||
if(err != ESP_OK){
|
||||
return false;
|
||||
}
|
||||
err = adc_cali_delete_scheme_curve_fitting(adc_handle[adc_unit].adc_cali_handle);
|
||||
if(err != ESP_OK){
|
||||
return false;
|
||||
}
|
||||
#elif !defined(CONFIG_IDF_TARGET_ESP32H2)
|
||||
err = adc_cali_delete_scheme_line_fitting(adc_handle[adc_unit].adc_cali_handle);
|
||||
if(err != ESP_OK){
|
||||
return false;
|
||||
}
|
||||
err = adc_cali_delete_scheme_line_fitting(adc_handle[adc_unit].adc_cali_handle);
|
||||
if(err != ESP_OK){
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
adc_handle[adc_unit].adc_cali_handle = NULL;
|
||||
}
|
||||
return true;
|
||||
@ -220,6 +222,7 @@ esp_err_t __analogInit(uint8_t pin, adc_channel_t channel, adc_unit_t adc_unit){
|
||||
return err;
|
||||
}
|
||||
}
|
||||
perimanSetBusDeinit(ESP32_BUS_TYPE_ADC_ONESHOT, adcDetachBus);
|
||||
|
||||
if(!perimanSetPinBus(pin, ESP32_BUS_TYPE_ADC_ONESHOT, (void *)(pin+1), adc_unit, channel)){
|
||||
adcDetachBus((void *)(pin+1));
|
||||
@ -236,7 +239,6 @@ esp_err_t __analogInit(uint8_t pin, adc_channel_t channel, adc_unit_t adc_unit){
|
||||
log_e("adc_oneshot_config_channel failed with error: %d", err);
|
||||
return err;
|
||||
}
|
||||
perimanSetBusDeinit(ESP32_BUS_TYPE_ADC_ONESHOT, adcDetachBus);
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
@ -377,18 +379,19 @@ static bool adcContinuousDetachBus(void * adc_unit_number){
|
||||
return false;
|
||||
}
|
||||
adc_handle[adc_unit].adc_continuous_handle = NULL;
|
||||
|
||||
#if ADC_CALI_SCHEME_CURVE_FITTING_SUPPORTED
|
||||
err = adc_cali_delete_scheme_curve_fitting(adc_handle[adc_unit].adc_cali_handle);
|
||||
if(err != ESP_OK){
|
||||
return false;
|
||||
}
|
||||
if(adc_handle[adc_unit].adc_cali_handle != NULL){
|
||||
#if ADC_CALI_SCHEME_CURVE_FITTING_SUPPORTED
|
||||
err = adc_cali_delete_scheme_curve_fitting(adc_handle[adc_unit].adc_cali_handle);
|
||||
if(err != ESP_OK){
|
||||
return false;
|
||||
}
|
||||
#elif !defined(CONFIG_IDF_TARGET_ESP32H2)
|
||||
err = adc_cali_delete_scheme_line_fitting(adc_handle[adc_unit].adc_cali_handle);
|
||||
if(err != ESP_OK){
|
||||
return false;
|
||||
}
|
||||
err = adc_cali_delete_scheme_line_fitting(adc_handle[adc_unit].adc_cali_handle);
|
||||
if(err != ESP_OK){
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
adc_handle[adc_unit].adc_cali_handle = NULL;
|
||||
|
||||
//set all used pins to INIT state
|
||||
|
Loading…
Reference in New Issue
Block a user