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