PropWare
3.0.0.229
C++ objects and CMake build system for Parallax Propeller
|
Flexible port that can have any pin enabled or disabled. Pins are independent of each other. More...
#include <PropWare/gpio/port.h>
Public Types | |
enum | Mask { P0 = BIT_0, P1 = BIT_1, P2 = BIT_2, P3 = BIT_3, P4 = BIT_4, P5 = BIT_5, P6 = BIT_6, P7 = BIT_7, P8 = BIT_8, P9 = BIT_9, P10 = BIT_10, P11 = BIT_11, P12 = BIT_12, P13 = BIT_13, P14 = BIT_14, P15 = BIT_15, P16 = BIT_16, P17 = BIT_17, P18 = BIT_18, P19 = BIT_19, P20 = BIT_20, P21 = BIT_21, P22 = BIT_22, P23 = BIT_23, P24 = BIT_24, P25 = BIT_25, P26 = BIT_26, P27 = BIT_27, P28 = BIT_28, P29 = BIT_29, P30 = BIT_30, P31 = BIT_31, NULL_PIN = 0 } |
enum | Dir { Dir::IN = 0, Dir::OUT = -1 } |
Public Member Functions | |
Port (const uint32_t portMask=Mask::NULL_PIN) | |
Port (const uint32_t portMask, const PropWare::Port::Dir direction) | |
void | set_mask (const uint32_t mask) |
Set the mask for this port. More... | |
uint32_t | get_mask () const |
Return the full pin mask of all pins in the port. More... | |
void | add_pins (const uint32_t mask) |
Add pins to the current mask. More... | |
void | set_dir (const PropWare::Port::Dir direction) const |
Set port as either input or output. More... | |
PropWare::Port::Dir | get_dir () const |
Determine the direction this port is currently set to. More... | |
void | set_dir_out () const |
Set the port for output. | |
void | set_dir_in () const |
Set the port for input. | |
void | set () const |
Set selected output port high (set all pins to 1) More... | |
void | high () const |
void | on () const |
void | clear () const |
Clear selected output port (set it to 0) More... | |
void | low () const |
void | off () const |
void | toggle () const |
Toggle the output value of a port. More... | |
void | write_fast (const uint32_t value) const |
Allow easy writing to a port w/o destroying data elsewhere in the port; No shift is performed to align data with the desired output pins. More... | |
uint32_t | read_fast () const |
Allow easy reading of only selected pins from a port. More... | |
Static Public Member Functions | |
static uint8_t | from_mask (const Mask mask) |
Determine which pin number based on a pin mask. More... | |
static Mask | to_mask (const uint8_t pinNum) |
Return a Mask type based on a pin number. More... | |
static void | flash_port (const uint32_t pinMask, unsigned int iterations=10) |
Great for quick debugging to ensure a line of code is executed, this will quickly flash a given set of pins a specific number of times. More... | |
Flexible port that can have any pin enabled or disabled. Pins are independent of each other.
The PropWare::Port class is wonderful in its versatility, but be aware that PropWare::SimplePort is a much better solution for parallel data ports, where all pins are generally consecutive.
|
strong |
enum PropWare::Port::Mask |
Bit-mask of GPIO pins
PropWare::Port::Port | ( | const uint32_t | portMask = Mask::NULL_PIN | ) |
PropWare::Port::Port | ( | const uint32_t | portMask, |
const PropWare::Port::Dir | direction | ||
) |
void PropWare::Port::add_pins | ( | const uint32_t | mask | ) |
void PropWare::Port::clear | ( | ) | const |
|
static |
Great for quick debugging to ensure a line of code is executed, this will quickly flash a given set of pins a specific number of times.
[in] | pinMask | Pins that should be flashed |
[in] | iterations | Number of times that the pins should flicker on and back off again |
Definition at line 129 of file port.h.
|
static |
Determine which pin number based on a pin mask.
[in] | mask | Value with only a single bit set high representing Propeller pin (i.e.: 0x80 would be pin 7) |
Definition at line 98 of file port.h.
PropWare::Port::Dir PropWare::Port::get_dir | ( | ) | const |
uint32_t PropWare::Port::get_mask | ( | ) | const |
void PropWare::Port::high | ( | ) | const |
Definition at line 233 of file port.h.
void PropWare::Port::low | ( | ) | const |
Definition at line 256 of file port.h.
void PropWare::Port::off | ( | ) | const |
Definition at line 263 of file port.h.
void PropWare::Port::on | ( | ) | const |
Definition at line 240 of file port.h.
uint32_t PropWare::Port::read_fast | ( | ) | const |
void PropWare::Port::set | ( | ) | const |
void PropWare::Port::set_dir | ( | const PropWare::Port::Dir | direction | ) | const |
void PropWare::Port::set_mask | ( | const uint32_t | mask | ) |
|
static |
void PropWare::Port::toggle | ( | ) | const |
void PropWare::Port::write_fast | ( | const uint32_t | value | ) | const |