##// END OF EJS Templates
sync
jeandet@pc-de-jeandet3.LAB-LPP.LOCAL -
r35:d023e4e12407 dev_alexis
parent child
Show More
@@ -0,0 +1,55
1 /*------------------------------------------------------------------------------
2 -- This file is a part of the libuc, microcontroler library
3 -- Copyright (C) 2012, Alexis Jeandet
4 --
5 -- This program is free software; you can redistribute it and/or modify
6 -- it under the terms of the GNU General Public License as published by
7 -- the Free Software Foundation; either version 3 of the License, or
8 -- (at your option) any later version.
9 --
10 -- This program is distributed in the hope that it will be useful,
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -- GNU General Public License for more details.
14 --
15 -- You should have received a copy of the GNU General Public License
16 -- along with this program; if not, write to the Free Software
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 -------------------------------------------------------------------------------
19 -- Author : Alexis Jeandet
20 -- Mail : alexis.jeandet@gmail.com
21 -------------------------------------------------------------------------------*/
22 #ifndef FONTS_H
23 #define FONTS_H
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28
29 #include <stdint.h>
30
31
32 typedef struct _tFont
33 {
34 const uint16_t *table;
35 uint16_t Width;
36 uint16_t Height;
37
38 } sFONT;
39
40 extern sFONT Font16x24;
41
42
43 #ifdef __cplusplus
44 }
45 #endif
46
47 #endif
48
49
50
51
52
53
54
55
@@ -0,0 +1,9
1 TEMPLATE = subdirs
2 SUBDIRS += ./FONTS_STM32F4.pro
3
4
5
6
7
8
9
@@ -0,0 +1,14
1 TEMPLATE = lib
2 CONFIG += console
3 CONFIG -= qt
4 TARGET = fonts
5 include($$(libuc2)/rules/stm32f4-arm-none-eabi-gcc/rules.pri)
6
7 SOURCES += \
8 fonts8pts.c
9
10 HEADERS += \
11 $$(libuc2)/lib/includes/GRAPHIC/GUI/FONTS/fonts.h
12
13
14
This diff has been collapsed as it changes many lines, (601 lines changed) Show them Hide them
@@ -0,0 +1,601
1 /*------------------------------------------------------------------------------
2 -- This file is a part of the libuc, microcontroler library
3 -- Copyright (C) 2012, Alexis Jeandet
4 --
5 -- This program is free software; you can redistribute it and/or modify
6 -- it under the terms of the GNU General Public License as published by
7 -- the Free Software Foundation; either version 3 of the License, or
8 -- (at your option) any later version.
9 --
10 -- This program is distributed in the hope that it will be useful,
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -- GNU General Public License for more details.
14 --
15 -- You should have received a copy of the GNU General Public License
16 -- along with this program; if not, write to the Free Software
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 -------------------------------------------------------------------------------
19 -- Author : Alexis Jeandet
20 -- Mail : alexis.jeandet@gmail.com
21 -------------------------------------------------------------------------------*/
22 #include <fonts.h>
23
24 const uint16_t ASCII16x24_Table [] = {
25 /**
26 * @brief Space ' '
27 */
28 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
29 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
30 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
31 /**
32 * @brief '!'
33 */
34 0x0000, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
35 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0000, 0x0000,
36 0x0180, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
37 /**
38 * @brief '"'
39 */
40 0x0000, 0x0000, 0x00CC, 0x00CC, 0x00CC, 0x00CC, 0x00CC, 0x00CC,
41 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
42 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
43 /**
44 * @brief '#'
45 */
46 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C60, 0x0C60,
47 0x0C60, 0x0630, 0x0630, 0x1FFE, 0x1FFE, 0x0630, 0x0738, 0x0318,
48 0x1FFE, 0x1FFE, 0x0318, 0x0318, 0x018C, 0x018C, 0x018C, 0x0000,
49 /**
50 * @brief '$'
51 */
52 0x0000, 0x0080, 0x03E0, 0x0FF8, 0x0E9C, 0x1C8C, 0x188C, 0x008C,
53 0x0098, 0x01F8, 0x07E0, 0x0E80, 0x1C80, 0x188C, 0x188C, 0x189C,
54 0x0CB8, 0x0FF0, 0x03E0, 0x0080, 0x0080, 0x0000, 0x0000, 0x0000,
55 /**
56 * @brief '%'
57 */
58 0x0000, 0x0000, 0x0000, 0x180E, 0x0C1B, 0x0C11, 0x0611, 0x0611,
59 0x0311, 0x0311, 0x019B, 0x018E, 0x38C0, 0x6CC0, 0x4460, 0x4460,
60 0x4430, 0x4430, 0x4418, 0x6C18, 0x380C, 0x0000, 0x0000, 0x0000,
61 /**
62 * @brief '&'
63 */
64 0x0000, 0x01E0, 0x03F0, 0x0738, 0x0618, 0x0618, 0x0330, 0x01F0,
65 0x00F0, 0x00F8, 0x319C, 0x330E, 0x1E06, 0x1C06, 0x1C06, 0x3F06,
66 0x73FC, 0x21F0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
67 /**
68 * @brief '''
69 */
70 0x0000, 0x0000, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C,
71 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
72 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
73 /**
74 * @brief '('
75 */
76 0x0000, 0x0200, 0x0300, 0x0180, 0x00C0, 0x00C0, 0x0060, 0x0060,
77 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030,
78 0x0060, 0x0060, 0x00C0, 0x00C0, 0x0180, 0x0300, 0x0200, 0x0000,
79 /**
80 * @brief ')'
81 */
82 0x0000, 0x0020, 0x0060, 0x00C0, 0x0180, 0x0180, 0x0300, 0x0300,
83 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600,
84 0x0300, 0x0300, 0x0180, 0x0180, 0x00C0, 0x0060, 0x0020, 0x0000,
85 /**
86 * @brief '*'
87 */
88 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00C0, 0x00C0,
89 0x06D8, 0x07F8, 0x01E0, 0x0330, 0x0738, 0x0000, 0x0000, 0x0000,
90 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
91 /**
92 * @brief '+'
93 */
94 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0180, 0x0180,
95 0x0180, 0x0180, 0x0180, 0x3FFC, 0x3FFC, 0x0180, 0x0180, 0x0180,
96 0x0180, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
97 /**
98 * @brief ','
99 */
100 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
101 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
102 0x0000, 0x0180, 0x0180, 0x0100, 0x0100, 0x0080, 0x0000, 0x0000,
103 /**
104 * @brief '-'
105 */
106 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
107 0x0000, 0x0000, 0x0000, 0x0000, 0x07E0, 0x07E0, 0x0000, 0x0000,
108 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
109 /**
110 * @brief '.'
111 */
112 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
113 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
114 0x0000, 0x00C0, 0x00C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
115 /**
116 * @brief '/'
117 */
118 0x0000, 0x0C00, 0x0C00, 0x0600, 0x0600, 0x0600, 0x0300, 0x0300,
119 0x0300, 0x0380, 0x0180, 0x0180, 0x0180, 0x00C0, 0x00C0, 0x00C0,
120 0x0060, 0x0060, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
121 /**
122 * @brief '0'
123 */
124 0x0000, 0x03E0, 0x07F0, 0x0E38, 0x0C18, 0x180C, 0x180C, 0x180C,
125 0x180C, 0x180C, 0x180C, 0x180C, 0x180C, 0x180C, 0x0C18, 0x0E38,
126 0x07F0, 0x03E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
127 /**
128 * @brief '1'
129 */
130 0x0000, 0x0100, 0x0180, 0x01C0, 0x01F0, 0x0198, 0x0188, 0x0180,
131 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
132 0x0180, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
133 /**
134 * @brief '2'
135 */
136 0x0000, 0x03E0, 0x0FF8, 0x0C18, 0x180C, 0x180C, 0x1800, 0x1800,
137 0x0C00, 0x0600, 0x0300, 0x0180, 0x00C0, 0x0060, 0x0030, 0x0018,
138 0x1FFC, 0x1FFC, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
139 /**
140 * @brief '3'
141 */
142 0x0000, 0x01E0, 0x07F8, 0x0E18, 0x0C0C, 0x0C0C, 0x0C00, 0x0600,
143 0x03C0, 0x07C0, 0x0C00, 0x1800, 0x1800, 0x180C, 0x180C, 0x0C18,
144 0x07F8, 0x03E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
145 /**
146 * @brief '4'
147 */
148 0x0000, 0x0C00, 0x0E00, 0x0F00, 0x0F00, 0x0D80, 0x0CC0, 0x0C60,
149 0x0C60, 0x0C30, 0x0C18, 0x0C0C, 0x3FFC, 0x3FFC, 0x0C00, 0x0C00,
150 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
151 /**
152 * @brief '5'
153 */
154 0x0000, 0x0FF8, 0x0FF8, 0x0018, 0x0018, 0x000C, 0x03EC, 0x07FC,
155 0x0E1C, 0x1C00, 0x1800, 0x1800, 0x1800, 0x180C, 0x0C1C, 0x0E18,
156 0x07F8, 0x03E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
157 /**
158 * @brief '6'
159 */
160 0x0000, 0x07C0, 0x0FF0, 0x1C38, 0x1818, 0x0018, 0x000C, 0x03CC,
161 0x0FEC, 0x0E3C, 0x1C1C, 0x180C, 0x180C, 0x180C, 0x1C18, 0x0E38,
162 0x07F0, 0x03E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
163 /**
164 * @brief '7'
165 */
166 0x0000, 0x1FFC, 0x1FFC, 0x0C00, 0x0600, 0x0600, 0x0300, 0x0380,
167 0x0180, 0x01C0, 0x00C0, 0x00E0, 0x0060, 0x0060, 0x0070, 0x0030,
168 0x0030, 0x0030, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
169 /**
170 * @brief '8'
171 */
172 0x0000, 0x03E0, 0x07F0, 0x0E38, 0x0C18, 0x0C18, 0x0C18, 0x0638,
173 0x07F0, 0x07F0, 0x0C18, 0x180C, 0x180C, 0x180C, 0x180C, 0x0C38,
174 0x0FF8, 0x03E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
175 /**
176 * @brief '9'
177 */
178 0x0000, 0x03E0, 0x07F0, 0x0E38, 0x0C1C, 0x180C, 0x180C, 0x180C,
179 0x1C1C, 0x1E38, 0x1BF8, 0x19E0, 0x1800, 0x0C00, 0x0C00, 0x0E1C,
180 0x07F8, 0x01F0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
181 /**
182 * @brief ':'
183 */
184 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0180, 0x0180,
185 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
186 0x0180, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
187 /**
188 * @brief ';'
189 */
190 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0180, 0x0180,
191 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
192 0x0180, 0x0180, 0x0100, 0x0100, 0x0080, 0x0000, 0x0000, 0x0000,
193 /**
194 * @brief '<'
195 */
196 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
197 0x1000, 0x1C00, 0x0F80, 0x03E0, 0x00F8, 0x0018, 0x00F8, 0x03E0,
198 0x0F80, 0x1C00, 0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
199 /**
200 * @brief '='
201 */
202 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
203 0x1FF8, 0x0000, 0x0000, 0x0000, 0x1FF8, 0x0000, 0x0000, 0x0000,
204 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
205 /**
206 * @brief '>'
207 */
208 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
209 0x0008, 0x0038, 0x01F0, 0x07C0, 0x1F00, 0x1800, 0x1F00, 0x07C0,
210 0x01F0, 0x0038, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
211 /**
212 * @brief '?'
213 */
214 0x0000, 0x03E0, 0x0FF8, 0x0C18, 0x180C, 0x180C, 0x1800, 0x0C00,
215 0x0600, 0x0300, 0x0180, 0x00C0, 0x00C0, 0x00C0, 0x0000, 0x0000,
216 0x00C0, 0x00C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
217 /**
218 * @brief '@'
219 */
220 0x0000, 0x0000, 0x07E0, 0x1818, 0x2004, 0x29C2, 0x4A22, 0x4411,
221 0x4409, 0x4409, 0x4409, 0x2209, 0x1311, 0x0CE2, 0x4002, 0x2004,
222 0x1818, 0x07E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
223 /**
224 * @brief 'A'
225 */
226 0x0000, 0x0380, 0x0380, 0x06C0, 0x06C0, 0x06C0, 0x0C60, 0x0C60,
227 0x1830, 0x1830, 0x1830, 0x3FF8, 0x3FF8, 0x701C, 0x600C, 0x600C,
228 0xC006, 0xC006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
229 /**
230 * @brief 'B'
231 */
232 0x0000, 0x03FC, 0x0FFC, 0x0C0C, 0x180C, 0x180C, 0x180C, 0x0C0C,
233 0x07FC, 0x0FFC, 0x180C, 0x300C, 0x300C, 0x300C, 0x300C, 0x180C,
234 0x1FFC, 0x07FC, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
235 /**
236 * @brief 'C'
237 */
238 0x0000, 0x07C0, 0x1FF0, 0x3838, 0x301C, 0x700C, 0x6006, 0x0006,
239 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x6006, 0x700C, 0x301C,
240 0x1FF0, 0x07E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
241 /**
242 * @brief 'D'
243 */
244 0x0000, 0x03FE, 0x0FFE, 0x0E06, 0x1806, 0x1806, 0x3006, 0x3006,
245 0x3006, 0x3006, 0x3006, 0x3006, 0x3006, 0x1806, 0x1806, 0x0E06,
246 0x0FFE, 0x03FE, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
247 /**
248 * @brief 'E'
249 */
250 0x0000, 0x3FFC, 0x3FFC, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C,
251 0x1FFC, 0x1FFC, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C,
252 0x3FFC, 0x3FFC, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
253 /**
254 * @brief 'F'
255 */
256 0x0000, 0x3FF8, 0x3FF8, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018,
257 0x1FF8, 0x1FF8, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018,
258 0x0018, 0x0018, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
259 /**
260 * @brief 'G'
261 */
262 0x0000, 0x0FE0, 0x3FF8, 0x783C, 0x600E, 0xE006, 0xC007, 0x0003,
263 0x0003, 0xFE03, 0xFE03, 0xC003, 0xC007, 0xC006, 0xC00E, 0xF03C,
264 0x3FF8, 0x0FE0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
265 /**
266 * @brief 'H'
267 */
268 0x0000, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C,
269 0x3FFC, 0x3FFC, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C,
270 0x300C, 0x300C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
271 /**
272 * @brief 'I'
273 */
274 0x0000, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
275 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
276 0x0180, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
277 /**
278 * @brief 'J'
279 */
280 0x0000, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600,
281 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0618, 0x0618, 0x0738,
282 0x03F0, 0x01E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
283 /**
284 * @brief 'K'
285 */
286 0x0000, 0x3006, 0x1806, 0x0C06, 0x0606, 0x0306, 0x0186, 0x00C6,
287 0x0066, 0x0076, 0x00DE, 0x018E, 0x0306, 0x0606, 0x0C06, 0x1806,
288 0x3006, 0x6006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
289 /**
290 * @brief 'L'
291 */
292 0x0000, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018,
293 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018,
294 0x1FF8, 0x1FF8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
295 /**
296 * @brief 'M'
297 */
298 0x0000, 0xE00E, 0xF01E, 0xF01E, 0xF01E, 0xD836, 0xD836, 0xD836,
299 0xD836, 0xCC66, 0xCC66, 0xCC66, 0xC6C6, 0xC6C6, 0xC6C6, 0xC6C6,
300 0xC386, 0xC386, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
301 /**
302 * @brief 'N'
303 */
304 0x0000, 0x300C, 0x301C, 0x303C, 0x303C, 0x306C, 0x306C, 0x30CC,
305 0x30CC, 0x318C, 0x330C, 0x330C, 0x360C, 0x360C, 0x3C0C, 0x3C0C,
306 0x380C, 0x300C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
307 /**
308 * @brief 'O'
309 */
310 0x0000, 0x07E0, 0x1FF8, 0x381C, 0x700E, 0x6006, 0xC003, 0xC003,
311 0xC003, 0xC003, 0xC003, 0xC003, 0xC003, 0x6006, 0x700E, 0x381C,
312 0x1FF8, 0x07E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
313 /**
314 * @brief 'P'
315 */
316 0x0000, 0x0FFC, 0x1FFC, 0x380C, 0x300C, 0x300C, 0x300C, 0x300C,
317 0x180C, 0x1FFC, 0x07FC, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C,
318 0x000C, 0x000C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
319 /**
320 * @brief 'Q'
321 */
322 0x0000, 0x07E0, 0x1FF8, 0x381C, 0x700E, 0x6006, 0xE003, 0xC003,
323 0xC003, 0xC003, 0xC003, 0xC003, 0xE007, 0x6306, 0x3F0E, 0x3C1C,
324 0x3FF8, 0xF7E0, 0xC000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
325 /**
326 * @brief 'R'
327 */
328 0x0000, 0x0FFE, 0x1FFE, 0x3806, 0x3006, 0x3006, 0x3006, 0x3806,
329 0x1FFE, 0x07FE, 0x0306, 0x0606, 0x0C06, 0x1806, 0x1806, 0x3006,
330 0x3006, 0x6006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
331 /**
332 * @brief 'S'
333 */
334 0x0000, 0x03E0, 0x0FF8, 0x0C1C, 0x180C, 0x180C, 0x000C, 0x001C,
335 0x03F8, 0x0FE0, 0x1E00, 0x3800, 0x3006, 0x3006, 0x300E, 0x1C1C,
336 0x0FF8, 0x07E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
337 /**
338 * @brief 'T'
339 */
340 0x0000, 0x7FFE, 0x7FFE, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
341 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
342 0x0180, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
343 /**
344 * @brief 'U'
345 */
346 0x0000, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C,
347 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x300C, 0x1818,
348 0x1FF8, 0x07E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
349 /**
350 * @brief 'V'
351 */
352 0x0000, 0x6003, 0x3006, 0x3006, 0x3006, 0x180C, 0x180C, 0x180C,
353 0x0C18, 0x0C18, 0x0E38, 0x0630, 0x0630, 0x0770, 0x0360, 0x0360,
354 0x01C0, 0x01C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
355 /**
356 * @brief 'W'
357 */
358 0x0000, 0x6003, 0x61C3, 0x61C3, 0x61C3, 0x3366, 0x3366, 0x3366,
359 0x3366, 0x3366, 0x3366, 0x1B6C, 0x1B6C, 0x1B6C, 0x1A2C, 0x1E3C,
360 0x0E38, 0x0E38, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
361 /**
362 * @brief 'X'
363 */
364 0x0000, 0xE00F, 0x700C, 0x3018, 0x1830, 0x0C70, 0x0E60, 0x07C0,
365 0x0380, 0x0380, 0x03C0, 0x06E0, 0x0C70, 0x1C30, 0x1818, 0x300C,
366 0x600E, 0xE007, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
367 /**
368 * @brief 'Y'
369 */
370 0x0000, 0xC003, 0x6006, 0x300C, 0x381C, 0x1838, 0x0C30, 0x0660,
371 0x07E0, 0x03C0, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
372 0x0180, 0x0180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
373 /**
374 * @brief 'Z'
375 */
376 0x0000, 0x7FFC, 0x7FFC, 0x6000, 0x3000, 0x1800, 0x0C00, 0x0600,
377 0x0300, 0x0180, 0x00C0, 0x0060, 0x0030, 0x0018, 0x000C, 0x0006,
378 0x7FFE, 0x7FFE, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
379 /**
380 * @brief '['
381 */
382 0x0000, 0x03E0, 0x03E0, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060,
383 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060,
384 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x03E0, 0x03E0, 0x0000,
385 /**
386 * @brief '\'
387 */
388 0x0000, 0x0030, 0x0030, 0x0060, 0x0060, 0x0060, 0x00C0, 0x00C0,
389 0x00C0, 0x01C0, 0x0180, 0x0180, 0x0180, 0x0300, 0x0300, 0x0300,
390 0x0600, 0x0600, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
391 /**
392 * @brief ']'
393 */
394 0x0000, 0x03E0, 0x03E0, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300,
395 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300,
396 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x03E0, 0x03E0, 0x0000,
397 /**
398 * @brief '^'
399 */
400 0x0000, 0x0000, 0x01C0, 0x01C0, 0x0360, 0x0360, 0x0360, 0x0630,
401 0x0630, 0x0C18, 0x0C18, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
402 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
403 /**
404 * @brief '_'
405 */
406 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
407 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
408 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
409 /**
410 * @brief '''
411 */
412 0x0000, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x0000,
413 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
414 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
415 /**
416 * @brief 'a'
417 */
418 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03F0, 0x07F8,
419 0x0C1C, 0x0C0C, 0x0F00, 0x0FF0, 0x0CF8, 0x0C0C, 0x0C0C, 0x0F1C,
420 0x0FF8, 0x18F0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
421 /**
422 * @brief 'b'
423 */
424 0x0000, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x03D8, 0x0FF8,
425 0x0C38, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x0C38,
426 0x0FF8, 0x03D8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
427 /**
428 * @brief 'c'
429 */
430 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03C0, 0x07F0,
431 0x0E30, 0x0C18, 0x0018, 0x0018, 0x0018, 0x0018, 0x0C18, 0x0E30,
432 0x07F0, 0x03C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
433 /**
434 * @brief 'd'
435 */
436 0x0000, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1BC0, 0x1FF0,
437 0x1C30, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1C30,
438 0x1FF0, 0x1BC0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
439 /**
440 * @brief 'e'
441 */
442 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03C0, 0x0FF0,
443 0x0C30, 0x1818, 0x1FF8, 0x1FF8, 0x0018, 0x0018, 0x1838, 0x1C30,
444 0x0FF0, 0x07C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
445 /**
446 * @brief 'f'
447 */
448 0x0000, 0x0F80, 0x0FC0, 0x00C0, 0x00C0, 0x00C0, 0x07F0, 0x07F0,
449 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0,
450 0x00C0, 0x00C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
451 /**
452 * @brief 'g'
453 */
454 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0DE0, 0x0FF8,
455 0x0E18, 0x0C0C, 0x0C0C, 0x0C0C, 0x0C0C, 0x0C0C, 0x0C0C, 0x0E18,
456 0x0FF8, 0x0DE0, 0x0C00, 0x0C0C, 0x061C, 0x07F8, 0x01F0, 0x0000,
457 /**
458 * @brief 'h'
459 */
460 0x0000, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x07D8, 0x0FF8,
461 0x1C38, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818,
462 0x1818, 0x1818, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
463 /**
464 * @brief 'i'
465 */
466 0x0000, 0x00C0, 0x00C0, 0x0000, 0x0000, 0x0000, 0x00C0, 0x00C0,
467 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0,
468 0x00C0, 0x00C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
469 /**
470 * @brief 'j'
471 */
472 0x0000, 0x00C0, 0x00C0, 0x0000, 0x0000, 0x0000, 0x00C0, 0x00C0,
473 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0,
474 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00F8, 0x0078, 0x0000,
475 /**
476 * @brief 'k'
477 */
478 0x0000, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x0C0C, 0x060C,
479 0x030C, 0x018C, 0x00CC, 0x006C, 0x00FC, 0x019C, 0x038C, 0x030C,
480 0x060C, 0x0C0C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
481 /**
482 * @brief 'l'
483 */
484 0x0000, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0,
485 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0,
486 0x00C0, 0x00C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
487 /**
488 * @brief 'm'
489 */
490 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3C7C, 0x7EFF,
491 0xE3C7, 0xC183, 0xC183, 0xC183, 0xC183, 0xC183, 0xC183, 0xC183,
492 0xC183, 0xC183, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
493 /**
494 * @brief 'n'
495 */
496 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0798, 0x0FF8,
497 0x1C38, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818,
498 0x1818, 0x1818, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
499 /**
500 * @brief 'o'
501 */
502 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03C0, 0x0FF0,
503 0x0C30, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x0C30,
504 0x0FF0, 0x03C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
505 /**
506 * @brief 'p'
507 */
508 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03D8, 0x0FF8,
509 0x0C38, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x0C38,
510 0x0FF8, 0x03D8, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0000,
511 /**
512 * @brief 'q'
513 */
514 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1BC0, 0x1FF0,
515 0x1C30, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1C30,
516 0x1FF0, 0x1BC0, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x0000,
517 /**
518 * @brief 'r'
519 */
520 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x07B0, 0x03F0,
521 0x0070, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030,
522 0x0030, 0x0030, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
523 /**
524 * @brief 's'
525 */
526 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03E0, 0x03F0,
527 0x0E38, 0x0C18, 0x0038, 0x03F0, 0x07C0, 0x0C00, 0x0C18, 0x0E38,
528 0x07F0, 0x03E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
529 /**
530 * @brief 't'
531 */
532 0x0000, 0x0000, 0x0080, 0x00C0, 0x00C0, 0x00C0, 0x07F0, 0x07F0,
533 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0,
534 0x07C0, 0x0780, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
535 /**
536 * @brief 'u'
537 */
538 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1818, 0x1818,
539 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1818, 0x1C38,
540 0x1FF0, 0x19E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
541 /**
542 * @brief 'v'
543 */
544 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x180C, 0x0C18,
545 0x0C18, 0x0C18, 0x0630, 0x0630, 0x0630, 0x0360, 0x0360, 0x0360,
546 0x01C0, 0x01C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
547 /**
548 * @brief 'w'
549 */
550 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x41C1, 0x41C1,
551 0x61C3, 0x6363, 0x6363, 0x6363, 0x3636, 0x3636, 0x3636, 0x1C1C,
552 0x1C1C, 0x1C1C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
553 /**
554 * @brief 'x'
555 */
556 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x381C, 0x1C38,
557 0x0C30, 0x0660, 0x0360, 0x0360, 0x0360, 0x0360, 0x0660, 0x0C30,
558 0x1C38, 0x381C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
559 /**
560 * @brief 'y'
561 */
562 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3018, 0x1830,
563 0x1830, 0x1870, 0x0C60, 0x0C60, 0x0CE0, 0x06C0, 0x06C0, 0x0380,
564 0x0380, 0x0380, 0x0180, 0x0180, 0x01C0, 0x00F0, 0x0070, 0x0000,
565 /**
566 * @brief 'z'
567 */
568 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1FFC, 0x1FFC,
569 0x0C00, 0x0600, 0x0300, 0x0180, 0x00C0, 0x0060, 0x0030, 0x0018,
570 0x1FFC, 0x1FFC, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
571 /**
572 * @brief '{'
573 */
574 0x0000, 0x0300, 0x0180, 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x00C0,
575 0x00C0, 0x0060, 0x0060, 0x0030, 0x0060, 0x0040, 0x00C0, 0x00C0,
576 0x00C0, 0x00C0, 0x00C0, 0x00C0, 0x0180, 0x0300, 0x0000, 0x0000,
577 /**
578 * @brief '|'
579 */
580 0x0000, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
581 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180,
582 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0000,
583 /**
584 * @brief '}'
585 */
586 0x0000, 0x0060, 0x00C0, 0x01C0, 0x0180, 0x0180, 0x0180, 0x0180,
587 0x0180, 0x0300, 0x0300, 0x0600, 0x0300, 0x0100, 0x0180, 0x0180,
588 0x0180, 0x0180, 0x0180, 0x0180, 0x00C0, 0x0060, 0x0000, 0x0000,
589 /**
590 * @brief '~'
591 */
592 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
593 0x10F0, 0x1FF8, 0x0F08, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
594 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
595 };
596
597 sFONT Font16x24 = {
598 ASCII16x24_Table,
599 16, /* Width */
600 24, /* Height */
601 };
@@ -0,0 +1,10
1 TEMPLATE = subdirs
2 SUBDIRS += FONTS
3
4
5
6
7
8
9
10
@@ -1,232 +1,269
1 /*------------------------------------------------------------------------------
1 /*------------------------------------------------------------------------------
2 -- This file is a part of the libuc, microcontroler library
2 -- This file is a part of the libuc, microcontroler library
3 -- Copyright (C) 2011, Alexis Jeandet
3 -- Copyright (C) 2011, Alexis Jeandet
4 --
4 --
5 -- This program is free software; you can redistribute it and/or modify
5 -- This program is free software; you can redistribute it and/or modify
6 -- it under the terms of the GNU General Public License as published by
6 -- it under the terms of the GNU General Public License as published by
7 -- the Free Software Foundation; either version 3 of the License, or
7 -- the Free Software Foundation; either version 3 of the License, or
8 -- (at your option) any later version.
8 -- (at your option) any later version.
9 --
9 --
10 -- This program is distributed in the hope that it will be useful,
10 -- This program is distributed in the hope that it will be useful,
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -- GNU General Public License for more details.
13 -- GNU General Public License for more details.
14 --
14 --
15 -- You should have received a copy of the GNU General Public License
15 -- You should have received a copy of the GNU General Public License
16 -- along with this program; if not, write to the Free Software
16 -- along with this program; if not, write to the Free Software
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 -------------------------------------------------------------------------------
18 -------------------------------------------------------------------------------
19 -- Author : Alexis Jeandet
19 -- Author : Alexis Jeandet
20 -- Mail : alexis.jeandet@gmail.com
20 -- Mail : alexis.jeandet@gmail.com
21 -------------------------------------------------------------------------------*/
21 -------------------------------------------------------------------------------*/
22 #include "bsp.h"
22 #include "bsp.h"
23 #include <streamdevices.h>
23 #include <streamdevices.h>
24 #include <malloc.h>
24 #include <malloc.h>
25 #include <gpio.h>
25 #include <gpio.h>
26 #include <uart.h>
26 #include <uart.h>
27 #include <stdio.h>
27 #include <stdio.h>
28 #include <stm32f4xx_gpio.h>
28 #include <stm32f4xx_gpio.h>
29 #include <stm32f4xx_fsmc.h>
29 #include <stm32f4xx_fsmc.h>
30 #include <i2c.h>
30 #include <i2c.h>
31 uint32_t OSC0 =8000000;
31 uint32_t OSC0 =8000000;
32 uint32_t INTOSC =16000000;
32 uint32_t INTOSC =16000000;
33 uint32_t RTCOSC =32768;
33 uint32_t RTCOSC =32768;
34 uint32_t currentCpuFreq=0;
34 uint32_t currentCpuFreq=0;
35 extern streamdevice* __opnfiles__[__MAX_OPENED_FILES__];
35 extern streamdevice* __opnfiles__[__MAX_OPENED_FILES__];
36 LCD_t lcd0;
36 LCD_t lcd0;
37 LCD_IF_t lcdIF0;
37 LCD_IF_t lcdIF0;
38
38
39 volatile int16_t* lcd0_CMD=(volatile int16_t*) 0x60000000;
39 volatile int16_t* lcd0_CMD=(volatile int16_t*) 0x60000000;
40 volatile int16_t* lcd0_DATA=(volatile int16_t*)(0x61FFFFF0);
40 volatile int16_t* lcd0_DATA=(volatile int16_t*)(0x61FFFFF0);
41
41
42 float VREF0 =(float)3.3;
42 float VREF0 =(float)3.3;
43
43
44 int bsp_init()
44 int bsp_init()
45 {
45 {
46 int i=0;
46 int i=0;
47 for(i=0;i<32;i++)
47 for(i=0;i<32;i++)
48 {
48 {
49 __opnfiles__[i] = NULL;
49 __opnfiles__[i] = NULL;
50 }
50 }
51 bsp_GPIO_init();
51 bsp_GPIO_init();
52 bsp_uart_init();
52 bsp_uart_init();
53 bsp_iic_init();
53 bsp_iic_init();
54 bsp_FSMC_init();
54 bsp_FSMC_init();
55 printf("\r================================================================\n\r");
55 printf("\r================================================================\n\r");
56 printf("================================================================\n\r");
56 printf("================================================================\n\r");
57 printf(BSP);
57 printf(BSP);
58 printf(" initialised\n\r");
58 printf(" initialised\n\r");
59 printf("================================================================\n\r");
59 printf("================================================================\n\r");
60 return 1;
60 return 1;
61 }
61 }
62
62
63 void bsp_GPIO_init()
63 void bsp_GPIO_init()
64 {
64 {
65 gpio_t gpio1 = gpioopen(LED1);
65 gpio_t gpio1 = gpioopen(LED1);
66 gpio_t gpio2 = gpioopen(LED2);
66 gpio_t gpio2 = gpioopen(LED2);
67 gpio_t gpio3 = gpioopen(LED3);
67 gpio_t gpio3 = gpioopen(LED3);
68 gpio_t gpio4 = gpioopen(PSU_DISABLE);
68 gpio_t gpio4 = gpioopen(PSU_DISABLE);
69 gpio_t gpio5 = gpioopen(PSU_ALERT_5V);
69 gpio_t gpio5 = gpioopen(PSU_ALERT_5V);
70 gpio_t gpio6 = gpioopen(PSU_ALERT_1_5V);
70 gpio_t gpio6 = gpioopen(PSU_ALERT_1_5V);
71 gpio_t gpio7 = gpioopen(PSU_ALERT_3_3V);
71 gpio_t gpio7 = gpioopen(PSU_ALERT_3_3V);
72 gpiosetspeed(&gpio1,gpiohighspeed);
72 gpiosetspeed(&gpio1,gpiohighspeed);
73 gpiosetspeed(&gpio2,gpiohighspeed);
73 gpiosetspeed(&gpio2,gpiohighspeed);
74 gpiosetspeed(&gpio3,gpiohighspeed);
74 gpiosetspeed(&gpio3,gpiohighspeed);
75 gpiosetspeed(&gpio4,gpiohighspeed);
75 gpiosetspeed(&gpio4,gpiohighspeed);
76 gpiosetspeed(&gpio5,gpiohighspeed);
76 gpiosetspeed(&gpio5,gpiohighspeed);
77 gpiosetspeed(&gpio6,gpiohighspeed);
77 gpiosetspeed(&gpio6,gpiohighspeed);
78 gpiosetspeed(&gpio7,gpiohighspeed);
78 gpiosetspeed(&gpio7,gpiohighspeed);
79 gpioclr(PSU_DISABLE);
79 gpioclr(PSU_DISABLE);
80 gpiosetdir(&gpio1,gpiooutdir);
80 gpiosetdir(&gpio1,gpiooutdir);
81 gpiosetdir(&gpio3,gpiooutdir);
81 gpiosetdir(&gpio3,gpiooutdir);
82 gpiosetdir(&gpio2,gpiooutdir);
82 gpiosetdir(&gpio2,gpiooutdir);
83 gpiosetdir(&gpio4,gpiooutdir);
83 gpiosetdir(&gpio4,gpiooutdir);
84 gpiosetdir(&gpio5,gpioindir);
84 gpiosetdir(&gpio5,gpioindir);
85 gpiosetdir(&gpio6,gpioindir);
85 gpiosetdir(&gpio6,gpioindir);
86 gpiosetdir(&gpio7,gpioindir);
86 gpiosetdir(&gpio7,gpioindir);
87 gpioclr(PSU_DISABLE);
87 gpioclr(PSU_DISABLE);
88 }
88 }
89
89
90 void bsp_uart_init()
90 void bsp_uart_init()
91 {
91 {
92 if(__opnfiles__[1]==NULL)
92 if(__opnfiles__[1]==NULL)
93 {
93 {
94 //uart_t* uart1 = (uart_t*)malloc(sizeof(uart_t));
94 //uart_t* uart1 = (uart_t*)malloc(sizeof(uart_t));
95 streamdevice* fd1 = (streamdevice*)malloc(sizeof(streamdevice));
95 streamdevice* fd1 = (streamdevice*)malloc(sizeof(streamdevice));
96 uart_t uart = uartopenandconfig(uart1,uartparitynone | uart8bits | uartonestop,115200,PA9,PA10,-1,-1);
96 uart_t uart = uartopenandconfig(uart1,uartparitynone | uart8bits | uartonestop,115200,PA9,PA10,-1,-1);
97 uartmkstreamdev(uart,fd1);
97 uartmkstreamdev(uart,fd1);
98 __opnfiles__[1] = fd1;
98 __opnfiles__[1] = fd1;
99 }
99 }
100 else
100 else
101 {
101 {
102 uartopenandconfig(0,uartparitynone | uart8bits | uartonestop,115200,PA9,PA10,-1,-1);
102 uartopenandconfig(0,uartparitynone | uart8bits | uartonestop,115200,PA9,PA10,-1,-1);
103 }
103 }
104 }
104 }
105
105
106 void bsp_lcd0_write_reg(uint32_t reg,uint32_t data);
106 void bsp_lcd0_write_reg(uint32_t reg,uint32_t data);
107 uint32_t bsp_lcd0_read_reg(uint32_t reg);
108 void bsp_lcd0_writeGRAM(void *buffer, uint32_t count);
109 void bsp_lcd0_readGRAM(void *buffer, uint32_t count);
110
107 void bsp_FSMC_init()
111 void bsp_FSMC_init()
108 {
112 {
109 #define GPIOGETPORT(gpio) ((GPIO_TypeDef*)(((((uint32_t)gpio) & (uint32_t)0x0000FF00)*(uint32_t)4) + (uint32_t)GPIOA))
113 #define GPIOGETPORT(gpio) ((GPIO_TypeDef*)(((((uint32_t)gpio) & (uint32_t)0x0000FF00)*(uint32_t)4) + (uint32_t)GPIOA))
110 #define GPIOPORTNUM(gpio) (((uint32_t)(gpio) & (uint32_t)0x0000FF00)>>(uint32_t)8)
114 #define GPIOPORTNUM(gpio) (((uint32_t)(gpio) & (uint32_t)0x0000FF00)>>(uint32_t)8)
111
115
112 gpio_t gpio1 = gpioopen(LCD_RESET);
116 gpio_t gpio1 = gpioopen(LCD_RESET);
113 gpiosetspeed(&gpio1,gpiohighspeed);
117 gpiosetspeed(&gpio1,gpiohighspeed);
114 gpiosetdir(&gpio1,gpiooutdir);
118 gpiosetdir(&gpio1,gpiooutdir);
115 gpioclr(LCD_RESET);
119 gpioclr(LCD_RESET);
116
120
117 gpio_t LCD_DBxList[]={PD14,PD15,PD0,PD1,PE7,PE8,PE9,PE10,PE11,PE12,PE13,PE14,PE15\
121 gpio_t LCD_DBxList[]={PD14,PD15,PD0,PD1,PE7,PE8,PE9,PE10,PE11,PE12,PE13,PE14,PE15\
118 ,PD8,PD9,PD10,PD4,PD5,PD7,PE4};
122 ,PD8,PD9,PD10,PD4,PD5,PD7,PE4};
119 for(int i=0;i<20;i++)
123 for(int i=0;i<20;i++)
120 {
124 {
121 gpio_t LCD_DBx = gpioopen(LCD_DBxList[i]);
125 gpio_t LCD_DBx = gpioopen(LCD_DBxList[i]);
122 LCD_DBx |= gpiohighspeed | gpioaf | gpiopushpulltype | gpionopulltype;
126 LCD_DBx |= gpiohighspeed | gpioaf | gpiopushpulltype | gpionopulltype;
123 gpiosetconfig(&LCD_DBx);
127 gpiosetconfig(&LCD_DBx);
124 GPIO_PinAFConfig(GPIOGETPORT(LCD_DBx), (uint8_t)(LCD_DBx & 0xF), GPIO_AF_FSMC);
128 GPIO_PinAFConfig(GPIOGETPORT(LCD_DBx), (uint8_t)(LCD_DBx & 0xF), GPIO_AF_FSMC);
125 }
129 }
126
130
127 FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;
131 FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;
128 FSMC_NORSRAMTimingInitTypeDef p;
132 FSMC_NORSRAMTimingInitTypeDef p;
129
133
130 /* Enable FSMC clock */
134 /* Enable FSMC clock */
131 RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC, ENABLE);
135 RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC, ENABLE);
132
136
133 /*-- FSMC Configuration ------------------------------------------------------*/
137 /*-- FSMC Configuration ------------------------------------------------------*/
134 /*----------------------- SRAM Bank 3 ----------------------------------------*/
138 /*----------------------- SRAM Bank 3 ----------------------------------------*/
135 /* FSMC_Bank1_NORSRAM4 configuration */
139 /* FSMC_Bank1_NORSRAM4 configuration */
136 p.FSMC_AddressSetupTime = 5;
140 //p.FSMC_AddressSetupTime = 5;
141 p.FSMC_AddressSetupTime = 1;
137 p.FSMC_AddressHoldTime = 0;
142 p.FSMC_AddressHoldTime = 0;
138 p.FSMC_DataSetupTime = 9;
143 //p.FSMC_DataSetupTime = 9;
144 p.FSMC_DataSetupTime = 3;
139 p.FSMC_BusTurnAroundDuration = 0;
145 p.FSMC_BusTurnAroundDuration = 0;
140 p.FSMC_CLKDivision = 0;
146 p.FSMC_CLKDivision = 0;
141 p.FSMC_DataLatency = 0;
147 p.FSMC_DataLatency = 0;
142 p.FSMC_AccessMode = FSMC_AccessMode_A;
148 p.FSMC_AccessMode = FSMC_AccessMode_A;
143 /* Color LCD configuration ------------------------------------
149 /* Color LCD configuration ------------------------------------
144 LCD configured as follow:
150 LCD configured as follow:
145 - Data/Address MUX = Disable
151 - Data/Address MUX = Disable
146 - Memory Type = SRAM
152 - Memory Type = SRAM
147 - Data Width = 16bit
153 - Data Width = 16bit
148 - Write Operation = Enable
154 - Write Operation = Enable
149 - Extended Mode = Enable
155 - Extended Mode = Enable
150 - Asynchronous Wait = Disable */
156 - Asynchronous Wait = Disable */
151
157
152 FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
158 FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
153 FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
159 FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
154 FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
160 FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
155 FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
161 FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
156 FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
162 FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
157 FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;
163 FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;
158 FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
164 FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
159 FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
165 FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
160 FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
166 FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
161 FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
167 FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
162 FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
168 FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
163 FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
169 FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
164 FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
170 FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
165 FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
171 FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
166 FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
172 FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
167
173
168 FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
174 FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
169
175
170 /* Enable FSMC NOR/SRAM Bank1 */
176 /* Enable FSMC NOR/SRAM Bank1 */
171 FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
177 FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
172 lcdIF0.writereg=&bsp_lcd0_write_reg;
178 lcdIF0.writereg=&bsp_lcd0_write_reg;
179 lcdIF0.readGRAM=&bsp_lcd0_readGRAM;
180 lcdIF0.readreg=&bsp_lcd0_read_reg;
181 lcdIF0.writeGRAM=&bsp_lcd0_writeGRAM;
173 lcd0.interface=&lcdIF0;
182 lcd0.interface=&lcdIF0;
174 lcd0.init=&ili9328init;
183 lcd0.init=&ili9328init;
184 lcd0.paint=&ili9328paint;
175 gpioset(LCD_RESET);
185 gpioset(LCD_RESET);
176 lcd0.init(&lcd0);
186 lcd0.init(&lcd0);
177 }
187 }
178
188
179 void bsp_spi_init()
189 void bsp_spi_init()
180 {
190 {
181
191
182 }
192 }
183
193
184
194
185 void bsp_iic_init()
195 void bsp_iic_init()
186 {
196 {
187 i2copenandconfig(i2c2,0,400000,PF0,PF1);
197 i2copenandconfig(i2c2,0,400000,PF0,PF1);
188 }
198 }
189
199
190 void bsp_SD_init()
200 void bsp_SD_init()
191 {
201 {
192
202
193 }
203 }
194
204
195 void vs10XXclearXCS(){}
205 void vs10XXclearXCS(){}
196 void vs10XXsetXCS(){}
206 void vs10XXsetXCS(){}
197 int vs10XXDREQ()
207 int vs10XXDREQ()
198 {
208 {
199 return 1;
209 return 1;
200 }
210 }
201
211
202
212
203 void bsppowersdcard(char onoff) //always ON
213 void bsppowersdcard(char onoff) //always ON
204 {
214 {
205
215
206 }
216 }
207
217
208 char bspsdcardpresent()
218 char bspsdcardpresent()
209 {
219 {
210 return 0;
220 return 0;
211 }
221 }
212
222
213 char bspsdcardwriteprotected()
223 char bspsdcardwriteprotected()
214 {
224 {
215 return 0;
225 return 0;
216 }
226 }
217
227
218 void bspsdcardselect(char YESNO)
228 void bspsdcardselect(char YESNO)
219 {
229 {
220
230
221 }
231 }
222
232
223
233
224 void bsp_lcd0_write_reg(uint32_t reg,uint32_t data)
234 void bsp_lcd0_write_reg(uint32_t reg,uint32_t data)
225 {
235 {
226 *lcd0_CMD=(uint16_t)reg;
236 *lcd0_CMD=(uint16_t)reg;
227 *lcd0_DATA=(uint16_t)data;
237 *lcd0_DATA=(uint16_t)data;
228 }
238 }
229
239
240 uint32_t bsp_lcd0_read_reg(uint32_t reg)
241 {
242 *lcd0_CMD=(uint16_t)reg;
243 return (uint16_t)*lcd0_DATA;
244 }
245
246 void bsp_lcd0_writeGRAM(void* buffer,uint32_t count)
247 {
248 *lcd0_CMD=(uint16_t)ILI9328_REGISTER_WRITEDATATOGRAM;
249 uint16_t* castedBuff=(uint16_t*)buffer;
250 for(uint32_t i=0;i<count;i++)
251 {
252 *lcd0_DATA=castedBuff[i];
253 }
254 }
255
256 void bsp_lcd0_readGRAM(void* buffer,uint32_t count)
257 {
258 *lcd0_CMD=(uint16_t)ILI9328_REGISTER_WRITEDATATOGRAM;
259 uint16_t* castedBuff=(uint16_t*)buffer;
260 castedBuff[0]=*lcd0_DATA;
261 for(uint32_t i=0;i<count;i++)
262 {
263 castedBuff[i]=*lcd0_DATA;
264 }
265 }
230
266
231
267
232
268
269
@@ -1,73 +1,93
1 #include <stdio.h>
1 #include <stdio.h>
2 #include <fat32.h>
2 #include <fat32.h>
3 #include <gpio.h>
3 #include <gpio.h>
4 #include <uart.h>
4 #include <uart.h>
5 #include <stm32f4xx.h>
5 #include <stm32f4xx.h>
6 #include <bsp.h>
6 #include <bsp.h>
7 #include <i2c.h>
7 #include <i2c.h>
8 #include <CS43L22.h>
8 #include <CS43L22.h>
9 #include <ina226.h>
9 #include <ina226.h>
10 #include <fonts.h>
10
11
11
12
12 extern streamdevice* __opnfiles__[];
13 extern streamdevice* __opnfiles__[];
13
14
14 int main()
15 int main()
15 {
16 {
16 INA226_t ina5VSens,ina33VSens,ina15VSens;
17 INA226_t ina5VSens,ina33VSens,ina15VSens;
17 gpioset(PSU_DISABLE);
18 gpioset(PSU_DISABLE);
18 volatile int16_t* regtest=(volatile int16_t*)0x60000000;
19 volatile int16_t* regtest=(volatile int16_t*)0x60000000;
19 volatile int16_t* regtest2=(volatile int16_t*)(0x61FFFFF0);
20 volatile int16_t* regtest2=(volatile int16_t*)(0x61FFFFF0);
20 //ina226open(&ina5VSens,i2c2,INA226_MODE_SHUNT_VOLTAGE_CONTINUOUS|INA226_AVERAGES_16|INA226_BUS_CONV_8244us|INA226_SHUNT_CONV_8244us,0,0,15,1000000);
21 //ina226open(&ina5VSens,i2c2,INA226_MODE_SHUNT_VOLTAGE_CONTINUOUS|INA226_AVERAGES_16|INA226_BUS_CONV_8244us|INA226_SHUNT_CONV_8244us,0,0,15,1000000);
21 //ina226open(&ina15VSens,i2c2,INA226_MODE_SHUNT_VOLTAGE_CONTINUOUS|INA226_AVERAGES_16|INA226_BUS_CONV_8244us|INA226_SHUNT_CONV_8244us,1,0,15,1000000);
22 //ina226open(&ina15VSens,i2c2,INA226_MODE_SHUNT_VOLTAGE_CONTINUOUS|INA226_AVERAGES_16|INA226_BUS_CONV_8244us|INA226_SHUNT_CONV_8244us,1,0,15,1000000);
22 *regtest=(int16_t)0;
23 *regtest=(int16_t)0;
23 printf("LCD ID=%x\n\r",0xFFFF&(*regtest2));
24 printf("LCD ID=%x\n\r",0xFFFF&(*regtest2));
24 //*regtest=(int16_t)ILI9328_REGISTER_ENTRYMODE;
25
25 //*regtest2=(int16_t)0x1008;
26 while(1)
26 *regtest=(int16_t)0x20;
27 *regtest2=(int16_t)0x0;
28 *regtest=(int16_t)0x21;
29 *regtest2=(int16_t)0x0;
30 *regtest=(int16_t)0x22;
31 for(volatile int i=0;i<(320*240);i++)
32 {
27 {
33 *regtest2=(int16_t)i;
28 /* *regtest=(int16_t)ILI9328_REGISTER_ENTRYMODE;
34 for(volatile int l=0;l<(1024);l++);
29 *regtest2=(int16_t)0x1008;*/
30 ili9328setFrame(&lcd0,0,0,240,320);
31 *regtest=(int16_t)0x22;
32 for(volatile int i=0;i<(320*240);i++)
33 {
34 *regtest2=(int16_t)0x001F;
35 //for(volatile int l=0;l<(1024);l++);
35
36
37 }
38 /* *regtest=(int16_t)ILI9328_REGISTER_ENTRYMODE;
39 *regtest2=(int16_t)0x1018;*/
40 for(volatile int i=0;i<(320*240*100);i++);
41 /* *regtest=(int16_t)ILI9328_REGISTER_ENTRYMODE;
42 *regtest2=(int16_t)0x1008;*/
43 //ili9328setGRAMaddress(&lcd0,60,80);
44 uint16_t test[80*80];
45 ili9328setFrame(&lcd0,10,10,100,100);
46 *regtest=(int16_t)0x22;
47 for(volatile int i=0;i<(100*100);i++)
48 {
49 *regtest2=(int16_t)(0xF800);
50 //test[i]=(int16_t)0xF800;
51 //for(volatile int l=0;l<(1024);l++);
52
53 }
54 //lcd0.paint(&lcd0,test,100,100,80,80);
55 /**regtest=(int16_t)ILI9328_REGISTER_ENTRYMODE;
56 *regtest2=(int16_t)0x1018;*/
57 for(volatile int i=0;i<(320*240*100);i++);
36 }
58 }
37 //*regtest=(int16_t)ILI9328_REGISTER_ENTRYMODE;
38 //*regtest2=(int16_t)0x1018;
39
59
40 if(-1==ina226open(&ina33VSens,i2c2,INA226_MODE_SHUNT_VOLTAGE_CONTINUOUS|INA226_AVERAGES_16|INA226_BUS_CONV_8244us|INA226_SHUNT_CONV_8244us,0,1,15,1000000))
60 if(-1==ina226open(&ina33VSens,i2c2,INA226_MODE_SHUNT_VOLTAGE_CONTINUOUS|INA226_AVERAGES_16|INA226_BUS_CONV_8244us|INA226_SHUNT_CONV_8244us,0,1,15,1000000))
41 {
61 {
42 printf("Can't open 3.3V monitor\n\r");
62 printf("Can't open 3.3V monitor\n\r");
43 }
63 }
44
64
45 int current5V,current33V,current15V;
65 int current5V,current33V,current15V;
46 printf("\t5V\t3.3V\n\r");
66 printf("\t5V\t3.3V\n\r");
47 while(1)
67 while(1)
48 {
68 {
49 for(volatile int i=0;i<1024*1024;i++);
69 for(volatile int i=0;i<1024*1024;i++);
50 gpioset(LED1);
70 gpioset(LED1);
51 gpioclr(LED2);
71 gpioclr(LED2);
52 for(volatile int i=0;i<1024*1024;i++);
72 for(volatile int i=0;i<1024*1024;i++);
53 gpioclr(LED1);
73 gpioclr(LED1);
54 gpioset(LED2);
74 gpioset(LED2);
55 //current5V = ina226getCurrent(&ina5VSens);
75 //current5V = ina226getCurrent(&ina5VSens);
56 current33V = ina226getCurrent(&ina33VSens);
76 current33V = ina226getCurrent(&ina33VSens);
57 //current15V = ina226getCurrent(&ina15VSens);
77 //current15V = ina226getCurrent(&ina15VSens);
58 //current = ina226getReg(&Psens1,INA226_Current_Reg);
78 //current = ina226getReg(&Psens1,INA226_Current_Reg);
59 //printf("%duA %dmA\t%duA %dmA\n\r",current5V,current5V/1000,current33V,current33V/1000);
79 //printf("%duA %dmA\t%duA %dmA\n\r",current5V,current5V/1000,current33V,current33V/1000);
60 printf("%duA %dmA\n\r",current33V,current33V/1000);
80 printf("%duA %dmA\n\r",current33V,current33V/1000);
61 }
81 }
62 printf("hello world\n\r");
82 printf("hello world\n\r");
63 return 0;
83 return 0;
64 }
84 }
65
85
66
86
67
87
68
88
69
89
70
90
71
91
72
92
73
93
@@ -1,89 +1,91
1 /*------------------------------------------------------------------------------
1 /*------------------------------------------------------------------------------
2 -- This file is a part of the libuc, microcontroler library
2 -- This file is a part of the libuc, microcontroler library
3 -- Copyright (C) 2012, Alexis Jeandet
3 -- Copyright (C) 2012, Alexis Jeandet
4 --
4 --
5 -- This program is free software; you can redistribute it and/or modify
5 -- This program is free software; you can redistribute it and/or modify
6 -- it under the terms of the GNU General Public License as published by
6 -- it under the terms of the GNU General Public License as published by
7 -- the Free Software Foundation; either version 3 of the License, or
7 -- the Free Software Foundation; either version 3 of the License, or
8 -- (at your option) any later version.
8 -- (at your option) any later version.
9 --
9 --
10 -- This program is distributed in the hope that it will be useful,
10 -- This program is distributed in the hope that it will be useful,
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -- GNU General Public License for more details.
13 -- GNU General Public License for more details.
14 --
14 --
15 -- You should have received a copy of the GNU General Public License
15 -- You should have received a copy of the GNU General Public License
16 -- along with this program; if not, write to the Free Software
16 -- along with this program; if not, write to the Free Software
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 -------------------------------------------------------------------------------
18 -------------------------------------------------------------------------------
19 -- Author : Alexis Jeandet
19 -- Author : Alexis Jeandet
20 -- Mail : alexis.jeandet@gmail.com
20 -- Mail : alexis.jeandet@gmail.com
21 -------------------------------------------------------------------------------*/
21 -------------------------------------------------------------------------------*/
22 #ifndef ILI9328_H
22 #ifndef ILI9328_H
23 #define ILI9328_H
23 #define ILI9328_H
24
24
25 #include <uhandle.h>
25 #include <uhandle.h>
26 #include <genericLCD_Controler.h>
26 #include <genericLCD_Controler.h>
27 #include <stdint.h>
27 #include <stdint.h>
28
28
29 extern int ili9328init(struct LCD_t* LCD);
29 extern int ili9328init(struct LCD_t* LCD);
30 extern void ili9328paint_t(LCD_t* LCD,void* buffer,uint16_t Xpos,uint16_t Ypos,uint16_t Width,uint16_t Height);
30 extern void ili9328setFrame(LCD_t* LCD,uint16_t HaddressStart,uint16_t VaddressStart,uint16_t HaddressStop,uint16_t VaddressStop);
31 extern void ili9328setGRAMaddress(LCD_t* LCD,uint16_t Haddress,uint16_t Vaddress);
32 extern void ili9328paint(LCD_t* LCD,void* buffer,uint16_t Xpos,uint16_t Ypos,uint16_t Width,uint16_t Height);
31
33
32 #define ILI9328_REGISTER_DRIVERCODEREAD ((uint32_t) 0x0000 )
34 #define ILI9328_REGISTER_DRIVERCODEREAD ((uint32_t) 0x0000 )
33 #define ILI9328_REGISTER_DRIVEROUTPUTCONTROL1 ((uint32_t) 0x0001 )
35 #define ILI9328_REGISTER_DRIVEROUTPUTCONTROL1 ((uint32_t) 0x0001 )
34 #define ILI9328_REGISTER_LCDDRIVINGCONTROL ((uint32_t) 0x0002 )
36 #define ILI9328_REGISTER_LCDDRIVINGCONTROL ((uint32_t) 0x0002 )
35 #define ILI9328_REGISTER_ENTRYMODE ((uint32_t) 0x0003 )
37 #define ILI9328_REGISTER_ENTRYMODE ((uint32_t) 0x0003 )
36 #define ILI9328_REGISTER_RESIZECONTROL ((uint32_t) 0x0004 )
38 #define ILI9328_REGISTER_RESIZECONTROL ((uint32_t) 0x0004 )
37 #define ILI9328_REGISTER_DISPLAYCONTROL1 ((uint32_t) 0x0007 )
39 #define ILI9328_REGISTER_DISPLAYCONTROL1 ((uint32_t) 0x0007 )
38 #define ILI9328_REGISTER_DISPLAYCONTROL2 ((uint32_t) 0x0008 )
40 #define ILI9328_REGISTER_DISPLAYCONTROL2 ((uint32_t) 0x0008 )
39 #define ILI9328_REGISTER_DISPLAYCONTROL3 ((uint32_t) 0x0009 )
41 #define ILI9328_REGISTER_DISPLAYCONTROL3 ((uint32_t) 0x0009 )
40 #define ILI9328_REGISTER_DISPLAYCONTROL4 ((uint32_t) 0x000A )
42 #define ILI9328_REGISTER_DISPLAYCONTROL4 ((uint32_t) 0x000A )
41 #define ILI9328_REGISTER_RGBDISPLAYINTERFACECONTROL1 ((uint32_t) 0x000C )
43 #define ILI9328_REGISTER_RGBDISPLAYINTERFACECONTROL1 ((uint32_t) 0x000C )
42 #define ILI9328_REGISTER_FRAMEMAKERPOSITION ((uint32_t) 0x000D )
44 #define ILI9328_REGISTER_FRAMEMAKERPOSITION ((uint32_t) 0x000D )
43 #define ILI9328_REGISTER_RGBDISPLAYINTERFACECONTROL2 ((uint32_t) 0x000F )
45 #define ILI9328_REGISTER_RGBDISPLAYINTERFACECONTROL2 ((uint32_t) 0x000F )
44 #define ILI9328_REGISTER_POWERCONTROL1 ((uint32_t) 0x0010 )
46 #define ILI9328_REGISTER_POWERCONTROL1 ((uint32_t) 0x0010 )
45 #define ILI9328_REGISTER_POWERCONTROL2 ((uint32_t) 0x0011 )
47 #define ILI9328_REGISTER_POWERCONTROL2 ((uint32_t) 0x0011 )
46 #define ILI9328_REGISTER_POWERCONTROL3 ((uint32_t) 0x0012 )
48 #define ILI9328_REGISTER_POWERCONTROL3 ((uint32_t) 0x0012 )
47 #define ILI9328_REGISTER_POWERCONTROL4 ((uint32_t) 0x0013 )
49 #define ILI9328_REGISTER_POWERCONTROL4 ((uint32_t) 0x0013 )
48 #define ILI9328_REGISTER_HORIZONTALGRAMADDRESSSET ((uint32_t) 0x0020 )
50 #define ILI9328_REGISTER_HORIZONTALGRAMADDRESSSET ((uint32_t) 0x0020 )
49 #define ILI9328_REGISTER_VERTICALGRAMADDRESSSET ((uint32_t) 0x0021 )
51 #define ILI9328_REGISTER_VERTICALGRAMADDRESSSET ((uint32_t) 0x0021 )
50 #define ILI9328_REGISTER_WRITEDATATOGRAM ((uint32_t) 0x0022 )
52 #define ILI9328_REGISTER_WRITEDATATOGRAM ((uint32_t) 0x0022 )
51 #define ILI9328_REGISTER_POWERCONTROL7 ((uint32_t) 0x0029 )
53 #define ILI9328_REGISTER_POWERCONTROL7 ((uint32_t) 0x0029 )
52 #define ILI9328_REGISTER_FRAMERATEANDCOLORCONTROL ((uint32_t) 0x002B )
54 #define ILI9328_REGISTER_FRAMERATEANDCOLORCONTROL ((uint32_t) 0x002B )
53 #define ILI9328_REGISTER_GAMMACONTROL1 ((uint32_t) 0x0030 )
55 #define ILI9328_REGISTER_GAMMACONTROL1 ((uint32_t) 0x0030 )
54 #define ILI9328_REGISTER_GAMMACONTROL2 ((uint32_t) 0x0031 )
56 #define ILI9328_REGISTER_GAMMACONTROL2 ((uint32_t) 0x0031 )
55 #define ILI9328_REGISTER_GAMMACONTROL3 ((uint32_t) 0x0032 )
57 #define ILI9328_REGISTER_GAMMACONTROL3 ((uint32_t) 0x0032 )
56 #define ILI9328_REGISTER_GAMMACONTROL4 ((uint32_t) 0x0035 )
58 #define ILI9328_REGISTER_GAMMACONTROL4 ((uint32_t) 0x0035 )
57 #define ILI9328_REGISTER_GAMMACONTROL5 ((uint32_t) 0x0036 )
59 #define ILI9328_REGISTER_GAMMACONTROL5 ((uint32_t) 0x0036 )
58 #define ILI9328_REGISTER_GAMMACONTROL6 ((uint32_t) 0x0037 )
60 #define ILI9328_REGISTER_GAMMACONTROL6 ((uint32_t) 0x0037 )
59 #define ILI9328_REGISTER_GAMMACONTROL7 ((uint32_t) 0x0038 )
61 #define ILI9328_REGISTER_GAMMACONTROL7 ((uint32_t) 0x0038 )
60 #define ILI9328_REGISTER_GAMMACONTROL8 ((uint32_t) 0x0039 )
62 #define ILI9328_REGISTER_GAMMACONTROL8 ((uint32_t) 0x0039 )
61 #define ILI9328_REGISTER_GAMMACONTROL9 ((uint32_t) 0x003C )
63 #define ILI9328_REGISTER_GAMMACONTROL9 ((uint32_t) 0x003C )
62 #define ILI9328_REGISTER_GAMMACONTROL10 ((uint32_t) 0x003D )
64 #define ILI9328_REGISTER_GAMMACONTROL10 ((uint32_t) 0x003D )
63 #define ILI9328_REGISTER_HORIZONTALADDRESSSTARTPOSITION ((uint32_t) 0x0050 )
65 #define ILI9328_REGISTER_HORIZONTALADDRESSSTARTPOSITION ((uint32_t) 0x0050 )
64 #define ILI9328_REGISTER_HORIZONTALADDRESSENDPOSITION ((uint32_t) 0x0051 )
66 #define ILI9328_REGISTER_HORIZONTALADDRESSENDPOSITION ((uint32_t) 0x0051 )
65 #define ILI9328_REGISTER_VERTICALADDRESSSTARTPOSITION ((uint32_t) 0x0052 )
67 #define ILI9328_REGISTER_VERTICALADDRESSSTARTPOSITION ((uint32_t) 0x0052 )
66 #define ILI9328_REGISTER_VERTICALADDRESSENDPOSITION ((uint32_t) 0x0053 )
68 #define ILI9328_REGISTER_VERTICALADDRESSENDPOSITION ((uint32_t) 0x0053 )
67 #define ILI9328_REGISTER_DRIVEROUTPUTCONTROL2 ((uint32_t) 0x0060 )
69 #define ILI9328_REGISTER_DRIVEROUTPUTCONTROL2 ((uint32_t) 0x0060 )
68 #define ILI9328_REGISTER_BASEIMAGEDISPLAYCONTROL ((uint32_t) 0x0061 )
70 #define ILI9328_REGISTER_BASEIMAGEDISPLAYCONTROL ((uint32_t) 0x0061 )
69 #define ILI9328_REGISTER_VERTICALSCROLLCONTROL ((uint32_t) 0x006A )
71 #define ILI9328_REGISTER_VERTICALSCROLLCONTROL ((uint32_t) 0x006A )
70 #define ILI9328_REGISTER_PARTIALIMAGE1DISPLAYPOSITION ((uint32_t) 0x0080 )
72 #define ILI9328_REGISTER_PARTIALIMAGE1DISPLAYPOSITION ((uint32_t) 0x0080 )
71 #define ILI9328_REGISTER_PARTIALIMAGE1AREASTARTLINE ((uint32_t) 0x0081 )
73 #define ILI9328_REGISTER_PARTIALIMAGE1AREASTARTLINE ((uint32_t) 0x0081 )
72 #define ILI9328_REGISTER_PARTIALIMAGE1AREAENDLINE ((uint32_t) 0x0082 )
74 #define ILI9328_REGISTER_PARTIALIMAGE1AREAENDLINE ((uint32_t) 0x0082 )
73 #define ILI9328_REGISTER_PARTIALIMAGE2DISPLAYPOSITION ((uint32_t) 0x0083 )
75 #define ILI9328_REGISTER_PARTIALIMAGE2DISPLAYPOSITION ((uint32_t) 0x0083 )
74 #define ILI9328_REGISTER_PARTIALIMAGE2AREASTARTLINE ((uint32_t) 0x0084 )
76 #define ILI9328_REGISTER_PARTIALIMAGE2AREASTARTLINE ((uint32_t) 0x0084 )
75 #define ILI9328_REGISTER_PARTIALIMAGE2AREAENDLINE ((uint32_t) 0x0085 )
77 #define ILI9328_REGISTER_PARTIALIMAGE2AREAENDLINE ((uint32_t) 0x0085 )
76 #define ILI9328_REGISTER_PANELINTERFACECONTROL1 ((uint32_t) 0x0090 )
78 #define ILI9328_REGISTER_PANELINTERFACECONTROL1 ((uint32_t) 0x0090 )
77 #define ILI9328_REGISTER_PANELINTERFACECONTROL2 ((uint32_t) 0x0092 )
79 #define ILI9328_REGISTER_PANELINTERFACECONTROL2 ((uint32_t) 0x0092 )
78 #define ILI9328_REGISTER_PANELINTERFACECONTROL4 ((uint32_t) 0x0095 )
80 #define ILI9328_REGISTER_PANELINTERFACECONTROL4 ((uint32_t) 0x0095 )
79 #define ILI9328_REGISTER_OTPVCMPROGRAMMINGCONTROL ((uint32_t) 0x00A1 )
81 #define ILI9328_REGISTER_OTPVCMPROGRAMMINGCONTROL ((uint32_t) 0x00A1 )
80 #define ILI9328_REGISTER_OTPVCMSTATUSANDENABLE ((uint32_t) 0x00A2 )
82 #define ILI9328_REGISTER_OTPVCMSTATUSANDENABLE ((uint32_t) 0x00A2 )
81 #define ILI9328_REGISTER_OTPPROGRAMMINGIDKEY ((uint32_t) 0x00A5 )
83 #define ILI9328_REGISTER_OTPPROGRAMMINGIDKEY ((uint32_t) 0x00A5 )
82
84
83
85
84 #endif
86 #endif
85
87
86
88
87
89
88
90
89
91
@@ -1,90 +1,103
1 /*------------------------------------------------------------------------------
1 /*------------------------------------------------------------------------------
2 -- This file is a part of the libuc, microcontroler library
2 -- This file is a part of the libuc, microcontroler library
3 -- Copyright (C) 2012, Alexis Jeandet
3 -- Copyright (C) 2012, Alexis Jeandet
4 --
4 --
5 -- This program is free software; you can redistribute it and/or modify
5 -- This program is free software; you can redistribute it and/or modify
6 -- it under the terms of the GNU General Public License as published by
6 -- it under the terms of the GNU General Public License as published by
7 -- the Free Software Foundation; either version 3 of the License, or
7 -- the Free Software Foundation; either version 3 of the License, or
8 -- (at your option) any later version.
8 -- (at your option) any later version.
9 --
9 --
10 -- This program is distributed in the hope that it will be useful,
10 -- This program is distributed in the hope that it will be useful,
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -- GNU General Public License for more details.
13 -- GNU General Public License for more details.
14 --
14 --
15 -- You should have received a copy of the GNU General Public License
15 -- You should have received a copy of the GNU General Public License
16 -- along with this program; if not, write to the Free Software
16 -- along with this program; if not, write to the Free Software
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 -------------------------------------------------------------------------------
18 -------------------------------------------------------------------------------
19 -- Author : Alexis Jeandet
19 -- Author : Alexis Jeandet
20 -- Mail : alexis.jeandet@gmail.com
20 -- Mail : alexis.jeandet@gmail.com
21 -------------------------------------------------------------------------------*/
21 -------------------------------------------------------------------------------*/
22 #include <ili9328.h>
22 #include <ili9328.h>
23 #include <stdio.h>
23 #include <stdio.h>
24 #include <stddef.h>
24 #include <stddef.h>
25
25
26 #define _delay_(del) for(volatile int _d_e_l_=0;_d_e_l_<(del);_d_e_l_++);
26 #define _delay_(del) for(volatile int _d_e_l_=0;_d_e_l_<(del);_d_e_l_++);
27
27
28 void ili9328paint_t(LCD_t* LCD,void* buffer,uint16_t Xpos,uint16_t Ypos,uint16_t Width,uint16_t Height)
28 void ili9328setGRAMaddress(LCD_t* LCD,uint16_t Haddress,uint16_t Vaddress)
29 {
30 LCD->interface->writereg(ILI9328_REGISTER_HORIZONTALGRAMADDRESSSET,Haddress);
31 LCD->interface->writereg(ILI9328_REGISTER_VERTICALGRAMADDRESSSET,Vaddress);
32 }
33
34 void ili9328setFrame(LCD_t* LCD,uint16_t HaddressStart,uint16_t VaddressStart,uint16_t HaddressStop,uint16_t VaddressStop)
35 {
36 LCD->interface->writereg(ILI9328_REGISTER_HORIZONTALADDRESSSTARTPOSITION,HaddressStart);
37 LCD->interface->writereg(ILI9328_REGISTER_VERTICALADDRESSSTARTPOSITION,VaddressStart);
38 LCD->interface->writereg(ILI9328_REGISTER_HORIZONTALADDRESSENDPOSITION,HaddressStop);
39 LCD->interface->writereg(ILI9328_REGISTER_VERTICALADDRESSENDPOSITION,VaddressStop);
40 }
41
42 void ili9328paint(LCD_t* LCD,void* buffer,uint16_t Xpos,uint16_t Ypos,uint16_t Width,uint16_t Height)
29 {
43 {
30 if((LCD!=NULL) && (LCD->interface!=NULL) && (LCD->interface->writeGRAM!=NULL) && (LCD->width<(Xpos+Width)) && (LCD->height<(Ypos+Height)))
44 if((LCD!=NULL) && (LCD->interface!=NULL) && (LCD->interface->writeGRAM!=NULL) && (LCD->width<(Xpos+Width)) && (LCD->height<(Ypos+Height)))
31 {
45 {
32 uint16_t* castedBuff=(uint16_t*)buffer;
46 printf("paint\n\r");
33 for(int i=0;i<Height;i++)
47 ili9328setFrame(LCD,Xpos,Ypos,Xpos+Width,Ypos+Height);
34 {
48 ili9328setGRAMaddress(LCD,Xpos,Ypos);
35 LCD->interface->writeGRAM(castedBuff+(i*Width),Width);
49 LCD->interface->writeGRAM(buffer,Width*Height);
36 }
37 }
50 }
38 }
51 }
39
52
40 int ili9328init(struct LCD_t* LCD)
53 int ili9328init(struct LCD_t* LCD)
41 {
54 {
42 if((LCD!=NULL) && (LCD->interface!=NULL) && (LCD->interface->writereg!=NULL))
55 if((LCD!=NULL) && (LCD->interface!=NULL) && (LCD->interface->writereg!=NULL))
43 {
56 {
44 LCD->interface->writereg(ILI9328_REGISTER_DRIVEROUTPUTCONTROL1, 0x0100); // Driver Output Control Register (R01h)
57 LCD->interface->writereg(ILI9328_REGISTER_DRIVEROUTPUTCONTROL1, 0x0100); // Driver Output Control Register (R01h)
45 LCD->interface->writereg(ILI9328_REGISTER_LCDDRIVINGCONTROL, 0x0700); // LCD Driving Waveform Control (R02h)
58 LCD->interface->writereg(ILI9328_REGISTER_LCDDRIVINGCONTROL, 0x0700); // LCD Driving Waveform Control (R02h)
46 LCD->interface->writereg(ILI9328_REGISTER_ENTRYMODE, 0x1030); // Entry Mode (R03h)
59 LCD->interface->writereg(ILI9328_REGISTER_ENTRYMODE, 0x1030); // Entry Mode (R03h)
47 LCD->interface->writereg(ILI9328_REGISTER_DISPLAYCONTROL2, 0x0302);
60 LCD->interface->writereg(ILI9328_REGISTER_DISPLAYCONTROL2, 0x0302);
48 LCD->interface->writereg(ILI9328_REGISTER_DISPLAYCONTROL3, 0x0000);
61 LCD->interface->writereg(ILI9328_REGISTER_DISPLAYCONTROL3, 0x0000);
49 LCD->interface->writereg(ILI9328_REGISTER_DISPLAYCONTROL4, 0x0000); // Fmark On
62 LCD->interface->writereg(ILI9328_REGISTER_DISPLAYCONTROL4, 0x0000); // Fmark On
50 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL1, 0x0000); // Power Control 1 (R10h)
63 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL1, 0x0000); // Power Control 1 (R10h)
51 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL2, 0x0007); // Power Control 2 (R11h)
64 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL2, 0x0007); // Power Control 2 (R11h)
52 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL3, 0x0000); // Power Control 3 (R12h)
65 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL3, 0x0000); // Power Control 3 (R12h)
53 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL4, 0x0000); // Power Control 4 (R13h)
66 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL4, 0x0000); // Power Control 4 (R13h)
54 _delay_(1000000);
67 _delay_(1000000);
55 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL1, 0x14B0); // Power Control 1 (R10h)
68 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL1, 0x14B0); // Power Control 1 (R10h)
56 _delay_(500000);
69 _delay_(500000);
57 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL2, 0x0007); // Power Control 2 (R11h)
70 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL2, 0x0007); // Power Control 2 (R11h)
58 _delay_(500000);
71 _delay_(500000);
59 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL3, 0x008E); // Power Control 3 (R12h)
72 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL3, 0x008E); // Power Control 3 (R12h)
60 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL4, 0x0C00); // Power Control 4 (R13h)
73 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL4, 0x0C00); // Power Control 4 (R13h)
61 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL7, 0x0015); // NVM read data 2 (R29h)
74 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL7, 0x0015); // NVM read data 2 (R29h)
62 _delay_(500000);
75 _delay_(500000);
63 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL1, 0x0000); // Gamma Control 1
76 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL1, 0x0000); // Gamma Control 1
64 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL2, 0x0107); // Gamma Control 2
77 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL2, 0x0107); // Gamma Control 2
65 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL3, 0x0000); // Gamma Control 3
78 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL3, 0x0000); // Gamma Control 3
66 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL4, 0x0203); // Gamma Control 4
79 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL4, 0x0203); // Gamma Control 4
67 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL5, 0x0402); // Gamma Control 5
80 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL5, 0x0402); // Gamma Control 5
68 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL6, 0x0000); // Gamma Control 6
81 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL6, 0x0000); // Gamma Control 6
69 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL7, 0x0207); // Gamma Control 7
82 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL7, 0x0207); // Gamma Control 7
70 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL8, 0x0000); // Gamma Control 8
83 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL8, 0x0000); // Gamma Control 8
71 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL9, 0x0203); // Gamma Control 9
84 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL9, 0x0203); // Gamma Control 9
72 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL10, 0x0403); // Gamma Control 10
85 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL10, 0x0403); // Gamma Control 10
73 LCD->interface->writereg(ILI9328_REGISTER_HORIZONTALADDRESSSTARTPOSITION, 0x0000); // Window Horizontal RAM Address Start (R50h)
86 LCD->interface->writereg(ILI9328_REGISTER_HORIZONTALADDRESSSTARTPOSITION, 0x0000); // Window Horizontal RAM Address Start (R50h)
74 LCD->interface->writereg(ILI9328_REGISTER_HORIZONTALADDRESSENDPOSITION, 240 - 1); // Window Horizontal RAM Address End (R51h)
87 LCD->interface->writereg(ILI9328_REGISTER_HORIZONTALADDRESSENDPOSITION, 240 - 1); // Window Horizontal RAM Address End (R51h)
75 LCD->interface->writereg(ILI9328_REGISTER_VERTICALADDRESSSTARTPOSITION, 0X0000); // Window Vertical RAM Address Start (R52h)
88 LCD->interface->writereg(ILI9328_REGISTER_VERTICALADDRESSSTARTPOSITION, 0X0000); // Window Vertical RAM Address Start (R52h)
76 LCD->interface->writereg(ILI9328_REGISTER_VERTICALADDRESSENDPOSITION, 320 - 1); // Window Vertical RAM Address End (R53h)
89 LCD->interface->writereg(ILI9328_REGISTER_VERTICALADDRESSENDPOSITION, 320 - 1); // Window Vertical RAM Address End (R53h)
77 LCD->interface->writereg(ILI9328_REGISTER_DRIVEROUTPUTCONTROL2, 0xa700); // Driver Output Control (R60h)
90 LCD->interface->writereg(ILI9328_REGISTER_DRIVEROUTPUTCONTROL2, 0xa700); // Driver Output Control (R60h)
78 LCD->interface->writereg(ILI9328_REGISTER_BASEIMAGEDISPLAYCONTROL, 0x0003); // Driver Output Control (R61h) - enable VLE
91 LCD->interface->writereg(ILI9328_REGISTER_BASEIMAGEDISPLAYCONTROL, 0x0003); // Driver Output Control (R61h) - enable VLE
79 LCD->interface->writereg(ILI9328_REGISTER_PANELINTERFACECONTROL1, 0X0010); // Panel Interface Control 1 (R90h)
92 LCD->interface->writereg(ILI9328_REGISTER_PANELINTERFACECONTROL1, 0X0010); // Panel Interface Control 1 (R90h)
80 // Display On
93 // Display On
81 LCD->interface->writereg(ILI9328_REGISTER_DISPLAYCONTROL1, 0x0133); // Display Control (R07h)
94 LCD->interface->writereg(ILI9328_REGISTER_DISPLAYCONTROL1, 0x0133); // Display Control (R07h)
82 _delay_(500000);
95 _delay_(500000);
83 LCD->interface->writereg(ILI9328_REGISTER_ENTRYMODE, 0x1030);
96 LCD->interface->writereg(ILI9328_REGISTER_ENTRYMODE, 0x1030);
84 LCD->interface->writereg(ILI9328_REGISTER_DRIVEROUTPUTCONTROL1, 0x0100);
97 LCD->interface->writereg(ILI9328_REGISTER_DRIVEROUTPUTCONTROL1, 0x0100);
85 //ili9328WriteCmd(ILI9328_REGISTER_WRITEDATATOGRAM);
98 //ili9328WriteCmd(ILI9328_REGISTER_WRITEDATATOGRAM);
86 }
99 }
87 return 0;
100 return 0;
88 }
101 }
89
102
90
103
@@ -1,9 +1,10
1 TEMPLATE = subdirs
1 TEMPLATE = subdirs
2 SUBDIRS += CONTROLERS
2 SUBDIRS += CONTROLERS \
3 GUI
3
4
4
5
5
6
6
7
7
8
8
9
9
10
@@ -1,57 +1,57
1 #include "stm32f4xx.h"
1 #include "stm32f4xx.h"
2 #include <stdint.h>
2 #include <stdint.h>
3 #include <stdlib.h>
3 #include <stdlib.h>
4 #include <stdio.h>
4 #include <stdio.h>
5 #include <bsp.h>
5 #include <bsp.h>
6 #include <stm32f4xx_rcc.h>
6 #include <stm32f4xx_rcc.h>
7 #include <core.h>
7 #include <core.h>
8 extern int main();
8 extern int main();
9
9
10
10
11
11
12 void cpu_init()
12 void cpu_init()
13 {
13 {
14 extern uint32_t currentCpuFreq;
14 extern uint32_t currentCpuFreq;
15 currentCpuFreq = 80000000;
15 currentCpuFreq = 140000000;
16 enable_FPU();
16 enable_FPU();
17 RCC->CR |= (uint32_t)0x00000001;
17 RCC->CR |= (uint32_t)0x00000001;
18 FLASH->ACR = FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS;
18 FLASH->ACR = FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS;
19 reset_AHB1();
19 reset_AHB1();
20 reset_AHB2();
20 reset_AHB2();
21 reset_APB1();
21 reset_APB1();
22 reset_APB2();
22 reset_APB2();
23 RCC->CR |= (uint32_t)0x00000001;
23 RCC->CR |= (uint32_t)0x00000001;
24 FLASH->ACR = FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS;
24 FLASH->ACR = FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS;
25 RCC->CFGR = 0x00000000;
25 RCC->CFGR = 0x00000000;
26 RCC->CIR = 0x00000000;
26 RCC->CIR = 0x00000000;
27 SCB->VTOR = FLASH_BASE;
27 SCB->VTOR = FLASH_BASE;
28 RCC->APB1ENR |= RCC_APB1ENR_PWREN;
28 RCC->APB1ENR |= RCC_APB1ENR_PWREN;
29 PWR->CR |= PWR_CR_PMODE;
29 PWR->CR |= PWR_CR_PMODE;
30 currentCpuFreq=setCpuFreq(currentCpuFreq);
30 currentCpuFreq=setCpuFreq(currentCpuFreq);
31 bsp_init();
31 bsp_init();
32 RCC_ClocksTypeDef RCC_ClocksStatus;
32 RCC_ClocksTypeDef RCC_ClocksStatus;
33 RCC_GetClocksFreq(&RCC_ClocksStatus);
33 RCC_GetClocksFreq(&RCC_ClocksStatus);
34 printf("PLL Configured got:\n\r SYS=%uHz\n\r CPU=%uHz\n\r APB1=%uHz\n\r APB2=%uHz\n\r",(unsigned int)RCC_ClocksStatus.SYSCLK_Frequency,(unsigned int)RCC_ClocksStatus.HCLK_Frequency,(unsigned int)RCC_ClocksStatus.PCLK1_Frequency,(unsigned int)RCC_ClocksStatus.PCLK2_Frequency);
34 printf("PLL Configured got:\n\r SYS=%uHz\n\r CPU=%uHz\n\r APB1=%uHz\n\r APB2=%uHz\n\r",(unsigned int)RCC_ClocksStatus.SYSCLK_Frequency,(unsigned int)RCC_ClocksStatus.HCLK_Frequency,(unsigned int)RCC_ClocksStatus.PCLK1_Frequency,(unsigned int)RCC_ClocksStatus.PCLK2_Frequency);
35 printf("Enter Main\n\r");
35 printf("Enter Main\n\r");
36 int res=main();
36 int res=main();
37 printf("\n\rprogram exited with code ");
37 printf("\n\rprogram exited with code ");
38 printf("%u",res);
38 printf("%u",res);
39 printf("\n\r");
39 printf("\n\r");
40 while(1)
40 while(1)
41 {
41 {
42 for(volatile int i=0;i<1024*64;i++);
42 for(volatile int i=0;i<1024*64;i++);
43 gpioset(PD14);
43 gpioset(PD14);
44 for(volatile int i=0;i<1024*64;i++);
44 for(volatile int i=0;i<1024*64;i++);
45 gpioclr(PD14);
45 gpioclr(PD14);
46 }
46 }
47 }
47 }
48
48
49
49
50
50
51
51
52
52
53
53
54
54
55
55
56
56
57
57
@@ -1,217 +1,218
1 #---------------------------------------------------------------------------------
1 #---------------------------------------------------------------------------------
2 # LIBRARY DEFINITIONS
2 # LIBRARY DEFINITIONS
3 #---------------------------------------------------------------------------------
3 #---------------------------------------------------------------------------------
4 LIBUC_LIBS_DIR = $$libuc2/lib
4 LIBUC_LIBS_DIR = $$libuc2/lib
5
5
6 INCLUDEPATH += $$LIBUC_LIBS_DIR/includes \
6 INCLUDEPATH += $$LIBUC_LIBS_DIR/includes \
7 $$LIBUC_LIBS_DIR/includes/GRAPHIC/CONTROLERS \
7 $$LIBUC_LIBS_DIR/includes/GRAPHIC/CONTROLERS \
8 $$LIBUC_LIBS_DIR/includes/GRAPHIC/GUI/FONTS \
8 $$LIBUC_LIBS_DIR/includes/$$ARCH
9 $$LIBUC_LIBS_DIR/includes/$$ARCH
9
10
10 LIBUC_BIN_LIBS_DIR = $$LIBUC_LIBS_DIR/bin/$$ARCH
11 LIBUC_BIN_LIBS_DIR = $$LIBUC_LIBS_DIR/bin/$$ARCH
11
12
12
13
13 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
14 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
14 -lCS43L22 -lina226 -lili9328
15 -lCS43L22 -lina226 -lili9328 -lfonts
15
16
16 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
17 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
17 -lsdcard
18 -lsdcard
18
19
19 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
20 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
20 -lfat32
21 -lfat32
21
22
22 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
23 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
23 -lmbr
24 -lmbr
24
25
25 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
26 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
26 -luart
27 -luart
27
28
28 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
29 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
29 -li2c
30 -li2c
30
31
31 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
32 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
32 -lgpio
33 -lgpio
33
34
34 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
35 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
35 -lspi
36 -lspi
36
37
37 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
38 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
38 -lcpu
39 -lcpu
39
40
40 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
41 LIBS += -L$$LIBUC_LIBS_DIR/bin/$$ARCH \
41 -lcore
42 -lcore
42
43
43
44
44
45
45
46
46 LIBUC_LIBS_CORE = -L $(LIBUC_LIBS_DIR_CORE) -static -lcore
47 LIBUC_LIBS_CORE = -L $(LIBUC_LIBS_DIR_CORE) -static -lcore
47 LIBUC_LIBS_DIR_CORE = $(LIBUC_LIBS_DIR)
48 LIBUC_LIBS_DIR_CORE = $(LIBUC_LIBS_DIR)
48 LIBUC_LIBS_DIR_CORE_CMD = -L $(LIBUC_LIBS_DIR_CORE)
49 LIBUC_LIBS_DIR_CORE_CMD = -L $(LIBUC_LIBS_DIR_CORE)
49 LIBUC_INC_DIR_CORE = $(LIBUC_INC_DIR)
50 LIBUC_INC_DIR_CORE = $(LIBUC_INC_DIR)
50 LIBUC_INC_DIR_CORE_CMD =
51 LIBUC_INC_DIR_CORE_CMD =
51
52
52 LIBUC_LIBS_CPU = -static -lcpu
53 LIBUC_LIBS_CPU = -static -lcpu
53 LIBUC_LIBS_DIR_CPU = $(LIBUC_LIBS_DIR)
54 LIBUC_LIBS_DIR_CPU = $(LIBUC_LIBS_DIR)
54 LIBUC_LIBS_DIR_CPU_CMD = -L $(LIBUC_LIBS_DIR_CPU)
55 LIBUC_LIBS_DIR_CPU_CMD = -L $(LIBUC_LIBS_DIR_CPU)
55 LIBUC_INC_DIR_CPU = $(LIBUC_INC_DIR)/$(ARCH)
56 LIBUC_INC_DIR_CPU = $(LIBUC_INC_DIR)/$(ARCH)
56 LIBUC_INC_DIR_CPU_CMD = -I $(LIBUC_INC_DIR_CPU)
57 LIBUC_INC_DIR_CPU_CMD = -I $(LIBUC_INC_DIR_CPU)
57
58
58 LIBUC_LIBS_GPIO = -static -lgpio
59 LIBUC_LIBS_GPIO = -static -lgpio
59 LIBUC_LIBS_DIR_GPIO = $(LIBUC_LIBS_DIR)
60 LIBUC_LIBS_DIR_GPIO = $(LIBUC_LIBS_DIR)
60 LIBUC_LIBS_DIR_GPIO_CMD = -L $(LIBUC_LIBS_DIR_GPIO)
61 LIBUC_LIBS_DIR_GPIO_CMD = -L $(LIBUC_LIBS_DIR_GPIO)
61 LIBUC_INC_DIR_GPIO = $(LIBUC_INC_DIR)
62 LIBUC_INC_DIR_GPIO = $(LIBUC_INC_DIR)
62 LIBUC_INC_DIR_GPIO_CMD =
63 LIBUC_INC_DIR_GPIO_CMD =
63
64
64 LIBUC_LIBS_APB = -static -lapb
65 LIBUC_LIBS_APB = -static -lapb
65 LIBUC_LIBS_DIR_APB = $(LIBUC_LIBS_DIR)
66 LIBUC_LIBS_DIR_APB = $(LIBUC_LIBS_DIR)
66 LIBUC_LIBS_DIR_APB_CMD = -L $(LIBUC_LIBS_DIR_APB)
67 LIBUC_LIBS_DIR_APB_CMD = -L $(LIBUC_LIBS_DIR_APB)
67 LIBUC_INC_DIR_APB = $(LIBUC_INC_DIR)
68 LIBUC_INC_DIR_APB = $(LIBUC_INC_DIR)
68 LIBUC_INC_DIR_APB_CMD =
69 LIBUC_INC_DIR_APB_CMD =
69
70
70 LIBUC_LIBS_UCSTRINGS = -static -lucstrings
71 LIBUC_LIBS_UCSTRINGS = -static -lucstrings
71 LIBUC_LIBS_DIR_UCSTRINGS = $(LIBUC_LIBS_DIR)
72 LIBUC_LIBS_DIR_UCSTRINGS = $(LIBUC_LIBS_DIR)
72 LIBUC_LIBS_DIR_UCSTRINGS_CMD = -L $(LIBUC_LIBS_DIR_UCSTRINGS)
73 LIBUC_LIBS_DIR_UCSTRINGS_CMD = -L $(LIBUC_LIBS_DIR_UCSTRINGS)
73 LIBUC_INC_DIR_UCSTRINGS = $(LIBUC_INC_DIR)
74 LIBUC_INC_DIR_UCSTRINGS = $(LIBUC_INC_DIR)
74 LIBUC_INC_DIR_UCSTRINGS_CMD =
75 LIBUC_INC_DIR_UCSTRINGS_CMD =
75
76
76 LIBUC_LIBS_UART = -static -luart
77 LIBUC_LIBS_UART = -static -luart
77 LIBUC_LIBS_DIR_UART = $(LIBUC_LIBS_DIR)
78 LIBUC_LIBS_DIR_UART = $(LIBUC_LIBS_DIR)
78 LIBUC_LIBS_DIR_UART_CMD = -L $(LIBUC_LIBS_DIR_UART)
79 LIBUC_LIBS_DIR_UART_CMD = -L $(LIBUC_LIBS_DIR_UART)
79 LIBUC_INC_DIR_UART = $(LIBUC_INC_DIR)
80 LIBUC_INC_DIR_UART = $(LIBUC_INC_DIR)
80 LIBUC_INC_DIR_UART_CMD =
81 LIBUC_INC_DIR_UART_CMD =
81
82
82 LIBUC_LIBS_SPI = -static -lspi
83 LIBUC_LIBS_SPI = -static -lspi
83 LIBUC_LIBS_DIR_SPI = $(LIBUC_LIBS_DIR)
84 LIBUC_LIBS_DIR_SPI = $(LIBUC_LIBS_DIR)
84 LIBUC_LIBS_DIR_SPI_CMD = -L $(LIBUC_LIBS_DIR_SPI)
85 LIBUC_LIBS_DIR_SPI_CMD = -L $(LIBUC_LIBS_DIR_SPI)
85 LIBUC_INC_DIR_SPI = $(LIBUC_INC_DIR)
86 LIBUC_INC_DIR_SPI = $(LIBUC_INC_DIR)
86 LIBUC_INC_DIR_SPI_CMD =
87 LIBUC_INC_DIR_SPI_CMD =
87
88
88 LIBUC_LIBS_SSP = -static -lssp
89 LIBUC_LIBS_SSP = -static -lssp
89 LIBUC_LIBS_DIR_SSP = $(LIBUC_LIBS_DIR)
90 LIBUC_LIBS_DIR_SSP = $(LIBUC_LIBS_DIR)
90 LIBUC_LIBS_DIR_SSP_CMD = -L $(LIBUC_LIBS_DIR_SSP)
91 LIBUC_LIBS_DIR_SSP_CMD = -L $(LIBUC_LIBS_DIR_SSP)
91 LIBUC_INC_DIR_SSP = $(LIBUC_INC_DIR)
92 LIBUC_INC_DIR_SSP = $(LIBUC_INC_DIR)
92 LIBUC_INC_DIR_SSP_CMD =
93 LIBUC_INC_DIR_SSP_CMD =
93
94
94 LIBUC_LIBS_IIC = -static -liic
95 LIBUC_LIBS_IIC = -static -liic
95 LIBUC_LIBS_DIR_IIC = $(LIBUC_LIBS_DIR)
96 LIBUC_LIBS_DIR_IIC = $(LIBUC_LIBS_DIR)
96 LIBUC_LIBS_DIR_IIC_CMD = -L $(LIBUC_LIBS_DIR_IIC)
97 LIBUC_LIBS_DIR_IIC_CMD = -L $(LIBUC_LIBS_DIR_IIC)
97 LIBUC_INC_DIR_IIC = $(LIBUC_INC_DIR)
98 LIBUC_INC_DIR_IIC = $(LIBUC_INC_DIR)
98 LIBUC_INC_DIR_IIC_CMD =
99 LIBUC_INC_DIR_IIC_CMD =
99
100
100 LIBUC_LIBS_ADC = -static -ladc
101 LIBUC_LIBS_ADC = -static -ladc
101 LIBUC_LIBS_DIR_ADC = $(LIBUC_LIBS_DIR)
102 LIBUC_LIBS_DIR_ADC = $(LIBUC_LIBS_DIR)
102 LIBUC_LIBS_DIR_ADC_CMD = -L $(LIBUC_LIBS_DIR_ADC)
103 LIBUC_LIBS_DIR_ADC_CMD = -L $(LIBUC_LIBS_DIR_ADC)
103 LIBUC_INC_DIR_ADC = $(LIBUC_INC_DIR)
104 LIBUC_INC_DIR_ADC = $(LIBUC_INC_DIR)
104 LIBUC_INC_DIR_ADC_CMD =
105 LIBUC_INC_DIR_ADC_CMD =
105
106
106 LIBUC_LIBS_24LC0X = -static -l24lc0X
107 LIBUC_LIBS_24LC0X = -static -l24lc0X
107 LIBUC_LIBS_DIR_24LC0X = $(LIBUC_LIBS_DIR)
108 LIBUC_LIBS_DIR_24LC0X = $(LIBUC_LIBS_DIR)
108 LIBUC_LIBS_DIR_24LC0X_CMD = -L $(LIBUC_LIBS_DIR_24LC0X)
109 LIBUC_LIBS_DIR_24LC0X_CMD = -L $(LIBUC_LIBS_DIR_24LC0X)
109 LIBUC_INC_DIR_24LC0X = $(LIBUC_INC_DIR)
110 LIBUC_INC_DIR_24LC0X = $(LIBUC_INC_DIR)
110 LIBUC_INC_DIR_24LC0X_CMD =
111 LIBUC_INC_DIR_24LC0X_CMD =
111
112
112 LIBUC_LIBS_SDCARD = -static -lsdcard
113 LIBUC_LIBS_SDCARD = -static -lsdcard
113 LIBUC_LIBS_DIR_SDCARD = $(LIBUC_LIBS_DIR)
114 LIBUC_LIBS_DIR_SDCARD = $(LIBUC_LIBS_DIR)
114 LIBUC_LIBS_DIR_SDCARD_CMD = -L $(LIBUC_LIBS_DIR_SDCARD)
115 LIBUC_LIBS_DIR_SDCARD_CMD = -L $(LIBUC_LIBS_DIR_SDCARD)
115 LIBUC_INC_DIR_SDCARD = $(LIBUC_INC_DIR)
116 LIBUC_INC_DIR_SDCARD = $(LIBUC_INC_DIR)
116 LIBUC_INC_DIR_SDCARD_CMD =
117 LIBUC_INC_DIR_SDCARD_CMD =
117
118
118 LIBUC_LIBS_VS10XX = -static -lvs10XX
119 LIBUC_LIBS_VS10XX = -static -lvs10XX
119 LIBUC_LIBS_DIR_VS10XX = $(LIBUC_LIBS_DIR)
120 LIBUC_LIBS_DIR_VS10XX = $(LIBUC_LIBS_DIR)
120 LIBUC_LIBS_DIR_VS10XX_CMD = -L $(LIBUC_LIBS_DIR_VS10XX)
121 LIBUC_LIBS_DIR_VS10XX_CMD = -L $(LIBUC_LIBS_DIR_VS10XX)
121 LIBUC_INC_DIR_VS10XX = $(LIBUC_INC_DIR)
122 LIBUC_INC_DIR_VS10XX = $(LIBUC_INC_DIR)
122 LIBUC_INC_DIR_VS10XX_CMD =
123 LIBUC_INC_DIR_VS10XX_CMD =
123
124
124 LIBUC_LIBS_BLKDEVICE = -static -lblkdevice
125 LIBUC_LIBS_BLKDEVICE = -static -lblkdevice
125 LIBUC_LIBS_DIR_BLKDEVICE = $(LIBUC_LIBS_DIR)
126 LIBUC_LIBS_DIR_BLKDEVICE = $(LIBUC_LIBS_DIR)
126 LIBUC_LIBS_DIR_BLKDEVICE_CMD = -L $(LIBUC_LIBS_DIR_BLKDEVICE)
127 LIBUC_LIBS_DIR_BLKDEVICE_CMD = -L $(LIBUC_LIBS_DIR_BLKDEVICE)
127 LIBUC_INC_DIR_BLKDEVICE = $(LIBUC_INC_DIR)
128 LIBUC_INC_DIR_BLKDEVICE = $(LIBUC_INC_DIR)
128 LIBUC_INC_DIR_BLKDEVICE_CMD =
129 LIBUC_INC_DIR_BLKDEVICE_CMD =
129
130
130 LIBUC_LIBS_FAT32 = -static -lfat32
131 LIBUC_LIBS_FAT32 = -static -lfat32
131 LIBUC_LIBS_DIR_FAT32 = $(LIBUC_LIBS_DIR)
132 LIBUC_LIBS_DIR_FAT32 = $(LIBUC_LIBS_DIR)
132 LIBUC_LIBS_DIR_FAT32_CMD = -L $(LIBUC_LIBS_DIR_FAT32)
133 LIBUC_LIBS_DIR_FAT32_CMD = -L $(LIBUC_LIBS_DIR_FAT32)
133 LIBUC_INC_DIR_FAT32 = $(LIBUC_INC_DIR)
134 LIBUC_INC_DIR_FAT32 = $(LIBUC_INC_DIR)
134 LIBUC_INC_DIR_FAT32_CMD =
135 LIBUC_INC_DIR_FAT32_CMD =
135
136
136 LIBUC_LIBS_UHANDLE = -static -luhandle
137 LIBUC_LIBS_UHANDLE = -static -luhandle
137 LIBUC_LIBS_DIR_UHANDLE = $(LIBUC_LIBS_DIR)
138 LIBUC_LIBS_DIR_UHANDLE = $(LIBUC_LIBS_DIR)
138 LIBUC_LIBS_DIR_UHANDLE_CMD = -L $(LIBUC_LIBS_DIR_UHANDLE)
139 LIBUC_LIBS_DIR_UHANDLE_CMD = -L $(LIBUC_LIBS_DIR_UHANDLE)
139 LIBUC_INC_DIR_UHANDLE = $(LIBUC_INC_DIR)
140 LIBUC_INC_DIR_UHANDLE = $(LIBUC_INC_DIR)
140 LIBUC_INC_DIR_UHANDLE_CMD =
141 LIBUC_INC_DIR_UHANDLE_CMD =
141
142
142 LIBUC_LIBS_STREAMDEVICES = -static -lstreamdevices
143 LIBUC_LIBS_STREAMDEVICES = -static -lstreamdevices
143 LIBUC_LIBS_DIR_STREAMDEVICES = $(LIBUC_LIBS_DIR)
144 LIBUC_LIBS_DIR_STREAMDEVICES = $(LIBUC_LIBS_DIR)
144 LIBUC_LIBS_DIR_STREAMDEVICES_CMD = -L $(LIBUC_LIBS_DIR_STREAMDEVICES)
145 LIBUC_LIBS_DIR_STREAMDEVICES_CMD = -L $(LIBUC_LIBS_DIR_STREAMDEVICES)
145 LIBUC_INC_DIR_STREAMDEVICES = $(LIBUC_INC_DIR)
146 LIBUC_INC_DIR_STREAMDEVICES = $(LIBUC_INC_DIR)
146 LIBUC_INC_DIR_STREAMDEVICES_CMD =
147 LIBUC_INC_DIR_STREAMDEVICES_CMD =
147
148
148 LIBUC_LIBS_HEXVIEWER = -static -lhexviewer
149 LIBUC_LIBS_HEXVIEWER = -static -lhexviewer
149 LIBUC_LIBS_DIR_HEXVIEWER = $(LIBUC_LIBS_DIR)
150 LIBUC_LIBS_DIR_HEXVIEWER = $(LIBUC_LIBS_DIR)
150 LIBUC_LIBS_DIR_HEXVIEWER_CMD = -L $(LIBUC_LIBS_DIR_HEXVIEWER)
151 LIBUC_LIBS_DIR_HEXVIEWER_CMD = -L $(LIBUC_LIBS_DIR_HEXVIEWER)
151 LIBUC_INC_DIR_HEXVIEWER = $(LIBUC_INC_DIR)
152 LIBUC_INC_DIR_HEXVIEWER = $(LIBUC_INC_DIR)
152 LIBUC_INC_DIR_HEXVIEWER_CMD =
153 LIBUC_INC_DIR_HEXVIEWER_CMD =
153
154
154 LIBUC_LIBS_MBR = -static -lmbr
155 LIBUC_LIBS_MBR = -static -lmbr
155 LIBUC_LIBS_DIR_MBR = $(LIBUC_LIBS_DIR)
156 LIBUC_LIBS_DIR_MBR = $(LIBUC_LIBS_DIR)
156 LIBUC_LIBS_DIR_MBR_CMD = -L $(LIBUC_LIBS_DIR_MBR)
157 LIBUC_LIBS_DIR_MBR_CMD = -L $(LIBUC_LIBS_DIR_MBR)
157 LIBUC_INC_DIR_MBR = $(LIBUC_INC_DIR)
158 LIBUC_INC_DIR_MBR = $(LIBUC_INC_DIR)
158 LIBUC_INC_DIR_MBR_CMD =
159 LIBUC_INC_DIR_MBR_CMD =
159
160
160 LIBUC_LIBS_UCDIRENT = -static -lucdirent
161 LIBUC_LIBS_UCDIRENT = -static -lucdirent
161 LIBUC_LIBS_DIR_UCDIRENT = $(LIBUC_LIBS_DIR)
162 LIBUC_LIBS_DIR_UCDIRENT = $(LIBUC_LIBS_DIR)
162 LIBUC_LIBS_DIR_UCDIRENT_CMD = -L $(LIBUC_LIBS_DIR_UCDIRENT)
163 LIBUC_LIBS_DIR_UCDIRENT_CMD = -L $(LIBUC_LIBS_DIR_UCDIRENT)
163 LIBUC_INC_DIR_UCDIRENT = $(LIBUC_INC_DIR)
164 LIBUC_INC_DIR_UCDIRENT = $(LIBUC_INC_DIR)
164 LIBUC_INC_DIR_UCDIRENT_CMD =
165 LIBUC_INC_DIR_UCDIRENT_CMD =
165
166
166 LIBUC_LIBS_FS = -static -lfs
167 LIBUC_LIBS_FS = -static -lfs
167 LIBUC_LIBS_DIR_FS = $(LIBUC_LIBS_DIR)
168 LIBUC_LIBS_DIR_FS = $(LIBUC_LIBS_DIR)
168 LIBUC_LIBS_DIR_FS_CMD = -L $(LIBUC_LIBS_DIR_FS)
169 LIBUC_LIBS_DIR_FS_CMD = -L $(LIBUC_LIBS_DIR_FS)
169 LIBUC_INC_DIR_FS = $(LIBUC_INC_DIR)
170 LIBUC_INC_DIR_FS = $(LIBUC_INC_DIR)
170 LIBUC_INC_DIR_FS_CMD =
171 LIBUC_INC_DIR_FS_CMD =
171
172
172 LIBUC_LIBS_FSEXPLORER = -static -lfsexplorer
173 LIBUC_LIBS_FSEXPLORER = -static -lfsexplorer
173 LIBUC_LIBS_DIR_FSEXPLORER = $(LIBUC_LIBS_DIR)
174 LIBUC_LIBS_DIR_FSEXPLORER = $(LIBUC_LIBS_DIR)
174 LIBUC_LIBS_DIR_FSEXPLORER_CMD = -L $(LIBUC_LIBS_DIR_FSEXPLORER)
175 LIBUC_LIBS_DIR_FSEXPLORER_CMD = -L $(LIBUC_LIBS_DIR_FSEXPLORER)
175 LIBUC_INC_DIR_FSEXPLORER = $(LIBUC_INC_DIR)
176 LIBUC_INC_DIR_FSEXPLORER = $(LIBUC_INC_DIR)
176 LIBUC_INC_DIR_FSEXPLORER_CMD =
177 LIBUC_INC_DIR_FSEXPLORER_CMD =
177
178
178 LIBUC_LIBS_DIR_ALLFS_CMD = $(LIBUC_LIBS_DIR_UCDIRENT_CMD) $(LIBUC_LIBS_DIR_FS_CMD) $(LIBUC_LIBS_DIR_MBR_CMD) $(LIBUC_LIBS_DIR_FAT32_CMD) $(LIBUC_LIBS_DIR_SDCARD_CMD) $(LIBUC_LIBS_DIR_BLKDEVICE_CMD)
179 LIBUC_LIBS_DIR_ALLFS_CMD = $(LIBUC_LIBS_DIR_UCDIRENT_CMD) $(LIBUC_LIBS_DIR_FS_CMD) $(LIBUC_LIBS_DIR_MBR_CMD) $(LIBUC_LIBS_DIR_FAT32_CMD) $(LIBUC_LIBS_DIR_SDCARD_CMD) $(LIBUC_LIBS_DIR_BLKDEVICE_CMD)
179 LIBUC_INC_DIR_ALLFS_CMD = $(LIBUC_INC_DIR_UCDIRENT_CMD) $(LIBUC_INC_DIR_FS_CMD) $(LIBUC_INC_DIR_MBR_CMD) $(LIBUC_INC_DIR_FAT32_CMD) $(LIBUC_INC_DIR_SDCARD_CMD) $(LIBUC_INC_DIR_BLKDEVICE_CMD)
180 LIBUC_INC_DIR_ALLFS_CMD = $(LIBUC_INC_DIR_UCDIRENT_CMD) $(LIBUC_INC_DIR_FS_CMD) $(LIBUC_INC_DIR_MBR_CMD) $(LIBUC_INC_DIR_FAT32_CMD) $(LIBUC_INC_DIR_SDCARD_CMD) $(LIBUC_INC_DIR_BLKDEVICE_CMD)
180 LIBUC_LIBS_ALLFS = $(LIBUC_LIBS_UCDIRENT) $(LIBUC_LIBS_FS) $(LIBUC_LIBS_MBR) $(LIBUC_LIBS_FAT32) $(LIBUC_LIBS_SDCARD) $(LIBUC_LIBS_BLKDEVICE)
181 LIBUC_LIBS_ALLFS = $(LIBUC_LIBS_UCDIRENT) $(LIBUC_LIBS_FS) $(LIBUC_LIBS_MBR) $(LIBUC_LIBS_FAT32) $(LIBUC_LIBS_SDCARD) $(LIBUC_LIBS_BLKDEVICE)
181
182
182
183
183 LIBUC_LIBS_ADS127X = -static -lads127X
184 LIBUC_LIBS_ADS127X = -static -lads127X
184 LIBUC_LIBS_DIR_ADS127X = $(LIBUC_LIBS_DIR)
185 LIBUC_LIBS_DIR_ADS127X = $(LIBUC_LIBS_DIR)
185 LIBUC_LIBS_DIR_ADS127X_CMD = -L $(LIBUC_LIBS_DIR_ADS127X)
186 LIBUC_LIBS_DIR_ADS127X_CMD = -L $(LIBUC_LIBS_DIR_ADS127X)
186 LIBUC_INC_DIR_ADS127X = $(LIBUC_INC_DIR)
187 LIBUC_INC_DIR_ADS127X = $(LIBUC_INC_DIR)
187 LIBUC_INC_DIR_ADS127X_CMD =
188 LIBUC_INC_DIR_ADS127X_CMD =
188
189
189
190
190 LIBUC_LIBS_NXPLIB = -static -lnxplib
191 LIBUC_LIBS_NXPLIB = -static -lnxplib
191 LIBUC_LIBS_DIR_NXPLIB = $(LIBUC_LIBS_DIR)
192 LIBUC_LIBS_DIR_NXPLIB = $(LIBUC_LIBS_DIR)
192 LIBUC_LIBS_DIR_NXPLIB_CMD = -L $(LIBUC_LIBS_DIR_NXPLIB)
193 LIBUC_LIBS_DIR_NXPLIB_CMD = -L $(LIBUC_LIBS_DIR_NXPLIB)
193 LIBUC_INC_DIR_NXPLIB = $(LIBUC_INC_DIR)/LPCXXXX
194 LIBUC_INC_DIR_NXPLIB = $(LIBUC_INC_DIR)/LPCXXXX
194 LIBUC_INC_DIR_NXPLIB_CMD = -I $(LIBUC_INC_DIR_NXPLIB)
195 LIBUC_INC_DIR_NXPLIB_CMD = -I $(LIBUC_INC_DIR_NXPLIB)
195
196
196 LIBUC_LIBS_ARMMATH = -static -larmmath
197 LIBUC_LIBS_ARMMATH = -static -larmmath
197 LIBUC_LIBS_DIR_ARMMATH = $(LIBUC_LIBS_DIR)
198 LIBUC_LIBS_DIR_ARMMATH = $(LIBUC_LIBS_DIR)
198 LIBUC_LIBS_DIR_ARMMATH_CMD = -L $(LIBUC_LIBS_DIR_ARMMATH)
199 LIBUC_LIBS_DIR_ARMMATH_CMD = -L $(LIBUC_LIBS_DIR_ARMMATH)
199 LIBUC_INC_DIR_ARMMATH = $(LIBUC_INC_DIR)/ARM
200 LIBUC_INC_DIR_ARMMATH = $(LIBUC_INC_DIR)/ARM
200 LIBUC_INC_DIR_ARMMATH_CMD = $(LIBUC_INC_DIR_ARMMATH)
201 LIBUC_INC_DIR_ARMMATH_CMD = $(LIBUC_INC_DIR_ARMMATH)
201
202
202
203
203
204
204
205
205
206
206
207
207
208
208
209
209
210
210
211
211
212
212
213
213
214
214
215
215
216
216
217
217
218
General Comments 0
You need to be logged in to leave comments. Login now