transplanted from the original URL : https://github.com/adafruit/Adafruit-RGB-LCD-Shield-Library
Diff: Adafruit_MCP23017.h
- Revision:
- 0:4f1c764a42d3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Adafruit_MCP23017.h Mon Nov 19 09:44:37 2018 +0000 @@ -0,0 +1,71 @@ +/*************************************************** + This is a library for the MCP23017 i2c port expander + + These displays use I2C to communicate, 2 pins are required to + interface + Adafruit invests time and resources providing this open source code, + please support Adafruit and open-source hardware by purchasing + products from Adafruit! + + Written by Limor Fried/Ladyada for Adafruit Industries. + BSD license, all text above must be included in any redistribution + ****************************************************/ + +#ifndef _Adafruit_MCP23017_H_ +#define _Adafruit_MCP23017_H_ + +#include "mbed.h" + +class Adafruit_MCP23017 +{ +public: + Adafruit_MCP23017(I2C *master); + ~Adafruit_MCP23017(){}; + + void pinMode(uint8_t p, bool input_mode); + void digitalWrite(uint8_t p, bool high); + void pullUp(uint8_t p, bool pullup_anable); + uint8_t digitalRead(uint8_t p); + + void writeGPIOAB(uint16_t); + uint16_t readGPIOAB(); + +private: + I2C *_master; + char *_buffer; +}; + +//#define MCP23017_ADDRESS 0x20 +#define MCP23017_ADDRESS 0x40 + +#define INPUT 1 +#define OUTPUT 0 + +// registers +#define MCP23017_IODIRA 0x00 +#define MCP23017_IPOLA 0x02 +#define MCP23017_GPINTENA 0x04 +#define MCP23017_DEFVALA 0x06 +#define MCP23017_INTCONA 0x08 +#define MCP23017_IOCONA 0x0A +#define MCP23017_GPPUA 0x0C +#define MCP23017_INTFA 0x0E +#define MCP23017_INTCAPA 0x10 +#define MCP23017_GPIOA 0x12 +#define MCP23017_OLATA 0x14 + + +#define MCP23017_IODIRB 0x01 +#define MCP23017_IPOLB 0x03 +#define MCP23017_GPINTENB 0x05 +#define MCP23017_DEFVALB 0x07 +#define MCP23017_INTCONB 0x09 +#define MCP23017_IOCONB 0x0B +#define MCP23017_GPPUB 0x0D +#define MCP23017_INTFB 0x0F +#define MCP23017_INTCAPB 0x11 +#define MCP23017_GPIOB 0x13 +#define MCP23017_OLATB 0x15 + +#endif +