From d136064b947f259c4f370049765ea93165dd39db Mon Sep 17 00:00:00 2001 From: stijn Date: Tue, 6 Apr 2021 15:05:44 +0200 Subject: [PATCH] [add] comments --- .../.vs/Microcontrollers/v14/.atsuo | Bin 90624 -> 90624 bytes .../Eindopdracht/Debug/Eindopdracht.elf | Bin 26876 -> 25784 bytes .../Eindopdracht/Debug/Eindopdracht.hex | 349 +-- .../Eindopdracht/Debug/Eindopdracht.lss | 2789 ++++++++--------- .../Eindopdracht/Debug/Eindopdracht.map | 298 +- .../Eindopdracht/Debug/Eindopdracht.srec | 349 +-- .../Eindopdracht/Debug/lcd_control.o | Bin 15920 -> 16044 bytes Microcontrollers/Eindopdracht/Debug/main.o | Bin 9312 -> 8928 bytes .../Eindopdracht/Debug/stepper_driver.o | Bin 8668 -> 8668 bytes .../Eindopdracht/Debug/ultrasonic_sensor.o | Bin 8876 -> 8912 bytes Microcontrollers/Eindopdracht/lcd_control.c | 4 +- Microcontrollers/Eindopdracht/lcd_control.h | 27 +- Microcontrollers/Eindopdracht/main.c | 33 +- .../Eindopdracht/stepper_driver.c | 39 +- .../Eindopdracht/stepper_driver.h | 15 +- .../Eindopdracht/ultrasonic_sensor.h | 16 + 16 files changed, 1784 insertions(+), 2135 deletions(-) diff --git a/Microcontrollers/.vs/Microcontrollers/v14/.atsuo b/Microcontrollers/.vs/Microcontrollers/v14/.atsuo index 198983114197c9fc456a335dbd7883b98976e76d..7659c34a36b9314d38258daef59da601ceebddae 100644 GIT binary patch delta 1886 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 twR66{wY}20p^5gyN9(uJN8A_ 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 a: 00 00 nop - c: 63 c1 rjmp .+710 ; 0x2d4 <__vector_3> + c: 45 c1 rjmp .+650 ; 0x298 <__vector_3> e: 00 00 nop 10: 5a c0 rjmp .+180 ; 0xc6 <__bad_interrupt> 12: 00 00 nop @@ -51,7 +51,7 @@ Disassembly of section .text: 1e: 00 00 nop 20: 52 c0 rjmp .+164 ; 0xc6 <__bad_interrupt> 22: 00 00 nop - 24: bf c1 rjmp .+894 ; 0x3a4 <__vector_9> + 24: 92 c1 rjmp .+804 ; 0x34a <__vector_9> 26: 00 00 nop 28: 4e c0 rjmp .+156 ; 0xc6 <__bad_interrupt> 2a: 00 00 nop @@ -116,20 +116,20 @@ Disassembly of section .text: 98: 11 e0 ldi r17, 0x01 ; 1 9a: a0 e0 ldi r26, 0x00 ; 0 9c: b1 e0 ldi r27, 0x01 ; 1 - 9e: e2 e3 ldi r30, 0x32 ; 50 - a0: fd e0 ldi r31, 0x0D ; 13 + 9e: ec ee ldi r30, 0xEC ; 236 + a0: fa e0 ldi r31, 0x0A ; 10 a2: 00 e0 ldi r16, 0x00 ; 0 a4: 0b bf out 0x3b, r16 ; 59 a6: 02 c0 rjmp .+4 ; 0xac <__do_copy_data+0x14> a8: 07 90 elpm r0, Z+ aa: 0d 92 st X+, r0 - ac: a0 33 cpi r26, 0x30 ; 48 + ac: a2 32 cpi r26, 0x22 ; 34 ae: b1 07 cpc r27, r17 b0: d9 f7 brne .-10 ; 0xa8 <__do_copy_data+0x10> 000000b2 <__do_clear_bss>: b2: 21 e0 ldi r18, 0x01 ; 1 - b4: a0 e3 ldi r26, 0x30 ; 48 + b4: a2 e2 ldi r26, 0x22 ; 34 b6: b1 e0 ldi r27, 0x01 ; 1 b8: 01 c0 rjmp .+2 ; 0xbc <.do_clear_bss_start> @@ -137,22 +137,22 @@ Disassembly of section .text: ba: 1d 92 st X+, r1 000000bc <.do_clear_bss_start>: - bc: ac 33 cpi r26, 0x3C ; 60 + bc: ae 32 cpi r26, 0x2E ; 46 be: b2 07 cpc r27, r18 c0: e1 f7 brne .-8 ; 0xba <.do_clear_bss_loop> - c2: 2f d1 rcall .+606 ; 0x322
- c4: 34 c6 rjmp .+3176 ; 0xd2e <_exit> + c2: 11 d1 rcall .+546 ; 0x2e6
+ c4: 11 c5 rjmp .+2594 ; 0xae8 <_exit> 000000c6 <__bad_interrupt>: c6: 9c cf rjmp .-200 ; 0x0 <__vectors> 000000c8 : -{ - int length = snprintf(NULL, 0, "%d", number); - char str[length + 1]; - snprintf(str, length + 1, "%d", number); - lcd_write_string(str); + } } + +void lcd_move_right(void){ + + lcd_write_command(0x1E); c8: 9b b3 in r25, 0x1b ; 27 ca: 21 e0 ldi r18, 0x01 ; 1 cc: 30 e0 ldi r19, 0x00 ; 0 @@ -295,1663 +295,1422 @@ Disassembly of section .text: 1c2: cf 91 pop r28 1c4: 08 95 ret -000001c6 : +000001c6 : +} -void lcd_write_double(char prefix[], double number, char suffix[]) +void lcd_write_int(int number) { - 1c6: 4f 92 push r4 - 1c8: 5f 92 push r5 - 1ca: 6f 92 push r6 - 1cc: 7f 92 push r7 - 1ce: 8f 92 push r8 - 1d0: 9f 92 push r9 - 1d2: af 92 push r10 - 1d4: bf 92 push r11 - 1d6: cf 92 push r12 - 1d8: df 92 push r13 - 1da: ef 92 push r14 - 1dc: ff 92 push r15 - 1de: 0f 93 push r16 - 1e0: 1f 93 push r17 - 1e2: cf 93 push r28 - 1e4: df 93 push r29 - 1e6: cd b7 in r28, 0x3d ; 61 - 1e8: de b7 in r29, 0x3e ; 62 - 1ea: d8 2e mov r13, r24 - 1ec: c9 2e mov r12, r25 - 1ee: 94 2e mov r9, r20 - 1f0: 85 2e mov r8, r21 - 1f2: 76 2e mov r7, r22 - 1f4: 67 2e mov r6, r23 - 1f6: 52 2e mov r5, r18 - 1f8: 43 2e mov r4, r19 - int length = snprintf(NULL, 0, "%s: %.3f %s", prefix, number, suffix); + 1c6: af 92 push r10 + 1c8: bf 92 push r11 + 1ca: cf 92 push r12 + 1cc: df 92 push r13 + 1ce: ef 92 push r14 + 1d0: ff 92 push r15 + 1d2: 0f 93 push r16 + 1d4: 1f 93 push r17 + 1d6: cf 93 push r28 + 1d8: df 93 push r29 + 1da: cd b7 in r28, 0x3d ; 61 + 1dc: de b7 in r29, 0x3e ; 62 + 1de: d8 2e mov r13, r24 + 1e0: c9 2e mov r12, r25 + int length = snprintf(NULL, 0, "%d", number); char str[length + 1]; - snprintf(str, length + 1, "%s: %.3f %s", prefix, number, suffix); + snprintf(str, length + 1, "%d", number); lcd_write_string(str); } - 1fa: ad b6 in r10, 0x3d ; 61 - 1fc: be b6 in r11, 0x3e ; 62 - lcd_write_string(str); + 1e2: ad b6 in r10, 0x3d ; 61 + 1e4: be b6 in r11, 0x3e ; 62 + lcd_write_command(0x1E); } -void lcd_write_double(char prefix[], double number, char suffix[]) +void lcd_write_int(int number) { - int length = snprintf(NULL, 0, "%s: %.3f %s", prefix, number, suffix); - 1fe: 3f 93 push r19 - 200: 2f 93 push r18 - 202: 7f 93 push r23 - 204: 6f 93 push r22 - 206: 5f 93 push r21 - 208: 4f 93 push r20 - 20a: 9f 93 push r25 - 20c: 8f 93 push r24 - 20e: 0f 2e mov r0, r31 - 210: f5 e1 ldi r31, 0x15 ; 21 - 212: ef 2e mov r14, r31 - 214: f1 e0 ldi r31, 0x01 ; 1 - 216: ff 2e mov r15, r31 - 218: f0 2d mov r31, r0 - 21a: ff 92 push r15 - 21c: ef 92 push r14 - 21e: 1f 92 push r1 - 220: 1f 92 push r1 - 222: 1f 92 push r1 - 224: 1f 92 push r1 - 226: 9a d2 rcall .+1332 ; 0x75c + int length = snprintf(NULL, 0, "%d", number); + 1e6: 9f 93 push r25 + 1e8: 8f 93 push r24 + 1ea: 0f 2e mov r0, r31 + 1ec: f2 e1 ldi r31, 0x12 ; 18 + 1ee: ef 2e mov r14, r31 + 1f0: f1 e0 ldi r31, 0x01 ; 1 + 1f2: ff 2e mov r15, r31 + 1f4: f0 2d mov r31, r0 + 1f6: ff 92 push r15 + 1f8: ef 92 push r14 + 1fa: 1f 92 push r1 + 1fc: 1f 92 push r1 + 1fe: 1f 92 push r1 + 200: 1f 92 push r1 + 202: 89 d1 rcall .+786 ; 0x516 char str[length + 1]; - 228: 01 96 adiw r24, 0x01 ; 1 - 22a: 2d b7 in r18, 0x3d ; 61 - 22c: 3e b7 in r19, 0x3e ; 62 - 22e: 22 5f subi r18, 0xF2 ; 242 - 230: 3f 4f sbci r19, 0xFF ; 255 - 232: 0f b6 in r0, 0x3f ; 63 - 234: f8 94 cli - 236: 3e bf out 0x3e, r19 ; 62 - 238: 0f be out 0x3f, r0 ; 63 - 23a: 2d bf out 0x3d, r18 ; 61 - 23c: 28 1b sub r18, r24 - 23e: 39 0b sbc r19, r25 - 240: 0f b6 in r0, 0x3f ; 63 - 242: f8 94 cli - 244: 3e bf out 0x3e, r19 ; 62 - 246: 0f be out 0x3f, r0 ; 63 - 248: 2d bf out 0x3d, r18 ; 61 - 24a: 0d b7 in r16, 0x3d ; 61 - 24c: 1e b7 in r17, 0x3e ; 62 - 24e: 0f 5f subi r16, 0xFF ; 255 - 250: 1f 4f sbci r17, 0xFF ; 255 - snprintf(str, length + 1, "%s: %.3f %s", prefix, number, suffix); - 252: 4f 92 push r4 - 254: 5f 92 push r5 - 256: 6f 92 push r6 - 258: 7f 92 push r7 - 25a: 8f 92 push r8 - 25c: 9f 92 push r9 - 25e: cf 92 push r12 - 260: df 92 push r13 - 262: ff 92 push r15 - 264: ef 92 push r14 - 266: 9f 93 push r25 - 268: 8f 93 push r24 - 26a: 1f 93 push r17 - 26c: 0f 93 push r16 - 26e: 76 d2 rcall .+1260 ; 0x75c + 204: 01 96 adiw r24, 0x01 ; 1 + 206: 2d b7 in r18, 0x3d ; 61 + 208: 3e b7 in r19, 0x3e ; 62 + 20a: 28 5f subi r18, 0xF8 ; 248 + 20c: 3f 4f sbci r19, 0xFF ; 255 + 20e: 0f b6 in r0, 0x3f ; 63 + 210: f8 94 cli + 212: 3e bf out 0x3e, r19 ; 62 + 214: 0f be out 0x3f, r0 ; 63 + 216: 2d bf out 0x3d, r18 ; 61 + 218: 28 1b sub r18, r24 + 21a: 39 0b sbc r19, r25 + 21c: 0f b6 in r0, 0x3f ; 63 + 21e: f8 94 cli + 220: 3e bf out 0x3e, r19 ; 62 + 222: 0f be out 0x3f, r0 ; 63 + 224: 2d bf out 0x3d, r18 ; 61 + 226: 0d b7 in r16, 0x3d ; 61 + 228: 1e b7 in r17, 0x3e ; 62 + 22a: 0f 5f subi r16, 0xFF ; 255 + 22c: 1f 4f sbci r17, 0xFF ; 255 + snprintf(str, length + 1, "%d", number); + 22e: cf 92 push r12 + 230: df 92 push r13 + 232: ff 92 push r15 + 234: ef 92 push r14 + 236: 9f 93 push r25 + 238: 8f 93 push r24 + 23a: 1f 93 push r17 + 23c: 0f 93 push r16 + 23e: 6b d1 rcall .+726 ; 0x516 lcd_write_string(str); - 270: 80 2f mov r24, r16 - 272: 91 2f mov r25, r17 - 274: 9c df rcall .-200 ; 0x1ae + 240: 80 2f mov r24, r16 + 242: 91 2f mov r25, r17 + 244: b4 df rcall .-152 ; 0x1ae } - 276: 8d b7 in r24, 0x3d ; 61 - 278: 9e b7 in r25, 0x3e ; 62 - 27a: 0e 96 adiw r24, 0x0e ; 14 - 27c: 0f b6 in r0, 0x3f ; 63 - 27e: f8 94 cli - 280: 9e bf out 0x3e, r25 ; 62 - 282: 0f be out 0x3f, r0 ; 63 - 284: 8d bf out 0x3d, r24 ; 61 - 286: 0f b6 in r0, 0x3f ; 63 - 288: f8 94 cli - 28a: be be out 0x3e, r11 ; 62 - 28c: 0f be out 0x3f, r0 ; 63 - 28e: ad be out 0x3d, r10 ; 61 - 290: df 91 pop r29 - 292: cf 91 pop r28 - 294: 1f 91 pop r17 - 296: 0f 91 pop r16 - 298: ff 90 pop r15 - 29a: ef 90 pop r14 - 29c: df 90 pop r13 - 29e: cf 90 pop r12 - 2a0: bf 90 pop r11 - 2a2: af 90 pop r10 - 2a4: 9f 90 pop r9 - 2a6: 8f 90 pop r8 - 2a8: 7f 90 pop r7 - 2aa: 6f 90 pop r6 - 2ac: 5f 90 pop r5 - 2ae: 4f 90 pop r4 - 2b0: 08 95 ret + 246: 8d b7 in r24, 0x3d ; 61 + 248: 9e b7 in r25, 0x3e ; 62 + 24a: 08 96 adiw r24, 0x08 ; 8 + 24c: 0f b6 in r0, 0x3f ; 63 + 24e: f8 94 cli + 250: 9e bf out 0x3e, r25 ; 62 + 252: 0f be out 0x3f, r0 ; 63 + 254: 8d bf out 0x3d, r24 ; 61 + 256: 0f b6 in r0, 0x3f ; 63 + 258: f8 94 cli + 25a: be be out 0x3e, r11 ; 62 + 25c: 0f be out 0x3f, r0 ; 63 + 25e: ad be out 0x3d, r10 ; 61 + 260: df 91 pop r29 + 262: cf 91 pop r28 + 264: 1f 91 pop r17 + 266: 0f 91 pop r16 + 268: ff 90 pop r15 + 26a: ef 90 pop r14 + 26c: df 90 pop r13 + 26e: cf 90 pop r12 + 270: bf 90 pop r11 + 272: af 90 pop r10 + 274: 08 95 ret -000002b2 : -static void snap_event_trigger(uint8_t rotation){ +00000276 : ultrasonic_send_pulse(); } static void ultrasoon_value_set_event(uint16_t value){ + // if the SODAR is initialising, then look for close start object. if(initialising){ - 2b2: 20 91 00 01 lds r18, 0x0100 ; 0x800100 <__DATA_REGION_ORIGIN__> - 2b6: 22 23 and r18, r18 - 2b8: 51 f0 breq .+20 ; 0x2ce - if(value > 0 && value < 20){ - 2ba: 01 97 sbiw r24, 0x01 ; 1 - 2bc: 43 97 sbiw r24, 0x13 ; 19 - 2be: 38 f4 brcc .+14 ; 0x2ce + 276: 20 91 00 01 lds r18, 0x0100 ; 0x800100 <__DATA_REGION_ORIGIN__> + 27a: 22 23 and r18, r18 + 27c: 51 f0 breq .+20 ; 0x292 + if(value > 0 && value < MAX_DISTANCE_INIT){ + 27e: 01 97 sbiw r24, 0x01 ; 1 + 280: 43 97 sbiw r24, 0x13 ; 19 + 282: 38 f4 brcc .+14 ; 0x292 stepper_rotate_stop(); - 2c0: e0 d0 rcall .+448 ; 0x482 + 284: d1 d0 rcall .+418 ; 0x428 initialising = false; - 2c2: 10 92 00 01 sts 0x0100, r1 ; 0x800100 <__DATA_REGION_ORIGIN__> - stepper_rotate_angle(512, CounterClockWise); - 2c6: 61 e0 ldi r22, 0x01 ; 1 - 2c8: 80 e0 ldi r24, 0x00 ; 0 - 2ca: 92 e0 ldi r25, 0x02 ; 2 - 2cc: cd c0 rjmp .+410 ; 0x468 - 2ce: 08 95 ret + 286: 10 92 00 01 sts 0x0100, r1 ; 0x800100 <__DATA_REGION_ORIGIN__> + // when found, set the initial rotation. + stepper_rotate_angle(ROTAITION_ANGLE, CounterClockWise); + 28a: 61 e0 ldi r22, 0x01 ; 1 + 28c: 80 e0 ldi r24, 0x00 ; 0 + 28e: 92 e0 ldi r25, 0x02 ; 2 + 290: be c0 rjmp .+380 ; 0x40e + 292: 08 95 ret -000002d0 : -{ +00000294 : ultrasonic_handle_interrupt(); } static void snap_event_trigger(uint8_t rotation){ + // when X amount of steps are taken, do pulse. ultrasonic_send_pulse(); - 2d0: 13 c1 rjmp .+550 ; 0x4f8 - 2d2: 08 95 ret + 294: 04 c1 rjmp .+520 ; 0x49e + 296: 08 95 ret -000002d4 <__vector_3>: -#include "stepper_driver.h" +00000298 <__vector_3>: +// if true: in init mode, looking for starting point. bool initialising = true; ISR(INT2_vect) { - 2d4: 1f 92 push r1 - 2d6: 0f 92 push r0 - 2d8: 0f b6 in r0, 0x3f ; 63 - 2da: 0f 92 push r0 - 2dc: 11 24 eor r1, r1 - 2de: 0b b6 in r0, 0x3b ; 59 - 2e0: 0f 92 push r0 - 2e2: 2f 93 push r18 - 2e4: 3f 93 push r19 - 2e6: 4f 93 push r20 - 2e8: 5f 93 push r21 - 2ea: 6f 93 push r22 - 2ec: 7f 93 push r23 - 2ee: 8f 93 push r24 - 2f0: 9f 93 push r25 - 2f2: af 93 push r26 - 2f4: bf 93 push r27 - 2f6: ef 93 push r30 - 2f8: ff 93 push r31 + 298: 1f 92 push r1 + 29a: 0f 92 push r0 + 29c: 0f b6 in r0, 0x3f ; 63 + 29e: 0f 92 push r0 + 2a0: 11 24 eor r1, r1 + 2a2: 0b b6 in r0, 0x3b ; 59 + 2a4: 0f 92 push r0 + 2a6: 2f 93 push r18 + 2a8: 3f 93 push r19 + 2aa: 4f 93 push r20 + 2ac: 5f 93 push r21 + 2ae: 6f 93 push r22 + 2b0: 7f 93 push r23 + 2b2: 8f 93 push r24 + 2b4: 9f 93 push r25 + 2b6: af 93 push r26 + 2b8: bf 93 push r27 + 2ba: ef 93 push r30 + 2bc: ff 93 push r31 ultrasonic_handle_interrupt(); - 2fa: 0b d1 rcall .+534 ; 0x512 + 2be: fc d0 rcall .+504 ; 0x4b8 } - 2fc: ff 91 pop r31 - 2fe: ef 91 pop r30 - 300: bf 91 pop r27 - 302: af 91 pop r26 - 304: 9f 91 pop r25 - 306: 8f 91 pop r24 - 308: 7f 91 pop r23 - 30a: 6f 91 pop r22 - 30c: 5f 91 pop r21 - 30e: 4f 91 pop r20 - 310: 3f 91 pop r19 - 312: 2f 91 pop r18 - 314: 0f 90 pop r0 - 316: 0b be out 0x3b, r0 ; 59 - 318: 0f 90 pop r0 - 31a: 0f be out 0x3f, r0 ; 63 - 31c: 0f 90 pop r0 - 31e: 1f 90 pop r1 - 320: 18 95 reti + 2c0: ff 91 pop r31 + 2c2: ef 91 pop r30 + 2c4: bf 91 pop r27 + 2c6: af 91 pop r26 + 2c8: 9f 91 pop r25 + 2ca: 8f 91 pop r24 + 2cc: 7f 91 pop r23 + 2ce: 6f 91 pop r22 + 2d0: 5f 91 pop r21 + 2d2: 4f 91 pop r20 + 2d4: 3f 91 pop r19 + 2d6: 2f 91 pop r18 + 2d8: 0f 90 pop r0 + 2da: 0b be out 0x3b, r0 ; 59 + 2dc: 0f 90 pop r0 + 2de: 0f be out 0x3f, r0 ; 63 + 2e0: 0f 90 pop r0 + 2e2: 1f 90 pop r1 + 2e4: 18 95 reti -00000322
: +000002e6
: } int main(void) { - /* Replace with your application code */ + // initialize ultrasonic sensor driver. ultrasonic_init(); - 322: db d0 rcall .+438 ; 0x4da + 2e6: cc d0 rcall .+408 ; 0x480 + // initialize LCD display in 4 bit mode. init_4bits_mode(); - 324: 26 df rcall .-436 ; 0x172 + 2e8: 44 df rcall .-376 ; 0x172 + // initialize stepper driver. init_stepper_driver(); - 326: af d0 rcall .+350 ; 0x486 + 2ea: a0 d0 rcall .+320 ; 0x42c + // set the event when a pulse must be sent. set_snap_event(&snap_event_trigger); - 328: 88 e6 ldi r24, 0x68 ; 104 - 32a: 91 e0 ldi r25, 0x01 ; 1 - 32c: 36 d0 rcall .+108 ; 0x39a + 2ec: 8a e4 ldi r24, 0x4A ; 74 + 2ee: 91 e0 ldi r25, 0x01 ; 1 + 2f0: 27 d0 rcall .+78 ; 0x340 + // set a event for when a value has been set from the ultrasonic sensor. set_value_trigger_event(&ultrasoon_value_set_event); - 32e: 89 e5 ldi r24, 0x59 ; 89 - 330: 91 e0 ldi r25, 0x01 ; 1 - 332: 0d d1 rcall .+538 ; 0x54e - 334: 87 ea ldi r24, 0xA7 ; 167 + 2f2: 8b e3 ldi r24, 0x3B ; 59 + 2f4: 91 e0 ldi r25, 0x01 ; 1 + 2f6: fe d0 rcall .+508 ; 0x4f4 + 2f8: 87 ea ldi r24, 0xA7 ; 167 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 336: 91 e6 ldi r25, 0x61 ; 97 - 338: 01 97 sbiw r24, 0x01 ; 1 - 33a: f1 f7 brne .-4 ; 0x338 - 33c: 00 c0 rjmp .+0 ; 0x33e - 33e: 00 00 nop + 2fa: 91 e6 ldi r25, 0x61 ; 97 + 2fc: 01 97 sbiw r24, 0x01 ; 1 + 2fe: f1 f7 brne .-4 ; 0x2fc + 300: 00 c0 rjmp .+0 ; 0x302 + 302: 00 00 nop _delay_ms(10); lcd_clear(); - 340: 0d df rcall .-486 ; 0x15c + 304: 2b df rcall .-426 ; 0x15c - stepper_rotate_angle(600, ClockWise); - 342: 60 e0 ldi r22, 0x00 ; 0 - 344: 88 e5 ldi r24, 0x58 ; 88 - 346: 92 e0 ldi r25, 0x02 ; 2 - 348: 8f d0 rcall .+286 ; 0x468 + stepper_rotate_angle(INIT_ROTAITION_ANGLE, ClockWise); + 306: 60 e0 ldi r22, 0x00 ; 0 + 308: 88 e5 ldi r24, 0x58 ; 88 + 30a: 92 e0 ldi r25, 0x02 ; 2 while (1) { - lcd_clear(); - 34a: 08 df rcall .-496 ; 0x15c - 34c: 05 d1 rcall .+522 ; 0x558 - double res = ultrasonic_get_timer_dist()/1000.0; - 34e: bc 01 movw r22, r24 - 350: 80 e0 ldi r24, 0x00 ; 0 - 352: 90 e0 ldi r25, 0x00 ; 0 - 354: 75 d1 rcall .+746 ; 0x640 <__floatunsisf> - 356: 20 e0 ldi r18, 0x00 ; 0 - 358: 30 e0 ldi r19, 0x00 ; 0 - 35a: 4a e7 ldi r20, 0x7A ; 122 - 35c: 54 e4 ldi r21, 0x44 ; 68 - 35e: 08 d1 rcall .+528 ; 0x570 <__divsf3> - 360: ab 01 movw r20, r22 - 362: bc 01 movw r22, r24 - 364: 21 e2 ldi r18, 0x21 ; 33 - lcd_write_double("distance: ",res,"cm"); - 366: 31 e0 ldi r19, 0x01 ; 1 - 368: 84 e2 ldi r24, 0x24 ; 36 - 36a: 91 e0 ldi r25, 0x01 ; 1 - 36c: 2c df rcall .-424 ; 0x1c6 - 36e: 84 e6 ldi r24, 0x64 ; 100 - 370: 90 e0 ldi r25, 0x00 ; 0 + 30c: 80 d0 rcall .+256 ; 0x40e + 30e: 26 df rcall .-436 ; 0x15c + // set the ultrasonic value to the lcd. + lcd_write_int(ultrasonic_get_timer_dist()); + 310: f6 d0 rcall .+492 ; 0x4fe + 312: 59 df rcall .-334 ; 0x1c6 + 314: 84 e6 ldi r24, 0x64 ; 100 + 316: 90 e0 ldi r25, 0x00 ; 0 + wait_ms(LCD_SET_DELAY); + 318: a4 d0 rcall .+328 ; 0x462 + 31a: f9 cf rjmp .-14 ; 0x30e + +0000031c : + +void stepper_rotate_full_rotation_CW(); +void stepper_rotate_full_rotation_CCW(); + +void set_stepper_state(uint8_t count){ + if(rotation == ClockWise){ + 31c: 90 91 29 01 lds r25, 0x0129 ; 0x800129 + 320: 91 11 cpse r25, r1 + 322: 07 c0 rjmp .+14 ; 0x332 + PORTE = CW[count]; + 324: e8 2f mov r30, r24 + 326: f0 e0 ldi r31, 0x00 ; 0 + 328: ef 5f subi r30, 0xFF ; 255 + 32a: fe 4f sbci r31, 0xFE ; 254 + 32c: 80 81 ld r24, Z + 32e: 83 b9 out 0x03, r24 ; 3 + 330: 08 95 ret + } else { + PORTE = CCW[count]; + 332: e8 2f mov r30, r24 + 334: f0 e0 ldi r31, 0x00 ; 0 + 336: e7 5f subi r30, 0xF7 ; 247 + 338: fe 4f sbci r31, 0xFE ; 254 + 33a: 80 81 ld r24, Z + 33c: 83 b9 out 0x03, r24 ; 3 + 33e: 08 95 ret + +00000340 : +} + +void (*snap_event)(uint8_t); + +void set_snap_event(void (*snap_event_p)(uint8_t)){ + snap_event = snap_event_p; + 340: 90 93 2b 01 sts 0x012B, r25 ; 0x80012b + 344: 80 93 2a 01 sts 0x012A, r24 ; 0x80012a + 348: 08 95 ret + +0000034a <__vector_9>: +} + +ISR( TIMER2_COMP_vect ){ + 34a: 1f 92 push r1 + 34c: 0f 92 push r0 + 34e: 0f b6 in r0, 0x3f ; 63 + 350: 0f 92 push r0 + 352: 11 24 eor r1, r1 + 354: 0b b6 in r0, 0x3b ; 59 + 356: 0f 92 push r0 + 358: 2f 93 push r18 + 35a: 3f 93 push r19 + 35c: 4f 93 push r20 + 35e: 5f 93 push r21 + 360: 6f 93 push r22 + 362: 7f 93 push r23 + 364: 8f 93 push r24 + 366: 9f 93 push r25 + 368: af 93 push r26 + 36a: bf 93 push r27 + 36c: ef 93 push r30 + 36e: ff 93 push r31 + + TCNT2 = 0; + 370: 14 bc out 0x24, r1 ; 36 + + set_stepper_state(stepper_state); + 372: 80 91 22 01 lds r24, 0x0122 ; 0x800122 <__data_end> + 376: d2 df rcall .-92 ; 0x31c - wait_ms(100); - 372: a4 d0 rcall .+328 ; 0x4bc - 374: ea cf rjmp .-44 ; 0x34a + if(stepper_state < 7){ + 378: 80 91 22 01 lds r24, 0x0122 ; 0x800122 <__data_end> + 37c: 87 30 cpi r24, 0x07 ; 7 + 37e: 20 f4 brcc .+8 ; 0x388 <__vector_9+0x3e> + stepper_state++; + 380: 8f 5f subi r24, 0xFF ; 255 + 382: 80 93 22 01 sts 0x0122, r24 ; 0x800122 <__data_end> + 386: 30 c0 rjmp .+96 ; 0x3e8 <__vector_9+0x9e> + } else { + + stepper_state = 0; + 388: 10 92 22 01 sts 0x0122, r1 ; 0x800122 <__data_end> + + if(steps_to_do == 0){ + 38c: 80 91 23 01 lds r24, 0x0123 ; 0x800123 + 390: 90 91 24 01 lds r25, 0x0124 ; 0x800124 + 394: 00 97 sbiw r24, 0x00 ; 0 + 396: 99 f4 brne .+38 ; 0x3be <__vector_9+0x74> + + // change rotation if the steps todo is 0. + if(rotation == ClockWise){ + 398: 80 91 29 01 lds r24, 0x0129 ; 0x800129 + 39c: 81 11 cpse r24, r1 + 39e: 04 c0 rjmp .+8 ; 0x3a8 <__vector_9+0x5e> + rotation = CounterClockWise; + 3a0: 81 e0 ldi r24, 0x01 ; 1 + 3a2: 80 93 29 01 sts 0x0129, r24 ; 0x800129 + 3a6: 02 c0 rjmp .+4 ; 0x3ac <__vector_9+0x62> + } else { + rotation = ClockWise; + 3a8: 10 92 29 01 sts 0x0129, r1 ; 0x800129 + } + + // set the steps to do again. + steps_to_do = steps_each_turn; + 3ac: 80 91 25 01 lds r24, 0x0125 ; 0x800125 + 3b0: 90 91 26 01 lds r25, 0x0126 ; 0x800126 + 3b4: 90 93 24 01 sts 0x0124, r25 ; 0x800124 + 3b8: 80 93 23 01 sts 0x0123, r24 ; 0x800123 + 3bc: 15 c0 rjmp .+42 ; 0x3e8 <__vector_9+0x9e> + + } else { + + // if the stepper step value is at a multiplier of 32 then make snap event. + if(steps_to_do % STEPS_EACH_PULSE == 0){ + 3be: 9c 01 movw r18, r24 + 3c0: 2f 71 andi r18, 0x1F ; 31 + 3c2: 33 27 eor r19, r19 + 3c4: 23 2b or r18, r19 + 3c6: 39 f4 brne .+14 ; 0x3d6 <__vector_9+0x8c> + + if(snap_event != NULL) + 3c8: e0 91 2a 01 lds r30, 0x012A ; 0x80012a + 3cc: f0 91 2b 01 lds r31, 0x012B ; 0x80012b + 3d0: 30 97 sbiw r30, 0x00 ; 0 + 3d2: 09 f0 breq .+2 ; 0x3d6 <__vector_9+0x8c> + snap_event(steps_to_do); + 3d4: 09 95 icall + } + + steps_to_do--; + 3d6: 80 91 23 01 lds r24, 0x0123 ; 0x800123 + 3da: 90 91 24 01 lds r25, 0x0124 ; 0x800124 + 3de: 01 97 sbiw r24, 0x01 ; 1 + 3e0: 90 93 24 01 sts 0x0124, r25 ; 0x800124 + 3e4: 80 93 23 01 sts 0x0123, r24 ; 0x800123 + } + } +} + 3e8: ff 91 pop r31 + 3ea: ef 91 pop r30 + 3ec: bf 91 pop r27 + 3ee: af 91 pop r26 + 3f0: 9f 91 pop r25 + 3f2: 8f 91 pop r24 + 3f4: 7f 91 pop r23 + 3f6: 6f 91 pop r22 + 3f8: 5f 91 pop r21 + 3fa: 4f 91 pop r20 + 3fc: 3f 91 pop r19 + 3fe: 2f 91 pop r18 + 400: 0f 90 pop r0 + 402: 0b be out 0x3b, r0 ; 59 + 404: 0f 90 pop r0 + 406: 0f be out 0x3f, r0 ; 63 + 408: 0f 90 pop r0 + 40a: 1f 90 pop r1 + 40c: 18 95 reti -00000376 : - 376: 90 91 37 01 lds r25, 0x0137 ; 0x800137 - 37a: 91 11 cpse r25, r1 - 37c: 07 c0 rjmp .+14 ; 0x38c - 37e: e8 2f mov r30, r24 - 380: f0 e0 ldi r31, 0x00 ; 0 - 382: ef 5f subi r30, 0xFF ; 255 - 384: fe 4f sbci r31, 0xFE ; 254 - 386: 80 81 ld r24, Z - 388: 83 b9 out 0x03, r24 ; 3 - 38a: 08 95 ret - 38c: e8 2f mov r30, r24 - 38e: f0 e0 ldi r31, 0x00 ; 0 - 390: e7 5f subi r30, 0xF7 ; 247 - 392: fe 4f sbci r31, 0xFE ; 254 - 394: 80 81 ld r24, Z - 396: 83 b9 out 0x03, r24 ; 3 - 398: 08 95 ret +0000040e : -0000039a : - 39a: 90 93 39 01 sts 0x0139, r25 ; 0x800139 - 39e: 80 93 38 01 sts 0x0138, r24 ; 0x800138 - 3a2: 08 95 ret +void stepper_rotate_angle(uint16_t steps, enum rotation_wise rot){ + steps_to_do = steps; + 40e: 90 93 24 01 sts 0x0124, r25 ; 0x800124 + 412: 80 93 23 01 sts 0x0123, r24 ; 0x800123 + steps_each_turn = steps; + 416: 90 93 26 01 sts 0x0126, r25 ; 0x800126 + 41a: 80 93 25 01 sts 0x0125, r24 ; 0x800125 + rotation = rot; + 41e: 60 93 29 01 sts 0x0129, r22 ; 0x800129 + TCCR2 = 0b00001100; + 422: 8c e0 ldi r24, 0x0C ; 12 + 424: 85 bd out 0x25, r24 ; 37 + 426: 08 95 ret -000003a4 <__vector_9>: - 3a4: 1f 92 push r1 - 3a6: 0f 92 push r0 - 3a8: 0f b6 in r0, 0x3f ; 63 - 3aa: 0f 92 push r0 - 3ac: 11 24 eor r1, r1 - 3ae: 0b b6 in r0, 0x3b ; 59 - 3b0: 0f 92 push r0 - 3b2: 2f 93 push r18 - 3b4: 3f 93 push r19 - 3b6: 4f 93 push r20 - 3b8: 5f 93 push r21 - 3ba: 6f 93 push r22 - 3bc: 7f 93 push r23 - 3be: 8f 93 push r24 - 3c0: 9f 93 push r25 - 3c2: af 93 push r26 - 3c4: bf 93 push r27 - 3c6: ef 93 push r30 - 3c8: ff 93 push r31 - 3ca: 14 bc out 0x24, r1 ; 36 - 3cc: 80 91 30 01 lds r24, 0x0130 ; 0x800130 <__data_end> - 3d0: d2 df rcall .-92 ; 0x376 - 3d2: 80 91 30 01 lds r24, 0x0130 ; 0x800130 <__data_end> - 3d6: 87 30 cpi r24, 0x07 ; 7 - 3d8: 20 f4 brcc .+8 ; 0x3e2 <__vector_9+0x3e> - 3da: 8f 5f subi r24, 0xFF ; 255 - 3dc: 80 93 30 01 sts 0x0130, r24 ; 0x800130 <__data_end> - 3e0: 30 c0 rjmp .+96 ; 0x442 <__LOCK_REGION_LENGTH__+0x42> - 3e2: 10 92 30 01 sts 0x0130, r1 ; 0x800130 <__data_end> - 3e6: 80 91 31 01 lds r24, 0x0131 ; 0x800131 - 3ea: 90 91 32 01 lds r25, 0x0132 ; 0x800132 - 3ee: 00 97 sbiw r24, 0x00 ; 0 - 3f0: 99 f4 brne .+38 ; 0x418 <__LOCK_REGION_LENGTH__+0x18> - 3f2: 80 91 37 01 lds r24, 0x0137 ; 0x800137 - 3f6: 81 11 cpse r24, r1 - 3f8: 04 c0 rjmp .+8 ; 0x402 <__LOCK_REGION_LENGTH__+0x2> - 3fa: 81 e0 ldi r24, 0x01 ; 1 - 3fc: 80 93 37 01 sts 0x0137, r24 ; 0x800137 - 400: 02 c0 rjmp .+4 ; 0x406 <__LOCK_REGION_LENGTH__+0x6> - 402: 10 92 37 01 sts 0x0137, r1 ; 0x800137 - 406: 80 91 33 01 lds r24, 0x0133 ; 0x800133 - 40a: 90 91 34 01 lds r25, 0x0134 ; 0x800134 - 40e: 90 93 32 01 sts 0x0132, r25 ; 0x800132 - 412: 80 93 31 01 sts 0x0131, r24 ; 0x800131 - 416: 15 c0 rjmp .+42 ; 0x442 <__LOCK_REGION_LENGTH__+0x42> - 418: 9c 01 movw r18, r24 - 41a: 2f 71 andi r18, 0x1F ; 31 - 41c: 33 27 eor r19, r19 - 41e: 23 2b or r18, r19 - 420: 39 f4 brne .+14 ; 0x430 <__LOCK_REGION_LENGTH__+0x30> - 422: e0 91 38 01 lds r30, 0x0138 ; 0x800138 - 426: f0 91 39 01 lds r31, 0x0139 ; 0x800139 - 42a: 30 97 sbiw r30, 0x00 ; 0 - 42c: 09 f0 breq .+2 ; 0x430 <__LOCK_REGION_LENGTH__+0x30> - 42e: 09 95 icall - 430: 80 91 31 01 lds r24, 0x0131 ; 0x800131 - 434: 90 91 32 01 lds r25, 0x0132 ; 0x800132 - 438: 01 97 sbiw r24, 0x01 ; 1 - 43a: 90 93 32 01 sts 0x0132, r25 ; 0x800132 - 43e: 80 93 31 01 sts 0x0131, r24 ; 0x800131 - 442: ff 91 pop r31 - 444: ef 91 pop r30 - 446: bf 91 pop r27 - 448: af 91 pop r26 - 44a: 9f 91 pop r25 - 44c: 8f 91 pop r24 - 44e: 7f 91 pop r23 - 450: 6f 91 pop r22 - 452: 5f 91 pop r21 - 454: 4f 91 pop r20 - 456: 3f 91 pop r19 - 458: 2f 91 pop r18 - 45a: 0f 90 pop r0 - 45c: 0b be out 0x3b, r0 ; 59 - 45e: 0f 90 pop r0 - 460: 0f be out 0x3f, r0 ; 63 - 462: 0f 90 pop r0 - 464: 1f 90 pop r1 - 466: 18 95 reti +00000428 : +} -00000468 : - 468: 90 93 32 01 sts 0x0132, r25 ; 0x800132 - 46c: 80 93 31 01 sts 0x0131, r24 ; 0x800131 - 470: 90 93 34 01 sts 0x0134, r25 ; 0x800134 - 474: 80 93 33 01 sts 0x0133, r24 ; 0x800133 - 478: 60 93 37 01 sts 0x0137, r22 ; 0x800137 - 47c: 8c e0 ldi r24, 0x0C ; 12 - 47e: 85 bd out 0x25, r24 ; 37 - 480: 08 95 ret +void stepper_rotate_stop(){ + TCCR2 = 0b00000000; + 428: 15 bc out 0x25, r1 ; 37 + 42a: 08 95 ret -00000482 : - 482: 15 bc out 0x25, r1 ; 37 - 484: 08 95 ret +0000042c : +} -00000486 : - 486: 8f ef ldi r24, 0xFF ; 255 - 488: 82 b9 out 0x02, r24 ; 2 - 48a: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064> - 48e: 81 e0 ldi r24, 0x01 ; 1 - 490: 80 93 65 00 sts 0x0065, r24 ; 0x800065 <__TEXT_REGION_LENGTH__+0x7e0065> - 494: 13 b8 out 0x03, r1 ; 3 - 496: 86 e9 ldi r24, 0x96 ; 150 - 498: 83 bd out 0x23, r24 ; 35 - 49a: 80 e8 ldi r24, 0x80 ; 128 - 49c: 87 bf out 0x37, r24 ; 55 - 49e: 78 94 sei - 4a0: 08 95 ret +void init_stepper_driver(){ + DDRE = 0xff; + 42c: 8f ef ldi r24, 0xFF ; 255 + 42e: 82 b9 out 0x02, r24 ; 2 + DDRG = 0xff; + 430: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064> + PORTG = 0x01; + 434: 81 e0 ldi r24, 0x01 ; 1 + 436: 80 93 65 00 sts 0x0065, r24 ; 0x800065 <__TEXT_REGION_LENGTH__+0x7e0065> + PORTE = 0x00; + 43a: 13 b8 out 0x03, r1 ; 3 + OCR2 = 150; + 43c: 86 e9 ldi r24, 0x96 ; 150 + 43e: 83 bd out 0x23, r24 ; 35 + TIMSK = BIT(7); + 440: 80 e8 ldi r24, 0x80 ; 128 + 442: 87 bf out 0x37, r24 ; 55 + sei(); + 444: 78 94 sei + 446: 08 95 ret -000004a2 : +00000448 : void (*value_set_event)(uint16_t); void wait_us(unsigned int us) { for(int i = 0; i < us; i++) - 4a2: 20 e0 ldi r18, 0x00 ; 0 - 4a4: 30 e0 ldi r19, 0x00 ; 0 - 4a6: 06 c0 rjmp .+12 ; 0x4b4 + 448: 20 e0 ldi r18, 0x00 ; 0 + 44a: 30 e0 ldi r19, 0x00 ; 0 + 44c: 06 c0 rjmp .+12 ; 0x45a #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 4a8: 43 e0 ldi r20, 0x03 ; 3 - 4aa: 4a 95 dec r20 - 4ac: f1 f7 brne .-4 ; 0x4aa - 4ae: 00 00 nop - 4b0: 2f 5f subi r18, 0xFF ; 255 - 4b2: 3f 4f sbci r19, 0xFF ; 255 - 4b4: 28 17 cp r18, r24 - 4b6: 39 07 cpc r19, r25 - 4b8: b8 f3 brcs .-18 ; 0x4a8 + 44e: 43 e0 ldi r20, 0x03 ; 3 + 450: 4a 95 dec r20 + 452: f1 f7 brne .-4 ; 0x450 + 454: 00 00 nop + 456: 2f 5f subi r18, 0xFF ; 255 + 458: 3f 4f sbci r19, 0xFF ; 255 + 45a: 28 17 cp r18, r24 + 45c: 39 07 cpc r19, r25 + 45e: b8 f3 brcs .-18 ; 0x44e { _delay_us(1); } } - 4ba: 08 95 ret + 460: 08 95 ret -000004bc : +00000462 : void wait_ms(unsigned int ms) { for(int i = 0; i < ms; i++) - 4bc: 20 e0 ldi r18, 0x00 ; 0 - 4be: 30 e0 ldi r19, 0x00 ; 0 - 4c0: 08 c0 rjmp .+16 ; 0x4d2 + 462: 20 e0 ldi r18, 0x00 ; 0 + 464: 30 e0 ldi r19, 0x00 ; 0 + 466: 08 c0 rjmp .+16 ; 0x478 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 4c2: e3 ec ldi r30, 0xC3 ; 195 - 4c4: f9 e0 ldi r31, 0x09 ; 9 - 4c6: 31 97 sbiw r30, 0x01 ; 1 - 4c8: f1 f7 brne .-4 ; 0x4c6 - 4ca: 00 c0 rjmp .+0 ; 0x4cc - 4cc: 00 00 nop - 4ce: 2f 5f subi r18, 0xFF ; 255 - 4d0: 3f 4f sbci r19, 0xFF ; 255 - 4d2: 28 17 cp r18, r24 - 4d4: 39 07 cpc r19, r25 - 4d6: a8 f3 brcs .-22 ; 0x4c2 + 468: e3 ec ldi r30, 0xC3 ; 195 + 46a: f9 e0 ldi r31, 0x09 ; 9 + 46c: 31 97 sbiw r30, 0x01 ; 1 + 46e: f1 f7 brne .-4 ; 0x46c + 470: 00 c0 rjmp .+0 ; 0x472 + 472: 00 00 nop + 474: 2f 5f subi r18, 0xFF ; 255 + 476: 3f 4f sbci r19, 0xFF ; 255 + 478: 28 17 cp r18, r24 + 47a: 39 07 cpc r19, r25 + 47c: a8 f3 brcs .-22 ; 0x468 { _delay_ms(1); } } - 4d8: 08 95 ret + 47e: 08 95 ret -000004da : +00000480 : void ultrasonic_init() { DDRG = 0xFF; // port g all output. pin 0 is trig, the rest is for debug - 4da: 8f ef ldi r24, 0xFF ; 255 - 4dc: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064> + 480: 8f ef ldi r24, 0xFF ; 255 + 482: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064> DDRD = 0x00; // port D pin 0 on input. 0 is echo and also interrupt - 4e0: 11 ba out 0x11, r1 ; 17 + 486: 11 ba out 0x11, r1 ; 17 EICRA = 0x30; // interrupt PORTD on pin 2, rising edge - 4e2: 80 e3 ldi r24, 0x30 ; 48 - 4e4: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> + 488: 80 e3 ldi r24, 0x30 ; 48 + 48a: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> EIMSK |= 0x04; // enable interrupt on pin 2 (INT2) - 4e8: 89 b7 in r24, 0x39 ; 57 - 4ea: 84 60 ori r24, 0x04 ; 4 - 4ec: 89 bf out 0x39, r24 ; 57 + 48e: 89 b7 in r24, 0x39 ; 57 + 490: 84 60 ori r24, 0x04 ; 4 + 492: 89 bf out 0x39, r24 ; 57 TCCR1A = 0b00000000; // initialize timer1, prescaler=256 - 4ee: 1f bc out 0x2f, r1 ; 47 + 494: 1f bc out 0x2f, r1 ; 47 TCCR1B = 0b00001100; // CTC compare A, RUN - 4f0: 8c e0 ldi r24, 0x0C ; 12 - 4f2: 8e bd out 0x2e, r24 ; 46 + 496: 8c e0 ldi r24, 0x0C ; 12 + 498: 8e bd out 0x2e, r24 ; 46 sei(); // turn on interrupt system - 4f4: 78 94 sei - 4f6: 08 95 ret + 49a: 78 94 sei + 49c: 08 95 ret -000004f8 : +0000049e : } void ultrasonic_send_pulse() { - 4f8: cf 93 push r28 - 4fa: df 93 push r29 + 49e: cf 93 push r28 + 4a0: df 93 push r29 PORTG = 0x00; // 10 us low pulse - 4fc: c5 e6 ldi r28, 0x65 ; 101 - 4fe: d0 e0 ldi r29, 0x00 ; 0 - 500: 18 82 st Y, r1 + 4a2: c5 e6 ldi r28, 0x65 ; 101 + 4a4: d0 e0 ldi r29, 0x00 ; 0 + 4a6: 18 82 st Y, r1 wait_us(10); - 502: 8a e0 ldi r24, 0x0A ; 10 - 504: 90 e0 ldi r25, 0x00 ; 0 - 506: cd df rcall .-102 ; 0x4a2 + 4a8: 8a e0 ldi r24, 0x0A ; 10 + 4aa: 90 e0 ldi r25, 0x00 ; 0 + 4ac: cd df rcall .-102 ; 0x448 PORTG = 0x01; - 508: 81 e0 ldi r24, 0x01 ; 1 - 50a: 88 83 st Y, r24 + 4ae: 81 e0 ldi r24, 0x01 ; 1 + 4b0: 88 83 st Y, r24 } - 50c: df 91 pop r29 - 50e: cf 91 pop r28 - 510: 08 95 ret + 4b2: df 91 pop r29 + 4b4: cf 91 pop r28 + 4b6: 08 95 ret -00000512 : +000004b8 : void ultrasonic_handle_interrupt() { // if the interrupt was generated on a rising edge (start sending echo) if (int_stat == INTERRUPT_RISING) - 512: 80 91 11 01 lds r24, 0x0111 ; 0x800111 - 516: 81 30 cpi r24, 0x01 ; 1 - 518: 41 f4 brne .+16 ; 0x52a + 4b8: 80 91 11 01 lds r24, 0x0111 ; 0x800111 + 4bc: 81 30 cpi r24, 0x01 ; 1 + 4be: 41 f4 brne .+16 ; 0x4d0 { // set interrupt pin 0 on PORTD to falling edge EICRA = 0x20; - 51a: 80 e2 ldi r24, 0x20 ; 32 - 51c: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> + 4c0: 80 e2 ldi r24, 0x20 ; 32 + 4c2: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> // reset the time in timer1 TCNT1 = 0x00; - 520: 1d bc out 0x2d, r1 ; 45 - 522: 1c bc out 0x2c, r1 ; 44 + 4c6: 1d bc out 0x2d, r1 ; 45 + 4c8: 1c bc out 0x2c, r1 ; 44 // set interrupt status int_stat = INTERRUPT_FALLING; - 524: 10 92 11 01 sts 0x0111, r1 ; 0x800111 - 528: 08 95 ret + 4ca: 10 92 11 01 sts 0x0111, r1 ; 0x800111 + 4ce: 08 95 ret } else // else if it was generated on a falling edge (end sending echo) { // set interrupt pin 0 on PORTD to rising edge EICRA = 0x30; // interrupt PORTD on pin 2, rising edge - 52a: 80 e3 ldi r24, 0x30 ; 48 - 52c: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> + 4d0: 80 e3 ldi r24, 0x30 ; 48 + 4d2: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> // read timer1 into time_dist timer_dist = TCNT1; - 530: 8c b5 in r24, 0x2c ; 44 - 532: 9d b5 in r25, 0x2d ; 45 - 534: 90 93 36 01 sts 0x0136, r25 ; 0x800136 - 538: 80 93 35 01 sts 0x0135, r24 ; 0x800135 + 4d6: 8c b5 in r24, 0x2c ; 44 + 4d8: 9d b5 in r25, 0x2d ; 45 + 4da: 90 93 28 01 sts 0x0128, r25 ; 0x800128 + 4de: 80 93 27 01 sts 0x0127, r24 ; 0x800127 //EVENT value_set_event(timer_dist); - 53c: e0 91 3a 01 lds r30, 0x013A ; 0x80013a - 540: f0 91 3b 01 lds r31, 0x013B ; 0x80013b - 544: 09 95 icall + 4e2: e0 91 2c 01 lds r30, 0x012C ; 0x80012c + 4e6: f0 91 2d 01 lds r31, 0x012D ; 0x80012d + 4ea: 09 95 icall // set interrupt status int_stat = INTERRUPT_RISING; - 546: 81 e0 ldi r24, 0x01 ; 1 - 548: 80 93 11 01 sts 0x0111, r24 ; 0x800111 - 54c: 08 95 ret + 4ec: 81 e0 ldi r24, 0x01 ; 1 + 4ee: 80 93 11 01 sts 0x0111, r24 ; 0x800111 + 4f2: 08 95 ret -0000054e : +000004f4 : } } void set_value_trigger_event(void (*value_set_event_p)(uint16_t)){ // event that is triggered when a value is set. value_set_event = value_set_event_p; - 54e: 90 93 3b 01 sts 0x013B, r25 ; 0x80013b - 552: 80 93 3a 01 sts 0x013A, r24 ; 0x80013a - 556: 08 95 ret + 4f4: 90 93 2d 01 sts 0x012D, r25 ; 0x80012d + 4f8: 80 93 2c 01 sts 0x012C, r24 ; 0x80012c + 4fc: 08 95 ret -00000558 : +000004fe : } uint16_t ultrasonic_get_timer_dist() { return timer_dist * (340 / 2); - 558: 80 91 35 01 lds r24, 0x0135 ; 0x800135 - 55c: 90 91 36 01 lds r25, 0x0136 ; 0x800136 + 4fe: 80 91 27 01 lds r24, 0x0127 ; 0x800127 + 502: 90 91 28 01 lds r25, 0x0128 ; 0x800128 } - 560: 2a ea ldi r18, 0xAA ; 170 - 562: ac 01 movw r20, r24 - 564: 24 9f mul r18, r20 - 566: c0 01 movw r24, r0 - 568: 25 9f mul r18, r21 - 56a: 90 0d add r25, r0 - 56c: 11 24 eor r1, r1 - 56e: 08 95 ret + 506: 2a ea ldi r18, 0xAA ; 170 + 508: ac 01 movw r20, r24 + 50a: 24 9f mul r18, r20 + 50c: c0 01 movw r24, r0 + 50e: 25 9f mul r18, r21 + 510: 90 0d add r25, r0 + 512: 11 24 eor r1, r1 + 514: 08 95 ret -00000570 <__divsf3>: - 570: 0c d0 rcall .+24 ; 0x58a <__divsf3x> - 572: ba c0 rjmp .+372 ; 0x6e8 <__fp_round> - 574: b2 d0 rcall .+356 ; 0x6da <__fp_pscB> - 576: 40 f0 brcs .+16 ; 0x588 <__divsf3+0x18> - 578: a9 d0 rcall .+338 ; 0x6cc <__fp_pscA> - 57a: 30 f0 brcs .+12 ; 0x588 <__divsf3+0x18> - 57c: 21 f4 brne .+8 ; 0x586 <__divsf3+0x16> - 57e: 5f 3f cpi r21, 0xFF ; 255 - 580: 19 f0 breq .+6 ; 0x588 <__divsf3+0x18> - 582: 9b c0 rjmp .+310 ; 0x6ba <__fp_inf> - 584: 51 11 cpse r21, r1 - 586: e4 c0 rjmp .+456 ; 0x750 <__fp_szero> - 588: 9e c0 rjmp .+316 ; 0x6c6 <__fp_nan> +00000516 : + 516: 0f 93 push r16 + 518: 1f 93 push r17 + 51a: cf 93 push r28 + 51c: df 93 push r29 + 51e: cd b7 in r28, 0x3d ; 61 + 520: de b7 in r29, 0x3e ; 62 + 522: 2e 97 sbiw r28, 0x0e ; 14 + 524: 0f b6 in r0, 0x3f ; 63 + 526: f8 94 cli + 528: de bf out 0x3e, r29 ; 62 + 52a: 0f be out 0x3f, r0 ; 63 + 52c: cd bf out 0x3d, r28 ; 61 + 52e: 0d 89 ldd r16, Y+21 ; 0x15 + 530: 1e 89 ldd r17, Y+22 ; 0x16 + 532: 8f 89 ldd r24, Y+23 ; 0x17 + 534: 98 8d ldd r25, Y+24 ; 0x18 + 536: 26 e0 ldi r18, 0x06 ; 6 + 538: 2c 83 std Y+4, r18 ; 0x04 + 53a: 1a 83 std Y+2, r17 ; 0x02 + 53c: 09 83 std Y+1, r16 ; 0x01 + 53e: 97 ff sbrs r25, 7 + 540: 02 c0 rjmp .+4 ; 0x546 + 542: 80 e0 ldi r24, 0x00 ; 0 + 544: 90 e8 ldi r25, 0x80 ; 128 + 546: 01 97 sbiw r24, 0x01 ; 1 + 548: 9e 83 std Y+6, r25 ; 0x06 + 54a: 8d 83 std Y+5, r24 ; 0x05 + 54c: ae 01 movw r20, r28 + 54e: 45 5e subi r20, 0xE5 ; 229 + 550: 5f 4f sbci r21, 0xFF ; 255 + 552: 69 8d ldd r22, Y+25 ; 0x19 + 554: 7a 8d ldd r23, Y+26 ; 0x1a + 556: ce 01 movw r24, r28 + 558: 01 96 adiw r24, 0x01 ; 1 + 55a: 19 d0 rcall .+50 ; 0x58e + 55c: 4d 81 ldd r20, Y+5 ; 0x05 + 55e: 5e 81 ldd r21, Y+6 ; 0x06 + 560: 57 fd sbrc r21, 7 + 562: 0a c0 rjmp .+20 ; 0x578 + 564: 2f 81 ldd r18, Y+7 ; 0x07 + 566: 38 85 ldd r19, Y+8 ; 0x08 + 568: 42 17 cp r20, r18 + 56a: 53 07 cpc r21, r19 + 56c: 0c f4 brge .+2 ; 0x570 + 56e: 9a 01 movw r18, r20 + 570: f8 01 movw r30, r16 + 572: e2 0f add r30, r18 + 574: f3 1f adc r31, r19 + 576: 10 82 st Z, r1 + 578: 2e 96 adiw r28, 0x0e ; 14 + 57a: 0f b6 in r0, 0x3f ; 63 + 57c: f8 94 cli + 57e: de bf out 0x3e, r29 ; 62 + 580: 0f be out 0x3f, r0 ; 63 + 582: cd bf out 0x3d, r28 ; 61 + 584: df 91 pop r29 + 586: cf 91 pop r28 + 588: 1f 91 pop r17 + 58a: 0f 91 pop r16 + 58c: 08 95 ret -0000058a <__divsf3x>: - 58a: bf d0 rcall .+382 ; 0x70a <__fp_split3> - 58c: 98 f3 brcs .-26 ; 0x574 <__divsf3+0x4> +0000058e : + 58e: 2f 92 push r2 + 590: 3f 92 push r3 + 592: 4f 92 push r4 + 594: 5f 92 push r5 + 596: 6f 92 push r6 + 598: 7f 92 push r7 + 59a: 8f 92 push r8 + 59c: 9f 92 push r9 + 59e: af 92 push r10 + 5a0: bf 92 push r11 + 5a2: cf 92 push r12 + 5a4: df 92 push r13 + 5a6: ef 92 push r14 + 5a8: ff 92 push r15 + 5aa: 0f 93 push r16 + 5ac: 1f 93 push r17 + 5ae: cf 93 push r28 + 5b0: df 93 push r29 + 5b2: cd b7 in r28, 0x3d ; 61 + 5b4: de b7 in r29, 0x3e ; 62 + 5b6: 2b 97 sbiw r28, 0x0b ; 11 + 5b8: 0f b6 in r0, 0x3f ; 63 + 5ba: f8 94 cli + 5bc: de bf out 0x3e, r29 ; 62 + 5be: 0f be out 0x3f, r0 ; 63 + 5c0: cd bf out 0x3d, r28 ; 61 + 5c2: 6c 01 movw r12, r24 + 5c4: 7b 01 movw r14, r22 + 5c6: 8a 01 movw r16, r20 + 5c8: fc 01 movw r30, r24 + 5ca: 17 82 std Z+7, r1 ; 0x07 + 5cc: 16 82 std Z+6, r1 ; 0x06 + 5ce: 83 81 ldd r24, Z+3 ; 0x03 + 5d0: 81 ff sbrs r24, 1 + 5d2: bf c1 rjmp .+894 ; 0x952 + 5d4: ce 01 movw r24, r28 + 5d6: 01 96 adiw r24, 0x01 ; 1 + 5d8: 3c 01 movw r6, r24 + 5da: f6 01 movw r30, r12 + 5dc: 93 81 ldd r25, Z+3 ; 0x03 + 5de: f7 01 movw r30, r14 + 5e0: 93 fd sbrc r25, 3 + 5e2: 85 91 lpm r24, Z+ + 5e4: 93 ff sbrs r25, 3 + 5e6: 81 91 ld r24, Z+ + 5e8: 7f 01 movw r14, r30 + 5ea: 88 23 and r24, r24 + 5ec: 09 f4 brne .+2 ; 0x5f0 + 5ee: ad c1 rjmp .+858 ; 0x94a + 5f0: 85 32 cpi r24, 0x25 ; 37 + 5f2: 39 f4 brne .+14 ; 0x602 + 5f4: 93 fd sbrc r25, 3 + 5f6: 85 91 lpm r24, Z+ + 5f8: 93 ff sbrs r25, 3 + 5fa: 81 91 ld r24, Z+ + 5fc: 7f 01 movw r14, r30 + 5fe: 85 32 cpi r24, 0x25 ; 37 + 600: 21 f4 brne .+8 ; 0x60a + 602: b6 01 movw r22, r12 + 604: 90 e0 ldi r25, 0x00 ; 0 + 606: d6 d1 rcall .+940 ; 0x9b4 + 608: e8 cf rjmp .-48 ; 0x5da + 60a: 91 2c mov r9, r1 + 60c: 21 2c mov r2, r1 + 60e: 31 2c mov r3, r1 + 610: ff e1 ldi r31, 0x1F ; 31 + 612: f3 15 cp r31, r3 + 614: d8 f0 brcs .+54 ; 0x64c + 616: 8b 32 cpi r24, 0x2B ; 43 + 618: 79 f0 breq .+30 ; 0x638 + 61a: 38 f4 brcc .+14 ; 0x62a + 61c: 80 32 cpi r24, 0x20 ; 32 + 61e: 79 f0 breq .+30 ; 0x63e + 620: 83 32 cpi r24, 0x23 ; 35 + 622: a1 f4 brne .+40 ; 0x64c + 624: 23 2d mov r18, r3 + 626: 20 61 ori r18, 0x10 ; 16 + 628: 1d c0 rjmp .+58 ; 0x664 + 62a: 8d 32 cpi r24, 0x2D ; 45 + 62c: 61 f0 breq .+24 ; 0x646 + 62e: 80 33 cpi r24, 0x30 ; 48 + 630: 69 f4 brne .+26 ; 0x64c + 632: 23 2d mov r18, r3 + 634: 21 60 ori r18, 0x01 ; 1 + 636: 16 c0 rjmp .+44 ; 0x664 + 638: 83 2d mov r24, r3 + 63a: 82 60 ori r24, 0x02 ; 2 + 63c: 38 2e mov r3, r24 + 63e: e3 2d mov r30, r3 + 640: e4 60 ori r30, 0x04 ; 4 + 642: 3e 2e mov r3, r30 + 644: 2a c0 rjmp .+84 ; 0x69a + 646: f3 2d mov r31, r3 + 648: f8 60 ori r31, 0x08 ; 8 + 64a: 1d c0 rjmp .+58 ; 0x686 + 64c: 37 fc sbrc r3, 7 + 64e: 2d c0 rjmp .+90 ; 0x6aa + 650: 20 ed ldi r18, 0xD0 ; 208 + 652: 28 0f add r18, r24 + 654: 2a 30 cpi r18, 0x0A ; 10 + 656: 40 f0 brcs .+16 ; 0x668 + 658: 8e 32 cpi r24, 0x2E ; 46 + 65a: b9 f4 brne .+46 ; 0x68a + 65c: 36 fc sbrc r3, 6 + 65e: 75 c1 rjmp .+746 ; 0x94a + 660: 23 2d mov r18, r3 + 662: 20 64 ori r18, 0x40 ; 64 + 664: 32 2e mov r3, r18 + 666: 19 c0 rjmp .+50 ; 0x69a + 668: 36 fe sbrs r3, 6 + 66a: 06 c0 rjmp .+12 ; 0x678 + 66c: 8a e0 ldi r24, 0x0A ; 10 + 66e: 98 9e mul r9, r24 + 670: 20 0d add r18, r0 + 672: 11 24 eor r1, r1 + 674: 92 2e mov r9, r18 + 676: 11 c0 rjmp .+34 ; 0x69a + 678: ea e0 ldi r30, 0x0A ; 10 + 67a: 2e 9e mul r2, r30 + 67c: 20 0d add r18, r0 + 67e: 11 24 eor r1, r1 + 680: 22 2e mov r2, r18 + 682: f3 2d mov r31, r3 + 684: f0 62 ori r31, 0x20 ; 32 + 686: 3f 2e mov r3, r31 + 688: 08 c0 rjmp .+16 ; 0x69a + 68a: 8c 36 cpi r24, 0x6C ; 108 + 68c: 21 f4 brne .+8 ; 0x696 + 68e: 83 2d mov r24, r3 + 690: 80 68 ori r24, 0x80 ; 128 + 692: 38 2e mov r3, r24 + 694: 02 c0 rjmp .+4 ; 0x69a + 696: 88 36 cpi r24, 0x68 ; 104 + 698: 41 f4 brne .+16 ; 0x6aa + 69a: f7 01 movw r30, r14 + 69c: 93 fd sbrc r25, 3 + 69e: 85 91 lpm r24, Z+ + 6a0: 93 ff sbrs r25, 3 + 6a2: 81 91 ld r24, Z+ + 6a4: 7f 01 movw r14, r30 + 6a6: 81 11 cpse r24, r1 + 6a8: b3 cf rjmp .-154 ; 0x610 + 6aa: 98 2f mov r25, r24 + 6ac: 9f 7d andi r25, 0xDF ; 223 + 6ae: 95 54 subi r25, 0x45 ; 69 + 6b0: 93 30 cpi r25, 0x03 ; 3 + 6b2: 28 f4 brcc .+10 ; 0x6be + 6b4: 0c 5f subi r16, 0xFC ; 252 + 6b6: 1f 4f sbci r17, 0xFF ; 255 + 6b8: 9f e3 ldi r25, 0x3F ; 63 + 6ba: 99 83 std Y+1, r25 ; 0x01 + 6bc: 0d c0 rjmp .+26 ; 0x6d8 + 6be: 83 36 cpi r24, 0x63 ; 99 + 6c0: 31 f0 breq .+12 ; 0x6ce + 6c2: 83 37 cpi r24, 0x73 ; 115 + 6c4: 71 f0 breq .+28 ; 0x6e2 + 6c6: 83 35 cpi r24, 0x53 ; 83 + 6c8: 09 f0 breq .+2 ; 0x6cc + 6ca: 55 c0 rjmp .+170 ; 0x776 + 6cc: 20 c0 rjmp .+64 ; 0x70e + 6ce: f8 01 movw r30, r16 + 6d0: 80 81 ld r24, Z + 6d2: 89 83 std Y+1, r24 ; 0x01 + 6d4: 0e 5f subi r16, 0xFE ; 254 + 6d6: 1f 4f sbci r17, 0xFF ; 255 + 6d8: 88 24 eor r8, r8 + 6da: 83 94 inc r8 + 6dc: 91 2c mov r9, r1 + 6de: 53 01 movw r10, r6 + 6e0: 12 c0 rjmp .+36 ; 0x706 + 6e2: 28 01 movw r4, r16 + 6e4: f2 e0 ldi r31, 0x02 ; 2 + 6e6: 4f 0e add r4, r31 + 6e8: 51 1c adc r5, r1 + 6ea: f8 01 movw r30, r16 + 6ec: a0 80 ld r10, Z + 6ee: b1 80 ldd r11, Z+1 ; 0x01 + 6f0: 36 fe sbrs r3, 6 + 6f2: 03 c0 rjmp .+6 ; 0x6fa + 6f4: 69 2d mov r22, r9 + 6f6: 70 e0 ldi r23, 0x00 ; 0 + 6f8: 02 c0 rjmp .+4 ; 0x6fe + 6fa: 6f ef ldi r22, 0xFF ; 255 + 6fc: 7f ef ldi r23, 0xFF ; 255 + 6fe: c5 01 movw r24, r10 + 700: 4e d1 rcall .+668 ; 0x99e + 702: 4c 01 movw r8, r24 + 704: 82 01 movw r16, r4 + 706: f3 2d mov r31, r3 + 708: ff 77 andi r31, 0x7F ; 127 + 70a: 3f 2e mov r3, r31 + 70c: 15 c0 rjmp .+42 ; 0x738 + 70e: 28 01 movw r4, r16 + 710: 22 e0 ldi r18, 0x02 ; 2 + 712: 42 0e add r4, r18 + 714: 51 1c adc r5, r1 + 716: f8 01 movw r30, r16 + 718: a0 80 ld r10, Z + 71a: b1 80 ldd r11, Z+1 ; 0x01 + 71c: 36 fe sbrs r3, 6 + 71e: 03 c0 rjmp .+6 ; 0x726 + 720: 69 2d mov r22, r9 + 722: 70 e0 ldi r23, 0x00 ; 0 + 724: 02 c0 rjmp .+4 ; 0x72a + 726: 6f ef ldi r22, 0xFF ; 255 + 728: 7f ef ldi r23, 0xFF ; 255 + 72a: c5 01 movw r24, r10 + 72c: 2d d1 rcall .+602 ; 0x988 + 72e: 4c 01 movw r8, r24 + 730: f3 2d mov r31, r3 + 732: f0 68 ori r31, 0x80 ; 128 + 734: 3f 2e mov r3, r31 + 736: 82 01 movw r16, r4 + 738: 33 fc sbrc r3, 3 + 73a: 19 c0 rjmp .+50 ; 0x76e + 73c: 82 2d mov r24, r2 + 73e: 90 e0 ldi r25, 0x00 ; 0 + 740: 88 16 cp r8, r24 + 742: 99 06 cpc r9, r25 + 744: a0 f4 brcc .+40 ; 0x76e + 746: b6 01 movw r22, r12 + 748: 80 e2 ldi r24, 0x20 ; 32 + 74a: 90 e0 ldi r25, 0x00 ; 0 + 74c: 33 d1 rcall .+614 ; 0x9b4 + 74e: 2a 94 dec r2 + 750: f5 cf rjmp .-22 ; 0x73c + 752: f5 01 movw r30, r10 + 754: 37 fc sbrc r3, 7 + 756: 85 91 lpm r24, Z+ + 758: 37 fe sbrs r3, 7 + 75a: 81 91 ld r24, Z+ + 75c: 5f 01 movw r10, r30 + 75e: b6 01 movw r22, r12 + 760: 90 e0 ldi r25, 0x00 ; 0 + 762: 28 d1 rcall .+592 ; 0x9b4 + 764: 21 10 cpse r2, r1 + 766: 2a 94 dec r2 + 768: 21 e0 ldi r18, 0x01 ; 1 + 76a: 82 1a sub r8, r18 + 76c: 91 08 sbc r9, r1 + 76e: 81 14 cp r8, r1 + 770: 91 04 cpc r9, r1 + 772: 79 f7 brne .-34 ; 0x752 + 774: e1 c0 rjmp .+450 ; 0x938 + 776: 84 36 cpi r24, 0x64 ; 100 + 778: 11 f0 breq .+4 ; 0x77e + 77a: 89 36 cpi r24, 0x69 ; 105 + 77c: 39 f5 brne .+78 ; 0x7cc + 77e: f8 01 movw r30, r16 + 780: 37 fe sbrs r3, 7 + 782: 07 c0 rjmp .+14 ; 0x792 + 784: 60 81 ld r22, Z + 786: 71 81 ldd r23, Z+1 ; 0x01 + 788: 82 81 ldd r24, Z+2 ; 0x02 + 78a: 93 81 ldd r25, Z+3 ; 0x03 + 78c: 0c 5f subi r16, 0xFC ; 252 + 78e: 1f 4f sbci r17, 0xFF ; 255 + 790: 08 c0 rjmp .+16 ; 0x7a2 + 792: 60 81 ld r22, Z + 794: 71 81 ldd r23, Z+1 ; 0x01 + 796: 07 2e mov r0, r23 + 798: 00 0c add r0, r0 + 79a: 88 0b sbc r24, r24 + 79c: 99 0b sbc r25, r25 + 79e: 0e 5f subi r16, 0xFE ; 254 + 7a0: 1f 4f sbci r17, 0xFF ; 255 + 7a2: f3 2d mov r31, r3 + 7a4: ff 76 andi r31, 0x6F ; 111 + 7a6: 3f 2e mov r3, r31 + 7a8: 97 ff sbrs r25, 7 + 7aa: 09 c0 rjmp .+18 ; 0x7be + 7ac: 90 95 com r25 + 7ae: 80 95 com r24 + 7b0: 70 95 com r23 + 7b2: 61 95 neg r22 + 7b4: 7f 4f sbci r23, 0xFF ; 255 + 7b6: 8f 4f sbci r24, 0xFF ; 255 + 7b8: 9f 4f sbci r25, 0xFF ; 255 + 7ba: f0 68 ori r31, 0x80 ; 128 + 7bc: 3f 2e mov r3, r31 + 7be: 2a e0 ldi r18, 0x0A ; 10 + 7c0: 30 e0 ldi r19, 0x00 ; 0 + 7c2: a3 01 movw r20, r6 + 7c4: 33 d1 rcall .+614 ; 0xa2c <__ultoa_invert> + 7c6: 88 2e mov r8, r24 + 7c8: 86 18 sub r8, r6 + 7ca: 44 c0 rjmp .+136 ; 0x854 + 7cc: 85 37 cpi r24, 0x75 ; 117 + 7ce: 31 f4 brne .+12 ; 0x7dc + 7d0: 23 2d mov r18, r3 + 7d2: 2f 7e andi r18, 0xEF ; 239 + 7d4: b2 2e mov r11, r18 + 7d6: 2a e0 ldi r18, 0x0A ; 10 + 7d8: 30 e0 ldi r19, 0x00 ; 0 + 7da: 25 c0 rjmp .+74 ; 0x826 + 7dc: 93 2d mov r25, r3 + 7de: 99 7f andi r25, 0xF9 ; 249 + 7e0: b9 2e mov r11, r25 + 7e2: 8f 36 cpi r24, 0x6F ; 111 + 7e4: c1 f0 breq .+48 ; 0x816 + 7e6: 18 f4 brcc .+6 ; 0x7ee + 7e8: 88 35 cpi r24, 0x58 ; 88 + 7ea: 79 f0 breq .+30 ; 0x80a + 7ec: ae c0 rjmp .+348 ; 0x94a + 7ee: 80 37 cpi r24, 0x70 ; 112 + 7f0: 19 f0 breq .+6 ; 0x7f8 + 7f2: 88 37 cpi r24, 0x78 ; 120 + 7f4: 21 f0 breq .+8 ; 0x7fe + 7f6: a9 c0 rjmp .+338 ; 0x94a + 7f8: e9 2f mov r30, r25 + 7fa: e0 61 ori r30, 0x10 ; 16 + 7fc: be 2e mov r11, r30 + 7fe: b4 fe sbrs r11, 4 + 800: 0d c0 rjmp .+26 ; 0x81c + 802: fb 2d mov r31, r11 + 804: f4 60 ori r31, 0x04 ; 4 + 806: bf 2e mov r11, r31 + 808: 09 c0 rjmp .+18 ; 0x81c + 80a: 34 fe sbrs r3, 4 + 80c: 0a c0 rjmp .+20 ; 0x822 + 80e: 29 2f mov r18, r25 + 810: 26 60 ori r18, 0x06 ; 6 + 812: b2 2e mov r11, r18 + 814: 06 c0 rjmp .+12 ; 0x822 + 816: 28 e0 ldi r18, 0x08 ; 8 + 818: 30 e0 ldi r19, 0x00 ; 0 + 81a: 05 c0 rjmp .+10 ; 0x826 + 81c: 20 e1 ldi r18, 0x10 ; 16 + 81e: 30 e0 ldi r19, 0x00 ; 0 + 820: 02 c0 rjmp .+4 ; 0x826 + 822: 20 e1 ldi r18, 0x10 ; 16 + 824: 32 e0 ldi r19, 0x02 ; 2 + 826: f8 01 movw r30, r16 + 828: b7 fe sbrs r11, 7 + 82a: 07 c0 rjmp .+14 ; 0x83a + 82c: 60 81 ld r22, Z + 82e: 71 81 ldd r23, Z+1 ; 0x01 + 830: 82 81 ldd r24, Z+2 ; 0x02 + 832: 93 81 ldd r25, Z+3 ; 0x03 + 834: 0c 5f subi r16, 0xFC ; 252 + 836: 1f 4f sbci r17, 0xFF ; 255 + 838: 06 c0 rjmp .+12 ; 0x846 + 83a: 60 81 ld r22, Z + 83c: 71 81 ldd r23, Z+1 ; 0x01 + 83e: 80 e0 ldi r24, 0x00 ; 0 + 840: 90 e0 ldi r25, 0x00 ; 0 + 842: 0e 5f subi r16, 0xFE ; 254 + 844: 1f 4f sbci r17, 0xFF ; 255 + 846: a3 01 movw r20, r6 + 848: f1 d0 rcall .+482 ; 0xa2c <__ultoa_invert> + 84a: 88 2e mov r8, r24 + 84c: 86 18 sub r8, r6 + 84e: fb 2d mov r31, r11 + 850: ff 77 andi r31, 0x7F ; 127 + 852: 3f 2e mov r3, r31 + 854: 36 fe sbrs r3, 6 + 856: 0d c0 rjmp .+26 ; 0x872 + 858: 23 2d mov r18, r3 + 85a: 2e 7f andi r18, 0xFE ; 254 + 85c: a2 2e mov r10, r18 + 85e: 89 14 cp r8, r9 + 860: 58 f4 brcc .+22 ; 0x878 + 862: 34 fe sbrs r3, 4 + 864: 0b c0 rjmp .+22 ; 0x87c + 866: 32 fc sbrc r3, 2 + 868: 09 c0 rjmp .+18 ; 0x87c + 86a: 83 2d mov r24, r3 + 86c: 8e 7e andi r24, 0xEE ; 238 + 86e: a8 2e mov r10, r24 + 870: 05 c0 rjmp .+10 ; 0x87c + 872: b8 2c mov r11, r8 + 874: a3 2c mov r10, r3 + 876: 03 c0 rjmp .+6 ; 0x87e + 878: b8 2c mov r11, r8 + 87a: 01 c0 rjmp .+2 ; 0x87e + 87c: b9 2c mov r11, r9 + 87e: a4 fe sbrs r10, 4 + 880: 0f c0 rjmp .+30 ; 0x8a0 + 882: fe 01 movw r30, r28 + 884: e8 0d add r30, r8 + 886: f1 1d adc r31, r1 + 888: 80 81 ld r24, Z + 88a: 80 33 cpi r24, 0x30 ; 48 + 88c: 21 f4 brne .+8 ; 0x896 + 88e: 9a 2d mov r25, r10 + 890: 99 7e andi r25, 0xE9 ; 233 + 892: a9 2e mov r10, r25 + 894: 09 c0 rjmp .+18 ; 0x8a8 + 896: a2 fe sbrs r10, 2 + 898: 06 c0 rjmp .+12 ; 0x8a6 + 89a: b3 94 inc r11 + 89c: b3 94 inc r11 + 89e: 04 c0 rjmp .+8 ; 0x8a8 + 8a0: 8a 2d mov r24, r10 + 8a2: 86 78 andi r24, 0x86 ; 134 + 8a4: 09 f0 breq .+2 ; 0x8a8 + 8a6: b3 94 inc r11 + 8a8: a3 fc sbrc r10, 3 + 8aa: 10 c0 rjmp .+32 ; 0x8cc + 8ac: a0 fe sbrs r10, 0 + 8ae: 06 c0 rjmp .+12 ; 0x8bc + 8b0: b2 14 cp r11, r2 + 8b2: 80 f4 brcc .+32 ; 0x8d4 + 8b4: 28 0c add r2, r8 + 8b6: 92 2c mov r9, r2 + 8b8: 9b 18 sub r9, r11 + 8ba: 0d c0 rjmp .+26 ; 0x8d6 + 8bc: b2 14 cp r11, r2 + 8be: 58 f4 brcc .+22 ; 0x8d6 + 8c0: b6 01 movw r22, r12 + 8c2: 80 e2 ldi r24, 0x20 ; 32 + 8c4: 90 e0 ldi r25, 0x00 ; 0 + 8c6: 76 d0 rcall .+236 ; 0x9b4 + 8c8: b3 94 inc r11 + 8ca: f8 cf rjmp .-16 ; 0x8bc + 8cc: b2 14 cp r11, r2 + 8ce: 18 f4 brcc .+6 ; 0x8d6 + 8d0: 2b 18 sub r2, r11 + 8d2: 02 c0 rjmp .+4 ; 0x8d8 + 8d4: 98 2c mov r9, r8 + 8d6: 21 2c mov r2, r1 + 8d8: a4 fe sbrs r10, 4 + 8da: 0f c0 rjmp .+30 ; 0x8fa + 8dc: b6 01 movw r22, r12 + 8de: 80 e3 ldi r24, 0x30 ; 48 + 8e0: 90 e0 ldi r25, 0x00 ; 0 + 8e2: 68 d0 rcall .+208 ; 0x9b4 + 8e4: a2 fe sbrs r10, 2 + 8e6: 16 c0 rjmp .+44 ; 0x914 + 8e8: a1 fc sbrc r10, 1 + 8ea: 03 c0 rjmp .+6 ; 0x8f2 + 8ec: 88 e7 ldi r24, 0x78 ; 120 + 8ee: 90 e0 ldi r25, 0x00 ; 0 + 8f0: 02 c0 rjmp .+4 ; 0x8f6 + 8f2: 88 e5 ldi r24, 0x58 ; 88 + 8f4: 90 e0 ldi r25, 0x00 ; 0 + 8f6: b6 01 movw r22, r12 + 8f8: 0c c0 rjmp .+24 ; 0x912 + 8fa: 8a 2d mov r24, r10 + 8fc: 86 78 andi r24, 0x86 ; 134 + 8fe: 51 f0 breq .+20 ; 0x914 + 900: a1 fe sbrs r10, 1 + 902: 02 c0 rjmp .+4 ; 0x908 + 904: 8b e2 ldi r24, 0x2B ; 43 + 906: 01 c0 rjmp .+2 ; 0x90a + 908: 80 e2 ldi r24, 0x20 ; 32 + 90a: a7 fc sbrc r10, 7 + 90c: 8d e2 ldi r24, 0x2D ; 45 + 90e: b6 01 movw r22, r12 + 910: 90 e0 ldi r25, 0x00 ; 0 + 912: 50 d0 rcall .+160 ; 0x9b4 + 914: 89 14 cp r8, r9 + 916: 30 f4 brcc .+12 ; 0x924 + 918: b6 01 movw r22, r12 + 91a: 80 e3 ldi r24, 0x30 ; 48 + 91c: 90 e0 ldi r25, 0x00 ; 0 + 91e: 4a d0 rcall .+148 ; 0x9b4 + 920: 9a 94 dec r9 + 922: f8 cf rjmp .-16 ; 0x914 + 924: 8a 94 dec r8 + 926: f3 01 movw r30, r6 + 928: e8 0d add r30, r8 + 92a: f1 1d adc r31, r1 + 92c: 80 81 ld r24, Z + 92e: b6 01 movw r22, r12 + 930: 90 e0 ldi r25, 0x00 ; 0 + 932: 40 d0 rcall .+128 ; 0x9b4 + 934: 81 10 cpse r8, r1 + 936: f6 cf rjmp .-20 ; 0x924 + 938: 22 20 and r2, r2 + 93a: 09 f4 brne .+2 ; 0x93e + 93c: 4e ce rjmp .-868 ; 0x5da + 93e: b6 01 movw r22, r12 + 940: 80 e2 ldi r24, 0x20 ; 32 + 942: 90 e0 ldi r25, 0x00 ; 0 + 944: 37 d0 rcall .+110 ; 0x9b4 + 946: 2a 94 dec r2 + 948: f7 cf rjmp .-18 ; 0x938 + 94a: f6 01 movw r30, r12 + 94c: 86 81 ldd r24, Z+6 ; 0x06 + 94e: 97 81 ldd r25, Z+7 ; 0x07 + 950: 02 c0 rjmp .+4 ; 0x956 + 952: 8f ef ldi r24, 0xFF ; 255 + 954: 9f ef ldi r25, 0xFF ; 255 + 956: 2b 96 adiw r28, 0x0b ; 11 + 958: 0f b6 in r0, 0x3f ; 63 + 95a: f8 94 cli + 95c: de bf out 0x3e, r29 ; 62 + 95e: 0f be out 0x3f, r0 ; 63 + 960: cd bf out 0x3d, r28 ; 61 + 962: df 91 pop r29 + 964: cf 91 pop r28 + 966: 1f 91 pop r17 + 968: 0f 91 pop r16 + 96a: ff 90 pop r15 + 96c: ef 90 pop r14 + 96e: df 90 pop r13 + 970: cf 90 pop r12 + 972: bf 90 pop r11 + 974: af 90 pop r10 + 976: 9f 90 pop r9 + 978: 8f 90 pop r8 + 97a: 7f 90 pop r7 + 97c: 6f 90 pop r6 + 97e: 5f 90 pop r5 + 980: 4f 90 pop r4 + 982: 3f 90 pop r3 + 984: 2f 90 pop r2 + 986: 08 95 ret -0000058e <__divsf3_pse>: - 58e: 99 23 and r25, r25 - 590: c9 f3 breq .-14 ; 0x584 <__divsf3+0x14> - 592: 55 23 and r21, r21 - 594: b1 f3 breq .-20 ; 0x582 <__divsf3+0x12> - 596: 95 1b sub r25, r21 - 598: 55 0b sbc r21, r21 - 59a: bb 27 eor r27, r27 - 59c: aa 27 eor r26, r26 - 59e: 62 17 cp r22, r18 - 5a0: 73 07 cpc r23, r19 - 5a2: 84 07 cpc r24, r20 - 5a4: 38 f0 brcs .+14 ; 0x5b4 <__divsf3_pse+0x26> - 5a6: 9f 5f subi r25, 0xFF ; 255 - 5a8: 5f 4f sbci r21, 0xFF ; 255 - 5aa: 22 0f add r18, r18 - 5ac: 33 1f adc r19, r19 - 5ae: 44 1f adc r20, r20 - 5b0: aa 1f adc r26, r26 - 5b2: a9 f3 breq .-22 ; 0x59e <__divsf3_pse+0x10> - 5b4: 33 d0 rcall .+102 ; 0x61c <__divsf3_pse+0x8e> - 5b6: 0e 2e mov r0, r30 - 5b8: 3a f0 brmi .+14 ; 0x5c8 <__divsf3_pse+0x3a> - 5ba: e0 e8 ldi r30, 0x80 ; 128 - 5bc: 30 d0 rcall .+96 ; 0x61e <__divsf3_pse+0x90> - 5be: 91 50 subi r25, 0x01 ; 1 - 5c0: 50 40 sbci r21, 0x00 ; 0 - 5c2: e6 95 lsr r30 - 5c4: 00 1c adc r0, r0 - 5c6: ca f7 brpl .-14 ; 0x5ba <__divsf3_pse+0x2c> - 5c8: 29 d0 rcall .+82 ; 0x61c <__divsf3_pse+0x8e> - 5ca: fe 2f mov r31, r30 - 5cc: 27 d0 rcall .+78 ; 0x61c <__divsf3_pse+0x8e> - 5ce: 66 0f add r22, r22 - 5d0: 77 1f adc r23, r23 - 5d2: 88 1f adc r24, r24 - 5d4: bb 1f adc r27, r27 - 5d6: 26 17 cp r18, r22 - 5d8: 37 07 cpc r19, r23 - 5da: 48 07 cpc r20, r24 - 5dc: ab 07 cpc r26, r27 - 5de: b0 e8 ldi r27, 0x80 ; 128 - 5e0: 09 f0 breq .+2 ; 0x5e4 <__divsf3_pse+0x56> - 5e2: bb 0b sbc r27, r27 - 5e4: 80 2d mov r24, r0 - 5e6: bf 01 movw r22, r30 - 5e8: ff 27 eor r31, r31 - 5ea: 93 58 subi r25, 0x83 ; 131 - 5ec: 5f 4f sbci r21, 0xFF ; 255 - 5ee: 2a f0 brmi .+10 ; 0x5fa <__divsf3_pse+0x6c> - 5f0: 9e 3f cpi r25, 0xFE ; 254 - 5f2: 51 05 cpc r21, r1 - 5f4: 68 f0 brcs .+26 ; 0x610 <__divsf3_pse+0x82> - 5f6: 61 c0 rjmp .+194 ; 0x6ba <__fp_inf> - 5f8: ab c0 rjmp .+342 ; 0x750 <__fp_szero> - 5fa: 5f 3f cpi r21, 0xFF ; 255 - 5fc: ec f3 brlt .-6 ; 0x5f8 <__divsf3_pse+0x6a> - 5fe: 98 3e cpi r25, 0xE8 ; 232 - 600: dc f3 brlt .-10 ; 0x5f8 <__divsf3_pse+0x6a> - 602: 86 95 lsr r24 - 604: 77 95 ror r23 - 606: 67 95 ror r22 - 608: b7 95 ror r27 - 60a: f7 95 ror r31 - 60c: 9f 5f subi r25, 0xFF ; 255 - 60e: c9 f7 brne .-14 ; 0x602 <__divsf3_pse+0x74> - 610: 88 0f add r24, r24 - 612: 91 1d adc r25, r1 - 614: 96 95 lsr r25 - 616: 87 95 ror r24 - 618: 97 f9 bld r25, 7 - 61a: 08 95 ret - 61c: e1 e0 ldi r30, 0x01 ; 1 - 61e: 66 0f add r22, r22 - 620: 77 1f adc r23, r23 - 622: 88 1f adc r24, r24 - 624: bb 1f adc r27, r27 - 626: 62 17 cp r22, r18 - 628: 73 07 cpc r23, r19 - 62a: 84 07 cpc r24, r20 - 62c: ba 07 cpc r27, r26 - 62e: 20 f0 brcs .+8 ; 0x638 <__divsf3_pse+0xaa> - 630: 62 1b sub r22, r18 - 632: 73 0b sbc r23, r19 - 634: 84 0b sbc r24, r20 - 636: ba 0b sbc r27, r26 - 638: ee 1f adc r30, r30 - 63a: 88 f7 brcc .-30 ; 0x61e <__divsf3_pse+0x90> - 63c: e0 95 com r30 - 63e: 08 95 ret +00000988 : + 988: fc 01 movw r30, r24 + 98a: 05 90 lpm r0, Z+ + 98c: 61 50 subi r22, 0x01 ; 1 + 98e: 70 40 sbci r23, 0x00 ; 0 + 990: 01 10 cpse r0, r1 + 992: d8 f7 brcc .-10 ; 0x98a + 994: 80 95 com r24 + 996: 90 95 com r25 + 998: 8e 0f add r24, r30 + 99a: 9f 1f adc r25, r31 + 99c: 08 95 ret -00000640 <__floatunsisf>: - 640: e8 94 clt - 642: 09 c0 rjmp .+18 ; 0x656 <__floatsisf+0x12> +0000099e : + 99e: fc 01 movw r30, r24 + 9a0: 61 50 subi r22, 0x01 ; 1 + 9a2: 70 40 sbci r23, 0x00 ; 0 + 9a4: 01 90 ld r0, Z+ + 9a6: 01 10 cpse r0, r1 + 9a8: d8 f7 brcc .-10 ; 0x9a0 + 9aa: 80 95 com r24 + 9ac: 90 95 com r25 + 9ae: 8e 0f add r24, r30 + 9b0: 9f 1f adc r25, r31 + 9b2: 08 95 ret -00000644 <__floatsisf>: - 644: 97 fb bst r25, 7 - 646: 3e f4 brtc .+14 ; 0x656 <__floatsisf+0x12> - 648: 90 95 com r25 - 64a: 80 95 com r24 - 64c: 70 95 com r23 - 64e: 61 95 neg r22 - 650: 7f 4f sbci r23, 0xFF ; 255 - 652: 8f 4f sbci r24, 0xFF ; 255 - 654: 9f 4f sbci r25, 0xFF ; 255 - 656: 99 23 and r25, r25 - 658: a9 f0 breq .+42 ; 0x684 <__floatsisf+0x40> - 65a: f9 2f mov r31, r25 - 65c: 96 e9 ldi r25, 0x96 ; 150 - 65e: bb 27 eor r27, r27 - 660: 93 95 inc r25 - 662: f6 95 lsr r31 - 664: 87 95 ror r24 - 666: 77 95 ror r23 - 668: 67 95 ror r22 - 66a: b7 95 ror r27 - 66c: f1 11 cpse r31, r1 - 66e: f8 cf rjmp .-16 ; 0x660 <__floatsisf+0x1c> - 670: fa f4 brpl .+62 ; 0x6b0 <__floatsisf+0x6c> - 672: bb 0f add r27, r27 - 674: 11 f4 brne .+4 ; 0x67a <__floatsisf+0x36> - 676: 60 ff sbrs r22, 0 - 678: 1b c0 rjmp .+54 ; 0x6b0 <__floatsisf+0x6c> - 67a: 6f 5f subi r22, 0xFF ; 255 - 67c: 7f 4f sbci r23, 0xFF ; 255 - 67e: 8f 4f sbci r24, 0xFF ; 255 - 680: 9f 4f sbci r25, 0xFF ; 255 - 682: 16 c0 rjmp .+44 ; 0x6b0 <__floatsisf+0x6c> - 684: 88 23 and r24, r24 - 686: 11 f0 breq .+4 ; 0x68c <__floatsisf+0x48> - 688: 96 e9 ldi r25, 0x96 ; 150 - 68a: 11 c0 rjmp .+34 ; 0x6ae <__floatsisf+0x6a> - 68c: 77 23 and r23, r23 - 68e: 21 f0 breq .+8 ; 0x698 <__floatsisf+0x54> - 690: 9e e8 ldi r25, 0x8E ; 142 - 692: 87 2f mov r24, r23 - 694: 76 2f mov r23, r22 - 696: 05 c0 rjmp .+10 ; 0x6a2 <__floatsisf+0x5e> - 698: 66 23 and r22, r22 - 69a: 71 f0 breq .+28 ; 0x6b8 <__floatsisf+0x74> - 69c: 96 e8 ldi r25, 0x86 ; 134 - 69e: 86 2f mov r24, r22 - 6a0: 70 e0 ldi r23, 0x00 ; 0 - 6a2: 60 e0 ldi r22, 0x00 ; 0 - 6a4: 2a f0 brmi .+10 ; 0x6b0 <__floatsisf+0x6c> - 6a6: 9a 95 dec r25 - 6a8: 66 0f add r22, r22 - 6aa: 77 1f adc r23, r23 - 6ac: 88 1f adc r24, r24 - 6ae: da f7 brpl .-10 ; 0x6a6 <__floatsisf+0x62> - 6b0: 88 0f add r24, r24 - 6b2: 96 95 lsr r25 - 6b4: 87 95 ror r24 - 6b6: 97 f9 bld r25, 7 - 6b8: 08 95 ret +000009b4 : + 9b4: 0f 93 push r16 + 9b6: 1f 93 push r17 + 9b8: cf 93 push r28 + 9ba: df 93 push r29 + 9bc: fb 01 movw r30, r22 + 9be: 23 81 ldd r18, Z+3 ; 0x03 + 9c0: 21 fd sbrc r18, 1 + 9c2: 03 c0 rjmp .+6 ; 0x9ca + 9c4: 8f ef ldi r24, 0xFF ; 255 + 9c6: 9f ef ldi r25, 0xFF ; 255 + 9c8: 2c c0 rjmp .+88 ; 0xa22 + 9ca: 22 ff sbrs r18, 2 + 9cc: 16 c0 rjmp .+44 ; 0x9fa + 9ce: 46 81 ldd r20, Z+6 ; 0x06 + 9d0: 57 81 ldd r21, Z+7 ; 0x07 + 9d2: 24 81 ldd r18, Z+4 ; 0x04 + 9d4: 35 81 ldd r19, Z+5 ; 0x05 + 9d6: 42 17 cp r20, r18 + 9d8: 53 07 cpc r21, r19 + 9da: 44 f4 brge .+16 ; 0x9ec + 9dc: a0 81 ld r26, Z + 9de: b1 81 ldd r27, Z+1 ; 0x01 + 9e0: 9d 01 movw r18, r26 + 9e2: 2f 5f subi r18, 0xFF ; 255 + 9e4: 3f 4f sbci r19, 0xFF ; 255 + 9e6: 31 83 std Z+1, r19 ; 0x01 + 9e8: 20 83 st Z, r18 + 9ea: 8c 93 st X, r24 + 9ec: 26 81 ldd r18, Z+6 ; 0x06 + 9ee: 37 81 ldd r19, Z+7 ; 0x07 + 9f0: 2f 5f subi r18, 0xFF ; 255 + 9f2: 3f 4f sbci r19, 0xFF ; 255 + 9f4: 37 83 std Z+7, r19 ; 0x07 + 9f6: 26 83 std Z+6, r18 ; 0x06 + 9f8: 14 c0 rjmp .+40 ; 0xa22 + 9fa: 8b 01 movw r16, r22 + 9fc: ec 01 movw r28, r24 + 9fe: fb 01 movw r30, r22 + a00: 00 84 ldd r0, Z+8 ; 0x08 + a02: f1 85 ldd r31, Z+9 ; 0x09 + a04: e0 2d mov r30, r0 + a06: 09 95 icall + a08: 89 2b or r24, r25 + a0a: e1 f6 brne .-72 ; 0x9c4 + a0c: d8 01 movw r26, r16 + a0e: 16 96 adiw r26, 0x06 ; 6 + a10: 8d 91 ld r24, X+ + a12: 9c 91 ld r25, X + a14: 17 97 sbiw r26, 0x07 ; 7 + a16: 01 96 adiw r24, 0x01 ; 1 + a18: 17 96 adiw r26, 0x07 ; 7 + a1a: 9c 93 st X, r25 + a1c: 8e 93 st -X, r24 + a1e: 16 97 sbiw r26, 0x06 ; 6 + a20: ce 01 movw r24, r28 + a22: df 91 pop r29 + a24: cf 91 pop r28 + a26: 1f 91 pop r17 + a28: 0f 91 pop r16 + a2a: 08 95 ret -000006ba <__fp_inf>: - 6ba: 97 f9 bld r25, 7 - 6bc: 9f 67 ori r25, 0x7F ; 127 - 6be: 80 e8 ldi r24, 0x80 ; 128 - 6c0: 70 e0 ldi r23, 0x00 ; 0 - 6c2: 60 e0 ldi r22, 0x00 ; 0 - 6c4: 08 95 ret +00000a2c <__ultoa_invert>: + a2c: fa 01 movw r30, r20 + a2e: aa 27 eor r26, r26 + a30: 28 30 cpi r18, 0x08 ; 8 + a32: 51 f1 breq .+84 ; 0xa88 <__ultoa_invert+0x5c> + a34: 20 31 cpi r18, 0x10 ; 16 + a36: 81 f1 breq .+96 ; 0xa98 <__ultoa_invert+0x6c> + a38: e8 94 clt + a3a: 6f 93 push r22 + a3c: 6e 7f andi r22, 0xFE ; 254 + a3e: 6e 5f subi r22, 0xFE ; 254 + a40: 7f 4f sbci r23, 0xFF ; 255 + a42: 8f 4f sbci r24, 0xFF ; 255 + a44: 9f 4f sbci r25, 0xFF ; 255 + a46: af 4f sbci r26, 0xFF ; 255 + a48: b1 e0 ldi r27, 0x01 ; 1 + a4a: 3e d0 rcall .+124 ; 0xac8 <__ultoa_invert+0x9c> + a4c: b4 e0 ldi r27, 0x04 ; 4 + a4e: 3c d0 rcall .+120 ; 0xac8 <__ultoa_invert+0x9c> + a50: 67 0f add r22, r23 + a52: 78 1f adc r23, r24 + a54: 89 1f adc r24, r25 + a56: 9a 1f adc r25, r26 + a58: a1 1d adc r26, r1 + a5a: 68 0f add r22, r24 + a5c: 79 1f adc r23, r25 + a5e: 8a 1f adc r24, r26 + a60: 91 1d adc r25, r1 + a62: a1 1d adc r26, r1 + a64: 6a 0f add r22, r26 + a66: 71 1d adc r23, r1 + a68: 81 1d adc r24, r1 + a6a: 91 1d adc r25, r1 + a6c: a1 1d adc r26, r1 + a6e: 20 d0 rcall .+64 ; 0xab0 <__ultoa_invert+0x84> + a70: 09 f4 brne .+2 ; 0xa74 <__ultoa_invert+0x48> + a72: 68 94 set + a74: 3f 91 pop r19 + a76: 2a e0 ldi r18, 0x0A ; 10 + a78: 26 9f mul r18, r22 + a7a: 11 24 eor r1, r1 + a7c: 30 19 sub r19, r0 + a7e: 30 5d subi r19, 0xD0 ; 208 + a80: 31 93 st Z+, r19 + a82: de f6 brtc .-74 ; 0xa3a <__ultoa_invert+0xe> + a84: cf 01 movw r24, r30 + a86: 08 95 ret + a88: 46 2f mov r20, r22 + a8a: 47 70 andi r20, 0x07 ; 7 + a8c: 40 5d subi r20, 0xD0 ; 208 + a8e: 41 93 st Z+, r20 + a90: b3 e0 ldi r27, 0x03 ; 3 + a92: 0f d0 rcall .+30 ; 0xab2 <__ultoa_invert+0x86> + a94: c9 f7 brne .-14 ; 0xa88 <__ultoa_invert+0x5c> + a96: f6 cf rjmp .-20 ; 0xa84 <__ultoa_invert+0x58> + a98: 46 2f mov r20, r22 + a9a: 4f 70 andi r20, 0x0F ; 15 + a9c: 40 5d subi r20, 0xD0 ; 208 + a9e: 4a 33 cpi r20, 0x3A ; 58 + aa0: 18 f0 brcs .+6 ; 0xaa8 <__ultoa_invert+0x7c> + aa2: 49 5d subi r20, 0xD9 ; 217 + aa4: 31 fd sbrc r19, 1 + aa6: 40 52 subi r20, 0x20 ; 32 + aa8: 41 93 st Z+, r20 + aaa: 02 d0 rcall .+4 ; 0xab0 <__ultoa_invert+0x84> + aac: a9 f7 brne .-22 ; 0xa98 <__ultoa_invert+0x6c> + aae: ea cf rjmp .-44 ; 0xa84 <__ultoa_invert+0x58> + ab0: b4 e0 ldi r27, 0x04 ; 4 + ab2: a6 95 lsr r26 + ab4: 97 95 ror r25 + ab6: 87 95 ror r24 + ab8: 77 95 ror r23 + aba: 67 95 ror r22 + abc: ba 95 dec r27 + abe: c9 f7 brne .-14 ; 0xab2 <__ultoa_invert+0x86> + ac0: 00 97 sbiw r24, 0x00 ; 0 + ac2: 61 05 cpc r22, r1 + ac4: 71 05 cpc r23, r1 + ac6: 08 95 ret + ac8: 9b 01 movw r18, r22 + aca: ac 01 movw r20, r24 + acc: 0a 2e mov r0, r26 + ace: 06 94 lsr r0 + ad0: 57 95 ror r21 + ad2: 47 95 ror r20 + ad4: 37 95 ror r19 + ad6: 27 95 ror r18 + ad8: ba 95 dec r27 + ada: c9 f7 brne .-14 ; 0xace <__ultoa_invert+0xa2> + adc: 62 0f add r22, r18 + ade: 73 1f adc r23, r19 + ae0: 84 1f adc r24, r20 + ae2: 95 1f adc r25, r21 + ae4: a0 1d adc r26, r0 + ae6: 08 95 ret -000006c6 <__fp_nan>: - 6c6: 9f ef ldi r25, 0xFF ; 255 - 6c8: 80 ec ldi r24, 0xC0 ; 192 - 6ca: 08 95 ret +00000ae8 <_exit>: + ae8: f8 94 cli -000006cc <__fp_pscA>: - 6cc: 00 24 eor r0, r0 - 6ce: 0a 94 dec r0 - 6d0: 16 16 cp r1, r22 - 6d2: 17 06 cpc r1, r23 - 6d4: 18 06 cpc r1, r24 - 6d6: 09 06 cpc r0, r25 - 6d8: 08 95 ret - -000006da <__fp_pscB>: - 6da: 00 24 eor r0, r0 - 6dc: 0a 94 dec r0 - 6de: 12 16 cp r1, r18 - 6e0: 13 06 cpc r1, r19 - 6e2: 14 06 cpc r1, r20 - 6e4: 05 06 cpc r0, r21 - 6e6: 08 95 ret - -000006e8 <__fp_round>: - 6e8: 09 2e mov r0, r25 - 6ea: 03 94 inc r0 - 6ec: 00 0c add r0, r0 - 6ee: 11 f4 brne .+4 ; 0x6f4 <__fp_round+0xc> - 6f0: 88 23 and r24, r24 - 6f2: 52 f0 brmi .+20 ; 0x708 <__fp_round+0x20> - 6f4: bb 0f add r27, r27 - 6f6: 40 f4 brcc .+16 ; 0x708 <__fp_round+0x20> - 6f8: bf 2b or r27, r31 - 6fa: 11 f4 brne .+4 ; 0x700 <__fp_round+0x18> - 6fc: 60 ff sbrs r22, 0 - 6fe: 04 c0 rjmp .+8 ; 0x708 <__fp_round+0x20> - 700: 6f 5f subi r22, 0xFF ; 255 - 702: 7f 4f sbci r23, 0xFF ; 255 - 704: 8f 4f sbci r24, 0xFF ; 255 - 706: 9f 4f sbci r25, 0xFF ; 255 - 708: 08 95 ret - -0000070a <__fp_split3>: - 70a: 57 fd sbrc r21, 7 - 70c: 90 58 subi r25, 0x80 ; 128 - 70e: 44 0f add r20, r20 - 710: 55 1f adc r21, r21 - 712: 59 f0 breq .+22 ; 0x72a <__fp_splitA+0x10> - 714: 5f 3f cpi r21, 0xFF ; 255 - 716: 71 f0 breq .+28 ; 0x734 <__fp_splitA+0x1a> - 718: 47 95 ror r20 - -0000071a <__fp_splitA>: - 71a: 88 0f add r24, r24 - 71c: 97 fb bst r25, 7 - 71e: 99 1f adc r25, r25 - 720: 61 f0 breq .+24 ; 0x73a <__fp_splitA+0x20> - 722: 9f 3f cpi r25, 0xFF ; 255 - 724: 79 f0 breq .+30 ; 0x744 <__fp_splitA+0x2a> - 726: 87 95 ror r24 - 728: 08 95 ret - 72a: 12 16 cp r1, r18 - 72c: 13 06 cpc r1, r19 - 72e: 14 06 cpc r1, r20 - 730: 55 1f adc r21, r21 - 732: f2 cf rjmp .-28 ; 0x718 <__fp_split3+0xe> - 734: 46 95 lsr r20 - 736: f1 df rcall .-30 ; 0x71a <__fp_splitA> - 738: 08 c0 rjmp .+16 ; 0x74a <__fp_splitA+0x30> - 73a: 16 16 cp r1, r22 - 73c: 17 06 cpc r1, r23 - 73e: 18 06 cpc r1, r24 - 740: 99 1f adc r25, r25 - 742: f1 cf rjmp .-30 ; 0x726 <__fp_splitA+0xc> - 744: 86 95 lsr r24 - 746: 71 05 cpc r23, r1 - 748: 61 05 cpc r22, r1 - 74a: 08 94 sec - 74c: 08 95 ret - -0000074e <__fp_zero>: - 74e: e8 94 clt - -00000750 <__fp_szero>: - 750: bb 27 eor r27, r27 - 752: 66 27 eor r22, r22 - 754: 77 27 eor r23, r23 - 756: cb 01 movw r24, r22 - 758: 97 f9 bld r25, 7 - 75a: 08 95 ret - -0000075c : - 75c: 0f 93 push r16 - 75e: 1f 93 push r17 - 760: cf 93 push r28 - 762: df 93 push r29 - 764: cd b7 in r28, 0x3d ; 61 - 766: de b7 in r29, 0x3e ; 62 - 768: 2e 97 sbiw r28, 0x0e ; 14 - 76a: 0f b6 in r0, 0x3f ; 63 - 76c: f8 94 cli - 76e: de bf out 0x3e, r29 ; 62 - 770: 0f be out 0x3f, r0 ; 63 - 772: cd bf out 0x3d, r28 ; 61 - 774: 0d 89 ldd r16, Y+21 ; 0x15 - 776: 1e 89 ldd r17, Y+22 ; 0x16 - 778: 8f 89 ldd r24, Y+23 ; 0x17 - 77a: 98 8d ldd r25, Y+24 ; 0x18 - 77c: 26 e0 ldi r18, 0x06 ; 6 - 77e: 2c 83 std Y+4, r18 ; 0x04 - 780: 1a 83 std Y+2, r17 ; 0x02 - 782: 09 83 std Y+1, r16 ; 0x01 - 784: 97 ff sbrs r25, 7 - 786: 02 c0 rjmp .+4 ; 0x78c - 788: 80 e0 ldi r24, 0x00 ; 0 - 78a: 90 e8 ldi r25, 0x80 ; 128 - 78c: 01 97 sbiw r24, 0x01 ; 1 - 78e: 9e 83 std Y+6, r25 ; 0x06 - 790: 8d 83 std Y+5, r24 ; 0x05 - 792: ae 01 movw r20, r28 - 794: 45 5e subi r20, 0xE5 ; 229 - 796: 5f 4f sbci r21, 0xFF ; 255 - 798: 69 8d ldd r22, Y+25 ; 0x19 - 79a: 7a 8d ldd r23, Y+26 ; 0x1a - 79c: ce 01 movw r24, r28 - 79e: 01 96 adiw r24, 0x01 ; 1 - 7a0: 19 d0 rcall .+50 ; 0x7d4 - 7a2: 4d 81 ldd r20, Y+5 ; 0x05 - 7a4: 5e 81 ldd r21, Y+6 ; 0x06 - 7a6: 57 fd sbrc r21, 7 - 7a8: 0a c0 rjmp .+20 ; 0x7be - 7aa: 2f 81 ldd r18, Y+7 ; 0x07 - 7ac: 38 85 ldd r19, Y+8 ; 0x08 - 7ae: 42 17 cp r20, r18 - 7b0: 53 07 cpc r21, r19 - 7b2: 0c f4 brge .+2 ; 0x7b6 - 7b4: 9a 01 movw r18, r20 - 7b6: f8 01 movw r30, r16 - 7b8: e2 0f add r30, r18 - 7ba: f3 1f adc r31, r19 - 7bc: 10 82 st Z, r1 - 7be: 2e 96 adiw r28, 0x0e ; 14 - 7c0: 0f b6 in r0, 0x3f ; 63 - 7c2: f8 94 cli - 7c4: de bf out 0x3e, r29 ; 62 - 7c6: 0f be out 0x3f, r0 ; 63 - 7c8: cd bf out 0x3d, r28 ; 61 - 7ca: df 91 pop r29 - 7cc: cf 91 pop r28 - 7ce: 1f 91 pop r17 - 7d0: 0f 91 pop r16 - 7d2: 08 95 ret - -000007d4 : - 7d4: 2f 92 push r2 - 7d6: 3f 92 push r3 - 7d8: 4f 92 push r4 - 7da: 5f 92 push r5 - 7dc: 6f 92 push r6 - 7de: 7f 92 push r7 - 7e0: 8f 92 push r8 - 7e2: 9f 92 push r9 - 7e4: af 92 push r10 - 7e6: bf 92 push r11 - 7e8: cf 92 push r12 - 7ea: df 92 push r13 - 7ec: ef 92 push r14 - 7ee: ff 92 push r15 - 7f0: 0f 93 push r16 - 7f2: 1f 93 push r17 - 7f4: cf 93 push r28 - 7f6: df 93 push r29 - 7f8: cd b7 in r28, 0x3d ; 61 - 7fa: de b7 in r29, 0x3e ; 62 - 7fc: 2b 97 sbiw r28, 0x0b ; 11 - 7fe: 0f b6 in r0, 0x3f ; 63 - 800: f8 94 cli - 802: de bf out 0x3e, r29 ; 62 - 804: 0f be out 0x3f, r0 ; 63 - 806: cd bf out 0x3d, r28 ; 61 - 808: 6c 01 movw r12, r24 - 80a: 7b 01 movw r14, r22 - 80c: 8a 01 movw r16, r20 - 80e: fc 01 movw r30, r24 - 810: 17 82 std Z+7, r1 ; 0x07 - 812: 16 82 std Z+6, r1 ; 0x06 - 814: 83 81 ldd r24, Z+3 ; 0x03 - 816: 81 ff sbrs r24, 1 - 818: bf c1 rjmp .+894 ; 0xb98 - 81a: ce 01 movw r24, r28 - 81c: 01 96 adiw r24, 0x01 ; 1 - 81e: 3c 01 movw r6, r24 - 820: f6 01 movw r30, r12 - 822: 93 81 ldd r25, Z+3 ; 0x03 - 824: f7 01 movw r30, r14 - 826: 93 fd sbrc r25, 3 - 828: 85 91 lpm r24, Z+ - 82a: 93 ff sbrs r25, 3 - 82c: 81 91 ld r24, Z+ - 82e: 7f 01 movw r14, r30 - 830: 88 23 and r24, r24 - 832: 09 f4 brne .+2 ; 0x836 - 834: ad c1 rjmp .+858 ; 0xb90 - 836: 85 32 cpi r24, 0x25 ; 37 - 838: 39 f4 brne .+14 ; 0x848 - 83a: 93 fd sbrc r25, 3 - 83c: 85 91 lpm r24, Z+ - 83e: 93 ff sbrs r25, 3 - 840: 81 91 ld r24, Z+ - 842: 7f 01 movw r14, r30 - 844: 85 32 cpi r24, 0x25 ; 37 - 846: 21 f4 brne .+8 ; 0x850 - 848: b6 01 movw r22, r12 - 84a: 90 e0 ldi r25, 0x00 ; 0 - 84c: d6 d1 rcall .+940 ; 0xbfa - 84e: e8 cf rjmp .-48 ; 0x820 - 850: 91 2c mov r9, r1 - 852: 21 2c mov r2, r1 - 854: 31 2c mov r3, r1 - 856: ff e1 ldi r31, 0x1F ; 31 - 858: f3 15 cp r31, r3 - 85a: d8 f0 brcs .+54 ; 0x892 - 85c: 8b 32 cpi r24, 0x2B ; 43 - 85e: 79 f0 breq .+30 ; 0x87e - 860: 38 f4 brcc .+14 ; 0x870 - 862: 80 32 cpi r24, 0x20 ; 32 - 864: 79 f0 breq .+30 ; 0x884 - 866: 83 32 cpi r24, 0x23 ; 35 - 868: a1 f4 brne .+40 ; 0x892 - 86a: 23 2d mov r18, r3 - 86c: 20 61 ori r18, 0x10 ; 16 - 86e: 1d c0 rjmp .+58 ; 0x8aa - 870: 8d 32 cpi r24, 0x2D ; 45 - 872: 61 f0 breq .+24 ; 0x88c - 874: 80 33 cpi r24, 0x30 ; 48 - 876: 69 f4 brne .+26 ; 0x892 - 878: 23 2d mov r18, r3 - 87a: 21 60 ori r18, 0x01 ; 1 - 87c: 16 c0 rjmp .+44 ; 0x8aa - 87e: 83 2d mov r24, r3 - 880: 82 60 ori r24, 0x02 ; 2 - 882: 38 2e mov r3, r24 - 884: e3 2d mov r30, r3 - 886: e4 60 ori r30, 0x04 ; 4 - 888: 3e 2e mov r3, r30 - 88a: 2a c0 rjmp .+84 ; 0x8e0 - 88c: f3 2d mov r31, r3 - 88e: f8 60 ori r31, 0x08 ; 8 - 890: 1d c0 rjmp .+58 ; 0x8cc - 892: 37 fc sbrc r3, 7 - 894: 2d c0 rjmp .+90 ; 0x8f0 - 896: 20 ed ldi r18, 0xD0 ; 208 - 898: 28 0f add r18, r24 - 89a: 2a 30 cpi r18, 0x0A ; 10 - 89c: 40 f0 brcs .+16 ; 0x8ae - 89e: 8e 32 cpi r24, 0x2E ; 46 - 8a0: b9 f4 brne .+46 ; 0x8d0 - 8a2: 36 fc sbrc r3, 6 - 8a4: 75 c1 rjmp .+746 ; 0xb90 - 8a6: 23 2d mov r18, r3 - 8a8: 20 64 ori r18, 0x40 ; 64 - 8aa: 32 2e mov r3, r18 - 8ac: 19 c0 rjmp .+50 ; 0x8e0 - 8ae: 36 fe sbrs r3, 6 - 8b0: 06 c0 rjmp .+12 ; 0x8be - 8b2: 8a e0 ldi r24, 0x0A ; 10 - 8b4: 98 9e mul r9, r24 - 8b6: 20 0d add r18, r0 - 8b8: 11 24 eor r1, r1 - 8ba: 92 2e mov r9, r18 - 8bc: 11 c0 rjmp .+34 ; 0x8e0 - 8be: ea e0 ldi r30, 0x0A ; 10 - 8c0: 2e 9e mul r2, r30 - 8c2: 20 0d add r18, r0 - 8c4: 11 24 eor r1, r1 - 8c6: 22 2e mov r2, r18 - 8c8: f3 2d mov r31, r3 - 8ca: f0 62 ori r31, 0x20 ; 32 - 8cc: 3f 2e mov r3, r31 - 8ce: 08 c0 rjmp .+16 ; 0x8e0 - 8d0: 8c 36 cpi r24, 0x6C ; 108 - 8d2: 21 f4 brne .+8 ; 0x8dc - 8d4: 83 2d mov r24, r3 - 8d6: 80 68 ori r24, 0x80 ; 128 - 8d8: 38 2e mov r3, r24 - 8da: 02 c0 rjmp .+4 ; 0x8e0 - 8dc: 88 36 cpi r24, 0x68 ; 104 - 8de: 41 f4 brne .+16 ; 0x8f0 - 8e0: f7 01 movw r30, r14 - 8e2: 93 fd sbrc r25, 3 - 8e4: 85 91 lpm r24, Z+ - 8e6: 93 ff sbrs r25, 3 - 8e8: 81 91 ld r24, Z+ - 8ea: 7f 01 movw r14, r30 - 8ec: 81 11 cpse r24, r1 - 8ee: b3 cf rjmp .-154 ; 0x856 - 8f0: 98 2f mov r25, r24 - 8f2: 9f 7d andi r25, 0xDF ; 223 - 8f4: 95 54 subi r25, 0x45 ; 69 - 8f6: 93 30 cpi r25, 0x03 ; 3 - 8f8: 28 f4 brcc .+10 ; 0x904 - 8fa: 0c 5f subi r16, 0xFC ; 252 - 8fc: 1f 4f sbci r17, 0xFF ; 255 - 8fe: 9f e3 ldi r25, 0x3F ; 63 - 900: 99 83 std Y+1, r25 ; 0x01 - 902: 0d c0 rjmp .+26 ; 0x91e - 904: 83 36 cpi r24, 0x63 ; 99 - 906: 31 f0 breq .+12 ; 0x914 - 908: 83 37 cpi r24, 0x73 ; 115 - 90a: 71 f0 breq .+28 ; 0x928 - 90c: 83 35 cpi r24, 0x53 ; 83 - 90e: 09 f0 breq .+2 ; 0x912 - 910: 55 c0 rjmp .+170 ; 0x9bc - 912: 20 c0 rjmp .+64 ; 0x954 - 914: f8 01 movw r30, r16 - 916: 80 81 ld r24, Z - 918: 89 83 std Y+1, r24 ; 0x01 - 91a: 0e 5f subi r16, 0xFE ; 254 - 91c: 1f 4f sbci r17, 0xFF ; 255 - 91e: 88 24 eor r8, r8 - 920: 83 94 inc r8 - 922: 91 2c mov r9, r1 - 924: 53 01 movw r10, r6 - 926: 12 c0 rjmp .+36 ; 0x94c - 928: 28 01 movw r4, r16 - 92a: f2 e0 ldi r31, 0x02 ; 2 - 92c: 4f 0e add r4, r31 - 92e: 51 1c adc r5, r1 - 930: f8 01 movw r30, r16 - 932: a0 80 ld r10, Z - 934: b1 80 ldd r11, Z+1 ; 0x01 - 936: 36 fe sbrs r3, 6 - 938: 03 c0 rjmp .+6 ; 0x940 - 93a: 69 2d mov r22, r9 - 93c: 70 e0 ldi r23, 0x00 ; 0 - 93e: 02 c0 rjmp .+4 ; 0x944 - 940: 6f ef ldi r22, 0xFF ; 255 - 942: 7f ef ldi r23, 0xFF ; 255 - 944: c5 01 movw r24, r10 - 946: 4e d1 rcall .+668 ; 0xbe4 - 948: 4c 01 movw r8, r24 - 94a: 82 01 movw r16, r4 - 94c: f3 2d mov r31, r3 - 94e: ff 77 andi r31, 0x7F ; 127 - 950: 3f 2e mov r3, r31 - 952: 15 c0 rjmp .+42 ; 0x97e - 954: 28 01 movw r4, r16 - 956: 22 e0 ldi r18, 0x02 ; 2 - 958: 42 0e add r4, r18 - 95a: 51 1c adc r5, r1 - 95c: f8 01 movw r30, r16 - 95e: a0 80 ld r10, Z - 960: b1 80 ldd r11, Z+1 ; 0x01 - 962: 36 fe sbrs r3, 6 - 964: 03 c0 rjmp .+6 ; 0x96c - 966: 69 2d mov r22, r9 - 968: 70 e0 ldi r23, 0x00 ; 0 - 96a: 02 c0 rjmp .+4 ; 0x970 - 96c: 6f ef ldi r22, 0xFF ; 255 - 96e: 7f ef ldi r23, 0xFF ; 255 - 970: c5 01 movw r24, r10 - 972: 2d d1 rcall .+602 ; 0xbce - 974: 4c 01 movw r8, r24 - 976: f3 2d mov r31, r3 - 978: f0 68 ori r31, 0x80 ; 128 - 97a: 3f 2e mov r3, r31 - 97c: 82 01 movw r16, r4 - 97e: 33 fc sbrc r3, 3 - 980: 19 c0 rjmp .+50 ; 0x9b4 - 982: 82 2d mov r24, r2 - 984: 90 e0 ldi r25, 0x00 ; 0 - 986: 88 16 cp r8, r24 - 988: 99 06 cpc r9, r25 - 98a: a0 f4 brcc .+40 ; 0x9b4 - 98c: b6 01 movw r22, r12 - 98e: 80 e2 ldi r24, 0x20 ; 32 - 990: 90 e0 ldi r25, 0x00 ; 0 - 992: 33 d1 rcall .+614 ; 0xbfa - 994: 2a 94 dec r2 - 996: f5 cf rjmp .-22 ; 0x982 - 998: f5 01 movw r30, r10 - 99a: 37 fc sbrc r3, 7 - 99c: 85 91 lpm r24, Z+ - 99e: 37 fe sbrs r3, 7 - 9a0: 81 91 ld r24, Z+ - 9a2: 5f 01 movw r10, r30 - 9a4: b6 01 movw r22, r12 - 9a6: 90 e0 ldi r25, 0x00 ; 0 - 9a8: 28 d1 rcall .+592 ; 0xbfa - 9aa: 21 10 cpse r2, r1 - 9ac: 2a 94 dec r2 - 9ae: 21 e0 ldi r18, 0x01 ; 1 - 9b0: 82 1a sub r8, r18 - 9b2: 91 08 sbc r9, r1 - 9b4: 81 14 cp r8, r1 - 9b6: 91 04 cpc r9, r1 - 9b8: 79 f7 brne .-34 ; 0x998 - 9ba: e1 c0 rjmp .+450 ; 0xb7e - 9bc: 84 36 cpi r24, 0x64 ; 100 - 9be: 11 f0 breq .+4 ; 0x9c4 - 9c0: 89 36 cpi r24, 0x69 ; 105 - 9c2: 39 f5 brne .+78 ; 0xa12 - 9c4: f8 01 movw r30, r16 - 9c6: 37 fe sbrs r3, 7 - 9c8: 07 c0 rjmp .+14 ; 0x9d8 - 9ca: 60 81 ld r22, Z - 9cc: 71 81 ldd r23, Z+1 ; 0x01 - 9ce: 82 81 ldd r24, Z+2 ; 0x02 - 9d0: 93 81 ldd r25, Z+3 ; 0x03 - 9d2: 0c 5f subi r16, 0xFC ; 252 - 9d4: 1f 4f sbci r17, 0xFF ; 255 - 9d6: 08 c0 rjmp .+16 ; 0x9e8 - 9d8: 60 81 ld r22, Z - 9da: 71 81 ldd r23, Z+1 ; 0x01 - 9dc: 07 2e mov r0, r23 - 9de: 00 0c add r0, r0 - 9e0: 88 0b sbc r24, r24 - 9e2: 99 0b sbc r25, r25 - 9e4: 0e 5f subi r16, 0xFE ; 254 - 9e6: 1f 4f sbci r17, 0xFF ; 255 - 9e8: f3 2d mov r31, r3 - 9ea: ff 76 andi r31, 0x6F ; 111 - 9ec: 3f 2e mov r3, r31 - 9ee: 97 ff sbrs r25, 7 - 9f0: 09 c0 rjmp .+18 ; 0xa04 - 9f2: 90 95 com r25 - 9f4: 80 95 com r24 - 9f6: 70 95 com r23 - 9f8: 61 95 neg r22 - 9fa: 7f 4f sbci r23, 0xFF ; 255 - 9fc: 8f 4f sbci r24, 0xFF ; 255 - 9fe: 9f 4f sbci r25, 0xFF ; 255 - a00: f0 68 ori r31, 0x80 ; 128 - a02: 3f 2e mov r3, r31 - a04: 2a e0 ldi r18, 0x0A ; 10 - a06: 30 e0 ldi r19, 0x00 ; 0 - a08: a3 01 movw r20, r6 - a0a: 33 d1 rcall .+614 ; 0xc72 <__ultoa_invert> - a0c: 88 2e mov r8, r24 - a0e: 86 18 sub r8, r6 - a10: 44 c0 rjmp .+136 ; 0xa9a - a12: 85 37 cpi r24, 0x75 ; 117 - a14: 31 f4 brne .+12 ; 0xa22 - a16: 23 2d mov r18, r3 - a18: 2f 7e andi r18, 0xEF ; 239 - a1a: b2 2e mov r11, r18 - a1c: 2a e0 ldi r18, 0x0A ; 10 - a1e: 30 e0 ldi r19, 0x00 ; 0 - a20: 25 c0 rjmp .+74 ; 0xa6c - a22: 93 2d mov r25, r3 - a24: 99 7f andi r25, 0xF9 ; 249 - a26: b9 2e mov r11, r25 - a28: 8f 36 cpi r24, 0x6F ; 111 - a2a: c1 f0 breq .+48 ; 0xa5c - a2c: 18 f4 brcc .+6 ; 0xa34 - a2e: 88 35 cpi r24, 0x58 ; 88 - a30: 79 f0 breq .+30 ; 0xa50 - a32: ae c0 rjmp .+348 ; 0xb90 - a34: 80 37 cpi r24, 0x70 ; 112 - a36: 19 f0 breq .+6 ; 0xa3e - a38: 88 37 cpi r24, 0x78 ; 120 - a3a: 21 f0 breq .+8 ; 0xa44 - a3c: a9 c0 rjmp .+338 ; 0xb90 - a3e: e9 2f mov r30, r25 - a40: e0 61 ori r30, 0x10 ; 16 - a42: be 2e mov r11, r30 - a44: b4 fe sbrs r11, 4 - a46: 0d c0 rjmp .+26 ; 0xa62 - a48: fb 2d mov r31, r11 - a4a: f4 60 ori r31, 0x04 ; 4 - a4c: bf 2e mov r11, r31 - a4e: 09 c0 rjmp .+18 ; 0xa62 - a50: 34 fe sbrs r3, 4 - a52: 0a c0 rjmp .+20 ; 0xa68 - a54: 29 2f mov r18, r25 - a56: 26 60 ori r18, 0x06 ; 6 - a58: b2 2e mov r11, r18 - a5a: 06 c0 rjmp .+12 ; 0xa68 - a5c: 28 e0 ldi r18, 0x08 ; 8 - a5e: 30 e0 ldi r19, 0x00 ; 0 - a60: 05 c0 rjmp .+10 ; 0xa6c - a62: 20 e1 ldi r18, 0x10 ; 16 - a64: 30 e0 ldi r19, 0x00 ; 0 - a66: 02 c0 rjmp .+4 ; 0xa6c - a68: 20 e1 ldi r18, 0x10 ; 16 - a6a: 32 e0 ldi r19, 0x02 ; 2 - a6c: f8 01 movw r30, r16 - a6e: b7 fe sbrs r11, 7 - a70: 07 c0 rjmp .+14 ; 0xa80 - a72: 60 81 ld r22, Z - a74: 71 81 ldd r23, Z+1 ; 0x01 - a76: 82 81 ldd r24, Z+2 ; 0x02 - a78: 93 81 ldd r25, Z+3 ; 0x03 - a7a: 0c 5f subi r16, 0xFC ; 252 - a7c: 1f 4f sbci r17, 0xFF ; 255 - a7e: 06 c0 rjmp .+12 ; 0xa8c - a80: 60 81 ld r22, Z - a82: 71 81 ldd r23, Z+1 ; 0x01 - a84: 80 e0 ldi r24, 0x00 ; 0 - a86: 90 e0 ldi r25, 0x00 ; 0 - a88: 0e 5f subi r16, 0xFE ; 254 - a8a: 1f 4f sbci r17, 0xFF ; 255 - a8c: a3 01 movw r20, r6 - a8e: f1 d0 rcall .+482 ; 0xc72 <__ultoa_invert> - a90: 88 2e mov r8, r24 - a92: 86 18 sub r8, r6 - a94: fb 2d mov r31, r11 - a96: ff 77 andi r31, 0x7F ; 127 - a98: 3f 2e mov r3, r31 - a9a: 36 fe sbrs r3, 6 - a9c: 0d c0 rjmp .+26 ; 0xab8 - a9e: 23 2d mov r18, r3 - aa0: 2e 7f andi r18, 0xFE ; 254 - aa2: a2 2e mov r10, r18 - aa4: 89 14 cp r8, r9 - aa6: 58 f4 brcc .+22 ; 0xabe - aa8: 34 fe sbrs r3, 4 - aaa: 0b c0 rjmp .+22 ; 0xac2 - aac: 32 fc sbrc r3, 2 - aae: 09 c0 rjmp .+18 ; 0xac2 - ab0: 83 2d mov r24, r3 - ab2: 8e 7e andi r24, 0xEE ; 238 - ab4: a8 2e mov r10, r24 - ab6: 05 c0 rjmp .+10 ; 0xac2 - ab8: b8 2c mov r11, r8 - aba: a3 2c mov r10, r3 - abc: 03 c0 rjmp .+6 ; 0xac4 - abe: b8 2c mov r11, r8 - ac0: 01 c0 rjmp .+2 ; 0xac4 - ac2: b9 2c mov r11, r9 - ac4: a4 fe sbrs r10, 4 - ac6: 0f c0 rjmp .+30 ; 0xae6 - ac8: fe 01 movw r30, r28 - aca: e8 0d add r30, r8 - acc: f1 1d adc r31, r1 - ace: 80 81 ld r24, Z - ad0: 80 33 cpi r24, 0x30 ; 48 - ad2: 21 f4 brne .+8 ; 0xadc - ad4: 9a 2d mov r25, r10 - ad6: 99 7e andi r25, 0xE9 ; 233 - ad8: a9 2e mov r10, r25 - ada: 09 c0 rjmp .+18 ; 0xaee - adc: a2 fe sbrs r10, 2 - ade: 06 c0 rjmp .+12 ; 0xaec - ae0: b3 94 inc r11 - ae2: b3 94 inc r11 - ae4: 04 c0 rjmp .+8 ; 0xaee - ae6: 8a 2d mov r24, r10 - ae8: 86 78 andi r24, 0x86 ; 134 - aea: 09 f0 breq .+2 ; 0xaee - aec: b3 94 inc r11 - aee: a3 fc sbrc r10, 3 - af0: 10 c0 rjmp .+32 ; 0xb12 - af2: a0 fe sbrs r10, 0 - af4: 06 c0 rjmp .+12 ; 0xb02 - af6: b2 14 cp r11, r2 - af8: 80 f4 brcc .+32 ; 0xb1a - afa: 28 0c add r2, r8 - afc: 92 2c mov r9, r2 - afe: 9b 18 sub r9, r11 - b00: 0d c0 rjmp .+26 ; 0xb1c - b02: b2 14 cp r11, r2 - b04: 58 f4 brcc .+22 ; 0xb1c - b06: b6 01 movw r22, r12 - b08: 80 e2 ldi r24, 0x20 ; 32 - b0a: 90 e0 ldi r25, 0x00 ; 0 - b0c: 76 d0 rcall .+236 ; 0xbfa - b0e: b3 94 inc r11 - b10: f8 cf rjmp .-16 ; 0xb02 - b12: b2 14 cp r11, r2 - b14: 18 f4 brcc .+6 ; 0xb1c - b16: 2b 18 sub r2, r11 - b18: 02 c0 rjmp .+4 ; 0xb1e - b1a: 98 2c mov r9, r8 - b1c: 21 2c mov r2, r1 - b1e: a4 fe sbrs r10, 4 - b20: 0f c0 rjmp .+30 ; 0xb40 - b22: b6 01 movw r22, r12 - b24: 80 e3 ldi r24, 0x30 ; 48 - b26: 90 e0 ldi r25, 0x00 ; 0 - b28: 68 d0 rcall .+208 ; 0xbfa - b2a: a2 fe sbrs r10, 2 - b2c: 16 c0 rjmp .+44 ; 0xb5a - b2e: a1 fc sbrc r10, 1 - b30: 03 c0 rjmp .+6 ; 0xb38 - b32: 88 e7 ldi r24, 0x78 ; 120 - b34: 90 e0 ldi r25, 0x00 ; 0 - b36: 02 c0 rjmp .+4 ; 0xb3c - b38: 88 e5 ldi r24, 0x58 ; 88 - b3a: 90 e0 ldi r25, 0x00 ; 0 - b3c: b6 01 movw r22, r12 - b3e: 0c c0 rjmp .+24 ; 0xb58 - b40: 8a 2d mov r24, r10 - b42: 86 78 andi r24, 0x86 ; 134 - b44: 51 f0 breq .+20 ; 0xb5a - b46: a1 fe sbrs r10, 1 - b48: 02 c0 rjmp .+4 ; 0xb4e - b4a: 8b e2 ldi r24, 0x2B ; 43 - b4c: 01 c0 rjmp .+2 ; 0xb50 - b4e: 80 e2 ldi r24, 0x20 ; 32 - b50: a7 fc sbrc r10, 7 - b52: 8d e2 ldi r24, 0x2D ; 45 - b54: b6 01 movw r22, r12 - b56: 90 e0 ldi r25, 0x00 ; 0 - b58: 50 d0 rcall .+160 ; 0xbfa - b5a: 89 14 cp r8, r9 - b5c: 30 f4 brcc .+12 ; 0xb6a - b5e: b6 01 movw r22, r12 - b60: 80 e3 ldi r24, 0x30 ; 48 - b62: 90 e0 ldi r25, 0x00 ; 0 - b64: 4a d0 rcall .+148 ; 0xbfa - b66: 9a 94 dec r9 - b68: f8 cf rjmp .-16 ; 0xb5a - b6a: 8a 94 dec r8 - b6c: f3 01 movw r30, r6 - b6e: e8 0d add r30, r8 - b70: f1 1d adc r31, r1 - b72: 80 81 ld r24, Z - b74: b6 01 movw r22, r12 - b76: 90 e0 ldi r25, 0x00 ; 0 - b78: 40 d0 rcall .+128 ; 0xbfa - b7a: 81 10 cpse r8, r1 - b7c: f6 cf rjmp .-20 ; 0xb6a - b7e: 22 20 and r2, r2 - b80: 09 f4 brne .+2 ; 0xb84 - b82: 4e ce rjmp .-868 ; 0x820 - b84: b6 01 movw r22, r12 - b86: 80 e2 ldi r24, 0x20 ; 32 - b88: 90 e0 ldi r25, 0x00 ; 0 - b8a: 37 d0 rcall .+110 ; 0xbfa - b8c: 2a 94 dec r2 - b8e: f7 cf rjmp .-18 ; 0xb7e - b90: f6 01 movw r30, r12 - b92: 86 81 ldd r24, Z+6 ; 0x06 - b94: 97 81 ldd r25, Z+7 ; 0x07 - b96: 02 c0 rjmp .+4 ; 0xb9c - b98: 8f ef ldi r24, 0xFF ; 255 - b9a: 9f ef ldi r25, 0xFF ; 255 - b9c: 2b 96 adiw r28, 0x0b ; 11 - b9e: 0f b6 in r0, 0x3f ; 63 - ba0: f8 94 cli - ba2: de bf out 0x3e, r29 ; 62 - ba4: 0f be out 0x3f, r0 ; 63 - ba6: cd bf out 0x3d, r28 ; 61 - ba8: df 91 pop r29 - baa: cf 91 pop r28 - bac: 1f 91 pop r17 - bae: 0f 91 pop r16 - bb0: ff 90 pop r15 - bb2: ef 90 pop r14 - bb4: df 90 pop r13 - bb6: cf 90 pop r12 - bb8: bf 90 pop r11 - bba: af 90 pop r10 - bbc: 9f 90 pop r9 - bbe: 8f 90 pop r8 - bc0: 7f 90 pop r7 - bc2: 6f 90 pop r6 - bc4: 5f 90 pop r5 - bc6: 4f 90 pop r4 - bc8: 3f 90 pop r3 - bca: 2f 90 pop r2 - bcc: 08 95 ret - -00000bce : - bce: fc 01 movw r30, r24 - bd0: 05 90 lpm r0, Z+ - bd2: 61 50 subi r22, 0x01 ; 1 - bd4: 70 40 sbci r23, 0x00 ; 0 - bd6: 01 10 cpse r0, r1 - bd8: d8 f7 brcc .-10 ; 0xbd0 - bda: 80 95 com r24 - bdc: 90 95 com r25 - bde: 8e 0f add r24, r30 - be0: 9f 1f adc r25, r31 - be2: 08 95 ret - -00000be4 : - be4: fc 01 movw r30, r24 - be6: 61 50 subi r22, 0x01 ; 1 - be8: 70 40 sbci r23, 0x00 ; 0 - bea: 01 90 ld r0, Z+ - bec: 01 10 cpse r0, r1 - bee: d8 f7 brcc .-10 ; 0xbe6 - bf0: 80 95 com r24 - bf2: 90 95 com r25 - bf4: 8e 0f add r24, r30 - bf6: 9f 1f adc r25, r31 - bf8: 08 95 ret - -00000bfa : - bfa: 0f 93 push r16 - bfc: 1f 93 push r17 - bfe: cf 93 push r28 - c00: df 93 push r29 - c02: fb 01 movw r30, r22 - c04: 23 81 ldd r18, Z+3 ; 0x03 - c06: 21 fd sbrc r18, 1 - c08: 03 c0 rjmp .+6 ; 0xc10 - c0a: 8f ef ldi r24, 0xFF ; 255 - c0c: 9f ef ldi r25, 0xFF ; 255 - c0e: 2c c0 rjmp .+88 ; 0xc68 - c10: 22 ff sbrs r18, 2 - c12: 16 c0 rjmp .+44 ; 0xc40 - c14: 46 81 ldd r20, Z+6 ; 0x06 - c16: 57 81 ldd r21, Z+7 ; 0x07 - c18: 24 81 ldd r18, Z+4 ; 0x04 - c1a: 35 81 ldd r19, Z+5 ; 0x05 - c1c: 42 17 cp r20, r18 - c1e: 53 07 cpc r21, r19 - c20: 44 f4 brge .+16 ; 0xc32 - c22: a0 81 ld r26, Z - c24: b1 81 ldd r27, Z+1 ; 0x01 - c26: 9d 01 movw r18, r26 - c28: 2f 5f subi r18, 0xFF ; 255 - c2a: 3f 4f sbci r19, 0xFF ; 255 - c2c: 31 83 std Z+1, r19 ; 0x01 - c2e: 20 83 st Z, r18 - c30: 8c 93 st X, r24 - c32: 26 81 ldd r18, Z+6 ; 0x06 - c34: 37 81 ldd r19, Z+7 ; 0x07 - c36: 2f 5f subi r18, 0xFF ; 255 - c38: 3f 4f sbci r19, 0xFF ; 255 - c3a: 37 83 std Z+7, r19 ; 0x07 - c3c: 26 83 std Z+6, r18 ; 0x06 - c3e: 14 c0 rjmp .+40 ; 0xc68 - c40: 8b 01 movw r16, r22 - c42: ec 01 movw r28, r24 - c44: fb 01 movw r30, r22 - c46: 00 84 ldd r0, Z+8 ; 0x08 - c48: f1 85 ldd r31, Z+9 ; 0x09 - c4a: e0 2d mov r30, r0 - c4c: 09 95 icall - c4e: 89 2b or r24, r25 - c50: e1 f6 brne .-72 ; 0xc0a - c52: d8 01 movw r26, r16 - c54: 16 96 adiw r26, 0x06 ; 6 - c56: 8d 91 ld r24, X+ - c58: 9c 91 ld r25, X - c5a: 17 97 sbiw r26, 0x07 ; 7 - c5c: 01 96 adiw r24, 0x01 ; 1 - c5e: 17 96 adiw r26, 0x07 ; 7 - c60: 9c 93 st X, r25 - c62: 8e 93 st -X, r24 - c64: 16 97 sbiw r26, 0x06 ; 6 - c66: ce 01 movw r24, r28 - c68: df 91 pop r29 - c6a: cf 91 pop r28 - c6c: 1f 91 pop r17 - c6e: 0f 91 pop r16 - c70: 08 95 ret - -00000c72 <__ultoa_invert>: - c72: fa 01 movw r30, r20 - c74: aa 27 eor r26, r26 - c76: 28 30 cpi r18, 0x08 ; 8 - c78: 51 f1 breq .+84 ; 0xcce <__ultoa_invert+0x5c> - c7a: 20 31 cpi r18, 0x10 ; 16 - c7c: 81 f1 breq .+96 ; 0xcde <__ultoa_invert+0x6c> - c7e: e8 94 clt - c80: 6f 93 push r22 - c82: 6e 7f andi r22, 0xFE ; 254 - c84: 6e 5f subi r22, 0xFE ; 254 - c86: 7f 4f sbci r23, 0xFF ; 255 - c88: 8f 4f sbci r24, 0xFF ; 255 - c8a: 9f 4f sbci r25, 0xFF ; 255 - c8c: af 4f sbci r26, 0xFF ; 255 - c8e: b1 e0 ldi r27, 0x01 ; 1 - c90: 3e d0 rcall .+124 ; 0xd0e <__ultoa_invert+0x9c> - c92: b4 e0 ldi r27, 0x04 ; 4 - c94: 3c d0 rcall .+120 ; 0xd0e <__ultoa_invert+0x9c> - c96: 67 0f add r22, r23 - c98: 78 1f adc r23, r24 - c9a: 89 1f adc r24, r25 - c9c: 9a 1f adc r25, r26 - c9e: a1 1d adc r26, r1 - ca0: 68 0f add r22, r24 - ca2: 79 1f adc r23, r25 - ca4: 8a 1f adc r24, r26 - ca6: 91 1d adc r25, r1 - ca8: a1 1d adc r26, r1 - caa: 6a 0f add r22, r26 - cac: 71 1d adc r23, r1 - cae: 81 1d adc r24, r1 - cb0: 91 1d adc r25, r1 - cb2: a1 1d adc r26, r1 - cb4: 20 d0 rcall .+64 ; 0xcf6 <__ultoa_invert+0x84> - cb6: 09 f4 brne .+2 ; 0xcba <__ultoa_invert+0x48> - cb8: 68 94 set - cba: 3f 91 pop r19 - cbc: 2a e0 ldi r18, 0x0A ; 10 - cbe: 26 9f mul r18, r22 - cc0: 11 24 eor r1, r1 - cc2: 30 19 sub r19, r0 - cc4: 30 5d subi r19, 0xD0 ; 208 - cc6: 31 93 st Z+, r19 - cc8: de f6 brtc .-74 ; 0xc80 <__ultoa_invert+0xe> - cca: cf 01 movw r24, r30 - ccc: 08 95 ret - cce: 46 2f mov r20, r22 - cd0: 47 70 andi r20, 0x07 ; 7 - cd2: 40 5d subi r20, 0xD0 ; 208 - cd4: 41 93 st Z+, r20 - cd6: b3 e0 ldi r27, 0x03 ; 3 - cd8: 0f d0 rcall .+30 ; 0xcf8 <__ultoa_invert+0x86> - cda: c9 f7 brne .-14 ; 0xcce <__ultoa_invert+0x5c> - cdc: f6 cf rjmp .-20 ; 0xcca <__ultoa_invert+0x58> - cde: 46 2f mov r20, r22 - ce0: 4f 70 andi r20, 0x0F ; 15 - ce2: 40 5d subi r20, 0xD0 ; 208 - ce4: 4a 33 cpi r20, 0x3A ; 58 - ce6: 18 f0 brcs .+6 ; 0xcee <__ultoa_invert+0x7c> - ce8: 49 5d subi r20, 0xD9 ; 217 - cea: 31 fd sbrc r19, 1 - cec: 40 52 subi r20, 0x20 ; 32 - cee: 41 93 st Z+, r20 - cf0: 02 d0 rcall .+4 ; 0xcf6 <__ultoa_invert+0x84> - cf2: a9 f7 brne .-22 ; 0xcde <__ultoa_invert+0x6c> - cf4: ea cf rjmp .-44 ; 0xcca <__ultoa_invert+0x58> - cf6: b4 e0 ldi r27, 0x04 ; 4 - cf8: a6 95 lsr r26 - cfa: 97 95 ror r25 - cfc: 87 95 ror r24 - cfe: 77 95 ror r23 - d00: 67 95 ror r22 - d02: ba 95 dec r27 - d04: c9 f7 brne .-14 ; 0xcf8 <__ultoa_invert+0x86> - d06: 00 97 sbiw r24, 0x00 ; 0 - d08: 61 05 cpc r22, r1 - d0a: 71 05 cpc r23, r1 - d0c: 08 95 ret - d0e: 9b 01 movw r18, r22 - d10: ac 01 movw r20, r24 - d12: 0a 2e mov r0, r26 - d14: 06 94 lsr r0 - d16: 57 95 ror r21 - d18: 47 95 ror r20 - d1a: 37 95 ror r19 - d1c: 27 95 ror r18 - d1e: ba 95 dec r27 - d20: c9 f7 brne .-14 ; 0xd14 <__ultoa_invert+0xa2> - d22: 62 0f add r22, r18 - d24: 73 1f adc r23, r19 - d26: 84 1f adc r24, r20 - d28: 95 1f adc r25, r21 - d2a: a0 1d adc r26, r0 - d2c: 08 95 ret - -00000d2e <_exit>: - d2e: f8 94 cli - -00000d30 <__stop_program>: - d30: ff cf rjmp .-2 ; 0xd30 <__stop_program> +00000aea <__stop_program>: + aea: ff cf rjmp .-2 ; 0xaea <__stop_program> diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.map b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.map index 9d02528..5127215 100644 --- a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.map +++ b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.map @@ -1,25 +1,5 @@ Archive member included to satisfy reference by file (symbol) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3.o) - main.o (__divsf3) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3.o) (__divsf3x) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(floatsisf.o) - main.o (__floatunsisf) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_inf.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) (__fp_inf) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_nan.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) (__fp_nan) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscA.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) (__fp_pscA) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscB.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) (__fp_pscB) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_round.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3.o) (__fp_round) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_split3.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) (__fp_split3) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_zero.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) (__fp_szero) c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o (exit) c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_copy_data.o) @@ -59,8 +39,8 @@ Discarded input sections 0x00000000 0x18 lcd_control.o .text.lcd_move_right 0x00000000 0x8 lcd_control.o - .text.lcd_write_int - 0x00000000 0xb6 lcd_control.o + .text.lcd_write_double + 0x00000000 0xf2 lcd_control.o .text 0x00000000 0x0 main.o .data 0x00000000 0x0 main.o .bss 0x00000000 0x0 main.o @@ -70,36 +50,6 @@ Discarded input sections .text 0x00000000 0x0 ultrasonic_sensor.o .data 0x00000000 0x0 ultrasonic_sensor.o .bss 0x00000000 0x0 ultrasonic_sensor.o - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(floatsisf.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(floatsisf.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(floatsisf.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_inf.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_inf.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_inf.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_nan.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_nan.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_nan.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscA.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscA.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscA.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscB.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscB.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscB.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_round.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_round.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_round.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_split3.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_split3.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_split3.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_zero.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_zero.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_zero.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) @@ -296,7 +246,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x00000000 0xd32 +.text 0x00000000 0xaec *(.vectors) .vectors 0x00000000 0x8c C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o 0x00000000 __vector_default @@ -414,112 +364,78 @@ END GROUP .text.lcd_write_string 0x000001ae 0x18 lcd_control.o 0x000001ae lcd_write_string - .text.lcd_write_double - 0x000001c6 0xec lcd_control.o - 0x000001c6 lcd_write_double + .text.lcd_write_int + 0x000001c6 0xb0 lcd_control.o + 0x000001c6 lcd_write_int .text.ultrasoon_value_set_event - 0x000002b2 0x1e main.o + 0x00000276 0x1e main.o .text.snap_event_trigger - 0x000002d0 0x4 main.o + 0x00000294 0x4 main.o .text.__vector_3 - 0x000002d4 0x4e main.o - 0x000002d4 __vector_3 - .text.main 0x00000322 0x54 main.o - 0x00000322 main + 0x00000298 0x4e main.o + 0x00000298 __vector_3 + .text.main 0x000002e6 0x36 main.o + 0x000002e6 main .text.set_stepper_state - 0x00000376 0x24 stepper_driver.o - 0x00000376 set_stepper_state + 0x0000031c 0x24 stepper_driver.o + 0x0000031c set_stepper_state .text.set_snap_event - 0x0000039a 0xa stepper_driver.o - 0x0000039a set_snap_event + 0x00000340 0xa stepper_driver.o + 0x00000340 set_snap_event .text.__vector_9 - 0x000003a4 0xc4 stepper_driver.o - 0x000003a4 __vector_9 + 0x0000034a 0xc4 stepper_driver.o + 0x0000034a __vector_9 .text.stepper_rotate_angle - 0x00000468 0x1a stepper_driver.o - 0x00000468 stepper_rotate_angle + 0x0000040e 0x1a stepper_driver.o + 0x0000040e stepper_rotate_angle .text.stepper_rotate_stop - 0x00000482 0x4 stepper_driver.o - 0x00000482 stepper_rotate_stop + 0x00000428 0x4 stepper_driver.o + 0x00000428 stepper_rotate_stop .text.init_stepper_driver - 0x00000486 0x1c stepper_driver.o - 0x00000486 init_stepper_driver - .text.wait_us 0x000004a2 0x1a ultrasonic_sensor.o - 0x000004a2 wait_us - .text.wait_ms 0x000004bc 0x1e ultrasonic_sensor.o - 0x000004bc wait_ms + 0x0000042c 0x1c stepper_driver.o + 0x0000042c init_stepper_driver + .text.wait_us 0x00000448 0x1a ultrasonic_sensor.o + 0x00000448 wait_us + .text.wait_ms 0x00000462 0x1e ultrasonic_sensor.o + 0x00000462 wait_ms .text.ultrasonic_init - 0x000004da 0x1e ultrasonic_sensor.o - 0x000004da ultrasonic_init + 0x00000480 0x1e ultrasonic_sensor.o + 0x00000480 ultrasonic_init .text.ultrasonic_send_pulse - 0x000004f8 0x1a ultrasonic_sensor.o - 0x000004f8 ultrasonic_send_pulse + 0x0000049e 0x1a ultrasonic_sensor.o + 0x0000049e ultrasonic_send_pulse .text.ultrasonic_handle_interrupt - 0x00000512 0x3c ultrasonic_sensor.o - 0x00000512 ultrasonic_handle_interrupt + 0x000004b8 0x3c ultrasonic_sensor.o + 0x000004b8 ultrasonic_handle_interrupt .text.set_value_trigger_event - 0x0000054e 0xa ultrasonic_sensor.o - 0x0000054e set_value_trigger_event + 0x000004f4 0xa ultrasonic_sensor.o + 0x000004f4 set_value_trigger_event .text.ultrasonic_get_timer_dist - 0x00000558 0x18 ultrasonic_sensor.o - 0x00000558 ultrasonic_get_timer_dist - .text.avr-libc.fplib - 0x00000570 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3.o) - 0x00000570 __divsf3 - .text.avr-libc.fplib - 0x00000574 0xcc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) - 0x0000058a __divsf3x - 0x0000058e __divsf3_pse - .text.avr-libc.fplib - 0x00000640 0x7a c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(floatsisf.o) - 0x00000640 __floatunsisf - 0x00000644 __floatsisf - .text.avr-libc.fplib - 0x000006ba 0xc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_inf.o) - 0x000006ba __fp_inf - .text.avr-libc.fplib - 0x000006c6 0x6 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_nan.o) - 0x000006c6 __fp_nan - .text.avr-libc.fplib - 0x000006cc 0xe c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscA.o) - 0x000006cc __fp_pscA - .text.avr-libc.fplib - 0x000006da 0xe c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscB.o) - 0x000006da __fp_pscB - .text.avr-libc.fplib - 0x000006e8 0x22 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_round.o) - 0x000006e8 __fp_round - .text.avr-libc.fplib - 0x0000070a 0x44 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_split3.o) - 0x0000070a __fp_split3 - 0x0000071a __fp_splitA - .text.avr-libc.fplib - 0x0000074e 0xe c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_zero.o) - 0x0000074e __fp_zero - 0x00000750 __fp_szero + 0x000004fe 0x18 ultrasonic_sensor.o + 0x000004fe ultrasonic_get_timer_dist .text.avr-libc - 0x0000075c 0x78 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(snprintf.o) - 0x0000075c snprintf + 0x00000516 0x78 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(snprintf.o) + 0x00000516 snprintf .text.avr-libc - 0x000007d4 0x3fa c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) - 0x000007d4 vfprintf + 0x0000058e 0x3fa c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) + 0x0000058e vfprintf .text.avr-libc - 0x00000bce 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen_P.o) - 0x00000bce strnlen_P + 0x00000988 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen_P.o) + 0x00000988 strnlen_P .text.avr-libc - 0x00000be4 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen.o) - 0x00000be4 strnlen + 0x0000099e 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen.o) + 0x0000099e strnlen .text.avr-libc - 0x00000bfa 0x78 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(fputc.o) - 0x00000bfa fputc + 0x000009b4 0x78 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(fputc.o) + 0x000009b4 fputc .text.avr-libc - 0x00000c72 0xbc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(ultoa_invert.o) - 0x00000c72 __ultoa_invert - 0x00000d2e . = ALIGN (0x2) + 0x00000a2c 0xbc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(ultoa_invert.o) + 0x00000a2c __ultoa_invert + 0x00000ae8 . = ALIGN (0x2) *(.fini9) - .fini9 0x00000d2e 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) - 0x00000d2e _exit - 0x00000d2e exit + .fini9 0x00000ae8 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + 0x00000ae8 _exit + 0x00000ae8 exit *(.fini9) *(.fini8) *(.fini8) @@ -538,11 +454,11 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00000d2e 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + .fini0 0x00000ae8 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) *(.fini0) - 0x00000d32 _etext = . + 0x00000aec _etext = . -.data 0x00800100 0x30 load address 0x00000d32 +.data 0x00800100 0x22 load address 0x00000aec 0x00800100 PROVIDE (__data_start, .) *(.data) *(.data*) @@ -560,44 +476,42 @@ END GROUP *(.rodata*) .rodata.str1.1 0x00800112 0xf lcd_control.o - .rodata.str1.1 - 0x00800121 0xe main.o *(.gnu.linkonce.r*) - 0x00800130 . = ALIGN (0x2) - *fill* 0x0080012f 0x1 - 0x00800130 _edata = . - 0x00800130 PROVIDE (__data_end, .) + 0x00800122 . = ALIGN (0x2) + *fill* 0x00800121 0x1 + 0x00800122 _edata = . + 0x00800122 PROVIDE (__data_end, .) -.bss 0x00800130 0xc - 0x00800130 PROVIDE (__bss_start, .) +.bss 0x00800122 0xc + 0x00800122 PROVIDE (__bss_start, .) *(.bss) *(.bss*) .bss.stepper_state - 0x00800130 0x1 stepper_driver.o - 0x00800130 stepper_state + 0x00800122 0x1 stepper_driver.o + 0x00800122 stepper_state .bss.steps_to_do - 0x00800131 0x2 stepper_driver.o - 0x00800131 steps_to_do + 0x00800123 0x2 stepper_driver.o + 0x00800123 steps_to_do .bss.steps_each_turn - 0x00800133 0x2 stepper_driver.o - 0x00800133 steps_each_turn + 0x00800125 0x2 stepper_driver.o + 0x00800125 steps_each_turn .bss.timer_dist - 0x00800135 0x2 ultrasonic_sensor.o + 0x00800127 0x2 ultrasonic_sensor.o *(COMMON) - COMMON 0x00800137 0x3 stepper_driver.o - 0x00800137 rotation - 0x00800138 snap_event - COMMON 0x0080013a 0x2 ultrasonic_sensor.o - 0x0080013a value_set_event - 0x0080013c PROVIDE (__bss_end, .) - 0x00000d32 __data_load_start = LOADADDR (.data) - 0x00000d62 __data_load_end = (__data_load_start + SIZEOF (.data)) + COMMON 0x00800129 0x3 stepper_driver.o + 0x00800129 rotation + 0x0080012a snap_event + COMMON 0x0080012c 0x2 ultrasonic_sensor.o + 0x0080012c value_set_event + 0x0080012e PROVIDE (__bss_end, .) + 0x00000aec __data_load_start = LOADADDR (.data) + 0x00000b0e __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x0080013c 0x0 +.noinit 0x0080012e 0x0 [!provide] PROVIDE (__noinit_start, .) *(.noinit*) [!provide] PROVIDE (__noinit_end, .) - 0x0080013c _end = . + 0x0080012e _end = . [!provide] PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 @@ -683,29 +597,29 @@ END GROUP .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0x15be +.debug_info 0x00000000 0x15b4 *(.debug_info .gnu.linkonce.wi.*) .debug_info 0x00000000 0x780 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o - .debug_info 0x00000780 0x59a lcd_control.o - .debug_info 0x00000d1a 0x396 main.o - .debug_info 0x000010b0 0x21e stepper_driver.o - .debug_info 0x000012ce 0x2f0 ultrasonic_sensor.o + .debug_info 0x00000780 0x5c0 lcd_control.o + .debug_info 0x00000d40 0x366 main.o + .debug_info 0x000010a6 0x21e stepper_driver.o + .debug_info 0x000012c4 0x2f0 ultrasonic_sensor.o -.debug_abbrev 0x00000000 0xd47 +.debug_abbrev 0x00000000 0xd50 *(.debug_abbrev) .debug_abbrev 0x00000000 0x718 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o - .debug_abbrev 0x00000718 0x1a4 lcd_control.o - .debug_abbrev 0x000008bc 0x19f main.o - .debug_abbrev 0x00000a5b 0x122 stepper_driver.o - .debug_abbrev 0x00000b7d 0x1ca ultrasonic_sensor.o + .debug_abbrev 0x00000718 0x1bc lcd_control.o + .debug_abbrev 0x000008d4 0x190 main.o + .debug_abbrev 0x00000a64 0x122 stepper_driver.o + .debug_abbrev 0x00000b86 0x1ca ultrasonic_sensor.o -.debug_line 0x00000000 0xaef +.debug_line 0x00000000 0xae5 *(.debug_line .debug_line.* .debug_line_end) .debug_line 0x00000000 0x16a C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o .debug_line 0x0000016a 0x37c lcd_control.o - .debug_line 0x000004e6 0x1fb main.o - .debug_line 0x000006e1 0x1c6 stepper_driver.o - .debug_line 0x000008a7 0x248 ultrasonic_sensor.o + .debug_line 0x000004e6 0x1f1 main.o + .debug_line 0x000006d7 0x1c6 stepper_driver.o + .debug_line 0x0000089d 0x248 ultrasonic_sensor.o .debug_frame 0x00000000 0x37c *(.debug_frame) @@ -714,24 +628,24 @@ END GROUP .debug_frame 0x00000230 0xbc stepper_driver.o .debug_frame 0x000002ec 0x90 ultrasonic_sensor.o -.debug_str 0x00000000 0x7c1 +.debug_str 0x00000000 0x772 *(.debug_str) .debug_str 0x00000000 0x27d C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o - .debug_str 0x0000027d 0x28c lcd_control.o - 0x2cc (size before relaxing) - .debug_str 0x00000509 0x15b main.o - 0x34d (size before relaxing) - .debug_str 0x00000664 0xde stepper_driver.o + .debug_str 0x0000027d 0x2b3 lcd_control.o + 0x2f3 (size before relaxing) + .debug_str 0x00000530 0x15b main.o + 0x371 (size before relaxing) + .debug_str 0x0000068b 0x68 stepper_driver.o 0x2af (size before relaxing) - .debug_str 0x00000742 0x7f ultrasonic_sensor.o - 0x2dc (size before relaxing) + .debug_str 0x000006f3 0x7f ultrasonic_sensor.o + 0x303 (size before relaxing) -.debug_loc 0x00000000 0x84f +.debug_loc 0x00000000 0x831 *(.debug_loc) .debug_loc 0x00000000 0x48f lcd_control.o - .debug_loc 0x0000048f 0x185 main.o - .debug_loc 0x00000614 0x13a stepper_driver.o - .debug_loc 0x0000074e 0x101 ultrasonic_sensor.o + .debug_loc 0x0000048f 0x167 main.o + .debug_loc 0x000005f6 0x13a stepper_driver.o + .debug_loc 0x00000730 0x101 ultrasonic_sensor.o .debug_macinfo *(.debug_macinfo) diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec index 0a14f3a..7bcd695 100644 --- a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec +++ b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec @@ -1,17 +1,17 @@ S014000045696E646F706472616368742E737265633B -S113000045C0000060C000005EC0000063C1000085 +S113000045C0000060C000005EC0000045C10000A3 S11300105AC0000058C0000056C0000054C0000080 -S113002052C00000BFC100004EC000004CC0000020 +S113002052C0000092C100004EC000004CC000004D S11300304AC0000048C0000046C0000044C00000A0 S113004042C0000040C000003EC000003CC00000B0 S11300503AC0000038C0000036C0000034C00000C0 S113006032C0000030C000002EC000002CC00000D0 S11300702AC0000028C0000026C0000024C00000E0 S113008022C0000020C000001EC0000011241FBEBA -S1130090CFEFD0E1DEBFCDBF11E0A0E0B1E0E2E3FD -S11300A0FDE000E00BBF02C007900D92A033B10742 -S11300B0D9F721E0A0E3B1E001C01D92AC33B2074F -S11300C0E1F72FD134C69CCF9BB321E030E002C0CE +S1130090CFEFD0E1DEBFCDBF11E0A0E0B1E0ECEEE8 +S11300A0FAE000E00BBF02C007900D92A232B10744 +S11300B0D9F721E0A2E2B1E001C01D92AE32B2074D +S11300C0E1F711D111C59CCF9BB321E030E002C010 S11300D0220F331F8A95E2F7292B2BBB08959BB37C S11300E021E030E002C0220F331F8A95E2F7209509 S11300F029232BBB089586E090E0E6DF83EC99E0AA @@ -27,191 +27,154 @@ S1130180C0E2C5BBB8DFC5BBB6DF80E885BBB3DF63 S113019015BAB1DF80EF85BBAEDF15BAACDF80E600 S11301A085BBA9DF82E0CADFA6DFCF910895CF9394 S11301B0DF93EC0102C0B2DF219688818111FBCF6D -S11301C0DF91CF9108954F925F926F927F928F92B9 -S11301D09F92AF92BF92CF92DF92EF92FF920F93D2 -S11301E01F93CF93DF93CDB7DEB7D82EC92E942EAD -S11301F0852E762E672E522E432EADB6BEB63F9375 -S11302002F937F936F935F934F939F938F930F2EAF -S1130210F5E1EF2EF1E0FF2EF02DFF92EF921F9209 -S11302201F921F921F929AD201962DB73EB7225F5A -S11302303F4F0FB6F8943EBF0FBE2DBF281B390B9E -S11302400FB6F8943EBF0FBE2DBF0DB71EB70F5F9C -S11302501F4F4F925F926F927F928F929F92CF9295 -S1130260DF92FF92EF929F938F931F930F9376D217 -S1130270802F912F9CDF8DB79EB70E960FB6F89402 -S11302809EBF0FBE8DBF0FB6F894BEBE0FBEADBEEF -S1130290DF91CF911F910F91FF90EF90DF90CF905E -S11302A0BF90AF909F908F907F906F905F904F9092 -S11302B0089520910001222351F00197439738F4C7 -S11302C0E0D01092000161E080E092E0CDC008959A -S11302D013C108951F920F920FB60F9211240BB6FB -S11302E00F922F933F934F935F936F937F938F93CB -S11302F09F93AF93BF93EF93FF930BD1FF91EF9134 -S1130300BF91AF919F918F917F916F915F914F9129 -S11303103F912F910F900BBE0F900FBE0F901F9027 -S11303201895DBD026DFAFD088E691E036D089E59A -S113033091E00DD187EA91E60197F1F700C0000042 -S11303400DDF60E088E592E08FD008DF05D1BC01C5 -S113035080E090E075D120E030E04AE754E408D131 -S1130360AB01BC0121E231E084E291E02CDF84E6C0 -S113037090E0A4D0EACF90913701911107C0E82F03 -S1130380F0E0EF5FFE4F808183B90895E82FF0E03D -S1130390E75FFE4F808183B908959093390180937C -S11303A0380108951F920F920FB60F9211240BB6C5 -S11303B00F922F933F934F935F936F937F938F93FA -S11303C09F93AF93BF93EF93FF9314BC809130013D -S11303D0D2DF80913001873020F48F5F8093300129 -S11303E030C0109230018091310190913201009718 -S11303F099F480913701811104C081E08093370121 -S113040002C010923701809133019091340190938E -S113041032018093310115C09C012F713327232BA6 -S113042039F4E0913801F0913901309709F00995D8 -S11304308091310190913201019790933201809320 -S11304403101FF91EF91BF91AF919F918F917F9176 -S11304506F915F914F913F912F910F900BBE0F9031 -S11304600FBE0F901F901895909332018093310125 -S11304709093340180933301609337018CE085BD00 -S1130480089515BC08958FEF82B98093640081E0CC -S11304908093650013B886E983BD80E887BF7894AC -S11304A0089520E030E006C043E04A95F1F70000EB -S11304B02F5F3F4F28173907B8F3089520E030E045 -S11304C008C0E3ECF9E03197F1F700C000002F5FBA -S11304D03F4F28173907A8F308958FEF80936400DE -S11304E011BA80E380936A0089B7846089BF1FBC16 -S11304F08CE08EBD78940895CF93DF93C5E6D0E069 -S113050018828AE090E0CDDF81E08883DF91CF918B -S1130510089580911101813041F480E280936A0052 -S11305201DBC1CBC10921101089580E380936A00E5 -S11305308CB59DB59093360180933501E0913A01D5 -S1130540F0913B01099581E0809311010895909306 -S11305503B0180933A0108958091350190913601D1 -S11305602AEAAC01249FC001259F900D112408950F -S11305700CD0BAC0B2D040F0A9D030F021F45F3F23 -S113058019F09BC05111E4C09EC0BFD098F39923C9 -S1130590C9F35523B1F3951B550BBB27AA27621743 -S11305A07307840738F09F5F5F4F220F331F441F88 -S11305B0AA1FA9F333D00E2E3AF0E0E830D09150C0 -S11305C05040E695001CCAF729D0FE2F27D0660FAD -S11305D0771F881FBB1F261737074807AB07B0E8EC -S11305E009F0BB0B802DBF01FF2793585F4F2AF002 -S11305F09E3F510568F061C0ABC05F3FECF3983E8D -S1130600DCF3869577956795B795F7959F5FC9F75E -S1130610880F911D9695879597F90895E1E0660FE7 -S1130620771F881FBB1F621773078407BA0720F060 -S1130630621B730B840BBA0BEE1F88F7E0950895C9 -S1130640E89409C097FB3EF4909580957095619568 -S11306507F4F8F4F9F4F9923A9F0F92F96E9BB271E -S11306609395F695879577956795B795F111F8CF9A -S1130670FAF4BB0F11F460FF1BC06F5F7F4F8F4F05 -S11306809F4F16C0882311F096E911C0772321F0FB -S11306909EE8872F762F05C0662371F096E8862F93 -S11306A070E060E02AF09A95660F771F881FDAF7EA -S11306B0880F9695879597F9089597F99F6780E82D -S11306C070E060E008959FEF80EC089500240A94A0 -S11306D01616170618060906089500240A94121619 -S11306E01306140605060895092E0394000C11F44C -S11306F0882352F0BB0F40F4BF2B11F460FF04C0F9 -S11307006F5F7F4F8F4F9F4F089557FD9058440F51 -S1130710551F59F05F3F71F04795880F97FB991F5C -S113072061F09F3F79F08795089512161306140619 -S1130730551FF2CF4695F1DF08C0161617061806A6 -S1130740991FF1CF86957105610508940895E89481 -S1130750BB2766277727CB0197F908950F931F933B -S1130760CF93DF93CDB7DEB72E970FB6F894DEBFE5 -S11307700FBECDBF0D891E898F89988D26E02C83ED -S11307801A83098397FF02C080E090E801979E8353 -S11307908D83AE01455E5F4F698D7A8DCE010196E2 -S11307A019D04D815E8157FD0AC02F8138854217CB -S11307B053070CF49A01F801E20FF31F10822E96EE -S11307C00FB6F894DEBF0FBECDBFDF91CF911F915E -S11307D00F9108952F923F924F925F926F927F9262 -S11307E08F929F92AF92BF92CF92DF92EF92FF923D -S11307F00F931F93CF93DF93CDB7DEB72B970FB62D -S1130800F894DEBF0FBECDBF6C017B018A01FC01F1 -S113081017821682838181FFBFC1CE0101963C01FC -S1130820F6019381F70193FD859193FF81917F01F7 -S1130830882309F4ADC1853239F493FD859193FF82 -S113084081917F01853221F4B60190E0D6D1E8CFC1 -S1130850912C212C312CFFE1F315D8F08B3279F057 -S113086038F4803279F08332A1F4232D20611DC045 -S11308708D3261F0803369F4232D216016C0832DFD -S11308808260382EE32DE4603E2E2AC0F32DF860FA -S11308901DC037FC2DC020ED280F2A3040F08E32C9 -S11308A0B9F436FC75C1232D2064322E19C036FEEE -S11308B006C08AE0989E200D1124922E11C0EAE011 -S11308C02E9E200D1124222EF32DF0623F2E08C0FF -S11308D08C3621F4832D8068382E02C0883641F48A -S11308E0F70193FD859193FF81917F018111B3CF2E -S11308F0982F9F7D9554933028F40C5F1F4F9FE3EE -S113090099830DC0833631F0833771F0833509F054 -S113091055C020C0F801808189830E5F1F4F882451 -S11309208394912C530112C02801F2E04F0E511C04 -S1130930F801A080B18036FE03C0692D70E002C0CA -S11309406FEF7FEFC5014ED14C018201F32DFF778C -S11309503F2E15C0280122E0420E511CF801A08050 -S1130960B18036FE03C0692D70E002C06FEF7FEFE7 -S1130970C5012DD14C01F32DF0683F2E820133FCCB -S113098019C0822D90E088169906A0F4B60180E281 -S113099090E033D12A94F5CFF50137FC859137FEE9 -S11309A081915F01B60190E028D121102A9421E0C1 -S11309B0821A91088114910479F7E1C0843611F008 -S11309C0893639F5F80137FE07C06081718182816B -S11309D093810C5F1F4F08C060817181072E000C4A -S11309E0880B990B0E5F1F4FF32DFF763F2E97FF59 -S11309F009C090958095709561957F4F8F4F9F4F5B -S1130A00F0683F2E2AE030E0A30133D1882E861807 -S1130A1044C0853731F4232D2F7EB22E2AE030E0F6 -S1130A2025C0932D997FB92E8F36C1F018F48835DF -S1130A3079F0AEC0803719F0883721F0A9C0E92FCA -S1130A40E061BE2EB4FE0DC0FB2DF460BF2E09C0C4 -S1130A5034FE0AC0292F2660B22E06C028E030E0FA -S1130A6005C020E130E002C020E132E0F801B7FE29 -S1130A7007C060817181828193810C5F1F4F06C022 -S1130A806081718180E090E00E5F1F4FA301F1D07F -S1130A90882E8618FB2DFF773F2E36FE0DC0232DA2 -S1130AA02E7FA22E891458F434FE0BC032FC09C0E8 -S1130AB0832D8E7EA82E05C0B82CA32C03C0B82C81 -S1130AC001C0B92CA4FE0FC0FE01E80DF11D808108 -S1130AD0803321F49A2D997EA92E09C0A2FE06C066 -S1130AE0B394B39404C08A2D867809F0B394A3FC1C -S1130AF010C0A0FE06C0B21480F4280C922C9B18DF -S1130B000DC0B21458F4B60180E290E076D0B394EC -S1130B10F8CFB21418F42B1802C0982C212CA4FE80 -S1130B200FC0B60180E390E068D0A2FE16C0A1FC1D -S1130B3003C088E790E002C088E590E0B6010CC0ED -S1130B408A2D867851F0A1FE02C08BE201C080E2BA -S1130B50A7FC8DE2B60190E050D0891430F4B601C0 -S1130B6080E390E04AD09A94F8CF8A94F301E80D98 -S1130B70F11D8081B60190E040D08110F6CF222093 -S1130B8009F44ECEB60180E290E037D02A94F7CF34 -S1130B90F6018681978102C08FEF9FEF2B960FB6E7 -S1130BA0F894DEBF0FBECDBFDF91CF911F910F919F -S1130BB0FF90EF90DF90CF90BF90AF909F908F9079 -S1130BC07F906F905F904F903F902F900895FC011D -S1130BD00590615070400110D8F7809590958E0F64 -S1130BE09F1F0895FC016150704001900110D8F7D7 -S1130BF0809590958E0F9F1F08950F931F93CF9309 -S1130C00DF93FB01238121FD03C08FEF9FEF2CC0F5 -S1130C1022FF16C04681578124813581421753072C -S1130C2044F4A081B1819D012F5F3F4F3183208324 -S1130C308C93268137812F5F3F4F3783268314C0DF -S1130C408B01EC01FB010084F185E02D0995892BD2 -S1130C50E1F6D80116968D919C91179701961796F7 -S1130C609C938E931697CE01DF91CF911F910F9194 -S1130C700895FA01AA27283051F1203181F1E8942E -S1130C806F936E7F6E5F7F4F8F4F9F4FAF4FB1E07B -S1130C903ED0B4E03CD0670F781F891F9A1FA11D76 -S1130CA0680F791F8A1F911DA11D6A0F711D811D77 -S1130CB0911DA11D20D009F468943F912AE0269F3C -S1130CC011243019305D3193DEF6CF010895462F9B -S1130CD04770405D4193B3E00FD0C9F7F6CF462F7C -S1130CE04F70405D4A3318F0495D31FD40524193E5 -S1130CF002D0A9F7EACFB4E0A695979587957795A2 -S1130D006795BA95C9F700976105710508959B0128 -S1130D10AC010A2E06945795479537952795BA95B1 -S1130D20C9F7620F731F841F951FA01D0895F894BF -S1050D30FFCFEF -S1130D3201080C0406020301090901030206040C5A -S1130D42080125640025733A20252E336620257375 -S1130D5200636D0064697374616E63653A20000018 +S11301C0DF91CF910895AF92BF92CF92DF92EF92D9 +S11301D0FF920F931F93CF93DF93CDB7DEB7D82E43 +S11301E0C92EADB6BEB69F938F930F2EF2E1EF2EBC +S11301F0F1E0FF2EF02DFF92EF921F921F921F92BB +S11302001F9289D101962DB73EB7285F3F4F0FB695 +S1130210F8943EBF0FBE2DBF281B390B0FB6F894C0 +S11302203EBF0FBE2DBF0DB71EB70F5F1F4FCF923E +S1130230DF92FF92EF929F938F931F930F936BD153 +S1130240802F912FB4DF8DB79EB708960FB6F89420 +S11302509EBF0FBE8DBF0FB6F894BEBE0FBEADBE1F +S1130260DF91CF911F910F91FF90EF90DF90CF908E +S1130270BF90AF90089520910001222351F001977F +S1130280439738F4D1D01092000161E080E092E00D +S1130290BEC0089504C108951F920F920FB60F9225 +S11302A011240BB60F922F933F934F935F936F9349 +S11302B07F938F939F93AF93BF93EF93FF93FCD060 +S11302C0FF91EF91BF91AF919F918F917F916F912A +S11302D05F914F913F912F910F900BBE0F900FBEE6 +S11302E00F901F901895CCD044DFA0D08AE491E001 +S11302F027D08BE391E0FED087EA91E60197F1F7EE +S113030000C000002BDF60E088E592E080D026DFAB +S1130310F6D059DF84E690E0A4D0F9CF909129017A +S1130320911107C0E82FF0E0EF5FFE4F808183B9A1 +S11303300895E82FF0E0E75FFE4F808183B90895C8 +S113034090932B0180932A0108951F920F920FB668 +S11303500F9211240BB60F922F933F934F935F93F9 +S11303606F937F938F939F93AF93BF93EF93FF9379 +S113037014BC80912201D2DF80912201873020F4C5 +S11303808F5F8093220130C010922201809123015B +S113039090912401009799F480912901811104C05E +S11303A081E08093290102C01092290180912501E6 +S11303B090912601909324018093230115C09C0100 +S11303C02F713327232B39F4E0912A01F0912B016B +S11303D0309709F0099580912301909124010197A8 +S11303E09093240180932301FF91EF91BF91AF91EA +S11303F09F918F917F916F915F914F913F912F9139 +S11304000F900BBE0F900FBE0F901F9018959093F6 +S11304102401809323019093260180932501609306 +S113042029018CE085BD089515BC08958FEF82B92C +S11304308093640081E08093650013B886E983BDEE +S113044080E887BF7894089520E030E006C043E058 +S11304504A95F1F700002F5F3F4F28173907B8F38B +S1130460089520E030E008C0E3ECF9E03197F1F7BB +S113047000C000002F5F3F4F28173907A8F30895E5 +S11304808FEF8093640011BA80E380936A0089B788 +S1130490846089BF1FBC8CE08EBD78940895CF938F +S11304A0DF93C5E6D0E018828AE090E0CDDF81E0FA +S11304B08883DF91CF91089580911101813041F4B7 +S11304C080E280936A001DBC1CBC10921101089547 +S11304D080E380936A008CB59DB590932801809346 +S11304E02701E0912C01F0912D01099581E0809381 +S11304F01101089590932D0180932C01089580910A +S11305002701909128012AEAAC01249FC001259F6C +S1130510900D112408950F931F93CF93DF93CDB7BC +S1130520DEB72E970FB6F894DEBF0FBECDBF0D8990 +S11305301E898F89988D26E02C831A83098397FF5F +S113054002C080E090E801979E838D83AE01455EF2 +S11305505F4F698D7A8DCE01019619D04D815E81F0 +S113056057FD0AC02F813885421753070CF49A01AE +S1130570F801E20FF31F10822E960FB6F894DEBF37 +S11305800FBECDBFDF91CF911F910F9108952F9290 +S11305903F924F925F926F927F928F929F92AF920F +S11305A0BF92CF92DF92EF92FF920F931F93CF935C +S11305B0DF93CDB7DEB72B970FB6F894DEBF0FBE2F +S11305C0CDBF6C017B018A01FC01178216828381F5 +S11305D081FFBFC1CE0101963C01F6019381F70171 +S11305E093FD859193FF81917F01882309F4ADC127 +S11305F0853239F493FD859193FF81917F01853292 +S113060021F4B60190E0D6D1E8CF912C212C312CE5 +S1130610FFE1F315D8F08B3279F038F4803279F0B9 +S11306208332A1F4232D20611DC08D3261F080330B +S113063069F4232D216016C0832D8260382EE32DAA +S1130640E4603E2E2AC0F32DF8601DC037FC2DC097 +S113065020ED280F2A3040F08E32B9F436FC75C1F3 +S1130660232D2064322E19C036FE06C08AE0989EDF +S1130670200D1124922E11C0EAE02E9E200D11248B +S1130680222EF32DF0623F2E08C08C3621F4832DE8 +S11306908068382E02C0883641F4F70193FD8591B5 +S11306A093FF81917F018111B3CF982F9F7D955442 +S11306B0933028F40C5F1F4F9FE399830DC083365A +S11306C031F0833771F0833509F055C020C0F8014B +S11306D0808189830E5F1F4F88248394912C53015A +S11306E012C02801F2E04F0E511CF801A080B18025 +S11306F036FE03C0692D70E002C06FEF7FEFC501C5 +S11307004ED14C018201F32DFF773F2E15C02801F5 +S113071022E0420E511CF801A080B18036FE03C0D5 +S1130720692D70E002C06FEF7FEFC5012DD14C0140 +S1130730F32DF0683F2E820133FC19C0822D90E026 +S113074088169906A0F4B60180E290E033D12A9489 +S1130750F5CFF50137FC859137FE81915F01B60134 +S113076090E028D121102A9421E0821A9108811462 +S1130770910479F7E1C0843611F0893639F5F8012E +S113078037FE07C060817181828193810C5F1F4FA6 +S113079008C060817181072E000C880B990B0E5FD5 +S11307A01F4FF32DFF763F2E97FF09C0909580953C +S11307B0709561957F4F8F4F9F4FF0683F2E2AE0D1 +S11307C030E0A30133D1882E861844C0853731F434 +S11307D0232D2F7EB22E2AE030E025C0932D997F61 +S11307E0B92E8F36C1F018F4883579F0AEC0803751 +S11307F019F0883721F0A9C0E92FE061BE2EB4FEBC +S11308000DC0FB2DF460BF2E09C034FE0AC0292F91 +S11308102660B22E06C028E030E005C020E130E0BA +S113082002C020E132E0F801B7FE07C060817181A7 +S1130830828193810C5F1F4F06C06081718180E0CB +S113084090E00E5F1F4FA301F1D0882E8618FB2D78 +S1130850FF773F2E36FE0DC0232D2E7FA22E891446 +S113086058F434FE0BC032FC09C0832D8E7EA82EB2 +S113087005C0B82CA32C03C0B82C01C0B92CA4FE0D +S11308800FC0FE01E80DF11D8081803321F49A2D03 +S1130890997EA92E09C0A2FE06C0B394B39404C0E5 +S11308A08A2D867809F0B394A3FC10C0A0FE06C07C +S11308B0B21480F4280C922C9B180DC0B21458F476 +S11308C0B60180E290E076D0B394F8CFB21418F475 +S11308D02B1802C0982C212CA4FE0FC0B60180E373 +S11308E090E068D0A2FE16C0A1FC03C088E790E0A7 +S11308F002C088E590E0B6010CC08A2D867851F0DC +S1130900A1FE02C08BE201C080E2A7FC8DE2B60129 +S113091090E050D0891430F4B60180E390E04AD0DE +S11309209A94F8CF8A94F301E80DF11D8081B60101 +S113093090E040D08110F6CF222009F44ECEB601CB +S113094080E290E037D02A94F7CFF6018681978130 +S113095002C08FEF9FEF2B960FB6F894DEBF0FBE49 +S1130960CDBFDF91CF911F910F91FF90EF90DF905A +S1130970CF90BF90AF909F908F907F906F905F903B +S11309804F903F902F900895FC0105906150704066 +S11309900110D8F7809590958E0F9F1F0895FC0144 +S11309A06150704001900110D8F7809590958E0F9A +S11309B09F1F08950F931F93CF93DF93FB01238110 +S11309C021FD03C08FEF9FEF2CC022FF16C046818C +S11309D05781248135814217530744F4A081B181A2 +S11309E09D012F5F3F4F318320838C932681378174 +S11309F02F5F3F4F3783268314C08B01EC01FB012B +S1130A000084F185E02D0995892BE1F6D80116962D +S1130A108D919C911797019617969C938E93169798 +S1130A20CE01DF91CF911F910F910895FA01AA276A +S1130A30283051F1203181F1E8946F936E7F6E5F1D +S1130A407F4F8F4F9F4FAF4FB1E03ED0B4E03CD0CB +S1130A50670F781F891F9A1FA11D680F791F8A1FAE +S1130A60911DA11D6A0F711D811D911DA11D20D015 +S1130A7009F468943F912AE0269F11243019305DCF +S1130A803193DEF6CF010895462F4770405D4193C0 +S1130A90B3E00FD0C9F7F6CF462F4F70405D4A330D +S1130AA018F0495D31FD4052419302D0A9F7EACFD5 +S1130AB0B4E0A6959795879577956795BA95C9F704 +S1130AC000976105710508959B01AC010A2E0694F7 +S1130AD05795479537952795BA95C9F7620F731FB0 +S10F0AE0841F951FA01D0895F894FFCFFB +S1130AEC01080C0406020301090901030206040CA3 +S1130AFC080125640025733A20252E3366202573BE +S1050B0C0000E3 S9030000FC diff --git a/Microcontrollers/Eindopdracht/Debug/lcd_control.o b/Microcontrollers/Eindopdracht/Debug/lcd_control.o index 9d5d27125023c6b178943cf59172e26664fe70b5..bf4a1575a23b7bc6a2b9a25db63de097b9fbc49f 100644 GIT binary patch delta 3150 zcmai$Yiv|S6vt<7+0r*{w+r1q*S4@IFZ&2=Ujj8kTCpuc4MKwyinLl;U8;nKEYt>Q zmd*{XytansT9! z{9EiFBAfmMo?~rlsk0TOBD213Dc{Hx6>1y}g7A-69E*+{WuRQ8iLFJeD4Sb!;J>+k?;|mHhugvJ`t5RCnmoPz@=e zYb9=0;rf-?(ZjKI(I_=imq>v^z*7B9`bWiHGDBr!GDa^OaSMkH#D;BwrF%_xK{lyb4v3Qg7#yj}fuQ zerR29r%-qY+@`_NGqg4-HPQ4tmrh==qQmd+YHet13wX*}n^y)p{p~9~<*g5Nt_b*7 z_*Zua{9Rou18Z7Wb#|MdoO2zIcKO@7hsv{>t)bqrB?<1CIBdLyx)6V0m+%sEyr4Mv zIeO)yEJAI3!n5&vpKt^81;V}H#ln~I`-t!c=v~6+z-xqu@w;BQ9r`xmUEm!`HQH(Y z3~{#%WFf_U!e#h9AnbiNB?MhXmiO-C!V_WRw}PR-*e1139Ma+N92p7m+qhjE(!g&B^F{f#um^lxxCHzu z8G-py_=3!>K^qok;0t8T|25*P%i_SmzsSI!&~J(Z1E=6~z=;^xCF}uD5oTZ?8G-p< zz&&L9b*@yMa1Lx13gZH+Mc^QfXt#<3$Y>&*yP}Mq6sFBOv6%&%9${Xnz9{=wg}L|p z$w=rLYz~ug?b+TFZbW?b0Xqo18b+sNfbZb5!raUA!d&II!aNf{3YURz3iEc~7M=x; z9~BDBv*i|U0GE&pS%0)i?ARYCrKSn9T;*gWw-d?D6=r$oiA@S@mXoo{GtfK9eEXn1 zA`4;v%?jzbXmeY2f1W!BwC^Hb#O5m$z4T&DPo@p`x&BN zK>2G#XVP;-*9dyQ=tp4R;=ulMB9?ry3~)8=;=unXRtv8OZz3b1b|kS)m{)YCFe`V6 zjK%O1e7%B;dXhe7o~|x-+$z8Z znAbqbiAo(cA6FOaQ|3ywSD!T*HD3LYsjTr@%O;!UH52q#rVr9SGl=ILa~@A*QtNe` vz@@oirqmYe!)AW1SN~wv)p{*Yx!GGg0coCrw9#Cv^=9utA@i~5a0}yK&bL|# delta 3108 zcmbW3eN2^A9LLXj@BxI&>qWTW1+QM=QcevbL%0yoe8D-cOWCNUiIFqsONmmtWgLh~ zw*`7rG1tEf%;Xfs$P@M>CM$7?(T^Lgr>JZWJb-~XO}WumN;f-SL^eHu$Q*~78yrQc z*tBcoXRT19I37lL%&=DsVJB~#Bbuyjc(TldXtK6p$yn<7ze`3#B7$SES?B%y+jHX=`zq4VbCy!7nuYL6@rB@NzoaDTj%C_!-=II8eIB|MyEZo_wHViwL zMi!`>V(aUSIXR~uf-`boIvXjVXT$2ph^ z`SB9|lw~F1Q+X)J#qAkhNIT|=6w=cf-GAvHXDC{9IMPF%Xu9`SnLU_-EmCG5XZ*)9 z8RL}Mz+k7oB5iIazZ)*pW$rAUty@wbOx14OG+ULqtwg2LQ#Ey^GAcyL?AxfJmAUE5 z+PqOKD`iJR3eF%pfK^Y@_qh_%t5T~|11`qbCGKu;F(AiQ5xvoweiUMGDeW>0<(j6H zyg7L=Br`B#@RX=VjOAAh3oEEl6|RV3G)Baa!_d0XsjF}-!X_iIXz*}K+Q`Jk%T~6o zR_0^(0=vGWbw#_Goik%_Pfo}hypUU*obTbIfi2NvlsbdOawo~Hrg)6sIiR~mDZ^-` z@C(KzTBXOSh;ykRD9uGVxh3^8N)_7K# z%!|%h31G5|Vww)VEIK_`<2={JvjDn{(`JGWu#1d2S?G9S##WKB?v;qECp+)8Fb-Tg zr7$&;F%b?)&6R+k!1G1t&*UQU^H+48FyB_2gni%_g~x;UlaV+Cev2%>42Q^JbeQ-s zJ4k#6d`tqE_%qS3gHMs+XW}1)nfS7>51fQI7(Gm!O-AB=tk^?#-l^Da;R1NVlca+; zgDMxMubzy8N)bFg&NC~{Ggmxy@H{Ns0)8~k-yzJi?uLhdpD(dl=-lK0s^d=B zBf!oJTd9%4+^#e-irbFj#tI(;mx#v&Pmqjx_>|mFcHZJj%@F3rY!*&LezjNvHX&d+ zna?EJlfp;9Ysg4^0iLkzvu^{?-TwC{0@+K{YOn2+dEVeZ^EG77o`-WkW};yp3=b#Y?0 zo@u_hH>4MuiIpM!v{{eO?PjPlWWDA!MN^xsU%h6<)F$mSA50DDIVPy^7IUI{g5GO>tM=Qwij?}uv-Hq#d(!5^d lMKzCKE5SGsEtL*_qAE9Ue&q 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 literal 9312 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 diff --git a/Microcontrollers/Eindopdracht/Debug/stepper_driver.o b/Microcontrollers/Eindopdracht/Debug/stepper_driver.o index ed8345b08fe3412568c2dfe68c22796e327fe714..c06e0f8e5ce642a02561356dabeda06c426ac4c6 100644 GIT binary patch delta 464 zcmccPe8+jiZ$?Ie$$uCnw3Qhdpn!Rj0u$p=Acq4az^H5h6=z@vD`C`~Y|kVCBqNwq z84V}bF)90oqw0+Zav^%dJ)wH}i}Fht7{lv82Bt9xKn#k584R`&Dws6+9g`NL&}2zw zB`p=En5L*Z=%9g`NL@MKA5 zB`-CwdRAtTIuQ`TX#5XEB8ymptUwX5!Vs}G*xbrIgPBolvK+f2qse3kc2O2{^U>Cm&$fkaz-C0kj7w!@$VMz{&)24fBgl z95=Y@b%4IP2*ivEKrtY=24c%FFqi`A#~`)}MEnI*oF7Pk1+j%8;=iEc*MVGipuvnn k5OE$58)(i#AT0@E3qr&}BqKM34Rp?AesR{#F(M7T0G5m~#{d8T diff --git a/Microcontrollers/Eindopdracht/Debug/ultrasonic_sensor.o b/Microcontrollers/Eindopdracht/Debug/ultrasonic_sensor.o index cad0223d9aabb8ac8058f2bbdb9a65fe85e4dc9d..cb888a1621cd9138ae5c06f06f253eeee508ecaa 100644 GIT binary patch delta 572 zcmXZYODIHP6bJC{T#ZICjG0Lj!#6Ww;ZYtt<*~4t=uRmXZfY76Q^VzYWr4+HVL>=4 zngt6*LNTdXuuzl*qFAyaiBUFeSU6YbF23{Yf6hJkvD%+yAT43geU`i zvscd?DMHk6G(hb}_AAu@dyZzh*iAIk!%k2hW-pV6*xytq*kd$5&F&<}*_$+vLd^WX zOPm^O+^~{2*lpxJ_5#%uTT*_;-Xhx#P% z$&jnt3cq;bQ59)NTk$vqakf|m4e#kZ#?lfM?r^MR9n$EM6R?Z(QiW%HpmPqH@F1C`ES{K>C?)Ge{**tZ zP?WV2PpCbtls|7CgvF~udANDtOlSAud_SFY?(hD(cfq6JvRip`CA4^y2?EfykJXn`OhI2<;$^B#T5a*fL;7o~Uc;{Xm=6n)=alVS@ zIX}b~{NW$50d|0VJ|O!;vIkkjVG3FIag_|~CU((^&5Ln5w>9AgeX~>KRK3L!-reKF zvhVIwyXwV78ddFhnw(R63h;q4Wjei- #include @@ -16,6 +22,7 @@ #include "ultrasonic_sensor.h" #include "stepper_driver.h" +// if true: in init mode, looking for starting point. bool initialising = true; ISR(INT2_vect) @@ -24,43 +31,49 @@ ISR(INT2_vect) } static void snap_event_trigger(uint8_t rotation){ + // when X amount of steps are taken, do pulse. ultrasonic_send_pulse(); } static void ultrasoon_value_set_event(uint16_t value){ + // if the SODAR is initialising, then look for close start object. if(initialising){ - if(value > 0 && value < 20){ + if(value > 0 && value < MAX_DISTANCE_INIT){ stepper_rotate_stop(); initialising = false; - stepper_rotate_angle(512, CounterClockWise); + // when found, set the initial rotation. + stepper_rotate_angle(ROTAITION_ANGLE, CounterClockWise); } } } int main(void) { - /* Replace with your application code */ + // initialize ultrasonic sensor driver. ultrasonic_init(); + // initialize LCD display in 4 bit mode. init_4bits_mode(); + // initialize stepper driver. init_stepper_driver(); + // set the event when a pulse must be sent. set_snap_event(&snap_event_trigger); + // set a event for when a value has been set from the ultrasonic sensor. set_value_trigger_event(&ultrasoon_value_set_event); _delay_ms(10); lcd_clear(); - stepper_rotate_angle(600, ClockWise); + stepper_rotate_angle(INIT_ROTAITION_ANGLE, ClockWise); while (1) { - lcd_clear(); - double res = ultrasonic_get_timer_dist()/1000.0; - lcd_write_double("distance: ",res,"cm"); + // set the ultrasonic value to the lcd. + lcd_write_int(ultrasonic_get_timer_dist()); - - wait_ms(100); + wait_ms(LCD_SET_DELAY); } + // stop rotating. (not necessary) stepper_rotate_stop(); } diff --git a/Microcontrollers/Eindopdracht/stepper_driver.c b/Microcontrollers/Eindopdracht/stepper_driver.c index 7802cb1..bfe8a45 100644 --- a/Microcontrollers/Eindopdracht/stepper_driver.c +++ b/Microcontrollers/Eindopdracht/stepper_driver.c @@ -4,8 +4,6 @@ * Created: 10-Mar-21 12:21:47 PM * Author: lemms */ -#define F_CPU 10e6 - #include #include #include @@ -16,25 +14,19 @@ #define BIT(x) (1 << (x)) +// states for stepper to rotate counterclockwise uint8_t CCW[8] = {0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; +// states for stepper to rotate clockwise uint8_t CW[8] = {0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; -/* - Een timer met interupt routine. - - in de interump routine een state machine voor de 8 nibbles - elke keer dat de interupt routine wordt geroepen wordt de state - incremented. hier houd je ook een var bij om de relatieve - positie te weten van de stappenmotor. - - Nog een timer voor microstepping. - - Timers: - timer voor de speed. - stappen van 100ms naar 10ms - prescaler = 255 -*/ - +// value for how many steps each turn. +uint16_t steps_each_turn = 0; +// value for the amount of steps still to do. +uint16_t steps_to_do = 0; +// which of the stepper states is set currently. +uint8_t stepper_state = 0; + +// current rotation wise. (CW or CCW) enum rotation_wise rotation; void stepper_rotate_full_rotation_CW(); @@ -54,10 +46,8 @@ void set_snap_event(void (*snap_event_p)(uint8_t)){ snap_event = snap_event_p; } -uint16_t steps_each_turn = 0; -uint16_t steps_to_do = 0; -uint8_t stepper_state = 0; ISR( TIMER2_COMP_vect ){ + TCNT2 = 0; set_stepper_state(stepper_state); @@ -65,22 +55,25 @@ ISR( TIMER2_COMP_vect ){ if(stepper_state < 7){ stepper_state++; } else { - //OCR2 = ADCH; + stepper_state = 0; if(steps_to_do == 0){ + // change rotation if the steps todo is 0. if(rotation == ClockWise){ rotation = CounterClockWise; } else { rotation = ClockWise; } + // set the steps to do again. steps_to_do = steps_each_turn; } else { - if(steps_to_do % 32 == 0){ + // if the stepper step value is at a multiplier of 32 then make snap event. + if(steps_to_do % STEPS_EACH_PULSE == 0){ if(snap_event != NULL) snap_event(steps_to_do); diff --git a/Microcontrollers/Eindopdracht/stepper_driver.h b/Microcontrollers/Eindopdracht/stepper_driver.h index af873d1..d559108 100644 --- a/Microcontrollers/Eindopdracht/stepper_driver.h +++ b/Microcontrollers/Eindopdracht/stepper_driver.h @@ -11,15 +11,28 @@ #include +#define STEPS_EACH_PULSE 32 + enum rotation_wise { ClockWise, CounterClockWise }; +/************************************************************************/ +/* init ports and timers for stepperdriver. */ +/************************************************************************/ void init_stepper_driver(); -void stepper_rotate(uint16_t steps); +/************************************************************************/ +/* set the rotationangle and turn on stepper */ +/************************************************************************/ void stepper_rotate_angle(uint16_t steps, enum rotation_wise rot); +/************************************************************************/ +/* stepper stop rotating */ +/************************************************************************/ void stepper_rotate_stop(); +/************************************************************************/ +/* set the event for the ultrasonic pulse */ +/************************************************************************/ void set_snap_event(void (*snap_event_p)(uint8_t)); #endif /* STEPPER_DRIVER_H_ */ \ No newline at end of file diff --git a/Microcontrollers/Eindopdracht/ultrasonic_sensor.h b/Microcontrollers/Eindopdracht/ultrasonic_sensor.h index b91ae14..fc5e226 100644 --- a/Microcontrollers/Eindopdracht/ultrasonic_sensor.h +++ b/Microcontrollers/Eindopdracht/ultrasonic_sensor.h @@ -6,8 +6,24 @@ */ +/************************************************************************/ +/* init the ultrasonic sensor driver */ +/************************************************************************/ void ultrasonic_init(); +/************************************************************************/ +/* send a pulse from the ultrasonic sensor */ +/************************************************************************/ void ultrasonic_send_pulse(); +/************************************************************************/ +/* get the value of the timer which equals time taken for sound to */ +/* turn */ +/************************************************************************/ uint16_t ultrasonic_get_timer_dist(); +/************************************************************************/ +/* handle for the interrupt */ +/************************************************************************/ void ultrasonic_handle_interrupt(); +/************************************************************************/ +/* set a event for when the ultrasonic has a new value. */ +/************************************************************************/ void set_value_trigger_event(void (*value_set_event_p)(uint16_t));