|
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 = 0x4,
InputType::PullUp = 0x9,
InputType::PullDown = 0x8
} |
|
enum | OutputSpeed {
Low = 0x2,
Medium = 0x1,
High = 0x3,
MHz2 = Low,
MHz10 = Medium,
MHz50 = High
} |
|
enum | OutputType { OutputType::PushPull = 0x0,
OutputType::OpenDrain = 0x4
} |
|
enum | Port {
A = 0,
B = 1,
C = 2,
D = 3,
E = 4,
F = 5,
G = 6
} |
| The Port a Gpio Pin is connected to.
|
|
|
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 constexpr int8_t | shift_mask (uint8_t id, uint8_t pos) |
|
static constexpr uint32_t | crh (uint8_t id, uint8_t value=0b1111) |
|
static constexpr uint32_t | crl (uint8_t id, uint8_t value=0b1111) |
|
static constexpr uint16_t | inverted (uint8_t id) |
|
static constexpr uint16_t | mask (uint8_t id) |
|
static constexpr uint32_t | mask2 (uint8_t id, uint8_t value=0b11) |
|
static constexpr uint64_t | mask4 (uint8_t id, uint8_t value=0b1111) |
|
static constexpr uint8_t | numberOfPorts () |
|
template<class... Gpios>
class modm::platform::SoftwareGpioPort< Gpios >
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
.
- Note
- Since the bit order is explicitly given by the order of template arguments, this class only supports
DataOrder::Normal
. If you need reverse bit order, reverse the order of Gpios
!
- Template Parameters
-
Gpios | Up to 32 GpioIO classes, ordered MSB to LSB |
- Author
- Niklas Hauser