| 
    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 = 0x3, MHz2 = Low, MHz10 = Medium, MHz50 = High }  | 
| enum | OutputType { OutputType::PushPull = 0x0, OutputType::OpenDrain = 0x1 } | 
| enum | Port { A = 0, B = 1, F = 5 } | 
| 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 [3][width] | 
| static constexpr uint16_t | inverteds [3] | 
| static constexpr uint16_t | masks [3] | 
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 | 
      
  | 
  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