diff --git a/V2/Motor/Motor.c b/V2/Motor/Motor.c index a559d5a..b533d30 100644 --- a/V2/Motor/Motor.c +++ b/V2/Motor/Motor.c @@ -3,23 +3,44 @@ #include #include +#define AINpin ((1<: 0: 19 c0 rjmp .+50 ; 0x34 <__ctors_end> - 2: 2b c0 rjmp .+86 ; 0x5a <__bad_interrupt> - 4: 2a c0 rjmp .+84 ; 0x5a <__bad_interrupt> - 6: 29 c0 rjmp .+82 ; 0x5a <__bad_interrupt> - 8: f8 c0 rjmp .+496 ; 0x1fa <__vector_4> - a: 27 c0 rjmp .+78 ; 0x5a <__bad_interrupt> - c: 26 c0 rjmp .+76 ; 0x5a <__bad_interrupt> - e: 25 c0 rjmp .+74 ; 0x5a <__bad_interrupt> - 10: 24 c0 rjmp .+72 ; 0x5a <__bad_interrupt> - 12: 23 c0 rjmp .+70 ; 0x5a <__bad_interrupt> - 14: 22 c0 rjmp .+68 ; 0x5a <__bad_interrupt> - 16: 21 c0 rjmp .+66 ; 0x5a <__bad_interrupt> - 18: 20 c0 rjmp .+64 ; 0x5a <__bad_interrupt> - 1a: 1f c0 rjmp .+62 ; 0x5a <__bad_interrupt> - 1c: 1e c0 rjmp .+60 ; 0x5a <__bad_interrupt> - 1e: 1d c0 rjmp .+58 ; 0x5a <__bad_interrupt> - 20: 1c c0 rjmp .+56 ; 0x5a <__bad_interrupt> - 22: 1b c0 rjmp .+54 ; 0x5a <__bad_interrupt> - 24: 1a c0 rjmp .+52 ; 0x5a <__bad_interrupt> - 26: 19 c0 rjmp .+50 ; 0x5a <__bad_interrupt> - 28: 18 c0 rjmp .+48 ; 0x5a <__bad_interrupt> - 2a: 17 c0 rjmp .+46 ; 0x5a <__bad_interrupt> - 2c: 16 c0 rjmp .+44 ; 0x5a <__bad_interrupt> - 2e: 15 c0 rjmp .+42 ; 0x5a <__bad_interrupt> - 30: 14 c0 rjmp .+40 ; 0x5a <__bad_interrupt> - 32: 13 c0 rjmp .+38 ; 0x5a <__bad_interrupt> + 2: 33 c0 rjmp .+102 ; 0x6a <__bad_interrupt> + 4: 32 c0 rjmp .+100 ; 0x6a <__bad_interrupt> + 6: 31 c0 rjmp .+98 ; 0x6a <__bad_interrupt> + 8: 30 c0 rjmp .+96 ; 0x6a <__bad_interrupt> + a: 2f c0 rjmp .+94 ; 0x6a <__bad_interrupt> + c: 2e c0 rjmp .+92 ; 0x6a <__bad_interrupt> + e: 2d c0 rjmp .+90 ; 0x6a <__bad_interrupt> + 10: 2c c0 rjmp .+88 ; 0x6a <__bad_interrupt> + 12: 2b c0 rjmp .+86 ; 0x6a <__bad_interrupt> + 14: 2a c0 rjmp .+84 ; 0x6a <__bad_interrupt> + 16: 29 c0 rjmp .+82 ; 0x6a <__bad_interrupt> + 18: 28 c0 rjmp .+80 ; 0x6a <__bad_interrupt> + 1a: 27 c0 rjmp .+78 ; 0x6a <__bad_interrupt> + 1c: 26 c0 rjmp .+76 ; 0x6a <__bad_interrupt> + 1e: 25 c0 rjmp .+74 ; 0x6a <__bad_interrupt> + 20: 24 c0 rjmp .+72 ; 0x6a <__bad_interrupt> + 22: 23 c0 rjmp .+70 ; 0x6a <__bad_interrupt> + 24: 22 c0 rjmp .+68 ; 0x6a <__bad_interrupt> + 26: 21 c0 rjmp .+66 ; 0x6a <__bad_interrupt> + 28: 20 c0 rjmp .+64 ; 0x6a <__bad_interrupt> + 2a: 1f c0 rjmp .+62 ; 0x6a <__bad_interrupt> + 2c: 1e c0 rjmp .+60 ; 0x6a <__bad_interrupt> + 2e: 1d c0 rjmp .+58 ; 0x6a <__bad_interrupt> + 30: 1c c0 rjmp .+56 ; 0x6a <__bad_interrupt> + 32: 1b c0 rjmp .+54 ; 0x6a <__bad_interrupt> 00000034 <__ctors_end>: 34: 11 24 eor r1, r1 @@ -74,531 +74,180 @@ Disassembly of section .text: 40: 11 e0 ldi r17, 0x01 ; 1 42: a0 e0 ldi r26, 0x00 ; 0 44: b1 e0 ldi r27, 0x01 ; 1 - 46: e0 e8 ldi r30, 0x80 ; 128 - 48: f2 e0 ldi r31, 0x02 ; 2 + 46: ea e3 ldi r30, 0x3A ; 58 + 48: f1 e0 ldi r31, 0x01 ; 1 4a: 02 c0 rjmp .+4 ; 0x50 <__do_copy_data+0x10> 4c: 05 90 lpm r0, Z+ 4e: 0d 92 st X+, r0 - 50: aa 30 cpi r26, 0x0A ; 10 + 50: a0 31 cpi r26, 0x10 ; 16 52: b1 07 cpc r27, r17 54: d9 f7 brne .-10 ; 0x4c <__do_copy_data+0xc> - 56: e0 d0 rcall .+448 ; 0x218
- 58: 11 c1 rjmp .+546 ; 0x27c <_exit> -0000005a <__bad_interrupt>: - 5a: d2 cf rjmp .-92 ; 0x0 <__vectors> +00000056 <__do_clear_bss>: + 56: 11 e0 ldi r17, 0x01 ; 1 + 58: a0 e1 ldi r26, 0x10 ; 16 + 5a: b1 e0 ldi r27, 0x01 ; 1 + 5c: 01 c0 rjmp .+2 ; 0x60 <.do_clear_bss_start> -0000005c : - (1<: + 5e: 1d 92 st X+, r1 + +00000060 <.do_clear_bss_start>: + 60: a1 31 cpi r26, 0x11 ; 17 + 62: b1 07 cpc r27, r17 + 64: e1 f7 brne .-8 ; 0x5e <.do_clear_bss_loop> + 66: 3f d0 rcall .+126 ; 0xe6
+ 68: 66 c0 rjmp .+204 ; 0x136 <_exit> + +0000006a <__bad_interrupt>: + 6a: ca cf rjmp .-108 ; 0x0 <__vectors> + +0000006c : }; - -void runon() { - 5c: 42 e0 ldi r20, 0x02 ; 2 - for(uint8_t j=0;j<2;j++) { - for(uint8_t i=0;i<6;i++) { - PORTB = led[i%3]; - 5e: 53 e0 ldi r21, 0x03 ; 3 - 60: 1e c0 rjmp .+60 ; 0x9e - 62: 82 2f mov r24, r18 - 64: 65 2f mov r22, r21 - 66: fe d0 rcall .+508 ; 0x264 <__udivmodqi4> - 68: e9 2f mov r30, r25 - 6a: f0 e0 ldi r31, 0x00 ; 0 - 6c: e0 50 subi r30, 0x00 ; 0 - 6e: ff 4f sbci r31, 0xFF ; 255 - 70: 80 81 ld r24, Z - 72: 85 b9 out 0x05, r24 ; 5 - PORTD = motor[i]; - 74: f9 01 movw r30, r18 - 76: ed 5f subi r30, 0xFD ; 253 - 78: fe 4f sbci r31, 0xFE ; 254 - 7a: 80 81 ld r24, Z - 7c: 8b b9 out 0x0b, r24 ; 11 - #else - //round up by default - __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); - #endif - - __builtin_avr_delay_cycles(__ticks_dc); - 7e: 8f e7 ldi r24, 0x7F ; 127 - 80: 9a e1 ldi r25, 0x1A ; 26 - 82: a6 e0 ldi r26, 0x06 ; 6 - 84: 81 50 subi r24, 0x01 ; 1 - 86: 90 40 sbci r25, 0x00 ; 0 - 88: a0 40 sbci r26, 0x00 ; 0 - 8a: e1 f7 brne .-8 ; 0x84 - 8c: 00 c0 rjmp .+0 ; 0x8e - 8e: 00 00 nop - 90: 2f 5f subi r18, 0xFF ; 255 - 92: 3f 4f sbci r19, 0xFF ; 255 -}; +volatile uint8_t ind = 0; -void runon() { - for(uint8_t j=0;j<2;j++) { - for(uint8_t i=0;i<6;i++) { - 94: 26 30 cpi r18, 0x06 ; 6 - 96: 31 05 cpc r19, r1 - 98: 21 f7 brne .-56 ; 0x62 - 9a: 41 50 subi r20, 0x01 ; 1 - (1< - (1< - _delay_ms(100); - } - } - for(uint8_t j=0;j<4;j++) { - for(uint8_t i=0;i<6;i++) { - PORTB = led[i%3]; - a4: 82 2f mov r24, r18 - a6: 65 2f mov r22, r21 - a8: dd d0 rcall .+442 ; 0x264 <__udivmodqi4> - aa: e9 2f mov r30, r25 - ac: f0 e0 ldi r31, 0x00 ; 0 - ae: e0 50 subi r30, 0x00 ; 0 - b0: ff 4f sbci r31, 0xFF ; 255 - b2: 80 81 ld r24, Z - b4: 85 b9 out 0x05, r24 ; 5 - PORTD = motor[i]; - b6: f9 01 movw r30, r18 - b8: ed 5f subi r30, 0xFD ; 253 - ba: fe 4f sbci r31, 0xFE ; 254 - bc: 80 81 ld r24, Z - be: 8b b9 out 0x0b, r24 ; 11 - c0: 8f e3 ldi r24, 0x3F ; 63 - c2: 9d e0 ldi r25, 0x0D ; 13 - c4: a3 e0 ldi r26, 0x03 ; 3 - c6: 81 50 subi r24, 0x01 ; 1 - c8: 90 40 sbci r25, 0x00 ; 0 - ca: a0 40 sbci r26, 0x00 ; 0 - cc: e1 f7 brne .-8 ; 0xc6 - ce: 00 c0 rjmp .+0 ; 0xd0 - d0: 00 00 nop - d2: 2f 5f subi r18, 0xFF ; 255 - d4: 3f 4f sbci r19, 0xFF ; 255 - PORTD = motor[i]; - _delay_ms(100); - } - } - for(uint8_t j=0;j<4;j++) { - for(uint8_t i=0;i<6;i++) { - d6: 26 30 cpi r18, 0x06 ; 6 - d8: 31 05 cpc r19, r1 - da: 21 f7 brne .-56 ; 0xa4 - dc: 41 50 subi r20, 0x01 ; 1 - PORTB = led[i%3]; - PORTD = motor[i]; - _delay_ms(100); - } - } - for(uint8_t j=0;j<4;j++) { - de: 29 f4 brne .+10 ; 0xea - e0: 48 e0 ldi r20, 0x08 ; 8 - _delay_ms(50); - } - } - for(uint8_t j=0;j<8;j++) { - for(uint8_t i=0;i<6;i++) { - PORTB = led[i%3]; - e2: 53 e0 ldi r21, 0x03 ; 3 - e4: 26 c0 rjmp .+76 ; 0x132 - (1< - _delay_ms(50); - } - } - for(uint8_t j=0;j<8;j++) { - for(uint8_t i=0;i<6;i++) { - PORTB = led[i%3]; - f0: 82 2f mov r24, r18 - f2: 65 2f mov r22, r21 - f4: b7 d0 rcall .+366 ; 0x264 <__udivmodqi4> - f6: e9 2f mov r30, r25 - f8: f0 e0 ldi r31, 0x00 ; 0 - fa: e0 50 subi r30, 0x00 ; 0 - fc: ff 4f sbci r31, 0xFF ; 255 - fe: 80 81 ld r24, Z - 100: 85 b9 out 0x05, r24 ; 5 - PORTD = motor[i]; - 102: f9 01 movw r30, r18 - 104: ed 5f subi r30, 0xFD ; 253 - 106: fe 4f sbci r31, 0xFE ; 254 - 108: 80 81 ld r24, Z - 10a: 8b b9 out 0x0b, r24 ; 11 - 10c: 8f e7 ldi r24, 0x7F ; 127 - 10e: 98 e3 ldi r25, 0x38 ; 56 - 110: a1 e0 ldi r26, 0x01 ; 1 - 112: 81 50 subi r24, 0x01 ; 1 - 114: 90 40 sbci r25, 0x00 ; 0 - 116: a0 40 sbci r26, 0x00 ; 0 - 118: e1 f7 brne .-8 ; 0x112 - 11a: 00 c0 rjmp .+0 ; 0x11c - 11c: 00 00 nop - 11e: 2f 5f subi r18, 0xFF ; 255 - 120: 3f 4f sbci r19, 0xFF ; 255 - PORTD = motor[i]; - _delay_ms(50); - } - } - for(uint8_t j=0;j<8;j++) { - for(uint8_t i=0;i<6;i++) { - 122: 26 30 cpi r18, 0x06 ; 6 - 124: 31 05 cpc r19, r1 - 126: 21 f7 brne .-56 ; 0xf0 - 128: 41 50 subi r20, 0x01 ; 1 - PORTB = led[i%3]; - PORTD = motor[i]; - _delay_ms(50); - } - } - for(uint8_t j=0;j<8;j++) { - 12a: 19 f4 brne .+6 ; 0x132 - 12c: 40 e1 ldi r20, 0x10 ; 16 - _delay_ms(20); - } - } - for(uint8_t j=0;j<16;j++) { - for(uint8_t i=0;i<6;i++) { - PORTB = led[i%3]; - 12e: 53 e0 ldi r21, 0x03 ; 3 - 130: 21 c0 rjmp .+66 ; 0x174 - (1< - _delay_ms(20); - } - } - for(uint8_t j=0;j<16;j++) { - for(uint8_t i=0;i<6;i++) { - PORTB = led[i%3]; - 138: 82 2f mov r24, r18 - 13a: 65 2f mov r22, r21 - 13c: 93 d0 rcall .+294 ; 0x264 <__udivmodqi4> - 13e: e9 2f mov r30, r25 - 140: f0 e0 ldi r31, 0x00 ; 0 - 142: e0 50 subi r30, 0x00 ; 0 - 144: ff 4f sbci r31, 0xFF ; 255 - 146: 80 81 ld r24, Z - 148: 85 b9 out 0x05, r24 ; 5 - PORTD = motor[i]; - 14a: f9 01 movw r30, r18 - 14c: ed 5f subi r30, 0xFD ; 253 - 14e: fe 4f sbci r31, 0xFE ; 254 - 150: 80 81 ld r24, Z - 152: 8b b9 out 0x0b, r24 ; 11 - 154: af e4 ldi r26, 0x4F ; 79 - 156: b3 ec ldi r27, 0xC3 ; 195 - 158: 11 97 sbiw r26, 0x01 ; 1 - 15a: f1 f7 brne .-4 ; 0x158 - 15c: 00 c0 rjmp .+0 ; 0x15e - 15e: 00 00 nop - 160: 2f 5f subi r18, 0xFF ; 255 - 162: 3f 4f sbci r19, 0xFF ; 255 - PORTD = motor[i]; - _delay_ms(20); - } - } - for(uint8_t j=0;j<16;j++) { - for(uint8_t i=0;i<6;i++) { - 164: 26 30 cpi r18, 0x06 ; 6 - 166: 31 05 cpc r19, r1 - 168: 39 f7 brne .-50 ; 0x138 - 16a: 41 50 subi r20, 0x01 ; 1 - PORTB = led[i%3]; - PORTD = motor[i]; - _delay_ms(20); - } - } - for(uint8_t j=0;j<16;j++) { - 16c: 19 f4 brne .+6 ; 0x174 - 16e: 40 e2 ldi r20, 0x20 ; 32 - _delay_ms(10); - } - } - for(uint8_t j=0;j<32;j++) { - for(uint8_t i=0;i<6;i++) { - PORTB = led[i%3]; - 170: 53 e0 ldi r21, 0x03 ; 3 - 172: 21 c0 rjmp .+66 ; 0x1b6 - PORTB = led[i%3]; - PORTD = motor[i]; - _delay_ms(100); - } - } - for(uint8_t j=0;j<4;j++) { - 174: 20 e0 ldi r18, 0x00 ; 0 - 176: 30 e0 ldi r19, 0x00 ; 0 - 178: df cf rjmp .-66 ; 0x138 - _delay_ms(10); - } - } - for(uint8_t j=0;j<32;j++) { - for(uint8_t i=0;i<6;i++) { - PORTB = led[i%3]; - 17a: 82 2f mov r24, r18 - 17c: 65 2f mov r22, r21 - 17e: 72 d0 rcall .+228 ; 0x264 <__udivmodqi4> - 180: e9 2f mov r30, r25 - 182: f0 e0 ldi r31, 0x00 ; 0 - 184: e0 50 subi r30, 0x00 ; 0 - 186: ff 4f sbci r31, 0xFF ; 255 - 188: 80 81 ld r24, Z - 18a: 85 b9 out 0x05, r24 ; 5 - PORTD = motor[i]; - 18c: f9 01 movw r30, r18 - 18e: ed 5f subi r30, 0xFD ; 253 - 190: fe 4f sbci r31, 0xFE ; 254 - 192: 80 81 ld r24, Z - 194: 8b b9 out 0x0b, r24 ; 11 - 196: 87 ea ldi r24, 0xA7 ; 167 - 198: 91 e6 ldi r25, 0x61 ; 97 - 19a: 01 97 sbiw r24, 0x01 ; 1 - 19c: f1 f7 brne .-4 ; 0x19a - 19e: 00 c0 rjmp .+0 ; 0x1a0 - 1a0: 00 00 nop - 1a2: 2f 5f subi r18, 0xFF ; 255 - 1a4: 3f 4f sbci r19, 0xFF ; 255 - PORTD = motor[i]; - _delay_ms(10); - } - } - for(uint8_t j=0;j<32;j++) { - for(uint8_t i=0;i<6;i++) { - 1a6: 26 30 cpi r18, 0x06 ; 6 - 1a8: 31 05 cpc r19, r1 - 1aa: 39 f7 brne .-50 ; 0x17a - 1ac: 41 50 subi r20, 0x01 ; 1 - PORTB = led[i%3]; - PORTD = motor[i]; - _delay_ms(10); - } - } - for(uint8_t j=0;j<32;j++) { - 1ae: 19 f4 brne .+6 ; 0x1b6 - 1b0: 40 e4 ldi r20, 0x40 ; 64 - _delay_ms(5); - } - } - for(uint8_t j=0;j<64;j++) { - for(uint8_t i=0;i<6;i++) { - PORTB = led[i%3]; - 1b2: 53 e0 ldi r21, 0x03 ; 3 - 1b4: 1e c0 rjmp .+60 ; 0x1f2 - PORTB = led[i%3]; - PORTD = motor[i]; - _delay_ms(50); - } - } - for(uint8_t j=0;j<8;j++) { - 1b6: 20 e0 ldi r18, 0x00 ; 0 - 1b8: 30 e0 ldi r19, 0x00 ; 0 - 1ba: df cf rjmp .-66 ; 0x17a - _delay_ms(5); - } - } - for(uint8_t j=0;j<64;j++) { - for(uint8_t i=0;i<6;i++) { - PORTB = led[i%3]; - 1bc: 82 2f mov r24, r18 - 1be: 65 2f mov r22, r21 - 1c0: 51 d0 rcall .+162 ; 0x264 <__udivmodqi4> - 1c2: e9 2f mov r30, r25 - 1c4: f0 e0 ldi r31, 0x00 ; 0 - 1c6: e0 50 subi r30, 0x00 ; 0 - 1c8: ff 4f sbci r31, 0xFF ; 255 - 1ca: 80 81 ld r24, Z - 1cc: 85 b9 out 0x05, r24 ; 5 - PORTD = motor[i]; - 1ce: f9 01 movw r30, r18 - 1d0: ed 5f subi r30, 0xFD ; 253 - 1d2: fe 4f sbci r31, 0xFE ; 254 - 1d4: 80 81 ld r24, Z - 1d6: 8b b9 out 0x0b, r24 ; 11 - 1d8: a7 e9 ldi r26, 0x97 ; 151 - 1da: ba e3 ldi r27, 0x3A ; 58 - 1dc: 11 97 sbiw r26, 0x01 ; 1 - 1de: f1 f7 brne .-4 ; 0x1dc - 1e0: 00 c0 rjmp .+0 ; 0x1e2 - 1e2: 00 00 nop - 1e4: 2f 5f subi r18, 0xFF ; 255 - 1e6: 3f 4f sbci r19, 0xFF ; 255 - PORTD = motor[i]; - _delay_ms(5); - } - } - for(uint8_t j=0;j<64;j++) { - for(uint8_t i=0;i<6;i++) { - 1e8: 26 30 cpi r18, 0x06 ; 6 - 1ea: 31 05 cpc r19, r1 - 1ec: 39 f7 brne .-50 ; 0x1bc - 1ee: 41 50 subi r20, 0x01 ; 1 - PORTB = led[i%3]; - PORTD = motor[i]; - _delay_ms(5); - } - } - for(uint8_t j=0;j<64;j++) { - 1f0: 19 f0 breq .+6 ; 0x1f8 - PORTB = led[i%3]; - PORTD = motor[i]; - _delay_ms(20); - } - } - for(uint8_t j=0;j<16;j++) { - 1f2: 20 e0 ldi r18, 0x00 ; 0 - 1f4: 30 e0 ldi r19, 0x00 ; 0 - 1f6: e2 cf rjmp .-60 ; 0x1bc - 1f8: 08 95 ret - -000001fa <__vector_4>: - _delay_ms(3); - } - } +void step() { + uint8_t i = ind; + 6c: 80 91 10 01 lds r24, 0x0110 + PORTB = led[i]; + 70: 90 e0 ldi r25, 0x00 ; 0 + 72: fc 01 movw r30, r24 + 74: e0 50 subi r30, 0x00 ; 0 + 76: ff 4f sbci r31, 0xFF ; 255 + 78: 20 81 ld r18, Z + 7a: 25 b9 out 0x05, r18 ; 5 + PORTD = motor[i]; + 7c: fc 01 movw r30, r24 + 7e: ed 5f subi r30, 0xFD ; 253 + 80: fe 4f sbci r31, 0xFE ; 254 + 82: 20 81 ld r18, Z + 84: 2b b9 out 0x0b, r18 ; 11 + ADMUX = mux[i]; + 86: 87 5f subi r24, 0xF7 ; 247 + 88: 9e 4f sbci r25, 0xFE ; 254 + 8a: fc 01 movw r30, r24 + 8c: 80 81 ld r24, Z + 8e: 80 93 7c 00 sts 0x007C, r24 } + 92: 08 95 ret -ISR(PCINT1_vect) { - 1fa: 1f 92 push r1 - 1fc: 0f 92 push r0 - 1fe: 0f b6 in r0, 0x3f ; 63 - 200: 0f 92 push r0 - 202: 11 24 eor r1, r1 - 204: 8f 93 push r24 - 206: 9f 93 push r25 - PORTD = 0; - 208: 1b b8 out 0x0b, r1 ; 11 - 20a: 87 e8 ldi r24, 0x87 ; 135 - 20c: 93 e1 ldi r25, 0x13 ; 19 - 20e: 01 97 sbiw r24, 0x01 ; 1 - 210: f1 f7 brne .-4 ; 0x20e <__vector_4+0x14> - 212: 00 c0 rjmp .+0 ; 0x214 <__vector_4+0x1a> - 214: 00 00 nop - 216: f9 cf rjmp .-14 ; 0x20a <__vector_4+0x10> - -00000218
: - - } +00000094 : + /*for(uint8_t k=0;k<120;k++) { + ind = k%6; + step(); + _delay_ms(10); + }*/ } + 94: 08 95 ret + +00000096 : + +ISR(ANA_COMP_vect) { + 96: 1f 92 push r1 + 98: 0f 92 push r0 + 9a: 0f b6 in r0, 0x3f ; 63 + 9c: 0f 92 push r0 + 9e: 11 24 eor r1, r1 + a0: 2f 93 push r18 + a2: 3f 93 push r19 + a4: 4f 93 push r20 + a6: 5f 93 push r21 + a8: 6f 93 push r22 + aa: 7f 93 push r23 + ac: 8f 93 push r24 + ae: 9f 93 push r25 + b0: af 93 push r26 + b2: bf 93 push r27 + b4: ef 93 push r30 + b6: ff 93 push r31 + ind = ind+1%6; + b8: 80 91 10 01 lds r24, 0x0110 + bc: 8f 5f subi r24, 0xFF ; 255 + be: 80 93 10 01 sts 0x0110, r24 + step(); + c2: d4 df rcall .-88 ; 0x6c + //_delay_ms(10); +} + c4: ff 91 pop r31 + c6: ef 91 pop r30 + c8: bf 91 pop r27 + ca: af 91 pop r26 + cc: 9f 91 pop r25 + ce: 8f 91 pop r24 + d0: 7f 91 pop r23 + d2: 6f 91 pop r22 + d4: 5f 91 pop r21 + d6: 4f 91 pop r20 + d8: 3f 91 pop r19 + da: 2f 91 pop r18 + dc: 0f 90 pop r0 + de: 0f be out 0x3f, r0 ; 63 + e0: 0f 90 pop r0 + e2: 1f 90 pop r1 + e4: 18 95 reti + +000000e6
: int main(void) { - cli(); - 218: f8 94 cli DDRB |= (1< + + cli(); + fc: f8 94 cli + ADCSRB |=(1< - 236: e9 2f mov r30, r25 - 238: f0 e0 ldi r31, 0x00 ; 0 - 23a: e0 50 subi r30, 0x00 ; 0 - 23c: ff 4f sbci r31, 0xFF ; 255 - 23e: 80 81 ld r24, Z - 240: 85 b9 out 0x05, r24 ; 5 - PORTD = motor[i]; - 242: e2 2f mov r30, r18 - 244: f0 e0 ldi r31, 0x00 ; 0 - 246: ed 5f subi r30, 0xFD ; 253 - 248: fe 4f sbci r31, 0xFE ; 254 - 24a: 80 81 ld r24, Z - 24c: 8b b9 out 0x0b, r24 ; 11 - 24e: 8f e0 ldi r24, 0x0F ; 15 - 250: 97 e2 ldi r25, 0x27 ; 39 - 252: 01 97 sbiw r24, 0x01 ; 1 - 254: f1 f7 brne .-4 ; 0x252 - 256: 00 c0 rjmp .+0 ; 0x258 - 258: 00 00 nop - + ACSR |= (1< - 260: 20 e0 ldi r18, 0x00 ; 0 - 262: e6 cf rjmp .-52 ; 0x230 + 132: 78 94 sei + 134: ff cf rjmp .-2 ; 0x134 -00000264 <__udivmodqi4>: - 264: 99 1b sub r25, r25 - 266: 79 e0 ldi r23, 0x09 ; 9 - 268: 04 c0 rjmp .+8 ; 0x272 <__udivmodqi4_ep> +00000136 <_exit>: + 136: f8 94 cli -0000026a <__udivmodqi4_loop>: - 26a: 99 1f adc r25, r25 - 26c: 96 17 cp r25, r22 - 26e: 08 f0 brcs .+2 ; 0x272 <__udivmodqi4_ep> - 270: 96 1b sub r25, r22 - -00000272 <__udivmodqi4_ep>: - 272: 88 1f adc r24, r24 - 274: 7a 95 dec r23 - 276: c9 f7 brne .-14 ; 0x26a <__udivmodqi4_loop> - 278: 80 95 com r24 - 27a: 08 95 ret - -0000027c <_exit>: - 27c: f8 94 cli - -0000027e <__stop_program>: - 27e: ff cf rjmp .-2 ; 0x27e <__stop_program> +00000138 <__stop_program>: + 138: ff cf rjmp .-2 ; 0x138 <__stop_program> diff --git a/V2/Motor/default/Motor.map b/V2/Motor/default/Motor.map index 1ded490..515fab9 100644 --- a/V2/Motor/default/Motor.map +++ b/V2/Motor/default/Motor.map @@ -1,11 +1,11 @@ Archive member included because of file (symbol) -e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_udivmodqi4.o) - Motor.o (__udivmodqi4) e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_exit.o) e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr4/crtm48a.o (exit) e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_copy_data.o) Motor.o (__do_copy_data) +e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_clear_bss.o) + Motor.o (__do_clear_bss) Memory Configuration @@ -117,7 +117,7 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a .rela.plt *(.rela.plt) -.text 0x00000000 0x280 +.text 0x00000000 0x13a *(.vectors) .vectors 0x00000000 0x34 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr4/crtm48a.o 0x00000000 __vector_default @@ -157,6 +157,8 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a *(.init4) .init4 0x00000040 0x16 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_copy_data.o) 0x00000040 __do_copy_data + .init4 0x00000056 0x10 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_clear_bss.o) + 0x00000056 __do_clear_bss *(.init4) *(.init5) *(.init5) @@ -167,53 +169,54 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a *(.init8) *(.init8) *(.init9) - .init9 0x00000056 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr4/crtm48a.o + .init9 0x00000066 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr4/crtm48a.o *(.init9) *(.text) - .text 0x0000005a 0x2 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr4/crtm48a.o - 0x0000005a __vector_22 - 0x0000005a __vector_1 - 0x0000005a __vector_24 - 0x0000005a __vector_12 - 0x0000005a __bad_interrupt - 0x0000005a __vector_6 - 0x0000005a __vector_3 - 0x0000005a __vector_23 - 0x0000005a __vector_25 - 0x0000005a __vector_11 - 0x0000005a __vector_13 - 0x0000005a __vector_17 - 0x0000005a __vector_19 - 0x0000005a __vector_7 - 0x0000005a __vector_5 - 0x0000005a __vector_9 - 0x0000005a __vector_2 - 0x0000005a __vector_21 - 0x0000005a __vector_15 - 0x0000005a __vector_8 - 0x0000005a __vector_14 - 0x0000005a __vector_10 - 0x0000005a __vector_16 - 0x0000005a __vector_18 - 0x0000005a __vector_20 - .text 0x0000005c 0x208 Motor.o - 0x0000005c runon - 0x000001fa __vector_4 - 0x00000218 main - .text 0x00000264 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_udivmodqi4.o) - .text 0x00000264 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_exit.o) - .text 0x00000264 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_copy_data.o) - 0x00000264 . = ALIGN (0x2) + .text 0x0000006a 0x2 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr4/crtm48a.o + 0x0000006a __vector_22 + 0x0000006a __vector_1 + 0x0000006a __vector_24 + 0x0000006a __vector_12 + 0x0000006a __bad_interrupt + 0x0000006a __vector_6 + 0x0000006a __vector_3 + 0x0000006a __vector_23 + 0x0000006a __vector_25 + 0x0000006a __vector_11 + 0x0000006a __vector_13 + 0x0000006a __vector_17 + 0x0000006a __vector_19 + 0x0000006a __vector_7 + 0x0000006a __vector_5 + 0x0000006a __vector_4 + 0x0000006a __vector_9 + 0x0000006a __vector_2 + 0x0000006a __vector_21 + 0x0000006a __vector_15 + 0x0000006a __vector_8 + 0x0000006a __vector_14 + 0x0000006a __vector_10 + 0x0000006a __vector_16 + 0x0000006a __vector_18 + 0x0000006a __vector_20 + .text 0x0000006c 0xca Motor.o + 0x0000006c step + 0x00000094 runon + 0x00000096 ANA_COMP_vect + 0x000000e6 main + .text 0x00000136 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_exit.o) + .text 0x00000136 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_copy_data.o) + .text 0x00000136 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_clear_bss.o) + 0x00000136 . = ALIGN (0x2) *(.text.*) - .text.libgcc 0x00000264 0x18 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_udivmodqi4.o) - 0x00000264 __udivmodqi4 - .text.libgcc 0x0000027c 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_exit.o) - .text.libgcc 0x0000027c 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_copy_data.o) - 0x0000027c . = ALIGN (0x2) + .text.libgcc 0x00000136 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_exit.o) + .text.libgcc 0x00000136 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_copy_data.o) + .text.libgcc 0x00000136 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_clear_bss.o) + 0x00000136 . = ALIGN (0x2) *(.fini9) - .fini9 0x0000027c 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_exit.o) - 0x0000027c _exit - 0x0000027c exit + .fini9 0x00000136 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_exit.o) + 0x00000136 _exit + 0x00000136 exit *(.fini9) *(.fini8) *(.fini8) @@ -232,49 +235,51 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a *(.fini1) *(.fini1) *(.fini0) - .fini0 0x0000027c 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_exit.o) + .fini0 0x00000136 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_exit.o) *(.fini0) - 0x00000280 _etext = . + 0x0000013a _etext = . -.data 0x00800100 0xa load address 0x00000280 +.data 0x00800100 0x10 load address 0x0000013a 0x00800100 PROVIDE (__data_start, .) *(.data) .data 0x00800100 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr4/crtm48a.o - .data 0x00800100 0x9 Motor.o + .data 0x00800100 0xf Motor.o 0x00800100 led 0x00800103 motor - .data 0x00800109 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_udivmodqi4.o) - .data 0x00800109 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_exit.o) - .data 0x00800109 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_copy_data.o) + 0x00800109 mux + .data 0x0080010f 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_exit.o) + .data 0x0080010f 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_copy_data.o) + .data 0x0080010f 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_clear_bss.o) *(.data*) *(.rodata) *(.rodata*) *(.gnu.linkonce.d*) - 0x0080010a . = ALIGN (0x2) - *fill* 0x00800109 0x1 00 - 0x0080010a _edata = . - 0x0080010a PROVIDE (__data_end, .) + 0x00800110 . = ALIGN (0x2) + *fill* 0x0080010f 0x1 00 + 0x00800110 _edata = . + 0x00800110 PROVIDE (__data_end, .) -.bss 0x0080010a 0x0 - 0x0080010a PROVIDE (__bss_start, .) +.bss 0x00800110 0x1 + 0x00800110 PROVIDE (__bss_start, .) *(.bss) - .bss 0x0080010a 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr4/crtm48a.o - .bss 0x0080010a 0x0 Motor.o - .bss 0x0080010a 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_udivmodqi4.o) - .bss 0x0080010a 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_exit.o) - .bss 0x0080010a 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_copy_data.o) + .bss 0x00800110 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr4/crtm48a.o + .bss 0x00800110 0x1 Motor.o + 0x00800110 ind + .bss 0x00800111 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_exit.o) + .bss 0x00800111 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_copy_data.o) + .bss 0x00800111 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a(_clear_bss.o) *(.bss*) *(COMMON) - 0x0080010a PROVIDE (__bss_end, .) - 0x00000280 __data_load_start = LOADADDR (.data) - 0x0000028a __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x00800111 PROVIDE (__bss_end, .) + 0x0000013a __data_load_start = LOADADDR (.data) + 0x0000014a __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x0080010a 0x0 - 0x0080010a PROVIDE (__noinit_start, .) +.noinit 0x00800111 0x0 + 0x00800111 PROVIDE (__noinit_start, .) *(.noinit*) - 0x0080010a PROVIDE (__noinit_end, .) - 0x0080010a _end = . - 0x0080010a PROVIDE (__heap_start, .) + 0x00800111 PROVIDE (__noinit_end, .) + 0x00800111 _end = . + 0x00800111 PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 *(.eeprom*) @@ -333,36 +338,36 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr4\libgcc.a 0x00000000 0x20 Motor.o .debug_pubnames - 0x00000000 0x46 + 0x00000000 0x62 *(.debug_pubnames) .debug_pubnames - 0x00000000 0x46 Motor.o + 0x00000000 0x62 Motor.o -.debug_info 0x00000000 0x492 +.debug_info 0x00000000 0x196 *(.debug_info) - .debug_info 0x00000000 0x492 Motor.o + .debug_info 0x00000000 0x196 Motor.o *(.gnu.linkonce.wi.*) -.debug_abbrev 0x00000000 0x1be +.debug_abbrev 0x00000000 0x100 *(.debug_abbrev) - .debug_abbrev 0x00000000 0x1be Motor.o + .debug_abbrev 0x00000000 0x100 Motor.o -.debug_line 0x00000000 0x375 +.debug_line 0x00000000 0x174 *(.debug_line) - .debug_line 0x00000000 0x375 Motor.o + .debug_line 0x00000000 0x174 Motor.o -.debug_frame 0x00000000 0x40 +.debug_frame 0x00000000 0x50 *(.debug_frame) - .debug_frame 0x00000000 0x40 Motor.o + .debug_frame 0x00000000 0x50 Motor.o -.debug_str 0x00000000 0xff +.debug_str 0x00000000 0xa1 *(.debug_str) - .debug_str 0x00000000 0xff Motor.o - 0x133 (size before relaxing) + .debug_str 0x00000000 0xa1 Motor.o + 0xd5 (size before relaxing) -.debug_loc 0x00000000 0x42d +.debug_loc 0x00000000 0x13 *(.debug_loc) - .debug_loc 0x00000000 0x42d Motor.o + .debug_loc 0x00000000 0x13 Motor.o .debug_macinfo *(.debug_macinfo) @@ -370,9 +375,6 @@ OUTPUT(Motor.elf elf32-avr) LOAD linker stubs .debug_pubtypes - 0x00000000 0x38 + 0x00000000 0x1e .debug_pubtypes - 0x00000000 0x38 Motor.o - -.debug_ranges 0x00000000 0x128 - .debug_ranges 0x00000000 0x128 Motor.o + 0x00000000 0x1e Motor.o diff --git a/V2/Motor/motor.aws b/V2/Motor/motor.aws index 844a4b0..fe93451 100644 --- a/V2/Motor/motor.aws +++ b/V2/Motor/motor.aws @@ -1 +1 @@ - +