From 6f876d0fc92e25e4df2b38b418a05f4db5f14019 Mon Sep 17 00:00:00 2001 From: zrezke Date: Mon, 10 Jul 2023 13:24:16 +0200 Subject: [PATCH 1/3] Disable GPIO pull when Pin.PULL_NONE --- firmware/source/interfaces/Gpio.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/firmware/source/interfaces/Gpio.cpp b/firmware/source/interfaces/Gpio.cpp index 5d5a997..2d39441 100644 --- a/firmware/source/interfaces/Gpio.cpp +++ b/firmware/source/interfaces/Gpio.cpp @@ -130,6 +130,8 @@ CmdStatus Gpio::initPin(uint8_t const *cmd) { gpio_pull_up(gp); } else if(dir == GPIO_IN && cmd[3] == 2) { gpio_pull_down(gp); + } else { + gpio_disable_pulls(gp); } //a voir gpio_set_outover(gpio, GPIO_OVERRIDE_INVERT); return CmdStatus::OK; From 26c5b5a58ac141fcd0f6c29de775f20fc6896e69 Mon Sep 17 00:00:00 2001 From: zrezke Date: Mon, 10 Jul 2023 13:26:49 +0200 Subject: [PATCH 2/3] Require input pin when disabling gpio pull --- firmware/source/interfaces/Gpio.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/source/interfaces/Gpio.cpp b/firmware/source/interfaces/Gpio.cpp index 2d39441..030d3f5 100644 --- a/firmware/source/interfaces/Gpio.cpp +++ b/firmware/source/interfaces/Gpio.cpp @@ -130,7 +130,7 @@ CmdStatus Gpio::initPin(uint8_t const *cmd) { gpio_pull_up(gp); } else if(dir == GPIO_IN && cmd[3] == 2) { gpio_pull_down(gp); - } else { + } else if (dir == GPIO_IN) { gpio_disable_pulls(gp); } //a voir gpio_set_outover(gpio, GPIO_OVERRIDE_INVERT); From f914b2feeac815085b09cb8dfdcbde677bea07aa Mon Sep 17 00:00:00 2001 From: zrezke Date: Thu, 13 Jul 2023 14:48:27 +0200 Subject: [PATCH 3/3] Fix ADC GPIO range from 26-28 to 26-29 --- firmware/source/interfaces/Adc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/source/interfaces/Adc.cpp b/firmware/source/interfaces/Adc.cpp index 27207ba..1df287d 100644 --- a/firmware/source/interfaces/Adc.cpp +++ b/firmware/source/interfaces/Adc.cpp @@ -32,7 +32,7 @@ CmdStatus Adc::task(uint8_t response[64]) { } int8_t Adc::getAdcIndexFromGpio(uint8_t gpio) { - if(gpio < 26 || gpio > 28) + if(gpio < 26 || gpio > 29) return -1; else return (static_cast(gpio)-26);