VFD modular clock firmware
Dependencies: DipCortex-EEprom RTC flw mbed
font_7seg.cpp
- Committer:
- Backstrom
- Date:
- 2015-02-09
- Revision:
- 0:f6e68b4ce169
File content as of revision 0:f6e68b4ce169:
/* * VFD Modular Clock - mbed * (C) 2011-14 Akafugu Corporation * * This program is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU General Public License for more details. * */ #include "mbed.h" uint8_t calculate_segments_7(uint8_t character); #define A 0 #define B 1 #define C 2 #define D 3 #define E 4 #define F 5 #define G 6 #define DP 7 uint8_t calculate_segments_7(uint8_t character) { uint8_t segments = 0; switch (character) { case 0: segments = 0; break; case '0': case 'O': segments = (1<<A)|(1<<B)|(1<<C)|(1<<D)|(1<<E)|(1<<F); break; case 1: case '1': case 'l': segments = (1<<B)|(1<<C); break; case 2: case '2': segments = (1<<A)|(1<<B)|(1<<D)|(1<<E)|(1<<G); break; case 3: case '3': segments = (1<<A)|(1<<B)|(1<<C)|(1<<D)|(1<<G); break; case 4: case '4': segments = (1<<B)|(1<<C)|(1<<F)|(1<<G); break; case 5: case '5': case 'S': case 's': segments = (1<<A)|(1<<C)|(1<<D)|(1<<F)|(1<<G); break; case 6: case '6': segments = (1<<A)|(1<<C)|(1<<D)|(1<<E)|(1<<F)|(1<<G); break; case 7: case '7': segments = (1<<A)|(1<<B)|(1<<C); break; case 8: case '8': segments = (1<<A)|(1<<B)|(1<<C)|(1<<D)|(1<<E)|(1<<F)|(1<<G); break; case 9: case '9': case 'g': segments = (1<<A)|(1<<B)|(1<<C)|(1<<D)|(1<<F)|(1<<G); break; case 10: case 'A': case 'a': segments = (1<<A)|(1<<B)|(1<<C)|(1<<E)|(1<<F)|(1<<G); break; case 11: case 'B': case 'b': segments = (1<<C)|(1<<D)|(1<<E)|(1<<F)|(1<<G); break; case 12: case 'C': segments = (1<<A)|(1<<D)|(1<<E)|(1<<F); break; case 'c': segments = (1<<D)|(1<<E)|(1<<G); break; case 13: case 'D': case 'd': segments = (1<<B)|(1<<C)|(1<<D)|(1<<E)|(1<<G); break; case 14: case 'E': segments = (1<<A)|(1<<D)|(1<<E)|(1<<F)|(1<<G); break; case 'e': segments = (1<<A)|(1<<B)|(1<<D)|(1<<E)|(1<<F)|(1<<G); break; case 15: case 'F': case 'f': segments = (1<<A)|(1<<E)|(1<<F)|(1<<G); break; case 'G': segments = (1<<A)|(1<<C)|(1<<D)|(1<<E)|(1<<F); break; case 'H': segments = (1<<B)|(1<<C)|(1<<E)|(1<<F)|(1<<G); break; case 'h': segments = (1<<C)|(1<<E)|(1<<F)|(1<<G); break; case 'I': segments = (1<<B)|(1<<C); break; case 'i': segments = (1<<C); break; case 'J': case 'j': segments = (1<<B)|(1<<C)|(1<<D)|(1<<E); break; case 'K': case 'k': segments = (1<<E)|(1<<F)|(1<<G); break; case 'L': segments = (1<<D)|(1<<E)|(1<<F); break; case 'M': case 'm': segments = (1<<A)|(1<<C)|(1<<E)|(1<<G); break; case 'N': case 'n': segments = (1<<C)|(1<<E)|(1<<G); break; case 'o': segments = (1<<C)|(1<<D)|(1<<E)|(1<<G); break; case 'P': case 'p': segments = (1<<A)|(1<<B)|(1<<E)|(1<<F)|(1<<G); break; case 'Q': case 'q': segments = (1<<A)|(1<<B)|(1<<C)|(1<<F)|(1<<G); break; case 'R': case 'r': segments = (1<<E)|(1<<G); break; case 'T': case 't': segments = (1<<D)|(1<<E)|(1<<F)|(1<<G); break; case 'U': segments = (1<<B)|(1<<C)|(1<<D)|(1<<E)|(1<<F); break; case 'u': segments = (1<<C)|(1<<D)|(1<<E); break; case 'V': case 'v': segments = (1<<C)|(1<<D)|(1<<E); break; case 'W': case 'w': segments = (1<<A)|(1<<C)|(1<<D)|(1<<E); break; case 'X': case 'x': segments = (1<<B)|(1<<C)|(1<<E)|(1<<F); break; case 'Y': case 'y': segments = (1<<B)|(1<<C)|(1<<D)|(1<<F)|(1<<G); break; case 'Z': case 'z': segments = (1<<A)|(1<<D)|(1<<G); break; case '-': segments = (1<<G); break; case '"': segments = (1<<B)|(1<<F); break; case 0x27: // "'" segments = (1<<B); break; case '_': segments = (1<<D); break; case ' ': default: segments = 0; break; } return segments; }