Created
April 10, 2022 11:38
-
-
Save MaverickEsq/440bbab2fdbcd1990b9e3539c6c73e21 to your computer and use it in GitHub Desktop.
function to print upside down on a 7 segment display
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Function to display rotated characters | |
// on a 7 segment display to go with TM1637Display | |
// | |
// Usage: | |
// dispArr(int[0,4]); | |
// | |
// eg: | |
// dispArr(104); | |
// Create an array to send to the display | |
// from flipped characters | |
void dispArr(int n) { | |
// Make a blank display | |
uint8_t Disp[] = {0x00,0x00,0x00,0x00}; | |
char input [4]; | |
// Pad with 0s | |
sprintf(input, "%04d", n); | |
for (int i = 3; i >= 0; i--) { | |
// Make an upside down pattern for each number | |
Disp[i] = char2segments(input[3-i]); | |
} | |
tm1637.setSegments(Disp); | |
} | |
// Map of segment patterns to characters | |
// This one has been rotated 180. | |
uint8_t char2segments(char c) { | |
switch (c) { | |
case ' ' : return 0x00; | |
case '-' : return 0x40; | |
case '0' : return 0x3F; | |
case '1' : return 0x30; | |
case '2' : return 0x5B; | |
case '3' : return 0x79; | |
case '4' : return 0x74; | |
case '5' : return 0x6D; | |
case '6' : return 0x6F; | |
case '7' : return 0x38; | |
case '8' : return 0x7F; | |
case '9' : return 0x7D; | |
case 'A' : return 0x7E; | |
case 'B' : return 0x7F; | |
case 'C' : return 0x0F; | |
case 'D' : return 0x3F; | |
case 'E' : return 0x4F; | |
case 'F' : return 0x4E; | |
case 'G' : return 0x6F; | |
case 'H' : return 0x76; | |
case 'I' : return 0x30; | |
case 'J' : return 0x3B; | |
case 'K' : return 0x76; | |
case 'L' : return 0x07; | |
case 'O' : return 0x3F; | |
case 'P' : return 0x5E; | |
case 'S' : return 0x6D; | |
case 'U' : return 0x37; | |
case 'V' : return 0x37; | |
case 'Y' : return 0x74; | |
case 'Z' : return 0x5B; | |
case '_' : return 0x01; | |
case 'b' : return 0x67; | |
case 'c' : return 0x43; | |
case 'd' : return 0x73; | |
case 'h' : return 0x66; | |
case 'l' : return 0x30; | |
case 'n' : return 0x62; | |
case 'o' : return 0x63; | |
case 'r' : return 0x42; | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment