| 
| 
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