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#include <SegDriver_HT1621.h>
5
20 public:
21 SegLCD_HT1621_4SegDegree(uint8_t chipselect, uint8_t data, uint8_t write, uint8_t read = -1);
22 void init() override;
23 void clear() override;
24 void setCursor(uint8_t row, uint8_t col) override;
25 void setDegreeSymbol(bool state, uint8_t index = 0);
26 size_t write(uint8_t ch) override;
27
28 private:
29 void _setColon(uint8_t row, uint8_t col, bool state) override;
30 void _setDecimal(uint8_t row, uint8_t col, bool state) override;
31 static constexpr uint8_t RAM_SIZE = 4;
32 static constexpr uint8_t DIGITS = 4;
33 static constexpr uint8_t ADDR_SYMBOLS = 6;
34
35 // Decimal configuration: dots at positions 0-1, stored in symbols buffer
36 static constexpr uint8_t DECIMAL_MIN_COL = 0;
37 static constexpr uint8_t DECIMAL_MAX_COL = 1;
38 // Note: This LCD uses symbols buffer for dots/colon, not DECIMAL_POINT_BIT
39
40 // Colon configuration
41 static constexpr uint8_t COLON_COL = 1; // Colon at position 1 (between digits 1-2)
42
43 // Flag for colon state
44 static constexpr uint8_t FLAG_COLON_DISPLAYED = 0x01;
45
46 uint8_t _mapSegments(uint8_t val);
47 void _writeSymbols(uint8_t bitnum, bool state);
48};
49#endif
HT1621 LCD segment display driver.
Definition SegDriver_HT1621.h:12
4-digit 7-segment LCD with degree symbol and colon (HT1621).
Definition SegLCD_HT1621_4SegDegree.h:19
uint8_t _mapSegments(uint8_t val)
Definition SegLCD_HT1621_4SegDegree.cpp:145
size_t write(uint8_t ch) override
Definition SegLCD_HT1621_4SegDegree.cpp:72
static constexpr uint8_t COLON_COL
Definition SegLCD_HT1621_4SegDegree.h:41
static constexpr uint8_t DECIMAL_MIN_COL
Definition SegLCD_HT1621_4SegDegree.h:36
void init() override
Initialize GPIO pins for communication.
Definition SegLCD_HT1621_4SegDegree.cpp:8
void setCursor(uint8_t row, uint8_t col) override
Set cursor on exact digit.
Definition SegLCD_HT1621_4SegDegree.cpp:22
static constexpr uint8_t DECIMAL_MAX_COL
Definition SegLCD_HT1621_4SegDegree.h:37
void _writeSymbols(uint8_t bitnum, bool state)
Definition SegLCD_HT1621_4SegDegree.cpp:158
static constexpr uint8_t DIGITS
Definition SegLCD_HT1621_4SegDegree.h:32
void clear() override
Clear all visible segments on the display.
Definition SegLCD_HT1621_4SegDegree.cpp:17
static constexpr uint8_t ADDR_SYMBOLS
Definition SegLCD_HT1621_4SegDegree.h:33
void _setDecimal(uint8_t row, uint8_t col, bool state) override
Virtual method for setting decimal point.
Definition SegLCD_HT1621_4SegDegree.cpp:47
void setDegreeSymbol(bool state, uint8_t index=0)
Definition SegLCD_HT1621_4SegDegree.cpp:26
static constexpr uint8_t FLAG_COLON_DISPLAYED
Definition SegLCD_HT1621_4SegDegree.h:44
static constexpr uint8_t RAM_SIZE
Definition SegLCD_HT1621_4SegDegree.h:31
void _setColon(uint8_t row, uint8_t col, bool state) override
Virtual method for setting colon.
Definition SegLCD_HT1621_4SegDegree.cpp:31