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 4b0d495db07bbc164f57dd35765f95c69d0f86ca..0fb39e18e129ede6dae44c2a27cbc84a17e95d52 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 50181a0e2082994cfa4c278472c83b18cbeec17f..38f55cd8ac6e2cabaf8e4890574d23c9225a2474 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 9ddd3053be6061b18016f8f99180f0425c5dbb83..e527f3ce8e36a67325de617ddf95825356cb0b96 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 f81ea15911d2385f4458df0dae7a506c746073d3..5273fdcf533fceb4e67194749675c46d6ece723c 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 d730d44dca16f7115a2501f2677e795dd96ce5f3..ec794137f039a368eb1c67a9d690411aec0f796d 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 4b588abbf1c41c9db3afff95fcaf683ad78de53e..07de1756d6299b681e91839b1289d689201bf56a 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 1c3293f415e0a36abff4ac9e8f54390f33cf7299..c0bea78644a8dd006ac0d0935fb7a7cb1f4e2228 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 951b7f15a0cfb86bd2f241322c8c9f654d079e9e..04ec6d3c5f1054360a82ae2f3de236f064994721 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