Files
M5StickC/examples/Unit/NEOFLASH/DisplayCurrentTime.cpp
2023-08-18 12:04:57 +08:00

87 lines
2.4 KiB
C++

#include "FastLED.h"
#include "DisplayCurrentTime.h"
// Lattice of Number 0
int zero[18] = {1, 2, 3, 4, 25, 28, 49, 52, 73,
76, 97, 100, 121, 124, 145, 146, 147, 148};
// Lattice of Number 1
int one[10] = {3, 26, 27, 51, 75, 99, 123, 146, 147, 148};
// Lattice of Number 2
int two[16] = {1, 2, 3, 4, 28, 52, 73, 74, 75, 76, 97, 121, 145, 146, 147, 148};
// Lattice of Number 3
int three[16] = {1, 2, 3, 4, 28, 52, 73, 74,
75, 76, 100, 124, 145, 146, 147, 148};
// Lattice of Number 4
int four[13] = {1, 3, 25, 27, 49, 51, 73, 74, 75, 76, 99, 123, 147};
// Lattice of Number 5
int five[16] = {1, 2, 3, 4, 25, 49, 73, 74,
75, 76, 100, 124, 145, 146, 147, 148};
// Lattice of Number 6
int six[18] = {1, 2, 3, 4, 25, 49, 73, 74, 75,
76, 97, 100, 121, 124, 145, 146, 147, 148};
// Lattice of Number 7
int seven[10] = {1, 2, 3, 4, 28, 51, 75, 99, 123, 147};
// Lattice of Number 8
int eight[20] = {1, 2, 3, 4, 25, 28, 49, 52, 73, 74,
75, 76, 97, 100, 121, 124, 145, 146, 147, 148};
// Lattice of Number 9
int nine[18] = {1, 2, 3, 4, 25, 28, 49, 52, 73,
74, 75, 76, 100, 124, 145, 146, 147, 148};
// Lattice of character :
int point[2] = {84, 132};
int lenth[11] = {18, 10, 16, 16, 13, 16, 18, 10, 20, 18, 2};
int *num[10] = {zero, one, two, three, four, five, six, seven, eight, nine};
int index_led;
void displayCurrentTime(uint16_t time4Day) {
int offset = 0;
int number = 10000;
while (number) {
int n = time4Day / number;
if (n != 0) {
time4Day = time4Day % number;
}
for (index_led = 0; index_led < lenth[n]; index_led++) {
int a = *(*(num + n) + index_led) + offset;
leds[a] = CRGB::White;
}
if (offset == 6)
offset += 7;
else
offset += 6;
number = number / 10;
if (number == 100) number = number / 10;
}
}
void diaplayPoint() {
for (index_led = 0; index_led < 2; index_led++) {
int b = point[index_led];
leds[b] = CRGB::White;
}
}
void clearPoint() {
for (index_led = 0; index_led < 2; index_led++) {
int c = point[index_led];
leds[c] = CRGB::Black;
}
}
void clearLeds() {
for (index_led = 0; index_led < 192; index_led++) {
leds[index_led] = CRGB::Black;
}
}