显示字母
This commit is contained in:
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user