4#if defined(IOA_USE_MBED) || defined(BUILD_FOR_PICO_CMAKE)
5#include "PrintCompat.h"
10#include <IoAbstraction.h>
14#define LCD_CLEARDISPLAY 0x01
15#define LCD_RETURNHOME 0x02
16#define LCD_ENTRYMODESET 0x04
17#define LCD_DISPLAYCONTROL 0x08
18#define LCD_CURSORSHIFT 0x10
19#define LCD_FUNCTIONSET 0x20
20#define LCD_SETCGRAMADDR 0x40
21#define LCD_SETDDRAMADDR 0x80
24#define LCD_ENTRYRIGHT 0x00
25#define LCD_ENTRYLEFT 0x02
26#define LCD_ENTRYSHIFTINCREMENT 0x01
27#define LCD_ENTRYSHIFTDECREMENT 0x00
30#define LCD_DISPLAYON 0x04
31#define LCD_DISPLAYOFF 0x00
32#define LCD_CURSORON 0x02
33#define LCD_CURSOROFF 0x00
34#define LCD_BLINKON 0x01
35#define LCD_BLINKOFF 0x00
38#define LCD_DISPLAYMOVE 0x08
39#define LCD_CURSORMOVE 0x00
40#define LCD_MOVERIGHT 0x04
41#define LCD_MOVELEFT 0x00
44#define LCD_8BITMODE 0x10
45#define LCD_4BITMODE 0x00
48#define LCD_5x10DOTS 0x04
49#define LCD_5x8DOTS 0x00
113 LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t en, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
131 uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
132 uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, BasicIoAbstraction *ioMethod = NULL);
150 uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
151 uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, BasicIoAbstraction *ioMethod = NULL);
166 uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, BasicIoAbstraction *ioMethod = NULL);
179 uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, BasicIoAbstraction *ioMethod = NULL);
198 void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable,
199 uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
200 uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, BasicIoAbstraction *ioMethod);
236 void setDelayTime(uint8_t command, uint8_t settleTime) { _delayTime = (settleTime > 1) ? settleTime : 1; }
245 void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
305 void scrollDisplayLeft();
307 void scrollDisplayRight();
332 void createChar(uint8_t charNo,
const uint8_t data[]);
353 size_t write(uint8_t ch)
override;
355 void command(uint8_t);
360 void send(uint8_t, uint8_t);
362 void write4bits(uint8_t);
364 void write8bits(uint8_t);
371 uint8_t _data_pins[8];
373 uint8_t _displayfunction;
374 uint8_t _displaycontrol;
375 uint8_t _displaymode;
379 uint8_t _backlightPin;
382 uint8_t _row_offsets[4];
384 BasicIoAbstraction *_io_method;
385 AnalogDevice* _analog_device;
393#define LiquidCrystalI2C_RS_EN(var, addr, backlightInv) \
394 extern BasicIoAbstraction* ioFrom8574(uint8_t, pinid_t, WireType, bool); \
395 auto macro_backlight_tc = (backlightInv) ? LiquidCrystal::BACKLIGHT_INVERTED : LiquidCrystal::BACKLIGHT_NORMAL; \
396 LiquidCrystal var(0, 1, 2, 4, 5, 6, 7, macro_backlight_tc, ioFrom8574(addr, 0xff, &Wire, false));
403#define LiquidCrystalI2C_EN_RS(var, addr, backlightInv) \
404 extern BasicIoAbstraction* ioFrom8574(uint8_t, pinid_t, WireType, bool); \
405 auto macro_backlight_tc = (backlightInv) ? LiquidCrystal::BACKLIGHT_INVERTED : LiquidCrystal::BACKLIGHT_NORMAL; \
406 LiquidCrystal var(2, 1, 0, 4, 5, 6, 7, macro_backlight_tc, ioFrom8574(addr, 0xff, &Wire, false));
void noBlink()
Definition LiquidCrystalIO.cpp:280
void backlight()
Definition LiquidCrystalIO.h:261
size_t write(uint8_t ch) override
Definition LiquidCrystalIO.cpp:349
void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, BasicIoAbstraction *ioMethod)
Definition LiquidCrystalIO.cpp:73
void configureAnalogBacklight(AnalogDevice *analogDevice, uint8_t backlightPin)
Definition LiquidCrystalIO.cpp:117
void cursor()
Definition LiquidCrystalIO.cpp:274
void blink()
Definition LiquidCrystalIO.cpp:285
void configureBacklightPin(uint8_t backlightPin, BackLightPinMode mode=LiquidCrystal::BACKLIGHT_NORMAL)
Definition LiquidCrystalIO.cpp:105
void createChar(uint8_t charNo, const uint8_t data[])
Definition LiquidCrystalIO.cpp:325
void setIoAbstraction(IoAbstractionRef ioRef)
Definition LiquidCrystalIO.h:206
void createCharPgm(uint8_t, const uint8_t[])
Definition LiquidCrystalIO.cpp:335
void display()
Definition LiquidCrystalIO.cpp:263
void setBacklight(uint8_t state)
Definition LiquidCrystalIO.cpp:125
void noDisplay()
Definition LiquidCrystalIO.cpp:258
void noBacklight()
Definition LiquidCrystalIO.h:266
void clear()
Definition LiquidCrystalIO.cpp:235
void noCursor()
Definition LiquidCrystalIO.cpp:269
void setCursor(uint8_t x, uint8_t y)
Definition LiquidCrystalIO.cpp:245
BackLightPinMode
Definition LiquidCrystalIO.h:70
@ BACKLIGHT_NORMAL
Definition LiquidCrystalIO.h:72
@ BACKLIGHT_INVERTED
Definition LiquidCrystalIO.h:74
@ BACKLIGHT_PWM
Definition LiquidCrystalIO.h:76
void setDelayTime(uint8_t command, uint8_t settleTime)
Definition LiquidCrystalIO.h:236
void begin(uint8_t cols, uint8_t rows, uint8_t charsize=LCD_5x8DOTS)
Definition LiquidCrystalIO.cpp:137
void home()
Definition LiquidCrystalIO.cpp:240
LiquidCrystal()
Definition LiquidCrystalIO.cpp:48
void setRowOffsets(int row1, int row2, int row3, int row4)
Definition LiquidCrystalIO.cpp:227