From b93a6536843925a7a0a664972e9fc78f13762585 Mon Sep 17 00:00:00 2001 From: Emilio Corigliano <emilio.corigliano@skywarder.eu> Date: Sat, 4 Mar 2023 15:45:55 +0100 Subject: [PATCH] [GPIO] Add missing GPIO modes --- .../common/interfaces-impl/gpio_impl.h | 24 ++++++++++++------- .../common/interfaces-impl/gpio_impl.h | 24 ++++++++++++------- .../common/interfaces-impl/gpio_impl.h | 24 ++++++++++++------- .../common/interfaces-impl/gpio_impl.h | 24 ++++++++++++------- .../common/interfaces-impl/gpio_impl.h | 24 ++++++++++++------- .../common/interfaces-impl/gpio_impl.h | 24 ++++++++++++------- .../common/interfaces-impl/gpio_impl.h | 24 ++++++++++++------- .../common/interfaces-impl/gpio_impl.h | 24 ++++++++++++------- 8 files changed, 128 insertions(+), 64 deletions(-) diff --git a/miosix/arch/cortexM0_stm32f0/common/interfaces-impl/gpio_impl.h b/miosix/arch/cortexM0_stm32f0/common/interfaces-impl/gpio_impl.h index 4b0d495d..0fb39e18 100644 --- a/miosix/arch/cortexM0_stm32f0/common/interfaces-impl/gpio_impl.h +++ b/miosix/arch/cortexM0_stm32f0/common/interfaces-impl/gpio_impl.h @@ -57,14 +57,22 @@ public: */ enum Mode_ { - INPUT = 0, ///Floating Input (MODE=00 TYPE=0 PUP=00) - INPUT_PULL_UP = 1, ///Pullup Input (MODE=00 TYPE=0 PUP=01) - INPUT_PULL_DOWN = 2, ///Pulldown Input (MODE=00 TYPE=0 PUP=10) - INPUT_ANALOG = 24, ///Analog Input (MODE=11 TYPE=0 PUP=00) - OUTPUT = 8, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) - OPEN_DRAIN = 12, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) - ALTERNATE = 16, ///Alternate function (MODE=10 TYPE=0 PUP=00) - ALTERNATE_OD = 20, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + INPUT_ANALOG = 0b11000, ///Input Analog (MODE=11 TYPE=0 PUP=00) + INPUT = 0b00000, ///Input Floating (MODE=00 TYPE=0 PUP=00) + INPUT_PULL_UP = 0b00001, ///Input PullUp (MODE=00 TYPE=0 PUP=01) + INPUT_PULL_DOWN = 0b00010, ///Input PullDown (MODE=00 TYPE=0 PUP=10) + OUTPUT = 0b01000, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) + OUTPUT_PULL_UP = 0b01001, ///Push Pull Output PU (MODE=01 TYPE=0 PUP=01) + OUTPUT_PULL_DOWN = 0b01010, ///Push Pull Output PD (MODE=01 TYPE=0 PUP=10) + OPEN_DRAIN = 0b01100, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) + OPEN_DRAIN_PULL_UP = 0b01101, ///Open Drain Output PU (MODE=01 TYPE=1 PUP=01) + OPEN_DRAIN_PULL_DOWN = 0b01110, ///Open Drain Output PD (MODE=01 TYPE=1 PUP=10) + ALTERNATE = 0b10000, ///Alternate function (MODE=10 TYPE=0 PUP=00) + ALTERNATE_PULL_UP = 0b10001, ///Alternate function PU (MODE=10 TYPE=0 PUP=01) + ALTERNATE_PULL_DOWN = 0b10010, ///Alternate function PD (MODE=10 TYPE=0 PUP=10) + ALTERNATE_OD = 0b10100, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + ALTERNATE_OD_PULL_UP = 0b10101, ///Alternate Open Drain PU (MODE=10 TYPE=1 PUP=01) + ALTERNATE_OD_PULL_DOWN = 0b10110, ///Alternate Open Drain PD (MODE=10 TYPE=1 PUP=10) }; private: Mode(); //Just a wrapper class, disallow creating instances diff --git a/miosix/arch/cortexM3_stm32f2/common/interfaces-impl/gpio_impl.h b/miosix/arch/cortexM3_stm32f2/common/interfaces-impl/gpio_impl.h index 50181a0e..38f55cd8 100644 --- a/miosix/arch/cortexM3_stm32f2/common/interfaces-impl/gpio_impl.h +++ b/miosix/arch/cortexM3_stm32f2/common/interfaces-impl/gpio_impl.h @@ -57,14 +57,22 @@ public: */ enum Mode_ { - INPUT = 0, ///Floating Input (MODE=00 TYPE=0 PUP=00) - INPUT_PULL_UP = 1, ///Pullup Input (MODE=00 TYPE=0 PUP=01) - INPUT_PULL_DOWN = 2, ///Pulldown Input (MODE=00 TYPE=0 PUP=10) - INPUT_ANALOG = 24, ///Analog Input (MODE=11 TYPE=0 PUP=00) - OUTPUT = 8, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) - OPEN_DRAIN = 12, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) - ALTERNATE = 16, ///Alternate function (MODE=10 TYPE=0 PUP=00) - ALTERNATE_OD = 20, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + INPUT_ANALOG = 0b11000, ///Input Analog (MODE=11 TYPE=0 PUP=00) + INPUT = 0b00000, ///Input Floating (MODE=00 TYPE=0 PUP=00) + INPUT_PULL_UP = 0b00001, ///Input PullUp (MODE=00 TYPE=0 PUP=01) + INPUT_PULL_DOWN = 0b00010, ///Input PullDown (MODE=00 TYPE=0 PUP=10) + OUTPUT = 0b01000, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) + OUTPUT_PULL_UP = 0b01001, ///Push Pull Output PU (MODE=01 TYPE=0 PUP=01) + OUTPUT_PULL_DOWN = 0b01010, ///Push Pull Output PD (MODE=01 TYPE=0 PUP=10) + OPEN_DRAIN = 0b01100, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) + OPEN_DRAIN_PULL_UP = 0b01101, ///Open Drain Output PU (MODE=01 TYPE=1 PUP=01) + OPEN_DRAIN_PULL_DOWN = 0b01110, ///Open Drain Output PD (MODE=01 TYPE=1 PUP=10) + ALTERNATE = 0b10000, ///Alternate function (MODE=10 TYPE=0 PUP=00) + ALTERNATE_PULL_UP = 0b10001, ///Alternate function PU (MODE=10 TYPE=0 PUP=01) + ALTERNATE_PULL_DOWN = 0b10010, ///Alternate function PD (MODE=10 TYPE=0 PUP=10) + ALTERNATE_OD = 0b10100, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + ALTERNATE_OD_PULL_UP = 0b10101, ///Alternate Open Drain PU (MODE=10 TYPE=1 PUP=01) + ALTERNATE_OD_PULL_DOWN = 0b10110, ///Alternate Open Drain PD (MODE=10 TYPE=1 PUP=10) }; private: Mode(); //Just a wrapper class, disallow creating instances diff --git a/miosix/arch/cortexM3_stm32l1/common/interfaces-impl/gpio_impl.h b/miosix/arch/cortexM3_stm32l1/common/interfaces-impl/gpio_impl.h index 9ddd3053..e527f3ce 100644 --- a/miosix/arch/cortexM3_stm32l1/common/interfaces-impl/gpio_impl.h +++ b/miosix/arch/cortexM3_stm32l1/common/interfaces-impl/gpio_impl.h @@ -57,14 +57,22 @@ public: */ enum Mode_ { - INPUT = 0, ///Floating Input (MODE=00 TYPE=0 PUP=00) - INPUT_PULL_UP = 1, ///Pullup Input (MODE=00 TYPE=0 PUP=01) - INPUT_PULL_DOWN = 2, ///Pulldown Input (MODE=00 TYPE=0 PUP=10) - INPUT_ANALOG = 24, ///Analog Input (MODE=11 TYPE=0 PUP=00) - OUTPUT = 8, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) - OPEN_DRAIN = 12, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) - ALTERNATE = 16, ///Alternate function (MODE=10 TYPE=0 PUP=00) - ALTERNATE_OD = 20, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + INPUT_ANALOG = 0b11000, ///Input Analog (MODE=11 TYPE=0 PUP=00) + INPUT = 0b00000, ///Input Floating (MODE=00 TYPE=0 PUP=00) + INPUT_PULL_UP = 0b00001, ///Input PullUp (MODE=00 TYPE=0 PUP=01) + INPUT_PULL_DOWN = 0b00010, ///Input PullDown (MODE=00 TYPE=0 PUP=10) + OUTPUT = 0b01000, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) + OUTPUT_PULL_UP = 0b01001, ///Push Pull Output PU (MODE=01 TYPE=0 PUP=01) + OUTPUT_PULL_DOWN = 0b01010, ///Push Pull Output PD (MODE=01 TYPE=0 PUP=10) + OPEN_DRAIN = 0b01100, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) + OPEN_DRAIN_PULL_UP = 0b01101, ///Open Drain Output PU (MODE=01 TYPE=1 PUP=01) + OPEN_DRAIN_PULL_DOWN = 0b01110, ///Open Drain Output PD (MODE=01 TYPE=1 PUP=10) + ALTERNATE = 0b10000, ///Alternate function (MODE=10 TYPE=0 PUP=00) + ALTERNATE_PULL_UP = 0b10001, ///Alternate function PU (MODE=10 TYPE=0 PUP=01) + ALTERNATE_PULL_DOWN = 0b10010, ///Alternate function PD (MODE=10 TYPE=0 PUP=10) + ALTERNATE_OD = 0b10100, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + ALTERNATE_OD_PULL_UP = 0b10101, ///Alternate Open Drain PU (MODE=10 TYPE=1 PUP=01) + ALTERNATE_OD_PULL_DOWN = 0b10110, ///Alternate Open Drain PD (MODE=10 TYPE=1 PUP=10) }; private: Mode(); //Just a wrapper class, disallow creating instances diff --git a/miosix/arch/cortexM4_stm32f3/common/interfaces-impl/gpio_impl.h b/miosix/arch/cortexM4_stm32f3/common/interfaces-impl/gpio_impl.h index f81ea159..5273fdcf 100644 --- a/miosix/arch/cortexM4_stm32f3/common/interfaces-impl/gpio_impl.h +++ b/miosix/arch/cortexM4_stm32f3/common/interfaces-impl/gpio_impl.h @@ -57,14 +57,22 @@ public: */ enum Mode_ { - INPUT = 0, ///Floating Input (MODE=00 TYPE=0 PUP=00) - INPUT_PULL_UP = 1, ///Pullup Input (MODE=00 TYPE=0 PUP=01) - INPUT_PULL_DOWN = 2, ///Pulldown Input (MODE=00 TYPE=0 PUP=10) - INPUT_ANALOG = 24, ///Analog Input (MODE=11 TYPE=0 PUP=00) - OUTPUT = 8, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) - OPEN_DRAIN = 12, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) - ALTERNATE = 16, ///Alternate function (MODE=10 TYPE=0 PUP=00) - ALTERNATE_OD = 20, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + INPUT_ANALOG = 0b11000, ///Input Analog (MODE=11 TYPE=0 PUP=00) + INPUT = 0b00000, ///Input Floating (MODE=00 TYPE=0 PUP=00) + INPUT_PULL_UP = 0b00001, ///Input PullUp (MODE=00 TYPE=0 PUP=01) + INPUT_PULL_DOWN = 0b00010, ///Input PullDown (MODE=00 TYPE=0 PUP=10) + OUTPUT = 0b01000, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) + OUTPUT_PULL_UP = 0b01001, ///Push Pull Output PU (MODE=01 TYPE=0 PUP=01) + OUTPUT_PULL_DOWN = 0b01010, ///Push Pull Output PD (MODE=01 TYPE=0 PUP=10) + OPEN_DRAIN = 0b01100, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) + OPEN_DRAIN_PULL_UP = 0b01101, ///Open Drain Output PU (MODE=01 TYPE=1 PUP=01) + OPEN_DRAIN_PULL_DOWN = 0b01110, ///Open Drain Output PD (MODE=01 TYPE=1 PUP=10) + ALTERNATE = 0b10000, ///Alternate function (MODE=10 TYPE=0 PUP=00) + ALTERNATE_PULL_UP = 0b10001, ///Alternate function PU (MODE=10 TYPE=0 PUP=01) + ALTERNATE_PULL_DOWN = 0b10010, ///Alternate function PD (MODE=10 TYPE=0 PUP=10) + ALTERNATE_OD = 0b10100, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + ALTERNATE_OD_PULL_UP = 0b10101, ///Alternate Open Drain PU (MODE=10 TYPE=1 PUP=01) + ALTERNATE_OD_PULL_DOWN = 0b10110, ///Alternate Open Drain PD (MODE=10 TYPE=1 PUP=10) }; private: Mode(); //Just a wrapper class, disallow creating instances diff --git a/miosix/arch/cortexM4_stm32f4/common/interfaces-impl/gpio_impl.h b/miosix/arch/cortexM4_stm32f4/common/interfaces-impl/gpio_impl.h index d730d44d..ec794137 100644 --- a/miosix/arch/cortexM4_stm32f4/common/interfaces-impl/gpio_impl.h +++ b/miosix/arch/cortexM4_stm32f4/common/interfaces-impl/gpio_impl.h @@ -57,14 +57,22 @@ public: */ enum Mode_ { - INPUT = 0, ///Floating Input (MODE=00 TYPE=0 PUP=00) - INPUT_PULL_UP = 1, ///Pullup Input (MODE=00 TYPE=0 PUP=01) - INPUT_PULL_DOWN = 2, ///Pulldown Input (MODE=00 TYPE=0 PUP=10) - INPUT_ANALOG = 24, ///Analog Input (MODE=11 TYPE=0 PUP=00) - OUTPUT = 8, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) - OPEN_DRAIN = 12, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) - ALTERNATE = 16, ///Alternate function (MODE=10 TYPE=0 PUP=00) - ALTERNATE_OD = 20, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + INPUT_ANALOG = 0b11000, ///Input Analog (MODE=11 TYPE=0 PUP=00) + INPUT = 0b00000, ///Input Floating (MODE=00 TYPE=0 PUP=00) + INPUT_PULL_UP = 0b00001, ///Input PullUp (MODE=00 TYPE=0 PUP=01) + INPUT_PULL_DOWN = 0b00010, ///Input PullDown (MODE=00 TYPE=0 PUP=10) + OUTPUT = 0b01000, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) + OUTPUT_PULL_UP = 0b01001, ///Push Pull Output PU (MODE=01 TYPE=0 PUP=01) + OUTPUT_PULL_DOWN = 0b01010, ///Push Pull Output PD (MODE=01 TYPE=0 PUP=10) + OPEN_DRAIN = 0b01100, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) + OPEN_DRAIN_PULL_UP = 0b01101, ///Open Drain Output PU (MODE=01 TYPE=1 PUP=01) + OPEN_DRAIN_PULL_DOWN = 0b01110, ///Open Drain Output PD (MODE=01 TYPE=1 PUP=10) + ALTERNATE = 0b10000, ///Alternate function (MODE=10 TYPE=0 PUP=00) + ALTERNATE_PULL_UP = 0b10001, ///Alternate function PU (MODE=10 TYPE=0 PUP=01) + ALTERNATE_PULL_DOWN = 0b10010, ///Alternate function PD (MODE=10 TYPE=0 PUP=10) + ALTERNATE_OD = 0b10100, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + ALTERNATE_OD_PULL_UP = 0b10101, ///Alternate Open Drain PU (MODE=10 TYPE=1 PUP=01) + ALTERNATE_OD_PULL_DOWN = 0b10110, ///Alternate Open Drain PD (MODE=10 TYPE=1 PUP=10) }; private: Mode(); //Just a wrapper class, disallow creating instances diff --git a/miosix/arch/cortexM4_stm32l4/common/interfaces-impl/gpio_impl.h b/miosix/arch/cortexM4_stm32l4/common/interfaces-impl/gpio_impl.h index 4b588abb..07de1756 100644 --- a/miosix/arch/cortexM4_stm32l4/common/interfaces-impl/gpio_impl.h +++ b/miosix/arch/cortexM4_stm32l4/common/interfaces-impl/gpio_impl.h @@ -57,14 +57,22 @@ public: */ enum Mode_ { - INPUT = 0, ///Floating Input (MODE=00 TYPE=0 PUP=00) - INPUT_PULL_UP = 1, ///Pullup Input (MODE=00 TYPE=0 PUP=01) - INPUT_PULL_DOWN = 2, ///Pulldown Input (MODE=00 TYPE=0 PUP=10) - INPUT_ANALOG = 24, ///Analog Input (MODE=11 TYPE=0 PUP=00) - OUTPUT = 8, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) - OPEN_DRAIN = 12, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) - ALTERNATE = 16, ///Alternate function (MODE=10 TYPE=0 PUP=00) - ALTERNATE_OD = 20, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + INPUT_ANALOG = 0b11000, ///Input Analog (MODE=11 TYPE=0 PUP=00) + INPUT = 0b00000, ///Input Floating (MODE=00 TYPE=0 PUP=00) + INPUT_PULL_UP = 0b00001, ///Input PullUp (MODE=00 TYPE=0 PUP=01) + INPUT_PULL_DOWN = 0b00010, ///Input PullDown (MODE=00 TYPE=0 PUP=10) + OUTPUT = 0b01000, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) + OUTPUT_PULL_UP = 0b01001, ///Push Pull Output PU (MODE=01 TYPE=0 PUP=01) + OUTPUT_PULL_DOWN = 0b01010, ///Push Pull Output PD (MODE=01 TYPE=0 PUP=10) + OPEN_DRAIN = 0b01100, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) + OPEN_DRAIN_PULL_UP = 0b01101, ///Open Drain Output PU (MODE=01 TYPE=1 PUP=01) + OPEN_DRAIN_PULL_DOWN = 0b01110, ///Open Drain Output PD (MODE=01 TYPE=1 PUP=10) + ALTERNATE = 0b10000, ///Alternate function (MODE=10 TYPE=0 PUP=00) + ALTERNATE_PULL_UP = 0b10001, ///Alternate function PU (MODE=10 TYPE=0 PUP=01) + ALTERNATE_PULL_DOWN = 0b10010, ///Alternate function PD (MODE=10 TYPE=0 PUP=10) + ALTERNATE_OD = 0b10100, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + ALTERNATE_OD_PULL_UP = 0b10101, ///Alternate Open Drain PU (MODE=10 TYPE=1 PUP=01) + ALTERNATE_OD_PULL_DOWN = 0b10110, ///Alternate Open Drain PD (MODE=10 TYPE=1 PUP=10) }; private: Mode(); //Just a wrapper class, disallow creating instances diff --git a/miosix/arch/cortexM7_stm32f7/common/interfaces-impl/gpio_impl.h b/miosix/arch/cortexM7_stm32f7/common/interfaces-impl/gpio_impl.h index 1c3293f4..c0bea786 100644 --- a/miosix/arch/cortexM7_stm32f7/common/interfaces-impl/gpio_impl.h +++ b/miosix/arch/cortexM7_stm32f7/common/interfaces-impl/gpio_impl.h @@ -57,14 +57,22 @@ public: */ enum Mode_ { - INPUT = 0, ///Floating Input (MODE=00 TYPE=0 PUP=00) - INPUT_PULL_UP = 1, ///Pullup Input (MODE=00 TYPE=0 PUP=01) - INPUT_PULL_DOWN = 2, ///Pulldown Input (MODE=00 TYPE=0 PUP=10) - INPUT_ANALOG = 24, ///Analog Input (MODE=11 TYPE=0 PUP=00) - OUTPUT = 8, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) - OPEN_DRAIN = 12, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) - ALTERNATE = 16, ///Alternate function (MODE=10 TYPE=0 PUP=00) - ALTERNATE_OD = 20, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + INPUT_ANALOG = 0b11000, ///Input Analog (MODE=11 TYPE=0 PUP=00) + INPUT = 0b00000, ///Input Floating (MODE=00 TYPE=0 PUP=00) + INPUT_PULL_UP = 0b00001, ///Input PullUp (MODE=00 TYPE=0 PUP=01) + INPUT_PULL_DOWN = 0b00010, ///Input PullDown (MODE=00 TYPE=0 PUP=10) + OUTPUT = 0b01000, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) + OUTPUT_PULL_UP = 0b01001, ///Push Pull Output PU (MODE=01 TYPE=0 PUP=01) + OUTPUT_PULL_DOWN = 0b01010, ///Push Pull Output PD (MODE=01 TYPE=0 PUP=10) + OPEN_DRAIN = 0b01100, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) + OPEN_DRAIN_PULL_UP = 0b01101, ///Open Drain Output PU (MODE=01 TYPE=1 PUP=01) + OPEN_DRAIN_PULL_DOWN = 0b01110, ///Open Drain Output PD (MODE=01 TYPE=1 PUP=10) + ALTERNATE = 0b10000, ///Alternate function (MODE=10 TYPE=0 PUP=00) + ALTERNATE_PULL_UP = 0b10001, ///Alternate function PU (MODE=10 TYPE=0 PUP=01) + ALTERNATE_PULL_DOWN = 0b10010, ///Alternate function PD (MODE=10 TYPE=0 PUP=10) + ALTERNATE_OD = 0b10100, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + ALTERNATE_OD_PULL_UP = 0b10101, ///Alternate Open Drain PU (MODE=10 TYPE=1 PUP=01) + ALTERNATE_OD_PULL_DOWN = 0b10110, ///Alternate Open Drain PD (MODE=10 TYPE=1 PUP=10) }; private: Mode(); //Just a wrapper class, disallow creating instances diff --git a/miosix/arch/cortexM7_stm32h7/common/interfaces-impl/gpio_impl.h b/miosix/arch/cortexM7_stm32h7/common/interfaces-impl/gpio_impl.h index 951b7f15..04ec6d3c 100644 --- a/miosix/arch/cortexM7_stm32h7/common/interfaces-impl/gpio_impl.h +++ b/miosix/arch/cortexM7_stm32h7/common/interfaces-impl/gpio_impl.h @@ -57,14 +57,22 @@ public: */ enum Mode_ { - INPUT = 0, ///Floating Input (MODE=00 TYPE=0 PUP=00) - INPUT_PULL_UP = 1, ///Pullup Input (MODE=00 TYPE=0 PUP=01) - INPUT_PULL_DOWN = 2, ///Pulldown Input (MODE=00 TYPE=0 PUP=10) - INPUT_ANALOG = 24, ///Analog Input (MODE=11 TYPE=0 PUP=00) - OUTPUT = 8, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) - OPEN_DRAIN = 12, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) - ALTERNATE = 16, ///Alternate function (MODE=10 TYPE=0 PUP=00) - ALTERNATE_OD = 20, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + INPUT_ANALOG = 0b11000, ///Input Analog (MODE=11 TYPE=0 PUP=00) + INPUT = 0b00000, ///Input Floating (MODE=00 TYPE=0 PUP=00) + INPUT_PULL_UP = 0b00001, ///Input PullUp (MODE=00 TYPE=0 PUP=01) + INPUT_PULL_DOWN = 0b00010, ///Input PullDown (MODE=00 TYPE=0 PUP=10) + OUTPUT = 0b01000, ///Push Pull Output (MODE=01 TYPE=0 PUP=00) + OUTPUT_PULL_UP = 0b01001, ///Push Pull Output PU (MODE=01 TYPE=0 PUP=01) + OUTPUT_PULL_DOWN = 0b01010, ///Push Pull Output PD (MODE=01 TYPE=0 PUP=10) + OPEN_DRAIN = 0b01100, ///Open Drain Output (MODE=01 TYPE=1 PUP=00) + OPEN_DRAIN_PULL_UP = 0b01101, ///Open Drain Output PU (MODE=01 TYPE=1 PUP=01) + OPEN_DRAIN_PULL_DOWN = 0b01110, ///Open Drain Output PD (MODE=01 TYPE=1 PUP=10) + ALTERNATE = 0b10000, ///Alternate function (MODE=10 TYPE=0 PUP=00) + ALTERNATE_PULL_UP = 0b10001, ///Alternate function PU (MODE=10 TYPE=0 PUP=01) + ALTERNATE_PULL_DOWN = 0b10010, ///Alternate function PD (MODE=10 TYPE=0 PUP=10) + ALTERNATE_OD = 0b10100, ///Alternate Open Drain (MODE=10 TYPE=1 PUP=00) + ALTERNATE_OD_PULL_UP = 0b10101, ///Alternate Open Drain PU (MODE=10 TYPE=1 PUP=01) + ALTERNATE_OD_PULL_DOWN = 0b10110, ///Alternate Open Drain PD (MODE=10 TYPE=1 PUP=10) }; private: Mode(); //Just a wrapper class, disallow creating instances -- GitLab