1 #ifndef LiquidCrystal_Base_h 2 #define LiquidCrystal_Base_h 10 #ifdef ARDUINO_ARCH_ESP32 15 #include <avr/pgmspace.h> 24 #define LCD_DEFAULT_COLS 16 25 #define LCD_DEFAULT_ROWS 2 31 virtual void init(uint8_t lcd_cols, uint8_t lcd_rows, uint8_t charsize = LCD_5x8DOTS);
32 virtual void init(uint8_t mode = LCD_4BITMODE);
35 virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS, uint8_t mode = LCD_4BITMODE){};
37 virtual void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS, uint8_t mode = LCD_4BITMODE) = 0;
41 void clear(uint8_t rowStart, uint8_t colStart = 0, uint8_t colCnt = 255);
50 void scrollDisplayLeft();
51 void scrollDisplayRight();
56 void createChar(uint8_t, uint8_t[]);
58 void createChar(uint8_t location,
const char *charmap);
60 void setCursor(uint8_t col, uint8_t row, uint8_t offsets[]);
61 void printstr(
const char[]);
63 virtual void setCursor(uint8_t col, uint8_t row);
64 virtual void command(uint8_t value);
67 virtual void write(uint8_t value);
69 virtual size_t write(uint8_t value);
73 virtual void write4bits(uint8_t value){};
74 virtual void send(uint8_t value, uint8_t mode){};
76 virtual void write4bits(uint8_t value) = 0;
77 virtual void send(uint8_t value, uint8_t mode) = 0;
80 bool getMode() {
return readBitFlag(_displayfunction, LCD_8BITMODE); }
81 uint8_t getCols() {
return _cols; }
82 uint8_t getRows() {
return _rows; }
85 uint8_t _cols = LCD_DEFAULT_COLS;
86 uint8_t _rows = LCD_DEFAULT_ROWS;
88 uint8_t _displayfunction;
89 uint8_t _displaycontrol;
99 inline uint8_t status() {
return _displayfunction; }
100 inline void on(){ display(); }
101 inline void off() { noDisplay(); }
102 inline void blink_on() { blink(); }
103 inline void blink_off() { noBlink(); }
104 inline void cursor_on() { cursor(); }
105 inline void cursor_off() { noCursor(); }
106 inline void printLeft() { rightToLeft(); }
107 inline void printRight() { leftToRight(); }
108 inline void shiftIncrement() { autoscroll(); }
109 inline void shiftDecrement() { noAutoscroll(); }
113 inline void setBitFlag(uint8_t& flagsGroup,
const uint8_t& bitToSet) __attribute__((always_inline)) {
114 flagsGroup |= bitToSet;
117 inline void clearBitFlag(uint8_t& flagsGroup,
const uint8_t& bitToClear) __attribute__((always_inline)) {
118 flagsGroup &= ~bitToClear;
121 inline bool readBitFlag(uint8_t& flagsGroup,
const uint8_t& bitToRead) __attribute__((always_inline)) {
122 return flagsGroup & bitToRead;
125 inline void writeBitFlag(uint8_t& flagsGroup,
const uint8_t& bitToSet,
const bool& flagValue) __attribute__((always_inline)) {
126 if (flagValue) setBitFlag(flagsGroup, bitToSet);
127 else clearBitFlag(flagsGroup, bitToSet);
130 inline bool checkBitFlag(uint8_t& flagsGroup,
const uint8_t& bitToCheck) __attribute__((always_inline)) {
131 return (flagsGroup & (1 << bitToCheck)) ? true :
false;
Definition: LiquidCrystal_Base.h:27