5 #ifndef __ADAFRUIT_MCP23XXX_H__ 6 #define __ADAFRUIT_MCP23XXX_H__ 8 #include <Adafruit_BusIO_Register.h> 9 #include <Adafruit_I2CDevice.h> 10 #include <Adafruit_SPIDevice.h> 14 #define MCP23XXX_IODIR 0x00 15 #define MCP23XXX_IPOL 0x01 16 #define MCP23XXX_GPINTEN 0x02 17 #define MCP23XXX_DEFVAL \ 19 #define MCP23XXX_INTCON 0x04 20 #define MCP23XXX_IOCON 0x05 21 #define MCP23XXX_GPPU 0x06 22 #define MCP23XXX_INTF 0x07 23 #define MCP23XXX_INTCAP 0x08 24 #define MCP23XXX_GPIO 0x09 25 #define MCP23XXX_OLAT 0x0A 27 #define MCP23XXX_ADDR 0x20 28 #define MCP23XXX_SPIREG \ 29 ADDRESSED_OPCODE_BIT0_LOW_TO_WRITE 31 #define MCP_PORT(pin) ((pin < 8) ? 0 : 1) 33 #define MCP23XXX_INT_ERR 255 44 bool begin_SPI(uint8_t cs_pin, SPIClass *theSPI = &SPI,
45 uint8_t _hw_addr = 0x00);
46 bool begin_SPI(int8_t cs_pin, int8_t sck_pin, int8_t miso_pin,
47 int8_t mosi_pin, uint8_t _hw_addr = 0x00);
50 void pinMode(uint8_t pin, uint8_t mode);
56 void writeGPIO(uint8_t value, uint8_t port = 0);
71 uint16_t
getRegister(uint8_t baseAddress, uint8_t port = 0);
void digitalWrite(uint8_t pin, uint8_t value)
Write a HIGH or a LOW value to a digital pin.
Definition: Adafruit_MCP23XXX.cpp:116
void writeGPIO(uint8_t value, uint8_t port=0)
Bulk write all pins on a port.
Definition: Adafruit_MCP23XXX.cpp:144
uint16_t getCapturedInterrupt()
Get pin states captured at time of interrupt.
Definition: Adafruit_MCP23XXX.cpp:261
uint8_t pinCount
Total number of GPIO pins.
Definition: Adafruit_MCP23XXX.h:69
void pinMode(uint8_t pin, uint8_t mode)
Configures the specified pin to behave either as an input or an output.
Definition: Adafruit_MCP23XXX.cpp:82
Base class for all MCP23XXX variants.
Definition: Adafruit_MCP23XXX.h:40
Adafruit_SPIDevice * spi_dev
Pointer to SPI bus interface.
Definition: Adafruit_MCP23XXX.h:68
void disableInterruptPin(uint8_t pin)
Disable interrupt for given pin.
Definition: Adafruit_MCP23XXX.cpp:200
void setupInterrupts(bool mirroring, bool openDrain, uint8_t polarity)
Configure the interrupt system.
Definition: Adafruit_MCP23XXX.cpp:158
uint8_t getLastInterruptPin()
Gets the pin that caused the latest interrupt, from INTF, without clearing any interrupt flags...
Definition: Adafruit_MCP23XXX.cpp:227
bool begin_SPI(uint8_t cs_pin, SPIClass *theSPI=&SPI, uint8_t _hw_addr=0x00)
Initialize MCP using hardware SPI.
Definition: Adafruit_MCP23XXX.cpp:47
uint8_t digitalRead(uint8_t pin)
Reads the value from a specified digital pin, either HIGH or LOW.
Definition: Adafruit_MCP23XXX.cpp:101
uint8_t readGPIO(uint8_t port=0)
Bulk read all pins on a port.
Definition: Adafruit_MCP23XXX.cpp:131
void setupInterruptPin(uint8_t pin, uint8_t mode=CHANGE)
Enable interrupt and set mode for given pin.
Definition: Adafruit_MCP23XXX.cpp:178
void clearInterrupts()
Clear interrupts. NOTE:If using DEFVAL, INT clears only if interrupt condition does not exist...
Definition: Adafruit_MCP23XXX.cpp:214
#define MCP23XXX_ADDR
Default I2C Address.
Definition: Adafruit_MCP23XXX.h:27
uint16_t getRegister(uint8_t baseAddress, uint8_t port=0)
helper to get register address
Definition: Adafruit_MCP23XXX.cpp:290
bool begin_I2C(uint8_t i2c_addr=MCP23XXX_ADDR, TwoWire *wire=&Wire)
Initialize MCP using I2C.
Definition: Adafruit_MCP23XXX.cpp:33
uint8_t hw_addr
HW address matching A2/A1/A0 pins.
Definition: Adafruit_MCP23XXX.h:70
Adafruit_I2CDevice * i2c_dev
Pointer to I2C bus interface.
Definition: Adafruit_MCP23XXX.h:67