4 #include "kernel_id.h"
\r
5 #include "ecrobot_interface.h"
\r
7 /* OSEK declarations */
\r
10 /* LEJOS OSEK hook to be invoked from an ISR in category 2 */
\r
11 void user_1ms_isr_type2(void){}
\r
14 * a bmp file can be accessed by using following macros:
\r
15 * E.g RCXintro_1.bmp
\r
16 * EXTERNAL_BMP_DATA(file name without extension); <- This is external declarations
\r
17 * BMP_DATA_START(file name without extension) <- start address of a bmp file
\r
18 * BMP_DATA_END(file name without extension) <- end address of a bmp file
\r
19 * BMP_DATA_SIZE(file name without extension) <- size of a bmp file
\r
21 EXTERNAL_BMP_DATA(anime00000);
\r
22 EXTERNAL_BMP_DATA(anime00004);
\r
23 EXTERNAL_BMP_DATA(anime00008);
\r
24 EXTERNAL_BMP_DATA(anime00012);
\r
25 EXTERNAL_BMP_DATA(anime00016);
\r
26 EXTERNAL_BMP_DATA(anime00020);
\r
27 EXTERNAL_BMP_DATA(anime00024);
\r
28 EXTERNAL_BMP_DATA(anime00028);
\r
29 EXTERNAL_BMP_DATA(anime00032);
\r
30 EXTERNAL_BMP_DATA(anime00036);
\r
31 EXTERNAL_BMP_DATA(anime00040);
\r
32 EXTERNAL_BMP_DATA(anime00044);
\r
33 EXTERNAL_BMP_DATA(anime00048);
\r
34 EXTERNAL_BMP_DATA(anime00052);
\r
35 EXTERNAL_BMP_DATA(anime00056);
\r
36 EXTERNAL_BMP_DATA(anime00060);
\r
37 EXTERNAL_BMP_DATA(anime00064);
\r
38 EXTERNAL_BMP_DATA(anime00068);
\r
39 EXTERNAL_BMP_DATA(anime00072);
\r
40 EXTERNAL_BMP_DATA(anime00076);
\r
41 EXTERNAL_BMP_DATA(anime00080);
\r
42 EXTERNAL_BMP_DATA(anime00084);
\r
43 EXTERNAL_BMP_DATA(anime00088);
\r
44 EXTERNAL_BMP_DATA(anime00092);
\r
45 EXTERNAL_BMP_DATA(anime00096);
\r
46 EXTERNAL_BMP_DATA(anime00100);
\r
47 EXTERNAL_BMP_DATA(anime00104);
\r
48 EXTERNAL_BMP_DATA(anime00108);
\r
49 EXTERNAL_BMP_DATA(anime00112);
\r
50 EXTERNAL_BMP_DATA(anime00116);
\r
51 EXTERNAL_BMP_DATA(anime00120);
\r
52 EXTERNAL_BMP_DATA(anime00124);
\r
53 EXTERNAL_BMP_DATA(anime00128);
\r
54 EXTERNAL_BMP_DATA(anime00132);
\r
55 EXTERNAL_BMP_DATA(anime00136);
\r
56 EXTERNAL_BMP_DATA(anime00140);
\r
57 EXTERNAL_BMP_DATA(anime00144);
\r
58 EXTERNAL_BMP_DATA(anime00148);
\r
59 EXTERNAL_BMP_DATA(anime00152);
\r
60 EXTERNAL_BMP_DATA(anime00156);
\r
61 EXTERNAL_BMP_DATA(anime00160);
\r
62 EXTERNAL_BMP_DATA(anime00164);
\r
63 EXTERNAL_BMP_DATA(anime00168);
\r
64 EXTERNAL_BMP_DATA(anime00172);
\r
65 EXTERNAL_BMP_DATA(anime00176);
\r
66 EXTERNAL_BMP_DATA(anime00180);
\r
67 EXTERNAL_BMP_DATA(anime00184);
\r
68 EXTERNAL_BMP_DATA(anime00188);
\r
69 EXTERNAL_BMP_DATA(anime00192);
\r
70 EXTERNAL_BMP_DATA(anime00196);
\r
71 EXTERNAL_BMP_DATA(anime00200);
\r
72 EXTERNAL_BMP_DATA(anime00204);
\r
73 EXTERNAL_BMP_DATA(anime00208);
\r
74 EXTERNAL_BMP_DATA(anime00212);
\r
75 EXTERNAL_BMP_DATA(anime00216);
\r
76 EXTERNAL_BMP_DATA(anime00220);
\r
77 EXTERNAL_BMP_DATA(anime00224);
\r
78 EXTERNAL_BMP_DATA(anime00228);
\r
79 EXTERNAL_BMP_DATA(anime00232);
\r
80 EXTERNAL_BMP_DATA(anime00236);
\r
81 EXTERNAL_BMP_DATA(anime00240);
\r
82 EXTERNAL_BMP_DATA(anime00244);
\r
83 EXTERNAL_BMP_DATA(anime00248);
\r
84 EXTERNAL_BMP_DATA(anime00252);
\r
85 EXTERNAL_BMP_DATA(anime00256);
\r
86 EXTERNAL_BMP_DATA(anime00260);
\r
87 EXTERNAL_BMP_DATA(anime00264);
\r
88 EXTERNAL_BMP_DATA(anime00268);
\r
89 EXTERNAL_BMP_DATA(anime00272);
\r
90 EXTERNAL_BMP_DATA(anime00276);
\r
91 EXTERNAL_BMP_DATA(anime00280);
\r
92 EXTERNAL_BMP_DATA(anime00284);
\r
93 EXTERNAL_BMP_DATA(anime00288);
\r
94 EXTERNAL_BMP_DATA(anime00292);
\r
95 EXTERNAL_BMP_DATA(anime00296);
\r
96 EXTERNAL_BMP_DATA(anime00300);
\r
97 EXTERNAL_BMP_DATA(anime00304);
\r
98 EXTERNAL_BMP_DATA(anime00308);
\r
99 EXTERNAL_BMP_DATA(anime00312);
\r
100 EXTERNAL_BMP_DATA(anime00316);
\r
101 EXTERNAL_BMP_DATA(anime00320);
\r
102 EXTERNAL_BMP_DATA(anime00324);
\r
103 EXTERNAL_BMP_DATA(anime00328);
\r
104 EXTERNAL_BMP_DATA(anime00332);
\r
105 EXTERNAL_BMP_DATA(anime00336);
\r
106 EXTERNAL_BMP_DATA(anime00340);
\r
107 EXTERNAL_BMP_DATA(anime00344);
\r
108 EXTERNAL_BMP_DATA(anime00348);
\r
109 EXTERNAL_BMP_DATA(anime00352);
\r
110 EXTERNAL_BMP_DATA(anime00356);
\r
111 EXTERNAL_BMP_DATA(anime00360);
\r
112 EXTERNAL_BMP_DATA(anime00364);
\r
113 EXTERNAL_BMP_DATA(anime00368);
\r
114 EXTERNAL_BMP_DATA(anime00372);
\r
115 EXTERNAL_BMP_DATA(anime00376);
\r
116 EXTERNAL_BMP_DATA(anime00380);
\r
117 EXTERNAL_BMP_DATA(anime00384);
\r
118 EXTERNAL_BMP_DATA(anime00388);
\r
119 EXTERNAL_BMP_DATA(anime00392);
\r
120 EXTERNAL_BMP_DATA(anime00396);
\r
121 EXTERNAL_BMP_DATA(anime00400);
\r
122 EXTERNAL_BMP_DATA(anime00404);
\r
123 EXTERNAL_BMP_DATA(anime00408);
\r
124 EXTERNAL_BMP_DATA(anime00412);
\r
125 EXTERNAL_BMP_DATA(anime00416);
\r
126 EXTERNAL_BMP_DATA(anime00420);
\r
127 EXTERNAL_BMP_DATA(anime00424);
\r
128 EXTERNAL_BMP_DATA(anime00428);
\r
129 EXTERNAL_BMP_DATA(anime00432);
\r
130 EXTERNAL_BMP_DATA(anime00436);
\r
131 EXTERNAL_BMP_DATA(anime00440);
\r
132 EXTERNAL_BMP_DATA(anime00444);
\r
133 EXTERNAL_BMP_DATA(anime00448);
\r
134 EXTERNAL_BMP_DATA(anime00452);
\r
135 EXTERNAL_BMP_DATA(anime00456);
\r
136 EXTERNAL_BMP_DATA(anime00460);
\r
137 EXTERNAL_BMP_DATA(anime00464);
\r
148 const BMP_DATA bmp_table[] = {
\r
149 { BMP_DATA_START(anime00000), 93, 63, 4, 0 },
\r
150 { BMP_DATA_START(anime00004), 93, 63, 4, 0 },
\r
151 { BMP_DATA_START(anime00008), 93, 63, 4, 0 },
\r
152 { BMP_DATA_START(anime00012), 93, 63, 4, 0 },
\r
153 { BMP_DATA_START(anime00016), 93, 63, 4, 0 },
\r
154 { BMP_DATA_START(anime00020), 93, 63, 4, 0 },
\r
155 { BMP_DATA_START(anime00024), 93, 63, 4, 0 },
\r
156 { BMP_DATA_START(anime00028), 93, 63, 4, 0 },
\r
157 { BMP_DATA_START(anime00032), 93, 63, 4, 0 },
\r
158 { BMP_DATA_START(anime00036), 93, 63, 4, 0 },
\r
159 { BMP_DATA_START(anime00040), 93, 63, 4, 0 },
\r
160 { BMP_DATA_START(anime00044), 93, 63, 4, 0 },
\r
161 { BMP_DATA_START(anime00048), 93, 63, 4, 0 },
\r
162 { BMP_DATA_START(anime00052), 93, 63, 4, 0 },
\r
163 { BMP_DATA_START(anime00056), 93, 63, 4, 0 },
\r
164 { BMP_DATA_START(anime00060), 93, 63, 4, 0 },
\r
165 { BMP_DATA_START(anime00064), 93, 63, 4, 0 },
\r
166 { BMP_DATA_START(anime00068), 93, 63, 4, 0 },
\r
167 { BMP_DATA_START(anime00072), 93, 63, 4, 0 },
\r
168 { BMP_DATA_START(anime00076), 93, 63, 4, 0 },
\r
169 { BMP_DATA_START(anime00080), 93, 63, 4, 0 },
\r
170 { BMP_DATA_START(anime00084), 93, 63, 4, 0 },
\r
171 { BMP_DATA_START(anime00088), 93, 63, 4, 0 },
\r
172 { BMP_DATA_START(anime00092), 93, 63, 4, 0 },
\r
173 { BMP_DATA_START(anime00096), 93, 63, 4, 0 },
\r
174 { BMP_DATA_START(anime00100), 93, 63, 4, 0 },
\r
175 { BMP_DATA_START(anime00104), 93, 63, 4, 0 },
\r
176 { BMP_DATA_START(anime00108), 93, 63, 4, 0 },
\r
177 { BMP_DATA_START(anime00112), 93, 63, 4, 0 },
\r
178 { BMP_DATA_START(anime00116), 93, 63, 4, 0 },
\r
179 { BMP_DATA_START(anime00120), 93, 63, 4, 0 },
\r
180 { BMP_DATA_START(anime00124), 93, 63, 4, 0 },
\r
181 { BMP_DATA_START(anime00128), 93, 63, 4, 0 },
\r
182 { BMP_DATA_START(anime00132), 93, 63, 4, 0 },
\r
183 { BMP_DATA_START(anime00136), 93, 63, 4, 0 },
\r
184 { BMP_DATA_START(anime00140), 93, 63, 4, 0 },
\r
185 { BMP_DATA_START(anime00144), 93, 63, 4, 0 },
\r
186 { BMP_DATA_START(anime00148), 93, 63, 4, 0 },
\r
187 { BMP_DATA_START(anime00152), 93, 63, 4, 0 },
\r
188 { BMP_DATA_START(anime00156), 93, 63, 4, 0 },
\r
189 { BMP_DATA_START(anime00160), 93, 63, 4, 0 },
\r
190 { BMP_DATA_START(anime00164), 93, 63, 4, 0 },
\r
191 { BMP_DATA_START(anime00168), 93, 63, 4, 0 },
\r
192 { BMP_DATA_START(anime00172), 93, 63, 4, 0 },
\r
193 { BMP_DATA_START(anime00176), 93, 63, 4, 0 },
\r
194 { BMP_DATA_START(anime00180), 93, 63, 4, 0 },
\r
195 { BMP_DATA_START(anime00184), 93, 63, 4, 0 },
\r
196 { BMP_DATA_START(anime00188), 93, 63, 4, 0 },
\r
197 { BMP_DATA_START(anime00192), 93, 63, 4, 0 },
\r
198 { BMP_DATA_START(anime00196), 93, 63, 4, 0 },
\r
199 { BMP_DATA_START(anime00200), 93, 63, 4, 0 },
\r
200 { BMP_DATA_START(anime00204), 93, 63, 4, 0 },
\r
201 { BMP_DATA_START(anime00208), 93, 63, 4, 0 },
\r
202 { BMP_DATA_START(anime00212), 93, 63, 4, 0 },
\r
203 { BMP_DATA_START(anime00216), 93, 63, 4, 0 },
\r
204 { BMP_DATA_START(anime00220), 93, 63, 4, 0 },
\r
205 { BMP_DATA_START(anime00224), 93, 63, 4, 0 },
\r
206 { BMP_DATA_START(anime00228), 93, 63, 4, 0 },
\r
207 { BMP_DATA_START(anime00232), 93, 63, 4, 0 },
\r
208 { BMP_DATA_START(anime00236), 93, 63, 4, 0 },
\r
209 { BMP_DATA_START(anime00240), 93, 63, 4, 0 },
\r
210 { BMP_DATA_START(anime00244), 93, 63, 4, 0 },
\r
211 { BMP_DATA_START(anime00248), 93, 63, 4, 0 },
\r
212 { BMP_DATA_START(anime00252), 93, 63, 4, 0 },
\r
213 { BMP_DATA_START(anime00256), 93, 63, 4, 0 },
\r
214 { BMP_DATA_START(anime00260), 93, 63, 4, 0 },
\r
215 { BMP_DATA_START(anime00264), 93, 63, 4, 0 },
\r
216 { BMP_DATA_START(anime00268), 93, 63, 4, 0 },
\r
217 { BMP_DATA_START(anime00272), 93, 63, 4, 0 },
\r
218 { BMP_DATA_START(anime00276), 93, 63, 4, 0 },
\r
219 { BMP_DATA_START(anime00280), 93, 63, 4, 0 },
\r
220 { BMP_DATA_START(anime00284), 93, 63, 4, 0 },
\r
221 { BMP_DATA_START(anime00288), 93, 63, 4, 0 },
\r
222 { BMP_DATA_START(anime00292), 93, 63, 4, 0 },
\r
223 { BMP_DATA_START(anime00296), 93, 63, 4, 0 },
\r
224 { BMP_DATA_START(anime00300), 93, 63, 4, 0 },
\r
225 { BMP_DATA_START(anime00304), 93, 63, 4, 0 },
\r
226 { BMP_DATA_START(anime00308), 93, 63, 4, 0 },
\r
227 { BMP_DATA_START(anime00312), 93, 63, 4, 0 },
\r
228 { BMP_DATA_START(anime00316), 93, 63, 4, 0 },
\r
229 { BMP_DATA_START(anime00320), 93, 63, 4, 0 },
\r
230 { BMP_DATA_START(anime00324), 93, 63, 4, 0 },
\r
231 { BMP_DATA_START(anime00328), 93, 63, 4, 0 },
\r
232 { BMP_DATA_START(anime00332), 93, 63, 4, 0 },
\r
233 { BMP_DATA_START(anime00336), 93, 63, 4, 0 },
\r
234 { BMP_DATA_START(anime00340), 93, 63, 4, 0 },
\r
235 { BMP_DATA_START(anime00344), 93, 63, 4, 0 },
\r
236 { BMP_DATA_START(anime00348), 93, 63, 4, 0 },
\r
237 { BMP_DATA_START(anime00352), 93, 63, 4, 0 },
\r
238 { BMP_DATA_START(anime00356), 93, 63, 4, 0 },
\r
239 { BMP_DATA_START(anime00360), 93, 63, 4, 0 },
\r
240 { BMP_DATA_START(anime00364), 93, 63, 4, 0 },
\r
241 { BMP_DATA_START(anime00368), 93, 63, 4, 0 },
\r
242 { BMP_DATA_START(anime00372), 93, 63, 4, 0 },
\r
243 { BMP_DATA_START(anime00376), 93, 63, 4, 0 },
\r
244 { BMP_DATA_START(anime00380), 93, 63, 4, 0 },
\r
245 { BMP_DATA_START(anime00384), 93, 63, 4, 0 },
\r
246 { BMP_DATA_START(anime00388), 93, 63, 4, 0 },
\r
247 { BMP_DATA_START(anime00392), 93, 63, 4, 0 },
\r
248 { BMP_DATA_START(anime00396), 93, 63, 4, 0 },
\r
249 { BMP_DATA_START(anime00400), 93, 63, 4, 0 },
\r
250 { BMP_DATA_START(anime00404), 93, 63, 4, 0 },
\r
251 { BMP_DATA_START(anime00408), 93, 63, 4, 0 },
\r
252 { BMP_DATA_START(anime00412), 93, 63, 4, 0 },
\r
253 { BMP_DATA_START(anime00416), 93, 63, 4, 0 },
\r
254 { BMP_DATA_START(anime00420), 93, 63, 4, 0 },
\r
255 { BMP_DATA_START(anime00424), 93, 63, 4, 0 },
\r
256 { BMP_DATA_START(anime00428), 93, 63, 4, 0 },
\r
257 { BMP_DATA_START(anime00432), 93, 63, 4, 0 },
\r
258 { BMP_DATA_START(anime00436), 93, 63, 4, 0 },
\r
259 { BMP_DATA_START(anime00440), 93, 63, 4, 0 },
\r
260 { BMP_DATA_START(anime00444), 93, 63, 4, 0 },
\r
261 { BMP_DATA_START(anime00448), 93, 63, 4, 0 },
\r
262 { BMP_DATA_START(anime00452), 93, 63, 4, 0 },
\r
263 { BMP_DATA_START(anime00456), 93, 63, 4, 0 },
\r
264 { BMP_DATA_START(anime00460), 93, 63, 4, 0 },
\r
265 { BMP_DATA_START(anime00464), 93, 63, 4, 0 }
\r
270 static U8 lcd[NXT_LCD_DEPTH*NXT_LCD_WIDTH];
\r
275 if (ecrobot_is_RUN_button_pressed())
\r
277 for (i = 0; i < sizeof(bmp_table)/sizeof(BMP_DATA); i++)
\r
279 memset(lcd, 0x00, sizeof(lcd));
\r
280 ecrobot_bmp2lcd(bmp_table[i].bmp, lcd, bmp_table[i].width, bmp_table[i].height);
\r
282 display_bitmap_copy(lcd, 100, 8, bmp_table[i].x, bmp_table[i].y);
\r
284 systick_wait_ms(200);
\r