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.