|  | 
| 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
 }
 | 
|  | 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 () | 
|  | 
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 ofGpios!
- Template Parameters
- 
  
    | Gpios | Up to 32 GpioIO classes, ordered MSB to LSB |  
 
- Author
- Niklas Hauser