|
GPIO_NXP_Arduino 1.1.2
GPIO device operation sample code for Arduino
|
#include <GPIO_NXP.h>
Public Types | |
| enum | reg_num { Input_Port , Output_Port , Polarity_Inversion , Configuration , Output_drive_strength_0 = 0x40 , Output_drive_strength_1 , Input_latch , Pull_up_pull_down_enable , Pull_up_pull_down_selection , Interrupt_mask , Interrupt_status , Output_port_configuration } |
| enum | board { NONE , ARDUINO_SHIELD } |
| Public Types inherited from GPIO_base | |
| enum | board { NONE , ARDUINO_SHIELD } |
Public Member Functions | |
| PCAL6408A (uint8_t i2c_address=(0x40 > > 1)+0) | |
| PCAL6408A (TwoWire &wire, uint8_t i2c_address=(0x40 > > 1)+0) | |
| virtual | ~PCAL6408A () |
| void | begin (board env=NONE) |
| void | output (int port, uint8_t value, uint8_t mask=0) |
| void | output (const uint8_t *vp) |
| uint8_t | input (int port) |
| uint8_t * | input (uint8_t *vp) |
| void | config (int port, uint8_t config, uint8_t mask=0) |
| void | config (const uint8_t *vp) |
| void | write_port (access_word w, const uint8_t *vp) |
| void | write_port16 (access_word w, const uint16_t *vp) |
| uint8_t * | read_port (access_word w, uint8_t *vp) |
| uint16_t * | read_port16 (access_word w, uint16_t *vp) |
| void | write_port (access_word w, uint8_t value, int port_num=0) |
| void | write_port16 (access_word w, uint16_t value, int port_num=0) |
| uint8_t | read_port (access_word w, int port_num=0) |
| uint16_t | read_port16 (access_word w, int port_num=0) |
| bool | ping (void) |
| int | reg_w (uint8_t reg_adr, const uint8_t *data, uint16_t size) |
| int | reg_w (uint8_t reg_adr, uint8_t data) |
| int | reg_r (uint8_t reg_adr, uint8_t *data, uint16_t size) |
| uint8_t | reg_r (uint8_t reg_adr) |
| void | write_r8 (uint8_t reg, uint8_t val) |
| void | write_r16 (uint8_t reg, uint16_t val) |
| uint8_t | read_r8 (uint8_t reg) |
| uint16_t | read_r16 (uint8_t reg) |
| void | bit_op8 (uint8_t reg, uint8_t mask, uint8_t value) |
| void | bit_op16 (uint8_t reg, uint16_t mask, uint16_t value) |
| Public Member Functions inherited from PCAL6xxx_base | |
| PCAL6xxx_base (uint8_t i2c_address, const int nbits, const uint8_t arp[], uint8_t ai) | |
| PCAL6xxx_base (TwoWire &wire, uint8_t i2c_address, const int nbits, const uint8_t arp[], uint8_t ai) | |
| virtual | ~PCAL6xxx_base () |
| Public Member Functions inherited from GPIO_base | |
| GPIO_base (uint8_t i2c_address, int nbits, const uint8_t *arp, uint8_t ai) | |
| GPIO_base (TwoWire &wire, uint8_t i2c_address, int nbits, const uint8_t *arp, uint8_t ai) | |
| virtual | ~GPIO_base () |
| virtual void | begin (board env=NONE) |
Public Attributes | |
| const int | n_bits |
| const int | n_ports |
| Public Attributes inherited from GPIO_base | |
| const int | n_bits |
| const int | n_ports |
Static Public Attributes | |
| static constexpr uint8_t | access_ref [NUM_access_word] |
Additional Inherited Members | |
| Static Public Member Functions inherited from GPIO_base | |
| static void | print_bin (uint8_t v) |
| Protected Attributes inherited from GPIO_base | |
| const uint8_t | auto_increment |
PCAL6408A class
Definition at line 851 of file GPIO_NXP.h.
| enum PCAL6408A::board |
Constants for begin() method
Definition at line 902 of file GPIO_NXP.h.
| enum PCAL6408A::reg_num |
Name of the PCAL6408A registers
Definition at line 855 of file GPIO_NXP.h.
| PCAL6408A::PCAL6408A | ( | uint8_t | i2c_address = (0x40 >> 1) + 0 | ) |
| PCAL6408A::PCAL6408A | ( | TwoWire & | wire, |
| uint8_t | i2c_address = (0x40 >> 1) + 0 ) |
Constructor
| wire | TwoWire instance |
| i2c_address | I2C target address |
Definition at line 258 of file GPIO_NXP.cpp.
|
virtual |
Destructor
Definition at line 263 of file GPIO_NXP.cpp.
| void PCAL6408A::begin | ( | board | env = NONE | ) |
Device/board initialization
This method is needed to initialize Arduino-shield type evaluation boards from NXP. This method takes one argument of "PCAL6408A::ARDUINO_SHIELD" to set RESET and ADDRESS pins.
If the device is used as it self, this method doesn't need to be called.
| env | This argument can be given as "PCAL6408A::NONE" or "PCAL6408A::ARDUINO_SHIELD" |
| void PCAL6408A::bit_op8 | ( | uint8_t | reg, |
| uint8_t | mask, | ||
| uint8_t | value ) |
Register overwriting with bit-mask
Register can be updated by bit level
| reg | register index/address/pointer |
| mask | bit-mask to protect overwriting |
| value | value to overwrite |
|
virtual |
Config, all ports
Basic GPIO port access function for all port configuration
| vp | Pointer to array of configuration values. The array should have 'n_ports' length |
Reimplemented from GPIO_base.
|
virtual |
|
virtual |
Input, single port
Basic GPIO port access function for single port input
| port | Port number |
Reimplemented from GPIO_base.
|
virtual |
Input, all ports
Basic GPIO port access function for all ports input
| vp | Pointer to an array of values. The array should have 'n_ports' length |
Reimplemented from GPIO_base.
|
virtual |
Output, all ports
Basic GPIO port access function for all ports output
| vp | Pointer to an array of values. The array should have 'n_ports' length |
Reimplemented from GPIO_base.
|
virtual |
Output, single port
Basic GPIO port access function for single port output
| port | Port number |
| value | Value to be output |
| mask | Bit mask. Value will not be changed in bit positions '1' in mask |
Reimplemented from GPIO_base.
| bool PCAL6408A::ping | ( | void | ) |
Ping the device
|
virtual |
Read single port method
Single port register access function using word of 'access_word'
| w | Access word. This should be chosen from 'access_word' |
| port_num | Option, to specify port number |
Reimplemented from GPIO_base.
|
virtual |
Read all port method
All port register access function using word of 'access_word'
| w | Access word. This should be chosen from 'access_word' |
| vp | Pointer to an array of values. The array should have 'n_ports' length |
Reimplemented from GPIO_base.
|
virtual |
Read single port method
Single port 16 bit register access function using word of 'access_word'
| w | Access word. This should be chosen from 'access_word' |
| port_num | Option, to specify port number |
Reimplemented from GPIO_base.
|
virtual |
Read all port method
All port 16 bit register access function using word of 'access_word'
| w | Access word. This should be chosen from 'access_word' |
| vp | Pointer to an array of values. The array should have 'n_ports' length |
Reimplemented from GPIO_base.
| uint16_t PCAL6408A::read_r16 | ( | uint8_t | reg | ) |
Register read, 16 bit
This 16 bit access may not be common but it's useful for sensor devices
| reg | register index/address/pointer |
| uint8_t PCAL6408A::read_r8 | ( | uint8_t | reg | ) |
Register read, 8 bit
| reg | register index/address/pointer |
| uint8_t PCAL6408A::reg_r | ( | uint8_t | reg_adr | ) |
Single register read
| reg | register index/address/pointer |
| int PCAL6408A::reg_r | ( | uint8_t | reg_adr, |
| uint8_t * | data, | ||
| uint16_t | size ) |
Multiple register read
| reg | register index/address/pointer |
| data | pointer to data buffer |
| size | data size |
| int PCAL6408A::reg_w | ( | uint8_t | reg_adr, |
| const uint8_t * | data, | ||
| uint16_t | size ) |
Multiple register write
| reg | register index/address/pointer |
| data | pointer to data buffer |
| size | data size |
| int PCAL6408A::reg_w | ( | uint8_t | reg_adr, |
| uint8_t | data ) |
Single register write
| reg_adr | register index/address/pointer |
| data | data byte to write |
|
virtual |
Write all port method
All port register access function using word of 'access_word'
| w | Access word. This should be chosen from 'access_word' |
| vp | Pointer to an array of values. The array should have 'n_ports' length |
Reimplemented from GPIO_base.
|
virtual |
Write single port method
Single port register access function using word of 'access_word'
| w | Access word. This should be chosen from 'access_word' |
| value | Value to be written into a register |
| port_num | Option, to specify port number |
Reimplemented from GPIO_base.
|
virtual |
Write all port method
All port 16 bit register access function using word of 'access_word'
| w | Access word. This should be chosen from 'access_word' |
| vp | Pointer to an array of values. The array should have 'n_ports' length |
Reimplemented from GPIO_base.
|
virtual |
Write single port method
Single port 16 bit register access function using word of 'access_word'
| w | Access word. This should be chosen from 'access_word' |
| value | Value to be written into a register |
| port_num | Option, to specify port number |
Reimplemented from GPIO_base.
| void PCAL6408A::write_r16 | ( | uint8_t | reg, |
| uint16_t | val ) |
Register write, 16 bit
This 16 bit access may not be common but it's useful for sensor devices
| reg | register index/address/pointer |
| val | data value |
| void PCAL6408A::write_r8 | ( | uint8_t | reg, |
| uint8_t | val ) |
Register write, 8 bit
| reg | register index/address/pointer |
| val | data value |
|
staticconstexpr |
Definition at line 886 of file GPIO_NXP.h.
| const int PCAL6408A::n_bits |
Number of IO bits
Definition at line 908 of file GPIO_NXP.h.
| const int PCAL6408A::n_ports |
Number of IO ports
Definition at line 911 of file GPIO_NXP.h.