PortInOut
Use the PortInOut interface to read and write an underlying GPIO port as one value. This is much faster than BusInOut because you can write a port all at once, but it is much less flexible because you are constrained by the port and bit layout of the underlying GPIO ports.
A mask can be supplied so you only use certain parts of a port, allowing other bits to be used for other interfaces.
PortInOut class reference
Public Member Functions | |
PortInOut (PortName port, int mask=0xFFFFFFFF) | |
Create an PortInOut, connected to the specified port. More... | |
void | write (int value) |
Write the value to the output port. More... | |
int | read () |
Read the value currently output on the port. More... | |
void | output () |
Set as an output. More... | |
void | input () |
Set as an input. More... | |
void | mode (PinMode mode) |
Set the input pin mode. More... | |
PortInOut & | operator= (int value) |
A shorthand for write() More... | |
PortInOut & | operator= (PortInOut &rhs) |
A shorthand for write() More... | |
operator int () | |
A shorthand for read() More... |
PortInOut hello, world
/*
* Copyright (c) 2020 Arm Limited and affiliates.
* SPDX-License-Identifier: Apache-2.0
*/
#include "mbed.h"
// Switch on an LED if any of mbed pins 21-26 is high
PortIn p(PortA, 0x0000003F); // p21-p26
DigitalOut ind(LED4);
int main()
{
while (1) {
int pins = p.read();
if (pins) {
ind = 1;
} else {
ind = 0;
}
}
}
Related content
- BusInOut API reference.