SegLCDLib
Loading...
Searching...
No Matches
SegLCD_HT1621_6SegBat.h
Go to the documentation of this file.
1#ifndef SEGLCD_HT1621_6SEGBAT_H
2#define SEGLCD_HT1621_6SEGBAT_H
3
4
5#if !defined(SEGLCD_DISABLE_ALL_LCDS) || defined(SEGLCD_ENABLE_HT1621_6SEGBAT)
6#include <SegDriver_HT1621.h>
7
22 public:
23 SegLCD_HT1621_6SegBat(SegTransport3Wire& transport, uint8_t chipselect);
24 void init() override;
25 void setBatteryLevel(uint8_t level);
26 using SegLCDLib::write;
27 size_t write(uint8_t ch) override;
28
29 private:
30 void _setDecimal(uint8_t row, uint8_t col, bool state) override;
31 static constexpr uint8_t RAM_SIZE = 6;
32 static constexpr uint8_t DIGITS = 6;
33
34 // Decimal configuration (physical digits 2,3,4 have decimal points)
35 static constexpr uint8_t DECIMAL_MIN_COL = 2;
36 static constexpr uint8_t DECIMAL_MAX_COL = 4;
37 static constexpr uint8_t DECIMAL_POINT_BIT = 0x80;
38 static constexpr int8_t DECIMAL_COL_OFFSET = -1; // -1: dot belongs to previous position
39
40 // Signal/Battery level constants
41 static constexpr uint8_t MAX_BATTERY_LEVEL = 3;
42 static constexpr uint8_t BATTERY_MASK = 0x80;
43 static constexpr uint8_t BATTERY_LEVEL_SEG[3] = {2, 1, 0};
44
45 uint8_t _mapSegments(uint8_t val);
46};
47#endif
48
49#endif
HT1621 LCD segment display driver.
Definition SegDriver_HT1621.h:12
virtual size_t write(uint8_t)
Definition SegLCDLib.h:113
6-digit 7-segment LCD with battery indicator (HT1621).
Definition SegLCD_HT1621_6SegBat.h:21
void _setDecimal(uint8_t row, uint8_t col, bool state) override
Virtual method for setting decimal point.
Definition SegLCD_HT1621_6SegBat.cpp:35
static constexpr uint8_t DECIMAL_MIN_COL
Definition SegLCD_HT1621_6SegBat.h:35
void setBatteryLevel(uint8_t level)
Definition SegLCD_HT1621_6SegBat.cpp:20
size_t write(uint8_t ch) override
Definition SegLCD_HT1621_6SegBat.cpp:51
static constexpr uint8_t RAM_SIZE
Definition SegLCD_HT1621_6SegBat.h:31
static constexpr uint8_t DIGITS
Definition SegLCD_HT1621_6SegBat.h:32
static constexpr uint8_t DECIMAL_MAX_COL
Definition SegLCD_HT1621_6SegBat.h:36
static constexpr uint8_t DECIMAL_POINT_BIT
Definition SegLCD_HT1621_6SegBat.h:37
uint8_t _mapSegments(uint8_t val)
Definition SegLCD_HT1621_6SegBat.cpp:78
static constexpr uint8_t MAX_BATTERY_LEVEL
Definition SegLCD_HT1621_6SegBat.h:41
void init() override
Initialize GPIO pins for communication.
Definition SegLCD_HT1621_6SegBat.cpp:10
static constexpr uint8_t BATTERY_MASK
Definition SegLCD_HT1621_6SegBat.h:42
static constexpr int8_t DECIMAL_COL_OFFSET
Definition SegLCD_HT1621_6SegBat.h:38
static constexpr uint8_t BATTERY_LEVEL_SEG[3]
Definition SegLCD_HT1621_6SegBat.h:43
Abstract 3-wire serial transport.
Definition SegTransport.h:23