Door.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn 0 .data 00000084 00800100 000011a4 00001238 2**0 CONTENTS, ALLOC, LOAD, DATA 1 .text 000011a4 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .bss 00000032 00800184 00800184 000012bc 2**0 ALLOC 3 .stab 00001968 00000000 00000000 000012bc 2**2 CONTENTS, READONLY, DEBUGGING 4 .stabstr 000005b5 00000000 00000000 00002c24 2**0 CONTENTS, READONLY, DEBUGGING 5 .comment 0000002f 00000000 00000000 000031d9 2**0 CONTENTS, READONLY 6 .debug_aranges 00000060 00000000 00000000 00003208 2**0 CONTENTS, READONLY, DEBUGGING 7 .debug_info 0000384a 00000000 00000000 00003268 2**0 CONTENTS, READONLY, DEBUGGING 8 .debug_abbrev 000004fd 00000000 00000000 00006ab2 2**0 CONTENTS, READONLY, DEBUGGING 9 .debug_line 000005f9 00000000 00000000 00006faf 2**0 CONTENTS, READONLY, DEBUGGING 10 .debug_frame 000001b8 00000000 00000000 000075a8 2**2 CONTENTS, READONLY, DEBUGGING 11 .debug_str 00001435 00000000 00000000 00007760 2**0 CONTENTS, READONLY, DEBUGGING 12 .debug_loc 000017a5 00000000 00000000 00008b95 2**0 CONTENTS, READONLY, DEBUGGING 13 .debug_ranges 00000340 00000000 00000000 0000a33a 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 <__vectors>: 0: 0c 94 35 00 jmp 0x6a ; 0x6a <__ctors_end> 4: 0c 94 6d 06 jmp 0xcda ; 0xcda <__vector_1> 8: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 10: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 14: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 18: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 1c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 20: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 24: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 28: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 2c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 30: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 34: 0c 94 5f 00 jmp 0xbe ; 0xbe <__vector_13> 38: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 3c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 40: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 44: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 48: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 4c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 50: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 54: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 58: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 5c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 60: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 64: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 00000068 <__ctors_start>: 68: 25 07 cpc r18, r21 0000006a <__ctors_end>: 6a: 11 24 eor r1, r1 6c: 1f be out 0x3f, r1 ; 63 6e: cf ef ldi r28, 0xFF ; 255 70: d4 e0 ldi r29, 0x04 ; 4 72: de bf out 0x3e, r29 ; 62 74: cd bf out 0x3d, r28 ; 61 00000076 <__do_copy_data>: 76: 11 e0 ldi r17, 0x01 ; 1 78: a0 e0 ldi r26, 0x00 ; 0 7a: b1 e0 ldi r27, 0x01 ; 1 7c: e4 ea ldi r30, 0xA4 ; 164 7e: f1 e1 ldi r31, 0x11 ; 17 80: 02 c0 rjmp .+4 ; 0x86 <__do_copy_data+0x10> 82: 05 90 lpm r0, Z+ 84: 0d 92 st X+, r0 86: a4 38 cpi r26, 0x84 ; 132 88: b1 07 cpc r27, r17 8a: d9 f7 brne .-10 ; 0x82 <__do_copy_data+0xc> 0000008c <__do_clear_bss>: 8c: 21 e0 ldi r18, 0x01 ; 1 8e: a4 e8 ldi r26, 0x84 ; 132 90: b1 e0 ldi r27, 0x01 ; 1 92: 01 c0 rjmp .+2 ; 0x96 <.do_clear_bss_start> 00000094 <.do_clear_bss_loop>: 94: 1d 92 st X+, r1 00000096 <.do_clear_bss_start>: 96: a6 3b cpi r26, 0xB6 ; 182 98: b2 07 cpc r27, r18 9a: e1 f7 brne .-8 ; 0x94 <.do_clear_bss_loop> 0000009c <__do_global_ctors>: 9c: 10 e0 ldi r17, 0x00 ; 0 9e: ca e6 ldi r28, 0x6A ; 106 a0: d0 e0 ldi r29, 0x00 ; 0 a2: 04 c0 rjmp .+8 ; 0xac <__do_global_ctors+0x10> a4: 22 97 sbiw r28, 0x02 ; 2 a6: fe 01 movw r30, r28 a8: 0e 94 cc 08 call 0x1198 ; 0x1198 <__tablejump__> ac: c8 36 cpi r28, 0x68 ; 104 ae: d1 07 cpc r29, r17 b0: c9 f7 brne .-14 ; 0xa4 <__do_global_ctors+0x8> b2: 0e 94 0c 03 call 0x618 ; 0x618
b6: 0c 94 d0 08 jmp 0x11a0 ; 0x11a0 <_exit> 000000ba <__bad_interrupt>: ba: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> 000000be <__vector_13>: ISR(INT0_vect) { ir.interrupt(); } ISR(TIMER1_OVF_vect) { be: 1f 92 push r1 c0: 0f 92 push r0 c2: 0f b6 in r0, 0x3f ; 63 c4: 0f 92 push r0 c6: 11 24 eor r1, r1 c8: 2f 92 push r2 ca: 3f 92 push r3 cc: 4f 92 push r4 ce: 5f 92 push r5 d0: 6f 92 push r6 d2: 7f 92 push r7 d4: 8f 92 push r8 d6: 9f 92 push r9 d8: af 92 push r10 da: bf 92 push r11 dc: cf 92 push r12 de: df 92 push r13 e0: ef 92 push r14 e2: ff 92 push r15 e4: 0f 93 push r16 e6: 1f 93 push r17 e8: 2f 93 push r18 ea: 3f 93 push r19 ec: 4f 93 push r20 ee: 5f 93 push r21 f0: 6f 93 push r22 f2: 7f 93 push r23 f4: 8f 93 push r24 f6: 9f 93 push r25 f8: af 93 push r26 fa: bf 93 push r27 fc: cf 93 push r28 fe: df 93 push r29 100: ef 93 push r30 102: ff 93 push r31 this->fademap[1][index] = green; this->fademap[2][index] = blue; this->fademap[3][index] = time; } void interrupt() { if(this->fade_zylk > 0) { 104: c0 91 88 01 lds r28, 0x0188 108: cc 23 and r28, r28 10a: 09 f4 brne .+2 ; 0x10e <__vector_13+0x50> 10c: f6 c1 rjmp .+1004 ; 0x4fa <__vector_13+0x43c> if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { 10e: 20 e0 ldi r18, 0x00 ; 0 110: 30 e0 ldi r19, 0x00 ; 0 112: a9 01 movw r20, r18 114: 60 91 9d 01 lds r22, 0x019D 118: 70 91 9e 01 lds r23, 0x019E 11c: 80 91 9f 01 lds r24, 0x019F 120: 90 91 a0 01 lds r25, 0x01A0 124: 0e 94 b0 07 call 0xf60 ; 0xf60 <__cmpsf2> 128: 81 11 cpse r24, r1 12a: f0 c0 rjmp .+480 ; 0x30c <__vector_13+0x24e> 12c: 20 e0 ldi r18, 0x00 ; 0 12e: 30 e0 ldi r19, 0x00 ; 0 130: a9 01 movw r20, r18 132: 60 91 a1 01 lds r22, 0x01A1 136: 70 91 a2 01 lds r23, 0x01A2 13a: 80 91 a3 01 lds r24, 0x01A3 13e: 90 91 a4 01 lds r25, 0x01A4 142: 0e 94 b0 07 call 0xf60 ; 0xf60 <__cmpsf2> 146: 81 11 cpse r24, r1 148: e4 c0 rjmp .+456 ; 0x312 <__vector_13+0x254> 14a: 20 e0 ldi r18, 0x00 ; 0 14c: 30 e0 ldi r19, 0x00 ; 0 14e: a9 01 movw r20, r18 150: 60 91 a5 01 lds r22, 0x01A5 154: 70 91 a6 01 lds r23, 0x01A6 158: 80 91 a7 01 lds r24, 0x01A7 15c: 90 91 a8 01 lds r25, 0x01A8 160: 0e 94 b0 07 call 0xf60 ; 0xf60 <__cmpsf2> 164: 88 23 and r24, r24 166: 29 f0 breq .+10 ; 0x172 <__vector_13+0xb4> 168: 88 24 eor r8, r8 16a: 83 94 inc r8 16c: d4 c0 rjmp .+424 ; 0x316 <__vector_13+0x258> 16e: b3 94 inc r11 170: 11 c0 rjmp .+34 ; 0x194 <__vector_13+0xd6> 172: bb 24 eor r11, r11 174: b3 94 inc r11 for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; 176: d0 e0 ldi r29, 0x00 ; 0 178: 21 97 sbiw r28, 0x01 ; 1 } } uint8_t gp(uint8_t i) { switch(i) { case 0: return OCR0B; //ROT case 1: return OCR2B; //GRÜN 17a: 0f 2e mov r0, r31 17c: f4 eb ldi r31, 0xB4 ; 180 17e: cf 2e mov r12, r31 180: d1 2c mov r13, r1 182: f0 2d mov r31, r0 } void interrupt() { if(this->fade_zylk > 0) { if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; 184: 0f 2e mov r0, r31 186: f8 e9 ldi r31, 0x98 ; 152 188: 6f 2e mov r6, r31 18a: f1 e0 ldi r31, 0x01 ; 1 18c: 7f 2e mov r7, r31 18e: f0 2d mov r31, r0 190: 6c 0e add r6, r28 192: 7d 1e adc r7, r29 194: 1b 2d mov r17, r11 196: 11 50 subi r17, 0x01 ; 1 198: e1 2e mov r14, r17 19a: f1 2c mov r15, r1 19c: 9e 01 movw r18, r28 19e: f7 01 movw r30, r14 1a0: ee 0f add r30, r30 1a2: ff 1f adc r31, r31 1a4: ee 0f add r30, r30 1a6: ff 1f adc r31, r31 1a8: ee 0d add r30, r14 1aa: ff 1d adc r31, r15 1ac: e8 57 subi r30, 0x78 ; 120 1ae: fe 4f sbci r31, 0xFE ; 254 1b0: ec 0f add r30, r28 1b2: fd 1f adc r31, r29 1b4: 81 81 ldd r24, Z+1 ; 0x01 1b6: 90 e0 ldi r25, 0x00 ; 0 case 1: OCR2B = c; break; //GRÜN case 2: OCR2A = c; break; //BLAU } } uint8_t gp(uint8_t i) { switch(i) { 1b8: 11 30 cpi r17, 0x01 ; 1 1ba: 09 f1 breq .+66 ; 0x1fe <__vector_13+0x140> 1bc: 20 f0 brcs .+8 ; 0x1c6 <__vector_13+0x108> 1be: 12 30 cpi r17, 0x02 ; 2 1c0: 09 f0 breq .+2 ; 0x1c4 <__vector_13+0x106> 1c2: 57 c0 rjmp .+174 ; 0x272 <__vector_13+0x1b4> 1c4: 39 c0 rjmp .+114 ; 0x238 <__vector_13+0x17a> case 0: return OCR0B; //ROT 1c6: 48 b5 in r20, 0x28 ; 40 } void interrupt() { if(this->fade_zylk > 0) { if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; 1c8: 97 01 movw r18, r14 1ca: 22 0f add r18, r18 1cc: 33 1f adc r19, r19 1ce: 22 0f add r18, r18 1d0: 33 1f adc r19, r19 1d2: 89 01 movw r16, r18 1d4: 08 57 subi r16, 0x78 ; 120 1d6: 1e 4f sbci r17, 0xFE ; 254 1d8: 84 1b sub r24, r20 1da: 91 09 sbc r25, r1 1dc: f3 01 movw r30, r6 1de: 60 81 ld r22, Z 1e0: 70 e0 ldi r23, 0x00 ; 0 1e2: 0e 94 96 08 call 0x112c ; 0x112c <__divmodhi4> 1e6: 88 27 eor r24, r24 1e8: 77 fd sbrc r23, 7 1ea: 80 95 com r24 1ec: 98 2f mov r25, r24 1ee: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__floatsisf> 1f2: f8 01 movw r30, r16 1f4: 65 8b std Z+21, r22 ; 0x15 1f6: 76 8b std Z+22, r23 ; 0x16 1f8: 87 8b std Z+23, r24 ; 0x17 1fa: 90 8f std Z+24, r25 ; 0x18 1fc: 5d c0 rjmp .+186 ; 0x2b8 <__vector_13+0x1fa> } } uint8_t gp(uint8_t i) { switch(i) { case 0: return OCR0B; //ROT case 1: return OCR2B; //GRÜN 1fe: f6 01 movw r30, r12 200: 40 81 ld r20, Z } void interrupt() { if(this->fade_zylk > 0) { if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; 202: 97 01 movw r18, r14 204: 22 0f add r18, r18 206: 33 1f adc r19, r19 208: 22 0f add r18, r18 20a: 33 1f adc r19, r19 20c: 89 01 movw r16, r18 20e: 08 57 subi r16, 0x78 ; 120 210: 1e 4f sbci r17, 0xFE ; 254 212: 84 1b sub r24, r20 214: 91 09 sbc r25, r1 216: f3 01 movw r30, r6 218: 60 81 ld r22, Z 21a: 70 e0 ldi r23, 0x00 ; 0 21c: 0e 94 96 08 call 0x112c ; 0x112c <__divmodhi4> 220: 88 27 eor r24, r24 222: 77 fd sbrc r23, 7 224: 80 95 com r24 226: 98 2f mov r25, r24 228: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__floatsisf> 22c: f8 01 movw r30, r16 22e: 65 8b std Z+21, r22 ; 0x15 230: 76 8b std Z+22, r23 ; 0x16 232: 87 8b std Z+23, r24 ; 0x17 234: 90 8f std Z+24, r25 ; 0x18 236: 42 c0 rjmp .+132 ; 0x2bc <__vector_13+0x1fe> } uint8_t gp(uint8_t i) { switch(i) { case 0: return OCR0B; //ROT case 1: return OCR2B; //GRÜN case 2: return OCR2A; //BLAU 238: 40 91 b3 00 lds r20, 0x00B3 } void interrupt() { if(this->fade_zylk > 0) { if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; 23c: e7 01 movw r28, r14 23e: cc 0f add r28, r28 240: dd 1f adc r29, r29 242: cc 0f add r28, r28 244: dd 1f adc r29, r29 246: c8 57 subi r28, 0x78 ; 120 248: de 4f sbci r29, 0xFE ; 254 24a: 84 1b sub r24, r20 24c: 91 09 sbc r25, r1 24e: f9 01 movw r30, r18 250: e8 57 subi r30, 0x78 ; 120 252: fe 4f sbci r31, 0xFE ; 254 254: 60 89 ldd r22, Z+16 ; 0x10 256: 70 e0 ldi r23, 0x00 ; 0 258: 0e 94 96 08 call 0x112c ; 0x112c <__divmodhi4> 25c: 88 27 eor r24, r24 25e: 77 fd sbrc r23, 7 260: 80 95 com r24 262: 98 2f mov r25, r24 264: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__floatsisf> 268: 6d 8b std Y+21, r22 ; 0x15 26a: 7e 8b std Y+22, r23 ; 0x16 26c: 8f 8b std Y+23, r24 ; 0x17 26e: 98 8f std Y+24, r25 ; 0x18 270: 28 c0 rjmp .+80 ; 0x2c2 <__vector_13+0x204> 272: 97 01 movw r18, r14 274: 22 0f add r18, r18 276: 33 1f adc r19, r19 278: 22 0f add r18, r18 27a: 33 1f adc r19, r19 27c: 0f 2e mov r0, r31 27e: f8 e8 ldi r31, 0x88 ; 136 280: 8f 2e mov r8, r31 282: f1 e0 ldi r31, 0x01 ; 1 284: 9f 2e mov r9, r31 286: f0 2d mov r31, r0 288: 82 0e add r8, r18 28a: 93 1e adc r9, r19 28c: f3 01 movw r30, r6 28e: 60 81 ld r22, Z 290: 70 e0 ldi r23, 0x00 ; 0 292: 0e 94 96 08 call 0x112c ; 0x112c <__divmodhi4> 296: 88 27 eor r24, r24 298: 77 fd sbrc r23, 7 29a: 80 95 com r24 29c: 98 2f mov r25, r24 29e: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__floatsisf> 2a2: f4 01 movw r30, r8 2a4: 65 8b std Z+21, r22 ; 0x15 2a6: 76 8b std Z+22, r23 ; 0x16 2a8: 87 8b std Z+23, r24 ; 0x17 2aa: 90 8f std Z+24, r25 ; 0x18 case 1: OCR2B = c; break; //GRÜN case 2: OCR2A = c; break; //BLAU } } uint8_t gp(uint8_t i) { switch(i) { 2ac: 11 30 cpi r17, 0x01 ; 1 2ae: 31 f0 breq .+12 ; 0x2bc <__vector_13+0x1fe> 2b0: 18 f0 brcs .+6 ; 0x2b8 <__vector_13+0x1fa> 2b2: 12 30 cpi r17, 0x02 ; 2 2b4: c9 f4 brne .+50 ; 0x2e8 <__vector_13+0x22a> 2b6: 05 c0 rjmp .+10 ; 0x2c2 <__vector_13+0x204> case 0: return OCR0B; //ROT 2b8: 68 b5 in r22, 0x28 ; 40 2ba: 07 c1 rjmp .+526 ; 0x4ca <__vector_13+0x40c> case 1: return OCR2B; //GRÜN 2bc: f6 01 movw r30, r12 2be: 60 81 ld r22, Z 2c0: 04 c1 rjmp .+520 ; 0x4ca <__vector_13+0x40c> case 2: return OCR2A; //BLAU 2c2: 60 91 b3 00 lds r22, 0x00B3 void interrupt() { if(this->fade_zylk > 0) { if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; this->virtualcolor[i] = this->gp(i); 2c6: e7 01 movw r28, r14 2c8: cc 0f add r28, r28 2ca: dd 1f adc r29, r29 2cc: cc 0f add r28, r28 2ce: dd 1f adc r29, r29 2d0: c8 57 subi r28, 0x78 ; 120 2d2: de 4f sbci r29, 0xFE ; 254 2d4: 70 e0 ldi r23, 0x00 ; 0 2d6: 80 e0 ldi r24, 0x00 ; 0 2d8: 90 e0 ldi r25, 0x00 ; 0 2da: 0e 94 e0 07 call 0xfc0 ; 0xfc0 <__floatunsisf> 2de: 69 a3 std Y+33, r22 ; 0x21 2e0: 7a a3 std Y+34, r23 ; 0x22 2e2: 8b a3 std Y+35, r24 ; 0x23 2e4: 9c a3 std Y+36, r25 ; 0x24 2e6: 09 c1 rjmp .+530 ; 0x4fa <__vector_13+0x43c> 2e8: f7 01 movw r30, r14 2ea: ee 0f add r30, r30 2ec: ff 1f adc r31, r31 2ee: ee 0f add r30, r30 2f0: ff 1f adc r31, r31 2f2: e8 57 subi r30, 0x78 ; 120 2f4: fe 4f sbci r31, 0xFE ; 254 2f6: 11 a2 std Z+33, r1 ; 0x21 2f8: 12 a2 std Z+34, r1 ; 0x22 2fa: 13 a2 std Z+35, r1 ; 0x23 2fc: 14 a2 std Z+36, r1 ; 0x24 this->fademap[3][index] = time; } void interrupt() { if(this->fade_zylk > 0) { if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue 2fe: f2 e0 ldi r31, 0x02 ; 2 300: fb 15 cp r31, r11 302: 08 f0 brcs .+2 ; 0x306 <__vector_13+0x248> 304: 34 cf rjmp .-408 ; 0x16e <__vector_13+0xb0> 306: f9 c0 rjmp .+498 ; 0x4fa <__vector_13+0x43c> 308: 83 94 inc r8 30a: 10 c0 rjmp .+32 ; 0x32c <__vector_13+0x26e> this->fademap[2][index] = blue; this->fademap[3][index] = time; } void interrupt() { if(this->fade_zylk > 0) { if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { 30c: 88 24 eor r8, r8 30e: 83 94 inc r8 310: 02 c0 rjmp .+4 ; 0x316 <__vector_13+0x258> 312: 88 24 eor r8, r8 314: 83 94 inc r8 /*this->fadesteps[0] = (this->fademap[0][this->fade_zylk-1]-this->gp(0))/this->fademap[3][this->fade_zylk-1]; //Calc Red; this->fadesteps[1] = (this->fademap[1][this->fade_zylk-1]-OCR2B)/this->fademap[3][this->fade_zylk-1]; //Calc Green; this->fadesteps[2] = (this->fademap[2][this->fade_zylk-1]-OCR2A)/this->fademap[3][this->fade_zylk-1]; //Calc Blue;*/ } else { for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue if((this->fadesteps[i] > 0 && (this->virtualcolor[i] + this->fadesteps[i]) <= this->fademap[i][this->fade_zylk-1]) || (this->fadesteps[i] < 0 && (this->virtualcolor[i] + this->fadesteps[i]) >= this->fademap[i][this->fade_zylk-1])) { 316: 0f 2e mov r0, r31 318: f8 e8 ldi r31, 0x88 ; 136 31a: af 2e mov r10, r31 31c: f1 e0 ldi r31, 0x01 ; 1 31e: bf 2e mov r11, r31 320: f0 2d mov r31, r0 this->color(0, 0, 0); } void sp(uint8_t i, uint8_t c) { switch(i) { case 0: OCR0B = c; break; //ROT case 1: OCR2B = c; break; //GRÜN 322: 0f 2e mov r0, r31 324: f4 eb ldi r31, 0xB4 ; 180 326: 2f 2e mov r2, r31 328: 31 2c mov r3, r1 32a: f0 2d mov r31, r0 32c: 98 2c mov r9, r8 32e: 9a 94 dec r9 /*this->fadesteps[0] = (this->fademap[0][this->fade_zylk-1]-this->gp(0))/this->fademap[3][this->fade_zylk-1]; //Calc Red; this->fadesteps[1] = (this->fademap[1][this->fade_zylk-1]-OCR2B)/this->fademap[3][this->fade_zylk-1]; //Calc Green; this->fadesteps[2] = (this->fademap[2][this->fade_zylk-1]-OCR2A)/this->fademap[3][this->fade_zylk-1]; //Calc Blue;*/ } else { for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue if((this->fadesteps[i] > 0 && (this->virtualcolor[i] + this->fadesteps[i]) <= this->fademap[i][this->fade_zylk-1]) || (this->fadesteps[i] < 0 && (this->virtualcolor[i] + this->fadesteps[i]) >= this->fademap[i][this->fade_zylk-1])) { 330: c9 2d mov r28, r9 332: d0 e0 ldi r29, 0x00 ; 0 334: fe 01 movw r30, r28 336: ee 0f add r30, r30 338: ff 1f adc r31, r31 33a: ee 0f add r30, r30 33c: ff 1f adc r31, r31 33e: e8 57 subi r30, 0x78 ; 120 340: fe 4f sbci r31, 0xFE ; 254 342: c5 88 ldd r12, Z+21 ; 0x15 344: d6 88 ldd r13, Z+22 ; 0x16 346: e7 88 ldd r14, Z+23 ; 0x17 348: f0 8c ldd r15, Z+24 ; 0x18 34a: 20 e0 ldi r18, 0x00 ; 0 34c: 30 e0 ldi r19, 0x00 ; 0 34e: a9 01 movw r20, r18 350: c7 01 movw r24, r14 352: b6 01 movw r22, r12 354: 0e 94 92 08 call 0x1124 ; 0x1124 <__gesf2> 358: 18 16 cp r1, r24 35a: 4c f5 brge .+82 ; 0x3ae <__vector_13+0x2f0> 35c: 8e 01 movw r16, r28 35e: 00 0f add r16, r16 360: 11 1f adc r17, r17 362: 00 0f add r16, r16 364: 11 1f adc r17, r17 366: f8 01 movw r30, r16 368: e8 57 subi r30, 0x78 ; 120 36a: fe 4f sbci r31, 0xFE ; 254 36c: 21 a1 ldd r18, Z+33 ; 0x21 36e: 32 a1 ldd r19, Z+34 ; 0x22 370: 43 a1 ldd r20, Z+35 ; 0x23 372: 54 a1 ldd r21, Z+36 ; 0x24 374: c7 01 movw r24, r14 376: b6 01 movw r22, r12 378: 0e 94 4c 07 call 0xe98 ; 0xe98 <__addsf3> 37c: 2b 01 movw r4, r22 37e: 3c 01 movw r6, r24 380: f5 01 movw r30, r10 382: 80 81 ld r24, Z 384: f8 01 movw r30, r16 386: ec 0f add r30, r28 388: fd 1f adc r31, r29 38a: e8 0f add r30, r24 38c: f1 1d adc r31, r1 38e: e8 57 subi r30, 0x78 ; 120 390: fe 4f sbci r31, 0xFE ; 254 392: 60 81 ld r22, Z 394: 70 e0 ldi r23, 0x00 ; 0 396: 80 e0 ldi r24, 0x00 ; 0 398: 90 e0 ldi r25, 0x00 ; 0 39a: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__floatsisf> 39e: 9b 01 movw r18, r22 3a0: ac 01 movw r20, r24 3a2: c3 01 movw r24, r6 3a4: b2 01 movw r22, r4 3a6: 0e 94 b0 07 call 0xf60 ; 0xf60 <__cmpsf2> 3aa: 18 16 cp r1, r24 3ac: 9c f5 brge .+102 ; 0x414 <__vector_13+0x356> 3ae: 20 e0 ldi r18, 0x00 ; 0 3b0: 30 e0 ldi r19, 0x00 ; 0 3b2: a9 01 movw r20, r18 3b4: c7 01 movw r24, r14 3b6: b6 01 movw r22, r12 3b8: 0e 94 b0 07 call 0xf60 ; 0xf60 <__cmpsf2> 3bc: 88 23 and r24, r24 3be: 0c f0 brlt .+2 ; 0x3c2 <__vector_13+0x304> 3c0: 56 c0 rjmp .+172 ; 0x46e <__vector_13+0x3b0> 3c2: 8e 01 movw r16, r28 3c4: 00 0f add r16, r16 3c6: 11 1f adc r17, r17 3c8: 00 0f add r16, r16 3ca: 11 1f adc r17, r17 3cc: f8 01 movw r30, r16 3ce: e8 57 subi r30, 0x78 ; 120 3d0: fe 4f sbci r31, 0xFE ; 254 3d2: 21 a1 ldd r18, Z+33 ; 0x21 3d4: 32 a1 ldd r19, Z+34 ; 0x22 3d6: 43 a1 ldd r20, Z+35 ; 0x23 3d8: 54 a1 ldd r21, Z+36 ; 0x24 3da: c7 01 movw r24, r14 3dc: b6 01 movw r22, r12 3de: 0e 94 4c 07 call 0xe98 ; 0xe98 <__addsf3> 3e2: 2b 01 movw r4, r22 3e4: 3c 01 movw r6, r24 3e6: f5 01 movw r30, r10 3e8: 80 81 ld r24, Z 3ea: f8 01 movw r30, r16 3ec: ec 0f add r30, r28 3ee: fd 1f adc r31, r29 3f0: e8 0f add r30, r24 3f2: f1 1d adc r31, r1 3f4: e8 57 subi r30, 0x78 ; 120 3f6: fe 4f sbci r31, 0xFE ; 254 3f8: 60 81 ld r22, Z 3fa: 70 e0 ldi r23, 0x00 ; 0 3fc: 80 e0 ldi r24, 0x00 ; 0 3fe: 90 e0 ldi r25, 0x00 ; 0 400: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__floatsisf> 404: 9b 01 movw r18, r22 406: ac 01 movw r20, r24 408: c3 01 movw r24, r6 40a: b2 01 movw r22, r4 40c: 0e 94 92 08 call 0x1124 ; 0x1124 <__gesf2> 410: 88 23 and r24, r24 412: 6c f1 brlt .+90 ; 0x46e <__vector_13+0x3b0> this->virtualcolor[i] = this->virtualcolor[i] + this->fadesteps[i]; 414: cc 0f add r28, r28 416: dd 1f adc r29, r29 418: cc 0f add r28, r28 41a: dd 1f adc r29, r29 41c: c8 57 subi r28, 0x78 ; 120 41e: de 4f sbci r29, 0xFE ; 254 420: 29 a1 ldd r18, Y+33 ; 0x21 422: 3a a1 ldd r19, Y+34 ; 0x22 424: 4b a1 ldd r20, Y+35 ; 0x23 426: 5c a1 ldd r21, Y+36 ; 0x24 428: c7 01 movw r24, r14 42a: b6 01 movw r22, r12 42c: 0e 94 4c 07 call 0xe98 ; 0xe98 <__addsf3> 430: 26 2f mov r18, r22 432: 37 2f mov r19, r23 434: 46 2f mov r20, r22 436: 57 2f mov r21, r23 438: 68 2f mov r22, r24 43a: 79 2f mov r23, r25 43c: 49 a3 std Y+33, r20 ; 0x21 43e: 5a a3 std Y+34, r21 ; 0x22 440: 6b a3 std Y+35, r22 ; 0x23 442: 7c a3 std Y+36, r23 ; 0x24 this->sp(i, this->virtualcolor[i]); 444: 62 2f mov r22, r18 446: 73 2f mov r23, r19 448: 0e 94 b4 07 call 0xf68 ; 0xf68 <__fixunssfsi> this->fade_zylk = 0; this->initTimer(); this->color(0, 0, 0); } void sp(uint8_t i, uint8_t c) { switch(i) { 44c: f1 e0 ldi r31, 0x01 ; 1 44e: 9f 16 cp r9, r31 450: 41 f0 breq .+16 ; 0x462 <__vector_13+0x3a4> 452: 9f 16 cp r9, r31 454: 20 f0 brcs .+8 ; 0x45e <__vector_13+0x3a0> 456: 82 e0 ldi r24, 0x02 ; 2 458: 98 12 cpse r9, r24 45a: 32 c0 rjmp .+100 ; 0x4c0 <__vector_13+0x402> 45c: 05 c0 rjmp .+10 ; 0x468 <__vector_13+0x3aa> case 0: OCR0B = c; break; //ROT 45e: 68 bd out 0x28, r22 ; 40 460: 53 cf rjmp .-346 ; 0x308 <__vector_13+0x24a> case 1: OCR2B = c; break; //GRÜN 462: f1 01 movw r30, r2 464: 60 83 st Z, r22 466: 50 cf rjmp .-352 ; 0x308 <__vector_13+0x24a> case 2: OCR2A = c; break; //BLAU 468: 60 93 b3 00 sts 0x00B3, r22 46c: 46 c0 rjmp .+140 ; 0x4fa <__vector_13+0x43c> for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue if((this->fadesteps[i] > 0 && (this->virtualcolor[i] + this->fadesteps[i]) <= this->fademap[i][this->fade_zylk-1]) || (this->fadesteps[i] < 0 && (this->virtualcolor[i] + this->fadesteps[i]) >= this->fademap[i][this->fade_zylk-1])) { this->virtualcolor[i] = this->virtualcolor[i] + this->fadesteps[i]; this->sp(i, this->virtualcolor[i]); } else { this->sp(i, this->fademap[i][this->fade_zylk-1]); 46e: f5 01 movw r30, r10 470: 80 81 ld r24, Z 472: fe 01 movw r30, r28 474: ee 0f add r30, r30 476: ff 1f adc r31, r31 478: ee 0f add r30, r30 47a: ff 1f adc r31, r31 47c: ec 0f add r30, r28 47e: fd 1f adc r31, r29 480: e8 0f add r30, r24 482: f1 1d adc r31, r1 484: e8 57 subi r30, 0x78 ; 120 486: fe 4f sbci r31, 0xFE ; 254 488: 80 81 ld r24, Z this->fade_zylk = 0; this->initTimer(); this->color(0, 0, 0); } void sp(uint8_t i, uint8_t c) { switch(i) { 48a: f1 e0 ldi r31, 0x01 ; 1 48c: 9f 16 cp r9, r31 48e: 41 f0 breq .+16 ; 0x4a0 <__vector_13+0x3e2> 490: 9f 16 cp r9, r31 492: 20 f0 brcs .+8 ; 0x49c <__vector_13+0x3de> 494: 92 e0 ldi r25, 0x02 ; 2 496: 99 12 cpse r9, r25 498: 09 c0 rjmp .+18 ; 0x4ac <__vector_13+0x3ee> 49a: 05 c0 rjmp .+10 ; 0x4a6 <__vector_13+0x3e8> case 0: OCR0B = c; break; //ROT 49c: 88 bd out 0x28, r24 ; 40 49e: 06 c0 rjmp .+12 ; 0x4ac <__vector_13+0x3ee> case 1: OCR2B = c; break; //GRÜN 4a0: f1 01 movw r30, r2 4a2: 80 83 st Z, r24 4a4: 03 c0 rjmp .+6 ; 0x4ac <__vector_13+0x3ee> case 2: OCR2A = c; break; //BLAU 4a6: e3 eb ldi r30, 0xB3 ; 179 4a8: f0 e0 ldi r31, 0x00 ; 0 4aa: 80 83 st Z, r24 if((this->fadesteps[i] > 0 && (this->virtualcolor[i] + this->fadesteps[i]) <= this->fademap[i][this->fade_zylk-1]) || (this->fadesteps[i] < 0 && (this->virtualcolor[i] + this->fadesteps[i]) >= this->fademap[i][this->fade_zylk-1])) { this->virtualcolor[i] = this->virtualcolor[i] + this->fadesteps[i]; this->sp(i, this->virtualcolor[i]); } else { this->sp(i, this->fademap[i][this->fade_zylk-1]); this->fadesteps[i] = 0; 4ac: cc 0f add r28, r28 4ae: dd 1f adc r29, r29 4b0: cc 0f add r28, r28 4b2: dd 1f adc r29, r29 4b4: c8 57 subi r28, 0x78 ; 120 4b6: de 4f sbci r29, 0xFE ; 254 4b8: 1d 8a std Y+21, r1 ; 0x15 4ba: 1e 8a std Y+22, r1 ; 0x16 4bc: 1f 8a std Y+23, r1 ; 0x17 4be: 18 8e std Y+24, r1 ; 0x18 } /*this->fadesteps[0] = (this->fademap[0][this->fade_zylk-1]-this->gp(0))/this->fademap[3][this->fade_zylk-1]; //Calc Red; this->fadesteps[1] = (this->fademap[1][this->fade_zylk-1]-OCR2B)/this->fademap[3][this->fade_zylk-1]; //Calc Green; this->fadesteps[2] = (this->fademap[2][this->fade_zylk-1]-OCR2A)/this->fademap[3][this->fade_zylk-1]; //Calc Blue;*/ } else { for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue 4c0: f2 e0 ldi r31, 0x02 ; 2 4c2: f8 15 cp r31, r8 4c4: 08 f0 brcs .+2 ; 0x4c8 <__vector_13+0x40a> 4c6: 20 cf rjmp .-448 ; 0x308 <__vector_13+0x24a> 4c8: 18 c0 rjmp .+48 ; 0x4fa <__vector_13+0x43c> void interrupt() { if(this->fade_zylk > 0) { if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; this->virtualcolor[i] = this->gp(i); 4ca: c7 01 movw r24, r14 4cc: 88 0f add r24, r24 4ce: 99 1f adc r25, r25 4d0: 88 0f add r24, r24 4d2: 99 1f adc r25, r25 4d4: 0f 2e mov r0, r31 4d6: f8 e8 ldi r31, 0x88 ; 136 4d8: ef 2e mov r14, r31 4da: f1 e0 ldi r31, 0x01 ; 1 4dc: ff 2e mov r15, r31 4de: f0 2d mov r31, r0 4e0: e8 0e add r14, r24 4e2: f9 1e adc r15, r25 4e4: 70 e0 ldi r23, 0x00 ; 0 4e6: 80 e0 ldi r24, 0x00 ; 0 4e8: 90 e0 ldi r25, 0x00 ; 0 4ea: 0e 94 e0 07 call 0xfc0 ; 0xfc0 <__floatunsisf> 4ee: f7 01 movw r30, r14 4f0: 61 a3 std Z+33, r22 ; 0x21 4f2: 72 a3 std Z+34, r23 ; 0x22 4f4: 83 a3 std Z+35, r24 ; 0x23 4f6: 94 a3 std Z+36, r25 ; 0x24 4f8: 3a ce rjmp .-908 ; 0x16e <__vector_13+0xb0> stripe.interrupt(); 4fa: ff 91 pop r31 4fc: ef 91 pop r30 4fe: df 91 pop r29 500: cf 91 pop r28 502: bf 91 pop r27 504: af 91 pop r26 506: 9f 91 pop r25 508: 8f 91 pop r24 50a: 7f 91 pop r23 50c: 6f 91 pop r22 50e: 5f 91 pop r21 510: 4f 91 pop r20 512: 3f 91 pop r19 514: 2f 91 pop r18 516: 1f 91 pop r17 518: 0f 91 pop r16 51a: ff 90 pop r15 51c: ef 90 pop r14 51e: df 90 pop r13 520: cf 90 pop r12 522: bf 90 pop r11 524: af 90 pop r10 526: 9f 90 pop r9 528: 8f 90 pop r8 52a: 7f 90 pop r7 52c: 6f 90 pop r6 52e: 5f 90 pop r5 530: 4f 90 pop r4 532: 3f 90 pop r3 534: 2f 90 pop r2 536: 0f 90 pop r0 538: 0f be out 0x3f, r0 ; 63 53a: 0f 90 pop r0 53c: 1f 90 pop r1 53e: 18 95 reti 00000540 <_ZN4UartILm9600EEC1Ev>: #include template class Uart { public: Uart() { 540: cf 93 push r28 542: df 93 push r29 sei(); 544: 78 94 sei void print(uint8_t wert) { uart_putchar(wert); } private: void init() { UBRR0L = (F_CPU / (baudrate * 16L) - 1); //Teiler wird gesetzt 546: 81 e8 ldi r24, 0x81 ; 129 548: 80 93 c4 00 sts 0x00C4, r24 UCSR0A= (0< UDR0 = c; 570: 98 83 st Y, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) 572: 9d 91 ld r25, X+ 574: 91 11 cpse r25, r1 576: f9 cf rjmp .-14 ; 0x56a <_ZN4UartILm9600EEC1Ev+0x2a> UCSR0A= (0< UDR0 = c; 582: 8d e0 ldi r24, 0x0D ; 13 584: 80 93 c6 00 sts 0x00C6, r24 UCSR0A= (0< UDR0 = c; 592: 8a e0 ldi r24, 0x0A ; 10 594: 80 93 c6 00 sts 0x00C6, r24 public: Uart() { sei(); init(); println("Uart done!"); } 598: df 91 pop r29 59a: cf 91 pop r28 59c: 08 95 ret 0000059e <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh>: this->sp(0, r); //ROT this->sp(1, g); //GRÜN this->sp(2, b); //BLAU } void setcolor(uint8_t mask) { (mask & (1<<0)) ? this->sp(2, 0xFF) : this->sp(2, 0x00); //Blau 59e: 60 ff sbrs r22, 0 5a0: 04 c0 rjmp .+8 ; 0x5aa <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0xc> } void sp(uint8_t i, uint8_t c) { switch(i) { case 0: OCR0B = c; break; //ROT case 1: OCR2B = c; break; //GRÜN case 2: OCR2A = c; break; //BLAU 5a2: 8f ef ldi r24, 0xFF ; 255 5a4: 80 93 b3 00 sts 0x00B3, r24 5a8: 02 c0 rjmp .+4 ; 0x5ae <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x10> 5aa: 10 92 b3 00 sts 0x00B3, r1 this->sp(1, g); //GRÜN this->sp(2, b); //BLAU } void setcolor(uint8_t mask) { (mask & (1<<0)) ? this->sp(2, 0xFF) : this->sp(2, 0x00); //Blau (mask & (1<<1)) ? this->sp(1, 0xFF) : this->sp(1, 0x00); //Grün 5ae: 61 ff sbrs r22, 1 5b0: 04 c0 rjmp .+8 ; 0x5ba <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x1c> this->color(0, 0, 0); } void sp(uint8_t i, uint8_t c) { switch(i) { case 0: OCR0B = c; break; //ROT case 1: OCR2B = c; break; //GRÜN 5b2: 8f ef ldi r24, 0xFF ; 255 5b4: 80 93 b4 00 sts 0x00B4, r24 5b8: 02 c0 rjmp .+4 ; 0x5be <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x20> 5ba: 10 92 b4 00 sts 0x00B4, r1 this->sp(2, b); //BLAU } void setcolor(uint8_t mask) { (mask & (1<<0)) ? this->sp(2, 0xFF) : this->sp(2, 0x00); //Blau (mask & (1<<1)) ? this->sp(1, 0xFF) : this->sp(1, 0x00); //Grün (mask & (1<<2)) ? this->sp(0, 0xFF) : this->sp(0, 0x00); //Rot 5be: 62 ff sbrs r22, 2 5c0: 03 c0 rjmp .+6 ; 0x5c8 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x2a> this->initTimer(); this->color(0, 0, 0); } void sp(uint8_t i, uint8_t c) { switch(i) { case 0: OCR0B = c; break; //ROT 5c2: 8f ef ldi r24, 0xFF ; 255 5c4: 88 bd out 0x28, r24 ; 40 5c6: 08 95 ret 5c8: 18 bc out 0x28, r1 ; 40 5ca: 08 95 ret 000005cc <_ZN4UartILm9600EE7printlnEPKc>: } else { print("0"); } } } void println(const char *text) { 5cc: cf 93 push r28 5ce: df 93 push r29 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) 5d0: fb 01 movw r30, r22 5d2: 90 81 ld r25, Z 5d4: 99 23 and r25, r25 5d6: 69 f0 breq .+26 ; 0x5f2 <_ZN4UartILm9600EE7printlnEPKc+0x26> } else { print("0"); } } } void println(const char *text) { 5d8: db 01 movw r26, r22 5da: 11 96 adiw r26, 0x01 ; 1 UCSR0A= (0< UDR0 = c; 5ea: 98 83 st Y, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) 5ec: 9d 91 ld r25, X+ 5ee: 91 11 cpse r25, r1 5f0: f9 cf rjmp .-14 ; 0x5e4 <_ZN4UartILm9600EE7printlnEPKc+0x18> UCSR0A= (0< UDR0 = c; 5fc: 8d e0 ldi r24, 0x0D ; 13 5fe: 80 93 c6 00 sts 0x00C6, r24 UCSR0A= (0< UDR0 = c; 60c: 8a e0 ldi r24, 0x0A ; 10 60e: 80 93 c6 00 sts 0x00C6, r24 } void println(const char *text) { print(text); print("\r"); print("\n"); } 612: df 91 pop r29 614: cf 91 pop r28 616: 08 95 ret 00000618
: ledclass led; compclass comp; irclass ir; int main(void) { 618: cf 93 push r28 61a: df 93 push r29 61c: 00 d0 rcall .+0 ; 0x61e 61e: 00 d0 rcall .+0 ; 0x620 620: cd b7 in r28, 0x3d ; 61 622: de b7 in r29, 0x3e ; 62 sei(); 624: 78 94 sei uint8_t doorstatus = 0; stripe.setcolor(stripe.RED); 626: 64 e0 ldi r22, 0x04 ; 4 628: 88 e8 ldi r24, 0x88 ; 136 62a: 91 e0 ldi r25, 0x01 ; 1 62c: 0e 94 cf 02 call 0x59e ; 0x59e <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Rot!"); 630: 6b e0 ldi r22, 0x0B ; 11 632: 71 e0 ldi r23, 0x01 ; 1 634: 85 eb ldi r24, 0xB5 ; 181 636: 91 e0 ldi r25, 0x01 ; 1 638: 0e 94 e6 02 call 0x5cc ; 0x5cc <_ZN4UartILm9600EE7printlnEPKc> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); 63c: 2f e7 ldi r18, 0x7F ; 127 63e: 3a e1 ldi r19, 0x1A ; 26 640: 86 e0 ldi r24, 0x06 ; 6 642: 21 50 subi r18, 0x01 ; 1 644: 30 40 sbci r19, 0x00 ; 0 646: 80 40 sbci r24, 0x00 ; 0 648: e1 f7 brne .-8 ; 0x642 64a: 00 c0 rjmp .+0 ; 0x64c 64c: 00 00 nop _delay_ms(100); stripe.setcolor(stripe.GREEN); 64e: 62 e0 ldi r22, 0x02 ; 2 650: 88 e8 ldi r24, 0x88 ; 136 652: 91 e0 ldi r25, 0x01 ; 1 654: 0e 94 cf 02 call 0x59e ; 0x59e <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Grün!"); 658: 60 e1 ldi r22, 0x10 ; 16 65a: 71 e0 ldi r23, 0x01 ; 1 65c: 85 eb ldi r24, 0xB5 ; 181 65e: 91 e0 ldi r25, 0x01 ; 1 660: 0e 94 e6 02 call 0x5cc ; 0x5cc <_ZN4UartILm9600EE7printlnEPKc> 664: 9f e7 ldi r25, 0x7F ; 127 666: aa e1 ldi r26, 0x1A ; 26 668: b6 e0 ldi r27, 0x06 ; 6 66a: 91 50 subi r25, 0x01 ; 1 66c: a0 40 sbci r26, 0x00 ; 0 66e: b0 40 sbci r27, 0x00 ; 0 670: e1 f7 brne .-8 ; 0x66a 672: 00 c0 rjmp .+0 ; 0x674 674: 00 00 nop _delay_ms(100); stripe.setcolor(stripe.BLUE); 676: 61 e0 ldi r22, 0x01 ; 1 678: 88 e8 ldi r24, 0x88 ; 136 67a: 91 e0 ldi r25, 0x01 ; 1 67c: 0e 94 cf 02 call 0x59e ; 0x59e <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Blau!"); 680: 66 e1 ldi r22, 0x16 ; 22 682: 71 e0 ldi r23, 0x01 ; 1 684: 85 eb ldi r24, 0xB5 ; 181 686: 91 e0 ldi r25, 0x01 ; 1 688: 0e 94 e6 02 call 0x5cc ; 0x5cc <_ZN4UartILm9600EE7printlnEPKc> 68c: 2f e7 ldi r18, 0x7F ; 127 68e: 3a e1 ldi r19, 0x1A ; 26 690: 86 e0 ldi r24, 0x06 ; 6 692: 21 50 subi r18, 0x01 ; 1 694: 30 40 sbci r19, 0x00 ; 0 696: 80 40 sbci r24, 0x00 ; 0 698: e1 f7 brne .-8 ; 0x692 69a: 00 c0 rjmp .+0 ; 0x69c 69c: 00 00 nop _delay_ms(100); stripe.setcolor(stripe.WHITE); 69e: 67 e0 ldi r22, 0x07 ; 7 6a0: 88 e8 ldi r24, 0x88 ; 136 6a2: 91 e0 ldi r25, 0x01 ; 1 6a4: 0e 94 cf 02 call 0x59e ; 0x59e <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Weiß, alles Initialisert! Habe Fertig und damit ab zum Normalbetrieb!"); 6a8: 6c e1 ldi r22, 0x1C ; 28 6aa: 71 e0 ldi r23, 0x01 ; 1 6ac: 85 eb ldi r24, 0xB5 ; 181 6ae: 91 e0 ldi r25, 0x01 ; 1 6b0: 0e 94 e6 02 call 0x5cc ; 0x5cc <_ZN4UartILm9600EE7printlnEPKc> 6b4: 9f e7 ldi r25, 0x7F ; 127 6b6: aa e1 ldi r26, 0x1A ; 26 6b8: b6 e0 ldi r27, 0x06 ; 6 6ba: 91 50 subi r25, 0x01 ; 1 6bc: a0 40 sbci r26, 0x00 ; 0 6be: b0 40 sbci r27, 0x00 ; 0 6c0: e1 f7 brne .-8 ; 0x6ba 6c2: 00 c0 rjmp .+0 ; 0x6c4 6c4: 00 00 nop namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } 6c6: 29 9a sbi 0x05, 1 ; 5 _delay_ms(100); led.green(1); stripe.setcolor(stripe.BLACK); 6c8: 60 e0 ldi r22, 0x00 ; 0 6ca: 88 e8 ldi r24, 0x88 ; 136 6cc: 91 e0 ldi r25, 0x01 ; 1 6ce: 0e 94 cf 02 call 0x59e ; 0x59e <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> irclass ir; int main(void) { sei(); uint8_t doorstatus = 0; 6d2: 21 2c mov r2, r1 } led.red(0); EIFR |= (1<_code; 6d4: 45 e8 ldi r20, 0x85 ; 133 6d6: 51 e0 ldi r21, 0x01 ; 1 this->_code = 255; 6d8: bb 24 eor r11, r11 6da: ba 94 dec r11 6dc: ab 2c mov r10, r11 void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 6de: 0f 2e mov r0, r31 6e0: f9 e8 ldi r31, 0x89 ; 137 6e2: ef 2e mov r14, r31 6e4: f1 e0 ldi r31, 0x01 ; 1 6e6: ff 2e mov r15, r31 6e8: f0 2d mov r31, r0 this->fademap[1][index] = green; 6ea: 0e e8 ldi r16, 0x8E ; 142 6ec: 11 e0 ldi r17, 0x01 ; 1 this->fademap[2][index] = blue; 6ee: 0f 2e mov r0, r31 6f0: f3 e9 ldi r31, 0x93 ; 147 6f2: 8f 2e mov r8, r31 6f4: f1 e0 ldi r31, 0x01 ; 1 6f6: 9f 2e mov r9, r31 6f8: f0 2d mov r31, r0 this->fademap[3][index] = time; 6fa: 0f 2e mov r0, r31 6fc: f8 e9 ldi r31, 0x98 ; 152 6fe: 6f 2e mov r6, r31 700: f1 e0 ldi r31, 0x01 ; 1 702: 7f 2e mov r7, r31 704: f0 2d mov r31, r0 706: 0f 2e mov r0, r31 708: fa e0 ldi r31, 0x0A ; 10 70a: 3f 2e mov r3, r31 70c: f0 2d mov r31, r0 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 70e: 0f 2e mov r0, r31 710: f8 e8 ldi r31, 0x88 ; 136 712: 4f 2e mov r4, r31 714: f1 e0 ldi r31, 0x01 ; 1 716: 5f 2e mov r5, r31 718: f0 2d mov r31, r0 71a: cc 24 eor r12, r12 71c: c3 94 inc r12 UCSR0A= (0<_code; 72a: da 01 movw r26, r20 72c: 8c 91 ld r24, X this->_code = 255; 72e: ac 92 st X, r10 uint8_t remotetimer = 10; while(1) { uint8_t c = ir.getCode(); switch(c) { 730: 8c 30 cpi r24, 0x0C ; 12 732: 09 f4 brne .+2 ; 0x736 734: fc c0 rjmp .+504 ; 0x92e 736: 38 f5 brcc .+78 ; 0x786 738: 85 30 cpi r24, 0x05 ; 5 73a: 09 f4 brne .+2 ; 0x73e 73c: b3 c0 rjmp .+358 ; 0x8a4 73e: 90 f4 brcc .+36 ; 0x764 740: 82 30 cpi r24, 0x02 ; 2 742: 09 f4 brne .+2 ; 0x746 744: 8c c0 rjmp .+280 ; 0x85e 746: 38 f4 brcc .+14 ; 0x756 748: 88 23 and r24, r24 74a: 09 f4 brne .+2 ; 0x74e 74c: 46 c0 rjmp .+140 ; 0x7da 74e: 81 30 cpi r24, 0x01 ; 1 750: 09 f0 breq .+2 ; 0x754 752: 56 c1 rjmp .+684 ; 0xa00 754: 63 c0 rjmp .+198 ; 0x81c 756: 83 30 cpi r24, 0x03 ; 3 758: 09 f4 brne .+2 ; 0x75c 75a: 90 c0 rjmp .+288 ; 0x87c 75c: 84 30 cpi r24, 0x04 ; 4 75e: 09 f0 breq .+2 ; 0x762 760: 4f c1 rjmp .+670 ; 0xa00 762: 95 c0 rjmp .+298 ; 0x88e 764: 88 30 cpi r24, 0x08 ; 8 766: 09 f4 brne .+2 ; 0x76a 768: be c0 rjmp .+380 ; 0x8e6 76a: 38 f4 brcc .+14 ; 0x77a 76c: 86 30 cpi r24, 0x06 ; 6 76e: 09 f4 brne .+2 ; 0x772 770: a4 c0 rjmp .+328 ; 0x8ba 772: 87 30 cpi r24, 0x07 ; 7 774: 09 f0 breq .+2 ; 0x778 776: 44 c1 rjmp .+648 ; 0xa00 778: ab c0 rjmp .+342 ; 0x8d0 77a: 8a 30 cpi r24, 0x0A ; 10 77c: 09 f4 brne .+2 ; 0x780 77e: cb c0 rjmp .+406 ; 0x916 780: 08 f0 brcs .+2 ; 0x784 782: e5 c1 rjmp .+970 ; 0xb4e 784: bc c0 rjmp .+376 ; 0x8fe 786: 82 31 cpi r24, 0x12 ; 18 788: 09 f4 brne .+2 ; 0x78c 78a: 0d c1 rjmp .+538 ; 0x9a6 78c: 90 f4 brcc .+36 ; 0x7b2 78e: 8f 30 cpi r24, 0x0F ; 15 790: 09 f4 brne .+2 ; 0x794 792: dd c1 rjmp .+954 ; 0xb4e 794: 38 f4 brcc .+14 ; 0x7a4 796: 8d 30 cpi r24, 0x0D ; 13 798: 09 f4 brne .+2 ; 0x79c 79a: d5 c0 rjmp .+426 ; 0x946 79c: 8e 30 cpi r24, 0x0E ; 14 79e: 09 f0 breq .+2 ; 0x7a2 7a0: 2f c1 rjmp .+606 ; 0xa00 7a2: dd c0 rjmp .+442 ; 0x95e 7a4: 80 31 cpi r24, 0x10 ; 16 7a6: 09 f4 brne .+2 ; 0x7aa 7a8: e6 c0 rjmp .+460 ; 0x976 7aa: 81 31 cpi r24, 0x11 ; 17 7ac: 09 f0 breq .+2 ; 0x7b0 7ae: 28 c1 rjmp .+592 ; 0xa00 7b0: ee c0 rjmp .+476 ; 0x98e 7b2: 85 31 cpi r24, 0x15 ; 21 7b4: 09 f4 brne .+2 ; 0x7b8 7b6: 0e c1 rjmp .+540 ; 0x9d4 7b8: 38 f4 brcc .+14 ; 0x7c8 7ba: 83 31 cpi r24, 0x13 ; 19 7bc: 09 f4 brne .+2 ; 0x7c0 7be: c7 c1 rjmp .+910 ; 0xb4e 7c0: 84 31 cpi r24, 0x14 ; 20 7c2: 09 f0 breq .+2 ; 0x7c6 7c4: 1d c1 rjmp .+570 ; 0xa00 7c6: fb c0 rjmp .+502 ; 0x9be 7c8: 87 31 cpi r24, 0x17 ; 23 7ca: 09 f4 brne .+2 ; 0x7ce 7cc: c0 c1 rjmp .+896 ; 0xb4e 7ce: 08 f4 brcc .+2 ; 0x7d2 7d0: 0c c1 rjmp .+536 ; 0x9ea 7d2: 8f 3f cpi r24, 0xFF ; 255 7d4: 09 f0 breq .+2 ; 0x7d8 7d6: 14 c1 rjmp .+552 ; 0xa00 7d8: ba c1 rjmp .+884 ; 0xb4e } else { OCR2A = 0; } } void higher() { if(OCR0B <= 250) { 7da: 88 b5 in r24, 0x28 ; 40 7dc: 8b 3f cpi r24, 0xFB ; 251 7de: 20 f4 brcc .+8 ; 0x7e8 OCR0B = OCR0B + 5; 7e0: 88 b5 in r24, 0x28 ; 40 7e2: 8b 5f subi r24, 0xFB ; 251 7e4: 88 bd out 0x28, r24 ; 40 7e6: 01 c0 rjmp .+2 ; 0x7ea } else { OCR0B = 0; 7e8: 18 bc out 0x28, r1 ; 40 } if(OCR2B <= 250) { 7ea: a4 eb ldi r26, 0xB4 ; 180 7ec: b0 e0 ldi r27, 0x00 ; 0 7ee: 8c 91 ld r24, X 7f0: 8b 3f cpi r24, 0xFB ; 251 7f2: 20 f4 brcc .+8 ; 0x7fc OCR2B = OCR2B + 5; 7f4: 8c 91 ld r24, X 7f6: 8b 5f subi r24, 0xFB ; 251 7f8: 8c 93 st X, r24 7fa: 03 c0 rjmp .+6 ; 0x802 } else { OCR2B = 0; 7fc: a4 eb ldi r26, 0xB4 ; 180 7fe: b0 e0 ldi r27, 0x00 ; 0 800: 1c 92 st X, r1 } if(OCR2A <= 250) { 802: a3 eb ldi r26, 0xB3 ; 179 804: b0 e0 ldi r27, 0x00 ; 0 806: 8c 91 ld r24, X 808: 8b 3f cpi r24, 0xFB ; 251 80a: 20 f4 brcc .+8 ; 0x814 OCR2A = OCR2A + 5; 80c: 8c 91 ld r24, X 80e: 8b 5f subi r24, 0xFB ; 251 810: 8c 93 st X, r24 812: 9d c1 rjmp .+826 ; 0xb4e } else { OCR2A = 0; 814: a3 eb ldi r26, 0xB3 ; 179 816: b0 e0 ldi r27, 0x00 ; 0 818: 1c 92 st X, r1 81a: 99 c1 rjmp .+818 ; 0xb4e } void on() { this->timerOn(); } void lower() { if(OCR0B >= 5) { 81c: 88 b5 in r24, 0x28 ; 40 81e: 85 30 cpi r24, 0x05 ; 5 820: 20 f0 brcs .+8 ; 0x82a OCR0B = OCR0B - 5; 822: 88 b5 in r24, 0x28 ; 40 824: 85 50 subi r24, 0x05 ; 5 826: 88 bd out 0x28, r24 ; 40 828: 01 c0 rjmp .+2 ; 0x82c } else { OCR0B = 0; 82a: 18 bc out 0x28, r1 ; 40 } if(OCR2B >= 5) { 82c: a4 eb ldi r26, 0xB4 ; 180 82e: b0 e0 ldi r27, 0x00 ; 0 830: 8c 91 ld r24, X 832: 85 30 cpi r24, 0x05 ; 5 834: 20 f0 brcs .+8 ; 0x83e OCR2B = OCR2B - 5; 836: 8c 91 ld r24, X 838: 85 50 subi r24, 0x05 ; 5 83a: 8c 93 st X, r24 83c: 03 c0 rjmp .+6 ; 0x844 } else { OCR2B = 0; 83e: a4 eb ldi r26, 0xB4 ; 180 840: b0 e0 ldi r27, 0x00 ; 0 842: 1c 92 st X, r1 } if(OCR2A >= 5) { 844: a3 eb ldi r26, 0xB3 ; 179 846: b0 e0 ldi r27, 0x00 ; 0 848: 8c 91 ld r24, X 84a: 85 30 cpi r24, 0x05 ; 5 84c: 20 f0 brcs .+8 ; 0x856 OCR2A = OCR2A - 5; 84e: 8c 91 ld r24, X 850: 85 50 subi r24, 0x05 ; 5 852: 8c 93 st X, r24 854: 7c c1 rjmp .+760 ; 0xb4e } else { OCR2A = 0; 856: a3 eb ldi r26, 0xB3 ; 179 858: b0 e0 ldi r27, 0x00 ; 0 85a: 1c 92 st X, r1 85c: 78 c1 rjmp .+752 ; 0xb4e } void timerOff() { // OC0B output: Disconnected // OC2A output: Disconnected // OC2B output: Disconnected TCCR0A &= ~(1< } void timerOn() { // OC0B output: Non-Inverted PWM // OC2A output: Non-Inverted PWM // OC2B output: Non-Inverted PWM TCCR0A |= (1< void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 88e: d7 01 movw r26, r14 890: bc 92 st X, r11 this->fademap[1][index] = green; 892: d8 01 movw r26, r16 894: 1c 92 st X, r1 this->fademap[2][index] = blue; 896: d4 01 movw r26, r8 898: 1c 92 st X, r1 this->fademap[3][index] = time; 89a: d3 01 movw r26, r6 89c: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 89e: d2 01 movw r26, r4 8a0: cc 92 st X, r12 8a2: 55 c1 rjmp .+682 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 8a4: d7 01 movw r26, r14 8a6: 1c 92 st X, r1 this->fademap[1][index] = green; 8a8: d8 01 movw r26, r16 8aa: bc 92 st X, r11 this->fademap[2][index] = blue; 8ac: d4 01 movw r26, r8 8ae: 1c 92 st X, r1 this->fademap[3][index] = time; 8b0: d3 01 movw r26, r6 8b2: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 8b4: d2 01 movw r26, r4 8b6: cc 92 st X, r12 8b8: 4a c1 rjmp .+660 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 8ba: d7 01 movw r26, r14 8bc: 1c 92 st X, r1 this->fademap[1][index] = green; 8be: d8 01 movw r26, r16 8c0: 1c 92 st X, r1 this->fademap[2][index] = blue; 8c2: d4 01 movw r26, r8 8c4: bc 92 st X, r11 this->fademap[3][index] = time; 8c6: d3 01 movw r26, r6 8c8: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 8ca: d2 01 movw r26, r4 8cc: cc 92 st X, r12 8ce: 3f c1 rjmp .+638 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 8d0: d7 01 movw r26, r14 8d2: bc 92 st X, r11 this->fademap[1][index] = green; 8d4: d8 01 movw r26, r16 8d6: bc 92 st X, r11 this->fademap[2][index] = blue; 8d8: d4 01 movw r26, r8 8da: bc 92 st X, r11 this->fademap[3][index] = time; 8dc: d3 01 movw r26, r6 8de: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 8e0: d2 01 movw r26, r4 8e2: cc 92 st X, r12 8e4: 34 c1 rjmp .+616 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 8e6: d7 01 movw r26, r14 8e8: bc 92 st X, r11 this->fademap[1][index] = green; 8ea: 20 e4 ldi r18, 0x40 ; 64 8ec: d8 01 movw r26, r16 8ee: 2c 93 st X, r18 this->fademap[2][index] = blue; 8f0: d4 01 movw r26, r8 8f2: 1c 92 st X, r1 this->fademap[3][index] = time; 8f4: d3 01 movw r26, r6 8f6: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 8f8: d2 01 movw r26, r4 8fa: cc 92 st X, r12 8fc: 28 c1 rjmp .+592 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 8fe: d7 01 movw r26, r14 900: 1c 92 st X, r1 this->fademap[1][index] = green; 902: d8 01 movw r26, r16 904: bc 92 st X, r11 this->fademap[2][index] = blue; 906: 20 e4 ldi r18, 0x40 ; 64 908: d4 01 movw r26, r8 90a: 2c 93 st X, r18 this->fademap[3][index] = time; 90c: d3 01 movw r26, r6 90e: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 910: d2 01 movw r26, r4 912: cc 92 st X, r12 914: 1c c1 rjmp .+568 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 916: 20 e4 ldi r18, 0x40 ; 64 918: d7 01 movw r26, r14 91a: 2c 93 st X, r18 this->fademap[1][index] = green; 91c: d8 01 movw r26, r16 91e: 1c 92 st X, r1 this->fademap[2][index] = blue; 920: d4 01 movw r26, r8 922: bc 92 st X, r11 this->fademap[3][index] = time; 924: d3 01 movw r26, r6 926: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 928: d2 01 movw r26, r4 92a: cc 92 st X, r12 92c: 10 c1 rjmp .+544 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 92e: d7 01 movw r26, r14 930: bc 92 st X, r11 this->fademap[1][index] = green; 932: 20 e8 ldi r18, 0x80 ; 128 934: d8 01 movw r26, r16 936: 2c 93 st X, r18 this->fademap[2][index] = blue; 938: d4 01 movw r26, r8 93a: 1c 92 st X, r1 this->fademap[3][index] = time; 93c: d3 01 movw r26, r6 93e: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 940: d2 01 movw r26, r4 942: cc 92 st X, r12 944: 04 c1 rjmp .+520 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 946: d7 01 movw r26, r14 948: 1c 92 st X, r1 this->fademap[1][index] = green; 94a: d8 01 movw r26, r16 94c: bc 92 st X, r11 this->fademap[2][index] = blue; 94e: 20 e8 ldi r18, 0x80 ; 128 950: d4 01 movw r26, r8 952: 2c 93 st X, r18 this->fademap[3][index] = time; 954: d3 01 movw r26, r6 956: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 958: d2 01 movw r26, r4 95a: cc 92 st X, r12 95c: f8 c0 rjmp .+496 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 95e: 20 e8 ldi r18, 0x80 ; 128 960: d7 01 movw r26, r14 962: 2c 93 st X, r18 this->fademap[1][index] = green; 964: d8 01 movw r26, r16 966: 1c 92 st X, r1 this->fademap[2][index] = blue; 968: d4 01 movw r26, r8 96a: bc 92 st X, r11 this->fademap[3][index] = time; 96c: d3 01 movw r26, r6 96e: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 970: d2 01 movw r26, r4 972: cc 92 st X, r12 974: ec c0 rjmp .+472 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 976: d7 01 movw r26, r14 978: bc 92 st X, r11 this->fademap[1][index] = green; 97a: 20 ec ldi r18, 0xC0 ; 192 97c: d8 01 movw r26, r16 97e: 2c 93 st X, r18 this->fademap[2][index] = blue; 980: d4 01 movw r26, r8 982: 1c 92 st X, r1 this->fademap[3][index] = time; 984: d3 01 movw r26, r6 986: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 988: d2 01 movw r26, r4 98a: cc 92 st X, r12 98c: e0 c0 rjmp .+448 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 98e: d7 01 movw r26, r14 990: 1c 92 st X, r1 this->fademap[1][index] = green; 992: d8 01 movw r26, r16 994: bc 92 st X, r11 this->fademap[2][index] = blue; 996: 20 ec ldi r18, 0xC0 ; 192 998: d4 01 movw r26, r8 99a: 2c 93 st X, r18 this->fademap[3][index] = time; 99c: d3 01 movw r26, r6 99e: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 9a0: d2 01 movw r26, r4 9a2: cc 92 st X, r12 9a4: d4 c0 rjmp .+424 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 9a6: 20 ec ldi r18, 0xC0 ; 192 9a8: d7 01 movw r26, r14 9aa: 2c 93 st X, r18 this->fademap[1][index] = green; 9ac: d8 01 movw r26, r16 9ae: 1c 92 st X, r1 this->fademap[2][index] = blue; 9b0: d4 01 movw r26, r8 9b2: bc 92 st X, r11 this->fademap[3][index] = time; 9b4: d3 01 movw r26, r6 9b6: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 9b8: d2 01 movw r26, r4 9ba: cc 92 st X, r12 9bc: c8 c0 rjmp .+400 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 9be: d7 01 movw r26, r14 9c0: bc 92 st X, r11 this->fademap[1][index] = green; 9c2: d8 01 movw r26, r16 9c4: bc 92 st X, r11 this->fademap[2][index] = blue; 9c6: d4 01 movw r26, r8 9c8: 1c 92 st X, r1 this->fademap[3][index] = time; 9ca: d3 01 movw r26, r6 9cc: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 9ce: d2 01 movw r26, r4 9d0: cc 92 st X, r12 9d2: bd c0 rjmp .+378 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 9d4: d7 01 movw r26, r14 9d6: 1c 92 st X, r1 this->fademap[1][index] = green; 9d8: d8 01 movw r26, r16 9da: bc 92 st X, r11 this->fademap[2][index] = blue; 9dc: d4 01 movw r26, r8 9de: bc 92 st X, r11 this->fademap[3][index] = time; 9e0: d3 01 movw r26, r6 9e2: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 9e4: d2 01 movw r26, r4 9e6: cc 92 st X, r12 9e8: b2 c0 rjmp .+356 ; 0xb4e } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 9ea: d7 01 movw r26, r14 9ec: bc 92 st X, r11 this->fademap[1][index] = green; 9ee: d8 01 movw r26, r16 9f0: 1c 92 st X, r1 this->fademap[2][index] = blue; 9f2: d4 01 movw r26, r8 9f4: bc 92 st X, r11 this->fademap[3][index] = time; 9f6: d3 01 movw r26, r6 9f8: 3c 92 st X, r3 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; 9fa: d2 01 movw r26, r4 9fc: cc 92 st X, r12 9fe: a7 c0 rjmp .+334 ; 0xb4e case 19: break; //Button FADE case 20: stripe.fadeto(0xFF,0xFF,0x00,remotetimer); break; //Color Red 100 % + Green 100 % case 21: stripe.fadeto(0x00,0xFF,0xFF,remotetimer); break; //Color Green 100 % + Blue 100 % case 22: stripe.fadeto(0xFF,0x00,0xFF,remotetimer); break; //Color Blue 100 % + Red 100 % case 23: break; //Button SMOOTH default: Serial.printDec(c); Serial.println(" Pressed!"); break; //Code den ich nicht kenne a00: 28 2f mov r18, r24 a02: 30 e0 ldi r19, 0x00 ; 0 a04: 3a 83 std Y+2, r19 ; 0x02 a06: 29 83 std Y+1, r18 ; 0x01 UCSR0A= (0< UDR0 = c; a0e: 80 e3 ldi r24, 0x30 ; 48 a10: a6 ec ldi r26, 0xC6 ; 198 a12: b0 e0 ldi r27, 0x00 ; 0 a14: 8c 93 st X, r24 text++; } } void printDec(uint16_t wert) { print((wert/10000)+'0'); print(((wert/1000)%10)+'0'); a16: 60 e0 ldi r22, 0x00 ; 0 a18: 70 e0 ldi r23, 0x00 ; 0 a1a: cb 01 movw r24, r22 a1c: 96 95 lsr r25 a1e: 87 95 ror r24 a20: 96 95 lsr r25 a22: 87 95 ror r24 a24: 96 95 lsr r25 a26: 87 95 ror r24 a28: 9c 01 movw r18, r24 a2a: 22 0f add r18, r18 a2c: 33 1f adc r19, r19 a2e: 88 0f add r24, r24 a30: 99 1f adc r25, r25 a32: 88 0f add r24, r24 a34: 99 1f adc r25, r25 a36: 88 0f add r24, r24 a38: 99 1f adc r25, r25 a3a: 82 0f add r24, r18 a3c: 93 1f adc r25, r19 a3e: 68 1b sub r22, r24 a40: 79 0b sbc r23, r25 a42: 60 5d subi r22, 0xD0 ; 208 UCSR0A= (0< UDR0 = c; a4a: a6 ec ldi r26, 0xC6 ; 198 a4c: b0 e0 ldi r27, 0x00 ; 0 a4e: 6c 93 st X, r22 } } void printDec(uint16_t wert) { print((wert/10000)+'0'); print(((wert/1000)%10)+'0'); print(((wert/100)%10)+'0'); a50: 29 81 ldd r18, Y+1 ; 0x01 a52: 3a 81 ldd r19, Y+2 ; 0x02 a54: 36 95 lsr r19 a56: 27 95 ror r18 a58: 36 95 lsr r19 a5a: 27 95 ror r18 a5c: ab e7 ldi r26, 0x7B ; 123 a5e: b4 e1 ldi r27, 0x14 ; 20 a60: 0e 94 aa 08 call 0x1154 ; 0x1154 <__umulhisi3> a64: 96 95 lsr r25 a66: 87 95 ror r24 a68: 80 5d subi r24, 0xD0 ; 208 UCSR0A= (0< UDR0 = c; a70: a6 ec ldi r26, 0xC6 ; 198 a72: b0 e0 ldi r27, 0x00 ; 0 a74: 8c 93 st X, r24 } void printDec(uint16_t wert) { print((wert/10000)+'0'); print(((wert/1000)%10)+'0'); print(((wert/100)%10)+'0'); print(((wert/10)%10)+'0'); a76: 29 81 ldd r18, Y+1 ; 0x01 a78: 3a 81 ldd r19, Y+2 ; 0x02 a7a: ad ec ldi r26, 0xCD ; 205 a7c: bc ec ldi r27, 0xCC ; 204 a7e: 0e 94 aa 08 call 0x1154 ; 0x1154 <__umulhisi3> a82: 96 95 lsr r25 a84: 87 95 ror r24 a86: 96 95 lsr r25 a88: 87 95 ror r24 a8a: 96 95 lsr r25 a8c: 87 95 ror r24 a8e: 9c 83 std Y+4, r25 ; 0x04 a90: 8b 83 std Y+3, r24 ; 0x03 a92: 9c 01 movw r18, r24 a94: 0e 94 aa 08 call 0x1154 ; 0x1154 <__umulhisi3> a98: 96 95 lsr r25 a9a: 87 95 ror r24 a9c: 96 95 lsr r25 a9e: 87 95 ror r24 aa0: 96 95 lsr r25 aa2: 87 95 ror r24 aa4: 9c 01 movw r18, r24 aa6: 22 0f add r18, r18 aa8: 33 1f adc r19, r19 aaa: 88 0f add r24, r24 aac: 99 1f adc r25, r25 aae: 88 0f add r24, r24 ab0: 99 1f adc r25, r25 ab2: 88 0f add r24, r24 ab4: 99 1f adc r25, r25 ab6: 82 0f add r24, r18 ab8: 93 1f adc r25, r19 aba: 2b 81 ldd r18, Y+3 ; 0x03 abc: 3c 81 ldd r19, Y+4 ; 0x04 abe: 28 1b sub r18, r24 ac0: 39 0b sbc r19, r25 ac2: c9 01 movw r24, r18 ac4: 80 5d subi r24, 0xD0 ; 208 UCSR0A= (0< UDR0 = c; acc: a6 ec ldi r26, 0xC6 ; 198 ace: b0 e0 ldi r27, 0x00 ; 0 ad0: 8c 93 st X, r24 void printDec(uint16_t wert) { print((wert/10000)+'0'); print(((wert/1000)%10)+'0'); print(((wert/100)%10)+'0'); print(((wert/10)%10)+'0'); print((wert%10)+'0'); ad2: 29 81 ldd r18, Y+1 ; 0x01 ad4: 3a 81 ldd r19, Y+2 ; 0x02 ad6: ad ec ldi r26, 0xCD ; 205 ad8: bc ec ldi r27, 0xCC ; 204 ada: 0e 94 aa 08 call 0x1154 ; 0x1154 <__umulhisi3> ade: 96 95 lsr r25 ae0: 87 95 ror r24 ae2: 96 95 lsr r25 ae4: 87 95 ror r24 ae6: 96 95 lsr r25 ae8: 87 95 ror r24 aea: 9c 01 movw r18, r24 aec: 22 0f add r18, r18 aee: 33 1f adc r19, r19 af0: 88 0f add r24, r24 af2: 99 1f adc r25, r25 af4: 88 0f add r24, r24 af6: 99 1f adc r25, r25 af8: 88 0f add r24, r24 afa: 99 1f adc r25, r25 afc: 82 0f add r24, r18 afe: 93 1f adc r25, r19 b00: 29 81 ldd r18, Y+1 ; 0x01 b02: 3a 81 ldd r19, Y+2 ; 0x02 b04: 28 1b sub r18, r24 b06: 39 0b sbc r19, r25 b08: c9 01 movw r24, r18 b0a: 80 5d subi r24, 0xD0 ; 208 UCSR0A= (0< UDR0 = c; b12: a6 ec ldi r26, 0xC6 ; 198 b14: b0 e0 ldi r27, 0x00 ; 0 b16: 8c 93 st X, r24 b18: a3 e6 ldi r26, 0x63 ; 99 b1a: b1 e0 ldi r27, 0x01 ; 1 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) b1c: 90 e2 ldi r25, 0x20 ; 32 b1e: 9d 01 movw r18, r26 UCSR0A= (0< UDR0 = c; b26: a6 ec ldi r26, 0xC6 ; 198 b28: b0 e0 ldi r27, 0x00 ; 0 b2a: 9c 93 st X, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) b2c: d9 01 movw r26, r18 b2e: 9d 91 ld r25, X+ b30: 9d 01 movw r18, r26 b32: 91 11 cpse r25, r1 b34: f5 cf rjmp .-22 ; 0xb20 UCSR0A= (0< UDR0 = c; b3c: a6 ec ldi r26, 0xC6 ; 198 b3e: b0 e0 ldi r27, 0x00 ; 0 b40: dc 92 st X, r13 UCSR0A= (0< UDR0 = c; b48: a6 ec ldi r26, 0xC6 ; 198 b4a: b0 e0 ldi r27, 0x00 ; 0 b4c: 3c 92 st X, r3 } if(comp.is_active()) { b4e: 00 b6 in r0, 0x30 ; 48 b50: 05 fe sbrs r0, 5 b52: 2a c0 rjmp .+84 ; 0xba8 if(doorstatus == 0) { b54: 21 10 cpse r2, r1 b56: 52 c0 rjmp .+164 ; 0xbfc } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; b58: d7 01 movw r26, r14 b5a: bc 92 st X, r11 this->fademap[1][index] = green; b5c: d8 01 movw r26, r16 b5e: 1c 92 st X, r1 this->fademap[2][index] = blue; b60: d4 01 movw r26, r8 b62: 1c 92 st X, r1 this->fademap[3][index] = time; b64: 24 e6 ldi r18, 0x64 ; 100 b66: d3 01 movw r26, r6 b68: 2c 93 st X, r18 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; b6a: d2 01 movw r26, r4 b6c: cc 92 st X, r12 b6e: ad e6 ldi r26, 0x6D ; 109 b70: b1 e0 ldi r27, 0x01 ; 1 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) b72: 94 e5 ldi r25, 0x54 ; 84 b74: 9d 01 movw r18, r26 UCSR0A= (0< UDR0 = c; b7c: a6 ec ldi r26, 0xC6 ; 198 b7e: b0 e0 ldi r27, 0x00 ; 0 b80: 9c 93 st X, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) b82: d9 01 movw r26, r18 b84: 9d 91 ld r25, X+ b86: 9d 01 movw r18, r26 b88: 91 11 cpse r25, r1 b8a: f5 cf rjmp .-22 ; 0xb76 UCSR0A= (0< UDR0 = c; b92: a6 ec ldi r26, 0xC6 ; 198 b94: b0 e0 ldi r27, 0x00 ; 0 b96: dc 92 st X, r13 UCSR0A= (0< UDR0 = c; b9e: a6 ec ldi r26, 0xC6 ; 198 ba0: b0 e0 ldi r27, 0x00 ; 0 ba2: 3c 92 st X, r3 doorstatus = 1; ba4: 2c 2c mov r2, r12 ba6: 2a c0 rjmp .+84 ; 0xbfc stripe.fadeto(0xFF,0x00,0x00,100); Serial.println("Tür Zu..."); } } else { if(doorstatus == 1) { ba8: b1 e0 ldi r27, 0x01 ; 1 baa: 2b 12 cpse r2, r27 bac: 27 c0 rjmp .+78 ; 0xbfc bae: a7 e7 ldi r26, 0x77 ; 119 bb0: b1 e0 ldi r27, 0x01 ; 1 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) bb2: 94 e5 ldi r25, 0x54 ; 84 bb4: 9d 01 movw r18, r26 UCSR0A= (0< UDR0 = c; bbc: a6 ec ldi r26, 0xC6 ; 198 bbe: b0 e0 ldi r27, 0x00 ; 0 bc0: 9c 93 st X, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) bc2: d9 01 movw r26, r18 bc4: 9d 91 ld r25, X+ bc6: 9d 01 movw r18, r26 bc8: 91 11 cpse r25, r1 bca: f5 cf rjmp .-22 ; 0xbb6 UCSR0A= (0< UDR0 = c; bd2: a6 ec ldi r26, 0xC6 ; 198 bd4: b0 e0 ldi r27, 0x00 ; 0 bd6: dc 92 st X, r13 UCSR0A= (0< UDR0 = c; bde: a6 ec ldi r26, 0xC6 ; 198 be0: b0 e0 ldi r27, 0x00 ; 0 be2: 3c 92 st X, r3 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; be4: d7 01 movw r26, r14 be6: 1c 92 st X, r1 this->fademap[1][index] = green; be8: d8 01 movw r26, r16 bea: bc 92 st X, r11 this->fademap[2][index] = blue; bec: d4 01 movw r26, r8 bee: 1c 92 st X, r1 this->fademap[3][index] = time; bf0: 22 e3 ldi r18, 0x32 ; 50 bf2: d3 01 movw r26, r6 bf4: 2c 93 st X, r18 OCR2A = 0; } } void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->setfadecolor(0, red, green, blue, time); this->fade_zylk = 1; bf6: d2 01 movw r26, r4 bf8: cc 92 st X, r12 doorstatus = 0; bfa: 21 2c mov r2, r1 bfc: 87 e8 ldi r24, 0x87 ; 135 bfe: 93 e1 ldi r25, 0x13 ; 19 c00: 01 97 sbiw r24, 0x01 ; 1 c02: f1 f7 brne .-4 ; 0xc00 c04: 00 c0 rjmp .+0 ; 0xc06 c06: 00 00 nop namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } c08: 29 98 cbi 0x05, 1 ; 5 c0a: 9f ed ldi r25, 0xDF ; 223 c0c: aa e0 ldi r26, 0x0A ; 10 c0e: b6 e0 ldi r27, 0x06 ; 6 c10: 91 50 subi r25, 0x01 ; 1 c12: a0 40 sbci r26, 0x00 ; 0 c14: b0 40 sbci r27, 0x00 ; 0 c16: e1 f7 brne .-8 ; 0xc10 c18: 00 c0 rjmp .+0 ; 0xc1a c1a: 00 00 nop c1c: 29 9a sbi 0x05, 1 ; 5 c1e: 85 cd rjmp .-1270 ; 0x72a 00000c20 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv>: c20: 55 9a sbi 0x0a, 5 ; 10 c22: 53 9a sbi 0x0a, 3 ; 10 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } c24: 23 9a sbi 0x04, 3 ; 4 float virtualcolor[3]; void init() { stripered::make_output(); stripegreen::make_output(); stripeblue::make_output(); this->fade_zylk = 0; c26: fc 01 movw r30, r24 c28: 10 82 st Z, r1 // Mode: Phase correct PWM top=0xFF // OC0A output: Disconnected // Timer Period: 0,06375 ms // Output Pulse(s): // OC0B Period: 0,06375 ms Width: 0 us TCCR0A=(0<initTimer(); this->color(0, 0, 0); } void sp(uint8_t i, uint8_t c) { switch(i) { case 0: OCR0B = c; break; //ROT c72: 18 bc out 0x28, r1 ; 40 case 1: OCR2B = c; break; //GRÜN c74: 10 92 b4 00 sts 0x00B4, r1 case 2: OCR2A = c; break; //BLAU c78: 10 92 b3 00 sts 0x00B3, r1 c7c: 08 95 ret 00000c7e <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv>: // Interrupt on any change on pins PCINT16-23: Off EICRA=(0< #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); c8c: ef e9 ldi r30, 0x9F ; 159 c8e: ff e0 ldi r31, 0x0F ; 15 c90: 31 97 sbiw r30, 0x01 ; 1 c92: f1 f7 brne .-4 ; 0xc90 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x12> c94: 00 c0 rjmp .+0 ; 0xc96 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x18> c96: 00 00 nop uint8_t read8bit() { uint8_t r = 0; for (uint8_t i=0;i<8;i++) { intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { c98: 4a 9b sbis 0x09, 2 ; 9 c9a: 08 c0 rjmp .+16 ; 0xcac <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x2e> r |= (1< ca2: 44 0f add r20, r20 ca4: 55 1f adc r21, r21 ca6: 0a 94 dec r0 ca8: e2 f7 brpl .-8 ; 0xca2 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x24> caa: 84 2b or r24, r20 } for(uint8_t j=0;j<50;j++) { if(!intpin::value()) { cac: 4a 99 sbic 0x09, 2 ; 9 cae: 0f c0 rjmp .+30 ; 0xcce <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x50> cb0: 08 c0 rjmp .+16 ; 0xcc2 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x44> cb2: 4a 9b sbis 0x09, 2 ; 9 cb4: 06 c0 rjmp .+12 ; 0xcc2 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x44> cb6: f5 e8 ldi r31, 0x85 ; 133 cb8: fa 95 dec r31 cba: f1 f7 brne .-4 ; 0xcb8 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x3a> cbc: 00 00 nop cbe: 91 50 subi r25, 0x01 ; 1 intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< cc2: 2f 5f subi r18, 0xFF ; 255 cc4: 3f 4f sbci r19, 0xFF ; 255 EIMSK=(0< ccc: 08 95 ret cce: 45 e8 ldi r20, 0x85 ; 133 cd0: 4a 95 dec r20 cd2: f1 f7 brne .-4 ; 0xcd0 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x52> cd4: 00 00 nop cd6: 91 e3 ldi r25, 0x31 ; 49 cd8: ec cf rjmp .-40 ; 0xcb2 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x34> 00000cda <__vector_1>: _delay_ms(99); led.green(1); } } ISR(INT0_vect) { cda: 1f 92 push r1 cdc: 0f 92 push r0 cde: 0f b6 in r0, 0x3f ; 63 ce0: 0f 92 push r0 ce2: 11 24 eor r1, r1 ce4: 2f 93 push r18 ce6: 3f 93 push r19 ce8: 4f 93 push r20 cea: 5f 93 push r21 cec: 6f 93 push r22 cee: 7f 93 push r23 cf0: 8f 93 push r24 cf2: 9f 93 push r25 cf4: af 93 push r26 cf6: bf 93 push r27 cf8: cf 93 push r28 cfa: ef 93 push r30 cfc: ff 93 push r31 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } cfe: 28 9a sbi 0x05, 0 ; 5 public: IR() { this->init(); } int read() { if(intpin::value()) { //Is High, Abbort d00: 4a 99 sbic 0x09, 2 ; 9 d02: 79 c0 rjmp .+242 ; 0xdf6 <__vector_1+0x11c> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); d04: 8f e1 ldi r24, 0x1F ; 31 d06: 9e e4 ldi r25, 0x4E ; 78 d08: 01 97 sbiw r24, 0x01 ; 1 d0a: f1 f7 brne .-4 ; 0xd08 <__vector_1+0x2e> d0c: 00 c0 rjmp .+0 ; 0xd0e <__vector_1+0x34> d0e: 00 00 nop return 254; } _delay_ms(4); //Wait 4ms if(intpin::value()) { //Is High, Abbort d10: 4a 99 sbic 0x09, 2 ; 9 d12: 71 c0 rjmp .+226 ; 0xdf6 <__vector_1+0x11c> d14: 4a 9b sbis 0x09, 2 ; 9 d16: fe cf rjmp .-4 ; 0xd14 <__vector_1+0x3a> static void wait_is_clear() { do {} while ((Port::pin() & (1< d1c: 80 e0 ldi r24, 0x00 ; 0 d1e: 90 e0 ldi r25, 0x00 ; 0 d20: 60 e0 ldi r22, 0x00 ; 0 uint8_t r = 0; for (uint8_t i=0;i<8;i++) { intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); d2a: ef e9 ldi r30, 0x9F ; 159 d2c: ff e0 ldi r31, 0x0F ; 15 d2e: 31 97 sbiw r30, 0x01 ; 1 d30: f1 f7 brne .-4 ; 0xd2e <__vector_1+0x54> d32: 00 c0 rjmp .+0 ; 0xd34 <__vector_1+0x5a> d34: 00 00 nop uint8_t read8bit() { uint8_t r = 0; for (uint8_t i=0;i<8;i++) { intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { d36: 4a 9b sbis 0x09, 2 ; 9 d38: 08 c0 rjmp .+16 ; 0xd4a <__vector_1+0x70> r |= (1< d40: 22 0f add r18, r18 d42: 33 1f adc r19, r19 d44: 0a 94 dec r0 d46: e2 f7 brpl .-8 ; 0xd40 <__vector_1+0x66> d48: 62 2b or r22, r18 } for(uint8_t j=0;j<50;j++) { if(!intpin::value()) { d4a: 4a 99 sbic 0x09, 2 ; 9 d4c: 66 c0 rjmp .+204 ; 0xe1a <__vector_1+0x140> d4e: 08 c0 rjmp .+16 ; 0xd60 <__vector_1+0x86> d50: 4a 9b sbis 0x09, 2 ; 9 d52: 06 c0 rjmp .+12 ; 0xd60 <__vector_1+0x86> d54: f5 e8 ldi r31, 0x85 ; 133 d56: fa 95 dec r31 d58: f1 f7 brne .-4 ; 0xd56 <__vector_1+0x7c> d5a: 00 00 nop d5c: 21 50 subi r18, 0x01 ; 1 intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< d60: 01 96 adiw r24, 0x01 ; 1 EIMSK=(0< } intpin::wait_is_set(); //Wait for the rest of the init. intpin::wait_is_clear(); // Init Complete, wait for first Byte //Read First Byte must be 0! if(this->read8bit() != 0) { //Is first Byte not 0 Abbort; d68: 61 11 cpse r22, r1 d6a: 39 c0 rjmp .+114 ; 0xdde <__vector_1+0x104> d6c: 80 e0 ldi r24, 0x00 ; 0 d6e: 90 e0 ldi r25, 0x00 ; 0 uint8_t r = 0; for (uint8_t i=0;i<8;i++) { intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< d78: ef e9 ldi r30, 0x9F ; 159 d7a: ff e0 ldi r31, 0x0F ; 15 d7c: 31 97 sbiw r30, 0x01 ; 1 d7e: f1 f7 brne .-4 ; 0xd7c <__vector_1+0xa2> d80: 00 c0 rjmp .+0 ; 0xd82 <__vector_1+0xa8> d82: 00 00 nop uint8_t read8bit() { uint8_t r = 0; for (uint8_t i=0;i<8;i++) { intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { d84: 4a 9b sbis 0x09, 2 ; 9 d86: 08 c0 rjmp .+16 ; 0xd98 <__vector_1+0xbe> r |= (1< d8e: 22 0f add r18, r18 d90: 33 1f adc r19, r19 d92: 0a 94 dec r0 d94: e2 f7 brpl .-8 ; 0xd8e <__vector_1+0xb4> d96: 62 2b or r22, r18 } for(uint8_t j=0;j<50;j++) { if(!intpin::value()) { d98: 4a 99 sbic 0x09, 2 ; 9 d9a: 39 c0 rjmp .+114 ; 0xe0e <__vector_1+0x134> d9c: 08 c0 rjmp .+16 ; 0xdae <__vector_1+0xd4> d9e: 4a 9b sbis 0x09, 2 ; 9 da0: 06 c0 rjmp .+12 ; 0xdae <__vector_1+0xd4> da2: f5 e8 ldi r31, 0x85 ; 133 da4: fa 95 dec r31 da6: f1 f7 brne .-4 ; 0xda4 <__vector_1+0xca> da8: 00 00 nop daa: 21 50 subi r18, 0x01 ; 1 intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< dae: 01 96 adiw r24, 0x01 ; 1 EIMSK=(0< //Read First Byte must be 0! if(this->read8bit() != 0) { //Is first Byte not 0 Abbort; return 255; } //Read Second Byte must be 239! if(this->read8bit() != 239) { db6: 6f 3e cpi r22, 0xEF ; 239 db8: 91 f4 brne .+36 ; 0xdde <__vector_1+0x104> return 255; } //Read Byte 3 and 4 (Data Byte and Checksum Byte! uint8_t a = this->read8bit(); dba: 84 e8 ldi r24, 0x84 ; 132 dbc: 91 e0 ldi r25, 0x01 ; 1 dbe: 0e 94 3f 06 call 0xc7e ; 0xc7e <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv> dc2: c8 2f mov r28, r24 uint8_t b = this->read8bit(); dc4: 84 e8 ldi r24, 0x84 ; 132 dc6: 91 e0 ldi r25, 0x01 ; 1 dc8: 0e 94 3f 06 call 0xc7e ; 0xc7e <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv> //Make Checksum Byte 3 + 4 must be 255! if(a+b != 255) { dcc: 28 2f mov r18, r24 dce: 30 e0 ldi r19, 0x00 ; 0 dd0: 2c 0f add r18, r28 dd2: 31 1d adc r19, r1 dd4: 2f 3f cpi r18, 0xFF ; 255 dd6: 31 05 cpc r19, r1 dd8: 11 f4 brne .+4 ; 0xdde <__vector_1+0x104> } //The Interrupt Function void interrupt() { led.red(1); uint8_t code = this->read(); if(code == 255) { dda: cf 3f cpi r28, 0xFF ; 255 ddc: 51 f4 brne .+20 ; 0xdf2 <__vector_1+0x118> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); dde: 2f e7 ldi r18, 0x7F ; 127 de0: 34 e8 ldi r19, 0x84 ; 132 de2: 8e e1 ldi r24, 0x1E ; 30 de4: 21 50 subi r18, 0x01 ; 1 de6: 30 40 sbci r19, 0x00 ; 0 de8: 80 40 sbci r24, 0x00 ; 0 dea: e1 f7 brne .-8 ; 0xde4 <__vector_1+0x10a> dec: 00 c0 rjmp .+0 ; 0xdee <__vector_1+0x114> dee: 00 00 nop df0: 0b c0 rjmp .+22 ; 0xe08 <__vector_1+0x12e> _delay_ms(500); } else if(code == 254) { df2: ce 3f cpi r28, 0xFE ; 254 df4: 39 f4 brne .+14 ; 0xe04 <__vector_1+0x12a> df6: e7 e8 ldi r30, 0x87 ; 135 df8: f3 e1 ldi r31, 0x13 ; 19 dfa: 31 97 sbiw r30, 0x01 ; 1 dfc: f1 f7 brne .-4 ; 0xdfa <__vector_1+0x120> dfe: 00 c0 rjmp .+0 ; 0xe00 <__vector_1+0x126> e00: 00 00 nop e02: 02 c0 rjmp .+4 ; 0xe08 <__vector_1+0x12e> _delay_ms(1); } else { this->_code = code; e04: c0 93 85 01 sts 0x0185, r28 e08: 28 98 cbi 0x05, 0 ; 5 } led.red(0); EIFR |= (1< #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); e0e: f5 e8 ldi r31, 0x85 ; 133 e10: fa 95 dec r31 e12: f1 f7 brne .-4 ; 0xe10 <__vector_1+0x136> e14: 00 00 nop e16: 21 e3 ldi r18, 0x31 ; 49 e18: c2 cf rjmp .-124 ; 0xd9e <__vector_1+0xc4> e1a: 25 e8 ldi r18, 0x85 ; 133 e1c: 2a 95 dec r18 e1e: f1 f7 brne .-4 ; 0xe1c <__vector_1+0x142> e20: 00 00 nop e22: 21 e3 ldi r18, 0x31 ; 49 e24: 95 cf rjmp .-214 ; 0xd50 <__vector_1+0x76> ir.interrupt(); } e26: ff 91 pop r31 e28: ef 91 pop r30 e2a: cf 91 pop r28 e2c: bf 91 pop r27 e2e: af 91 pop r26 e30: 9f 91 pop r25 e32: 8f 91 pop r24 e34: 7f 91 pop r23 e36: 6f 91 pop r22 e38: 5f 91 pop r21 e3a: 4f 91 pop r20 e3c: 3f 91 pop r19 e3e: 2f 91 pop r18 e40: 0f 90 pop r0 e42: 0f be out 0x3f, r0 ; 63 e44: 0f 90 pop r0 e46: 1f 90 pop r1 e48: 18 95 reti 00000e4a <_GLOBAL__sub_I_Serial>: */ #include "peripheral.h" #include uartclass Serial; e4a: 85 eb ldi r24, 0xB5 ; 181 e4c: 91 e0 ldi r25, 0x01 ; 1 e4e: 0e 94 a0 02 call 0x540 ; 0x540 <_ZN4UartILm9600EEC1Ev> template class Stripe { public: Stripe() { this->init(); e52: 88 e8 ldi r24, 0x88 ; 136 e54: 91 e0 ldi r25, 0x01 ; 1 e56: 0e 94 10 06 call 0xc20 ; 0xc20 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv> static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } e5a: 20 9a sbi 0x04, 0 ; 4 e5c: 21 9a sbi 0x04, 1 ; 4 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } e5e: 28 98 cbi 0x05, 0 ; 5 e60: 29 98 cbi 0x05, 1 ; 5 e62: 56 98 cbi 0x0a, 6 ; 10 namespace avrlib { struct portd { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } e64: 5e 98 cbi 0x0b, 6 ; 11 static uint8_t pin() { return PIND; } static void pin(uint8_t v) { PIND = v; } static uint8_t dir() { return DDRD; } static void dir(uint8_t v) { DDRD = v; } e66: 57 98 cbi 0x0a, 7 ; 10 namespace avrlib { struct portd { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } e68: 5f 98 cbi 0x0b, 7 ; 11 // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=(0<_code = 255; e82: 8f ef ldi r24, 0xFF ; 255 e84: 80 93 85 01 sts 0x0185, r24 // INT0 Mode: Falling Edge // INT1: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-14: Off // Interrupt on any change on pins PCINT16-23: Off EICRA=(0<: e96: 50 58 subi r21, 0x80 ; 128 00000e98 <__addsf3>: e98: bb 27 eor r27, r27 e9a: aa 27 eor r26, r26 e9c: 0e d0 rcall .+28 ; 0xeba <__addsf3x> e9e: 08 c1 rjmp .+528 ; 0x10b0 <__fp_round> ea0: f9 d0 rcall .+498 ; 0x1094 <__fp_pscA> ea2: 30 f0 brcs .+12 ; 0xeb0 <__addsf3+0x18> ea4: fe d0 rcall .+508 ; 0x10a2 <__fp_pscB> ea6: 20 f0 brcs .+8 ; 0xeb0 <__addsf3+0x18> ea8: 31 f4 brne .+12 ; 0xeb6 <__addsf3+0x1e> eaa: 9f 3f cpi r25, 0xFF ; 255 eac: 11 f4 brne .+4 ; 0xeb2 <__addsf3+0x1a> eae: 1e f4 brtc .+6 ; 0xeb6 <__addsf3+0x1e> eb0: ee c0 rjmp .+476 ; 0x108e <__fp_nan> eb2: 0e f4 brtc .+2 ; 0xeb6 <__addsf3+0x1e> eb4: e0 95 com r30 eb6: e7 fb bst r30, 7 eb8: e4 c0 rjmp .+456 ; 0x1082 <__fp_inf> 00000eba <__addsf3x>: eba: e9 2f mov r30, r25 ebc: 0a d1 rcall .+532 ; 0x10d2 <__fp_split3> ebe: 80 f3 brcs .-32 ; 0xea0 <__addsf3+0x8> ec0: ba 17 cp r27, r26 ec2: 62 07 cpc r22, r18 ec4: 73 07 cpc r23, r19 ec6: 84 07 cpc r24, r20 ec8: 95 07 cpc r25, r21 eca: 18 f0 brcs .+6 ; 0xed2 <__addsf3x+0x18> ecc: 71 f4 brne .+28 ; 0xeea <__addsf3x+0x30> ece: 9e f5 brtc .+102 ; 0xf36 <__addsf3x+0x7c> ed0: 22 c1 rjmp .+580 ; 0x1116 <__fp_zero> ed2: 0e f4 brtc .+2 ; 0xed6 <__addsf3x+0x1c> ed4: e0 95 com r30 ed6: 0b 2e mov r0, r27 ed8: ba 2f mov r27, r26 eda: a0 2d mov r26, r0 edc: 0b 01 movw r0, r22 ede: b9 01 movw r22, r18 ee0: 90 01 movw r18, r0 ee2: 0c 01 movw r0, r24 ee4: ca 01 movw r24, r20 ee6: a0 01 movw r20, r0 ee8: 11 24 eor r1, r1 eea: ff 27 eor r31, r31 eec: 59 1b sub r21, r25 eee: 99 f0 breq .+38 ; 0xf16 <__addsf3x+0x5c> ef0: 59 3f cpi r21, 0xF9 ; 249 ef2: 50 f4 brcc .+20 ; 0xf08 <__addsf3x+0x4e> ef4: 50 3e cpi r21, 0xE0 ; 224 ef6: 68 f1 brcs .+90 ; 0xf52 <__addsf3x+0x98> ef8: 1a 16 cp r1, r26 efa: f0 40 sbci r31, 0x00 ; 0 efc: a2 2f mov r26, r18 efe: 23 2f mov r18, r19 f00: 34 2f mov r19, r20 f02: 44 27 eor r20, r20 f04: 58 5f subi r21, 0xF8 ; 248 f06: f3 cf rjmp .-26 ; 0xeee <__addsf3x+0x34> f08: 46 95 lsr r20 f0a: 37 95 ror r19 f0c: 27 95 ror r18 f0e: a7 95 ror r26 f10: f0 40 sbci r31, 0x00 ; 0 f12: 53 95 inc r21 f14: c9 f7 brne .-14 ; 0xf08 <__addsf3x+0x4e> f16: 7e f4 brtc .+30 ; 0xf36 <__addsf3x+0x7c> f18: 1f 16 cp r1, r31 f1a: ba 0b sbc r27, r26 f1c: 62 0b sbc r22, r18 f1e: 73 0b sbc r23, r19 f20: 84 0b sbc r24, r20 f22: ba f0 brmi .+46 ; 0xf52 <__addsf3x+0x98> f24: 91 50 subi r25, 0x01 ; 1 f26: a1 f0 breq .+40 ; 0xf50 <__addsf3x+0x96> f28: ff 0f add r31, r31 f2a: bb 1f adc r27, r27 f2c: 66 1f adc r22, r22 f2e: 77 1f adc r23, r23 f30: 88 1f adc r24, r24 f32: c2 f7 brpl .-16 ; 0xf24 <__addsf3x+0x6a> f34: 0e c0 rjmp .+28 ; 0xf52 <__addsf3x+0x98> f36: ba 0f add r27, r26 f38: 62 1f adc r22, r18 f3a: 73 1f adc r23, r19 f3c: 84 1f adc r24, r20 f3e: 48 f4 brcc .+18 ; 0xf52 <__addsf3x+0x98> f40: 87 95 ror r24 f42: 77 95 ror r23 f44: 67 95 ror r22 f46: b7 95 ror r27 f48: f7 95 ror r31 f4a: 9e 3f cpi r25, 0xFE ; 254 f4c: 08 f0 brcs .+2 ; 0xf50 <__addsf3x+0x96> f4e: b3 cf rjmp .-154 ; 0xeb6 <__addsf3+0x1e> f50: 93 95 inc r25 f52: 88 0f add r24, r24 f54: 08 f0 brcs .+2 ; 0xf58 <__addsf3x+0x9e> f56: 99 27 eor r25, r25 f58: ee 0f add r30, r30 f5a: 97 95 ror r25 f5c: 87 95 ror r24 f5e: 08 95 ret 00000f60 <__cmpsf2>: f60: 6c d0 rcall .+216 ; 0x103a <__fp_cmp> f62: 08 f4 brcc .+2 ; 0xf66 <__cmpsf2+0x6> f64: 81 e0 ldi r24, 0x01 ; 1 f66: 08 95 ret 00000f68 <__fixunssfsi>: f68: bc d0 rcall .+376 ; 0x10e2 <__fp_splitA> f6a: 88 f0 brcs .+34 ; 0xf8e <__fixunssfsi+0x26> f6c: 9f 57 subi r25, 0x7F ; 127 f6e: 90 f0 brcs .+36 ; 0xf94 <__fixunssfsi+0x2c> f70: b9 2f mov r27, r25 f72: 99 27 eor r25, r25 f74: b7 51 subi r27, 0x17 ; 23 f76: a0 f0 brcs .+40 ; 0xfa0 <__fixunssfsi+0x38> f78: d1 f0 breq .+52 ; 0xfae <__fixunssfsi+0x46> f7a: 66 0f add r22, r22 f7c: 77 1f adc r23, r23 f7e: 88 1f adc r24, r24 f80: 99 1f adc r25, r25 f82: 1a f0 brmi .+6 ; 0xf8a <__fixunssfsi+0x22> f84: ba 95 dec r27 f86: c9 f7 brne .-14 ; 0xf7a <__fixunssfsi+0x12> f88: 12 c0 rjmp .+36 ; 0xfae <__fixunssfsi+0x46> f8a: b1 30 cpi r27, 0x01 ; 1 f8c: 81 f0 breq .+32 ; 0xfae <__fixunssfsi+0x46> f8e: c3 d0 rcall .+390 ; 0x1116 <__fp_zero> f90: b1 e0 ldi r27, 0x01 ; 1 f92: 08 95 ret f94: c0 c0 rjmp .+384 ; 0x1116 <__fp_zero> f96: 67 2f mov r22, r23 f98: 78 2f mov r23, r24 f9a: 88 27 eor r24, r24 f9c: b8 5f subi r27, 0xF8 ; 248 f9e: 39 f0 breq .+14 ; 0xfae <__fixunssfsi+0x46> fa0: b9 3f cpi r27, 0xF9 ; 249 fa2: cc f3 brlt .-14 ; 0xf96 <__fixunssfsi+0x2e> fa4: 86 95 lsr r24 fa6: 77 95 ror r23 fa8: 67 95 ror r22 faa: b3 95 inc r27 fac: d9 f7 brne .-10 ; 0xfa4 <__fixunssfsi+0x3c> fae: 3e f4 brtc .+14 ; 0xfbe <__fixunssfsi+0x56> fb0: 90 95 com r25 fb2: 80 95 com r24 fb4: 70 95 com r23 fb6: 61 95 neg r22 fb8: 7f 4f sbci r23, 0xFF ; 255 fba: 8f 4f sbci r24, 0xFF ; 255 fbc: 9f 4f sbci r25, 0xFF ; 255 fbe: 08 95 ret 00000fc0 <__floatunsisf>: fc0: e8 94 clt fc2: 09 c0 rjmp .+18 ; 0xfd6 <__floatsisf+0x12> 00000fc4 <__floatsisf>: fc4: 97 fb bst r25, 7 fc6: 3e f4 brtc .+14 ; 0xfd6 <__floatsisf+0x12> fc8: 90 95 com r25 fca: 80 95 com r24 fcc: 70 95 com r23 fce: 61 95 neg r22 fd0: 7f 4f sbci r23, 0xFF ; 255 fd2: 8f 4f sbci r24, 0xFF ; 255 fd4: 9f 4f sbci r25, 0xFF ; 255 fd6: 99 23 and r25, r25 fd8: a9 f0 breq .+42 ; 0x1004 <__floatsisf+0x40> fda: f9 2f mov r31, r25 fdc: 96 e9 ldi r25, 0x96 ; 150 fde: bb 27 eor r27, r27 fe0: 93 95 inc r25 fe2: f6 95 lsr r31 fe4: 87 95 ror r24 fe6: 77 95 ror r23 fe8: 67 95 ror r22 fea: b7 95 ror r27 fec: f1 11 cpse r31, r1 fee: f8 cf rjmp .-16 ; 0xfe0 <__floatsisf+0x1c> ff0: fa f4 brpl .+62 ; 0x1030 <__floatsisf+0x6c> ff2: bb 0f add r27, r27 ff4: 11 f4 brne .+4 ; 0xffa <__floatsisf+0x36> ff6: 60 ff sbrs r22, 0 ff8: 1b c0 rjmp .+54 ; 0x1030 <__floatsisf+0x6c> ffa: 6f 5f subi r22, 0xFF ; 255 ffc: 7f 4f sbci r23, 0xFF ; 255 ffe: 8f 4f sbci r24, 0xFF ; 255 1000: 9f 4f sbci r25, 0xFF ; 255 1002: 16 c0 rjmp .+44 ; 0x1030 <__floatsisf+0x6c> 1004: 88 23 and r24, r24 1006: 11 f0 breq .+4 ; 0x100c <__floatsisf+0x48> 1008: 96 e9 ldi r25, 0x96 ; 150 100a: 11 c0 rjmp .+34 ; 0x102e <__floatsisf+0x6a> 100c: 77 23 and r23, r23 100e: 21 f0 breq .+8 ; 0x1018 <__floatsisf+0x54> 1010: 9e e8 ldi r25, 0x8E ; 142 1012: 87 2f mov r24, r23 1014: 76 2f mov r23, r22 1016: 05 c0 rjmp .+10 ; 0x1022 <__floatsisf+0x5e> 1018: 66 23 and r22, r22 101a: 71 f0 breq .+28 ; 0x1038 <__floatsisf+0x74> 101c: 96 e8 ldi r25, 0x86 ; 134 101e: 86 2f mov r24, r22 1020: 70 e0 ldi r23, 0x00 ; 0 1022: 60 e0 ldi r22, 0x00 ; 0 1024: 2a f0 brmi .+10 ; 0x1030 <__floatsisf+0x6c> 1026: 9a 95 dec r25 1028: 66 0f add r22, r22 102a: 77 1f adc r23, r23 102c: 88 1f adc r24, r24 102e: da f7 brpl .-10 ; 0x1026 <__floatsisf+0x62> 1030: 88 0f add r24, r24 1032: 96 95 lsr r25 1034: 87 95 ror r24 1036: 97 f9 bld r25, 7 1038: 08 95 ret 0000103a <__fp_cmp>: 103a: 99 0f add r25, r25 103c: 00 08 sbc r0, r0 103e: 55 0f add r21, r21 1040: aa 0b sbc r26, r26 1042: e0 e8 ldi r30, 0x80 ; 128 1044: fe ef ldi r31, 0xFE ; 254 1046: 16 16 cp r1, r22 1048: 17 06 cpc r1, r23 104a: e8 07 cpc r30, r24 104c: f9 07 cpc r31, r25 104e: c0 f0 brcs .+48 ; 0x1080 <__fp_cmp+0x46> 1050: 12 16 cp r1, r18 1052: 13 06 cpc r1, r19 1054: e4 07 cpc r30, r20 1056: f5 07 cpc r31, r21 1058: 98 f0 brcs .+38 ; 0x1080 <__fp_cmp+0x46> 105a: 62 1b sub r22, r18 105c: 73 0b sbc r23, r19 105e: 84 0b sbc r24, r20 1060: 95 0b sbc r25, r21 1062: 39 f4 brne .+14 ; 0x1072 <__fp_cmp+0x38> 1064: 0a 26 eor r0, r26 1066: 61 f0 breq .+24 ; 0x1080 <__fp_cmp+0x46> 1068: 23 2b or r18, r19 106a: 24 2b or r18, r20 106c: 25 2b or r18, r21 106e: 21 f4 brne .+8 ; 0x1078 <__fp_cmp+0x3e> 1070: 08 95 ret 1072: 0a 26 eor r0, r26 1074: 09 f4 brne .+2 ; 0x1078 <__fp_cmp+0x3e> 1076: a1 40 sbci r26, 0x01 ; 1 1078: a6 95 lsr r26 107a: 8f ef ldi r24, 0xFF ; 255 107c: 81 1d adc r24, r1 107e: 81 1d adc r24, r1 1080: 08 95 ret 00001082 <__fp_inf>: 1082: 97 f9 bld r25, 7 1084: 9f 67 ori r25, 0x7F ; 127 1086: 80 e8 ldi r24, 0x80 ; 128 1088: 70 e0 ldi r23, 0x00 ; 0 108a: 60 e0 ldi r22, 0x00 ; 0 108c: 08 95 ret 0000108e <__fp_nan>: 108e: 9f ef ldi r25, 0xFF ; 255 1090: 80 ec ldi r24, 0xC0 ; 192 1092: 08 95 ret 00001094 <__fp_pscA>: 1094: 00 24 eor r0, r0 1096: 0a 94 dec r0 1098: 16 16 cp r1, r22 109a: 17 06 cpc r1, r23 109c: 18 06 cpc r1, r24 109e: 09 06 cpc r0, r25 10a0: 08 95 ret 000010a2 <__fp_pscB>: 10a2: 00 24 eor r0, r0 10a4: 0a 94 dec r0 10a6: 12 16 cp r1, r18 10a8: 13 06 cpc r1, r19 10aa: 14 06 cpc r1, r20 10ac: 05 06 cpc r0, r21 10ae: 08 95 ret 000010b0 <__fp_round>: 10b0: 09 2e mov r0, r25 10b2: 03 94 inc r0 10b4: 00 0c add r0, r0 10b6: 11 f4 brne .+4 ; 0x10bc <__fp_round+0xc> 10b8: 88 23 and r24, r24 10ba: 52 f0 brmi .+20 ; 0x10d0 <__fp_round+0x20> 10bc: bb 0f add r27, r27 10be: 40 f4 brcc .+16 ; 0x10d0 <__fp_round+0x20> 10c0: bf 2b or r27, r31 10c2: 11 f4 brne .+4 ; 0x10c8 <__fp_round+0x18> 10c4: 60 ff sbrs r22, 0 10c6: 04 c0 rjmp .+8 ; 0x10d0 <__fp_round+0x20> 10c8: 6f 5f subi r22, 0xFF ; 255 10ca: 7f 4f sbci r23, 0xFF ; 255 10cc: 8f 4f sbci r24, 0xFF ; 255 10ce: 9f 4f sbci r25, 0xFF ; 255 10d0: 08 95 ret 000010d2 <__fp_split3>: 10d2: 57 fd sbrc r21, 7 10d4: 90 58 subi r25, 0x80 ; 128 10d6: 44 0f add r20, r20 10d8: 55 1f adc r21, r21 10da: 59 f0 breq .+22 ; 0x10f2 <__fp_splitA+0x10> 10dc: 5f 3f cpi r21, 0xFF ; 255 10de: 71 f0 breq .+28 ; 0x10fc <__fp_splitA+0x1a> 10e0: 47 95 ror r20 000010e2 <__fp_splitA>: 10e2: 88 0f add r24, r24 10e4: 97 fb bst r25, 7 10e6: 99 1f adc r25, r25 10e8: 61 f0 breq .+24 ; 0x1102 <__fp_splitA+0x20> 10ea: 9f 3f cpi r25, 0xFF ; 255 10ec: 79 f0 breq .+30 ; 0x110c <__fp_splitA+0x2a> 10ee: 87 95 ror r24 10f0: 08 95 ret 10f2: 12 16 cp r1, r18 10f4: 13 06 cpc r1, r19 10f6: 14 06 cpc r1, r20 10f8: 55 1f adc r21, r21 10fa: f2 cf rjmp .-28 ; 0x10e0 <__fp_split3+0xe> 10fc: 46 95 lsr r20 10fe: f1 df rcall .-30 ; 0x10e2 <__fp_splitA> 1100: 08 c0 rjmp .+16 ; 0x1112 <__fp_splitA+0x30> 1102: 16 16 cp r1, r22 1104: 17 06 cpc r1, r23 1106: 18 06 cpc r1, r24 1108: 99 1f adc r25, r25 110a: f1 cf rjmp .-30 ; 0x10ee <__fp_splitA+0xc> 110c: 86 95 lsr r24 110e: 71 05 cpc r23, r1 1110: 61 05 cpc r22, r1 1112: 08 94 sec 1114: 08 95 ret 00001116 <__fp_zero>: 1116: e8 94 clt 00001118 <__fp_szero>: 1118: bb 27 eor r27, r27 111a: 66 27 eor r22, r22 111c: 77 27 eor r23, r23 111e: cb 01 movw r24, r22 1120: 97 f9 bld r25, 7 1122: 08 95 ret 00001124 <__gesf2>: 1124: 8a df rcall .-236 ; 0x103a <__fp_cmp> 1126: 08 f4 brcc .+2 ; 0x112a <__gesf2+0x6> 1128: 8f ef ldi r24, 0xFF ; 255 112a: 08 95 ret 0000112c <__divmodhi4>: 112c: 97 fb bst r25, 7 112e: 07 2e mov r0, r23 1130: 16 f4 brtc .+4 ; 0x1136 <__divmodhi4+0xa> 1132: 00 94 com r0 1134: 07 d0 rcall .+14 ; 0x1144 <__divmodhi4_neg1> 1136: 77 fd sbrc r23, 7 1138: 09 d0 rcall .+18 ; 0x114c <__divmodhi4_neg2> 113a: 0e 94 b6 08 call 0x116c ; 0x116c <__udivmodhi4> 113e: 07 fc sbrc r0, 7 1140: 05 d0 rcall .+10 ; 0x114c <__divmodhi4_neg2> 1142: 3e f4 brtc .+14 ; 0x1152 <__divmodhi4_exit> 00001144 <__divmodhi4_neg1>: 1144: 90 95 com r25 1146: 81 95 neg r24 1148: 9f 4f sbci r25, 0xFF ; 255 114a: 08 95 ret 0000114c <__divmodhi4_neg2>: 114c: 70 95 com r23 114e: 61 95 neg r22 1150: 7f 4f sbci r23, 0xFF ; 255 00001152 <__divmodhi4_exit>: 1152: 08 95 ret 00001154 <__umulhisi3>: 1154: a2 9f mul r26, r18 1156: b0 01 movw r22, r0 1158: b3 9f mul r27, r19 115a: c0 01 movw r24, r0 115c: a3 9f mul r26, r19 115e: 01 d0 rcall .+2 ; 0x1162 <__umulhisi3+0xe> 1160: b2 9f mul r27, r18 1162: 70 0d add r23, r0 1164: 81 1d adc r24, r1 1166: 11 24 eor r1, r1 1168: 91 1d adc r25, r1 116a: 08 95 ret 0000116c <__udivmodhi4>: 116c: aa 1b sub r26, r26 116e: bb 1b sub r27, r27 1170: 51 e1 ldi r21, 0x11 ; 17 1172: 07 c0 rjmp .+14 ; 0x1182 <__udivmodhi4_ep> 00001174 <__udivmodhi4_loop>: 1174: aa 1f adc r26, r26 1176: bb 1f adc r27, r27 1178: a6 17 cp r26, r22 117a: b7 07 cpc r27, r23 117c: 10 f0 brcs .+4 ; 0x1182 <__udivmodhi4_ep> 117e: a6 1b sub r26, r22 1180: b7 0b sbc r27, r23 00001182 <__udivmodhi4_ep>: 1182: 88 1f adc r24, r24 1184: 99 1f adc r25, r25 1186: 5a 95 dec r21 1188: a9 f7 brne .-22 ; 0x1174 <__udivmodhi4_loop> 118a: 80 95 com r24 118c: 90 95 com r25 118e: bc 01 movw r22, r24 1190: cd 01 movw r24, r26 1192: 08 95 ret 00001194 <__tablejump2__>: 1194: ee 0f add r30, r30 1196: ff 1f adc r31, r31 00001198 <__tablejump__>: 1198: 05 90 lpm r0, Z+ 119a: f4 91 lpm r31, Z 119c: e0 2d mov r30, r0 119e: 09 94 ijmp 000011a0 <_exit>: 11a0: f8 94 cli 000011a2 <__stop_program>: 11a2: ff cf rjmp .-2 ; 0x11a2 <__stop_program>