1#ifndef SEGDRIVER_PCx85_H
2#define SEGDRIVER_PCx85_H
62 virtual void init()
override;
73 void bankSelect(uint8_t input, uint8_t output);
95 void flush(uint8_t startAddr, uint8_t length)
override;
111 void _writeRam(uint8_t *data,
size_t length, uint8_t address = 0)
override = 0;
Base class for segment LCD display drivers.
ModeBias
Bias mode used by LCD controller.
Definition SegLCDLib.h:31
@ MODE_BIAS_13
1/3 bias
Definition SegLCDLib.h:32
ModeDrive
Drive mode used by LCD controller.
Definition SegLCDLib.h:21
@ MODE_DRIVE_14
1/4 multiplexing
Definition SegLCDLib.h:25
Base class for PCx85 LCD segment display drivers.
Definition SegDriver_PCx85.h:12
ModeStatus
Enable/disable display.
Definition SegDriver_PCx85.h:25
@ MODE_STATUS_BLANK
Display is blanked.
Definition SegDriver_PCx85.h:26
@ MODE_STATUS_ENABLED
Display is enabled.
Definition SegDriver_PCx85.h:27
void command(uint8_t command) override
Send RAW command to controller.
Definition SegDriver_PCx85.cpp:30
uint8_t _subaddress
Definition SegDriver_PCx85.h:117
void _setMode(ModeStatus status, ModeDrive drive=MODE_DRIVE_14, ModeBias bias=MODE_BIAS_13)
Set the mode of the display.
Definition SegDriver_PCx85.cpp:34
static constexpr uint8_t CMD_BANK_SELECT
Definition SegDriver_PCx85.h:17
void off() override
Turn the display off.
Definition SegDriver_PCx85.cpp:26
virtual void flush()
Flush all buffered changes to the display.
Definition SegLCDLib.cpp:322
ModeBias _bias
Definition SegDriver_PCx85.h:119
static constexpr uint8_t CMD_DEVICE_SELECT
Definition SegDriver_PCx85.h:15
uint8_t _address
Definition SegDriver_PCx85.h:116
static constexpr uint8_t DEFAULT_PCX85_I2C_ADDRESS
Definition SegDriver_PCx85.h:18
static constexpr uint8_t CMD_MODE
Definition SegDriver_PCx85.h:14
virtual void init() override
Logical display sections that can be targeted by higher-level rendering logic.
Definition SegDriver_PCx85.cpp:9
BlinkFrequency
Set blink frequency.
Definition SegDriver_PCx85.h:33
@ BLINK_FREQUENCY_OFF
No blinking.
Definition SegDriver_PCx85.h:34
@ BLINK_FREQUENCY_2
Blink at ~1Hz.
Definition SegDriver_PCx85.h:36
@ BLINK_FREQUENCY_3
Blink at ~0.5Hz.
Definition SegDriver_PCx85.h:37
@ BLINK_FREQUENCY_1
Blink at ~2Hz.
Definition SegDriver_PCx85.h:35
void on() override
Turn the display on.
Definition SegDriver_PCx85.cpp:22
SegTransportI2C & _transport
Definition SegDriver_PCx85.h:115
void _writeRam(uint8_t *data, size_t length, uint8_t address=0) override=0
Low-level method to write a data buffer to display RAM.
void bankSelect(uint8_t input, uint8_t output)
Select bank for input and output.
Definition SegDriver_PCx85.cpp:14
static constexpr uint8_t CMD_BLINK
Definition SegDriver_PCx85.h:16
ModeDrive _drive
Definition SegDriver_PCx85.h:118
BlinkMode
Set blink mode.
Definition SegDriver_PCx85.h:46
@ BLINK_MODE_NORMAL
Normal blink mode.
Definition SegDriver_PCx85.h:47
@ BLINK_MODE_ALTRAM
Alternate RAM blink mode.
Definition SegDriver_PCx85.h:48
void blink(BlinkFrequency blink=BLINK_FREQUENCY_OFF, BlinkMode mode=BLINK_MODE_NORMAL)
Set blink frequency and mode.
Definition SegDriver_PCx85.cpp:18
static constexpr uint8_t DEFAULT_SUBADDRESS
Definition SegDriver_PCx85.h:19
virtual void _sendCommand(uint8_t command, bool last=true)=0
Abstract base class for LCD segment display drivers.
Definition SegLCDLib.h:45
virtual void flush()
Flush all buffered changes to the display.
Definition SegLCDLib.cpp:322
void _writeRam(uint8_t data, uint8_t address=0)
Low-level method to write a single byte to display RAM.
Definition SegLCDLib.cpp:389
Abstract I2C transport.
Definition SegTransport.h:54