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#include <SegDriver_HT1621.h>
5
20 public:
21 SegLCD_HT1621_6SegBat(uint8_t chipselect, uint8_t data, uint8_t write, uint8_t read = -1);
22 void init() override;
23 void setBatteryLevel(uint8_t level);
24 size_t write(uint8_t ch) override;
25
26 private:
27 void _setDecimal(uint8_t row, uint8_t col, bool state) override;
28 static constexpr uint8_t RAM_SIZE = 6;
29 static constexpr uint8_t DIGITS = 6;
30
31 // Decimal configuration (physical digits 2,3,4 have decimal points)
32 static constexpr uint8_t DECIMAL_MIN_COL = 2;
33 static constexpr uint8_t DECIMAL_MAX_COL = 4;
34 static constexpr uint8_t DECIMAL_POINT_BIT = 0x80;
35 static constexpr int8_t DECIMAL_COL_OFFSET = -1; // -1: dot belongs to previous position
36
37 // Signal/Battery level constants
38 static constexpr uint8_t MAX_BATTERY_LEVEL = 3;
39 static constexpr uint8_t BATTERY_MASK = 0x80;
40 static constexpr uint8_t BATTERY_LEVEL_SEG[3] = {2, 1, 0};
41
42 uint8_t _mapSegments(uint8_t val);
43};
44#endif
HT1621 LCD segment display driver.
Definition SegDriver_HT1621.h:12
6-digit 7-segment LCD with battery indicator (HT1621).
Definition SegLCD_HT1621_6SegBat.h:19
void _setDecimal(uint8_t row, uint8_t col, bool state) override
Virtual method for setting decimal point.
Definition SegLCD_HT1621_6SegBat.cpp:33
static constexpr uint8_t DECIMAL_MIN_COL
Definition SegLCD_HT1621_6SegBat.h:32
void setBatteryLevel(uint8_t level)
Definition SegLCD_HT1621_6SegBat.cpp:18
size_t write(uint8_t ch) override
Definition SegLCD_HT1621_6SegBat.cpp:49
static constexpr uint8_t RAM_SIZE
Definition SegLCD_HT1621_6SegBat.h:28
static constexpr uint8_t DIGITS
Definition SegLCD_HT1621_6SegBat.h:29
static constexpr uint8_t DECIMAL_MAX_COL
Definition SegLCD_HT1621_6SegBat.h:33
static constexpr uint8_t DECIMAL_POINT_BIT
Definition SegLCD_HT1621_6SegBat.h:34
uint8_t _mapSegments(uint8_t val)
Definition SegLCD_HT1621_6SegBat.cpp:76
static constexpr uint8_t MAX_BATTERY_LEVEL
Definition SegLCD_HT1621_6SegBat.h:38
void init() override
Initialize GPIO pins for communication.
Definition SegLCD_HT1621_6SegBat.cpp:8
static constexpr uint8_t BATTERY_MASK
Definition SegLCD_HT1621_6SegBat.h:39
static constexpr int8_t DECIMAL_COL_OFFSET
Definition SegLCD_HT1621_6SegBat.h:35
static constexpr uint8_t BATTERY_LEVEL_SEG[3]
Definition SegLCD_HT1621_6SegBat.h:40