robo-crawler/RoboMI.lst

2594 lines
88 KiB
Plaintext

1 .file "RoboMI.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
16 .Ltext0:
17 .global initIO
19 initIO:
20 .LFB14:
21 .LM1:
22 /* prologue: frame size=0 */
23 /* prologue end (size=0) */
24 .LM2:
25 0000 82E0 ldi r24,lo8(2)
26 0002 8EBD out 78-0x20,r24
27 .LM3:
28 0004 8FEB ldi r24,lo8(-65)
29 0006 8DBD out 77-0x20,r24
30 .LM4:
31 0008 8FEF ldi r24,lo8(-1)
32 000a 8CBD out 76-0x20,r24
33 .LM5:
34 000c 8EEE ldi r24,lo8(-18)
35 000e 83BD out 67-0x20,r24
36 .LM6:
37 0010 89B7 in r24,89-0x20
38 0012 8468 ori r24,lo8(-124)
39 0014 89BF out 89-0x20,r24
40 .LM7:
41 0016 84B3 in r24,52-0x20
42 0018 8760 ori r24,lo8(7)
43 001a 84BB out 52-0x20,r24
44 .LM8:
45 001c 8AB3 in r24,58-0x20
46 001e 8F70 andi r24,lo8(15)
47 0020 8ABB out 58-0x20,r24
48 .LM9:
49 0022 8BB3 in r24,59-0x20
50 0024 806F ori r24,lo8(-16)
51 0026 8BBB out 59-0x20,r24
52 .LM10:
53 0028 1092 0000 sts progPosition,__zero_reg__
54 /* epilogue: frame size=0 */
55 002c 0895 ret
56 /* epilogue end (size=1) */
57 /* function initIO size 23 (22) */
58 .LFE14:
60 .global __vector_15
62 __vector_15:
63 .LFB15:
64 .LM11:
65 /* prologue: frame size=0 */
66 002e 1F92 push __zero_reg__
67 0030 0F92 push __tmp_reg__
68 0032 0FB6 in __tmp_reg__,__SREG__
69 0034 0F92 push __tmp_reg__
70 0036 1124 clr __zero_reg__
71 0038 8F93 push r24
72 /* prologue end (size=6) */
73 .LM12:
74 003a 8091 0000 lds r24,progCounterPPM
75 003e 8F5F subi r24,lo8(-(1))
76 0040 8093 0000 sts progCounterPPM,r24
77 0044 8230 cpi r24,lo8(2)
78 0046 00F0 brlo .L4
79 .LM13:
80 0048 1092 0000 sts servoCounter,__zero_reg__
81 .LM14:
82 004c 85B3 in r24,53-0x20
83 004e 8760 ori r24,lo8(7)
84 0050 85BB out 53-0x20,r24
85 .LM15:
86 0052 87B5 in r24,71-0x20
87 0054 8260 ori r24,lo8(2)
88 0056 87BD out 71-0x20,r24
89 .LM16:
90 0058 1092 0000 sts progCounterPPM,__zero_reg__
91 .L4:
92 .LM17:
93 005c 81E0 ldi r24,lo8(1)
94 005e 8093 0000 sts progDoUpdate,r24
95 .LM18:
96 0062 8FEB ldi r24,lo8(-65)
97 0064 8DBD out 77-0x20,r24
98 .LM19:
99 0066 8FEF ldi r24,lo8(-1)
100 0068 8CBD out 76-0x20,r24
101 /* epilogue: frame size=0 */
102 006a 8F91 pop r24
103 006c 0F90 pop __tmp_reg__
104 006e 0FBE out __SREG__,__tmp_reg__
105 0070 0F90 pop __tmp_reg__
106 0072 1F90 pop __zero_reg__
107 0074 1895 reti
108 /* epilogue end (size=6) */
109 /* function __vector_15 size 36 (24) */
110 .LFE15:
112 .global __vector_11
114 __vector_11:
115 .LFB16:
116 .LM20:
117 /* prologue: frame size=0 */
118 0076 1F92 push __zero_reg__
119 0078 0F92 push __tmp_reg__
120 007a 0FB6 in __tmp_reg__,__SREG__
121 007c 0F92 push __tmp_reg__
122 007e 1124 clr __zero_reg__
123 0080 2F93 push r18
124 0082 8F93 push r24
125 0084 9F93 push r25
126 /* prologue end (size=8) */
127 .LM21:
128 0086 9091 0000 lds r25,servoCounter
129 008a 8091 0000 lds r24,servoPing
130 008e 9817 cp r25,r24
131 0090 00F0 brlo .L8
132 .LM22:
133 0092 A998 cbi 53-0x20,1
134 0094 21E0 ldi r18,lo8(1)
135 .LVL0:
136 0096 00C0 rjmp .L10
137 .LVL1:
138 .L8:
139 .LM23:
140 /* #APP */
141 0098 0000 NOP
142 /* #NOAPP */
143 009a 20E0 ldi r18,lo8(0)
144 .LVL2:
145 .L10:
146 .LM24:
147 009c 8091 0000 lds r24,servoMotorLeft
148 00a0 9817 cp r25,r24
149 00a2 00F0 brlo .L11
150 .LM25:
151 00a4 A898 cbi 53-0x20,0
152 00a6 00C0 rjmp .L13
153 .L11:
154 .LM26:
155 /* #APP */
156 00a8 0000 NOP
157 /* #NOAPP */
158 00aa 20E0 ldi r18,lo8(0)
159 .L13:
160 .LM27:
161 00ac 8091 0000 lds r24,servoMotorRight
162 00b0 9817 cp r25,r24
163 00b2 00F0 brlo .L14
164 .LM28:
165 00b4 AA98 cbi 53-0x20,2
166 .LM29:
167 00b6 2223 tst r18
168 00b8 01F4 brne .L16
169 00ba 00C0 rjmp .L17
170 .L14:
171 .LM30:
172 /* #APP */
173 00bc 0000 NOP
174 /* #NOAPP */
175 00be 00C0 rjmp .L17
176 .L16:
177 .LM31:
178 00c0 87B5 in r24,71-0x20
179 00c2 8D7F andi r24,lo8(-3)
180 00c4 87BD out 71-0x20,r24
181 00c6 00C0 rjmp .L18
182 .L17:
183 .LM32:
184 00c8 9F5F subi r25,lo8(-(1))
185 00ca 9093 0000 sts servoCounter,r25
186 .LM33:
187 /* #APP */
188 00ce 0000 NOP
189 .LM34:
190 00d0 0000 NOP
191 /* #NOAPP */
192 .L18:
193 .LM35:
194 00d2 8EEE ldi r24,lo8(-18)
195 00d4 83BD out 67-0x20,r24
196 /* epilogue: frame size=0 */
197 00d6 9F91 pop r25
198 00d8 8F91 pop r24
199 00da 2F91 pop r18
200 00dc 0F90 pop __tmp_reg__
201 00de 0FBE out __SREG__,__tmp_reg__
202 00e0 0F90 pop __tmp_reg__
203 00e2 1F90 pop __zero_reg__
204 00e4 1895 reti
205 /* epilogue end (size=8) */
206 /* function __vector_11 size 61 (45) */
207 .LFE16:
209 .global activateRobot
211 activateRobot:
212 .LFB17:
213 .LM36:
214 /* prologue: frame size=0 */
215 00e6 1F93 push r17
216 /* prologue end (size=1) */
217 .LVL3:
218 00e8 182F mov r17,r24
219 .LM37:
220 00ea 80E0 ldi r24,lo8(0)
221 .LVL4:
222 00ec 0E94 0000 call lcdSetLayout
223 .LM38:
224 00f0 81E3 ldi r24,lo8(49)
225 00f2 189F mul r17,r24
226 00f4 C001 movw r24,r0
227 00f6 1124 clr r1
228 00f8 8050 subi r24,lo8(-(menuTable))
229 00fa 9040 sbci r25,hi8(-(menuTable))
230 00fc 0E94 0000 call lcdWriteStringP
231 .LM39:
232 0100 88EC ldi r24,lo8(-56)
233 0102 8093 0000 sts progTimer,r24
234 .LM40:
235 0106 1093 0000 sts roboActive,r17
236 /* epilogue: frame size=0 */
237 010a 1F91 pop r17
238 010c 0895 ret
239 /* epilogue end (size=2) */
240 /* function activateRobot size 20 (17) */
241 .LFE17:
243 .global deactivateRobot
245 deactivateRobot:
246 .LFB18:
247 .LM41:
248 /* prologue: frame size=0 */
249 /* prologue end (size=0) */
250 .LM42:
251 010e 1092 0000 sts roboActive,__zero_reg__
252 .LM43:
253 0112 87E7 ldi r24,lo8(119)
254 0114 8093 0000 sts servoMotorLeft,r24
255 .LM44:
256 0118 8093 0000 sts servoMotorRight,r24
257 .LM45:
258 011c 8CE8 ldi r24,lo8(-116)
259 011e 8093 0000 sts servoPing,r24
260 .LM46:
261 0122 0E94 0000 call rfIdDisable
262 /* epilogue: frame size=0 */
263 0126 0895 ret
264 /* epilogue end (size=1) */
265 /* function deactivateRobot size 13 (12) */
266 .LFE18:
268 .data
269 .LC0:
270 0000 2020 2020 .string " "
270 2020 2020
270 2020 2020
270 2020 2020
270 00
271 .LC1:
272 0011 3E20 2020 .string "> <"
272 2020 2020
272 2020 2020
272 2020 203C
272 00
273 .LC2:
274 0022 3E3E 2020 .string ">> <<"
274 2020 2020
274 2020 2020
274 2020 3C3C
274 00
275 .LC3:
276 0033 3E3E 3E20 .string ">>> <<<"
276 2020 2020
276 2020 2020
276 203C 3C3C
276 00
277 .LC4:
278 0044 3E3E 3E3E .string ">>>> <<<<"
278 2020 2020
278 2020 2020
278 3C3C 3C3C
278 00
279 .LC5:
280 0055 3E3E 3E3E .string ">>>>> <<<<<"
280 3E20 2020
280 2020 203C
280 3C3C 3C3C
280 00
281 .LC6:
282 0066 3E3E 3E3E .string ">>>>>> <<<<<<"
282 3E3E 2020
282 2020 3C3C
282 3C3C 3C3C
282 00
283 .LC7:
284 0077 3E3E 3E3E .string ">>>>>>> <<<<<<<"
284 3E3E 3E20
284 203C 3C3C
284 3C3C 3C3C
284 00
285 .LC8:
286 0088 3E3E 3E3E .string ">>>>>>>[]<<<<<<<"
286 3E3E 3E5B
286 5D3C 3C3C
286 3C3C 3C3C
286 00
287 .LC9:
288 0099 2020 2020 .string " < > "
288 2020 3C20
288 203E 2020
288 2020 2020
288 00
289 .LC10:
290 00aa 2020 2020 .string " << >> "
290 203C 3C20
290 203E 3E20
290 2020 2020
290 00
291 .LC11:
292 00bb 2020 2020 .string " <<< >>> "
292 3C3C 3C20
292 203E 3E3E
292 2020 2020
292 00
293 .LC12:
294 00cc 2020 203C .string " <<<< >>>> "
294 3C3C 3C20
294 203E 3E3E
294 3E20 2020
294 00
295 .LC13:
296 00dd 2020 3C3C .string " <<<<< >>>>> "
296 3C3C 3C20
296 203E 3E3E
296 3E3E 2020
296 00
297 .LC14:
298 00ee 203C 3C3C .string " <<<<<< >>>>>> "
298 3C3C 3C20
298 203E 3E3E
298 3E3E 3E20
298 00
299 .LC15:
300 00ff 3C3C 3C3C .string "<<<<<<< >>>>>>>"
300 3C3C 3C20
300 203E 3E3E
300 3E3E 3E3E
300 00
301 .LC16:
302 0110 3C3C 3C3C .string "<<<<<<<[]>>>>>>>"
302 3C3C 3C5B
302 5D3E 3E3E
302 3E3E 3E3E
302 00
303 .LC17:
304 0121 3C3C 3C3C .string "<<<<<<< "
304 3C3C 3C20
304 2020 2020
304 2020 2020
304 00
305 .LC18:
306 0132 203C 3C3C .string " <<<<<< "
306 3C3C 3C20
306 2020 2020
306 2020 2020
306 00
307 .LC19:
308 0143 2020 3C3C .string " <<<<< "
308 3C3C 3C20
308 2020 2020
308 2020 2020
308 00
309 .LC20:
310 0154 2020 203C .string " <<<< "
310 3C3C 3C20
310 2020 2020
310 2020 2020
310 00
311 .LC21:
312 0165 2020 2020 .string " <<< "
312 3C3C 3C20
312 2020 2020
312 2020 2020
312 00
313 .LC22:
314 0176 2020 2020 .string " << "
314 203C 3C20
314 2020 2020
314 2020 2020
314 00
315 .LC23:
316 0187 2020 2020 .string " < "
316 2020 3C20
316 2020 2020
316 2020 2020
316 00
317 .LC24:
318 0198 2020 2020 .string " [] "
318 2020 205B
318 5D20 2020
318 2020 2020
318 00
319 .LC25:
320 01a9 2020 2020 .string " >>>>>>>"
320 2020 2020
320 203E 3E3E
320 3E3E 3E3E
320 00
321 .LC26:
322 01ba 2020 2020 .string " >>>>>> "
322 2020 2020
322 203E 3E3E
322 3E3E 3E20
322 00
323 .LC27:
324 01cb 2020 2020 .string " >>>>> "
324 2020 2020
324 203E 3E3E
324 3E3E 2020
324 00
325 .LC28:
326 01dc 2020 2020 .string " >>>> "
326 2020 2020
326 203E 3E3E
326 3E20 2020
326 00
327 .LC29:
328 01ed 2020 2020 .string " >>> "
328 2020 2020
328 203E 3E3E
328 2020 2020
328 00
329 .LC30:
330 01fe 2020 2020 .string " >> "
330 2020 2020
330 203E 3E20
330 2020 2020
330 00
331 .LC31:
332 020f 2020 2020 .string " > "
332 2020 2020
332 203E 2020
332 2020 2020
332 00
333 .text
334 .global showDistanceOnLCD
336 showDistanceOnLCD:
337 .LFB20:
338 .LM47:
339 /* prologue: frame size=0 */
340 0128 1F93 push r17
341 012a CF93 push r28
342 012c DF93 push r29
343 /* prologue end (size=3) */
344 .LVL5:
345 012e EC01 movw r28,r24
346 0130 162F mov r17,r22
347 .LM48:
348 0132 4130 cpi r20,lo8(1)
349 0134 01F4 brne .L25
350 .LVL6:
351 .LM49:
352 0136 80E0 ldi r24,lo8(0)
353 0138 00C0 rjmp .L100
354 .LVL7:
355 .L25:
356 .LM50:
357 013a 4230 cpi r20,lo8(2)
358 013c 01F4 brne .L28
359 .LM51:
360 013e 80E1 ldi r24,lo8(16)
361 0140 00C0 rjmp .L100
362 .LVL8:
363 .L28:
364 .LM52:
365 0142 4330 cpi r20,lo8(3)
366 0144 01F4 brne .L27
367 .LM53:
368 0146 80E2 ldi r24,lo8(32)
369 .L100:
370 0148 0E94 0000 call lcdSetPos
371 .LVL9:
372 .L27:
373 .LM54:
374 014c 1123 tst r17
375 014e 01F4 brne .L31
376 .LM55:
377 0150 8DE7 ldi r24,hi8(32001)
378 0152 C130 cpi r28,lo8(32001)
379 0154 D807 cpc r29,r24
380 0156 00F4 brsh .L102
381 .LM56:
382 0158 8EE3 ldi r24,hi8(16001)
383 015a C138 cpi r28,lo8(16001)
384 015c D807 cpc r29,r24
385 015e 00F0 brlo .L36
386 .LM57:
387 0160 80E0 ldi r24,lo8(.LC1)
388 0162 90E0 ldi r25,hi8(.LC1)
389 0164 00C0 rjmp .L101
390 .L36:
391 .LM58:
392 0166 8FE1 ldi r24,hi8(8001)
393 0168 C134 cpi r28,lo8(8001)
394 016a D807 cpc r29,r24
395 016c 00F0 brlo .L38
396 .LM59:
397 016e 80E0 ldi r24,lo8(.LC2)
398 0170 90E0 ldi r25,hi8(.LC2)
399 0172 00C0 rjmp .L101
400 .L38:
401 .LM60:
402 0174 8FE0 ldi r24,hi8(4001)
403 0176 C13A cpi r28,lo8(4001)
404 0178 D807 cpc r29,r24
405 017a 00F0 brlo .L40
406 .LM61:
407 017c 80E0 ldi r24,lo8(.LC3)
408 017e 90E0 ldi r25,hi8(.LC3)
409 0180 00C0 rjmp .L101
410 .L40:
411 .LM62:
412 0182 87E0 ldi r24,hi8(2001)
413 0184 C13D cpi r28,lo8(2001)
414 0186 D807 cpc r29,r24
415 0188 00F0 brlo .L42
416 .LM63:
417 018a 80E0 ldi r24,lo8(.LC4)
418 018c 90E0 ldi r25,hi8(.LC4)
419 018e 00C0 rjmp .L101
420 .L42:
421 .LM64:
422 0190 83E0 ldi r24,hi8(1001)
423 0192 C93E cpi r28,lo8(1001)
424 0194 D807 cpc r29,r24
425 0196 00F0 brlo .L44
426 .LM65:
427 0198 80E0 ldi r24,lo8(.LC5)
428 019a 90E0 ldi r25,hi8(.LC5)
429 019c 00C0 rjmp .L101
430 .L44:
431 .LM66:
432 019e 81E0 ldi r24,hi8(501)
433 01a0 C53F cpi r28,lo8(501)
434 01a2 D807 cpc r29,r24
435 01a4 00F0 brlo .L46
436 .LM67:
437 01a6 80E0 ldi r24,lo8(.LC6)
438 01a8 90E0 ldi r25,hi8(.LC6)
439 01aa 00C0 rjmp .L101
440 .L46:
441 .LM68:
442 01ac C536 cpi r28,101
443 01ae D105 cpc r29,__zero_reg__
444 01b0 00F0 brlo .L48
445 .LM69:
446 01b2 80E0 ldi r24,lo8(.LC7)
447 01b4 90E0 ldi r25,hi8(.LC7)
448 01b6 00C0 rjmp .L101
449 .L48:
450 .LM70:
451 01b8 80E0 ldi r24,lo8(.LC8)
452 01ba 90E0 ldi r25,hi8(.LC8)
453 01bc 00C0 rjmp .L101
454 .LVL10:
455 .L31:
456 .LM71:
457 01be 1130 cpi r17,lo8(1)
458 01c0 01F4 brne .L50
459 .LM72:
460 01c2 8DE7 ldi r24,hi8(32001)
461 01c4 C130 cpi r28,lo8(32001)
462 01c6 D807 cpc r29,r24
463 01c8 00F0 brlo .L52
464 .L102:
465 .LM73:
466 01ca 80E0 ldi r24,lo8(.LC0)
467 01cc 90E0 ldi r25,hi8(.LC0)
468 01ce 00C0 rjmp .L101
469 .L52:
470 .LM74:
471 01d0 8EE3 ldi r24,hi8(16001)
472 01d2 C138 cpi r28,lo8(16001)
473 01d4 D807 cpc r29,r24
474 01d6 00F0 brlo .L54
475 .LM75:
476 01d8 80E0 ldi r24,lo8(.LC9)
477 01da 90E0 ldi r25,hi8(.LC9)
478 01dc 00C0 rjmp .L101
479 .L54:
480 .LM76:
481 01de 8FE1 ldi r24,hi8(8001)
482 01e0 C134 cpi r28,lo8(8001)
483 01e2 D807 cpc r29,r24
484 01e4 00F0 brlo .L56
485 .LM77:
486 01e6 80E0 ldi r24,lo8(.LC10)
487 01e8 90E0 ldi r25,hi8(.LC10)
488 01ea 00C0 rjmp .L101
489 .L56:
490 .LM78:
491 01ec 8FE0 ldi r24,hi8(4001)
492 01ee C13A cpi r28,lo8(4001)
493 01f0 D807 cpc r29,r24
494 01f2 00F0 brlo .L58
495 .LM79:
496 01f4 80E0 ldi r24,lo8(.LC11)
497 01f6 90E0 ldi r25,hi8(.LC11)
498 01f8 00C0 rjmp .L101
499 .L58:
500 .LM80:
501 01fa 87E0 ldi r24,hi8(2001)
502 01fc C13D cpi r28,lo8(2001)
503 01fe D807 cpc r29,r24
504 0200 00F0 brlo .L60
505 .LM81:
506 0202 80E0 ldi r24,lo8(.LC12)
507 0204 90E0 ldi r25,hi8(.LC12)
508 0206 00C0 rjmp .L101
509 .L60:
510 .LM82:
511 0208 83E0 ldi r24,hi8(1001)
512 020a C93E cpi r28,lo8(1001)
513 020c D807 cpc r29,r24
514 020e 00F0 brlo .L62
515 .LM83:
516 0210 80E0 ldi r24,lo8(.LC13)
517 0212 90E0 ldi r25,hi8(.LC13)
518 0214 00C0 rjmp .L101
519 .L62:
520 .LM84:
521 0216 81E0 ldi r24,hi8(501)
522 0218 C53F cpi r28,lo8(501)
523 021a D807 cpc r29,r24
524 021c 00F0 brlo .L64
525 .LM85:
526 021e 80E0 ldi r24,lo8(.LC14)
527 0220 90E0 ldi r25,hi8(.LC14)
528 0222 00C0 rjmp .L101
529 .L64:
530 .LM86:
531 0224 C536 cpi r28,101
532 0226 D105 cpc r29,__zero_reg__
533 0228 00F0 brlo .L66
534 .LM87:
535 022a 80E0 ldi r24,lo8(.LC15)
536 022c 90E0 ldi r25,hi8(.LC15)
537 022e 00C0 rjmp .L101
538 .L66:
539 .LM88:
540 0230 80E0 ldi r24,lo8(.LC16)
541 0232 90E0 ldi r25,hi8(.LC16)
542 0234 00C0 rjmp .L101
543 .LVL11:
544 .L50:
545 .LM89:
546 0236 1230 cpi r17,lo8(2)
547 0238 01F4 brne .L68
548 .LM90:
549 023a 89E1 ldi r24,hi8(6401)
550 023c C130 cpi r28,lo8(6401)
551 023e D807 cpc r29,r24
552 0240 00F0 brlo .L70
553 .LM91:
554 0242 80E0 ldi r24,lo8(.LC17)
555 0244 90E0 ldi r25,hi8(.LC17)
556 0246 00C0 rjmp .L101
557 .L70:
558 .LM92:
559 0248 8CE0 ldi r24,hi8(3201)
560 024a C138 cpi r28,lo8(3201)
561 024c D807 cpc r29,r24
562 024e 00F0 brlo .L72
563 .LM93:
564 0250 80E0 ldi r24,lo8(.LC18)
565 0252 90E0 ldi r25,hi8(.LC18)
566 0254 00C0 rjmp .L101
567 .L72:
568 .LM94:
569 0256 86E0 ldi r24,hi8(1601)
570 0258 C134 cpi r28,lo8(1601)
571 025a D807 cpc r29,r24
572 025c 00F0 brlo .L74
573 .LM95:
574 025e 80E0 ldi r24,lo8(.LC19)
575 0260 90E0 ldi r25,hi8(.LC19)
576 0262 00C0 rjmp .L101
577 .L74:
578 .LM96:
579 0264 83E0 ldi r24,hi8(801)
580 0266 C132 cpi r28,lo8(801)
581 0268 D807 cpc r29,r24
582 026a 00F0 brlo .L76
583 .LM97:
584 026c 80E0 ldi r24,lo8(.LC20)
585 026e 90E0 ldi r25,hi8(.LC20)
586 0270 00C0 rjmp .L101
587 .L76:
588 .LM98:
589 0272 81E0 ldi r24,hi8(401)
590 0274 C139 cpi r28,lo8(401)
591 0276 D807 cpc r29,r24
592 0278 00F0 brlo .L78
593 .LM99:
594 027a 80E0 ldi r24,lo8(.LC21)
595 027c 90E0 ldi r25,hi8(.LC21)
596 027e 00C0 rjmp .L101
597 .L78:
598 .LM100:
599 0280 C93C cpi r28,201
600 0282 D105 cpc r29,__zero_reg__
601 0284 00F0 brlo .L80
602 .LM101:
603 0286 80E0 ldi r24,lo8(.LC22)
604 0288 90E0 ldi r25,hi8(.LC22)
605 028a 00C0 rjmp .L101
606 .L80:
607 .LM102:
608 028c 6F97 sbiw r28,31
609 028e 00F0 brlo .L97
610 .LM103:
611 0290 80E0 ldi r24,lo8(.LC23)
612 0292 90E0 ldi r25,hi8(.LC23)
613 0294 00C0 rjmp .L101
614 .LVL12:
615 .L68:
616 .LM104:
617 0296 1330 cpi r17,lo8(3)
618 0298 01F4 brne .L99
619 .LM105:
620 029a 89E1 ldi r24,hi8(6401)
621 029c C130 cpi r28,lo8(6401)
622 029e D807 cpc r29,r24
623 02a0 00F0 brlo .L85
624 .LM106:
625 02a2 80E0 ldi r24,lo8(.LC25)
626 02a4 90E0 ldi r25,hi8(.LC25)
627 02a6 00C0 rjmp .L101
628 .L85:
629 .LM107:
630 02a8 8CE0 ldi r24,hi8(3201)
631 02aa C138 cpi r28,lo8(3201)
632 02ac D807 cpc r29,r24
633 02ae 00F0 brlo .L87
634 .LM108:
635 02b0 80E0 ldi r24,lo8(.LC26)
636 02b2 90E0 ldi r25,hi8(.LC26)
637 02b4 00C0 rjmp .L101
638 .L87:
639 .LM109:
640 02b6 86E0 ldi r24,hi8(1601)
641 02b8 C134 cpi r28,lo8(1601)
642 02ba D807 cpc r29,r24
643 02bc 00F0 brlo .L89
644 .LM110:
645 02be 80E0 ldi r24,lo8(.LC27)
646 02c0 90E0 ldi r25,hi8(.LC27)
647 02c2 00C0 rjmp .L101
648 .L89:
649 .LM111:
650 02c4 83E0 ldi r24,hi8(801)
651 02c6 C132 cpi r28,lo8(801)
652 02c8 D807 cpc r29,r24
653 02ca 00F0 brlo .L91
654 .LM112:
655 02cc 80E0 ldi r24,lo8(.LC28)
656 02ce 90E0 ldi r25,hi8(.LC28)
657 02d0 00C0 rjmp .L101
658 .L91:
659 .LM113:
660 02d2 81E0 ldi r24,hi8(401)
661 02d4 C139 cpi r28,lo8(401)
662 02d6 D807 cpc r29,r24
663 02d8 00F0 brlo .L93
664 .LM114:
665 02da 80E0 ldi r24,lo8(.LC29)
666 02dc 90E0 ldi r25,hi8(.LC29)
667 02de 00C0 rjmp .L101
668 .L93:
669 .LM115:
670 02e0 C93C cpi r28,201
671 02e2 D105 cpc r29,__zero_reg__
672 02e4 00F0 brlo .L95
673 .LM116:
674 02e6 80E0 ldi r24,lo8(.LC30)
675 02e8 90E0 ldi r25,hi8(.LC30)
676 02ea 00C0 rjmp .L101
677 .L95:
678 .LM117:
679 02ec 6F97 sbiw r28,31
680 02ee 00F0 brlo .L97
681 .LM118:
682 02f0 80E0 ldi r24,lo8(.LC31)
683 02f2 90E0 ldi r25,hi8(.LC31)
684 02f4 00C0 rjmp .L101
685 .L97:
686 .LM119:
687 02f6 80E0 ldi r24,lo8(.LC24)
688 02f8 90E0 ldi r25,hi8(.LC24)
689 .L101:
690 02fa 0E94 0000 call lcdWriteString
691 .LVL13:
692 .LVL14:
693 .L99:
694 /* epilogue: frame size=0 */
695 02fe DF91 pop r29
696 0300 CF91 pop r28
697 0302 1F91 pop r17
698 0304 0895 ret
699 /* epilogue end (size=4) */
700 /* function showDistanceOnLCD size 241 (234) */
701 .LFE20:
703 .global checkCommunication
705 checkCommunication:
706 .LFB21:
707 .LM120:
708 /* prologue: frame size=0 */
709 0306 0F93 push r16
710 0308 1F93 push r17
711 /* prologue end (size=2) */
712 .LM121:
713 030a 0E94 0000 call rfIdGetTagPresent
714 030e 8823 tst r24
715 0310 01F0 breq .L104
716 .LBB2:
717 .LM122:
718 0312 0E94 0000 call rfIdGetTag
719 0316 8C01 movw r16,r24
720 .LVL15:
721 .LM123:
722 0318 83E1 ldi r24,lo8(19)
723 031a 0E94 0000 call lcdSetPos
724 .LM124:
725 031e C801 movw r24,r16
726 0320 0E94 0000 call lcdWriteString
727 .LM125:
728 0324 C801 movw r24,r16
729 0326 0E94 0000 call roboMSPSetData
730 .L104:
731 .LBE2:
732 .LM126:
733 032a 0E94 0000 call roboMSPGetActiveStatus
734 032e 8330 cpi r24,lo8(3)
735 0330 01F0 breq .L108
736 0332 8430 cpi r24,lo8(4)
737 0334 00F4 brsh .L111
738 0336 8230 cpi r24,lo8(2)
739 0338 01F4 brne .L112
740 033a 00C0 rjmp .L107
741 .L111:
742 033c 8430 cpi r24,lo8(4)
743 033e 01F0 breq .L109
744 0340 8530 cpi r24,lo8(5)
745 0342 01F4 brne .L112
746 0344 00C0 rjmp .L110
747 .L107:
748 .LM127:
749 0346 81E0 ldi r24,lo8(1)
750 0348 00C0 rjmp .L113
751 .L108:
752 .LM128:
753 034a 82E0 ldi r24,lo8(2)
754 .L113:
755 034c 0E94 0000 call activateRobot
756 .LM129:
757 0350 0E94 0000 call rfIdEnable
758 0354 00C0 rjmp .L112
759 .L109:
760 .LM130:
761 0356 0E94 0000 call deactivateRobot
762 035a 00C0 rjmp .L112
763 .L110:
764 .LM131:
765 035c 0E94 0000 call rfIdClearBuffer
766 .L112:
767 /* epilogue: frame size=0 */
768 0360 1F91 pop r17
769 0362 0F91 pop r16
770 0364 0895 ret
771 /* epilogue end (size=3) */
772 /* function checkCommunication size 48 (43) */
773 .LFE21:
775 .data
776 .LC32:
777 0220 4472 6976 .string "Drive: FORWARD "
777 653A 2046
777 4F52 5741
777 5244 2020
777 00
778 .LC33:
779 0231 4472 6976 .string "Drive: STOP "
779 653A 2053
779 544F 5020
779 2020 2020
779 00
780 .LC34:
781 0242 416C 6967 .string "Align to wall "
781 6E20 746F
781 2077 616C
781 6C20 2020
781 00
782 .LC35:
783 0253 2020 5E2D .string " ^-- (1m) --^ "
783 2D20 2831
783 6D29 202D
783 2D5E 2020
783 00
784 .LC36:
785 0264 506F 7369 .string "Posistion locked"
785 7374 696F
785 6E20 6C6F
785 636B 6564
785 00
786 .LC37:
787 0275 4472 6976 .string "Drive: Turn < "
787 653A 2054
787 7572 6E20
787 3C20 00
788 .LC38:
789 0284 4472 6976 .string "Drive: Turn > "
789 653A 2054
789 7572 6E20
789 3E20 00
790 .LC39:
791 0293 205D 2D2D .string " ]--- (1m) --->|"
791 2D20 2831
791 6D29 202D
791 2D2D 3E7C
791 00
792 .LC40:
793 02a4 7C3C 2D2D .string "|<--- (1m) ---[ "
793 2D20 2831
793 6D29 202D
793 2D2D 5B20
793 00
794 .LC41:
795 02b5 4472 6976 .string "Drive: Turn <<< "
795 653A 2054
795 7572 6E20
795 3C3C 3C20
795 00
796 .LC42:
797 02c6 4472 6976 .string "Drive: Turn < "
797 653A 2054
797 7572 6E20
797 3C20 2020
797 00
798 .LC43:
799 02d7 4472 6976 .string "Drive: Turn > "
799 653A 2054
799 7572 6E20
799 3E20 2020
799 00
800 .LC44:
801 02e8 5365 7276 .string "Servo: forward "
801 6F3A 2066
801 6F72 7761
801 7264 2000
802 .LC45:
803 02f8 4469 7374 .string "Distance: "
803 616E 6365
803 3A20 00
804 .text
805 .global updateProgram
807 updateProgram:
808 .LFB19:
809 .LM132:
810 /* prologue: frame size=0 */
811 0366 1F93 push r17
812 /* prologue end (size=1) */
813 .LM133:
814 0368 8091 0000 lds r24,rfEnable
815 036c 8823 tst r24
816 036e 01F0 breq .L115
817 .LM134:
818 0370 0E94 0000 call checkCommunication
819 .L115:
820 .LM135:
821 0374 8091 0000 lds r24,roboActive
822 0378 8130 cpi r24,lo8(1)
823 037a 01F0 breq .+2
824 037c 00C0 rjmp .L117
825 .LM136:
826 037e 8091 0000 lds r24,progCounter
827 0382 8F5F subi r24,lo8(-(1))
828 0384 8093 0000 sts progCounter,r24
829 0388 9091 0000 lds r25,progTimer
830 038c 8917 cp r24,r25
831 038e 00F4 brsh .+2
832 0390 00C0 rjmp .L117
833 .LM137:
834 0392 8091 0000 lds r24,progPosition
835 0396 E82F mov r30,r24
836 0398 F0E0 ldi r31,lo8(0)
837 039a E631 cpi r30,22
838 039c F105 cpc r31,__zero_reg__
839 039e 00F0 brlo .+2
840 03a0 00C0 rjmp .L120
841 03a2 E050 subi r30,lo8(-(gs(.L143)))
**** Warning:expression dangerous with linker stubs
842 03a4 F040 sbci r31,hi8(-(gs(.L143)))
**** Warning:expression dangerous with linker stubs
843 03a6 EE0F lsl r30
844 03a8 FF1F rol r31
845 03aa 0590 lpm __tmp_reg__,Z+
846 03ac F491 lpm r31,Z
847 03ae E02D mov r30,__tmp_reg__
848 03b0 0994 ijmp
849 .data
850 .section .progmem.gcc_sw_table, "a", @progbits
851 .p2align 1
852 .L143:
853 .data
854 .section .progmem.gcc_sw_table, "a", @progbits
855 .p2align 1
856 0000 0000 .word gs(.L121)
857 0002 0000 .word gs(.L122)
858 0004 0000 .word gs(.L123)
859 0006 0000 .word gs(.L124)
860 0008 0000 .word gs(.L125)
861 000a 0000 .word gs(.L126)
862 000c 0000 .word gs(.L127)
863 000e 0000 .word gs(.L128)
864 0010 0000 .word gs(.L129)
865 0012 0000 .word gs(.L130)
866 0014 0000 .word gs(.L131)
867 0016 0000 .word gs(.L132)
868 0018 0000 .word gs(.L133)
869 001a 0000 .word gs(.L134)
870 001c 0000 .word gs(.L135)
871 001e 0000 .word gs(.L136)
872 0020 0000 .word gs(.L137)
873 0022 0000 .word gs(.L138)
874 0024 0000 .word gs(.L139)
875 0026 0000 .word gs(.L140)
876 0028 0000 .word gs(.L141)
877 002a 0000 .word gs(.L142)
878 .text
879 .L121:
880 .LM138:
881 03b2 0E94 0000 call lcdClearDisplay
882 .LM139:
883 03b6 81E0 ldi r24,lo8(1)
884 03b8 0E94 0000 call lcdSetLayout
885 03bc 00C0 rjmp .L136
886 .L122:
887 .LM140:
888 03be 8FE7 ldi r24,lo8(127)
889 03c0 8093 0000 sts servoMotorLeft,r24
890 .LM141:
891 03c4 8093 0000 sts servoMotorRight,r24
892 .LM142:
893 03c8 0E94 0000 call pingSendPing
894 .LM143:
895 03cc 84E0 ldi r24,lo8(4)
896 03ce 8093 0000 sts progTimer,r24
897 .LM144:
898 03d2 0E94 0000 call pingGetReady
899 03d6 8823 tst r24
900 03d8 01F4 brne .+2
901 03da 00C0 rjmp .L120
902 .LM145:
903 03dc 0E94 0000 call pingGetDistance
904 03e0 9093 0000 sts (tempDistance)+1,r25
905 03e4 8093 0000 sts tempDistance,r24
906 .LM146:
907 03e8 27E1 ldi r18,hi8(6000)
908 03ea 8037 cpi r24,lo8(6000)
909 03ec 9207 cpc r25,r18
910 03ee 00F4 brsh .L145
911 .LM147:
912 03f0 42E0 ldi r20,lo8(2)
913 03f2 60E0 ldi r22,lo8(0)
914 03f4 80E0 ldi r24,lo8(0)
915 03f6 90E0 ldi r25,hi8(0)
916 03f8 0E94 0000 call showDistanceOnLCD
917 03fc 00C0 rjmp .L283
918 .L145:
919 .LM148:
920 03fe 42E0 ldi r20,lo8(2)
921 0400 60E0 ldi r22,lo8(0)
922 0402 8057 subi r24,lo8(-(-6000))
923 0404 9741 sbci r25,hi8(-(-6000))
924 0406 0E94 0000 call showDistanceOnLCD
925 040a 00C0 rjmp .L120
926 .L123:
927 .LM149:
928 040c 80E0 ldi r24,lo8(0)
929 040e 0E94 0000 call lcdSetPos
930 .LM150:
931 0412 80E0 ldi r24,lo8(.LC33)
932 0414 90E0 ldi r25,hi8(.LC33)
933 0416 0E94 0000 call lcdWriteString
934 .LM151:
935 041a 8CE6 ldi r24,lo8(108)
936 041c 8093 0000 sts servoMotorLeft,r24
937 .LM152:
938 0420 8093 0000 sts servoMotorRight,r24
939 .LM153:
940 0424 88E2 ldi r24,lo8(40)
941 0426 00C0 rjmp .L280
942 .L124:
943 .LM154:
944 0428 87E7 ldi r24,lo8(119)
945 042a 8093 0000 sts servoMotorLeft,r24
946 .LM155:
947 042e 8093 0000 sts servoMotorRight,r24
948 .LM156:
949 0432 81E0 ldi r24,lo8(1)
950 0434 8093 0000 sts progTimer,r24
951 .LM157:
952 0438 1092 0000 sts regulatorMeasureCounter,__zero_reg__
953 .LM158:
954 043c 84E0 ldi r24,lo8(4)
955 043e 00C0 rjmp .L266
956 .L125:
957 .LM159:
958 0440 8EEA ldi r24,lo8(-82)
959 0442 8093 0000 sts servoPing,r24
960 .LM160:
961 0446 84E1 ldi r24,lo8(20)
962 0448 8093 0000 sts progTimer,r24
963 .LM161:
964 044c 85E0 ldi r24,lo8(5)
965 044e 00C0 rjmp .L266
966 .L126:
967 .LM162:
968 0450 0E94 0000 call pingSendPing
969 .LM163:
970 0454 84E0 ldi r24,lo8(4)
971 0456 8093 0000 sts progTimer,r24
972 .LM164:
973 045a 0E94 0000 call pingGetReady
974 045e 8823 tst r24
975 0460 01F4 brne .+2
976 0462 00C0 rjmp .L120
977 .LM165:
978 0464 0E94 0000 call pingGetDistance
979 0468 9093 0000 sts (tempLeftDistance)+1,r25
980 046c 8093 0000 sts tempLeftDistance,r24
981 0470 00C0 rjmp .L283
982 .L127:
983 .LM166:
984 0472 87E6 ldi r24,lo8(103)
985 0474 8093 0000 sts servoPing,r24
986 .LM167:
987 0478 88E2 ldi r24,lo8(40)
988 047a 8093 0000 sts progTimer,r24
989 .LM168:
990 047e 87E0 ldi r24,lo8(7)
991 0480 00C0 rjmp .L266
992 .L128:
993 .LM169:
994 0482 0E94 0000 call pingSendPing
995 .LM170:
996 0486 84E0 ldi r24,lo8(4)
997 0488 8093 0000 sts progTimer,r24
998 .LM171:
999 048c 0E94 0000 call pingGetReady
1000 0490 8823 tst r24
1001 0492 01F4 brne .+2
1002 0494 00C0 rjmp .L120
1003 .LM172:
1004 0496 0E94 0000 call pingGetDistance
1005 049a 9093 0000 sts (tempRightDistance)+1,r25
1006 049e 8093 0000 sts tempRightDistance,r24
1007 04a2 00C0 rjmp .L283
1008 .L129:
1009 .LM173:
1010 04a4 8CE8 ldi r24,lo8(-116)
1011 04a6 8093 0000 sts servoPing,r24
1012 .LM174:
1013 04aa 2091 0000 lds r18,tempLeftDistance
1014 04ae 3091 0000 lds r19,(tempLeftDistance)+1
1015 04b2 8091 0000 lds r24,tempRightDistance
1016 04b6 9091 0000 lds r25,(tempRightDistance)+1
1017 04ba 8217 cp r24,r18
1018 04bc 9307 cpc r25,r19
1019 04be 00F4 brsh .L149
1020 .LM175:
1021 04c0 1092 0000 sts regulatorMode,__zero_reg__
1022 04c4 00C0 rjmp .L151
1023 .L149:
1024 .LM176:
1025 04c6 81E0 ldi r24,lo8(1)
1026 04c8 8093 0000 sts regulatorMode,r24
1027 .L151:
1028 .LM177:
1029 04cc 82E3 ldi r24,lo8(50)
1030 04ce 8093 0000 sts progTimer,r24
1031 .LM178:
1032 04d2 89E0 ldi r24,lo8(9)
1033 04d4 00C0 rjmp .L266
1034 .L130:
1035 .LM179:
1036 04d6 0E94 0000 call pingSendPing
1037 .LM180:
1038 04da 84E0 ldi r24,lo8(4)
1039 04dc 8093 0000 sts progTimer,r24
1040 .LM181:
1041 04e0 0E94 0000 call pingGetReady
1042 04e4 8823 tst r24
1043 04e6 01F4 brne .+2
1044 04e8 00C0 rjmp .L120
1045 .LM182:
1046 04ea 80E0 ldi r24,lo8(0)
1047 04ec 0E94 0000 call lcdSetPos
1048 .LM183:
1049 04f0 80E0 ldi r24,lo8(.LC34)
1050 04f2 90E0 ldi r25,hi8(.LC34)
1051 04f4 0E94 0000 call lcdWriteString
1052 .LM184:
1053 04f8 0E94 0000 call pingGetDistance
1054 04fc 9093 0000 sts (tempLastDistanceToWall)+1,r25
1055 0500 8093 0000 sts tempLastDistanceToWall,r24
1056 .LM185:
1057 0504 9093 0000 sts (tempDistanceToWall)+1,r25
1058 0508 8093 0000 sts tempDistanceToWall,r24
1059 050c 00C0 rjmp .L283
1060 .L131:
1061 .LM186:
1062 050e 8091 0000 lds r24,regulatorMode
1063 0512 8823 tst r24
1064 0514 01F4 brne .L153
1065 .LM187:
1066 0516 86E8 ldi r24,lo8(-122)
1067 0518 8093 0000 sts servoMotorLeft,r24
1068 .LM188:
1069 051c 88E6 ldi r24,lo8(104)
1070 051e 00C0 rjmp .L257
1071 .L153:
1072 .LM189:
1073 0520 8130 cpi r24,lo8(1)
1074 0522 01F4 brne .L155
1075 .LM190:
1076 0524 88E6 ldi r24,lo8(104)
1077 0526 8093 0000 sts servoMotorLeft,r24
1078 .LM191:
1079 052a 86E8 ldi r24,lo8(-122)
1080 .L257:
1081 052c 8093 0000 sts servoMotorRight,r24
1082 .LM192:
1083 0530 87E0 ldi r24,lo8(7)
1084 0532 8093 0000 sts progTimer,r24
1085 .L155:
1086 .LM193:
1087 0536 8BE0 ldi r24,lo8(11)
1088 0538 00C0 rjmp .L266
1089 .L132:
1090 .LM194:
1091 053a 0E94 0000 call pingSendPing
1092 .LM195:
1093 053e 84E0 ldi r24,lo8(4)
1094 0540 8093 0000 sts progTimer,r24
1095 .LM196:
1096 0544 87E7 ldi r24,lo8(119)
1097 0546 8093 0000 sts servoMotorLeft,r24
1098 .LM197:
1099 054a 8093 0000 sts servoMotorRight,r24
1100 .LM198:
1101 054e 0E94 0000 call pingGetReady
1102 0552 8823 tst r24
1103 0554 01F4 brne .+2
1104 0556 00C0 rjmp .L120
1105 .LM199:
1106 0558 0E94 0000 call pingGetDistance
1107 055c 9093 0000 sts (tempDistance)+1,r25
1108 0560 8093 0000 sts tempDistance,r24
1109 .LM200:
1110 0564 2091 0000 lds r18,tempLastDistanceToWall
1111 0568 3091 0000 lds r19,(tempLastDistanceToWall)+1
1112 056c 2817 cp r18,r24
1113 056e 3907 cpc r19,r25
1114 0570 00F4 brsh .L158
1115 .LM201:
1116 0572 80E0 ldi r24,lo8(0)
1117 0574 0E94 0000 call lcdSetPos
1118 .LM202:
1119 0578 80E0 ldi r24,lo8(.LC35)
1120 057a 90E0 ldi r25,hi8(.LC35)
1121 057c 0E94 0000 call lcdWriteString
1122 .LM203:
1123 0580 81E0 ldi r24,lo8(1)
1124 0582 8093 0000 sts progTimer,r24
1125 .LM204:
1126 0586 8091 0000 lds r24,progPosition
1127 058a 8F5F subi r24,lo8(-(1))
1128 058c 00C0 rjmp .L258
1129 .L158:
1130 .LM205:
1131 058e 8091 0000 lds r24,progPosition
1132 0592 8150 subi r24,lo8(-(-1))
1133 .L258:
1134 0594 8093 0000 sts progPosition,r24
1135 .LM206:
1136 0598 8091 0000 lds r24,tempDistance
1137 059c 9091 0000 lds r25,(tempDistance)+1
1138 05a0 9093 0000 sts (tempLastDistanceToWall)+1,r25
1139 05a4 8093 0000 sts tempLastDistanceToWall,r24
1140 05a8 00C0 rjmp .L120
1141 .L133:
1142 .LM207:
1143 05aa 0E94 0000 call pingSendPing
1144 .LM208:
1145 05ae 84E0 ldi r24,lo8(4)
1146 05b0 8093 0000 sts progTimer,r24
1147 .LM209:
1148 05b4 0E94 0000 call pingGetReady
1149 05b8 8823 tst r24
1150 05ba 01F4 brne .+2
1151 05bc 00C0 rjmp .L120
1152 .LM210:
1153 05be 0E94 0000 call pingGetDistance
1154 05c2 9C01 movw r18,r24
1155 05c4 9093 0000 sts (tempDistance)+1,r25
1156 05c8 8093 0000 sts tempDistance,r24
1157 .LM211:
1158 05cc 47E1 ldi r20,hi8(6001)
1159 05ce 8137 cpi r24,lo8(6001)
1160 05d0 9407 cpc r25,r20
1161 05d2 00F0 brlo .L162
1162 .LM212:
1163 05d4 42E0 ldi r20,lo8(2)
1164 05d6 60E0 ldi r22,lo8(0)
1165 05d8 8057 subi r24,lo8(-(-6000))
1166 05da 9741 sbci r25,hi8(-(-6000))
1167 05dc 00C0 rjmp .L259
1168 .L162:
1169 .LM213:
1170 05de 42E0 ldi r20,lo8(2)
1171 05e0 61E0 ldi r22,lo8(1)
1172 05e2 80E7 ldi r24,lo8(6000)
1173 05e4 97E1 ldi r25,hi8(6000)
1174 05e6 821B sub r24,r18
1175 05e8 930B sbc r25,r19
1176 .L259:
1177 05ea 0E94 0000 call showDistanceOnLCD
1178 .LM214:
1179 05ee 8091 0000 lds r24,tempDistance
1180 05f2 9091 0000 lds r25,(tempDistance)+1
1181 05f6 26E1 ldi r18,hi8(5800)
1182 05f8 883A cpi r24,lo8(5800)
1183 05fa 9207 cpc r25,r18
1184 05fc 00F4 brsh .L165
1185 .LM215:
1186 05fe 8091 0000 lds r24,servoMotorLeft
1187 0602 8337 cpi r24,lo8(115)
1188 0604 00F0 brlo .L171
1189 .LM216:
1190 0606 8150 subi r24,lo8(-(-1))
1191 0608 8093 0000 sts servoMotorLeft,r24
1192 .LM217:
1193 060c 8091 0000 lds r24,servoMotorRight
1194 0610 8150 subi r24,lo8(-(-1))
1195 0612 00C0 rjmp .L269
1196 .L165:
1197 .LM218:
1198 0614 8953 subi r24,lo8(6201)
1199 0616 9841 sbci r25,hi8(6201)
1200 0618 00F0 brlo .L169
1201 .LM219:
1202 061a 8091 0000 lds r24,servoMotorLeft
1203 061e 8F37 cpi r24,lo8(127)
1204 0620 00F4 brsh .L171
1205 .LM220:
1206 0622 8F5F subi r24,lo8(-(1))
1207 0624 8093 0000 sts servoMotorLeft,r24
1208 .LM221:
1209 0628 8091 0000 lds r24,servoMotorRight
1210 062c 8F5F subi r24,lo8(-(1))
1211 .L269:
1212 062e 8093 0000 sts servoMotorRight,r24
1213 .L171:
1214 .LM222:
1215 0632 1092 0000 sts regulatorMeasureCounter,__zero_reg__
1216 0636 00C0 rjmp .L120
1217 .L169:
1218 .LM223:
1219 0638 17E7 ldi r17,lo8(119)
1220 063a 1093 0000 sts servoMotorLeft,r17
1221 .LM224:
1222 063e 1093 0000 sts servoMotorRight,r17
1223 .LM225:
1224 0642 8091 0000 lds r24,regulatorMeasureCounter
1225 0646 8F5F subi r24,lo8(-(1))
1226 0648 8093 0000 sts regulatorMeasureCounter,r24
1227 064c 8530 cpi r24,lo8(5)
1228 064e 01F0 breq .+2
1229 0650 00C0 rjmp .L120
1230 .LM226:
1231 0652 80E0 ldi r24,lo8(0)
1232 0654 0E94 0000 call lcdSetPos
1233 .LM227:
1234 0658 80E0 ldi r24,lo8(.LC36)
1235 065a 90E0 ldi r25,hi8(.LC36)
1236 065c 0E94 0000 call lcdWriteString
1237 .LM228:
1238 0660 1093 0000 sts servoMotorLeft,r17
1239 .LM229:
1240 0664 1093 0000 sts servoMotorRight,r17
1241 .LM230:
1242 0668 8091 0000 lds r24,tempDistance
1243 066c 9091 0000 lds r25,(tempDistance)+1
1244 0670 9093 0000 sts (tempDistanceToWall)+1,r25
1245 0674 8093 0000 sts tempDistanceToWall,r24
1246 .LM231:
1247 0678 82E3 ldi r24,lo8(50)
1248 067a 8093 0000 sts progTimer,r24
1249 .LM232:
1250 067e 1092 0000 sts regulatorMeasureCounter,__zero_reg__
1251 0682 00C0 rjmp .L272
1252 .L134:
1253 .LM233:
1254 0684 8CE8 ldi r24,lo8(-116)
1255 0686 8093 0000 sts servoPing,r24
1256 .LM234:
1257 068a 2091 0000 lds r18,tempLeftDistance
1258 068e 3091 0000 lds r19,(tempLeftDistance)+1
1259 0692 8091 0000 lds r24,tempRightDistance
1260 0696 9091 0000 lds r25,(tempRightDistance)+1
1261 069a 8217 cp r24,r18
1262 069c 9307 cpc r25,r19
1263 069e 00F4 brsh .L174
1264 .LM235:
1265 06a0 80E0 ldi r24,lo8(0)
1266 06a2 0E94 0000 call lcdSetPos
1267 .LM236:
1268 06a6 80E0 ldi r24,lo8(.LC37)
1269 06a8 90E0 ldi r25,hi8(.LC37)
1270 06aa 0E94 0000 call lcdWriteString
1271 .LM237:
1272 06ae 88E6 ldi r24,lo8(104)
1273 06b0 8093 0000 sts servoMotorLeft,r24
1274 .LM238:
1275 06b4 86E8 ldi r24,lo8(-122)
1276 06b6 8093 0000 sts servoMotorRight,r24
1277 .LM239:
1278 06ba 83E4 ldi r24,lo8(67)
1279 06bc 8093 0000 sts servoPing,r24
1280 .LM240:
1281 06c0 1092 0000 sts regulatorMode,__zero_reg__
1282 06c4 00C0 rjmp .L260
1283 .L174:
1284 .LM241:
1285 06c6 80E0 ldi r24,lo8(0)
1286 06c8 0E94 0000 call lcdSetPos
1287 .LM242:
1288 06cc 80E0 ldi r24,lo8(.LC38)
1289 06ce 90E0 ldi r25,hi8(.LC38)
1290 06d0 0E94 0000 call lcdWriteString
1291 .LM243:
1292 06d4 86E8 ldi r24,lo8(-122)
1293 06d6 8093 0000 sts servoMotorLeft,r24
1294 .LM244:
1295 06da 88E6 ldi r24,lo8(104)
1296 06dc 8093 0000 sts servoMotorRight,r24
1297 .LM245:
1298 06e0 80ED ldi r24,lo8(-48)
1299 06e2 8093 0000 sts servoPing,r24
1300 .LM246:
1301 06e6 81E0 ldi r24,lo8(1)
1302 06e8 8093 0000 sts regulatorMode,r24
1303 .L260:
1304 .LM247:
1305 06ec 82E3 ldi r24,lo8(50)
1306 06ee 00C0 rjmp .L280
1307 .L135:
1308 .LM248:
1309 06f0 87E7 ldi r24,lo8(119)
1310 06f2 8093 0000 sts servoMotorLeft,r24
1311 .LM249:
1312 06f6 8093 0000 sts servoMotorRight,r24
1313 .LM250:
1314 06fa 8AE0 ldi r24,lo8(10)
1315 06fc 8093 0000 sts progTimer,r24
1316 .LM251:
1317 0700 82E0 ldi r24,lo8(2)
1318 0702 8093 0000 sts regulatorTimer,r24
1319 0706 00C0 rjmp .L273
1320 .L136:
1321 .LM252:
1322 0708 80E0 ldi r24,lo8(0)
1323 070a 0E94 0000 call lcdSetPos
1324 .LM253:
1325 070e 80E0 ldi r24,lo8(.LC32)
1326 0710 90E0 ldi r25,hi8(.LC32)
1327 0712 0E94 0000 call lcdWriteString
1328 .LM254:
1329 0716 86E8 ldi r24,lo8(-122)
1330 0718 8093 0000 sts servoMotorLeft,r24
1331 .LM255:
1332 071c 8093 0000 sts servoMotorRight,r24
1333 .LM256:
1334 0720 84E1 ldi r24,lo8(20)
1335 .L280:
1336 0722 8093 0000 sts progTimer,r24
1337 0726 00C0 rjmp .L272
1338 .L137:
1339 .LM257:
1340 0728 8FE7 ldi r24,lo8(127)
1341 072a 8093 0000 sts servoMotorLeft,r24
1342 .LM258:
1343 072e 8093 0000 sts servoMotorRight,r24
1344 .LM259:
1345 0732 8AE0 ldi r24,lo8(10)
1346 0734 8093 0000 sts progTimer,r24
1347 .L273:
1348 .LM260:
1349 0738 81E1 ldi r24,lo8(17)
1350 073a 00C0 rjmp .L266
1351 .L138:
1352 .LM261:
1353 073c 0E94 0000 call pingSendPing
1354 .LM262:
1355 0740 83E0 ldi r24,lo8(3)
1356 0742 8093 0000 sts progTimer,r24
1357 .LM263:
1358 0746 0E94 0000 call pingGetReady
1359 074a 8823 tst r24
1360 074c 01F4 brne .+2
1361 074e 00C0 rjmp .L120
1362 .LM264:
1363 0750 0E94 0000 call pingGetDistance
1364 0754 9093 0000 sts (tempDistance)+1,r25
1365 0758 8093 0000 sts tempDistance,r24
1366 .L283:
1367 .LM265:
1368 075c 81E0 ldi r24,lo8(1)
1369 075e 00C0 rjmp .L280
1370 .L139:
1371 .LM266:
1372 0760 8091 0000 lds r24,regulatorCounter
1373 0764 8F5F subi r24,lo8(-(1))
1374 0766 8093 0000 sts regulatorCounter,r24
1375 076a 9091 0000 lds r25,regulatorTimer
1376 076e 8917 cp r24,r25
1377 0770 00F0 brlo .L178
1378 .LM267:
1379 0772 83E1 ldi r24,lo8(19)
1380 0774 8093 0000 sts progPosition,r24
1381 .LM268:
1382 0778 81E0 ldi r24,lo8(1)
1383 077a 8093 0000 sts progTimer,r24
1384 .LM269:
1385 077e 1092 0000 sts regulatorCounter,__zero_reg__
1386 0782 00C0 rjmp .L120
1387 .L178:
1388 .LBB3:
1389 .LM270:
1390 0784 8091 0000 lds r24,regulatorMode
1391 0788 8823 tst r24
1392 078a 01F0 breq .+2
1393 078c 00C0 rjmp .L180
1394 .LM271:
1395 078e 0E94 0000 call lcdSetPos
1396 .LM272:
1397 0792 80E0 ldi r24,lo8(.LC39)
1398 0794 90E0 ldi r25,hi8(.LC39)
1399 0796 0E94 0000 call lcdWriteString
1400 .LM273:
1401 079a 2091 0000 lds r18,tempDistance
1402 079e 3091 0000 lds r19,(tempDistance)+1
1403 07a2 87E1 ldi r24,hi8(6001)
1404 07a4 2137 cpi r18,lo8(6001)
1405 07a6 3807 cpc r19,r24
1406 07a8 00F0 brlo .L182
1407 .LM274:
1408 07aa 42E0 ldi r20,lo8(2)
1409 07ac 63E0 ldi r22,lo8(3)
1410 07ae C901 movw r24,r18
1411 07b0 8057 subi r24,lo8(-(-6000))
1412 07b2 9741 sbci r25,hi8(-(-6000))
1413 07b4 00C0 rjmp .L261
1414 .L182:
1415 .LM275:
1416 07b6 42E0 ldi r20,lo8(2)
1417 07b8 62E0 ldi r22,lo8(2)
1418 07ba 80E7 ldi r24,lo8(6000)
1419 07bc 97E1 ldi r25,hi8(6000)
1420 07be 821B sub r24,r18
1421 07c0 930B sbc r25,r19
1422 .L261:
1423 07c2 0E94 0000 call showDistanceOnLCD
1424 .LM276:
1425 07c6 6091 0000 lds r22,tempDistance
1426 07ca 7091 0000 lds r23,(tempDistance)+1
1427 07ce 8091 0000 lds r24,tempLastDistanceToWall
1428 07d2 9091 0000 lds r25,(tempLastDistanceToWall)+1
1429 07d6 6817 cp r22,r24
1430 07d8 7907 cpc r23,r25
1431 07da 00F4 brsh .L185
1432 07dc 23E1 ldi r18,hi8(5000)
1433 07de 6838 cpi r22,lo8(5000)
1434 07e0 7207 cpc r23,r18
1435 07e2 00F4 brsh .L187
1436 .LM277:
1437 07e4 88E6 ldi r24,lo8(104)
1438 07e6 8093 0000 sts servoMotorLeft,r24
1439 .LM278:
1440 07ea 86E8 ldi r24,lo8(-122)
1441 07ec 00C0 rjmp .L277
1442 .L187:
1443 .LM279:
1444 07ee 6656 subi r22,lo8(5990)
1445 07f0 7741 sbci r23,hi8(5990)
1446 07f2 00F0 brlo .+2
1447 07f4 00C0 rjmp .L206
1448 07f6 00C0 rjmp .L278
1449 .L185:
1450 .LM280:
1451 07f8 8617 cp r24,r22
1452 07fa 9707 cpc r25,r23
1453 07fc 00F0 brlo .+2
1454 07fe 00C0 rjmp .L206
1455 0800 8BE1 ldi r24,hi8(7001)
1456 0802 6935 cpi r22,lo8(7001)
1457 0804 7807 cpc r23,r24
1458 0806 00F0 brlo .L193
1459 .LM281:
1460 0808 86E8 ldi r24,lo8(-122)
1461 080a 8093 0000 sts servoMotorLeft,r24
1462 .LM282:
1463 080e 88E6 ldi r24,lo8(104)
1464 0810 00C0 rjmp .L276
1465 .L193:
1466 .LM283:
1467 0812 6B57 subi r22,lo8(6011)
1468 0814 7741 sbci r23,hi8(6011)
1469 0816 00F4 brsh .+2
1470 0818 00C0 rjmp .L206
1471 081a 00C0 rjmp .L279
1472 .L180:
1473 .LM284:
1474 081c 8130 cpi r24,lo8(1)
1475 081e 01F0 breq .+2
1476 0820 00C0 rjmp .L189
1477 .LM285:
1478 0822 80E0 ldi r24,lo8(0)
1479 0824 0E94 0000 call lcdSetPos
1480 .LM286:
1481 0828 80E0 ldi r24,lo8(.LC40)
1482 082a 90E0 ldi r25,hi8(.LC40)
1483 082c 0E94 0000 call lcdWriteString
1484 .LM287:
1485 0830 2091 0000 lds r18,tempDistance
1486 0834 3091 0000 lds r19,(tempDistance)+1
1487 0838 47E1 ldi r20,hi8(6001)
1488 083a 2137 cpi r18,lo8(6001)
1489 083c 3407 cpc r19,r20
1490 083e 00F0 brlo .L199
1491 .LM288:
1492 0840 42E0 ldi r20,lo8(2)
1493 0842 62E0 ldi r22,lo8(2)
1494 0844 C901 movw r24,r18
1495 0846 8057 subi r24,lo8(-(-6000))
1496 0848 9741 sbci r25,hi8(-(-6000))
1497 084a 00C0 rjmp .L262
1498 .L199:
1499 .LM289:
1500 084c 42E0 ldi r20,lo8(2)
1501 084e 63E0 ldi r22,lo8(3)
1502 0850 80E7 ldi r24,lo8(6000)
1503 0852 97E1 ldi r25,hi8(6000)
1504 0854 821B sub r24,r18
1505 0856 930B sbc r25,r19
1506 .L262:
1507 0858 0E94 0000 call showDistanceOnLCD
1508 .LM290:
1509 085c 6091 0000 lds r22,tempDistance
1510 0860 7091 0000 lds r23,(tempDistance)+1
1511 0864 8091 0000 lds r24,tempLastDistanceToWall
1512 0868 9091 0000 lds r25,(tempLastDistanceToWall)+1
1513 086c 6817 cp r22,r24
1514 086e 7907 cpc r23,r25
1515 0870 00F4 brsh .L202
1516 0872 83E1 ldi r24,hi8(5000)
1517 0874 6838 cpi r22,lo8(5000)
1518 0876 7807 cpc r23,r24
1519 0878 00F4 brsh .L204
1520 .LM291:
1521 087a 86E8 ldi r24,lo8(-122)
1522 087c 8093 0000 sts servoMotorLeft,r24
1523 .LM292:
1524 0880 88E6 ldi r24,lo8(104)
1525 .L277:
1526 0882 8093 0000 sts servoMotorRight,r24
1527 0886 00C0 rjmp .L211
1528 .L204:
1529 .LM293:
1530 0888 6656 subi r22,lo8(5990)
1531 088a 7741 sbci r23,hi8(5990)
1532 088c 00F4 brsh .L206
1533 .L279:
1534 .LM294:
1535 088e 86E8 ldi r24,lo8(-122)
1536 0890 8093 0000 sts servoMotorLeft,r24
1537 .LM295:
1538 0894 88E6 ldi r24,lo8(104)
1539 0896 00C0 rjmp .L271
1540 .L202:
1541 .LM296:
1542 0898 8617 cp r24,r22
1543 089a 9707 cpc r25,r23
1544 089c 00F4 brsh .L206
1545 089e 4BE1 ldi r20,hi8(7001)
1546 08a0 6935 cpi r22,lo8(7001)
1547 08a2 7407 cpc r23,r20
1548 08a4 00F0 brlo .L209
1549 .LM297:
1550 08a6 88E6 ldi r24,lo8(104)
1551 08a8 8093 0000 sts servoMotorLeft,r24
1552 .LM298:
1553 08ac 86E8 ldi r24,lo8(-122)
1554 .L276:
1555 08ae 8093 0000 sts servoMotorRight,r24
1556 .LM299:
1557 08b2 80E0 ldi r24,lo8(0)
1558 08b4 90E0 ldi r25,hi8(0)
1559 08b6 6057 subi r22,lo8(-(-6000))
1560 08b8 7741 sbci r23,hi8(-(-6000))
1561 08ba 8040 sbci r24,hlo8(-(-6000))
1562 08bc 9040 sbci r25,hhi8(-(-6000))
1563 08be 28E2 ldi r18,lo8(40)
1564 08c0 30E0 ldi r19,hi8(40)
1565 08c2 40E0 ldi r20,hlo8(40)
1566 08c4 50E0 ldi r21,hhi8(40)
1567 08c6 0E94 0000 call __udivmodsi4
1568 .LM300:
1569 08ca 2F30 cpi r18,lo8(15)
1570 08cc 00F4 brsh .L211
1571 .LM301:
1572 08ce 2093 0000 sts progTimer,r18
1573 08d2 00C0 rjmp .L189
1574 .L211:
1575 .LM302:
1576 08d4 8FE0 ldi r24,lo8(15)
1577 08d6 00C0 rjmp .L263
1578 .L209:
1579 .LM303:
1580 08d8 6B57 subi r22,lo8(6011)
1581 08da 7741 sbci r23,hi8(6011)
1582 08dc 00F0 brlo .L206
1583 .L278:
1584 .LM304:
1585 08de 88E6 ldi r24,lo8(104)
1586 08e0 8093 0000 sts servoMotorLeft,r24
1587 .LM305:
1588 08e4 86E8 ldi r24,lo8(-122)
1589 .L271:
1590 08e6 8093 0000 sts servoMotorRight,r24
1591 .LM306:
1592 08ea 85E0 ldi r24,lo8(5)
1593 08ec 00C0 rjmp .L263
1594 .L206:
1595 .LM307:
1596 08ee 8FE7 ldi r24,lo8(127)
1597 08f0 8093 0000 sts servoMotorLeft,r24
1598 .LM308:
1599 08f4 8093 0000 sts servoMotorRight,r24
1600 .LM309:
1601 08f8 84E0 ldi r24,lo8(4)
1602 .L263:
1603 08fa 8093 0000 sts progTimer,r24
1604 .L189:
1605 .LM310:
1606 08fe 8091 0000 lds r24,tempDistance
1607 0902 9091 0000 lds r25,(tempDistance)+1
1608 0906 9093 0000 sts (tempLastDistanceToWall)+1,r25
1609 090a 8093 0000 sts tempLastDistanceToWall,r24
1610 .LM311:
1611 090e 8091 0000 lds r24,progPosition
1612 .LM312:
1613 0912 8250 subi r24,lo8(-(-2))
1614 0914 00C0 rjmp .L266
1615 .L140:
1616 .LBE3:
1617 .LM313:
1618 0916 8CE8 ldi r24,lo8(-116)
1619 0918 8093 0000 sts servoPing,r24
1620 .LM314:
1621 091c 87E7 ldi r24,lo8(119)
1622 091e 8093 0000 sts servoMotorLeft,r24
1623 .LM315:
1624 0922 8093 0000 sts servoMotorRight,r24
1625 .LM316:
1626 0926 83E2 ldi r24,lo8(35)
1627 0928 8093 0000 sts progTimer,r24
1628 .LM317:
1629 092c 84E1 ldi r24,lo8(20)
1630 092e 00C0 rjmp .L266
1631 .L141:
1632 .LM318:
1633 0930 83E0 ldi r24,lo8(3)
1634 0932 8093 0000 sts progTimer,r24
1635 .LM319:
1636 0936 0E94 0000 call pingSendPing
1637 .LM320:
1638 093a 0E94 0000 call pingGetReady
1639 093e 8823 tst r24
1640 0940 01F0 breq .L120
1641 .LM321:
1642 0942 0E94 0000 call pingGetDistance
1643 0946 9093 0000 sts (tempDistance)+1,r25
1644 094a 8093 0000 sts tempDistance,r24
1645 .LM322:
1646 094e 27E1 ldi r18,hi8(6000)
1647 0950 8037 cpi r24,lo8(6000)
1648 0952 9207 cpc r25,r18
1649 0954 00F4 brsh .L215
1650 .LM323:
1651 0956 41E0 ldi r20,lo8(1)
1652 0958 60E0 ldi r22,lo8(0)
1653 095a 80E0 ldi r24,lo8(0)
1654 095c 90E0 ldi r25,hi8(0)
1655 095e 0E94 0000 call showDistanceOnLCD
1656 .LM324:
1657 0962 82E0 ldi r24,lo8(2)
1658 0964 00C0 rjmp .L266
1659 .L215:
1660 0966 9C01 movw r18,r24
1661 0968 2057 subi r18,lo8(-(-6000))
1662 096a 3741 sbci r19,hi8(-(-6000))
1663 .LM325:
1664 096c 805E subi r24,lo8(12000)
1665 096e 9E42 sbci r25,hi8(12000)
1666 0970 00F4 brsh .L217
1667 .LM326:
1668 0972 41E0 ldi r20,lo8(1)
1669 0974 60E0 ldi r22,lo8(0)
1670 0976 C901 movw r24,r18
1671 0978 0E94 0000 call showDistanceOnLCD
1672 .LM327:
1673 097c 82E0 ldi r24,lo8(2)
1674 097e 00C0 rjmp .L281
1675 .L217:
1676 .LM328:
1677 0980 41E0 ldi r20,lo8(1)
1678 0982 60E0 ldi r22,lo8(0)
1679 0984 C901 movw r24,r18
1680 0986 0E94 0000 call showDistanceOnLCD
1681 .LM329:
1682 098a 8AE0 ldi r24,lo8(10)
1683 .L281:
1684 098c 8093 0000 sts regulatorTimer,r24
1685 .L272:
1686 .LM330:
1687 0990 8091 0000 lds r24,progPosition
1688 0994 8F5F subi r24,lo8(-(1))
1689 0996 00C0 rjmp .L266
1690 .L142:
1691 .LM331:
1692 0998 8091 0000 lds r24,regulatorMode
1693 099c 8823 tst r24
1694 099e 01F4 brne .L219
1695 .LM332:
1696 09a0 83E4 ldi r24,lo8(67)
1697 09a2 00C0 rjmp .L265
1698 .L219:
1699 .LM333:
1700 09a4 80ED ldi r24,lo8(-48)
1701 .L265:
1702 09a6 8093 0000 sts servoPing,r24
1703 .LM334:
1704 09aa 85E0 ldi r24,lo8(5)
1705 09ac 8093 0000 sts progTimer,r24
1706 .LM335:
1707 09b0 8FE0 ldi r24,lo8(15)
1708 .L266:
1709 09b2 8093 0000 sts progPosition,r24
1710 .L120:
1711 .LM336:
1712 09b6 1092 0000 sts progCounter,__zero_reg__
1713 .L117:
1714 .LM337:
1715 09ba 2091 0000 lds r18,roboActive
1716 09be 2230 cpi r18,lo8(2)
1717 09c0 01F0 breq .+2
1718 09c2 00C0 rjmp .L222
1719 .LM338:
1720 09c4 8091 0000 lds r24,progCounter
1721 09c8 8F5F subi r24,lo8(-(1))
1722 09ca 8093 0000 sts progCounter,r24
1723 09ce 9091 0000 lds r25,progTimer
1724 09d2 8917 cp r24,r25
1725 09d4 00F4 brsh .+2
1726 09d6 00C0 rjmp .L222
1727 .LM339:
1728 09d8 8091 0000 lds r24,progPosition
1729 09dc 8430 cpi r24,lo8(4)
1730 09de 01F4 brne .+2
1731 09e0 00C0 rjmp .L230
1732 09e2 8530 cpi r24,lo8(5)
1733 09e4 00F4 brsh .L236
1734 09e6 8130 cpi r24,lo8(1)
1735 09e8 01F0 breq .L227
1736 09ea 8130 cpi r24,lo8(1)
1737 09ec 00F0 brlo .L226
1738 09ee 8230 cpi r24,lo8(2)
1739 09f0 01F0 breq .L228
1740 09f2 8330 cpi r24,lo8(3)
1741 09f4 01F0 breq .+2
1742 09f6 00C0 rjmp .L225
1743 09f8 00C0 rjmp .L229
1744 .L236:
1745 09fa 8730 cpi r24,lo8(7)
1746 09fc 01F4 brne .+2
1747 09fe 00C0 rjmp .L233
1748 0a00 8830 cpi r24,lo8(8)
1749 0a02 00F4 brsh .L237
1750 0a04 8530 cpi r24,lo8(5)
1751 0a06 01F4 brne .+2
1752 0a08 00C0 rjmp .L231
1753 0a0a 8630 cpi r24,lo8(6)
1754 0a0c 01F0 breq .+2
1755 0a0e 00C0 rjmp .L225
1756 0a10 00C0 rjmp .L232
1757 .L237:
1758 0a12 8830 cpi r24,lo8(8)
1759 0a14 01F4 brne .+2
1760 0a16 00C0 rjmp .L234
1761 0a18 8930 cpi r24,lo8(9)
1762 0a1a 01F0 breq .+2
1763 0a1c 00C0 rjmp .L225
1764 0a1e 00C0 rjmp .L235
1765 .L226:
1766 .LM340:
1767 0a20 0E94 0000 call lcdClearDisplay
1768 .LM341:
1769 0a24 81E0 ldi r24,lo8(1)
1770 0a26 0E94 0000 call lcdSetLayout
1771 .LM342:
1772 0a2a 81E0 ldi r24,lo8(1)
1773 0a2c 00C0 rjmp .L267
1774 .L227:
1775 .LM343:
1776 0a2e 80E0 ldi r24,lo8(0)
1777 0a30 0E94 0000 call lcdSetPos
1778 .LM344:
1779 0a34 80E0 ldi r24,lo8(.LC32)
1780 0a36 90E0 ldi r25,hi8(.LC32)
1781 0a38 0E94 0000 call lcdWriteString
1782 .LM345:
1783 0a3c 86E8 ldi r24,lo8(-122)
1784 0a3e 8093 0000 sts servoMotorLeft,r24
1785 .LM346:
1786 0a42 8093 0000 sts servoMotorRight,r24
1787 0a46 00C0 rjmp .L282
1788 .L228:
1789 .LM347:
1790 0a48 8FE7 ldi r24,lo8(127)
1791 0a4a 8093 0000 sts servoMotorLeft,r24
1792 .LM348:
1793 0a4e 8093 0000 sts servoMotorRight,r24
1794 .LM349:
1795 0a52 0E94 0000 call pingSendPing
1796 .LM350:
1797 0a56 83E0 ldi r24,lo8(3)
1798 0a58 8093 0000 sts progTimer,r24
1799 .LM351:
1800 0a5c 0E94 0000 call pingGetReady
1801 0a60 8823 tst r24
1802 0a62 01F4 brne .+2
1803 0a64 00C0 rjmp .L225
1804 .LM352:
1805 0a66 0E94 0000 call pingGetDistance
1806 0a6a 9093 0000 sts (tempDistance)+1,r25
1807 0a6e 8093 0000 sts tempDistance,r24
1808 .LM353:
1809 0a72 25E1 ldi r18,hi8(5500)
1810 0a74 8C37 cpi r24,lo8(5500)
1811 0a76 9207 cpc r25,r18
1812 0a78 00F4 brsh .L239
1813 .LM354:
1814 0a7a 42E0 ldi r20,lo8(2)
1815 0a7c 60E0 ldi r22,lo8(0)
1816 0a7e 80E0 ldi r24,lo8(0)
1817 0a80 90E0 ldi r25,hi8(0)
1818 0a82 0E94 0000 call showDistanceOnLCD
1819 0a86 00C0 rjmp .L275
1820 .L239:
1821 .LM355:
1822 0a88 42E0 ldi r20,lo8(2)
1823 0a8a 60E0 ldi r22,lo8(0)
1824 0a8c 8C57 subi r24,lo8(-(-5500))
1825 0a8e 9541 sbci r25,hi8(-(-5500))
1826 0a90 0E94 0000 call showDistanceOnLCD
1827 0a94 00C0 rjmp .L225
1828 .L229:
1829 .LM356:
1830 0a96 80E0 ldi r24,lo8(0)
1831 0a98 0E94 0000 call lcdSetPos
1832 .LM357:
1833 0a9c 80E0 ldi r24,lo8(.LC33)
1834 0a9e 90E0 ldi r25,hi8(.LC33)
1835 0aa0 0E94 0000 call lcdWriteString
1836 .LM358:
1837 0aa4 8CE6 ldi r24,lo8(108)
1838 0aa6 8093 0000 sts servoMotorLeft,r24
1839 .LM359:
1840 0aaa 8093 0000 sts servoMotorRight,r24
1841 .LM360:
1842 0aae 82E3 ldi r24,lo8(50)
1843 0ab0 00C0 rjmp .L267
1844 .L230:
1845 .LM361:
1846 0ab2 87E7 ldi r24,lo8(119)
1847 0ab4 8093 0000 sts servoMotorLeft,r24
1848 .LM362:
1849 0ab8 8093 0000 sts servoMotorRight,r24
1850 .LM363:
1851 0abc 2093 0000 sts progTimer,r18
1852 .LM364:
1853 0ac0 85E0 ldi r24,lo8(5)
1854 0ac2 00C0 rjmp .L268
1855 .L231:
1856 .LM365:
1857 0ac4 8EEA ldi r24,lo8(-82)
1858 0ac6 8093 0000 sts servoPing,r24
1859 .LM366:
1860 0aca 84E1 ldi r24,lo8(20)
1861 0acc 8093 0000 sts progTimer,r24
1862 .LM367:
1863 0ad0 86E0 ldi r24,lo8(6)
1864 0ad2 00C0 rjmp .L268
1865 .L232:
1866 .LM368:
1867 0ad4 0E94 0000 call pingSendPing
1868 .LM369:
1869 0ad8 84E0 ldi r24,lo8(4)
1870 0ada 8093 0000 sts progTimer,r24
1871 .LM370:
1872 0ade 0E94 0000 call pingGetReady
1873 0ae2 8823 tst r24
1874 0ae4 01F4 brne .+2
1875 0ae6 00C0 rjmp .L225
1876 .LM371:
1877 0ae8 0E94 0000 call pingGetDistance
1878 0aec 9093 0000 sts (tempLeftDistance)+1,r25
1879 0af0 8093 0000 sts tempLeftDistance,r24
1880 .L282:
1881 .LM372:
1882 0af4 84E1 ldi r24,lo8(20)
1883 0af6 00C0 rjmp .L267
1884 .L233:
1885 .LM373:
1886 0af8 87E6 ldi r24,lo8(103)
1887 0afa 8093 0000 sts servoPing,r24
1888 .LM374:
1889 0afe 88E2 ldi r24,lo8(40)
1890 0b00 8093 0000 sts progTimer,r24
1891 .LM375:
1892 0b04 88E0 ldi r24,lo8(8)
1893 0b06 00C0 rjmp .L268
1894 .L234:
1895 .LM376:
1896 0b08 0E94 0000 call pingSendPing
1897 .LM377:
1898 0b0c 84E0 ldi r24,lo8(4)
1899 0b0e 8093 0000 sts progTimer,r24
1900 .LM378:
1901 0b12 0E94 0000 call pingGetReady
1902 0b16 8823 tst r24
1903 0b18 01F4 brne .+2
1904 0b1a 00C0 rjmp .L225
1905 .LM379:
1906 0b1c 0E94 0000 call pingGetDistance
1907 0b20 9C01 movw r18,r24
1908 0b22 9093 0000 sts (tempRightDistance)+1,r25
1909 0b26 8093 0000 sts tempRightDistance,r24
1910 .LM380:
1911 0b2a 8CE8 ldi r24,lo8(-116)
1912 0b2c 8093 0000 sts servoPing,r24
1913 .LM381:
1914 0b30 8091 0000 lds r24,tempLeftDistance
1915 0b34 9091 0000 lds r25,(tempLeftDistance)+1
1916 0b38 45E1 ldi r20,hi8(5500)
1917 0b3a 8C37 cpi r24,lo8(5500)
1918 0b3c 9407 cpc r25,r20
1919 0b3e 00F4 brsh .L243
1920 0b40 45E1 ldi r20,hi8(5500)
1921 0b42 2C37 cpi r18,lo8(5500)
1922 0b44 3407 cpc r19,r20
1923 0b46 00F4 brsh .L243
1924 .LM382:
1925 0b48 80E0 ldi r24,lo8(0)
1926 0b4a 0E94 0000 call lcdSetPos
1927 .LM383:
1928 0b4e 80E0 ldi r24,lo8(.LC41)
1929 0b50 90E0 ldi r25,hi8(.LC41)
1930 0b52 0E94 0000 call lcdWriteString
1931 .LM384:
1932 0b56 88E6 ldi r24,lo8(104)
1933 0b58 8093 0000 sts servoMotorLeft,r24
1934 .LM385:
1935 0b5c 86E8 ldi r24,lo8(-122)
1936 0b5e 8093 0000 sts servoMotorRight,r24
1937 .LM386:
1938 0b62 86E4 ldi r24,lo8(70)
1939 0b64 00C0 rjmp .L267
1940 .L243:
1941 .LM387:
1942 0b66 2817 cp r18,r24
1943 0b68 3907 cpc r19,r25
1944 0b6a 00F4 brsh .L247
1945 .LM388:
1946 0b6c 80E0 ldi r24,lo8(0)
1947 0b6e 0E94 0000 call lcdSetPos
1948 .LM389:
1949 0b72 80E0 ldi r24,lo8(.LC42)
1950 0b74 90E0 ldi r25,hi8(.LC42)
1951 0b76 0E94 0000 call lcdWriteString
1952 .LM390:
1953 0b7a 88E6 ldi r24,lo8(104)
1954 0b7c 8093 0000 sts servoMotorLeft,r24
1955 .LM391:
1956 0b80 86E8 ldi r24,lo8(-122)
1957 0b82 00C0 rjmp .L274
1958 .L247:
1959 .LM392:
1960 0b84 80E0 ldi r24,lo8(0)
1961 0b86 0E94 0000 call lcdSetPos
1962 .LM393:
1963 0b8a 80E0 ldi r24,lo8(.LC43)
1964 0b8c 90E0 ldi r25,hi8(.LC43)
1965 0b8e 0E94 0000 call lcdWriteString
1966 .LM394:
1967 0b92 86E8 ldi r24,lo8(-122)
1968 0b94 8093 0000 sts servoMotorLeft,r24
1969 .LM395:
1970 0b98 88E6 ldi r24,lo8(104)
1971 .L274:
1972 0b9a 8093 0000 sts servoMotorRight,r24
1973 .LM396:
1974 0b9e 88E2 ldi r24,lo8(40)
1975 .L267:
1976 0ba0 8093 0000 sts progTimer,r24
1977 .L275:
1978 .LM397:
1979 0ba4 8091 0000 lds r24,progPosition
1980 0ba8 8F5F subi r24,lo8(-(1))
1981 0baa 00C0 rjmp .L268
1982 .L235:
1983 .LM398:
1984 0bac 87E7 ldi r24,lo8(119)
1985 0bae 8093 0000 sts servoMotorLeft,r24
1986 .LM399:
1987 0bb2 8093 0000 sts servoMotorRight,r24
1988 .LM400:
1989 0bb6 8AE0 ldi r24,lo8(10)
1990 0bb8 8093 0000 sts progTimer,r24
1991 .LM401:
1992 0bbc 81E0 ldi r24,lo8(1)
1993 .L268:
1994 0bbe 8093 0000 sts progPosition,r24
1995 .L225:
1996 .LM402:
1997 0bc2 1092 0000 sts progCounter,__zero_reg__
1998 .L222:
1999 .LM403:
2000 0bc6 8091 0000 lds r24,roboActive
2001 0bca 8330 cpi r24,lo8(3)
2002 0bcc 01F0 breq .+2
2003 0bce 00C0 rjmp .L256
2004 .LM404:
2005 0bd0 8091 0000 lds r24,progCounter
2006 0bd4 8F5F subi r24,lo8(-(1))
2007 0bd6 8093 0000 sts progCounter,r24
2008 0bda 9091 0000 lds r25,progTimer
2009 0bde 8917 cp r24,r25
2010 0be0 00F0 brlo .L256
2011 .LM405:
2012 0be2 8091 0000 lds r24,progPosition
2013 0be6 8823 tst r24
2014 0be8 01F0 breq .L253
2015 0bea 8130 cpi r24,lo8(1)
2016 0bec 01F4 brne .L252
2017 0bee 00C0 rjmp .L254
2018 .L253:
2019 .LM406:
2020 0bf0 0E94 0000 call lcdClearDisplay
2021 .LM407:
2022 0bf4 81E0 ldi r24,lo8(1)
2023 0bf6 0E94 0000 call lcdSetLayout
2024 .LM408:
2025 0bfa 80E0 ldi r24,lo8(0)
2026 0bfc 0E94 0000 call lcdSetPos
2027 .LM409:
2028 0c00 80E0 ldi r24,lo8(.LC44)
2029 0c02 90E0 ldi r25,hi8(.LC44)
2030 0c04 0E94 0000 call lcdWriteString
2031 .LM410:
2032 0c08 80E1 ldi r24,lo8(16)
2033 0c0a 0E94 0000 call lcdSetPos
2034 .LM411:
2035 0c0e 80E0 ldi r24,lo8(.LC45)
2036 0c10 90E0 ldi r25,hi8(.LC45)
2037 0c12 0E94 0000 call lcdWriteString
2038 .LM412:
2039 0c16 81E0 ldi r24,lo8(1)
2040 0c18 8093 0000 sts progTimer,r24
2041 .LM413:
2042 0c1c 8091 0000 lds r24,progPosition
2043 0c20 8F5F subi r24,lo8(-(1))
2044 0c22 8093 0000 sts progPosition,r24
2045 0c26 00C0 rjmp .L252
2046 .L254:
2047 .LM414:
2048 0c28 0E94 0000 call pingSendPing
2049 .LM415:
2050 0c2c 8AE0 ldi r24,lo8(10)
2051 0c2e 8093 0000 sts progTimer,r24
2052 .LM416:
2053 0c32 0E94 0000 call pingGetReady
2054 0c36 8823 tst r24
2055 0c38 01F0 breq .L252
2056 .LM417:
2057 0c3a 0E94 0000 call pingGetDistance
2058 0c3e 9093 0000 sts (tempDistance)+1,r25
2059 0c42 8093 0000 sts tempDistance,r24
2060 .LM418:
2061 0c46 8AE1 ldi r24,lo8(26)
2062 0c48 0E94 0000 call lcdSetPos
2063 .LM419:
2064 0c4c 8091 0000 lds r24,tempDistance
2065 0c50 9091 0000 lds r25,(tempDistance)+1
2066 0c54 0E94 0000 call lcdWriteHexAsDecimal
2067 .L252:
2068 .LM420:
2069 0c58 1092 0000 sts progCounter,__zero_reg__
2070 .L256:
2071 /* epilogue: frame size=0 */
2072 0c5c 1F91 pop r17
2073 0c5e 0895 ret
2074 /* epilogue end (size=2) */
2075 /* function updateProgram size 1177 (1174) */
2076 .LFE19:
2078 .global main
2080 main:
2081 .LFB22:
2082 .LM421:
2083 /* prologue: frame size=0 */
2084 0c60 CF93 push r28
2085 0c62 DF93 push r29
2086 /* prologue end (size=2) */
2087 .LM422:
2088 /* #APP */
2089 0c64 F894 cli
2090 .LM423:
2091 /* #NOAPP */
2092 0c66 0E94 0000 call initIO
2093 .LM424:
2094 0c6a 0E94 0000 call lcdInit
2095 .LM425:
2096 0c6e 0E94 0000 call rfIdInit
2097 .LM426:
2098 0c72 0E94 0000 call roboMSPInit
2099 .LM427:
2100 0c76 0E94 0000 call pingInit
2101 .LM428:
2102 0c7a 82E3 ldi r24,lo8(50)
2103 0c7c 0E94 0000 call lcdSetIntensity
2104 .LM429:
2105 0c80 82E0 ldi r24,lo8(2)
2106 0c82 0E94 0000 call lcdSetLayout
2107 .LM430:
2108 0c86 80E0 ldi r24,lo8(menuTable)
2109 0c88 90E0 ldi r25,hi8(menuTable)
2110 0c8a 0E94 0000 call lcdWriteStringP
2111 .LM431:
2112 0c8e 0E94 0000 call rfIdDisable
2113 .LM432:
2114 0c92 0E94 0000 call roboMSPDisable
2115 .LM433:
2116 /* #APP */
2117 0c96 7894 sei
2118 /* #NOAPP */
2119 0c98 C0E0 ldi r28,lo8(menuTable+196)
2120 0c9a D0E0 ldi r29,hi8(menuTable+196)
2121 .L313:
2122 .LM434:
2123 0c9c 8091 0000 lds r24,progDoUpdate
2124 0ca0 8823 tst r24
2125 0ca2 01F0 breq .L286
2126 .LM435:
2127 0ca4 1092 0000 sts progDoUpdate,__zero_reg__
2128 .LM436:
2129 0ca8 0E94 0000 call updateProgram
2130 .L286:
2131 .LM437:
2132 0cac CC99 sbic 57-0x20,4
2133 0cae 00C0 rjmp .L288
2134 .LM438:
2135 0cb0 8091 0000 lds r24,switchOneCheck
2136 0cb4 8823 tst r24
2137 0cb6 01F0 breq .L290
2138 .LM439:
2139 0cb8 83E0 ldi r24,lo8(3)
2140 0cba 0E94 0000 call activateRobot
2141 0cbe 00C0 rjmp .L312
2142 .L288:
2143 .LM440:
2144 0cc0 CD9B sbis 57-0x20,5
2145 0cc2 00C0 rjmp .L292
2146 0cc4 CC9B sbis 57-0x20,4
2147 0cc6 00C0 rjmp .L292
2148 .LM441:
2149 0cc8 8091 0000 lds r24,switchOneCheck
2150 0ccc 8823 tst r24
2151 0cce 01F4 brne .L290
2152 .LM442:
2153 0cd0 0E94 0000 call deactivateRobot
2154 .LM443:
2155 0cd4 1092 0000 sts rfEnable,__zero_reg__
2156 .LM444:
2157 0cd8 81E0 ldi r24,lo8(1)
2158 0cda 8093 0000 sts switchOneCheck,r24
2159 .LM445:
2160 0cde 0E94 0000 call main
2161 0ce2 00C0 rjmp .L290
2162 .L292:
2163 .LM446:
2164 0ce4 CD99 sbic 57-0x20,5
2165 0ce6 00C0 rjmp .L290
2166 .LM447:
2167 0ce8 8091 0000 lds r24,switchOneCheck
2168 0cec 8823 tst r24
2169 0cee 01F0 breq .L290
2170 .LM448:
2171 0cf0 80E0 ldi r24,lo8(0)
2172 0cf2 0E94 0000 call lcdSetLayout
2173 .LM449:
2174 0cf6 CE01 movw r24,r28
2175 0cf8 0E94 0000 call lcdWriteStringP
2176 .LM450:
2177 0cfc 81E0 ldi r24,lo8(1)
2178 0cfe 8093 0000 sts rfEnable,r24
2179 .LM451:
2180 0d02 0E94 0000 call rfIdEnable
2181 .LM452:
2182 0d06 0E94 0000 call roboMSPEnable
2183 .L312:
2184 .LM453:
2185 0d0a 1092 0000 sts switchOneCheck,__zero_reg__
2186 .L290:
2187 .LM454:
2188 0d0e CE99 sbic 57-0x20,6
2189 0d10 00C0 rjmp .L298
2190 .LM455:
2191 0d12 8091 0000 lds r24,switchTwoCheck
2192 0d16 8823 tst r24
2193 0d18 01F0 breq .L313
2194 .LM456:
2195 0d1a 81E0 ldi r24,lo8(1)
2196 0d1c 00C0 rjmp .L311
2197 .L298:
2198 .LM457:
2199 0d1e CF9B sbis 57-0x20,7
2200 0d20 00C0 rjmp .L301
2201 0d22 CE9B sbis 57-0x20,6
2202 0d24 00C0 rjmp .L301
2203 .LM458:
2204 0d26 8091 0000 lds r24,switchTwoCheck
2205 0d2a 8823 tst r24
2206 0d2c 01F0 breq .+2
2207 0d2e 00C0 rjmp .L313
2208 .LM459:
2209 0d30 0E94 0000 call deactivateRobot
2210 .LM460:
2211 0d34 1092 0000 sts rfEnable,__zero_reg__
2212 .LM461:
2213 0d38 81E0 ldi r24,lo8(1)
2214 0d3a 8093 0000 sts switchTwoCheck,r24
2215 .LM462:
2216 0d3e 0E94 0000 call main
2217 0d42 00C0 rjmp .L313
2218 .L301:
2219 .LM463:
2220 0d44 CF99 sbic 57-0x20,7
2221 0d46 00C0 rjmp .L313
2222 .LM464:
2223 0d48 8091 0000 lds r24,switchTwoCheck
2224 0d4c 8823 tst r24
2225 0d4e 01F4 brne .+2
2226 0d50 00C0 rjmp .L313
2227 .LM465:
2228 0d52 82E0 ldi r24,lo8(2)
2229 .L311:
2230 0d54 0E94 0000 call activateRobot
2231 .LM466:
2232 0d58 1092 0000 sts switchTwoCheck,__zero_reg__
2233 0d5c 00C0 rjmp .L313
2234 /* epilogue: frame size=0 */
2235 /* epilogue: noreturn */
2236 /* epilogue end (size=0) */
2237 /* function main size 129 (127) */
2238 .LFE22:
2240 .global servoPing
2241 .data
2244 servoPing:
2245 0303 8C .byte -116
2246 .global servoMotorLeft
2249 servoMotorLeft:
2250 0304 77 .byte 119
2251 .global servoMotorRight
2254 servoMotorRight:
2255 0305 77 .byte 119
2256 .global servoCounter
2257 .global servoCounter
2258 .section .bss
2261 servoCounter:
2262 0000 00 .skip 1,0
2263 .global servoMotorLeftReg
2264 .data
2267 servoMotorLeftReg:
2268 0306 77 .byte 119
2269 .global servoMotorRightReg
2272 servoMotorRightReg:
2273 0307 77 .byte 119
2274 .global progCounterPing
2275 .global progCounterPing
2276 .section .bss
2279 progCounterPing:
2280 0001 00 .skip 1,0
2281 .global progCounterPPM
2282 .global progCounterPPM
2285 progCounterPPM:
2286 0002 00 .skip 1,0
2287 .global progCounter
2288 .global progCounter
2291 progCounter:
2292 0003 00 .skip 1,0
2293 .global progTimer
2294 .global progTimer
2297 progTimer:
2298 0004 00 .skip 1,0
2299 .global progPosition
2300 .global progPosition
2303 progPosition:
2304 0005 00 .skip 1,0
2305 .global progDoUpdate
2306 .global progDoUpdate
2309 progDoUpdate:
2310 0006 00 .skip 1,0
2311 .global tempDistance
2312 .global tempDistance
2315 tempDistance:
2316 0007 0000 .skip 2,0
2317 .global tempDistanceToWall
2318 .global tempDistanceToWall
2321 tempDistanceToWall:
2322 0009 0000 .skip 2,0
2323 .global tempLastDistanceToWall
2324 .global tempLastDistanceToWall
2327 tempLastDistanceToWall:
2328 000b 0000 .skip 2,0
2329 .global tempLeftDistance
2330 .global tempLeftDistance
2333 tempLeftDistance:
2334 000d 0000 .skip 2,0
2335 .global tempRightDistance
2336 .global tempRightDistance
2339 tempRightDistance:
2340 000f 0000 .skip 2,0
2341 .global roboActive
2342 .global roboActive
2345 roboActive:
2346 0011 00 .skip 1,0
2347 .global rfEnable
2348 .global rfEnable
2351 rfEnable:
2352 0012 00 .skip 1,0
2353 .global switchOneCheck
2354 .global switchOneCheck
2357 switchOneCheck:
2358 0013 00 .skip 1,0
2359 .global switchTwoCheck
2360 .global switchTwoCheck
2363 switchTwoCheck:
2364 0014 00 .skip 1,0
2365 .global regulatorMode
2366 .global regulatorMode
2369 regulatorMode:
2370 0015 00 .skip 1,0
2371 .global regulatorTimer
2372 .global regulatorTimer
2375 regulatorTimer:
2376 0016 00 .skip 1,0
2377 .global regulatorCounter
2378 .global regulatorCounter
2381 regulatorCounter:
2382 0017 00 .skip 1,0
2383 .global regulatorMeasureCounter
2384 .global regulatorMeasureCounter
2387 regulatorMeasureCounter:
2388 0018 00 .skip 1,0
2389 .global menuTable
2390 .section .progmem.data,"a",@progbits
2393 menuTable:
2394 0000 2020 2020 .string " CMtec roboCrawler v1.1 "
2394 2043 4D74
2394 6563 2020
2394 2020 2020
2394 726F 626F
2395 0031 2020 2020 .string " mode 1: Follow wall at a distance(1m) "
2395 206D 6F64
2395 6520 313A
2395 2020 2020
2395 2046 6F6C
2396 0062 2020 2020 .string " mode 2: Drive and void any walls "
2396 206D 6F64
2396 6520 323A
2396 2020 2020
2396 2044 7269
2397 0093 2020 2020 .string " mode 3: Measure distance forward "
2397 206D 6F64
2397 6520 333A
2397 2020 2020
2397 4D65 6173
2398 00c4 2020 2020 .string " mode RF: RF actived and waiting for com."
2398 6D6F 6465
2398 2052 463A
2398 2020 2020
2398 2052 4620
2487 .Letext0:
DEFINED SYMBOLS
*ABS*:00000000 RoboMI.c
/tmp/ccgaOObN.s:2 *ABS*:0000003f __SREG__
/tmp/ccgaOObN.s:3 *ABS*:0000003e __SP_H__
/tmp/ccgaOObN.s:4 *ABS*:0000003d __SP_L__
/tmp/ccgaOObN.s:5 *ABS*:00000000 __tmp_reg__
/tmp/ccgaOObN.s:6 *ABS*:00000001 __zero_reg__
/tmp/ccgaOObN.s:19 .text:00000000 initIO
/tmp/ccgaOObN.s:2303 .bss:00000005 progPosition
/tmp/ccgaOObN.s:62 .text:0000002e __vector_15
/tmp/ccgaOObN.s:2285 .bss:00000002 progCounterPPM
/tmp/ccgaOObN.s:2261 .bss:00000000 servoCounter
/tmp/ccgaOObN.s:2309 .bss:00000006 progDoUpdate
/tmp/ccgaOObN.s:114 .text:00000076 __vector_11
/tmp/ccgaOObN.s:2244 .data:00000303 servoPing
/tmp/ccgaOObN.s:2249 .data:00000304 servoMotorLeft
/tmp/ccgaOObN.s:2254 .data:00000305 servoMotorRight
/tmp/ccgaOObN.s:211 .text:000000e6 activateRobot
/tmp/ccgaOObN.s:2393 .progmem.data:00000000 menuTable
/tmp/ccgaOObN.s:2297 .bss:00000004 progTimer
/tmp/ccgaOObN.s:2345 .bss:00000011 roboActive
/tmp/ccgaOObN.s:245 .text:0000010e deactivateRobot
/tmp/ccgaOObN.s:336 .text:00000128 showDistanceOnLCD
/tmp/ccgaOObN.s:705 .text:00000306 checkCommunication
/tmp/ccgaOObN.s:807 .text:00000366 updateProgram
/tmp/ccgaOObN.s:2351 .bss:00000012 rfEnable
/tmp/ccgaOObN.s:2291 .bss:00000003 progCounter
/tmp/ccgaOObN.s:2315 .bss:00000007 tempDistance
/tmp/ccgaOObN.s:2387 .bss:00000018 regulatorMeasureCounter
/tmp/ccgaOObN.s:2333 .bss:0000000d tempLeftDistance
/tmp/ccgaOObN.s:2339 .bss:0000000f tempRightDistance
/tmp/ccgaOObN.s:2369 .bss:00000015 regulatorMode
/tmp/ccgaOObN.s:2327 .bss:0000000b tempLastDistanceToWall
/tmp/ccgaOObN.s:2321 .bss:00000009 tempDistanceToWall
/tmp/ccgaOObN.s:2375 .bss:00000016 regulatorTimer
/tmp/ccgaOObN.s:2381 .bss:00000017 regulatorCounter
/tmp/ccgaOObN.s:2080 .text:00000c60 main
/tmp/ccgaOObN.s:2357 .bss:00000013 switchOneCheck
/tmp/ccgaOObN.s:2363 .bss:00000014 switchTwoCheck
/tmp/ccgaOObN.s:2267 .data:00000306 servoMotorLeftReg
/tmp/ccgaOObN.s:2272 .data:00000307 servoMotorRightReg
/tmp/ccgaOObN.s:2279 .bss:00000001 progCounterPing
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
lcdSetLayout
lcdWriteStringP
rfIdDisable
lcdSetPos
lcdWriteString
rfIdGetTagPresent
rfIdGetTag
roboMSPSetData
roboMSPGetActiveStatus
rfIdEnable
rfIdClearBuffer
lcdClearDisplay
pingSendPing
pingGetReady
pingGetDistance
__udivmodsi4
lcdWriteHexAsDecimal
lcdInit
rfIdInit
roboMSPInit
pingInit
lcdSetIntensity
roboMSPDisable
roboMSPEnable