|
SegLCDLib
|
Base class for 3-wire serial LCD segment display drivers. More...
#include <SegDriver_3Wire.h>
Public Member Functions | |
| SegDriver_3Wire (uint8_t chipselect, uint8_t data, uint8_t write, uint8_t read=-1) | |
| Constructor for 3-wire serial LCD driver. | |
| void | init () override |
| Initialize GPIO pins for communication. | |
| void | on () override |
| Turn the display on. | |
| void | off () override |
| Turn the display off. | |
| void | command (uint8_t command) override |
| Send command to the controller. | |
Public Member Functions inherited from SegLCDLib | |
| virtual | ~SegLCDLib () |
| Virtual destructor to ensure proper cleanup in derived classes. | |
| virtual void | clear () |
| Clear all visible segments on the display. | |
| void | home () |
| Set cursor to 0, 0 without clear display. | |
| virtual void | setCursor (uint8_t row, uint8_t col) |
| Set cursor on exact digit. | |
| virtual size_t | write (uint8_t ch) |
| void | initBacklight (int8_t backlightPin, BacklightMode backlightMode=BACKLIGHT_DIGITAL, bool backlightActiveHigh=true) |
| Initialize GPIO backlight control. | |
| virtual void | setBacklight (bool state) |
| Set backlight state (on/off). | |
| virtual void | setBacklight (int brightness) |
| Set backlight brightness (0-255). | |
| void | setAutoFlush (bool enable) |
| Enable or disable autoflush mode. | |
| bool | getAutoFlush () const |
| Get current autoflush state. | |
| virtual void | flush () |
| Flush all buffered changes to the display. | |
| virtual void | flush (uint8_t startAddr, uint8_t length) |
| Flush specific range of buffered changes to the display. | |
| const uint8_t * | getRamBuffer () const |
| Get pointer to internal RAM buffer (read-only). | |
| size_t | getRamBufferSize () const |
| Get size of internal RAM buffer in bytes. | |
Protected Member Functions | |
| void | _writeRam (uint8_t data, uint8_t address) |
| Write single byte to RAM at specified address. | |
| virtual void | _writeRam (uint8_t *data, size_t length, uint8_t address) |
| Write multiple bytes to RAM starting at specified address. | |
| virtual void | _sendBits (uint16_t data, uint8_t bitCount=8) |
| Send bits to the controller. | |
Protected Member Functions inherited from SegLCDLib | |
| void | _setFlag (uint8_t mask) |
| Set a specific flag bit. | |
| void | _clearFlag (uint8_t mask) |
| Clear a specific flag bit. | |
| bool | _isFlagSet (uint8_t mask) const |
| Check if a specific flag bit is set. | |
| void | _clearAllFlags () |
| Clear all flags. | |
| bool | _dotWrite (uint8_t ch, int8_t minCol, int8_t maxCol, int8_t ramOffset) |
| Write decimal point. | |
| void | _dotClearCur (int8_t minCol, int8_t maxCol) |
| Clear current decimal (overwrite). | |
| void | _colonClearIfNotFlagged (uint8_t ch, uint8_t colonCol, uint8_t colonFlag) |
| Clear colon if its flag is not set. | |
| virtual void | _setDecimal (uint8_t row, uint8_t col, bool state) |
| Virtual method for setting decimal point. | |
| virtual void | _setColon (uint8_t row, uint8_t col, bool state) |
| Virtual method for setting colon. | |
| void | _allocateBuffer (size_t size) |
| Allocate RAM buffer for display data. | |
| void | _writeRamMasked (uint8_t data, uint8_t address, uint8_t mask=0xFF) |
| Write to display RAM with nibble-aware masking support. | |
| uint8_t | _get_char_value (char ch) |
| Helper method to convert a character to its segment representation. | |
| uint16_t | _get_16char_value (char ch) |
| Helper method to convert a character to its 16-segment representation. | |
Protected Attributes | |
| uint8_t | _wr |
| Write clock pin for the display. | |
| uint8_t | _rd |
| Read clock pin for the display. | |
| uint8_t | _data |
| Data pin for the display. | |
| uint8_t | _cs |
| Chip select pin for the display. | |
| uint8_t | _maxAddress |
| Maximum address for this controller. | |
Protected Attributes inherited from SegLCDLib | |
| bool | _autoFlush = true |
| Autoflush mode enabled flag (default: true for LCD API 1.0 compatibility). | |
| int8_t | _backlightPin = -1 |
| Backlight GPIO pin (-1 if disabled) | |
| BacklightMode | _backlightMode = BACKLIGHT_DIGITAL |
| Backlight mode (DIGITAL or PWM) | |
| bool | _backlightActiveHigh = true |
| Backlight active high flag. | |
| uint8_t | _backlightBrightness = 0 |
| Cached backlight brightness. | |
| uint8_t | _displayFlags = 0 |
| LEDC channel for old ESP32 Arduino Core (2.0.x) | |
| uint8_t * | _ramBuffer = nullptr |
| Dynamic RAM buffer for display data (allocated by derived classes). | |
| size_t | _ramBufferSize = 0 |
| Size of allocated RAM buffer in bytes. | |
| uint8_t | _cursorRow = 0 |
| Current Row. | |
| uint8_t | _cursorCol = 0 |
| Current Column. | |
Additional Inherited Members | |
Public Types inherited from SegLCDLib | |
| enum | BacklightMode { BACKLIGHT_DIGITAL , BACKLIGHT_PWM } |
| Backlight mode for GPIO control. More... | |
Static Protected Attributes inherited from SegLCDLib | |
| static constexpr uint8_t | FLAG_PENDING_DOT = 0x80 |
| Common flag for decimal handling when RAM offset is 0. | |
Base class for 3-wire serial LCD segment display drivers.
This class implements the common 3-wire serial communication protocol used by controllers like HT1621, VK0192, and HT1622.
| SegDriver_3Wire::SegDriver_3Wire | ( | uint8_t | chipselect, |
| uint8_t | data, | ||
| uint8_t | write, | ||
| uint8_t | read = -1 |
||
| ) |
Constructor for 3-wire serial LCD driver.
| chipselect | Chip select pin |
| data | Data pin |
| write | Write clock pin |
| read | Read clock pin (optional, default -1) |
|
protectedvirtual |
Send bits to the controller.
This method can be overridden by derived classes to implement controller-specific timing requirements.
| data | Data to send |
| bitCount | Number of bits to send (default 8) |
Reimplemented in SegDriver_HT1622, and SegDriver_VK0192.
|
protectedvirtual |
Write multiple bytes to RAM starting at specified address.
| data | Pointer to data array |
| length | Number of bytes to write |
| address | Starting RAM address (0-based) |
Implements SegLCDLib.
Reimplemented in SegDriver_HT1622, and SegDriver_VK0192.
|
protectedvirtual |
Write single byte to RAM at specified address.
| data | Data byte to write |
| address | RAM address (0-based) |
Implements SegLCDLib.
Reimplemented in SegDriver_HT1622, and SegDriver_VK0192.
|
overridevirtual |
|
overridevirtual |
Initialize GPIO pins for communication.
Implements SegLCDLib.
Reimplemented in SegLCD_HT1621_4SegDegree, SegLCD_HT1621_6SegBat, SegLCD_HT1621_LCM0844, SegLCD_HT1621_LCM59011, SegLCD_HT1621_LCM88128, SegLCD_HT1622_10Dig16Seg, and SegLCD_VK0192_5DigSigBattProgress.
|
overridevirtual |
Turn the display off.
Implements SegLCDLib.
|
overridevirtual |
Turn the display on.
Implements SegLCDLib.
|
protected |
Chip select pin for the display.
|
protected |
Data pin for the display.
|
protected |
Maximum address for this controller.
|
protected |
Read clock pin for the display.
|
protected |
Write clock pin for the display.