显示字母

This commit is contained in:
unlockable
2023-08-25 17:31:07 +08:00
parent bb6e024d65
commit 215cd94bfc

View File

@@ -17,7 +17,7 @@ const uint64_t letters[26]{
0x7E60607C60607E00, // E
0x7E60607C60606000, // F
0x3C6660606E663C00, // G
0xCCCCCCFCCCCCCC00, // H
0x6666667E66666600, // H
0x3C18181818183C00, // I
0x1E0C0C0C6C6C3800, // J
0x666C7870786C6600, // K
@@ -166,7 +166,7 @@ public:
case 0: {
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
if ((numbers[num] >> (63 - (i + j * 8))) & 1) {
if ((letters[num] >> (63 - (i + j * 8))) & 1) {
Cube::set_status(x, y - i, z - j, brightness);
} else {
Cube::set_status(x, y - i, z - j, 0);
@@ -178,7 +178,7 @@ public:
case 1: {
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
if ((numbers[num] >> (63 - (i + j * 8))) & 1) {
if ((letters[num] >> (63 - (i + j * 8))) & 1) {
Cube::set_status(x, y + i, z - j, brightness);
} else {
Cube::set_status(x, y + i, z - j, 0);
@@ -190,7 +190,7 @@ public:
case 2: {
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
if ((numbers[num] >> (63 - (i + j * 8))) & 1) {
if ((letters[num] >> (63 - (i + j * 8))) & 1) {
Cube::set_status(x + i, y, z - j, brightness);
} else {
Cube::set_status(x + i, y, z - j, 0);
@@ -202,7 +202,7 @@ public:
case 3: {
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
if ((numbers[num] >> (63 - (i + j * 8))) & 1) {
if ((letters[num] >> (63 - (i + j * 8))) & 1) {
Cube::set_status(x - i, y, z - j, brightness);
} else {
Cube::set_status(x - i, y, z - j, 0);
@@ -218,8 +218,7 @@ public:
int Cube::layer_count = 0;
int Cube::brightness_count = 0;
int Cube::LED_status[8][8] = {0};
int bright = 3;
int hour = 0, minute = 0, second = 0;
int char_num = 0;
void setup() {
for (int i = 22; i < 46; i++) {
@@ -237,8 +236,7 @@ void setup() {
TCCR4B = 0; // same for TCCR1B
TCNT4 = 0; // initialize counter value to 0
// set compare match register for 1hz increments
// OCR4A = 15624 / 1; // = (16*10^6) / (1*1024) - 1 (must be <65536)
OCR4A = 200;
OCR4A = 15624 / 1; // = (16*10^6) / (1*1024) - 1 (must be <65536)
// turn on CTC mode
TCCR4B |= (1 << WGM12);
// Set CS12 and CS10 bits for 1024 prescaler
@@ -250,24 +248,15 @@ void setup() {
randomSeed(analogRead(0));
}
int i = 0;
void loop() {
// Ref:
// https://raw.githubusercontent.com/wiki/olikraus/u8glib/fontpic/u8g_font_u8glib_4.png
// Serial.println(i);
Cube::draw_num(7, 6, 7, hour / 10, 3, 3);
Cube::draw_num(3, 6, 7, hour % 10, 3, 3);
Cube::draw_num(7, 7, 3, minute / 10, 3, 3);
Cube::draw_num(3, 7, 3, minute % 10, 3, 3);
Cube::draw_letter(7, 7, 7, char_num, 3, 3);
delay(1000);
}
ISR(TIMER4_COMPA_vect) {
Serial.println(second);
second += 1;
minute += second / 60;
hour += (minute / 60);
hour %= 24;
minute %= 60;
second %= 60;
char_num = (char_num + 1) % 26;
Serial.println(char_num);
}