From 0e78c0e41da6d3632cbfbc9eae96b94353b63bbd Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Tue, 11 Jan 2022 18:40:47 +0100 Subject: [PATCH] Berry fix DAC support --- tasmota/xdrv_52_3_berry_gpio.ino | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tasmota/xdrv_52_3_berry_gpio.ino b/tasmota/xdrv_52_3_berry_gpio.ino index 63f29c258..ae81006f8 100644 --- a/tasmota/xdrv_52_3_berry_gpio.ino +++ b/tasmota/xdrv_52_3_berry_gpio.ino @@ -62,8 +62,8 @@ extern "C" { // DAC #if defined(CONFIG_IDF_TARGET_ESP32) if (25 == pin || 26 == pin) { - uint32_t channel = pin - 25 + 1; // 1 or 2 - esp_err_t err = dac_output_enable((dac_channel_t) channel); + dac_channel_t channel = (25 == pin) ? DAC_CHANNEL_1 : DAC_CHANNEL_2; + esp_err_t err = dac_output_enable(channel); if (err) { be_raisef(vm, "value_error", "Error: dac_output_enable(%i) -> %i", channel, err); } @@ -72,8 +72,8 @@ extern "C" { } #elif defined(CONFIG_IDF_TARGET_ESP32S2) if (17 == pin || 18 == pin) { - uint32_t channel = pin - 17 + 1; // 1 or 2 - esp_err_t err = dac_output_enable((dac_channel_t) channel); + dac_channel_t channel = (17 == pin) ? DAC_CHANNEL_1 : DAC_CHANNEL_2; + esp_err_t err = dac_output_enable(channel); if (err) { be_raisef(vm, "value_error", "Error: dac_output_enable(%i) -> %i", channel, err); } @@ -133,8 +133,8 @@ extern "C" { uint32_t dac_value = changeUIntScale(mV, 0, 3300, 0, 255); // convert from 0..3300 ms to 0..255 #if defined(CONFIG_IDF_TARGET_ESP32) if (25 == pin || 26 == pin) { - uint32_t channel = pin - 25 + 1; // 1 or 2 - esp_err_t err = dac_output_voltage((dac_channel_t) channel, dac_value); + dac_channel_t channel = (25 == pin) ? DAC_CHANNEL_1 : DAC_CHANNEL_2; + esp_err_t err = dac_output_voltage(channel, dac_value); if (err) { be_raisef(vm, "internal_error", "Error: esp_err_tdac_output_voltage(%i, %i) -> %i", channel, dac_value, err); } @@ -143,8 +143,8 @@ extern "C" { } #elif defined(CONFIG_IDF_TARGET_ESP32S2) if (17 == pin || 18 == pin) { - uint32_t channel = pin - 17 + 1; // 1 or 2 - esp_err_t err = dac_output_voltage((dac_channel_t) channel, dac_value); + dac_channel_t channel = (17 == pin) ? DAC_CHANNEL_1 : DAC_CHANNEL_2; + esp_err_t err = dac_output_voltage(channel, dac_value); if (err) { be_raisef(vm, "internal_error", "Error: esp_err_tdac_output_voltage(%i, %i) -> %i", channel, dac_value, err); }