transplanted from the original URL : https://github.com/adafruit/Adafruit-RGB-LCD-Shield-Library
Adafruit_I2C_LCD.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 Adafruit RGB 16x2 LCD Shield |
Komazawa_sun | 0:4f1c764a42d3 | 3 | Pick one up at the Adafruit shop! |
Komazawa_sun | 0:4f1c764a42d3 | 4 | ---------> http://http://www.adafruit.com/products/714 |
Komazawa_sun | 0:4f1c764a42d3 | 5 | |
Komazawa_sun | 0:4f1c764a42d3 | 6 | The shield uses I2C to communicate, 2 pins are required to |
Komazawa_sun | 0:4f1c764a42d3 | 7 | interface |
Komazawa_sun | 0:4f1c764a42d3 | 8 | Adafruit invests time and resources providing this open source code, |
Komazawa_sun | 0:4f1c764a42d3 | 9 | please support Adafruit and open-source hardware by purchasing |
Komazawa_sun | 0:4f1c764a42d3 | 10 | products from Adafruit! |
Komazawa_sun | 0:4f1c764a42d3 | 11 | |
Komazawa_sun | 0:4f1c764a42d3 | 12 | Written by Limor Fried/Ladyada for Adafruit Industries. |
Komazawa_sun | 0:4f1c764a42d3 | 13 | BSD license, all text above must be included in any redistribution |
Komazawa_sun | 0:4f1c764a42d3 | 14 | ****************************************************/ |
Komazawa_sun | 0:4f1c764a42d3 | 15 | |
Komazawa_sun | 0:4f1c764a42d3 | 16 | #ifndef ADAFRUIT_I2C_LCD_H |
Komazawa_sun | 0:4f1c764a42d3 | 17 | #define ADAFRUIT_I2C_LCD_H |
Komazawa_sun | 0:4f1c764a42d3 | 18 | |
Komazawa_sun | 0:4f1c764a42d3 | 19 | #include "Adafruit_MCP23017.h" |
Komazawa_sun | 0:4f1c764a42d3 | 20 | |
Komazawa_sun | 0:4f1c764a42d3 | 21 | // commands |
Komazawa_sun | 0:4f1c764a42d3 | 22 | #define LCD_CLEARDISPLAY 0x01 |
Komazawa_sun | 0:4f1c764a42d3 | 23 | #define LCD_RETURNHOME 0x02 |
Komazawa_sun | 0:4f1c764a42d3 | 24 | #define LCD_ENTRYMODESET 0x04 |
Komazawa_sun | 0:4f1c764a42d3 | 25 | #define LCD_DISPLAYCONTROL 0x08 |
Komazawa_sun | 0:4f1c764a42d3 | 26 | #define LCD_CURSORSHIFT 0x10 |
Komazawa_sun | 0:4f1c764a42d3 | 27 | #define LCD_FUNCTIONSET 0x20 |
Komazawa_sun | 0:4f1c764a42d3 | 28 | #define LCD_SETCGRAMADDR 0x40 |
Komazawa_sun | 0:4f1c764a42d3 | 29 | #define LCD_SETDDRAMADDR 0x80 |
Komazawa_sun | 0:4f1c764a42d3 | 30 | |
Komazawa_sun | 0:4f1c764a42d3 | 31 | // flags for display entry mode |
Komazawa_sun | 0:4f1c764a42d3 | 32 | #define LCD_ENTRYRIGHT 0x00 |
Komazawa_sun | 0:4f1c764a42d3 | 33 | #define LCD_ENTRYLEFT 0x02 |
Komazawa_sun | 0:4f1c764a42d3 | 34 | #define LCD_ENTRYSHIFTINCREMENT 0x01 |
Komazawa_sun | 0:4f1c764a42d3 | 35 | #define LCD_ENTRYSHIFTDECREMENT 0x00 |
Komazawa_sun | 0:4f1c764a42d3 | 36 | |
Komazawa_sun | 0:4f1c764a42d3 | 37 | // flags for display on/off control |
Komazawa_sun | 0:4f1c764a42d3 | 38 | #define LCD_DISPLAYON 0x04 |
Komazawa_sun | 0:4f1c764a42d3 | 39 | #define LCD_DISPLAYOFF 0x00 |
Komazawa_sun | 0:4f1c764a42d3 | 40 | #define LCD_CURSORON 0x02 |
Komazawa_sun | 0:4f1c764a42d3 | 41 | #define LCD_CURSOROFF 0x00 |
Komazawa_sun | 0:4f1c764a42d3 | 42 | #define LCD_BLINKON 0x01 |
Komazawa_sun | 0:4f1c764a42d3 | 43 | #define LCD_BLINKOFF 0x00 |
Komazawa_sun | 0:4f1c764a42d3 | 44 | |
Komazawa_sun | 0:4f1c764a42d3 | 45 | // flags for display/cursor shift |
Komazawa_sun | 0:4f1c764a42d3 | 46 | #define LCD_DISPLAYMOVE 0x08 |
Komazawa_sun | 0:4f1c764a42d3 | 47 | #define LCD_CURSORMOVE 0x00 |
Komazawa_sun | 0:4f1c764a42d3 | 48 | #define LCD_MOVERIGHT 0x04 |
Komazawa_sun | 0:4f1c764a42d3 | 49 | #define LCD_MOVELEFT 0x00 |
Komazawa_sun | 0:4f1c764a42d3 | 50 | |
Komazawa_sun | 0:4f1c764a42d3 | 51 | // flags for function set |
Komazawa_sun | 0:4f1c764a42d3 | 52 | #define LCD_8BITMODE 0x10 |
Komazawa_sun | 0:4f1c764a42d3 | 53 | #define LCD_4BITMODE 0x00 |
Komazawa_sun | 0:4f1c764a42d3 | 54 | #define LCD_2LINE 0x08 |
Komazawa_sun | 0:4f1c764a42d3 | 55 | #define LCD_1LINE 0x00 |
Komazawa_sun | 0:4f1c764a42d3 | 56 | #define LCD_5x10DOTS 0x04 |
Komazawa_sun | 0:4f1c764a42d3 | 57 | #define LCD_5x8DOTS 0x00 |
Komazawa_sun | 0:4f1c764a42d3 | 58 | |
Komazawa_sun | 0:4f1c764a42d3 | 59 | #define BUTTON_UP 0x08 |
Komazawa_sun | 0:4f1c764a42d3 | 60 | #define BUTTON_DOWN 0x04 |
Komazawa_sun | 0:4f1c764a42d3 | 61 | #define BUTTON_LEFT 0x10 |
Komazawa_sun | 0:4f1c764a42d3 | 62 | #define BUTTON_RIGHT 0x02 |
Komazawa_sun | 0:4f1c764a42d3 | 63 | #define BUTTON_SELECT 0x01 |
Komazawa_sun | 0:4f1c764a42d3 | 64 | |
Komazawa_sun | 0:4f1c764a42d3 | 65 | #define HIGH true |
Komazawa_sun | 0:4f1c764a42d3 | 66 | #define LOW false |
Komazawa_sun | 0:4f1c764a42d3 | 67 | |
Komazawa_sun | 0:4f1c764a42d3 | 68 | #include "mbed.h" |
Komazawa_sun | 0:4f1c764a42d3 | 69 | |
Komazawa_sun | 0:4f1c764a42d3 | 70 | class Adafruit_I2C_LCD |
Komazawa_sun | 0:4f1c764a42d3 | 71 | { |
Komazawa_sun | 0:4f1c764a42d3 | 72 | public: |
Komazawa_sun | 0:4f1c764a42d3 | 73 | Adafruit_I2C_LCD(I2C *master, uint8_t cols, uint8_t lines, uint8_t dotsize = LCD_5x8DOTS); |
Komazawa_sun | 0:4f1c764a42d3 | 74 | ~Adafruit_I2C_LCD(); |
Komazawa_sun | 0:4f1c764a42d3 | 75 | |
Komazawa_sun | 0:4f1c764a42d3 | 76 | void clear(); |
Komazawa_sun | 0:4f1c764a42d3 | 77 | void home(); |
Komazawa_sun | 0:4f1c764a42d3 | 78 | |
Komazawa_sun | 0:4f1c764a42d3 | 79 | void noDisplay(); |
Komazawa_sun | 0:4f1c764a42d3 | 80 | void display(); |
Komazawa_sun | 0:4f1c764a42d3 | 81 | void noBlink(); |
Komazawa_sun | 0:4f1c764a42d3 | 82 | void blink(); |
Komazawa_sun | 0:4f1c764a42d3 | 83 | void noCursor(); |
Komazawa_sun | 0:4f1c764a42d3 | 84 | void cursor(); |
Komazawa_sun | 0:4f1c764a42d3 | 85 | void scrollDisplayLeft(); |
Komazawa_sun | 0:4f1c764a42d3 | 86 | void scrollDisplayRight(); |
Komazawa_sun | 0:4f1c764a42d3 | 87 | void leftToRight(); |
Komazawa_sun | 0:4f1c764a42d3 | 88 | void rightToLeft(); |
Komazawa_sun | 0:4f1c764a42d3 | 89 | void autoscroll(); |
Komazawa_sun | 0:4f1c764a42d3 | 90 | void noAutoscroll(); |
Komazawa_sun | 0:4f1c764a42d3 | 91 | |
Komazawa_sun | 0:4f1c764a42d3 | 92 | // only if using backpack |
Komazawa_sun | 0:4f1c764a42d3 | 93 | void setBacklight(uint8_t status); |
Komazawa_sun | 0:4f1c764a42d3 | 94 | |
Komazawa_sun | 0:4f1c764a42d3 | 95 | void createChar(uint8_t, uint8_t[]); |
Komazawa_sun | 0:4f1c764a42d3 | 96 | void setCursor(uint8_t, uint8_t); |
Komazawa_sun | 0:4f1c764a42d3 | 97 | void write(uint8_t); |
Komazawa_sun | 0:4f1c764a42d3 | 98 | void print(char *, size_t); |
Komazawa_sun | 0:4f1c764a42d3 | 99 | void command(uint8_t); |
Komazawa_sun | 0:4f1c764a42d3 | 100 | uint8_t readButtons(); |
Komazawa_sun | 0:4f1c764a42d3 | 101 | |
Komazawa_sun | 0:4f1c764a42d3 | 102 | private: |
Komazawa_sun | 0:4f1c764a42d3 | 103 | void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); |
Komazawa_sun | 0:4f1c764a42d3 | 104 | |
Komazawa_sun | 0:4f1c764a42d3 | 105 | void send(uint8_t, uint8_t); |
Komazawa_sun | 0:4f1c764a42d3 | 106 | void write4bits(uint8_t); |
Komazawa_sun | 0:4f1c764a42d3 | 107 | void write8bits(uint8_t); |
Komazawa_sun | 0:4f1c764a42d3 | 108 | void pulseEnable(); |
Komazawa_sun | 0:4f1c764a42d3 | 109 | void _digitalWrite(uint8_t, uint8_t); |
Komazawa_sun | 0:4f1c764a42d3 | 110 | void _pinMode(uint8_t, uint8_t); |
Komazawa_sun | 0:4f1c764a42d3 | 111 | |
Komazawa_sun | 0:4f1c764a42d3 | 112 | uint8_t _rs_pin; // LOW: command. HIGH: character. |
Komazawa_sun | 0:4f1c764a42d3 | 113 | uint8_t _rw_pin; // LOW: write to LCD. HIGH: read from LCD. |
Komazawa_sun | 0:4f1c764a42d3 | 114 | uint8_t _enable_pin; // activated by a HIGH pulse. |
Komazawa_sun | 0:4f1c764a42d3 | 115 | uint8_t _data_pins[8]; |
Komazawa_sun | 0:4f1c764a42d3 | 116 | uint8_t _button_pins[5]; |
Komazawa_sun | 0:4f1c764a42d3 | 117 | uint8_t _displayfunction; |
Komazawa_sun | 0:4f1c764a42d3 | 118 | uint8_t _displaycontrol; |
Komazawa_sun | 0:4f1c764a42d3 | 119 | uint8_t _displaymode; |
Komazawa_sun | 0:4f1c764a42d3 | 120 | |
Komazawa_sun | 0:4f1c764a42d3 | 121 | uint8_t _initialized; |
Komazawa_sun | 0:4f1c764a42d3 | 122 | |
Komazawa_sun | 0:4f1c764a42d3 | 123 | uint8_t _numlines,_currline; |
Komazawa_sun | 0:4f1c764a42d3 | 124 | |
Komazawa_sun | 0:4f1c764a42d3 | 125 | uint8_t _i2cAddr; |
Komazawa_sun | 0:4f1c764a42d3 | 126 | Adafruit_MCP23017 *_i2c; |
Komazawa_sun | 0:4f1c764a42d3 | 127 | }; |
Komazawa_sun | 0:4f1c764a42d3 | 128 | |
Komazawa_sun | 0:4f1c764a42d3 | 129 | #endif |
Komazawa_sun | 0:4f1c764a42d3 | 130 |