Спойлер
C:\Temp\arduino_build_603441/BlinkWithoutDelay.ino.elf: file format elf32-avr
Disassembly of section .text:
00000000 <__vectors>:
__vectors():
0: 0c 94 2f 01 jmp 0x25e ; 0x25e <__ctors_end>
4: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
8: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
c: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
10: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
14: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
18: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
1c: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
20: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
24: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
28: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
2c: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
30: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
34: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
38: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
3c: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
40: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
44: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
48: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
4c: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
50: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
54: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
58: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
5c: 0c 94 45 01 jmp 0x28a ; 0x28a <__vector_23>
60: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
64: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
68: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
6c: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
70: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
74: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
78: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
7c: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
80: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
84: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
88: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
8c: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
90: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
94: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
98: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
9c: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
a0: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
a4: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
a8: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
ac: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
b0: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
b4: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
b8: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
bc: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
c0: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
c4: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
c8: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
cc: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
d0: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
d4: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
d8: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
dc: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
e0: 0c 94 43 01 jmp 0x286 ; 0x286 <__bad_interrupt>
000000e4 <__trampolines_start>:
__trampolines_start():
e4: 0c 94 99 02 jmp 0x532 ; 0x532 <__LOCK_REGION_LENGTH__+0x132>
e8: 0c 94 81 02 jmp 0x502 ; 0x502 <__LOCK_REGION_LENGTH__+0x102>
ec: 0c 94 bd 02 jmp 0x57a ; 0x57a <__LOCK_REGION_LENGTH__+0x17a>
f0: 0c 94 ab 02 jmp 0x556 ; 0x556 <__LOCK_REGION_LENGTH__+0x156>
f4: 0c 94 b9 02 jmp 0x572 ; 0x572 <__LOCK_REGION_LENGTH__+0x172>
f8: 0c 94 8b 02 jmp 0x516 ; 0x516 <__LOCK_REGION_LENGTH__+0x116>
fc: 0c 94 b1 02 jmp 0x562 ; 0x562 <__LOCK_REGION_LENGTH__+0x162>
100: 0c 94 b5 02 jmp 0x56a ; 0x56a <__LOCK_REGION_LENGTH__+0x16a>
104: 0c 94 95 02 jmp 0x52a ; 0x52a <__LOCK_REGION_LENGTH__+0x12a>
108: 0c 94 65 02 jmp 0x4ca ; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
10c: 0c 94 9d 02 jmp 0x53a ; 0x53a <__LOCK_REGION_LENGTH__+0x13a>
110: 0c 94 85 02 jmp 0x50a ; 0x50a <__LOCK_REGION_LENGTH__+0x10a>
114: 0c 94 a7 02 jmp 0x54e ; 0x54e <__LOCK_REGION_LENGTH__+0x14e>
118: 0c 94 7d 02 jmp 0x4fa ; 0x4fa <__LOCK_REGION_LENGTH__+0xfa>
11c: 0c 94 8f 02 jmp 0x51e ; 0x51e <__LOCK_REGION_LENGTH__+0x11e>
120: 0c 94 a3 02 jmp 0x546 ; 0x546 <__LOCK_REGION_LENGTH__+0x146>
124: 0c 94 60 02 jmp 0x4c0 ; 0x4c0 <__LOCK_REGION_LENGTH__+0xc0>
00000128 <__trampolines_end>:
__trampolines_end():
128: 00 00 nop
12a: 21 00 .word 0x0021 ; ????
12c: 24 00 .word 0x0024 ; ????
12e: 27 00 .word 0x0027 ; ????
130: 2a 00 .word 0x002a ; ????
132: 2d 00 .word 0x002d ; ????
134: 30 00 .word 0x0030 ; ????
136: 33 00 .word 0x0033 ; ????
138: 01 01 movw r0, r2
13a: 00 00 nop
13c: 04 01 movw r0, r8
13e: 07 01 movw r0, r14
140: 0a 01 movw r0, r20
00000142 <port_to_output_PGM>:
142: 00 00 22 00 25 00 28 00 2b 00 2e 00 31 00 34 00 ..".%.(.+...1.4.
152: 02 01 00 00 05 01 08 01 0b 01 ..........
0000015c <digital_pin_to_port_PGM>:
15c: 05 05 05 05 07 05 08 08 08 08 02 02 02 02 0a 0a ................
16c: 08 08 04 04 04 04 01 01 01 01 01 01 01 01 03 03 ................
17c: 03 03 03 03 03 03 04 07 07 07 0c 0c 0c 0c 0c 0c ................
18c: 0c 0c 02 02 02 02 06 06 06 06 06 06 06 06 0b 0b ................
19c: 0b 0b 0b 0b 0b 0b 05 05 05 08 08 07 07 04 04 04 ................
1ac: 0a 0a 0a 0a 0a 0a ......
000001b2 <digital_pin_to_bit_mask_PGM>:
1b2: 01 02 10 20 20 08 08 10 20 40 10 20 40 80 02 01 ... ... @. @...
1c2: 02 01 08 04 02 01 01 02 04 08 10 20 40 80 80 40 ........... @..@
1d2: 20 10 08 04 02 01 80 04 02 01 80 40 20 10 08 04 ..........@ ...
1e2: 02 01 08 04 02 01 01 02 04 08 10 20 40 80 01 02 ........... @...
1f2: 04 08 10 20 40 80 04 40 80 04 80 08 10 10 20 40 ... @..@...... @
202: 04 08 10 20 40 80 ... @.
00000208 <digital_pin_to_timer_PGM>:
208: 00 00 0b 0c 03 0a 0d 0e 0f 09 08 04 05 02 00 00 ................
...
234: 13 12 11 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
...
0000025e <__ctors_end>:
__dtors_end():
25e: 11 24 eor r1, r1
260: 1f be out 0x3f, r1 ; 63
262: cf ef ldi r28, 0xFF ; 255
264: d1 e2 ldi r29, 0x21 ; 33
266: de bf out 0x3e, r29 ; 62
268: cd bf out 0x3d, r28 ; 61
26a: 00 e0 ldi r16, 0x00 ; 0
26c: 0c bf out 0x3c, r16 ; 60
0000026e <__do_clear_bss>:
__do_clear_bss():
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2441
26e: 22 e0 ldi r18, 0x02 ; 2
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2442
270: a0 e0 ldi r26, 0x00 ; 0
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2443
272: b2 e0 ldi r27, 0x02 ; 2
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2444
274: 01 c0 rjmp .+2 ; 0x278 <.do_clear_bss_start>
00000276 <.do_clear_bss_loop>:
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2446
276: 1d 92 st X+, r1
00000278 <.do_clear_bss_start>:
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2448
278: af 30 cpi r26, 0x0F ; 15
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2449
27a: b2 07 cpc r27, r18
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2450
27c: e1 f7 brne .-8 ; 0x276 <.do_clear_bss_loop>
.do_clear_bss_start():
27e: 0e 94 8f 01 call 0x31e ; 0x31e <main>
282: 0c 94 ca 02 jmp 0x594 ; 0x594 <_exit>
00000286 <__bad_interrupt>:
__vector_38():
286: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
0000028a <__vector_23>:
__vector_23():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:159
#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
ISR(TIM0_OVF_vect)
#else
ISR(TIMER0_OVF_vect)
#endif
{
28a: 1f 92 push r1
28c: 0f 92 push r0
28e: 0f b6 in r0, 0x3f ; 63
290: 0f 92 push r0
292: 11 24 eor r1, r1
294: 2f 93 push r18
296: 3f 93 push r19
298: 8f 93 push r24
29a: 9f 93 push r25
29c: af 93 push r26
29e: bf 93 push r27
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:167
static unsigned char timer0_exact = 0;
#endif
// copy these to local variables so they can be stored in registers
// (volatile variables must be read from memory on every access, so this saves time)
unsigned long m = timer0_millis;
2a0: 80 91 05 02 lds r24, 0x0205 ; 0x800205 <timer0_millis>
2a4: 90 91 06 02 lds r25, 0x0206 ; 0x800206 <timer0_millis+0x1>
2a8: a0 91 07 02 lds r26, 0x0207 ; 0x800207 <timer0_millis+0x2>
2ac: b0 91 08 02 lds r27, 0x0208 ; 0x800208 <timer0_millis+0x3>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:168
unsigned char f = timer0_fract;
2b0: 30 91 04 02 lds r19, 0x0204 ; 0x800204 <timer0_fract>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:170
f += FRACT_INC FRACT_INC_PLUS;
2b4: 23 e0 ldi r18, 0x03 ; 3
2b6: 23 0f add r18, r19
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:200
++f;
}
#endif
#endif // CORRECT_EXACT_MILLIS
if (f >= FRACT_MAX) {
2b8: 2d 37 cpi r18, 0x7D ; 125
2ba: 68 f1 brcs .+90 ; 0x316 <__vector_23+0x8c>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:201
f -= FRACT_MAX;
2bc: 26 e8 ldi r18, 0x86 ; 134
2be: 23 0f add r18, r19
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:202
m += MILLIS_INC + 1;
2c0: 02 96 adiw r24, 0x02 ; 2
2c2: a1 1d adc r26, r1
2c4: b1 1d adc r27, r1
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:208
}
else {
m += MILLIS_INC;
}
timer0_fract = f;
2c6: 20 93 04 02 sts 0x0204, r18 ; 0x800204 <timer0_fract>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:209
timer0_millis = m;
2ca: 80 93 05 02 sts 0x0205, r24 ; 0x800205 <timer0_millis>
2ce: 90 93 06 02 sts 0x0206, r25 ; 0x800206 <timer0_millis+0x1>
2d2: a0 93 07 02 sts 0x0207, r26 ; 0x800207 <timer0_millis+0x2>
2d6: b0 93 08 02 sts 0x0208, r27 ; 0x800208 <timer0_millis+0x3>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:211
#ifndef CORRECT_EXACT_MICROS
timer0_overflow_count++;
2da: 80 91 00 02 lds r24, 0x0200 ; 0x800200 <__DATA_REGION_ORIGIN__>
2de: 90 91 01 02 lds r25, 0x0201 ; 0x800201 <__DATA_REGION_ORIGIN__+0x1>
2e2: a0 91 02 02 lds r26, 0x0202 ; 0x800202 <__DATA_REGION_ORIGIN__+0x2>
2e6: b0 91 03 02 lds r27, 0x0203 ; 0x800203 <__DATA_REGION_ORIGIN__+0x3>
2ea: 01 96 adiw r24, 0x01 ; 1
2ec: a1 1d adc r26, r1
2ee: b1 1d adc r27, r1
2f0: 80 93 00 02 sts 0x0200, r24 ; 0x800200 <__DATA_REGION_ORIGIN__>
2f4: 90 93 01 02 sts 0x0201, r25 ; 0x800201 <__DATA_REGION_ORIGIN__+0x1>
2f8: a0 93 02 02 sts 0x0202, r26 ; 0x800202 <__DATA_REGION_ORIGIN__+0x2>
2fc: b0 93 03 02 sts 0x0203, r27 ; 0x800203 <__DATA_REGION_ORIGIN__+0x3>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:213
#endif
}
300: bf 91 pop r27
302: af 91 pop r26
304: 9f 91 pop r25
306: 8f 91 pop r24
308: 3f 91 pop r19
30a: 2f 91 pop r18
30c: 0f 90 pop r0
30e: 0f be out 0x3f, r0 ; 63
310: 0f 90 pop r0
312: 1f 90 pop r1
314: 18 95 reti
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:205
if (f >= FRACT_MAX) {
f -= FRACT_MAX;
m += MILLIS_INC + 1;
}
else {
m += MILLIS_INC;
316: 01 96 adiw r24, 0x01 ; 1
318: a1 1d adc r26, r1
31a: b1 1d adc r27, r1
31c: d4 cf rjmp .-88 ; 0x2c6 <__vector_23+0x3c>
0000031e <main>:
main():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:945
void init()
{
// this needs to be called before setup() or some functions won't
// work there
sei();
31e: 78 94 sei
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:957
// On the ATmega168, timer 0 is also used for fast hardware pwm
// (using phase-correct PWM would mean that timer 0 overflowed half as often
// resulting in different millis() behavior on the ATmega8 and ATmega168)
#if defined(TCCR0A) && defined(WGM01)
TCCR0A |= _BV(WGM01) | _BV(WGM00);
320: 84 b5 in r24, 0x24 ; 36
322: 83 60 ori r24, 0x03 ; 3
324: 84 bd out 0x24, r24 ; 36
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:972
#if defined(WGM00) && defined(WGM01) // The ATmega8 doesn't have WGM00 and WGM01
TCCR0 |= _BV(WGM01) | _BV(WGM00);
#endif
#elif defined(TCCR0B) && defined(CS01) && defined(CS00)
// This combination is for the standard 168/328/640/1280/1281/2560/2561
TCCR0B |= _BV(CS01) | _BV(CS00);
326: 85 b5 in r24, 0x25 ; 37
328: 83 60 ori r24, 0x03 ; 3
32a: 85 bd out 0x25, r24 ; 37
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:984
// Enable timer 0 overflow interrupt
#if defined(TIMSK) && defined(TOIE0)
TIMSK |= _BV(TOIE0);
#elif defined(TIMSK0) && defined(TOIE0)
TIMSK0 |= _BV(TOIE0);
32c: 80 91 6e 00 lds r24, 0x006E ; 0x80006e <__TEXT_REGION_LENGTH__+0x70006e>
330: 81 60 ori r24, 0x01 ; 1
332: 80 93 6e 00 sts 0x006E, r24 ; 0x80006e <__TEXT_REGION_LENGTH__+0x70006e>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:995
// this is better for motors as it ensures an even waveform
// note, however, that fast pwm mode can achieve a frequency of up
// 8 MHz (with a 16 MHz clock) at 50% duty cycle
#if defined(TCCR1B) && defined(CS11) && defined(CS10)
TCCR1B = _BV(CS11); // Set timer 1 prescale factor to 64
336: 82 e0 ldi r24, 0x02 ; 2
338: 80 93 81 00 sts 0x0081, r24 ; 0x800081 <__TEXT_REGION_LENGTH__+0x700081>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:997
#if F_CPU >= 8000000L
TCCR1B |= _BV(CS10);
33c: 80 91 81 00 lds r24, 0x0081 ; 0x800081 <__TEXT_REGION_LENGTH__+0x700081>
340: 81 60 ori r24, 0x01 ; 1
342: 80 93 81 00 sts 0x0081, r24 ; 0x800081 <__TEXT_REGION_LENGTH__+0x700081>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1006
#if F_CPU >= 8000000L
TCCR1 |= _BV(CS10);
#endif
#endif
#if defined(TCCR1A) && defined(WGM10)
TCCR1A |= _BV(WGM10); // Put timer 1 in 8-bit phase correct pwm mode
346: 80 91 80 00 lds r24, 0x0080 ; 0x800080 <__TEXT_REGION_LENGTH__+0x700080>
34a: 81 60 ori r24, 0x01 ; 1
34c: 80 93 80 00 sts 0x0080, r24 ; 0x800080 <__TEXT_REGION_LENGTH__+0x700080>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1013
// Set timer 2 prescale factor to 64
#if defined(TCCR2) && defined(CS22)
TCCR2 |= _BV(CS22);
#elif defined(TCCR2B) && defined(CS22)
TCCR2B |= _BV(CS22);
350: 80 91 b1 00 lds r24, 0x00B1 ; 0x8000b1 <__TEXT_REGION_LENGTH__+0x7000b1>
354: 84 60 ori r24, 0x04 ; 4
356: 80 93 b1 00 sts 0x00B1, r24 ; 0x8000b1 <__TEXT_REGION_LENGTH__+0x7000b1>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1022
// Configure timer 2 for phase correct pwm (8-bit)
#if defined(TCCR2) && defined(WGM20)
TCCR2 |= _BV(WGM20);
#elif defined(TCCR2A) && defined(WGM20)
TCCR2A |= _BV(WGM20);
35a: 80 91 b0 00 lds r24, 0x00B0 ; 0x8000b0 <__TEXT_REGION_LENGTH__+0x7000b0>
35e: 81 60 ori r24, 0x01 ; 1
360: 80 93 b0 00 sts 0x00B0, r24 ; 0x8000b0 <__TEXT_REGION_LENGTH__+0x7000b0>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1028
//#else
// Timer 2 not finished (may not be present on this CPU)
#endif
#if defined(TCCR3B) && defined(CS31) && defined(WGM30)
TCCR3B |= _BV(CS31) | _BV(CS30); // Set timer 3 prescale factor to 64
364: 80 91 91 00 lds r24, 0x0091 ; 0x800091 <__TEXT_REGION_LENGTH__+0x700091>
368: 83 60 ori r24, 0x03 ; 3
36a: 80 93 91 00 sts 0x0091, r24 ; 0x800091 <__TEXT_REGION_LENGTH__+0x700091>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1029
TCCR3A |= _BV(WGM30); // Put timer 3 in 8-bit phase correct pwm mode
36e: 80 91 90 00 lds r24, 0x0090 ; 0x800090 <__TEXT_REGION_LENGTH__+0x700090>
372: 81 60 ori r24, 0x01 ; 1
374: 80 93 90 00 sts 0x0090, r24 ; 0x800090 <__TEXT_REGION_LENGTH__+0x700090>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1038
TCCR4B |= _BV(CS42) | _BV(CS41) | _BV(CS40); // Set timer 4 prescale factor to 64
TCCR4D |= _BV(WGM40); // Put timer 4 in phase- and frequency-correct PWM mode
TCCR4A |= _BV(PWM4A); // Enable PWM mode for comparator OCR4A
TCCR4C |= _BV(PWM4D); // Enable PWM mode for comparator OCR4D
#elif defined(TCCR4B) && defined(CS41) && defined(WGM40)
TCCR4B |= _BV(CS41) | _BV(CS40); // Set timer 4 prescale factor to 64
378: 80 91 a1 00 lds r24, 0x00A1 ; 0x8000a1 <__TEXT_REGION_LENGTH__+0x7000a1>
37c: 83 60 ori r24, 0x03 ; 3
37e: 80 93 a1 00 sts 0x00A1, r24 ; 0x8000a1 <__TEXT_REGION_LENGTH__+0x7000a1>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1039
TCCR4A |= _BV(WGM40); // Put timer 4 in 8-bit phase correct pwm mode
382: 80 91 a0 00 lds r24, 0x00A0 ; 0x8000a0 <__TEXT_REGION_LENGTH__+0x7000a0>
386: 81 60 ori r24, 0x01 ; 1
388: 80 93 a0 00 sts 0x00A0, r24 ; 0x8000a0 <__TEXT_REGION_LENGTH__+0x7000a0>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1043
#endif
#if defined(TCCR5B) && defined(CS51) && defined(WGM50)
TCCR5B |= _BV(CS51) | _BV(CS50); // Set timer 5 prescale factor to 64
38c: 80 91 21 01 lds r24, 0x0121 ; 0x800121 <__TEXT_REGION_LENGTH__+0x700121>
390: 83 60 ori r24, 0x03 ; 3
392: 80 93 21 01 sts 0x0121, r24 ; 0x800121 <__TEXT_REGION_LENGTH__+0x700121>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1044
TCCR5A |= _BV(WGM50); // Put timer 5 in 8-bit phase correct pwm mode
396: 80 91 20 01 lds r24, 0x0120 ; 0x800120 <__TEXT_REGION_LENGTH__+0x700120>
39a: 81 60 ori r24, 0x01 ; 1
39c: 80 93 20 01 sts 0x0120, r24 ; 0x800120 <__TEXT_REGION_LENGTH__+0x700120>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1050
#endif
#if defined(ADCSRA)
// set a2d prescaler so we are inside the desired 50-200 KHz range.
#if F_CPU >= 16000000 // 16 MHz / 128 = 125 KHz
ADCSRA = _BV(ADPS2) | _BV(ADPS1) | _BV(ADPS0) | _BV(ADEN);
3a0: 87 e8 ldi r24, 0x87 ; 135
3a2: 80 93 7a 00 sts 0x007A, r24 ; 0x80007a <__TEXT_REGION_LENGTH__+0x70007a>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1070
// here so they can be used as normal digital i/o; they will be
// reconnected in Serial.begin()
#if defined(UCSRB)
UCSRB = 0;
#elif defined(UCSR0B)
UCSR0B = 0;
3a6: 10 92 c1 00 sts 0x00C1, r1 ; 0x8000c1 <__TEXT_REGION_LENGTH__+0x7000c1>
pinMode():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:31
#include "wiring_private.h"
#include "pins_arduino.h"
void pinMode(uint8_t pin, uint8_t mode)
{
uint8_t bit = digitalPinToBitMask(pin);
3aa: cf eb ldi r28, 0xBF ; 191
3ac: d1 e0 ldi r29, 0x01 ; 1
3ae: fe 01 movw r30, r28
3b0: 24 91 lpm r18, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:32
uint8_t port = digitalPinToPort(pin);
3b2: 09 e6 ldi r16, 0x69 ; 105
3b4: 11 e0 ldi r17, 0x01 ; 1
3b6: f8 01 movw r30, r16
3b8: 84 91 lpm r24, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:35
volatile uint8_t *reg, *out;
if (port == NOT_A_PIN) return;
3ba: 88 23 and r24, r24
3bc: 99 f0 breq .+38 ; 0x3e4 <main+0xc6>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:38
// JWS: can I let the optimizer do this?
reg = portModeRegister(port);
3be: 90 e0 ldi r25, 0x00 ; 0
3c0: 88 0f add r24, r24
3c2: 99 1f adc r25, r25
3c4: fc 01 movw r30, r24
3c6: e8 5d subi r30, 0xD8 ; 216
3c8: fe 4f sbci r31, 0xFE ; 254
3ca: a5 91 lpm r26, Z+
3cc: b4 91 lpm r27, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:39
out = portOutputRegister(port);
3ce: fc 01 movw r30, r24
3d0: ee 5b subi r30, 0xBE ; 190
3d2: fe 4f sbci r31, 0xFE ; 254
3d4: 85 91 lpm r24, Z+
3d6: 94 91 lpm r25, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:54
cli();
*reg &= ~bit;
*out |= bit;
SREG = oldSREG;
} else {
uint8_t oldSREG = SREG;
3d8: 8f b7 in r24, 0x3f ; 63
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:55
cli();
3da: f8 94 cli
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:56
*reg |= bit;
3dc: 9c 91 ld r25, X
3de: 29 2b or r18, r25
3e0: 2c 93 st X, r18
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:57
SREG = oldSREG;
3e2: 8f bf out 0x3f, r24 ; 63
digitalWrite():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:189
}
}
void digitalWrite(uint8_t pin, uint8_t val)
{
uint8_t timer = digitalPinToTimer(pin);
3e4: 95 e1 ldi r25, 0x15 ; 21
3e6: c9 2e mov r12, r25
3e8: 92 e0 ldi r25, 0x02 ; 2
3ea: d9 2e mov r13, r25
main():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/main.cpp:47
setup();
for (;;) {
loop();
if (serialEventRun) serialEventRun();
3ec: 20 e0 ldi r18, 0x00 ; 0
3ee: e2 2e mov r14, r18
3f0: 20 e0 ldi r18, 0x00 ; 0
3f2: f2 2e mov r15, r18
loop():
E:\arduino-WKD\portable\sketchbook\BlinkWithoutDelay/BlinkWithoutDelay.ino:63
// save the last time you blinked the LED
previousMillis = currentMillis;
// if the LED is off turn it on and vice-versa:
if (ledState == LOW) {
ledState = HIGH;
3f4: aa 24 eor r10, r10
3f6: a3 94 inc r10
3f8: b1 2c mov r11, r1
millis():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:218
}
unsigned long millis()
{
unsigned long m;
uint8_t oldSREG = SREG;
3fa: 2f b7 in r18, 0x3f ; 63
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:222
// disable interrupts while we read timer0_millis or we might get an
// inconsistent value (e.g. in the middle of a write to timer0_millis)
cli();
3fc: f8 94 cli
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:223
m = timer0_millis;
3fe: 80 91 05 02 lds r24, 0x0205 ; 0x800205 <timer0_millis>
402: 90 91 06 02 lds r25, 0x0206 ; 0x800206 <timer0_millis+0x1>
406: a0 91 07 02 lds r26, 0x0207 ; 0x800207 <timer0_millis+0x2>
40a: b0 91 08 02 lds r27, 0x0208 ; 0x800208 <timer0_millis+0x3>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:224
SREG = oldSREG;
40e: 2f bf out 0x3f, r18 ; 63
loop():
E:\arduino-WKD\portable\sketchbook\BlinkWithoutDelay/BlinkWithoutDelay.ino:57
// check to see if it's time to blink the LED; that is, if the difference
// between the current time and last time you blinked the LED is bigger than
// the interval at which you want to blink the LED.
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
410: 40 91 0b 02 lds r20, 0x020B ; 0x80020b <previousMillis>
414: 50 91 0c 02 lds r21, 0x020C ; 0x80020c <previousMillis+0x1>
418: 60 91 0d 02 lds r22, 0x020D ; 0x80020d <previousMillis+0x2>
41c: 70 91 0e 02 lds r23, 0x020E ; 0x80020e <previousMillis+0x3>
420: 3c 01 movw r6, r24
422: 4d 01 movw r8, r26
424: 64 1a sub r6, r20
426: 75 0a sbc r7, r21
428: 86 0a sbc r8, r22
42a: 97 0a sbc r9, r23
42c: b4 01 movw r22, r8
42e: a3 01 movw r20, r6
430: 48 3e cpi r20, 0xE8 ; 232
432: 53 40 sbci r21, 0x03 ; 3
434: 61 05 cpc r22, r1
436: 71 05 cpc r23, r1
438: 08 f4 brcc .+2 ; 0x43c <__LOCK_REGION_LENGTH__+0x3c>
43a: 58 c0 rjmp .+176 ; 0x4ec <__LOCK_REGION_LENGTH__+0xec>
E:\arduino-WKD\portable\sketchbook\BlinkWithoutDelay/BlinkWithoutDelay.ino:59
// save the last time you blinked the LED
previousMillis = currentMillis;
43c: 80 93 0b 02 sts 0x020B, r24 ; 0x80020b <previousMillis>
440: 90 93 0c 02 sts 0x020C, r25 ; 0x80020c <previousMillis+0x1>
444: a0 93 0d 02 sts 0x020D, r26 ; 0x80020d <previousMillis+0x2>
448: b0 93 0e 02 sts 0x020E, r27 ; 0x80020e <previousMillis+0x3>
E:\arduino-WKD\portable\sketchbook\BlinkWithoutDelay/BlinkWithoutDelay.ino:62
// if the LED is off turn it on and vice-versa:
if (ledState == LOW) {
44c: 80 91 09 02 lds r24, 0x0209 ; 0x800209 <ledState>
450: 90 91 0a 02 lds r25, 0x020A ; 0x80020a <ledState+0x1>
454: 89 2b or r24, r25
456: 09 f0 breq .+2 ; 0x45a <__LOCK_REGION_LENGTH__+0x5a>
458: 2e c0 rjmp .+92 ; 0x4b6 <__LOCK_REGION_LENGTH__+0xb6>
E:\arduino-WKD\portable\sketchbook\BlinkWithoutDelay/BlinkWithoutDelay.ino:63
ledState = HIGH;
45a: b0 92 0a 02 sts 0x020A, r11 ; 0x80020a <ledState+0x1>
45e: a0 92 09 02 sts 0x0209, r10 ; 0x800209 <ledState>
digitalWrite():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:189
462: f6 01 movw r30, r12
464: 84 91 lpm r24, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:190
uint8_t bit = digitalPinToBitMask(pin);
466: fe 01 movw r30, r28
468: 24 91 lpm r18, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:191
uint8_t port = digitalPinToPort(pin);
46a: f8 01 movw r30, r16
46c: 94 91 lpm r25, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:194
volatile uint8_t *out;
if (port == NOT_A_PIN) return;
46e: 99 23 and r25, r25
470: 09 f4 brne .+2 ; 0x474 <__LOCK_REGION_LENGTH__+0x74>
472: 3c c0 rjmp .+120 ; 0x4ec <__LOCK_REGION_LENGTH__+0xec>
loop():
E:\arduino-WKD\portable\sketchbook\BlinkWithoutDelay/BlinkWithoutDelay.ino:69
} else {
ledState = LOW;
}
// set the LED with the ledState of the variable:
digitalWrite(ledPin, ledState);
474: 30 91 09 02 lds r19, 0x0209 ; 0x800209 <ledState>
digitalWrite():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:198
// If the pin that support PWM output, we need to turn it off
// before doing a digital write.
if (timer != NOT_ON_TIMER) turnOffPWM(timer);
478: 88 23 and r24, r24
47a: 39 f1 breq .+78 ; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
turnOffPWM():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:77
//
//static inline void turnOffPWM(uint8_t timer) __attribute__ ((always_inline));
//static inline void turnOffPWM(uint8_t timer)
static void turnOffPWM(uint8_t timer)
{
switch (timer)
47c: 82 50 subi r24, 0x02 ; 2
47e: 82 31 cpi r24, 0x12 ; 18
480: 20 f5 brcc .+72 ; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
482: e8 2f mov r30, r24
484: f0 e0 ldi r31, 0x00 ; 0
486: 88 27 eor r24, r24
488: e7 5b subi r30, 0xB7 ; 183
48a: fd 4f sbci r31, 0xFD ; 253
48c: 8f 4f sbci r24, 0xFF ; 255
48e: 0c 94 c2 02 jmp 0x584 ; 0x584 <__tablejump2__>
492: b9 02 muls r27, r25
494: bd 02 muls r27, r29
496: 60 02 muls r22, r16
498: 7d 02 muls r23, r29
49a: 81 02 muls r24, r17
49c: 65 02 muls r22, r21
49e: 85 02 muls r24, r21
4a0: 8b 02 muls r24, r27
4a2: 8f 02 muls r24, r31
4a4: 95 02 muls r25, r21
4a6: 99 02 muls r25, r25
4a8: 9d 02 muls r25, r29
4aa: a3 02 muls r26, r19
4ac: a7 02 muls r26, r23
4ae: 65 02 muls r22, r21
4b0: ab 02 muls r26, r27
4b2: b1 02 muls r27, r17
4b4: b5 02 muls r27, r21
loop():
E:\arduino-WKD\portable\sketchbook\BlinkWithoutDelay/BlinkWithoutDelay.ino:65
// if the LED is off turn it on and vice-versa:
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
4b6: 10 92 0a 02 sts 0x020A, r1 ; 0x80020a <ledState+0x1>
4ba: 10 92 09 02 sts 0x0209, r1 ; 0x800209 <ledState>
4be: d1 cf rjmp .-94 ; 0x462 <__LOCK_REGION_LENGTH__+0x62>
turnOffPWM():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:82
{
// Timer1
#if defined(TCCR1A) && defined(COM1A1)
case TIMER1A:
TCCR1A &= ~_BV(COM1A1);
4c0: 80 91 80 00 lds r24, 0x0080 ; 0x800080 <__TEXT_REGION_LENGTH__+0x700080>
4c4: 8f 77 andi r24, 0x7F ; 127
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:92
TCCR1A &= ~_BV(COM1B1);
break;
#endif
#if defined(TCCR1A) && defined(COM1C1)
case TIMER1C:
TCCR1A &= ~_BV(COM1C1);
4c6: 80 93 80 00 sts 0x0080, r24 ; 0x800080 <__TEXT_REGION_LENGTH__+0x700080>
digitalWrite():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:200
// If the pin that support PWM output, we need to turn it off
// before doing a digital write.
if (timer != NOT_ON_TIMER) turnOffPWM(timer);
out = portOutputRegister(port);
4ca: e9 2f mov r30, r25
4cc: f0 e0 ldi r31, 0x00 ; 0
4ce: ee 0f add r30, r30
4d0: ff 1f adc r31, r31
4d2: ee 5b subi r30, 0xBE ; 190
4d4: fe 4f sbci r31, 0xFE ; 254
4d6: a5 91 lpm r26, Z+
4d8: b4 91 lpm r27, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:202
uint8_t oldSREG = SREG;
4da: 8f b7 in r24, 0x3f ; 63
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:203
cli();
4dc: f8 94 cli
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:206
if (val == LOW) {
*out &= ~bit;
4de: 9c 91 ld r25, X
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:205
out = portOutputRegister(port);
uint8_t oldSREG = SREG;
cli();
if (val == LOW) {
4e0: 31 11 cpse r19, r1
4e2: 4e c0 rjmp .+156 ; 0x580 <__LOCK_REGION_LENGTH__+0x180>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:206
*out &= ~bit;
4e4: 20 95 com r18
4e6: 29 23 and r18, r25
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:208
} else {
*out |= bit;
4e8: 2c 93 st X, r18
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:211
}
SREG = oldSREG;
4ea: 8f bf out 0x3f, r24 ; 63
main():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/main.cpp:47
4ec: e1 14 cp r14, r1
4ee: f1 04 cpc r15, r1
4f0: 09 f4 brne .+2 ; 0x4f4 <__LOCK_REGION_LENGTH__+0xf4>
4f2: 83 cf rjmp .-250 ; 0x3fa <main+0xdc>
4f4: 0e 94 00 00 call 0 ; 0x0 <__vectors>
4f8: 80 cf rjmp .-256 ; 0x3fa <main+0xdc>
turnOffPWM():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:87
TCCR1A &= ~_BV(COM1A1);
break;
#endif
#if defined(TCCR1A) && defined(COM1B1)
case TIMER1B:
TCCR1A &= ~_BV(COM1B1);
4fa: 80 91 80 00 lds r24, 0x0080 ; 0x800080 <__TEXT_REGION_LENGTH__+0x700080>
4fe: 8f 7d andi r24, 0xDF ; 223
500: e2 cf rjmp .-60 ; 0x4c6 <__LOCK_REGION_LENGTH__+0xc6>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:92
break;
#endif
#if defined(TCCR1A) && defined(COM1C1)
case TIMER1C:
TCCR1A &= ~_BV(COM1C1);
502: 80 91 80 00 lds r24, 0x0080 ; 0x800080 <__TEXT_REGION_LENGTH__+0x700080>
506: 87 7f andi r24, 0xF7 ; 247
508: de cf rjmp .-68 ; 0x4c6 <__LOCK_REGION_LENGTH__+0xc6>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:104
TCCR2 &= ~_BV(COM21);
break;
#endif
#if defined(TCCR2A) && defined(COM2A1)
case TIMER2A:
TCCR2A &= ~_BV(COM2A1);
50a: 80 91 b0 00 lds r24, 0x00B0 ; 0x8000b0 <__TEXT_REGION_LENGTH__+0x7000b0>
50e: 8f 77 andi r24, 0x7F ; 127
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:109
break;
#endif
#if defined(TCCR2A) && defined(COM2B1)
case TIMER2B:
TCCR2A &= ~_BV(COM2B1);
510: 80 93 b0 00 sts 0x00B0, r24 ; 0x8000b0 <__TEXT_REGION_LENGTH__+0x7000b0>
514: da cf rjmp .-76 ; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
516: 80 91 b0 00 lds r24, 0x00B0 ; 0x8000b0 <__TEXT_REGION_LENGTH__+0x7000b0>
51a: 8f 7d andi r24, 0xDF ; 223
51c: f9 cf rjmp .-14 ; 0x510 <__LOCK_REGION_LENGTH__+0x110>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:116
#endif
// Timer3
#if defined(TCCR3A) && defined(COM3A1)
case TIMER3A:
TCCR3A &= ~_BV(COM3A1);
51e: 80 91 90 00 lds r24, 0x0090 ; 0x800090 <__TEXT_REGION_LENGTH__+0x700090>
522: 8f 77 andi r24, 0x7F ; 127
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:126
TCCR3A &= ~_BV(COM3B1);
break;
#endif
#if defined(TCCR3A) && defined(COM3C1)
case TIMER3C:
TCCR3A &= ~_BV(COM3C1);
524: 80 93 90 00 sts 0x0090, r24 ; 0x800090 <__TEXT_REGION_LENGTH__+0x700090>
528: d0 cf rjmp .-96 ; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:121
TCCR3A &= ~_BV(COM3A1);
break;
#endif
#if defined(TCCR3A) && defined(COM3B1)
case TIMER3B:
TCCR3A &= ~_BV(COM3B1);
52a: 80 91 90 00 lds r24, 0x0090 ; 0x800090 <__TEXT_REGION_LENGTH__+0x700090>
52e: 8f 7d andi r24, 0xDF ; 223
530: f9 cf rjmp .-14 ; 0x524 <__LOCK_REGION_LENGTH__+0x124>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:126
break;
#endif
#if defined(TCCR3A) && defined(COM3C1)
case TIMER3C:
TCCR3A &= ~_BV(COM3C1);
532: 80 91 90 00 lds r24, 0x0090 ; 0x800090 <__TEXT_REGION_LENGTH__+0x700090>
536: 87 7f andi r24, 0xF7 ; 247
538: f5 cf rjmp .-22 ; 0x524 <__LOCK_REGION_LENGTH__+0x124>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:133
#endif
// Timer4
#if defined(TCCR4A) && defined(COM4A1)
case TIMER4A:
TCCR4A &= ~_BV(COM4A1);
53a: 80 91 a0 00 lds r24, 0x00A0 ; 0x8000a0 <__TEXT_REGION_LENGTH__+0x7000a0>
53e: 8f 77 andi r24, 0x7F ; 127
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:143
TCCR4A &= ~_BV(COM4B1);
break;
#endif
#if defined(TCCR4A) && defined(COM4C1)
case TIMER4C:
TCCR4A &= ~_BV(COM4C1);
540: 80 93 a0 00 sts 0x00A0, r24 ; 0x8000a0 <__TEXT_REGION_LENGTH__+0x7000a0>
544: c2 cf rjmp .-124 ; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:138
TCCR4A &= ~_BV(COM4A1);
break;
#endif
#if defined(TCCR4A) && defined(COM4B1)
case TIMER4B:
TCCR4A &= ~_BV(COM4B1);
546: 80 91 a0 00 lds r24, 0x00A0 ; 0x8000a0 <__TEXT_REGION_LENGTH__+0x7000a0>
54a: 8f 7d andi r24, 0xDF ; 223
54c: f9 cf rjmp .-14 ; 0x540 <__LOCK_REGION_LENGTH__+0x140>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:143
break;
#endif
#if defined(TCCR4A) && defined(COM4C1)
case TIMER4C:
TCCR4A &= ~_BV(COM4C1);
54e: 80 91 a0 00 lds r24, 0x00A0 ; 0x8000a0 <__TEXT_REGION_LENGTH__+0x7000a0>
552: 87 7f andi r24, 0xF7 ; 247
554: f5 cf rjmp .-22 ; 0x540 <__LOCK_REGION_LENGTH__+0x140>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:155
#endif
// Timer5
#if defined(TCCR5A)
case TIMER5A:
TCCR5A &= ~_BV(COM5A1);
556: 80 91 20 01 lds r24, 0x0120 ; 0x800120 <__TEXT_REGION_LENGTH__+0x700120>
55a: 8f 77 andi r24, 0x7F ; 127
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:161
break;
case TIMER5B:
TCCR5A &= ~_BV(COM5B1);
break;
case TIMER5C:
TCCR5A &= ~_BV(COM5C1);
55c: 80 93 20 01 sts 0x0120, r24 ; 0x800120 <__TEXT_REGION_LENGTH__+0x700120>
560: b4 cf rjmp .-152 ; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:158
#if defined(TCCR5A)
case TIMER5A:
TCCR5A &= ~_BV(COM5A1);
break;
case TIMER5B:
TCCR5A &= ~_BV(COM5B1);
562: 80 91 20 01 lds r24, 0x0120 ; 0x800120 <__TEXT_REGION_LENGTH__+0x700120>
566: 8f 7d andi r24, 0xDF ; 223
568: f9 cf rjmp .-14 ; 0x55c <__LOCK_REGION_LENGTH__+0x15c>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:161
break;
case TIMER5C:
TCCR5A &= ~_BV(COM5C1);
56a: 80 91 20 01 lds r24, 0x0120 ; 0x800120 <__TEXT_REGION_LENGTH__+0x700120>
56e: 87 7f andi r24, 0xF7 ; 247
570: f5 cf rjmp .-22 ; 0x55c <__LOCK_REGION_LENGTH__+0x15c>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:176
TCCR0 &= ~_BV(COM01);
break;
#endif
#if defined(TCCR0A) && defined(COM0A1)
case TIMER0A:
TCCR0A &= ~_BV(COM0A1);
572: 84 b5 in r24, 0x24 ; 36
574: 8f 77 andi r24, 0x7F ; 127
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:181
break;
#endif
#if defined(TCCR0A) && defined(COM0B1)
case TIMER0B:
TCCR0A &= ~_BV(COM0B1);
576: 84 bd out 0x24, r24 ; 36
578: a8 cf rjmp .-176 ; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
57a: 84 b5 in r24, 0x24 ; 36
57c: 8f 7d andi r24, 0xDF ; 223
57e: fb cf rjmp .-10 ; 0x576 <__LOCK_REGION_LENGTH__+0x176>
digitalWrite():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:208
cli();
if (val == LOW) {
*out &= ~bit;
} else {
*out |= bit;
580: 29 2b or r18, r25
582: b2 cf rjmp .-156 ; 0x4e8 <__LOCK_REGION_LENGTH__+0xe8>
00000584 <__tablejump2__>:
__tablejump2__():
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2296
584: ee 0f add r30, r30
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2297
586: ff 1f adc r31, r31
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2300
588: 88 1f adc r24, r24
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2301
58a: 8b bf out 0x3b, r24 ; 59
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2312
58c: 07 90 elpm r0, Z+
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2313
58e: f6 91 elpm r31, Z
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2314
590: e0 2d mov r30, r0
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2319
592: 19 94 eijmp
00000594 <_exit>:
exit():
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2278
594: f8 94 cli
00000596 <__stop_program>:
__stop_program():
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2280
596: ff cf rjmp .-2 ; 0x596 <__stop_program>