Skip to content

Commit 5fd7379

Browse files
authored
Fix wrong attenuation being set to pins (#5522)
Fixes: #5503
1 parent 5bb8177 commit 5fd7379

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

cores/esp32/esp32-hal-adc.c

+4-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,9 @@ void __analogSetPinAttenuation(uint8_t pin, adc_attenuation_t attenuation)
104104
adc1_config_channel_atten(channel, attenuation);
105105
}
106106
__analogInit();
107-
__pin_attenuation[pin] = attenuation;
107+
if((__pin_attenuation[pin] != ADC_ATTENDB_MAX) || (attenuation != __analogAttenuation)){
108+
__pin_attenuation[pin] = attenuation;
109+
}
108110
}
109111

110112
bool __adcAttachPin(uint8_t pin){
@@ -113,6 +115,7 @@ bool __adcAttachPin(uint8_t pin){
113115
log_e("Pin %u is not ADC pin!", pin);
114116
return false;
115117
}
118+
__analogInit();
116119
int8_t pad = digitalPinToTouchChannel(pin);
117120
if(pad >= 0){
118121
#if CONFIG_IDF_TARGET_ESP32

0 commit comments

Comments
 (0)