16FXlib
font.c
Go to the documentation of this file.
1 
2 //*****************************************************************************
3 // Author : Christian Illy
4 // Created : 21.04.2009
5 // Revised : 04.06.2009
6 // Version : 0.1
7 // Target MCU : Fujitsu MB96300 series
8 //
9 // This program is free software: you can redistribute it and/or modify
10 // it under the terms of the GNU General Public License as published by
11 // the Free Software Foundation, either version 3 of the License, or
12 // (at your option) any later version.
13 //
14 // This program is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 // GNU General Public License for more details.
18 //
19 // You should have received a copy of the GNU General Public License
20 // along with this program. If not, see <http://www.gnu.org/licenses/>.
21 //
22 //*****************************************************************************
23 
24 #include "font.h"
25 
26 #define FONTREGULARELEMENTS 102
27 #define FONTTINYELEMENTS 102
28 #define FONTNANOELEMENTS 102
29 
30 static const uint8_t fontregular[FONTREGULARELEMENTS][6] = {
31  { 32, 0x00, 0x00, 0x00, 0x00, 0x00 }, //32/ -->
32  { 33, 0x00, 0x4F, 0x00, 0x00, 0x00 }, //33/ --> !
33  { 34, 0x00, 0x07, 0x00, 0x07, 0x00 }, //34/ --> "
34  { 35, 0x14, 0x7F, 0x14, 0x7F, 0x14 }, //35/ --> #
35  { 36, 0x24, 0x2A, 0x7F, 0x2A, 0x12 }, //36/ --> $
36  { 37, 0x23, 0x13, 0x08, 0x64, 0x62 }, //37/ --> %
37  { 38, 0x36, 0x49, 0x55, 0x22, 0x40 }, //38/ --> &
38  { 39, 0x00, 0x05, 0x03, 0x00, 0x00 }, //39/ --> '
39  { 40, 0x00, 0x1C, 0x22, 0x41, 0x00 }, //40/ --> (
40  { 41, 0x00, 0x41, 0x22, 0x1C, 0x00 }, //41/ --> )
41  { 42, 0x14, 0x08, 0x3E, 0x08, 0x14 }, //42/ --> *
42  { 43, 0x08, 0x08, 0x3E, 0x08, 0x08 }, //43/ --> +
43  { 44, 0x00, 0x50, 0x30, 0x00, 0x00 }, //44/ --> ,
44  { 45, 0x08, 0x08, 0x08, 0x08, 0x08 }, //45/ --> -
45  { 46, 0x00, 0x60, 0x60, 0x00, 0x00 }, //46/ --> .
46  { 47, 0x20, 0x10, 0x08, 0x04, 0x02 }, //47/ --> /
47  { 48, 0x3E, 0x51, 0x49, 0x45, 0x3E }, //48/ --> 0
48  { 49, 0x00, 0x42, 0x7F, 0x40, 0x00 }, //49/ --> 1
49  { 50, 0x42, 0x61, 0x51, 0x49, 0x46 }, //50/ --> 2
50  { 51, 0x21, 0x41, 0x45, 0x4B, 0x31 }, //51/ --> 3
51  { 52, 0x18, 0x14, 0x12, 0x7F, 0x10 }, //52/ --> 4
52  { 53, 0x27, 0x45, 0x45, 0x45, 0x39 }, //53/ --> 5
53  { 54, 0x3C, 0x4A, 0x49, 0x49, 0x30 }, //54/ --> 6
54  { 55, 0x01, 0x71, 0x09, 0x05, 0x03 }, //55/ --> 7
55  { 56, 0x36, 0x49, 0x49, 0x49, 0x36 }, //56/ --> 8
56  { 57, 0x06, 0x49, 0x49, 0x29, 0x1E }, //57/ --> 9
57  { 58, 0x00, 0x36, 0x36, 0x00, 0x00 }, //58/ --> :
58  { 59, 0x00, 0x56, 0x36, 0x00, 0x00 }, //59/ --> ;
59  { 60, 0x08, 0x14, 0x22, 0x41, 0x00 }, //60/ --> <
60  { 61, 0x24, 0x24, 0x24, 0x24, 0x24 }, //61/ --> =
61  { 62, 0x41, 0x22, 0x14, 0x08, 0x00 }, //62/ --> >
62  { 63, 0x02, 0x01, 0x51, 0x09, 0x06 }, //63/ --> ?
63  { 64, 0x32, 0x49, 0x79, 0x41, 0x3E }, //64/ --> @
64  { 65, 0x7E, 0x11, 0x11, 0x11, 0x7E }, //65/ --> A
65  { 66, 0x7F, 0x49, 0x49, 0x49, 0x36 }, //66/ --> B
66  { 67, 0x3E, 0x41, 0x41, 0x41, 0x22 }, //67/ --> C
67  { 68, 0x7F, 0x41, 0x41, 0x22, 0x1C }, //68/ --> D
68  { 69, 0x7F, 0x49, 0x49, 0x49, 0x41 }, //69/ --> E
69  { 70, 0x7F, 0x09, 0x09, 0x09, 0x01 }, //70/ --> F
70  { 71, 0x3E, 0x41, 0x49, 0x49, 0x3A }, //71/ --> G
71  { 72, 0x7F, 0x08, 0x08, 0x08, 0x7F }, //72/ --> H
72  { 73, 0x00, 0x41, 0x7F, 0x41, 0x00 }, //73/ --> I
73  { 74, 0x20, 0x41, 0x41, 0x3F, 0x01 }, //74/ --> J
74  { 75, 0x7F, 0x08, 0x14, 0x22, 0x41 }, //75/ --> K
75  { 76, 0x7F, 0x40, 0x40, 0x40, 0x00 }, //76/ --> L
76  { 77, 0x7F, 0x02, 0x0C, 0x02, 0x7F }, //77/ --> M
77  { 78, 0x7F, 0x04, 0x08, 0x10, 0x7F }, //78/ --> N
78  { 79, 0x3E, 0x41, 0x41, 0x41, 0x3E }, //79/ --> O
79  { 80, 0x7F, 0x09, 0x09, 0x09, 0x06 }, //80/ --> P
80  { 81, 0x3E, 0x41, 0x51, 0x21, 0x5E }, //81/ --> Q
81  { 82, 0x7F, 0x09, 0x19, 0x29, 0x46 }, //82/ --> R
82  { 83, 0x46, 0x49, 0x49, 0x49, 0x31 }, //83/ --> S
83  { 84, 0x01, 0x01, 0x7F, 0x01, 0x01 }, //84/ --> T
84  { 85, 0x3F, 0x40, 0x40, 0x40, 0x3F }, //85/ --> U
85  { 86, 0x1F, 0x20, 0x40, 0x20, 0x1F }, //86/ --> V
86  { 87, 0x3F, 0x40, 0x30, 0x40, 0x3F }, //87/ --> W
87  { 88, 0x63, 0x14, 0x08, 0x14, 0x63 }, //88/ --> X
88  { 89, 0x07, 0x08, 0x70, 0x08, 0x07 }, //89/ --> Y
89  { 90, 0x61, 0x51, 0x49, 0x45, 0x43 }, //90/ --> Z
90  { 91, 0x00, 0x7F, 0x41, 0x41, 0x00 }, //91/ --> [
91  { 92, 0x02, 0x04, 0x08, 0x10, 0x20 }, //92/ --> \ /
92  { 93, 0x00, 0x41, 0x41, 0x7F, 0x00 }, //93/ --> ]
93  { 94, 0x04, 0x02, 0x01, 0x02, 0x04 }, //94/ --> ^
94  { 95, 0x40, 0x40, 0x40, 0x40, 0x40 }, //95/ --> _
95  { 96, 0x00, 0x01, 0x02, 0x00, 0x00 }, //96/ --> `
96  { 97, 0x20, 0x54, 0x54, 0x54, 0x78 }, //97/ --> a
97  { 98, 0x7F, 0x44, 0x44, 0x44, 0x38 }, //98/ --> b
98  { 99, 0x38, 0x44, 0x44, 0x44, 0x00 }, //99/ --> c
99  { 100, 0x38, 0x44, 0x44, 0x48, 0x7F }, //100/ --> d
100  { 101, 0x38, 0x54, 0x54, 0x54, 0x18 }, //101/ --> e
101  { 102, 0x10, 0x7E, 0x11, 0x01, 0x02 }, //102/ --> f
102  { 103, 0x0C, 0x52, 0x52, 0x52, 0x3E }, //103/ --> g
103  { 104, 0x7F, 0x08, 0x04, 0x04, 0x78 }, //104/ --> h
104  { 105, 0x00, 0x44, 0x7D, 0x40, 0x00 }, //105/ --> i
105  { 106, 0x20, 0x40, 0x40, 0x3D, 0x00 }, //106/ --> j
106  { 107, 0x7F, 0x10, 0x28, 0x44, 0x00 }, //107/ --> k
107  { 108, 0x00, 0x41, 0x7F, 0x40, 0x00 }, //108/ --> l
108  { 109, 0x7C, 0x04, 0x18, 0x04, 0x78 }, //109/ --> m
109  { 110, 0x7C, 0x08, 0x04, 0x04, 0x78 }, //110/ --> n
110  { 111, 0x38, 0x44, 0x44, 0x44, 0x38 }, //111/ --> o
111  { 112, 0x7C, 0x14, 0x14, 0x14, 0x08 }, //112/ --> p
112  { 113, 0x08, 0x14, 0x14, 0x18, 0x7C }, //113/ --> q
113  { 114, 0x7C, 0x08, 0x04, 0x04, 0x08 }, //114/ --> r
114  { 115, 0x48, 0x54, 0x54, 0x54, 0x24 }, //115/ --> s
115  { 116, 0x04, 0x3F, 0x44, 0x40, 0x20 }, //116/ --> t
116  { 117, 0x3C, 0x40, 0x40, 0x20, 0x7C }, //117/ --> u
117  { 118, 0x1C, 0x20, 0x40, 0x20, 0x1C }, //118/ --> v
118  { 119, 0x3C, 0x40, 0x20, 0x40, 0x3C }, //119/ --> w
119  { 120, 0x44, 0x28, 0x10, 0x28, 0x44 }, //120/ --> x
120  { 121, 0x0C, 0x50, 0x50, 0x50, 0x3C }, //121/ --> y
121  { 122, 0x44, 0x64, 0x54, 0x4C, 0x44 }, //122/ --> z
122  { 123, 0x00, 0x08, 0x36, 0x41, 0x00 }, //123/ --> {
123  { 124, 0x00, 0x00, 0x7F, 0x00, 0x00 }, //124/ --> |
124  { 125, 0x00, 0x41, 0x36, 0x08, 0x00 }, //125/ --> }
125  { 126, 0x10, 0x08, 0x10, 0x20, 0x10 }, //126/ --> ~
126  { 196, 0x78, 0x15, 0x14, 0x15, 0x78 }, //142/ --> Ä
127  { 214, 0x38, 0x45, 0x44, 0x45, 0x38 }, //153/ --> Ö
128  { 220, 0x3C, 0x41, 0x40, 0x41, 0x3C }, //154/ --> Ü
129  { 223, 0x7E, 0x01, 0x29, 0x29, 0x16 }, //225/ --> ß
130  { 228, 0x20, 0x55, 0x54, 0x55, 0x78 }, //132/ --> ä
131  { 246, 0x38, 0x45, 0x44, 0x45, 0x38 }, //148/ --> ö
132  { 252, 0x3C, 0x41, 0x40, 0x21, 0x7C } //129/ --> ü
133  };
134 
135 static const uint8_t fonttiny[FONTTINYELEMENTS][5] = {
136  { 32, 0x00, 0x00, 0x00, 0x00}, //32/ -->
137  { 33, 0x00, 0x00, 0x00, 0x00}, //33/ --> !
138  { 34, 0x00, 0x00, 0x00, 0x00}, //34/ --> "
139  { 35, 0x00, 0x00, 0x00, 0x00}, //35/ --> #
140  { 36, 0x00, 0x00, 0x00, 0x00}, //36/ --> $
141  { 37, 0x00, 0x00, 0x00, 0x00}, //37/ --> %
142  { 38, 0x00, 0x00, 0x00, 0x00}, //38/ --> &
143  { 39, 0x00, 0x00, 0x00, 0x00}, //39/ --> '
144  { 40, 0x00, 0x00, 0x00, 0x00}, //40/ --> (
145  { 41, 0x00, 0x00, 0x00, 0x00}, //41/ --> )
146  { 42, 0x00, 0x00, 0x00, 0x00}, //42/ --> *
147  { 43, 0x00, 0x00, 0x00, 0x00}, //43/ --> +
148  { 44, 0x00, 0x00, 0x00, 0x00}, //44/ --> ,
149  { 45, 0x00, 0x00, 0x00, 0x00}, //45/ --> -
150  { 46, 0x00, 0x00, 0x00, 0x00}, //46/ --> .
151  { 47, 0x00, 0x00, 0x00, 0x00}, //47/ --> /
152  { 48, 0x70, 0x88, 0x88, 0x70}, //48/ --> 0
153  { 49, 0x00, 0x00, 0xF8, 0x00}, //49/ --> 1
154  { 50, 0x90, 0xC8, 0xA8, 0x90}, //50/ --> 2
155  { 51, 0x50, 0x88, 0xA8, 0x50}, //51/ --> 3
156  { 52, 0x60, 0x50, 0xE8, 0x40}, //52/ --> 4
157  { 53, 0xB8, 0xA8, 0xA8, 0x48}, //53/ --> 5
158  { 54, 0x70, 0xA8, 0xA8, 0x48}, //54/ --> 6
159  { 55, 0x88, 0x48, 0x28, 0x18}, //55/ --> 7
160  { 56, 0x50, 0xA8, 0xA8, 0x50}, //56/ --> 8
161  { 57, 0x90, 0xA8, 0xA8, 0x70}, //57/ --> 9
162  { 58, 0x00, 0x00, 0x00, 0x00}, //58/ --> :
163  { 59, 0x00, 0x00, 0x00, 0x00}, //59/ --> ;
164  { 60, 0x00, 0x00, 0x00, 0x00}, //60/ --> <
165  { 61, 0x00, 0x00, 0x00, 0x00}, //61/ --> =
166  { 62, 0x00, 0x00, 0x00, 0x00}, //62/ --> >
167  { 63, 0x00, 0x00, 0x00, 0x00}, //63/ --> ?
168  { 64, 0x00, 0x00, 0x00, 0x00}, //64/ --> @
169  { 65, 0x00, 0x00, 0x00, 0x00}, //65/ --> A
170  { 66, 0x00, 0x00, 0x00, 0x00}, //66/ --> B
171  { 67, 0x00, 0x00, 0x00, 0x00}, //67/ --> C
172  { 68, 0x00, 0x00, 0x00, 0x00}, //68/ --> D
173  { 69, 0x00, 0x00, 0x00, 0x00}, //69/ --> E
174  { 70, 0x00, 0x00, 0x00, 0x00}, //70/ --> F
175  { 71, 0x00, 0x00, 0x00, 0x00}, //71/ --> G
176  { 72, 0x00, 0x00, 0x00, 0x00}, //72/ --> H
177  { 73, 0x00, 0x00, 0x00, 0x00}, //73/ --> I
178  { 74, 0x00, 0x00, 0x00, 0x00}, //74/ --> J
179  { 75, 0x00, 0x00, 0x00, 0x00}, //75/ --> K
180  { 76, 0x00, 0x00, 0x00, 0x00}, //76/ --> L
181  { 77, 0x00, 0x00, 0x00, 0x00}, //77/ --> M
182  { 78, 0x00, 0x00, 0x00, 0x00}, //78/ --> N
183  { 79, 0x00, 0x00, 0x00, 0x00}, //79/ --> O
184  { 80, 0x00, 0x00, 0x00, 0x00}, //80/ --> P
185  { 81, 0x00, 0x00, 0x00, 0x00}, //81/ --> Q
186  { 82, 0x00, 0x00, 0x00, 0x00}, //82/ --> R
187  { 83, 0x00, 0x00, 0x00, 0x00}, //83/ --> S
188  { 84, 0x00, 0x00, 0x00, 0x00}, //84/ --> T
189  { 85, 0x00, 0x00, 0x00, 0x00}, //85/ --> U
190  { 86, 0x00, 0x00, 0x00, 0x00}, //86/ --> V
191  { 87, 0x00, 0x00, 0x00, 0x00}, //87/ --> W
192  { 88, 0x00, 0x00, 0x00, 0x00}, //88/ --> X
193  { 89, 0x00, 0x00, 0x00, 0x00}, //89/ --> Y
194  { 90, 0x00, 0x00, 0x00, 0x00}, //90/ --> Z
195  { 91, 0x00, 0x00, 0x00, 0x00}, //91/ --> [
196  { 92, 0x00, 0x00, 0x00, 0x00}, //92/ --> \ /
197  { 93, 0x00, 0x00, 0x00, 0x00}, //93/ --> ]
198  { 94, 0x00, 0x00, 0x00, 0x00}, //94/ --> ^
199  { 95, 0x00, 0x00, 0x00, 0x00}, //95/ --> _
200  { 96, 0x00, 0x00, 0x00, 0x00}, //96/ --> `
201  { 97, 0x00, 0x00, 0x00, 0x00}, //97/ --> a
202  { 98, 0x00, 0x00, 0x00, 0x00}, //98/ --> b
203  { 99, 0x00, 0x00, 0x00, 0x00}, //99/ --> c
204  { 100, 0x00, 0x00, 0x00, 0x00 }, //100/ --> d
205  { 101, 0x00, 0x00, 0x00, 0x00 }, //101/ --> e
206  { 102, 0x00, 0x00, 0x00, 0x00 }, //102/ --> f
207  { 103, 0x00, 0x00, 0x00, 0x00 }, //103/ --> g
208  { 104, 0x00, 0x00, 0x00, 0x00 }, //104/ --> h
209  { 105, 0x00, 0x00, 0x00, 0x00 }, //105/ --> i
210  { 106, 0x00, 0x00, 0x00, 0x00 }, //106/ --> j
211  { 107, 0x00, 0x00, 0x00, 0x00 }, //107/ --> k
212  { 108, 0x00, 0x00, 0x00, 0x00 }, //108/ --> l
213  { 109, 0x00, 0x00, 0x00, 0x00 }, //109/ --> m
214  { 110, 0x00, 0x00, 0x00, 0x00 }, //110/ --> n
215  { 111, 0x00, 0x00, 0x00, 0x00 }, //111/ --> o
216  { 112, 0x00, 0x00, 0x00, 0x00 }, //112/ --> p
217  { 113, 0x00, 0x00, 0x00, 0x00 }, //113/ --> q
218  { 114, 0x00, 0x00, 0x00, 0x00 }, //114/ --> r
219  { 115, 0x00, 0x00, 0x00, 0x00 }, //115/ --> s
220  { 116, 0x00, 0x00, 0x00, 0x00 }, //116/ --> t
221  { 117, 0x00, 0x00, 0x00, 0x00 }, //117/ --> u
222  { 118, 0x00, 0x00, 0x00, 0x00 }, //118/ --> v
223  { 119, 0x00, 0x00, 0x00, 0x00 }, //119/ --> w
224  { 120, 0x00, 0x00, 0x00, 0x00 }, //120/ --> x
225  { 121, 0x00, 0x00, 0x00, 0x00 }, //121/ --> y
226  { 122, 0x00, 0x00, 0x00, 0x00 }, //122/ --> z
227  { 123, 0x00, 0x00, 0x00, 0x00 }, //123/ --> {
228  { 124, 0x00, 0x00, 0x00, 0x00 }, //124/ --> |
229  { 125, 0x00, 0x00, 0x00, 0x00 }, //125/ --> }
230  { 126, 0x00, 0x00, 0x00, 0x00 }, //126/ --> ~
231  { 196, 0x00, 0x00, 0x00, 0x00 }, //142/ --> Ä
232  { 214, 0x00, 0x00, 0x00, 0x00 }, //153/ --> Ö
233  { 220, 0x00, 0x00, 0x00, 0x00 }, //154/ --> Ü
234  { 223, 0x00, 0x00, 0x00, 0x00 }, //225/ --> ß
235  { 228, 0x00, 0x00, 0x00, 0x00 }, //132/ --> ä
236  { 246, 0x00, 0x00, 0x00, 0x00 }, //148/ --> ö
237  { 252, 0x00, 0x00, 0x00, 0x00 } //129/ --> ü
238  };
239 
240 static const uint8_t fontnano[FONTNANOELEMENTS][4] = {
241  { 32, 0x00, 0x00, 0x00}, //32/ -->
242  { 33, 0x00, 0x00, 0x00}, //33/ --> !
243  { 34, 0x00, 0x00, 0x00}, //34/ --> "
244  { 35, 0x00, 0x00, 0x00}, //35/ --> #
245  { 36, 0x00, 0x00, 0x00}, //36/ --> $
246  { 37, 0x00, 0x00, 0x00}, //37/ --> %
247  { 38, 0x00, 0x00, 0x00}, //38/ --> &
248  { 39, 0x00, 0x00, 0x00}, //39/ --> '
249  { 40, 0x00, 0x00, 0x00}, //40/ --> (
250  { 41, 0x00, 0x00, 0x00}, //41/ --> )
251  { 42, 0x00, 0x00, 0x00}, //42/ --> *
252  { 43, 0x00, 0x00, 0x00}, //43/ --> +
253  { 44, 0x00, 0x00, 0x00}, //44/ --> ,
254  { 45, 0x00, 0x00, 0x00}, //45/ --> -
255  { 46, 0x00, 0x00, 0x00}, //46/ --> .
256  { 47, 0x00, 0x00, 0x00}, //47/ --> /
257  { 48, 0xE0, 0x90, 0x70}, //48/ --> 0
258  { 49, 0x20, 0xF0, 0x00}, //49/ --> 1
259  { 50, 0xD0, 0xD0, 0xA0}, //50/ --> 2
260  { 51, 0x90, 0xB0, 0x60}, //51/ --> 3
261  { 52, 0x70, 0x40, 0xE0}, //52/ --> 4
262  { 53, 0xB0, 0xD0, 0xD0}, //53/ --> 5
263  { 54, 0xE0, 0xD0, 0xD0}, //54/ --> 6
264  { 55, 0x10, 0xD0, 0x30}, //55/ --> 7
265  { 56, 0xF0, 0xB0, 0xF0}, //56/ --> 8
266  { 57, 0xB0, 0xB0, 0x70}, //57/ --> 9
267  { 58, 0x00, 0x00, 0x00}, //58/ --> :
268  { 59, 0x00, 0x00, 0x00}, //59/ --> ;
269  { 60, 0x00, 0x00, 0x00}, //60/ --> <
270  { 61, 0x00, 0x00, 0x00}, //61/ --> =
271  { 62, 0x00, 0x00, 0x00}, //62/ --> >
272  { 63, 0x00, 0x00, 0x00}, //63/ --> ?
273  { 64, 0x00, 0x00, 0x00}, //64/ --> @
274  { 65, 0x00, 0x00, 0x00}, //65/ --> A
275  { 66, 0x00, 0x00, 0x00}, //66/ --> B
276  { 67, 0x00, 0x00, 0x00}, //67/ --> C
277  { 68, 0x00, 0x00, 0x00}, //68/ --> D
278  { 69, 0x00, 0x00, 0x00}, //69/ --> E
279  { 70, 0x00, 0x00, 0x00}, //70/ --> F
280  { 71, 0x00, 0x00, 0x00}, //71/ --> G
281  { 72, 0x00, 0x00, 0x00}, //72/ --> H
282  { 73, 0x00, 0x00, 0x00}, //73/ --> I
283  { 74, 0x00, 0x00, 0x00}, //74/ --> J
284  { 75, 0x00, 0x00, 0x00}, //75/ --> K
285  { 76, 0x00, 0x00, 0x00}, //76/ --> L
286  { 77, 0x00, 0x00, 0x00}, //77/ --> M
287  { 78, 0x00, 0x00, 0x00}, //78/ --> N
288  { 79, 0x00, 0x00, 0x00}, //79/ --> O
289  { 80, 0x00, 0x00, 0x00}, //80/ --> P
290  { 81, 0x00, 0x00, 0x00}, //81/ --> Q
291  { 82, 0x00, 0x00, 0x00}, //82/ --> R
292  { 83, 0x00, 0x00, 0x00}, //83/ --> S
293  { 84, 0x00, 0x00, 0x00}, //84/ --> T
294  { 85, 0x00, 0x00, 0x00}, //85/ --> U
295  { 86, 0x00, 0x00, 0x00}, //86/ --> V
296  { 87, 0x00, 0x00, 0x00}, //87/ --> W
297  { 88, 0x00, 0x00, 0x00}, //88/ --> X
298  { 89, 0x00, 0x00, 0x00}, //89/ --> Y
299  { 90, 0x00, 0x00, 0x00}, //90/ --> Z
300  { 91, 0x00, 0x00, 0x00}, //91/ --> [
301  { 92, 0x00, 0x00, 0x00}, //92/ --> \ /
302  { 93, 0x00, 0x00, 0x00}, //93/ --> ]
303  { 94, 0x00, 0x00, 0x00}, //94/ --> ^
304  { 95, 0x00, 0x00, 0x00}, //95/ --> _
305  { 96, 0x00, 0x00, 0x00}, //96/ --> `
306  { 97, 0x00, 0x00, 0x00}, //97/ --> a
307  { 98, 0x00, 0x00, 0x00}, //98/ --> b
308  { 99, 0x00, 0x00, 0x00}, //99/ --> c
309  { 100, 0x00, 0x00, 0x00}, //100/ --> d
310  { 101, 0x00, 0x00, 0x00}, //101/ --> e
311  { 102, 0x00, 0x00, 0x00}, //102/ --> f
312  { 103, 0x00, 0x00, 0x00}, //103/ --> g
313  { 104, 0x00, 0x00, 0x00}, //104/ --> h
314  { 105, 0x00, 0x00, 0x00}, //105/ --> i
315  { 106, 0x00, 0x00, 0x00}, //106/ --> j
316  { 107, 0x00, 0x00, 0x00}, //107/ --> k
317  { 108, 0x00, 0x00, 0x00}, //108/ --> l
318  { 109, 0x00, 0x00, 0x00}, //109/ --> m
319  { 110, 0x00, 0x00, 0x00}, //110/ --> n
320  { 111, 0x00, 0x00, 0x00}, //111/ --> o
321  { 112, 0x00, 0x00, 0x00}, //112/ --> p
322  { 113, 0x00, 0x00, 0x00}, //113/ --> q
323  { 114, 0x00, 0x00, 0x00}, //114/ --> r
324  { 115, 0x00, 0x00, 0x00}, //115/ --> s
325  { 116, 0x00, 0x00, 0x00}, //116/ --> t
326  { 117, 0x00, 0x00, 0x00}, //117/ --> u
327  { 118, 0x00, 0x00, 0x00}, //118/ --> v
328  { 119, 0x00, 0x00, 0x00}, //119/ --> w
329  { 120, 0x00, 0x00, 0x00}, //120/ --> x
330  { 121, 0x00, 0x00, 0x00}, //121/ --> y
331  { 122, 0x00, 0x00, 0x00}, //122/ --> z
332  { 123, 0x00, 0x00, 0x00}, //123/ --> {
333  { 124, 0x00, 0x00, 0x00}, //124/ --> |
334  { 125, 0x00, 0x00, 0x00}, //125/ --> }
335  { 126, 0x00, 0x00, 0x00}, //126/ --> ~
336  { 196, 0x00, 0x00, 0x00}, //142/ --> Ä
337  { 214, 0x00, 0x00, 0x00}, //153/ --> Ö
338  { 220, 0x00, 0x00, 0x00}, //154/ --> Ü
339  { 223, 0x00, 0x00, 0x00}, //225/ --> ß
340  { 228, 0x00, 0x00, 0x00}, //132/ --> ä
341  { 246, 0x00, 0x00, 0x00}, //148/ --> ö
342  { 252, 0x00, 0x00, 0x00} //129/ --> ü
343  };
344 
346  uint8_t i = 0;
347  if (ascii < 32)
348  return 0;
349 
350  switch (font) {
351  case FONT_REGULAR:
352  default:
353  for (i = 0; i < FONTREGULARELEMENTS; i++) {
354  if (fontregular[i][0] == ascii)
355  return (uint8_t*)&(fontregular[i][1]);
356  }
357  break;
358 
359  case FONT_TINY:
360  for (i = 0; i < FONTTINYELEMENTS; i++) {
361  if (fonttiny[i][0] == ascii)
362  return (uint8_t*)&(fonttiny[i][1]);
363  }
364  break;
365 
366  case FONT_NANO:
367  for (i = 0; i < FONTNANOELEMENTS; i++) {
368  if (fontnano[i][0] == ascii)
369  return (uint8_t*)&(fontnano[i][1]);
370  }
371  break;
372  }
373 
374  return 0;
375 }
376 
377 uint8_t font_getWidth(uint8_t font) {
378  switch (font) {
379  case FONT_REGULAR:
380  default:
381  return 5;
382  case FONT_TINY:
383  return 4;
384  case FONT_NANO:
385  return 3;
386  }
387 }
388 
389 uint8_t font_getHeight(uint8_t font) {
390  switch (font) {
391  case FONT_REGULAR:
392  default:
393  return 8;
394  case FONT_TINY:
395  return 5;
396  case FONT_NANO:
397  return 4;
398  }
399 }
unsigned char uint8_t
Definition: inttypes.h:35
uint8_t * font_getChar(uint8_t ascii, uint8_t font)
Definition: font.c:345