SegLCDLib
Loading...
Searching...
No Matches
SegLCD_PCF85176_4DR821B.h
Go to the documentation of this file.
1#ifndef SEGLCD_PCF85176_4DR821B_H
2#define SEGLCD_PCF85176_4DR821B_H
3
4#include <Wire.h>
5#include <SegDriver_PCx85.h>
6
21 public:
22 typedef enum {
24 SYMBOL_TILDA = 0x80
26
27 SegLCD_PCF85176_4DR821B(TwoWire& i2c, uint8_t address = DEFAULT_PCF85176_I2C_ADDRESS, uint8_t subaddress = DEFAULT_SUBADDRESS);
28 void init() override;
29 void setSymbol(uint8_t symbol, bool state);
30 void setCursor(uint8_t row, uint8_t col) override;
31 size_t write(uint8_t ch) override;
32
33 private:
34 void _setColon(uint8_t row, uint8_t col, bool state) override;
35 void _setDecimal(uint8_t row, uint8_t col, bool state) override;
36 void _setCol0Symbol(uint8_t ch);
37 bool _handleCol0Overlay(uint8_t ch);
38 static constexpr uint8_t RAM_SIZE = 5;
39
40 static constexpr uint8_t FLAG_COLON_DISPLAYED = 0x01;
41 static constexpr uint8_t FLAG_COL0_OVERLAY = 0x02;
42
43 static constexpr uint8_t ADDR_SYMBOLS = 0x00;
44 static constexpr uint8_t ADDR_SEGS = 0x01;
45 static constexpr uint8_t DIGITS = 4;
46 static constexpr uint8_t DECIMAL_POINT_BIT = 0x01;
47 static constexpr uint8_t MIDDLE_COLON_BIT = 0x01;
48 static constexpr uint8_t LEFT_COLON_BIT = 0x20;
49 static constexpr uint8_t MINUS_BIT = 0x40;
50 static constexpr uint8_t DECIMAL_MIN_COL = 0;
51 static constexpr uint8_t DECIMAL_MAX_COL = 2;
52 static constexpr int8_t DECIMAL_COL_OFFSET = -1;
53};
54#endif
Implementation of the PCF85176 controllers.
Definition SegDriver_PCx85.h:144
static constexpr uint8_t DEFAULT_PCF85176_I2C_ADDRESS
Definition SegDriver_PCx85.h:26
static constexpr uint8_t DEFAULT_SUBADDRESS
Definition SegDriver_PCx85.h:27
Tesla 4DR821B / 4DT821B dashboard cluster LCD (PCF85176).
Definition SegLCD_PCF85176_4DR821B.h:20
static constexpr uint8_t DIGITS
Definition SegLCD_PCF85176_4DR821B.h:45
size_t write(uint8_t ch) override
Definition SegLCD_PCF85176_4DR821B.cpp:97
static constexpr uint8_t DECIMAL_MIN_COL
Definition SegLCD_PCF85176_4DR821B.h:50
static constexpr uint8_t DECIMAL_MAX_COL
Definition SegLCD_PCF85176_4DR821B.h:51
static constexpr int8_t DECIMAL_COL_OFFSET
Definition SegLCD_PCF85176_4DR821B.h:52
void _setDecimal(uint8_t row, uint8_t col, bool state) override
Virtual method for setting decimal point.
Definition SegLCD_PCF85176_4DR821B.cpp:65
static constexpr uint8_t LEFT_COLON_BIT
Definition SegLCD_PCF85176_4DR821B.h:48
static constexpr uint8_t ADDR_SYMBOLS
Definition SegLCD_PCF85176_4DR821B.h:43
void init() override
Logical display sections that can be targeted by higher-level rendering logic.
Definition SegLCD_PCF85176_4DR821B.cpp:7
static constexpr uint8_t RAM_SIZE
Definition SegLCD_PCF85176_4DR821B.h:38
void _setCol0Symbol(uint8_t ch)
Definition SegLCD_PCF85176_4DR821B.cpp:26
void _setColon(uint8_t row, uint8_t col, bool state) override
Virtual method for setting colon.
Definition SegLCD_PCF85176_4DR821B.cpp:44
SymbolFlags
Definition SegLCD_PCF85176_4DR821B.h:22
@ SYMBOL_TILDA
Definition SegLCD_PCF85176_4DR821B.h:24
@ SYMBOL_ARROW
Definition SegLCD_PCF85176_4DR821B.h:23
static constexpr uint8_t DECIMAL_POINT_BIT
Definition SegLCD_PCF85176_4DR821B.h:46
static constexpr uint8_t ADDR_SEGS
Definition SegLCD_PCF85176_4DR821B.h:44
static constexpr uint8_t FLAG_COLON_DISPLAYED
Definition SegLCD_PCF85176_4DR821B.h:40
static constexpr uint8_t MINUS_BIT
Definition SegLCD_PCF85176_4DR821B.h:49
void setSymbol(uint8_t symbol, bool state)
Definition SegLCD_PCF85176_4DR821B.cpp:12
bool _handleCol0Overlay(uint8_t ch)
Definition SegLCD_PCF85176_4DR821B.cpp:150
void setCursor(uint8_t row, uint8_t col) override
Set cursor on exact digit.
Definition SegLCD_PCF85176_4DR821B.cpp:85
static constexpr uint8_t FLAG_COL0_OVERLAY
Definition SegLCD_PCF85176_4DR821B.h:41
static constexpr uint8_t MIDDLE_COLON_BIT
Definition SegLCD_PCF85176_4DR821B.h:47