SegLCDLib
Loading...
Searching...
No Matches
SegLCD_HT1621_4SegDegree.h
Go to the documentation of this file.
1#ifndef SEGLCD_HT1621_4SEGDEGREE_H
2#define SEGLCD_HT1621_4SEGDEGREE_H
3
4
5#if !defined(SEGLCD_DISABLE_ALL_LCDS) || defined(SEGLCD_ENABLE_HT1621_4SEGDEGREE)
6#include <SegDriver_HT1621.h>
7
22 public:
23 SegLCD_HT1621_4SegDegree(SegTransport3Wire& transport, uint8_t chipselect);
24 void init() override;
25 void clear() override;
26 void setCursor(uint8_t row, uint8_t col) override;
27 void setDegreeSymbol(bool state, uint8_t index = 0);
28 using SegLCDLib::write;
29 size_t write(uint8_t ch) override;
30
31 private:
32 void _setColon(uint8_t row, uint8_t col, bool state) override;
33 void _setDecimal(uint8_t row, uint8_t col, bool state) override;
34 static constexpr uint8_t RAM_SIZE = 4;
35 static constexpr uint8_t DIGITS = 4;
36 static constexpr uint8_t ADDR_SYMBOLS = 6;
37
38 // Decimal configuration: dots at positions 0-1, stored in symbols buffer
39 static constexpr uint8_t DECIMAL_MIN_COL = 0;
40 static constexpr uint8_t DECIMAL_MAX_COL = 1;
41 // Note: This LCD uses symbols buffer for dots/colon, not DECIMAL_POINT_BIT
42
43 // Colon configuration
44 static constexpr uint8_t COLON_COL = 1; // Colon at position 1 (between digits 1-2)
45
46 // Flag for colon state
47 static constexpr uint8_t FLAG_COLON_DISPLAYED = 0x01;
48
49 uint8_t _mapSegments(uint8_t val);
50 void _writeSymbols(uint8_t bitnum, bool state);
51};
52#endif
53
54#endif
HT1621 LCD segment display driver.
Definition SegDriver_HT1621.h:12
virtual size_t write(uint8_t)
Definition SegLCDLib.h:113
4-digit 7-segment LCD with degree symbol and colon (HT1621).
Definition SegLCD_HT1621_4SegDegree.h:21
uint8_t _mapSegments(uint8_t val)
Definition SegLCD_HT1621_4SegDegree.cpp:147
size_t write(uint8_t ch) override
Definition SegLCD_HT1621_4SegDegree.cpp:74
static constexpr uint8_t COLON_COL
Definition SegLCD_HT1621_4SegDegree.h:44
static constexpr uint8_t DECIMAL_MIN_COL
Definition SegLCD_HT1621_4SegDegree.h:39
void init() override
Initialize GPIO pins for communication.
Definition SegLCD_HT1621_4SegDegree.cpp:10
void setCursor(uint8_t row, uint8_t col) override
Set cursor on exact digit.
Definition SegLCD_HT1621_4SegDegree.cpp:24
static constexpr uint8_t DECIMAL_MAX_COL
Definition SegLCD_HT1621_4SegDegree.h:40
void _writeSymbols(uint8_t bitnum, bool state)
Definition SegLCD_HT1621_4SegDegree.cpp:160
static constexpr uint8_t DIGITS
Definition SegLCD_HT1621_4SegDegree.h:35
void clear() override
Clear all visible segments on the display.
Definition SegLCD_HT1621_4SegDegree.cpp:19
static constexpr uint8_t ADDR_SYMBOLS
Definition SegLCD_HT1621_4SegDegree.h:36
void _setDecimal(uint8_t row, uint8_t col, bool state) override
Virtual method for setting decimal point.
Definition SegLCD_HT1621_4SegDegree.cpp:49
void setDegreeSymbol(bool state, uint8_t index=0)
Definition SegLCD_HT1621_4SegDegree.cpp:28
static constexpr uint8_t FLAG_COLON_DISPLAYED
Definition SegLCD_HT1621_4SegDegree.h:47
static constexpr uint8_t RAM_SIZE
Definition SegLCD_HT1621_4SegDegree.h:34
void _setColon(uint8_t row, uint8_t col, bool state) override
Virtual method for setting colon.
Definition SegLCD_HT1621_4SegDegree.cpp:33
Abstract 3-wire serial transport.
Definition SegTransport.h:23