Make characterToSegmentSet use a lookup table

This commit is contained in:
Eric Tang
2017-07-14 08:14:09 -07:00
parent 37c56296eb
commit eaacc18ab1

View File

@@ -2,80 +2,54 @@
#include "slave_drivers/slave_driver_led_driver.h"
#include "layer.h"
static const uint16_t capitalLetterToSegmentSet[] = {
0b0000000011110111,
0b0001001010001111,
0b0000000000111001,
0b0001001000001111,
0b0000000011111001,
0b0000000011110001,
0b0000000010111101,
0b0000000011110110,
0b0001001000001001,
0b0000000000001110,
0b0011011000000000,
0b0000000000111000,
0b0000010100110110,
0b0010000100110110,
0b0000000000111111,
0b0000000011110011,
0b0010000000111111,
0b0010000011110011,
0b0000000011101101,
0b0001001000000001,
0b0000000000111110,
0b0000110000110000,
0b0010100000110110,
0b0010110100000000,
0b0001010100000000,
0b0000110000001001,
};
static const uint16_t digitToSegmentSet[] = {
0b0000110000111111,
0b0000010000000110,
0b0000100010001011,
0b0000000011001111,
0b0000000011100110,
0b0010000001101001,
0b0000000011110111,
0b0000000000000111,
0b0000000011111111,
0b0000000011101111,
};
static uint16_t characterToSegmentSet(char character) {
switch (character) {
case 'A':
return 0b0000000011110111;
case 'B':
return 0b0001001010001111;
case 'C':
return 0b0000000000111001;
case 'D':
return 0b0001001000001111;
case 'E':
return 0b0000000011111001;
case 'F':
return 0b0000000011110001;
case 'G':
return 0b0000000010111101;
case 'H':
return 0b0000000011110110;
case 'I':
return 0b0001001000001001;
case 'J':
return 0b0000000000001110;
case 'K':
return 0b0011011000000000;
case 'L':
return 0b0000000000111000;
case 'M':
return 0b0000010100110110;
case 'N':
return 0b0010000100110110;
case 'O':
return 0b0000000000111111;
case 'P':
return 0b0000000011110011;
case 'Q':
return 0b0010000000111111;
case 'R':
return 0b0010000011110011;
case 'S':
return 0b0000000011101101;
case 'T':
return 0b0001001000000001;
case 'U':
return 0b0000000000111110;
case 'V':
return 0b0000110000110000;
case 'W':
return 0b0010100000110110;
case 'X':
return 0b0010110100000000;
case 'Y':
return 0b0001010100000000;
case 'Z':
return 0b0000110000001001;
case '0':
return 0b0000110000111111;
case '1':
return 0b0000010000000110;
case '2':
return 0b0000100010001011;
case '3':
return 0b0000000011001111;
case '4':
return 0b0000000011100110;
case '5':
return 0b0010000001101001;
case '6':
return 0b0000000011110111;
case '7':
return 0b0000000000000111;
case '8':
return 0b0000000011111111;
case '9':
return 0b0000000011101111;
case 'A' ... 'Z':
return capitalLetterToSegmentSet[character - 'A'];
case '0' ... '9':
return digitToSegmentSet[character - '0'];
}
return 0;
}