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 <SegDriver_PCx85.h>
5
20 public:
21 typedef enum {
23 SYMBOL_TILDA = 0x80
25
26 SegLCD_PCF85176_4DR821B(SegTransportI2C& transport, uint8_t address = DEFAULT_PCF85176_I2C_ADDRESS, uint8_t subaddress = DEFAULT_SUBADDRESS);
27 void init() override;
28 void setSymbol(uint8_t symbol, bool state);
29 void setCursor(uint8_t row, uint8_t col) override;
30 size_t write(uint8_t ch) override;
31
32 private:
33 void _setColon(uint8_t row, uint8_t col, bool state) override;
34 void _setDecimal(uint8_t row, uint8_t col, bool state) override;
35 void _setCol0Symbol(uint8_t ch);
36 bool _handleCol0Overlay(uint8_t ch);
37 static constexpr uint8_t RAM_SIZE = 5;
38
39 static constexpr uint8_t FLAG_COLON_DISPLAYED = 0x01;
40 static constexpr uint8_t FLAG_COL0_OVERLAY = 0x02;
41
42 static constexpr uint8_t ADDR_SYMBOLS = 0x00;
43 static constexpr uint8_t ADDR_SEGS = 0x01;
44 static constexpr uint8_t DIGITS = 4;
45 static constexpr uint8_t DECIMAL_POINT_BIT = 0x01;
46 static constexpr uint8_t MIDDLE_COLON_BIT = 0x01;
47 static constexpr uint8_t LEFT_COLON_BIT = 0x20;
48 static constexpr uint8_t MINUS_BIT = 0x40;
49 static constexpr uint8_t DECIMAL_MIN_COL = 0;
50 static constexpr uint8_t DECIMAL_MAX_COL = 2;
51 static constexpr int8_t DECIMAL_COL_OFFSET = -1;
52};
53#endif
Implementation of the PCF85176 controllers.
Definition SegDriver_PCx85.h:141
static constexpr uint8_t DEFAULT_PCF85176_I2C_ADDRESS
Definition SegDriver_PCx85.h:23
static constexpr uint8_t DEFAULT_SUBADDRESS
Definition SegDriver_PCx85.h:24
Tesla 4DR821B / 4DT821B dashboard cluster LCD (PCF85176).
Definition SegLCD_PCF85176_4DR821B.h:19
static constexpr uint8_t DIGITS
Definition SegLCD_PCF85176_4DR821B.h:44
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:49
static constexpr uint8_t DECIMAL_MAX_COL
Definition SegLCD_PCF85176_4DR821B.h:50
static constexpr int8_t DECIMAL_COL_OFFSET
Definition SegLCD_PCF85176_4DR821B.h:51
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:47
static constexpr uint8_t ADDR_SYMBOLS
Definition SegLCD_PCF85176_4DR821B.h:42
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:37
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:21
@ SYMBOL_TILDA
Definition SegLCD_PCF85176_4DR821B.h:23
@ SYMBOL_ARROW
Definition SegLCD_PCF85176_4DR821B.h:22
static constexpr uint8_t DECIMAL_POINT_BIT
Definition SegLCD_PCF85176_4DR821B.h:45
static constexpr uint8_t ADDR_SEGS
Definition SegLCD_PCF85176_4DR821B.h:43
static constexpr uint8_t FLAG_COLON_DISPLAYED
Definition SegLCD_PCF85176_4DR821B.h:39
static constexpr uint8_t MINUS_BIT
Definition SegLCD_PCF85176_4DR821B.h:48
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:40
static constexpr uint8_t MIDDLE_COLON_BIT
Definition SegLCD_PCF85176_4DR821B.h:46
Abstract I2C transport.
Definition SegTransport.h:65