howfast.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn 0 .text 000000c2 00000000 00000000 00000054 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .debug_aranges 00000020 00000000 00000000 00000116 2**0 CONTENTS, READONLY, DEBUGGING 2 .debug_pubnames 0000001b 00000000 00000000 00000136 2**0 CONTENTS, READONLY, DEBUGGING 3 .debug_info 00000102 00000000 00000000 00000151 2**0 CONTENTS, READONLY, DEBUGGING 4 .debug_abbrev 000000c0 00000000 00000000 00000253 2**0 CONTENTS, READONLY, DEBUGGING 5 .debug_line 000000fc 00000000 00000000 00000313 2**0 CONTENTS, READONLY, DEBUGGING 6 .debug_frame 00000020 00000000 00000000 00000410 2**2 CONTENTS, READONLY, DEBUGGING 7 .debug_str 00000094 00000000 00000000 00000430 2**0 CONTENTS, READONLY, DEBUGGING 8 .debug_loc 00000028 00000000 00000000 000004c4 2**0 CONTENTS, READONLY, DEBUGGING 9 .debug_ranges 00000018 00000000 00000000 000004ec 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 <__vectors>: 0: 0b c0 rjmp .+22 ; 0x18 <__ctors_end> 2: 10 c0 rjmp .+32 ; 0x24 <__bad_interrupt> 4: 0f c0 rjmp .+30 ; 0x24 <__bad_interrupt> 6: 0e c0 rjmp .+28 ; 0x24 <__bad_interrupt> 8: 0d c0 rjmp .+26 ; 0x24 <__bad_interrupt> a: 0c c0 rjmp .+24 ; 0x24 <__bad_interrupt> c: 0b c0 rjmp .+22 ; 0x24 <__bad_interrupt> e: 0a c0 rjmp .+20 ; 0x24 <__bad_interrupt> 10: 09 c0 rjmp .+18 ; 0x24 <__bad_interrupt> 12: 08 c0 rjmp .+16 ; 0x24 <__bad_interrupt> 14: 07 c0 rjmp .+14 ; 0x24 <__bad_interrupt> 16: 06 c0 rjmp .+12 ; 0x24 <__bad_interrupt> 00000018 <__ctors_end>: 18: 11 24 eor r1, r1 1a: 1f be out 0x3f, r1 ; 63 1c: cf ed ldi r28, 0xDF ; 223 1e: cd bf out 0x3d, r28 ; 61 20: 02 d0 rcall .+4 ; 0x26
22: 4d c0 rjmp .+154 ; 0xbe <_exit> 00000024 <__bad_interrupt>: 24: ed cf rjmp .-38 ; 0x0 <__vectors> 00000026
: void init(){ PWMDDR |= (1 << PWMPIN); // Ausgangspins einschalten 26: bb 9a sbi 0x17, 3 ; 23 LEDDDR |= (1 << LEDGRUEN); 28: b8 9a sbi 0x17, 0 ; 23 while (!(PLLCSR & (1 << PLOCK))); // Warten bis PLL gelockt 2a: 09 b4 in r0, 0x29 ; 41 2c: 00 fe sbrs r0, 0 2e: fd cf rjmp .-6 ; 0x2a PLLCSR |= (1 << PCKE); // PLL-CK schalten 30: 89 b5 in r24, 0x29 ; 41 32: 84 60 ori r24, 0x04 ; 4 34: 89 bd out 0x29, r24 ; 41 TCCR1B |= (1 << CS10); // PCK ohne Presacler 36: 8f b5 in r24, 0x2f ; 47 38: 81 60 ori r24, 0x01 ; 1 3a: 8f bd out 0x2f, r24 ; 47 TCCR1A = ((1 << COM1B1) | (1 << PWM1B)); // PWM1B, OC1B cleared on CM, nOC1B n.c. 3c: 81 e2 ldi r24, 0x21 ; 33 3e: 80 bf out 0x30, r24 ; 48 OCR1C = 0xfa; // Timer immer voll durchlaufen lassen 40: 8a ef ldi r24, 0xFA ; 250 42: 8b bd out 0x2b, r24 ; 43 44: 24 e6 ldi r18, 0x64 ; 100 46: 61 e0 ldi r22, 0x01 ; 1 48: 7f ee ldi r23, 0xEF ; 239 counter--; temp = scale( temp , counter ); if ( counter == 0 ) { LEDTOGGLE( 1 << LEDGRUEN ); 4a: 31 e0 ldi r19, 0x01 ; 1 init(); // loop forever for (;;) { counter--; 4c: 21 50 subi r18, 0x01 ; 1 #endif #if (TESTFUN==2) test_t scale(test_t x, uint8_t y){ return(x / (test_t) TEILER + y); 4e: 86 2f mov r24, r22 50: 97 2f mov r25, r23 52: 60 e0 ldi r22, 0x00 ; 0 54: 70 e1 ldi r23, 0x10 ; 16 56: 0a d0 rcall .+20 ; 0x6c <__divmodhi4> 58: 62 0f add r22, r18 5a: 71 1d adc r23, r1 // loop forever for (;;) { counter--; temp = scale( temp , counter ); if ( counter == 0 ) { 5c: 22 23 and r18, r18 5e: b1 f7 brne .-20 ; 0x4c <__SREG__+0xd> LEDTOGGLE( 1 << LEDGRUEN ); 60: 88 b3 in r24, 0x18 ; 24 62: 83 27 eor r24, r19 64: 88 bb out 0x18, r24 ; 24 counter = COUNT_INIT; // Ausgabe verhindert wegoptimieren durch den Compilers... PWMVALUE = (uint8_t) temp; 66: 6c bd out 0x2c, r22 ; 44 68: 24 e6 ldi r18, 0x64 ; 100 6a: f0 cf rjmp .-32 ; 0x4c <__SREG__+0xd> 0000006c <__divmodhi4>: 6c: 97 fb bst r25, 7 6e: 09 2e mov r0, r25 70: 07 26 eor r0, r23 72: 0a d0 rcall .+20 ; 0x88 <__divmodhi4_neg1> 74: 77 fd sbrc r23, 7 76: 04 d0 rcall .+8 ; 0x80 <__divmodhi4_neg2> 78: 0c d0 rcall .+24 ; 0x92 <__udivmodhi4> 7a: 06 d0 rcall .+12 ; 0x88 <__divmodhi4_neg1> 7c: 00 20 and r0, r0 7e: 1a f4 brpl .+6 ; 0x86 <__divmodhi4_exit> 00000080 <__divmodhi4_neg2>: 80: 70 95 com r23 82: 61 95 neg r22 84: 7f 4f sbci r23, 0xFF ; 255 00000086 <__divmodhi4_exit>: 86: 08 95 ret 00000088 <__divmodhi4_neg1>: 88: f6 f7 brtc .-4 ; 0x86 <__divmodhi4_exit> 8a: 90 95 com r25 8c: 81 95 neg r24 8e: 9f 4f sbci r25, 0xFF ; 255 90: 08 95 ret 00000092 <__udivmodhi4>: 92: aa 1b sub r26, r26 94: bb 1b sub r27, r27 96: 51 e1 ldi r21, 0x11 ; 17 98: 07 c0 rjmp .+14 ; 0xa8 <__udivmodhi4_ep> 0000009a <__udivmodhi4_loop>: 9a: aa 1f adc r26, r26 9c: bb 1f adc r27, r27 9e: a6 17 cp r26, r22 a0: b7 07 cpc r27, r23 a2: 10 f0 brcs .+4 ; 0xa8 <__udivmodhi4_ep> a4: a6 1b sub r26, r22 a6: b7 0b sbc r27, r23 000000a8 <__udivmodhi4_ep>: a8: 88 1f adc r24, r24 aa: 99 1f adc r25, r25 ac: 5a 95 dec r21 ae: a9 f7 brne .-22 ; 0x9a <__udivmodhi4_loop> b0: 80 95 com r24 b2: 90 95 com r25 b4: 68 2f mov r22, r24 b6: 79 2f mov r23, r25 b8: 8a 2f mov r24, r26 ba: 9b 2f mov r25, r27 bc: 08 95 ret 000000be <_exit>: be: f8 94 cli 000000c0 <__stop_program>: c0: ff cf rjmp .-2 ; 0xc0 <__stop_program>