26 #define FONTREGULARELEMENTS 102
27 #define FONTTINYELEMENTS 102
28 #define FONTNANOELEMENTS 102
30 static const uint8_t fontregular[FONTREGULARELEMENTS][6] = {
31 { 32, 0x00, 0x00, 0x00, 0x00, 0x00 },
32 { 33, 0x00, 0x4F, 0x00, 0x00, 0x00 },
33 { 34, 0x00, 0x07, 0x00, 0x07, 0x00 },
34 { 35, 0x14, 0x7F, 0x14, 0x7F, 0x14 },
35 { 36, 0x24, 0x2A, 0x7F, 0x2A, 0x12 },
36 { 37, 0x23, 0x13, 0x08, 0x64, 0x62 },
37 { 38, 0x36, 0x49, 0x55, 0x22, 0x40 },
38 { 39, 0x00, 0x05, 0x03, 0x00, 0x00 },
39 { 40, 0x00, 0x1C, 0x22, 0x41, 0x00 },
40 { 41, 0x00, 0x41, 0x22, 0x1C, 0x00 },
41 { 42, 0x14, 0x08, 0x3E, 0x08, 0x14 },
42 { 43, 0x08, 0x08, 0x3E, 0x08, 0x08 },
43 { 44, 0x00, 0x50, 0x30, 0x00, 0x00 },
44 { 45, 0x08, 0x08, 0x08, 0x08, 0x08 },
45 { 46, 0x00, 0x60, 0x60, 0x00, 0x00 },
46 { 47, 0x20, 0x10, 0x08, 0x04, 0x02 },
47 { 48, 0x3E, 0x51, 0x49, 0x45, 0x3E },
48 { 49, 0x00, 0x42, 0x7F, 0x40, 0x00 },
49 { 50, 0x42, 0x61, 0x51, 0x49, 0x46 },
50 { 51, 0x21, 0x41, 0x45, 0x4B, 0x31 },
51 { 52, 0x18, 0x14, 0x12, 0x7F, 0x10 },
52 { 53, 0x27, 0x45, 0x45, 0x45, 0x39 },
53 { 54, 0x3C, 0x4A, 0x49, 0x49, 0x30 },
54 { 55, 0x01, 0x71, 0x09, 0x05, 0x03 },
55 { 56, 0x36, 0x49, 0x49, 0x49, 0x36 },
56 { 57, 0x06, 0x49, 0x49, 0x29, 0x1E },
57 { 58, 0x00, 0x36, 0x36, 0x00, 0x00 },
58 { 59, 0x00, 0x56, 0x36, 0x00, 0x00 },
59 { 60, 0x08, 0x14, 0x22, 0x41, 0x00 },
60 { 61, 0x24, 0x24, 0x24, 0x24, 0x24 },
61 { 62, 0x41, 0x22, 0x14, 0x08, 0x00 },
62 { 63, 0x02, 0x01, 0x51, 0x09, 0x06 },
63 { 64, 0x32, 0x49, 0x79, 0x41, 0x3E },
64 { 65, 0x7E, 0x11, 0x11, 0x11, 0x7E },
65 { 66, 0x7F, 0x49, 0x49, 0x49, 0x36 },
66 { 67, 0x3E, 0x41, 0x41, 0x41, 0x22 },
67 { 68, 0x7F, 0x41, 0x41, 0x22, 0x1C },
68 { 69, 0x7F, 0x49, 0x49, 0x49, 0x41 },
69 { 70, 0x7F, 0x09, 0x09, 0x09, 0x01 },
70 { 71, 0x3E, 0x41, 0x49, 0x49, 0x3A },
71 { 72, 0x7F, 0x08, 0x08, 0x08, 0x7F },
72 { 73, 0x00, 0x41, 0x7F, 0x41, 0x00 },
73 { 74, 0x20, 0x41, 0x41, 0x3F, 0x01 },
74 { 75, 0x7F, 0x08, 0x14, 0x22, 0x41 },
75 { 76, 0x7F, 0x40, 0x40, 0x40, 0x00 },
76 { 77, 0x7F, 0x02, 0x0C, 0x02, 0x7F },
77 { 78, 0x7F, 0x04, 0x08, 0x10, 0x7F },
78 { 79, 0x3E, 0x41, 0x41, 0x41, 0x3E },
79 { 80, 0x7F, 0x09, 0x09, 0x09, 0x06 },
80 { 81, 0x3E, 0x41, 0x51, 0x21, 0x5E },
81 { 82, 0x7F, 0x09, 0x19, 0x29, 0x46 },
82 { 83, 0x46, 0x49, 0x49, 0x49, 0x31 },
83 { 84, 0x01, 0x01, 0x7F, 0x01, 0x01 },
84 { 85, 0x3F, 0x40, 0x40, 0x40, 0x3F },
85 { 86, 0x1F, 0x20, 0x40, 0x20, 0x1F },
86 { 87, 0x3F, 0x40, 0x30, 0x40, 0x3F },
87 { 88, 0x63, 0x14, 0x08, 0x14, 0x63 },
88 { 89, 0x07, 0x08, 0x70, 0x08, 0x07 },
89 { 90, 0x61, 0x51, 0x49, 0x45, 0x43 },
90 { 91, 0x00, 0x7F, 0x41, 0x41, 0x00 },
91 { 92, 0x02, 0x04, 0x08, 0x10, 0x20 },
92 { 93, 0x00, 0x41, 0x41, 0x7F, 0x00 },
93 { 94, 0x04, 0x02, 0x01, 0x02, 0x04 },
94 { 95, 0x40, 0x40, 0x40, 0x40, 0x40 },
95 { 96, 0x00, 0x01, 0x02, 0x00, 0x00 },
96 { 97, 0x20, 0x54, 0x54, 0x54, 0x78 },
97 { 98, 0x7F, 0x44, 0x44, 0x44, 0x38 },
98 { 99, 0x38, 0x44, 0x44, 0x44, 0x00 },
99 { 100, 0x38, 0x44, 0x44, 0x48, 0x7F },
100 { 101, 0x38, 0x54, 0x54, 0x54, 0x18 },
101 { 102, 0x10, 0x7E, 0x11, 0x01, 0x02 },
102 { 103, 0x0C, 0x52, 0x52, 0x52, 0x3E },
103 { 104, 0x7F, 0x08, 0x04, 0x04, 0x78 },
104 { 105, 0x00, 0x44, 0x7D, 0x40, 0x00 },
105 { 106, 0x20, 0x40, 0x40, 0x3D, 0x00 },
106 { 107, 0x7F, 0x10, 0x28, 0x44, 0x00 },
107 { 108, 0x00, 0x41, 0x7F, 0x40, 0x00 },
108 { 109, 0x7C, 0x04, 0x18, 0x04, 0x78 },
109 { 110, 0x7C, 0x08, 0x04, 0x04, 0x78 },
110 { 111, 0x38, 0x44, 0x44, 0x44, 0x38 },
111 { 112, 0x7C, 0x14, 0x14, 0x14, 0x08 },
112 { 113, 0x08, 0x14, 0x14, 0x18, 0x7C },
113 { 114, 0x7C, 0x08, 0x04, 0x04, 0x08 },
114 { 115, 0x48, 0x54, 0x54, 0x54, 0x24 },
115 { 116, 0x04, 0x3F, 0x44, 0x40, 0x20 },
116 { 117, 0x3C, 0x40, 0x40, 0x20, 0x7C },
117 { 118, 0x1C, 0x20, 0x40, 0x20, 0x1C },
118 { 119, 0x3C, 0x40, 0x20, 0x40, 0x3C },
119 { 120, 0x44, 0x28, 0x10, 0x28, 0x44 },
120 { 121, 0x0C, 0x50, 0x50, 0x50, 0x3C },
121 { 122, 0x44, 0x64, 0x54, 0x4C, 0x44 },
122 { 123, 0x00, 0x08, 0x36, 0x41, 0x00 },
123 { 124, 0x00, 0x00, 0x7F, 0x00, 0x00 },
124 { 125, 0x00, 0x41, 0x36, 0x08, 0x00 },
125 { 126, 0x10, 0x08, 0x10, 0x20, 0x10 },
126 { 196, 0x78, 0x15, 0x14, 0x15, 0x78 },
127 { 214, 0x38, 0x45, 0x44, 0x45, 0x38 },
128 { 220, 0x3C, 0x41, 0x40, 0x41, 0x3C },
129 { 223, 0x7E, 0x01, 0x29, 0x29, 0x16 },
130 { 228, 0x20, 0x55, 0x54, 0x55, 0x78 },
131 { 246, 0x38, 0x45, 0x44, 0x45, 0x38 },
132 { 252, 0x3C, 0x41, 0x40, 0x21, 0x7C }
135 static const uint8_t fonttiny[FONTTINYELEMENTS][5] = {
136 { 32, 0x00, 0x00, 0x00, 0x00},
137 { 33, 0x00, 0x00, 0x00, 0x00},
138 { 34, 0x00, 0x00, 0x00, 0x00},
139 { 35, 0x00, 0x00, 0x00, 0x00},
140 { 36, 0x00, 0x00, 0x00, 0x00},
141 { 37, 0x00, 0x00, 0x00, 0x00},
142 { 38, 0x00, 0x00, 0x00, 0x00},
143 { 39, 0x00, 0x00, 0x00, 0x00},
144 { 40, 0x00, 0x00, 0x00, 0x00},
145 { 41, 0x00, 0x00, 0x00, 0x00},
146 { 42, 0x00, 0x00, 0x00, 0x00},
147 { 43, 0x00, 0x00, 0x00, 0x00},
148 { 44, 0x00, 0x00, 0x00, 0x00},
149 { 45, 0x00, 0x00, 0x00, 0x00},
150 { 46, 0x00, 0x00, 0x00, 0x00},
151 { 47, 0x00, 0x00, 0x00, 0x00},
152 { 48, 0x70, 0x88, 0x88, 0x70},
153 { 49, 0x00, 0x00, 0xF8, 0x00},
154 { 50, 0x90, 0xC8, 0xA8, 0x90},
155 { 51, 0x50, 0x88, 0xA8, 0x50},
156 { 52, 0x60, 0x50, 0xE8, 0x40},
157 { 53, 0xB8, 0xA8, 0xA8, 0x48},
158 { 54, 0x70, 0xA8, 0xA8, 0x48},
159 { 55, 0x88, 0x48, 0x28, 0x18},
160 { 56, 0x50, 0xA8, 0xA8, 0x50},
161 { 57, 0x90, 0xA8, 0xA8, 0x70},
162 { 58, 0x00, 0x00, 0x00, 0x00},
163 { 59, 0x00, 0x00, 0x00, 0x00},
164 { 60, 0x00, 0x00, 0x00, 0x00},
165 { 61, 0x00, 0x00, 0x00, 0x00},
166 { 62, 0x00, 0x00, 0x00, 0x00},
167 { 63, 0x00, 0x00, 0x00, 0x00},
168 { 64, 0x00, 0x00, 0x00, 0x00},
169 { 65, 0x00, 0x00, 0x00, 0x00},
170 { 66, 0x00, 0x00, 0x00, 0x00},
171 { 67, 0x00, 0x00, 0x00, 0x00},
172 { 68, 0x00, 0x00, 0x00, 0x00},
173 { 69, 0x00, 0x00, 0x00, 0x00},
174 { 70, 0x00, 0x00, 0x00, 0x00},
175 { 71, 0x00, 0x00, 0x00, 0x00},
176 { 72, 0x00, 0x00, 0x00, 0x00},
177 { 73, 0x00, 0x00, 0x00, 0x00},
178 { 74, 0x00, 0x00, 0x00, 0x00},
179 { 75, 0x00, 0x00, 0x00, 0x00},
180 { 76, 0x00, 0x00, 0x00, 0x00},
181 { 77, 0x00, 0x00, 0x00, 0x00},
182 { 78, 0x00, 0x00, 0x00, 0x00},
183 { 79, 0x00, 0x00, 0x00, 0x00},
184 { 80, 0x00, 0x00, 0x00, 0x00},
185 { 81, 0x00, 0x00, 0x00, 0x00},
186 { 82, 0x00, 0x00, 0x00, 0x00},
187 { 83, 0x00, 0x00, 0x00, 0x00},
188 { 84, 0x00, 0x00, 0x00, 0x00},
189 { 85, 0x00, 0x00, 0x00, 0x00},
190 { 86, 0x00, 0x00, 0x00, 0x00},
191 { 87, 0x00, 0x00, 0x00, 0x00},
192 { 88, 0x00, 0x00, 0x00, 0x00},
193 { 89, 0x00, 0x00, 0x00, 0x00},
194 { 90, 0x00, 0x00, 0x00, 0x00},
195 { 91, 0x00, 0x00, 0x00, 0x00},
196 { 92, 0x00, 0x00, 0x00, 0x00},
197 { 93, 0x00, 0x00, 0x00, 0x00},
198 { 94, 0x00, 0x00, 0x00, 0x00},
199 { 95, 0x00, 0x00, 0x00, 0x00},
200 { 96, 0x00, 0x00, 0x00, 0x00},
201 { 97, 0x00, 0x00, 0x00, 0x00},
202 { 98, 0x00, 0x00, 0x00, 0x00},
203 { 99, 0x00, 0x00, 0x00, 0x00},
204 { 100, 0x00, 0x00, 0x00, 0x00 },
205 { 101, 0x00, 0x00, 0x00, 0x00 },
206 { 102, 0x00, 0x00, 0x00, 0x00 },
207 { 103, 0x00, 0x00, 0x00, 0x00 },
208 { 104, 0x00, 0x00, 0x00, 0x00 },
209 { 105, 0x00, 0x00, 0x00, 0x00 },
210 { 106, 0x00, 0x00, 0x00, 0x00 },
211 { 107, 0x00, 0x00, 0x00, 0x00 },
212 { 108, 0x00, 0x00, 0x00, 0x00 },
213 { 109, 0x00, 0x00, 0x00, 0x00 },
214 { 110, 0x00, 0x00, 0x00, 0x00 },
215 { 111, 0x00, 0x00, 0x00, 0x00 },
216 { 112, 0x00, 0x00, 0x00, 0x00 },
217 { 113, 0x00, 0x00, 0x00, 0x00 },
218 { 114, 0x00, 0x00, 0x00, 0x00 },
219 { 115, 0x00, 0x00, 0x00, 0x00 },
220 { 116, 0x00, 0x00, 0x00, 0x00 },
221 { 117, 0x00, 0x00, 0x00, 0x00 },
222 { 118, 0x00, 0x00, 0x00, 0x00 },
223 { 119, 0x00, 0x00, 0x00, 0x00 },
224 { 120, 0x00, 0x00, 0x00, 0x00 },
225 { 121, 0x00, 0x00, 0x00, 0x00 },
226 { 122, 0x00, 0x00, 0x00, 0x00 },
227 { 123, 0x00, 0x00, 0x00, 0x00 },
228 { 124, 0x00, 0x00, 0x00, 0x00 },
229 { 125, 0x00, 0x00, 0x00, 0x00 },
230 { 126, 0x00, 0x00, 0x00, 0x00 },
231 { 196, 0x00, 0x00, 0x00, 0x00 },
232 { 214, 0x00, 0x00, 0x00, 0x00 },
233 { 220, 0x00, 0x00, 0x00, 0x00 },
234 { 223, 0x00, 0x00, 0x00, 0x00 },
235 { 228, 0x00, 0x00, 0x00, 0x00 },
236 { 246, 0x00, 0x00, 0x00, 0x00 },
237 { 252, 0x00, 0x00, 0x00, 0x00 }
240 static const uint8_t fontnano[FONTNANOELEMENTS][4] = {
241 { 32, 0x00, 0x00, 0x00},
242 { 33, 0x00, 0x00, 0x00},
243 { 34, 0x00, 0x00, 0x00},
244 { 35, 0x00, 0x00, 0x00},
245 { 36, 0x00, 0x00, 0x00},
246 { 37, 0x00, 0x00, 0x00},
247 { 38, 0x00, 0x00, 0x00},
248 { 39, 0x00, 0x00, 0x00},
249 { 40, 0x00, 0x00, 0x00},
250 { 41, 0x00, 0x00, 0x00},
251 { 42, 0x00, 0x00, 0x00},
252 { 43, 0x00, 0x00, 0x00},
253 { 44, 0x00, 0x00, 0x00},
254 { 45, 0x00, 0x00, 0x00},
255 { 46, 0x00, 0x00, 0x00},
256 { 47, 0x00, 0x00, 0x00},
257 { 48, 0xE0, 0x90, 0x70},
258 { 49, 0x20, 0xF0, 0x00},
259 { 50, 0xD0, 0xD0, 0xA0},
260 { 51, 0x90, 0xB0, 0x60},
261 { 52, 0x70, 0x40, 0xE0},
262 { 53, 0xB0, 0xD0, 0xD0},
263 { 54, 0xE0, 0xD0, 0xD0},
264 { 55, 0x10, 0xD0, 0x30},
265 { 56, 0xF0, 0xB0, 0xF0},
266 { 57, 0xB0, 0xB0, 0x70},
267 { 58, 0x00, 0x00, 0x00},
268 { 59, 0x00, 0x00, 0x00},
269 { 60, 0x00, 0x00, 0x00},
270 { 61, 0x00, 0x00, 0x00},
271 { 62, 0x00, 0x00, 0x00},
272 { 63, 0x00, 0x00, 0x00},
273 { 64, 0x00, 0x00, 0x00},
274 { 65, 0x00, 0x00, 0x00},
275 { 66, 0x00, 0x00, 0x00},
276 { 67, 0x00, 0x00, 0x00},
277 { 68, 0x00, 0x00, 0x00},
278 { 69, 0x00, 0x00, 0x00},
279 { 70, 0x00, 0x00, 0x00},
280 { 71, 0x00, 0x00, 0x00},
281 { 72, 0x00, 0x00, 0x00},
282 { 73, 0x00, 0x00, 0x00},
283 { 74, 0x00, 0x00, 0x00},
284 { 75, 0x00, 0x00, 0x00},
285 { 76, 0x00, 0x00, 0x00},
286 { 77, 0x00, 0x00, 0x00},
287 { 78, 0x00, 0x00, 0x00},
288 { 79, 0x00, 0x00, 0x00},
289 { 80, 0x00, 0x00, 0x00},
290 { 81, 0x00, 0x00, 0x00},
291 { 82, 0x00, 0x00, 0x00},
292 { 83, 0x00, 0x00, 0x00},
293 { 84, 0x00, 0x00, 0x00},
294 { 85, 0x00, 0x00, 0x00},
295 { 86, 0x00, 0x00, 0x00},
296 { 87, 0x00, 0x00, 0x00},
297 { 88, 0x00, 0x00, 0x00},
298 { 89, 0x00, 0x00, 0x00},
299 { 90, 0x00, 0x00, 0x00},
300 { 91, 0x00, 0x00, 0x00},
301 { 92, 0x00, 0x00, 0x00},
302 { 93, 0x00, 0x00, 0x00},
303 { 94, 0x00, 0x00, 0x00},
304 { 95, 0x00, 0x00, 0x00},
305 { 96, 0x00, 0x00, 0x00},
306 { 97, 0x00, 0x00, 0x00},
307 { 98, 0x00, 0x00, 0x00},
308 { 99, 0x00, 0x00, 0x00},
309 { 100, 0x00, 0x00, 0x00},
310 { 101, 0x00, 0x00, 0x00},
311 { 102, 0x00, 0x00, 0x00},
312 { 103, 0x00, 0x00, 0x00},
313 { 104, 0x00, 0x00, 0x00},
314 { 105, 0x00, 0x00, 0x00},
315 { 106, 0x00, 0x00, 0x00},
316 { 107, 0x00, 0x00, 0x00},
317 { 108, 0x00, 0x00, 0x00},
318 { 109, 0x00, 0x00, 0x00},
319 { 110, 0x00, 0x00, 0x00},
320 { 111, 0x00, 0x00, 0x00},
321 { 112, 0x00, 0x00, 0x00},
322 { 113, 0x00, 0x00, 0x00},
323 { 114, 0x00, 0x00, 0x00},
324 { 115, 0x00, 0x00, 0x00},
325 { 116, 0x00, 0x00, 0x00},
326 { 117, 0x00, 0x00, 0x00},
327 { 118, 0x00, 0x00, 0x00},
328 { 119, 0x00, 0x00, 0x00},
329 { 120, 0x00, 0x00, 0x00},
330 { 121, 0x00, 0x00, 0x00},
331 { 122, 0x00, 0x00, 0x00},
332 { 123, 0x00, 0x00, 0x00},
333 { 124, 0x00, 0x00, 0x00},
334 { 125, 0x00, 0x00, 0x00},
335 { 126, 0x00, 0x00, 0x00},
336 { 196, 0x00, 0x00, 0x00},
337 { 214, 0x00, 0x00, 0x00},
338 { 220, 0x00, 0x00, 0x00},
339 { 223, 0x00, 0x00, 0x00},
340 { 228, 0x00, 0x00, 0x00},
341 { 246, 0x00, 0x00, 0x00},
342 { 252, 0x00, 0x00, 0x00}
353 for (i = 0; i < FONTREGULARELEMENTS; i++) {
354 if (fontregular[i][0] == ascii)
355 return (
uint8_t*)&(fontregular[i][1]);
360 for (i = 0; i < FONTTINYELEMENTS; i++) {
361 if (fonttiny[i][0] == ascii)
362 return (
uint8_t*)&(fonttiny[i][1]);
367 for (i = 0; i < FONTNANOELEMENTS; i++) {
368 if (fontnano[i][0] == ascii)
369 return (
uint8_t*)&(fontnano[i][1]);
uint8_t * font_getChar(uint8_t ascii, uint8_t font)