modm API documentation
|
#include <modm/platform/gpio/software_port.hpp>
Public Typedefs | |
using | PortType = std::conditional_t< (width > 8), std::conditional_t< (width > 16), uint32_t, uint16_t >, uint8_t > |
using | PortType = uint16_t |
may also be uint8_t, depending on port width | |
Public Types | |
enum | DataOrder : bool { DataOrder::Normal = false, DataOrder::Reversed = true } |
This enum can be used to reverse the bit order of the Data. More... | |
enum | InputType { InputType::Floating = 0x0, InputType::PullUp = 0x1, InputType::PullDown = 0x2 } |
enum | OutputSpeed { Low = 0, Medium = 0x1, High = 0x2, OutputSpeed::VeryHigh = 0x3, MHz2 = Low, MHz25 = Medium, MHz50 = High, MHz100 = VeryHigh } |
enum | OutputType { OutputType::PushPull = 0x0, OutputType::OpenDrain = 0x1 } |
enum | Port { A = 0, B = 1, C = 2, D = 3, E = 4, F = 5, G = 6, H = 7, I = 8, J = 9, K = 10 } |
The Port a Gpio Pin is connected to. | |
Static Public Member Functions | |
static constexpr DataOrder | getDataOrder () |
static PortType | isSet () |
static void | write (PortType data) |
static PortType | read () |
static constexpr DataOrder | getDataOrder () |
returns the chosen data order | |
static PortType | read () |
The read data is always right-aligned regardless of physical mapping. | |
static void | setInput () |
static void | setOutput () |
static void | toggle () |
Toggle the output states of all pins. | |
static void | write (PortType data) |
The write data is always right-aligned regardless of physical mapping. | |
static void | configure (OutputType type, OutputSpeed speed=OutputSpeed::MHz50) |
static void | configure (InputType type) |
static void | disconnect () |
static void | lock () |
static void | reset () |
static void | set () |
static void | set (bool status) |
static void | setAnalogInput () |
static void | setInput () |
static void | setInput (InputType type) |
static void | setOutput () |
static void | setOutput (bool status) |
static void | setOutput (OutputType type, OutputSpeed speed=OutputSpeed::MHz50) |
static void | toggle () |
Static Public Attributes | |
static constexpr uint8_t | number_of_ports |
static constexpr uint8_t | width |
static constexpr uint8_t | number_of_ports |
static constexpr uint8_t | width |
Static Protected Attributes | |
static constexpr int8_t | shift_masks [11][width] |
static constexpr uint16_t | inverteds [11] |
static constexpr uint16_t | masks [11] |
Create an up to 32-bit port from arbitrary pins.
This class optimizes the data type for the read()
and write()
methods. Supplying up to 8 Gpios will use uint8_t
, up to 16 Gpios uint16_t
and up to 32 Gpios uint32_t
.
DataOrder::Normal
. If you need reverse bit order, reverse the order of Gpios
!Gpios | Up to 32 GpioIO classes, ordered MSB to LSB |
|
inheritedstrong |
This enum can be used to reverse the bit order of the Data.
Enum Values | Documentation |
---|---|
Normal | bit order of data is the same as bit order of port |
Reversed | bit order of data is the reverse bit order of port |
|
inheritedstrong |
|
inheritedstrong |
|
inheritedstrong |
|
inheritedstaticconstexpr |
This holds the number of unique platform ports that this implementation accesses. It's always at least 1.
|
staticprotectedconstexpr |
|
inheritedstaticconstexpr |
This holds the width of the port as number of bits and can be used in drivers to assert the correct requirements