VFD modular clock firmware
Dependencies: DipCortex-EEprom RTC flw mbed
font_7seg.cpp
00001 /* 00002 * VFD Modular Clock - mbed 00003 * (C) 2011-14 Akafugu Corporation 00004 * 00005 * This program is free software; you can redistribute it and/or modify it under the 00006 * terms of the GNU General Public License as published by the Free Software 00007 * Foundation; either version 2 of the License, or (at your option) any later 00008 * version. 00009 * 00010 * This program is distributed in the hope that it will be useful, but WITHOUT ANY 00011 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 00012 * PARTICULAR PURPOSE. See the GNU General Public License for more details. 00013 * 00014 */ 00015 00016 #include "mbed.h" 00017 00018 uint8_t calculate_segments_7(uint8_t character); 00019 00020 #define A 0 00021 #define B 1 00022 #define C 2 00023 #define D 3 00024 #define E 4 00025 #define F 5 00026 #define G 6 00027 #define DP 7 00028 00029 uint8_t calculate_segments_7(uint8_t character) 00030 { 00031 uint8_t segments = 0; 00032 00033 switch (character) 00034 { 00035 case 0: 00036 segments = 0; 00037 break; 00038 case '0': 00039 case 'O': 00040 segments = (1<<A)|(1<<B)|(1<<C)|(1<<D)|(1<<E)|(1<<F); 00041 break; 00042 case 1: 00043 case '1': 00044 case 'l': 00045 segments = (1<<B)|(1<<C); 00046 break; 00047 case 2: 00048 case '2': 00049 segments = (1<<A)|(1<<B)|(1<<D)|(1<<E)|(1<<G); 00050 break; 00051 case 3: 00052 case '3': 00053 segments = (1<<A)|(1<<B)|(1<<C)|(1<<D)|(1<<G); 00054 break; 00055 case 4: 00056 case '4': 00057 segments = (1<<B)|(1<<C)|(1<<F)|(1<<G); 00058 break; 00059 case 5: 00060 case '5': 00061 case 'S': 00062 case 's': 00063 segments = (1<<A)|(1<<C)|(1<<D)|(1<<F)|(1<<G); 00064 break; 00065 case 6: 00066 case '6': 00067 segments = (1<<A)|(1<<C)|(1<<D)|(1<<E)|(1<<F)|(1<<G); 00068 break; 00069 case 7: 00070 case '7': 00071 segments = (1<<A)|(1<<B)|(1<<C); 00072 break; 00073 case 8: 00074 case '8': 00075 segments = (1<<A)|(1<<B)|(1<<C)|(1<<D)|(1<<E)|(1<<F)|(1<<G); 00076 break; 00077 case 9: 00078 case '9': 00079 case 'g': 00080 segments = (1<<A)|(1<<B)|(1<<C)|(1<<D)|(1<<F)|(1<<G); 00081 break; 00082 case 10: 00083 case 'A': 00084 case 'a': 00085 segments = (1<<A)|(1<<B)|(1<<C)|(1<<E)|(1<<F)|(1<<G); 00086 break; 00087 case 11: 00088 case 'B': 00089 case 'b': 00090 segments = (1<<C)|(1<<D)|(1<<E)|(1<<F)|(1<<G); 00091 break; 00092 case 12: 00093 case 'C': 00094 segments = (1<<A)|(1<<D)|(1<<E)|(1<<F); 00095 break; 00096 case 'c': 00097 segments = (1<<D)|(1<<E)|(1<<G); 00098 break; 00099 case 13: 00100 case 'D': 00101 case 'd': 00102 segments = (1<<B)|(1<<C)|(1<<D)|(1<<E)|(1<<G); 00103 break; 00104 case 14: 00105 case 'E': 00106 segments = (1<<A)|(1<<D)|(1<<E)|(1<<F)|(1<<G); 00107 break; 00108 case 'e': 00109 segments = (1<<A)|(1<<B)|(1<<D)|(1<<E)|(1<<F)|(1<<G); 00110 break; 00111 case 15: 00112 case 'F': 00113 case 'f': 00114 segments = (1<<A)|(1<<E)|(1<<F)|(1<<G); 00115 break; 00116 case 'G': 00117 segments = (1<<A)|(1<<C)|(1<<D)|(1<<E)|(1<<F); 00118 break; 00119 case 'H': 00120 segments = (1<<B)|(1<<C)|(1<<E)|(1<<F)|(1<<G); 00121 break; 00122 case 'h': 00123 segments = (1<<C)|(1<<E)|(1<<F)|(1<<G); 00124 break; 00125 case 'I': 00126 segments = (1<<B)|(1<<C); 00127 break; 00128 case 'i': 00129 segments = (1<<C); 00130 break; 00131 case 'J': 00132 case 'j': 00133 segments = (1<<B)|(1<<C)|(1<<D)|(1<<E); 00134 break; 00135 case 'K': 00136 case 'k': 00137 segments = (1<<E)|(1<<F)|(1<<G); 00138 break; 00139 case 'L': 00140 segments = (1<<D)|(1<<E)|(1<<F); 00141 break; 00142 case 'M': 00143 case 'm': 00144 segments = (1<<A)|(1<<C)|(1<<E)|(1<<G); 00145 break; 00146 case 'N': 00147 case 'n': 00148 segments = (1<<C)|(1<<E)|(1<<G); 00149 break; 00150 case 'o': 00151 segments = (1<<C)|(1<<D)|(1<<E)|(1<<G); 00152 break; 00153 case 'P': 00154 case 'p': 00155 segments = (1<<A)|(1<<B)|(1<<E)|(1<<F)|(1<<G); 00156 break; 00157 case 'Q': 00158 case 'q': 00159 segments = (1<<A)|(1<<B)|(1<<C)|(1<<F)|(1<<G); 00160 break; 00161 case 'R': 00162 case 'r': 00163 segments = (1<<E)|(1<<G); 00164 break; 00165 case 'T': 00166 case 't': 00167 segments = (1<<D)|(1<<E)|(1<<F)|(1<<G); 00168 break; 00169 case 'U': 00170 segments = (1<<B)|(1<<C)|(1<<D)|(1<<E)|(1<<F); 00171 break; 00172 case 'u': 00173 segments = (1<<C)|(1<<D)|(1<<E); 00174 break; 00175 case 'V': 00176 case 'v': 00177 segments = (1<<C)|(1<<D)|(1<<E); 00178 break; 00179 case 'W': 00180 case 'w': 00181 segments = (1<<A)|(1<<C)|(1<<D)|(1<<E); 00182 break; 00183 case 'X': 00184 case 'x': 00185 segments = (1<<B)|(1<<C)|(1<<E)|(1<<F); 00186 break; 00187 case 'Y': 00188 case 'y': 00189 segments = (1<<B)|(1<<C)|(1<<D)|(1<<F)|(1<<G); 00190 break; 00191 case 'Z': 00192 case 'z': 00193 segments = (1<<A)|(1<<D)|(1<<G); 00194 break; 00195 case '-': 00196 segments = (1<<G); 00197 break; 00198 case '"': 00199 segments = (1<<B)|(1<<F); 00200 break; 00201 case 0x27: // "'" 00202 segments = (1<<B); 00203 break; 00204 case '_': 00205 segments = (1<<D); 00206 break; 00207 case ' ': 00208 default: 00209 segments = 0; 00210 break; 00211 } 00212 00213 return segments; 00214 }
Generated on Wed Jul 13 2022 06:11:41 by 1.7.2