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