transplanted from the original URL : https://github.com/adafruit/Adafruit-RGB-LCD-Shield-Library
Adafruit_MCP23017.h@0:4f1c764a42d3, 2018-11-19 (annotated)
- Committer:
- Komazawa_sun
- Date:
- Mon Nov 19 09:44:37 2018 +0000
- Revision:
- 0:4f1c764a42d3
Transplanted lib(https://github.com/adafruit/Adafruit-RGB-LCD-Shield-Library)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Komazawa_sun | 0:4f1c764a42d3 | 1 | /*************************************************** |
Komazawa_sun | 0:4f1c764a42d3 | 2 | This is a library for the MCP23017 i2c port expander |
Komazawa_sun | 0:4f1c764a42d3 | 3 | |
Komazawa_sun | 0:4f1c764a42d3 | 4 | These displays use I2C to communicate, 2 pins are required to |
Komazawa_sun | 0:4f1c764a42d3 | 5 | interface |
Komazawa_sun | 0:4f1c764a42d3 | 6 | Adafruit invests time and resources providing this open source code, |
Komazawa_sun | 0:4f1c764a42d3 | 7 | please support Adafruit and open-source hardware by purchasing |
Komazawa_sun | 0:4f1c764a42d3 | 8 | products from Adafruit! |
Komazawa_sun | 0:4f1c764a42d3 | 9 | |
Komazawa_sun | 0:4f1c764a42d3 | 10 | Written by Limor Fried/Ladyada for Adafruit Industries. |
Komazawa_sun | 0:4f1c764a42d3 | 11 | BSD license, all text above must be included in any redistribution |
Komazawa_sun | 0:4f1c764a42d3 | 12 | ****************************************************/ |
Komazawa_sun | 0:4f1c764a42d3 | 13 | |
Komazawa_sun | 0:4f1c764a42d3 | 14 | #ifndef _Adafruit_MCP23017_H_ |
Komazawa_sun | 0:4f1c764a42d3 | 15 | #define _Adafruit_MCP23017_H_ |
Komazawa_sun | 0:4f1c764a42d3 | 16 | |
Komazawa_sun | 0:4f1c764a42d3 | 17 | #include "mbed.h" |
Komazawa_sun | 0:4f1c764a42d3 | 18 | |
Komazawa_sun | 0:4f1c764a42d3 | 19 | class Adafruit_MCP23017 |
Komazawa_sun | 0:4f1c764a42d3 | 20 | { |
Komazawa_sun | 0:4f1c764a42d3 | 21 | public: |
Komazawa_sun | 0:4f1c764a42d3 | 22 | Adafruit_MCP23017(I2C *master); |
Komazawa_sun | 0:4f1c764a42d3 | 23 | ~Adafruit_MCP23017(){}; |
Komazawa_sun | 0:4f1c764a42d3 | 24 | |
Komazawa_sun | 0:4f1c764a42d3 | 25 | void pinMode(uint8_t p, bool input_mode); |
Komazawa_sun | 0:4f1c764a42d3 | 26 | void digitalWrite(uint8_t p, bool high); |
Komazawa_sun | 0:4f1c764a42d3 | 27 | void pullUp(uint8_t p, bool pullup_anable); |
Komazawa_sun | 0:4f1c764a42d3 | 28 | uint8_t digitalRead(uint8_t p); |
Komazawa_sun | 0:4f1c764a42d3 | 29 | |
Komazawa_sun | 0:4f1c764a42d3 | 30 | void writeGPIOAB(uint16_t); |
Komazawa_sun | 0:4f1c764a42d3 | 31 | uint16_t readGPIOAB(); |
Komazawa_sun | 0:4f1c764a42d3 | 32 | |
Komazawa_sun | 0:4f1c764a42d3 | 33 | private: |
Komazawa_sun | 0:4f1c764a42d3 | 34 | I2C *_master; |
Komazawa_sun | 0:4f1c764a42d3 | 35 | char *_buffer; |
Komazawa_sun | 0:4f1c764a42d3 | 36 | }; |
Komazawa_sun | 0:4f1c764a42d3 | 37 | |
Komazawa_sun | 0:4f1c764a42d3 | 38 | //#define MCP23017_ADDRESS 0x20 |
Komazawa_sun | 0:4f1c764a42d3 | 39 | #define MCP23017_ADDRESS 0x40 |
Komazawa_sun | 0:4f1c764a42d3 | 40 | |
Komazawa_sun | 0:4f1c764a42d3 | 41 | #define INPUT 1 |
Komazawa_sun | 0:4f1c764a42d3 | 42 | #define OUTPUT 0 |
Komazawa_sun | 0:4f1c764a42d3 | 43 | |
Komazawa_sun | 0:4f1c764a42d3 | 44 | // registers |
Komazawa_sun | 0:4f1c764a42d3 | 45 | #define MCP23017_IODIRA 0x00 |
Komazawa_sun | 0:4f1c764a42d3 | 46 | #define MCP23017_IPOLA 0x02 |
Komazawa_sun | 0:4f1c764a42d3 | 47 | #define MCP23017_GPINTENA 0x04 |
Komazawa_sun | 0:4f1c764a42d3 | 48 | #define MCP23017_DEFVALA 0x06 |
Komazawa_sun | 0:4f1c764a42d3 | 49 | #define MCP23017_INTCONA 0x08 |
Komazawa_sun | 0:4f1c764a42d3 | 50 | #define MCP23017_IOCONA 0x0A |
Komazawa_sun | 0:4f1c764a42d3 | 51 | #define MCP23017_GPPUA 0x0C |
Komazawa_sun | 0:4f1c764a42d3 | 52 | #define MCP23017_INTFA 0x0E |
Komazawa_sun | 0:4f1c764a42d3 | 53 | #define MCP23017_INTCAPA 0x10 |
Komazawa_sun | 0:4f1c764a42d3 | 54 | #define MCP23017_GPIOA 0x12 |
Komazawa_sun | 0:4f1c764a42d3 | 55 | #define MCP23017_OLATA 0x14 |
Komazawa_sun | 0:4f1c764a42d3 | 56 | |
Komazawa_sun | 0:4f1c764a42d3 | 57 | |
Komazawa_sun | 0:4f1c764a42d3 | 58 | #define MCP23017_IODIRB 0x01 |
Komazawa_sun | 0:4f1c764a42d3 | 59 | #define MCP23017_IPOLB 0x03 |
Komazawa_sun | 0:4f1c764a42d3 | 60 | #define MCP23017_GPINTENB 0x05 |
Komazawa_sun | 0:4f1c764a42d3 | 61 | #define MCP23017_DEFVALB 0x07 |
Komazawa_sun | 0:4f1c764a42d3 | 62 | #define MCP23017_INTCONB 0x09 |
Komazawa_sun | 0:4f1c764a42d3 | 63 | #define MCP23017_IOCONB 0x0B |
Komazawa_sun | 0:4f1c764a42d3 | 64 | #define MCP23017_GPPUB 0x0D |
Komazawa_sun | 0:4f1c764a42d3 | 65 | #define MCP23017_INTFB 0x0F |
Komazawa_sun | 0:4f1c764a42d3 | 66 | #define MCP23017_INTCAPB 0x11 |
Komazawa_sun | 0:4f1c764a42d3 | 67 | #define MCP23017_GPIOB 0x13 |
Komazawa_sun | 0:4f1c764a42d3 | 68 | #define MCP23017_OLATB 0x15 |
Komazawa_sun | 0:4f1c764a42d3 | 69 | |
Komazawa_sun | 0:4f1c764a42d3 | 70 | #endif |
Komazawa_sun | 0:4f1c764a42d3 | 71 |