|
SegLCDLib
|
PCF8576 LCD segment driver. More...
#include <SegDriver_PCF8576.h>
Public Member Functions | |
| SegDriver_PCF85176 (SegTransportI2C &transport, uint8_t address=DEFAULT_PCX85_I2C_ADDRESS, uint8_t subaddress=DEFAULT_SUBADDRESS) | |
| Constructor for PCF85176 segment driver. | |
Public Member Functions inherited from SegDriver_PCF85176 | |
| SegDriver_PCF85176 (SegTransportI2C &transport, uint8_t address=DEFAULT_PCX85_I2C_ADDRESS, uint8_t subaddress=DEFAULT_SUBADDRESS) | |
| Constructor for PCF85176 segment driver. | |
Public Member Functions inherited from SegDriver_PCx85 | |
| SegDriver_PCx85 (SegTransportI2C &transport, uint8_t address, uint8_t subaddress) | |
| Constructor for PCx85 segment driver. | |
| virtual void | init () override |
| Logical display sections that can be targeted by higher-level rendering logic. | |
| void | bankSelect (uint8_t input, uint8_t output) |
| Select bank for input and output. | |
| void | blink (BlinkFrequency blink=BLINK_FREQUENCY_OFF, BlinkMode mode=BLINK_MODE_NORMAL) |
| Set blink frequency and mode. | |
| void | on () override |
| Turn the display on. | |
| void | off () override |
| Turn the display off. | |
| void | command (uint8_t command) override |
| Send RAW command to controller. | |
| 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 SegLCDLib | |
| SegLCDLib ()=default | |
| Default constructor. | |
| virtual | ~SegLCDLib () |
| Virtual destructor to ensure proper cleanup in derived classes. | |
| SegLCDLib (const SegLCDLib &)=delete | |
| Disable copying to keep the RAM buffer uniquely owned. | |
| SegLCDLib & | operator= (const SegLCDLib &)=delete |
| 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) |
| size_t | write (const char *str) |
| Write a null-terminated string to the display. | |
| size_t | write (const char *buffer, size_t size) |
| Write a buffer of characters to the display. | |
| void | initBacklight (SegBacklight *backlight, BacklightMode backlightMode=BACKLIGHT_DIGITAL) |
| Initialize 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. | |
Additional Inherited Members | |
Public Types inherited from SegDriver_PCx85 | |
| enum | ModeStatus { MODE_STATUS_BLANK = 0 , MODE_STATUS_ENABLED = 1 } |
| Enable/disable display. More... | |
| enum | BlinkFrequency { BLINK_FREQUENCY_OFF = 0 , BLINK_FREQUENCY_1 = 1 , BLINK_FREQUENCY_2 = 2 , BLINK_FREQUENCY_3 = 3 } |
| Set blink frequency. More... | |
| enum | BlinkMode { BLINK_MODE_NORMAL = 0 , BLINK_MODE_ALTRAM = 1 } |
| Set blink mode. More... | |
Public Types inherited from SegLCDLib | |
| enum | BacklightMode { BACKLIGHT_DIGITAL , BACKLIGHT_PWM } |
| Backlight mode for GPIO control. More... | |
Protected Member Functions inherited from SegDriver_PCF85176 | |
| void | _sendCommand (uint8_t command, bool last=true) override |
| void | _writeRam (uint8_t *data, size_t length, uint8_t address=0) override |
| Low-level method to write a data buffer to display RAM. | |
| void | _writeRam (uint8_t data, uint8_t address=0) |
| Low-level method to write a single byte to display RAM. | |
| virtual void | _writeRam (uint8_t *data, size_t length, uint8_t address)=0 |
| Low-level method to write a data buffer to display RAM. | |
Protected Member Functions inherited from SegDriver_PCx85 | |
| void | _setMode (ModeStatus status, ModeDrive drive=MODE_DRIVE_14, ModeBias bias=MODE_BIAS_13) |
| Set the mode of the display. | |
| void | _writeRam (uint8_t data, uint8_t address=0) |
| Low-level method to write a single byte to display RAM. | |
| virtual void | _writeRam (uint8_t *data, size_t length, uint8_t address)=0 |
| Low-level method to write a data buffer to display RAM. | |
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, uint8_t, bool) |
| Virtual method for setting decimal point. | |
| virtual void | _setColon (uint8_t, uint8_t, bool) |
| 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. | |
| void | _writeRam (uint8_t data, uint8_t address=0) |
| Low-level method to write a single byte to display RAM. | |
| 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 inherited from SegDriver_PCx85 | |
| SegTransportI2C & | _transport |
| uint8_t | _address |
| uint8_t | _subaddress |
| ModeDrive | _drive |
| ModeBias | _bias |
Protected Attributes inherited from SegLCDLib | |
| bool | _autoFlush = true |
| Autoflush mode enabled flag (default: true for LCD API 1.0 compatibility). | |
| SegBacklight * | _backlight = nullptr |
| Backlight implementation (nullptr if disabled) | |
| BacklightMode | _backlightMode = BACKLIGHT_DIGITAL |
| Backlight mode (DIGITAL or PWM) | |
| uint8_t | _backlightBrightness = 0 |
| Cached backlight brightness. | |
| uint8_t | _displayFlags = 0 |
| Generic flag storage for display-specific state tracking. | |
| 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 SegDriver_PCF85176 | |
| static constexpr uint8_t | MAX_ADDRESS = 39 |
| static constexpr uint8_t | CMD_LAST_COMMAND = 0x80 |
Static Protected Attributes inherited from SegDriver_PCx85 | |
| static constexpr uint8_t | CMD_MODE = 0x40 |
| static constexpr uint8_t | CMD_DEVICE_SELECT = 0x60 |
| static constexpr uint8_t | CMD_BLINK = 0x70 |
| static constexpr uint8_t | CMD_BANK_SELECT = 0x78 |
| static constexpr uint8_t | DEFAULT_PCX85_I2C_ADDRESS = 0x38 |
| static constexpr uint8_t | DEFAULT_SUBADDRESS = 0x00 |
Static Protected Attributes inherited from SegLCDLib | |
| static constexpr uint8_t | FLAG_PENDING_DOT = 0x80 |
| Common flag for decimal handling when RAM offset is 0. | |
PCF8576 LCD segment driver.
PCF8576 is protocol-compatible with PCF85176 and is superseded by PCF85176. This class only provides a chip-specific type name.
|
inline |
Constructor for PCF85176 segment driver.
| transport | I2C transport implementation |
| address | I2C address of the PCF85176 device (default is 0x38) |
| subaddress | Subaddress for the device (default is 0) |