main.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn 0 .text 0000012a 00000000 00000000 00000094 2**0 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .data 00000000 00800060 0000012a 000001be 2**0 CONTENTS, ALLOC, LOAD, DATA 2 .bss 00000005 00800060 00800060 000001be 2**0 ALLOC 3 .noinit 00000000 00800065 00800065 000001be 2**0 CONTENTS 4 .eeprom 00000000 00810000 00810000 000001be 2**0 CONTENTS 5 .stab 00000804 00000000 00000000 000001c0 2**2 CONTENTS, READONLY, DEBUGGING 6 .stabstr 0000073c 00000000 00000000 000009c4 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 <__vectors>: 0: 0c 94 2a 00 jmp 0x54 <__ctors_end> 4: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 8: 0c 94 45 00 jmp 0x8a <__bad_interrupt> c: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 10: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 14: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 18: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 1c: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 20: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 24: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 28: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 2c: 0c 94 47 00 jmp 0x8e <__vector_11> 30: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 34: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 38: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 3c: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 40: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 44: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 48: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 4c: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 50: 0c 94 45 00 jmp 0x8a <__bad_interrupt> 00000054 <__ctors_end>: 54: 11 24 eor r1, r1 56: 1f be out 0x3f, r1 ; 63 58: cf e5 ldi r28, 0x5F ; 95 5a: d8 e0 ldi r29, 0x08 ; 8 5c: de bf out 0x3e, r29 ; 62 5e: cd bf out 0x3d, r28 ; 61 00000060 <__do_copy_data>: 60: 10 e0 ldi r17, 0x00 ; 0 62: a0 e6 ldi r26, 0x60 ; 96 64: b0 e0 ldi r27, 0x00 ; 0 66: ea e2 ldi r30, 0x2A ; 42 68: f1 e0 ldi r31, 0x01 ; 1 6a: 02 c0 rjmp .+4 ; 0x70 <.do_copy_data_start> 0000006c <.do_copy_data_loop>: 6c: 05 90 lpm r0, Z+ 6e: 0d 92 st X+, r0 00000070 <.do_copy_data_start>: 70: a0 36 cpi r26, 0x60 ; 96 72: b1 07 cpc r27, r17 74: d9 f7 brne .-10 ; 0x6c <.do_copy_data_loop> 00000076 <__do_clear_bss>: 76: 10 e0 ldi r17, 0x00 ; 0 78: a0 e6 ldi r26, 0x60 ; 96 7a: b0 e0 ldi r27, 0x00 ; 0 7c: 01 c0 rjmp .+2 ; 0x80 <.do_clear_bss_start> 0000007e <.do_clear_bss_loop>: 7e: 1d 92 st X+, r1 00000080 <.do_clear_bss_start>: 80: a5 36 cpi r26, 0x65 ; 101 82: b1 07 cpc r27, r17 84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop> 86: 0c 94 7d 00 jmp 0xfa
0000008a <__bad_interrupt>: 8a: 0c 94 00 00 jmp 0x0 <__heap_end> 0000008e <__vector_11>: -O1 **********************************************************/ //void pwmPulse(void) { SIGNAL (SIG_OVERFLOW0) { 8e: 1f 92 push r1 90: 0f 92 push r0 92: 0f b6 in r0, 0x3f ; 63 94: 0f 92 push r0 96: 11 24 eor r1, r1 98: 8f 93 push r24 9a: 9f 93 push r25 if (pwmcount++ == 0){ 9c: 90 91 63 00 lds r25, 0x0063 a0: 9f 5f subi r25, 0xFF ; 255 a2: 90 93 63 00 sts 0x0063, r25 a6: 91 30 cpi r25, 0x01 ; 1 a8: a9 f0 breq .+42 ; 0xd4 <__vector_11+0x46> SetBit(PWM1BIT, PWM1PORT); SetBit(PWM2BIT, PWM2PORT); SetBit(PWM3BIT, PWM3PORT); SetBit(PWM4BIT, PWM4PORT); }; if ((pwm1 ^ pwmcount) == 0) { ClearBit(PWM1BIT, PWM1PORT); } aa: 80 91 60 00 lds r24, 0x0060 ae: 98 17 cp r25, r24 b0: 09 f4 brne .+2 ; 0xb4 <__vector_11+0x26> b2: d8 98 cbi 0x1b, 0 ; 27 if ((pwm2 ^ pwmcount) == 0) { ClearBit(PWM2BIT, PWM2PORT); } b4: 80 91 61 00 lds r24, 0x0061 b8: 98 17 cp r25, r24 ba: 09 f4 brne .+2 ; 0xbe <__vector_11+0x30> bc: d9 98 cbi 0x1b, 1 ; 27 if ((pwm3 ^ pwmcount) == 0) { ClearBit(PWM3BIT, PWM3PORT); } be: 80 91 64 00 lds r24, 0x0064 c2: 98 17 cp r25, r24 c4: 09 f4 brne .+2 ; 0xc8 <__vector_11+0x3a> c6: da 98 cbi 0x1b, 2 ; 27 if ((pwm4 ^ pwmcount) == 0) { ClearBit(PWM4BIT, PWM4PORT); } c8: 80 91 62 00 lds r24, 0x0062 cc: 98 17 cp r25, r24 ce: 39 f4 brne .+14 ; 0xde <__vector_11+0x50> d0: db 98 cbi 0x1b, 3 ; 27 d2: 05 c0 rjmp .+10 ; 0xde <__vector_11+0x50> d4: d8 9a sbi 0x1b, 0 ; 27 d6: d9 9a sbi 0x1b, 1 ; 27 d8: da 9a sbi 0x1b, 2 ; 27 da: db 9a sbi 0x1b, 3 ; 27 dc: e6 cf rjmp .-52 ; 0xaa <__vector_11+0x1c> de: 9f 91 pop r25 e0: 8f 91 pop r24 e2: 0f 90 pop r0 e4: 0f be out 0x3f, r0 ; 63 e6: 0f 90 pop r0 e8: 1f 90 pop r1 ea: 18 95 reti 000000ec : } void timerInit(void) { // set prescaler to /1 TCCR0 = (0 << FOC0 | 0 << WGM00 |0 << COM01 |0 << COM00 |0 << WGM01 |0 << CS02 |0 << CS01 |1 << CS00); ec: 81 e0 ldi r24, 0x01 ; 1 ee: 83 bf out 0x33, r24 ; 51 // set interrupt mask register TIMSK |= (1<: fa: cf e5 ldi r28, 0x5F ; 95 fc: d8 e0 ldi r29, 0x08 ; 8 fe: de bf out 0x3e, r29 ; 62 100: cd bf out 0x3d, r28 ; 61 102: 8f e0 ldi r24, 0x0F ; 15 104: 8a bb out 0x1a, r24 ; 26 106: 17 ba out 0x17, r1 ; 23 108: 14 ba out 0x14, r1 ; 20 10a: 11 ba out 0x11, r1 ; 17 10c: 80 e4 ldi r24, 0x40 ; 64 10e: 80 93 60 00 sts 0x0060, r24 112: 80 e8 ldi r24, 0x80 ; 128 114: 80 93 61 00 sts 0x0061, r24 118: 80 ef ldi r24, 0xF0 ; 240 11a: 80 93 64 00 sts 0x0064, r24 11e: 8f ef ldi r24, 0xFF ; 255 120: 80 93 62 00 sts 0x0062, r24 124: 0e 94 76 00 call 0xec 128: ff cf rjmp .-2 ; 0x128