The PCAL6416A is a low-voltage 16-bit general purpose I/O (GPIO) expander with interrupt. This component library is compatible to basic operation as GPIO expanders: PCAL6416A, PCAL9555, PCA9555, PCA9535, PCA9539, PCAL9554, PCA9554 and PCA9538. On addition to this, this library is including mbed-SDK-style APIs. APIs that similar to DigitaiInOut, DigitalOut, DigitalIn, BusInOUt, BusOut and BusIn are available.

Embed: (wiki syntax)

« Back to documentation index

GpioBusIn Class Reference

GpioBusIn Class Reference

GpioBusIn class. More...

#include <GpioBusIn.h>

Inherits GpioBusInOut.

Public Types

enum  GpioPinName {
  X0_0, X0_1, X0_2, X0_3,
  X0_4, X0_5, X0_6, X0_7,
  X1_0, X1_1, X1_2, X1_3,
  X1_4, X1_5, X1_6, X1_7,
  X0 = X0_0, X1 = X0_1, X2 = X0_2, X3 = X0_3,
  X4 = X0_4, X5 = X0_5, X6 = X0_6, X7 = X0_7,
  X8 = X1_0, X9 = X1_1, X10 = X1_2, X11 = X1_3,
  X12 = X1_4, X13 = X1_5, X14 = X1_6, X15 = X1_7,
  X_NC = ~0x0L
}
 

GPIO-Expander pin names.

More...

Public Member Functions

 GpioBusIn (CompGpioExp &gpiop, GpioPinName p0, GpioPinName p1=X_NC, GpioPinName p2=X_NC, GpioPinName p3=X_NC, GpioPinName p4=X_NC, GpioPinName p5=X_NC, GpioPinName p6=X_NC, GpioPinName p7=X_NC, GpioPinName p8=X_NC, GpioPinName p9=X_NC, GpioPinName p10=X_NC, GpioPinName p11=X_NC, GpioPinName p12=X_NC, GpioPinName p13=X_NC, GpioPinName p14=X_NC, GpioPinName p15=X_NC)
 Create an GpioBusIn, connected to the specified pins.
virtual ~GpioBusIn ()
 Destractor.
 operator int (void)
 A shorthand for read()
void write (int value)
 Write the value to the output bus.
int read ()
 Read the value currently output on the bus.
void output ()
 Set as an output.
void input ()
 Set as an input.

Detailed Description

GpioBusIn class.

"GpioBusIn" class works like "BusIn" class of mbed-SDK. This class provides pin oriented API, abstracting the GPIO-expander chip.

Example:

  #include "mbed.h"
  #include "PCAL9555.h"
  
  PCAL9555    gpio_exp( p28, p27, 0xE8 );    //  SDA, SCL, Slave_address(option)
  GpioBusIn   nibble( gpio_exp, X0_0, X0_1, X0_2, X0_3 );
   
  int main() {
      while ( 1 ) {
          switch ( nibble ) {
              case 0x3: printf( "Hello!\n" ); break; // X0_0 and X0_1 are 1
              case 0x8: printf( "World!\n" ); break; // X0_3 is 1
          }
      }
  }

Definition at line 41 of file GpioBusIn.h.


Member Enumeration Documentation

GPIO-Expander pin names.

Enumerator:
X0_0 

P0_0 pin.

X0_1 

P0_1 pin.

X0_2 

P0_2 pin.

X0_3 

P0_3 pin.

X0_4 

P0_4 pin.

X0_5 

P0_5 pin.

X0_6 

P0_6 pin.

X0_7 

P0_7 pin.

X1_0 

P1_0 pin (for 16-bit GPIO device only)

X1_1 

P1_1 pin (for 16-bit GPIO device only)

X1_2 

P1_2 pin (for 16-bit GPIO device only)

X1_3 

P1_3 pin (for 16-bit GPIO device only)

X1_4 

P1_4 pin (for 16-bit GPIO device only)

X1_5 

P1_5 pin (for 16-bit GPIO device only)

X1_6 

P1_6 pin (for 16-bit GPIO device only)

X1_7 

P1_7 pin (for 16-bit GPIO device only)

X0 

P0_0 pin.

X1 

P0_1 pin.

X2 

P0_2 pin.

X3 

P0_3 pin.

X4 

P0_4 pin.

X5 

P0_5 pin.

X6 

P0_6 pin.

X7 

P0_7 pin.

X8 

P1_0 pin (for 16-bit GPIO device only)

X9 

P1_1 pin (for 16-bit GPIO device only)

X10 

P1_2 pin (for 16-bit GPIO device only)

X11 

P1_3 pin (for 16-bit GPIO device only)

X12 

P1_4 pin (for 16-bit GPIO device only)

X13 

P1_5 pin (for 16-bit GPIO device only)

X14 

P1_6 pin (for 16-bit GPIO device only)

X15 

P1_7 pin (for 16-bit GPIO device only)

X_NC 

for when the pin is left no-connection

Reimplemented from GpioBusInOut.

Definition at line 47 of file GpioBusIn.h.


Constructor & Destructor Documentation

GpioBusIn ( CompGpioExp gpiop,
GpioPinName  p0,
GpioPinName  p1 = X_NC,
GpioPinName  p2 = X_NC,
GpioPinName  p3 = X_NC,
GpioPinName  p4 = X_NC,
GpioPinName  p5 = X_NC,
GpioPinName  p6 = X_NC,
GpioPinName  p7 = X_NC,
GpioPinName  p8 = X_NC,
GpioPinName  p9 = X_NC,
GpioPinName  p10 = X_NC,
GpioPinName  p11 = X_NC,
GpioPinName  p12 = X_NC,
GpioPinName  p13 = X_NC,
GpioPinName  p14 = X_NC,
GpioPinName  p15 = X_NC 
)

Create an GpioBusIn, connected to the specified pins.

Parameters:
gpiopInstance of GPIO expander device
p<n>DigitalInOut pin to connect to bus bit p<n> (GpioPinName)
Note:
It is only required to specify as many pin variables as is required for the bus; the rest will default to NC (not connected)

Definition at line 4 of file GpioBusIn.cpp.

~GpioBusIn (  ) [virtual]

Destractor.

Definition at line 22 of file GpioBusIn.cpp.


Member Function Documentation

void input ( void   ) [inherited]

Set as an input.

Definition at line 68 of file GpioBusInOut.cpp.

operator int ( void   )

A shorthand for read()

Reimplemented from GpioBusInOut.

Definition at line 26 of file GpioBusIn.cpp.

void output ( void   ) [inherited]

Set as an output.

Definition at line 63 of file GpioBusInOut.cpp.

int read ( void   ) [inherited]

Read the value currently output on the bus.

Returns:
An integer with each bit corresponding to associated DigitalInOut pin setting

Definition at line 50 of file GpioBusInOut.cpp.

void write ( int  value ) [inherited]

Write the value to the output bus.

Parameters:
valueAn integer specifying a bit to write for every corresponding DigitalInOut pin

Definition at line 32 of file GpioBusInOut.cpp.