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
/* mbed Example Program
* Copyright (c) 2006-2014 ARM Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Toggle all four LEDs
#include "mbed.h"
// LED1 = P1.18 LED2 = P1.20 LED3 = P1.21 LED4 = P1.23
#define LED_MASK 0x00B40000
PortInOut ledport(Port1, LED_MASK);
int main() {
int v = ledport;
ledport.output();
while(1) {
ledport = LED_MASK;
wait(0.5);
ledport = 0;
wait(1);
}
}
Related content
- BusInOut API reference.