SegLCDLib
Loading...
Searching...
No Matches
SegLCD_HT1622_10Dig16Seg Class Reference

10-digit 16-segment alphanumeric LCD (HT1622). More...

#include <SegLCD_HT1622_10Dig16Seg.h>

Inheritance diagram for SegLCD_HT1622_10Dig16Seg:
SegDriver_HT1622 SegDriver_3Wire SegLCDLib

Public Member Functions

 SegLCD_HT1622_10Dig16Seg (uint8_t chipselect, uint8_t data, uint8_t write, uint8_t read=-1)
 
void init () override
 Initialize GPIO pins for communication.
 
size_t write (uint8_t ch) override
 
- Public Member Functions inherited from SegDriver_HT1622
 SegDriver_HT1622 (uint8_t chipselect, uint8_t data, uint8_t write, uint8_t read=-1)
 Constructor for HT1622 segment driver.
 
void clear () override
 Clear all visible segments on the display.
 
void flush (uint8_t startAddr, uint8_t length) override
 Flush specific range of buffered changes to the display.
 
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.
 
- Public Member Functions inherited from SegDriver_3Wire
 SegDriver_3Wire (uint8_t chipselect, uint8_t data, uint8_t write, uint8_t read=-1)
 Constructor for 3-wire serial LCD driver.
 
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.
 
void home ()
 Set cursor to 0, 0 without clear display.
 
virtual void setCursor (uint8_t row, uint8_t col)
 Set cursor on exact digit.
 
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.
 
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 _setDecimal (uint8_t row, uint8_t col, bool state) override
 Virtual method for setting decimal point.
 
- Protected Member Functions inherited from SegDriver_HT1622
void _writeRam (uint8_t data, uint8_t address=0)
 Override _writeRam to implement HT1622-specific timing requirements.
 
void _writeRam (uint8_t *data, size_t length, uint8_t address=0) override
 Write multiple bytes to RAM starting at specified address.
 
void _sendBits (uint16_t data, uint8_t bitCount=8) override
 Override _sendBits to implement HT1622-specific timing requirements.
 
- 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 _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.
 

Private Member Functions

void _writeDigit16seg (uint8_t row, uint8_t col, char c)
 
uint16_t _map16Segments (uint16_t val)
 
int8_t _get16SegmentsAddress (uint8_t row, uint8_t col)
 

Static Private Attributes

static constexpr uint8_t RAM_SIZE = 23
 
static constexpr uint8_t DIGITS = 10
 
static constexpr uint8_t DECIMAL_MIN_COL = 0
 
static constexpr uint8_t DECIMAL_MAX_COL = 8
 
static constexpr int8_t DECIMAL_COL_OFFSET = -1
 

Additional Inherited Members

- Public Types inherited from SegLCDLib
enum  BacklightMode { BACKLIGHT_DIGITAL , BACKLIGHT_PWM }
 Backlight mode for GPIO control. More...
 
- Protected Attributes inherited from SegDriver_3Wire
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.
 
- Static Protected Attributes inherited from SegLCDLib
static constexpr uint8_t FLAG_PENDING_DOT = 0x80
 Common flag for decimal handling when RAM offset is 0.
 

Detailed Description

10-digit 16-segment alphanumeric LCD (HT1622).

Features: decimal points, full alphanumeric characters. Integrated HT1622 controller, 3-wire serial protocol. Strict timing requirements (4us pulse width).

See also
examples/HT1622/10Digit16SegmentLCD/10Digit16SegmentLCD.ino

Constructor & Destructor Documentation

◆ SegLCD_HT1622_10Dig16Seg()

SegLCD_HT1622_10Dig16Seg::SegLCD_HT1622_10Dig16Seg ( uint8_t  chipselect,
uint8_t  data,
uint8_t  write,
uint8_t  read = -1 
)

Member Function Documentation

◆ _get16SegmentsAddress()

int8_t SegLCD_HT1622_10Dig16Seg::_get16SegmentsAddress ( uint8_t  row,
uint8_t  col 
)
private

◆ _map16Segments()

uint16_t SegLCD_HT1622_10Dig16Seg::_map16Segments ( uint16_t  val)
private

◆ _setDecimal()

void SegLCD_HT1622_10Dig16Seg::_setDecimal ( uint8_t  row,
uint8_t  col,
bool  state 
)
overrideprotectedvirtual

Virtual method for setting decimal point.

Each LCD has its own implementation with HW specifics. Default implementation is empty (no-op).

Reimplemented from SegLCDLib.

◆ _writeDigit16seg()

void SegLCD_HT1622_10Dig16Seg::_writeDigit16seg ( uint8_t  row,
uint8_t  col,
char  c 
)
private

◆ init()

void SegLCD_HT1622_10Dig16Seg::init ( )
overridevirtual

Initialize GPIO pins for communication.

Reimplemented from SegDriver_3Wire.

◆ write()

size_t SegLCD_HT1622_10Dig16Seg::write ( uint8_t  ch)
overridevirtual

Reimplemented from SegLCDLib.

Field Documentation

◆ DECIMAL_COL_OFFSET

constexpr int8_t SegLCD_HT1622_10Dig16Seg::DECIMAL_COL_OFFSET = -1
staticconstexprprivate

◆ DECIMAL_MAX_COL

constexpr uint8_t SegLCD_HT1622_10Dig16Seg::DECIMAL_MAX_COL = 8
staticconstexprprivate

◆ DECIMAL_MIN_COL

constexpr uint8_t SegLCD_HT1622_10Dig16Seg::DECIMAL_MIN_COL = 0
staticconstexprprivate

◆ DIGITS

constexpr uint8_t SegLCD_HT1622_10Dig16Seg::DIGITS = 10
staticconstexprprivate

◆ RAM_SIZE

constexpr uint8_t SegLCD_HT1622_10Dig16Seg::RAM_SIZE = 23
staticconstexprprivate

The documentation for this class was generated from the following files: