PortInOut

mbed OS 2 and mbed OS 5

This is the handbook for mbed OS 2. If you’re working with mbed OS 5, please see the new handbook and API References. For the latest PortInOut API, please see PortInOut.

The PortInOut interface is used to read and write an underlying GPIO port as one value. This is much faster than BusInOut as you can write a port in one go, but much less flexible as you are constrained by the port and bit layout of the underlying GPIO ports.

A mask can be supplied so only certain bits of a port are used, allowing other bits to be used for other interfaces.

Hello World!

Import program

00001 // Toggle all four LEDs
00002  
00003 #include "mbed.h"
00004  
00005 // LED1 = P1.18  LED2 = P1.20  LED3 = P1.21  LED4 = P1.23
00006 #define LED_MASK 0x00B40000
00007  
00008 PortInOut ledport(Port1, LED_MASK);
00009  
00010 int main() {
00011     int v = ledport;
00012     ledport.output();
00013     while(1) {
00014         ledport = LED_MASK;
00015         wait(0.5);
00016         ledport = 0;
00017         wait(1);
00018     }
00019 }

API

Import library

Public Member Functions

  PortInOut (PortName port, int mask=0xFFFFFFFF)
  Create an PortInOut , connected to the specified port.
void  write (int value)
  Write the value to the output port.
int  read ()
  Read the value currently output on the port.
void  output ()
  Set as an output.
void  input ()
  Set as an input.
void  mode (PinMode mode)
  Set the input pin mode.
PortInOut operator= (int value)
  A shorthand for write()
  operator int ()
  A shorthand for read()

Interface

The PortInOut Interface can use any pins with a blue label, as long as they are in the same port.

/media/uploads/chris/pinout-thumbnails.jpg
See the Pinout page for more details