transplanted from the original URL : https://github.com/adafruit/Adafruit-RGB-LCD-Shield-Library

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?

UserRevisionLine numberNew 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