Door.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn 0 .data 00000084 00800100 0000118a 0000121e 2**0 CONTENTS, ALLOC, LOAD, DATA 1 .text 0000118a 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .bss 00000026 00800184 00800184 000012a2 2**0 ALLOC 3 .stab 00001968 00000000 00000000 000012a4 2**2 CONTENTS, READONLY, DEBUGGING 4 .stabstr 000005b5 00000000 00000000 00002c0c 2**0 CONTENTS, READONLY, DEBUGGING 5 .comment 0000002f 00000000 00000000 000031c1 2**0 CONTENTS, READONLY 6 .debug_aranges 00000060 00000000 00000000 000031f0 2**0 CONTENTS, READONLY, DEBUGGING 7 .debug_info 00003546 00000000 00000000 00003250 2**0 CONTENTS, READONLY, DEBUGGING 8 .debug_abbrev 000004bb 00000000 00000000 00006796 2**0 CONTENTS, READONLY, DEBUGGING 9 .debug_line 000005d5 00000000 00000000 00006c51 2**0 CONTENTS, READONLY, DEBUGGING 10 .debug_frame 00000190 00000000 00000000 00007228 2**2 CONTENTS, READONLY, DEBUGGING 11 .debug_str 000013b1 00000000 00000000 000073b8 2**0 CONTENTS, READONLY, DEBUGGING 12 .debug_loc 000014d0 00000000 00000000 00008769 2**0 CONTENTS, READONLY, DEBUGGING 13 .debug_ranges 000002d8 00000000 00000000 00009c39 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 <__vectors>: 0: 0c 94 35 00 jmp 0x6a ; 0x6a <__ctors_end> 4: 0c 94 60 06 jmp 0xcc0 ; 0xcc0 <__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: 18 07 cpc r17, r24 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: ea e8 ldi r30, 0x8A ; 138 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: aa 3a cpi r26, 0xAA ; 170 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 bf 08 call 0x117e ; 0x117e <__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 ff 02 call 0x5fe ; 0x5fe
b6: 0c 94 c3 08 jmp 0x1186 ; 0x1186 <_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: 8f 92 push r8 ca: 9f 92 push r9 cc: af 92 push r10 ce: bf 92 push r11 d0: cf 92 push r12 d2: df 92 push r13 d4: ef 92 push r14 d6: ff 92 push r15 d8: 2f 93 push r18 da: 3f 93 push r19 dc: 4f 93 push r20 de: 5f 93 push r21 e0: 6f 93 push r22 e2: 7f 93 push r23 e4: 8f 93 push r24 e6: 9f 93 push r25 e8: af 93 push r26 ea: bf 93 push r27 ec: cf 93 push r28 ee: df 93 push r29 f0: ef 93 push r30 f2: 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) { f4: c0 91 88 01 lds r28, 0x0188 f8: cc 23 and r28, r28 fa: 09 f4 brne .+2 ; 0xfe <__vector_13+0x40> fc: f9 c1 rjmp .+1010 ; 0x4f0 <__vector_13+0x432> if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { fe: c0 90 9d 01 lds r12, 0x019D 102: d0 90 9e 01 lds r13, 0x019E 106: e0 90 9f 01 lds r14, 0x019F 10a: f0 90 a0 01 lds r15, 0x01A0 10e: 20 e0 ldi r18, 0x00 ; 0 110: 30 e0 ldi r19, 0x00 ; 0 112: a9 01 movw r20, r18 114: c7 01 movw r24, r14 116: b6 01 movw r22, r12 118: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> 11c: 81 11 cpse r24, r1 11e: 6b c0 rjmp .+214 ; 0x1f6 <__vector_13+0x138> 120: 20 e0 ldi r18, 0x00 ; 0 122: 30 e0 ldi r19, 0x00 ; 0 124: a9 01 movw r20, r18 126: 60 91 a1 01 lds r22, 0x01A1 12a: 70 91 a2 01 lds r23, 0x01A2 12e: 80 91 a3 01 lds r24, 0x01A3 132: 90 91 a4 01 lds r25, 0x01A4 136: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> 13a: 81 11 cpse r24, r1 13c: 5c c0 rjmp .+184 ; 0x1f6 <__vector_13+0x138> 13e: 20 e0 ldi r18, 0x00 ; 0 140: 30 e0 ldi r19, 0x00 ; 0 142: a9 01 movw r20, r18 144: 60 91 a5 01 lds r22, 0x01A5 148: 70 91 a6 01 lds r23, 0x01A6 14c: 80 91 a7 01 lds r24, 0x01A7 150: 90 91 a8 01 lds r25, 0x01A8 154: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> 158: 81 11 cpse r24, r1 15a: 4d c0 rjmp .+154 ; 0x1f6 <__vector_13+0x138> this->fadesteps[0] = (this->fademap[0][this->fade_zylk-1]-OCR0B)/this->fademap[3][this->fade_zylk-1]; //Calc Red; 15c: d0 e0 ldi r29, 0x00 ; 0 15e: 28 b5 in r18, 0x28 ; 40 160: c9 57 subi r28, 0x79 ; 121 162: de 4f sbci r29, 0xFE ; 254 164: e8 88 ldd r14, Y+16 ; 0x10 166: f1 2c mov r15, r1 168: 89 81 ldd r24, Y+1 ; 0x01 16a: 90 e0 ldi r25, 0x00 ; 0 16c: 82 1b sub r24, r18 16e: 91 09 sbc r25, r1 170: 6e 2d mov r22, r14 172: 7f 2d mov r23, r15 174: 0e 94 89 08 call 0x1112 ; 0x1112 <__divmodhi4> 178: 88 27 eor r24, r24 17a: 77 fd sbrc r23, 7 17c: 80 95 com r24 17e: 98 2f mov r25, r24 180: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 184: 60 93 9d 01 sts 0x019D, r22 188: 70 93 9e 01 sts 0x019E, r23 18c: 80 93 9f 01 sts 0x019F, r24 190: 90 93 a0 01 sts 0x01A0, r25 this->fadesteps[1] = (this->fademap[1][this->fade_zylk-1]-OCR2B)/this->fademap[3][this->fade_zylk-1]; //Calc Green; 194: 20 91 b4 00 lds r18, 0x00B4 198: 8e 81 ldd r24, Y+6 ; 0x06 19a: 90 e0 ldi r25, 0x00 ; 0 19c: 82 1b sub r24, r18 19e: 91 09 sbc r25, r1 1a0: 6e 2d mov r22, r14 1a2: 7f 2d mov r23, r15 1a4: 0e 94 89 08 call 0x1112 ; 0x1112 <__divmodhi4> 1a8: 88 27 eor r24, r24 1aa: 77 fd sbrc r23, 7 1ac: 80 95 com r24 1ae: 98 2f mov r25, r24 1b0: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 1b4: 60 93 a1 01 sts 0x01A1, r22 1b8: 70 93 a2 01 sts 0x01A2, r23 1bc: 80 93 a3 01 sts 0x01A3, r24 1c0: 90 93 a4 01 sts 0x01A4, r25 this->fadesteps[2] = (this->fademap[2][this->fade_zylk-1]-OCR2A)/this->fademap[3][this->fade_zylk-1]; //Calc Blue; 1c4: 20 91 b3 00 lds r18, 0x00B3 1c8: 8b 85 ldd r24, Y+11 ; 0x0b 1ca: 90 e0 ldi r25, 0x00 ; 0 1cc: 82 1b sub r24, r18 1ce: 91 09 sbc r25, r1 1d0: 6e 2d mov r22, r14 1d2: 7f 2d mov r23, r15 1d4: 0e 94 89 08 call 0x1112 ; 0x1112 <__divmodhi4> 1d8: 88 27 eor r24, r24 1da: 77 fd sbrc r23, 7 1dc: 80 95 com r24 1de: 98 2f mov r25, r24 1e0: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 1e4: 60 93 a5 01 sts 0x01A5, r22 1e8: 70 93 a6 01 sts 0x01A6, r23 1ec: 80 93 a7 01 sts 0x01A7, r24 1f0: 90 93 a8 01 sts 0x01A8, r25 1f4: 7d c1 rjmp .+762 ; 0x4f0 <__vector_13+0x432> } else { if((this->fadesteps[0] > 0 && (OCR0B + this->fadesteps[0]) <= this->fademap[0][this->fade_zylk-1]) || (this->fadesteps[0] < 0 && (OCR0B + this->fadesteps[0]) >= this->fademap[0][this->fade_zylk-1])) { 1f6: 20 e0 ldi r18, 0x00 ; 0 1f8: 30 e0 ldi r19, 0x00 ; 0 1fa: a9 01 movw r20, r18 1fc: c7 01 movw r24, r14 1fe: b6 01 movw r22, r12 200: 0e 94 85 08 call 0x110a ; 0x110a <__gesf2> 204: 18 16 cp r1, r24 206: 0c f5 brge .+66 ; 0x24a <__vector_13+0x18c> 208: 68 b5 in r22, 0x28 ; 40 20a: 70 e0 ldi r23, 0x00 ; 0 20c: 80 e0 ldi r24, 0x00 ; 0 20e: 90 e0 ldi r25, 0x00 ; 0 210: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 214: 9b 01 movw r18, r22 216: ac 01 movw r20, r24 218: c7 01 movw r24, r14 21a: b6 01 movw r22, r12 21c: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> 220: 4b 01 movw r8, r22 222: 5c 01 movw r10, r24 224: ec 2f mov r30, r28 226: f0 e0 ldi r31, 0x00 ; 0 228: e8 57 subi r30, 0x78 ; 120 22a: fe 4f sbci r31, 0xFE ; 254 22c: 60 81 ld r22, Z 22e: 70 e0 ldi r23, 0x00 ; 0 230: 80 e0 ldi r24, 0x00 ; 0 232: 90 e0 ldi r25, 0x00 ; 0 234: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 238: 9b 01 movw r18, r22 23a: ac 01 movw r20, r24 23c: c5 01 movw r24, r10 23e: b4 01 movw r22, r8 240: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> 244: 18 16 cp r1, r24 246: 0c f0 brlt .+2 ; 0x24a <__vector_13+0x18c> 248: fe c0 rjmp .+508 ; 0x446 <__vector_13+0x388> 24a: 20 e0 ldi r18, 0x00 ; 0 24c: 30 e0 ldi r19, 0x00 ; 0 24e: a9 01 movw r20, r18 250: c7 01 movw r24, r14 252: b6 01 movw r22, r12 254: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> 258: 88 23 and r24, r24 25a: 0c f0 brlt .+2 ; 0x25e <__vector_13+0x1a0> 25c: e6 c0 rjmp .+460 ; 0x42a <__vector_13+0x36c> 25e: 68 b5 in r22, 0x28 ; 40 260: 70 e0 ldi r23, 0x00 ; 0 262: 80 e0 ldi r24, 0x00 ; 0 264: 90 e0 ldi r25, 0x00 ; 0 266: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 26a: 9b 01 movw r18, r22 26c: ac 01 movw r20, r24 26e: c7 01 movw r24, r14 270: b6 01 movw r22, r12 272: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> 276: 4b 01 movw r8, r22 278: 5c 01 movw r10, r24 27a: ec 2f mov r30, r28 27c: f0 e0 ldi r31, 0x00 ; 0 27e: e8 57 subi r30, 0x78 ; 120 280: fe 4f sbci r31, 0xFE ; 254 282: 60 81 ld r22, Z 284: 70 e0 ldi r23, 0x00 ; 0 286: 80 e0 ldi r24, 0x00 ; 0 288: 90 e0 ldi r25, 0x00 ; 0 28a: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 28e: 9b 01 movw r18, r22 290: ac 01 movw r20, r24 292: c5 01 movw r24, r10 294: b4 01 movw r22, r8 296: 0e 94 85 08 call 0x110a ; 0x110a <__gesf2> 29a: 88 23 and r24, r24 29c: 0c f0 brlt .+2 ; 0x2a0 <__vector_13+0x1e2> 29e: d3 c0 rjmp .+422 ; 0x446 <__vector_13+0x388> 2a0: c4 c0 rjmp .+392 ; 0x42a <__vector_13+0x36c> OCR0B = OCR0B + this->fadesteps[0]; } else { OCR0B = this->fademap[0][this->fade_zylk-1]; this->fadesteps[0] = 0; } if((this->fadesteps[1] > 0 && (OCR2B + this->fadesteps[1]) <= this->fademap[1][this->fade_zylk-1]) || (this->fadesteps[1] < 0 && (OCR2B + this->fadesteps[1]) >= this->fademap[1][this->fade_zylk-1])) { 2a2: c0 90 a1 01 lds r12, 0x01A1 2a6: d0 90 a2 01 lds r13, 0x01A2 2aa: e0 90 a3 01 lds r14, 0x01A3 2ae: f0 90 a4 01 lds r15, 0x01A4 2b2: 20 e0 ldi r18, 0x00 ; 0 2b4: 30 e0 ldi r19, 0x00 ; 0 2b6: a9 01 movw r20, r18 2b8: c7 01 movw r24, r14 2ba: b6 01 movw r22, r12 2bc: 0e 94 85 08 call 0x110a ; 0x110a <__gesf2> 2c0: 18 16 cp r1, r24 2c2: 1c f5 brge .+70 ; 0x30a <__vector_13+0x24c> 2c4: 60 91 b4 00 lds r22, 0x00B4 2c8: 70 e0 ldi r23, 0x00 ; 0 2ca: 80 e0 ldi r24, 0x00 ; 0 2cc: 90 e0 ldi r25, 0x00 ; 0 2ce: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 2d2: 9b 01 movw r18, r22 2d4: ac 01 movw r20, r24 2d6: c7 01 movw r24, r14 2d8: b6 01 movw r22, r12 2da: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> 2de: 4b 01 movw r8, r22 2e0: 5c 01 movw r10, r24 2e2: e0 91 88 01 lds r30, 0x0188 2e6: f0 e0 ldi r31, 0x00 ; 0 2e8: e8 57 subi r30, 0x78 ; 120 2ea: fe 4f sbci r31, 0xFE ; 254 2ec: 65 81 ldd r22, Z+5 ; 0x05 2ee: 70 e0 ldi r23, 0x00 ; 0 2f0: 80 e0 ldi r24, 0x00 ; 0 2f2: 90 e0 ldi r25, 0x00 ; 0 2f4: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 2f8: 9b 01 movw r18, r22 2fa: ac 01 movw r20, r24 2fc: c5 01 movw r24, r10 2fe: b4 01 movw r22, r8 300: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> 304: 18 16 cp r1, r24 306: 0c f0 brlt .+2 ; 0x30a <__vector_13+0x24c> 308: ae c0 rjmp .+348 ; 0x466 <__vector_13+0x3a8> 30a: 20 e0 ldi r18, 0x00 ; 0 30c: 30 e0 ldi r19, 0x00 ; 0 30e: a9 01 movw r20, r18 310: c7 01 movw r24, r14 312: b6 01 movw r22, r12 314: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> 318: 88 23 and r24, r24 31a: 0c f0 brlt .+2 ; 0x31e <__vector_13+0x260> 31c: b6 c0 rjmp .+364 ; 0x48a <__vector_13+0x3cc> 31e: 60 91 b4 00 lds r22, 0x00B4 322: 70 e0 ldi r23, 0x00 ; 0 324: 80 e0 ldi r24, 0x00 ; 0 326: 90 e0 ldi r25, 0x00 ; 0 328: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 32c: 9b 01 movw r18, r22 32e: ac 01 movw r20, r24 330: c7 01 movw r24, r14 332: b6 01 movw r22, r12 334: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> 338: 4b 01 movw r8, r22 33a: 5c 01 movw r10, r24 33c: e0 91 88 01 lds r30, 0x0188 340: f0 e0 ldi r31, 0x00 ; 0 342: e8 57 subi r30, 0x78 ; 120 344: fe 4f sbci r31, 0xFE ; 254 346: 65 81 ldd r22, Z+5 ; 0x05 348: 70 e0 ldi r23, 0x00 ; 0 34a: 80 e0 ldi r24, 0x00 ; 0 34c: 90 e0 ldi r25, 0x00 ; 0 34e: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 352: 9b 01 movw r18, r22 354: ac 01 movw r20, r24 356: c5 01 movw r24, r10 358: b4 01 movw r22, r8 35a: 0e 94 85 08 call 0x110a ; 0x110a <__gesf2> 35e: 88 23 and r24, r24 360: 0c f0 brlt .+2 ; 0x364 <__vector_13+0x2a6> 362: 81 c0 rjmp .+258 ; 0x466 <__vector_13+0x3a8> 364: 92 c0 rjmp .+292 ; 0x48a <__vector_13+0x3cc> OCR2B = OCR2B + this->fadesteps[1]; } else { OCR2B = this->fademap[1][this->fade_zylk-1]; this->fadesteps[1] = 0; } if((this->fadesteps[2] > 0 && (OCR2A + this->fadesteps[2]) <= this->fademap[2][this->fade_zylk-1]) || (this->fadesteps[2] < 0 && (OCR2A + this->fadesteps[2]) >= this->fademap[2][this->fade_zylk-1])) { 366: c0 90 a5 01 lds r12, 0x01A5 36a: d0 90 a6 01 lds r13, 0x01A6 36e: e0 90 a7 01 lds r14, 0x01A7 372: f0 90 a8 01 lds r15, 0x01A8 376: 20 e0 ldi r18, 0x00 ; 0 378: 30 e0 ldi r19, 0x00 ; 0 37a: a9 01 movw r20, r18 37c: c7 01 movw r24, r14 37e: b6 01 movw r22, r12 380: 0e 94 85 08 call 0x110a ; 0x110a <__gesf2> 384: 18 16 cp r1, r24 386: 1c f5 brge .+70 ; 0x3ce <__vector_13+0x310> 388: 60 91 b3 00 lds r22, 0x00B3 38c: 70 e0 ldi r23, 0x00 ; 0 38e: 80 e0 ldi r24, 0x00 ; 0 390: 90 e0 ldi r25, 0x00 ; 0 392: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 396: 9b 01 movw r18, r22 398: ac 01 movw r20, r24 39a: c7 01 movw r24, r14 39c: b6 01 movw r22, r12 39e: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> 3a2: 4b 01 movw r8, r22 3a4: 5c 01 movw r10, r24 3a6: e0 91 88 01 lds r30, 0x0188 3aa: f0 e0 ldi r31, 0x00 ; 0 3ac: e8 57 subi r30, 0x78 ; 120 3ae: fe 4f sbci r31, 0xFE ; 254 3b0: 62 85 ldd r22, Z+10 ; 0x0a 3b2: 70 e0 ldi r23, 0x00 ; 0 3b4: 80 e0 ldi r24, 0x00 ; 0 3b6: 90 e0 ldi r25, 0x00 ; 0 3b8: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 3bc: 9b 01 movw r18, r22 3be: ac 01 movw r20, r24 3c0: c5 01 movw r24, r10 3c2: b4 01 movw r22, r8 3c4: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> 3c8: 18 16 cp r1, r24 3ca: 0c f0 brlt .+2 ; 0x3ce <__vector_13+0x310> 3cc: 6f c0 rjmp .+222 ; 0x4ac <__vector_13+0x3ee> 3ce: 20 e0 ldi r18, 0x00 ; 0 3d0: 30 e0 ldi r19, 0x00 ; 0 3d2: a9 01 movw r20, r18 3d4: c7 01 movw r24, r14 3d6: b6 01 movw r22, r12 3d8: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> 3dc: 88 23 and r24, r24 3de: 0c f0 brlt .+2 ; 0x3e2 <__vector_13+0x324> 3e0: 77 c0 rjmp .+238 ; 0x4d0 <__vector_13+0x412> 3e2: 60 91 b3 00 lds r22, 0x00B3 3e6: 70 e0 ldi r23, 0x00 ; 0 3e8: 80 e0 ldi r24, 0x00 ; 0 3ea: 90 e0 ldi r25, 0x00 ; 0 3ec: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 3f0: 9b 01 movw r18, r22 3f2: ac 01 movw r20, r24 3f4: c7 01 movw r24, r14 3f6: b6 01 movw r22, r12 3f8: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> 3fc: 4b 01 movw r8, r22 3fe: 5c 01 movw r10, r24 400: e0 91 88 01 lds r30, 0x0188 404: f0 e0 ldi r31, 0x00 ; 0 406: e8 57 subi r30, 0x78 ; 120 408: fe 4f sbci r31, 0xFE ; 254 40a: 62 85 ldd r22, Z+10 ; 0x0a 40c: 70 e0 ldi r23, 0x00 ; 0 40e: 80 e0 ldi r24, 0x00 ; 0 410: 90 e0 ldi r25, 0x00 ; 0 412: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 416: 9b 01 movw r18, r22 418: ac 01 movw r20, r24 41a: c5 01 movw r24, r10 41c: b4 01 movw r22, r8 41e: 0e 94 85 08 call 0x110a ; 0x110a <__gesf2> 422: 88 23 and r24, r24 424: 0c f0 brlt .+2 ; 0x428 <__vector_13+0x36a> 426: 42 c0 rjmp .+132 ; 0x4ac <__vector_13+0x3ee> 428: 53 c0 rjmp .+166 ; 0x4d0 <__vector_13+0x412> this->fadesteps[2] = (this->fademap[2][this->fade_zylk-1]-OCR2A)/this->fademap[3][this->fade_zylk-1]; //Calc Blue; } else { if((this->fadesteps[0] > 0 && (OCR0B + this->fadesteps[0]) <= this->fademap[0][this->fade_zylk-1]) || (this->fadesteps[0] < 0 && (OCR0B + this->fadesteps[0]) >= this->fademap[0][this->fade_zylk-1])) { OCR0B = OCR0B + this->fadesteps[0]; } else { OCR0B = this->fademap[0][this->fade_zylk-1]; 42a: d0 e0 ldi r29, 0x00 ; 0 42c: c8 57 subi r28, 0x78 ; 120 42e: de 4f sbci r29, 0xFE ; 254 430: 88 81 ld r24, Y 432: 88 bd out 0x28, r24 ; 40 this->fadesteps[0] = 0; 434: 10 92 9d 01 sts 0x019D, r1 438: 10 92 9e 01 sts 0x019E, r1 43c: 10 92 9f 01 sts 0x019F, r1 440: 10 92 a0 01 sts 0x01A0, r1 444: 2e cf rjmp .-420 ; 0x2a2 <__vector_13+0x1e4> this->fadesteps[0] = (this->fademap[0][this->fade_zylk-1]-OCR0B)/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 { if((this->fadesteps[0] > 0 && (OCR0B + this->fadesteps[0]) <= this->fademap[0][this->fade_zylk-1]) || (this->fadesteps[0] < 0 && (OCR0B + this->fadesteps[0]) >= this->fademap[0][this->fade_zylk-1])) { OCR0B = OCR0B + this->fadesteps[0]; 446: 68 b5 in r22, 0x28 ; 40 448: 70 e0 ldi r23, 0x00 ; 0 44a: 80 e0 ldi r24, 0x00 ; 0 44c: 90 e0 ldi r25, 0x00 ; 0 44e: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 452: 9b 01 movw r18, r22 454: ac 01 movw r20, r24 456: c7 01 movw r24, r14 458: b6 01 movw r22, r12 45a: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> 45e: 0e 94 a7 07 call 0xf4e ; 0xf4e <__fixunssfsi> 462: 68 bd out 0x28, r22 ; 40 464: 1e cf rjmp .-452 ; 0x2a2 <__vector_13+0x1e4> } else { OCR0B = this->fademap[0][this->fade_zylk-1]; this->fadesteps[0] = 0; } if((this->fadesteps[1] > 0 && (OCR2B + this->fadesteps[1]) <= this->fademap[1][this->fade_zylk-1]) || (this->fadesteps[1] < 0 && (OCR2B + this->fadesteps[1]) >= this->fademap[1][this->fade_zylk-1])) { OCR2B = OCR2B + this->fadesteps[1]; 466: c4 eb ldi r28, 0xB4 ; 180 468: d0 e0 ldi r29, 0x00 ; 0 46a: 68 81 ld r22, Y 46c: 70 e0 ldi r23, 0x00 ; 0 46e: 80 e0 ldi r24, 0x00 ; 0 470: 90 e0 ldi r25, 0x00 ; 0 472: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 476: 9b 01 movw r18, r22 478: ac 01 movw r20, r24 47a: c7 01 movw r24, r14 47c: b6 01 movw r22, r12 47e: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> 482: 0e 94 a7 07 call 0xf4e ; 0xf4e <__fixunssfsi> 486: 68 83 st Y, r22 488: 6e cf rjmp .-292 ; 0x366 <__vector_13+0x2a8> } else { OCR2B = this->fademap[1][this->fade_zylk-1]; 48a: e0 91 88 01 lds r30, 0x0188 48e: f0 e0 ldi r31, 0x00 ; 0 490: e8 57 subi r30, 0x78 ; 120 492: fe 4f sbci r31, 0xFE ; 254 494: 85 81 ldd r24, Z+5 ; 0x05 496: 80 93 b4 00 sts 0x00B4, r24 this->fadesteps[1] = 0; 49a: 10 92 a1 01 sts 0x01A1, r1 49e: 10 92 a2 01 sts 0x01A2, r1 4a2: 10 92 a3 01 sts 0x01A3, r1 4a6: 10 92 a4 01 sts 0x01A4, r1 4aa: 5d cf rjmp .-326 ; 0x366 <__vector_13+0x2a8> } if((this->fadesteps[2] > 0 && (OCR2A + this->fadesteps[2]) <= this->fademap[2][this->fade_zylk-1]) || (this->fadesteps[2] < 0 && (OCR2A + this->fadesteps[2]) >= this->fademap[2][this->fade_zylk-1])) { OCR2A = OCR2A + this->fadesteps[2]; 4ac: c3 eb ldi r28, 0xB3 ; 179 4ae: d0 e0 ldi r29, 0x00 ; 0 4b0: 68 81 ld r22, Y 4b2: 70 e0 ldi r23, 0x00 ; 0 4b4: 80 e0 ldi r24, 0x00 ; 0 4b6: 90 e0 ldi r25, 0x00 ; 0 4b8: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> 4bc: 9b 01 movw r18, r22 4be: ac 01 movw r20, r24 4c0: c7 01 movw r24, r14 4c2: b6 01 movw r22, r12 4c4: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> 4c8: 0e 94 a7 07 call 0xf4e ; 0xf4e <__fixunssfsi> 4cc: 68 83 st Y, r22 4ce: 10 c0 rjmp .+32 ; 0x4f0 <__vector_13+0x432> } else { OCR2A = this->fademap[2][this->fade_zylk-1]; 4d0: e0 91 88 01 lds r30, 0x0188 4d4: f0 e0 ldi r31, 0x00 ; 0 4d6: e8 57 subi r30, 0x78 ; 120 4d8: fe 4f sbci r31, 0xFE ; 254 4da: 82 85 ldd r24, Z+10 ; 0x0a 4dc: 80 93 b3 00 sts 0x00B3, r24 this->fadesteps[2] = 0; 4e0: 10 92 a5 01 sts 0x01A5, r1 4e4: 10 92 a6 01 sts 0x01A6, r1 4e8: 10 92 a7 01 sts 0x01A7, r1 4ec: 10 92 a8 01 sts 0x01A8, r1 stripe.interrupt(); } 4f0: ff 91 pop r31 4f2: ef 91 pop r30 4f4: df 91 pop r29 4f6: cf 91 pop r28 4f8: bf 91 pop r27 4fa: af 91 pop r26 4fc: 9f 91 pop r25 4fe: 8f 91 pop r24 500: 7f 91 pop r23 502: 6f 91 pop r22 504: 5f 91 pop r21 506: 4f 91 pop r20 508: 3f 91 pop r19 50a: 2f 91 pop r18 50c: ff 90 pop r15 50e: ef 90 pop r14 510: df 90 pop r13 512: cf 90 pop r12 514: bf 90 pop r11 516: af 90 pop r10 518: 9f 90 pop r9 51a: 8f 90 pop r8 51c: 0f 90 pop r0 51e: 0f be out 0x3f, r0 ; 63 520: 0f 90 pop r0 522: 1f 90 pop r1 524: 18 95 reti 00000526 <_ZN4UartILm9600EEC1Ev>: #include template class Uart { public: Uart() { 526: cf 93 push r28 528: df 93 push r29 sei(); 52a: 78 94 sei void print(uint8_t wert) { uart_putchar(wert); } private: void init() { UBRR0L = (F_CPU / (baudrate * 16L) - 1); //Teiler wird gesetzt 52c: 81 e8 ldi r24, 0x81 ; 129 52e: 80 93 c4 00 sts 0x00C4, r24 UCSR0A= (0< UDR0 = c; 556: 98 83 st Y, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) 558: 9d 91 ld r25, X+ 55a: 91 11 cpse r25, r1 55c: f9 cf rjmp .-14 ; 0x550 <_ZN4UartILm9600EEC1Ev+0x2a> UCSR0A= (0< UDR0 = c; 568: 8d e0 ldi r24, 0x0D ; 13 56a: 80 93 c6 00 sts 0x00C6, r24 UCSR0A= (0< UDR0 = c; 578: 8a e0 ldi r24, 0x0A ; 10 57a: 80 93 c6 00 sts 0x00C6, r24 public: Uart() { sei(); init(); println("Uart done!"); } 57e: df 91 pop r29 580: cf 91 pop r28 582: 08 95 ret 00000584 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh>: OCR0B=r; //ROT OCR2B=g; //GRÜN OCR2A=b; //BLAU } void setcolor(uint8_t mask) { (mask & (1<<0)) ? OCR2A=0xFF : OCR2A=0x00; 584: 60 ff sbrs r22, 0 586: 04 c0 rjmp .+8 ; 0x590 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0xc> 588: 8f ef ldi r24, 0xFF ; 255 58a: 80 93 b3 00 sts 0x00B3, r24 58e: 02 c0 rjmp .+4 ; 0x594 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x10> 590: 10 92 b3 00 sts 0x00B3, r1 (mask & (1<<1)) ? OCR2B=0xFF : OCR2B=0x00; 594: 61 ff sbrs r22, 1 596: 04 c0 rjmp .+8 ; 0x5a0 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x1c> 598: 8f ef ldi r24, 0xFF ; 255 59a: 80 93 b4 00 sts 0x00B4, r24 59e: 02 c0 rjmp .+4 ; 0x5a4 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x20> 5a0: 10 92 b4 00 sts 0x00B4, r1 (mask & (1<<2)) ? OCR0B=0xFF : OCR0B=0x00; 5a4: 62 ff sbrs r22, 2 5a6: 03 c0 rjmp .+6 ; 0x5ae <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x2a> 5a8: 8f ef ldi r24, 0xFF ; 255 5aa: 88 bd out 0x28, r24 ; 40 5ac: 08 95 ret 5ae: 18 bc out 0x28, r1 ; 40 5b0: 08 95 ret 000005b2 <_ZN4UartILm9600EE7printlnEPKc>: } else { print("0"); } } } void println(const char *text) { 5b2: cf 93 push r28 5b4: df 93 push r29 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) 5b6: fb 01 movw r30, r22 5b8: 90 81 ld r25, Z 5ba: 99 23 and r25, r25 5bc: 69 f0 breq .+26 ; 0x5d8 <_ZN4UartILm9600EE7printlnEPKc+0x26> } else { print("0"); } } } void println(const char *text) { 5be: db 01 movw r26, r22 5c0: 11 96 adiw r26, 0x01 ; 1 UCSR0A= (0< UDR0 = c; 5d0: 98 83 st Y, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) 5d2: 9d 91 ld r25, X+ 5d4: 91 11 cpse r25, r1 5d6: f9 cf rjmp .-14 ; 0x5ca <_ZN4UartILm9600EE7printlnEPKc+0x18> UCSR0A= (0< UDR0 = c; 5e2: 8d e0 ldi r24, 0x0D ; 13 5e4: 80 93 c6 00 sts 0x00C6, r24 UCSR0A= (0< UDR0 = c; 5f2: 8a e0 ldi r24, 0x0A ; 10 5f4: 80 93 c6 00 sts 0x00C6, r24 } void println(const char *text) { print(text); print("\r"); print("\n"); } 5f8: df 91 pop r29 5fa: cf 91 pop r28 5fc: 08 95 ret 000005fe
: ledclass led; compclass comp; irclass ir; int main(void) { 5fe: cf 93 push r28 600: df 93 push r29 602: 00 d0 rcall .+0 ; 0x604 604: 00 d0 rcall .+0 ; 0x606 606: cd b7 in r28, 0x3d ; 61 608: de b7 in r29, 0x3e ; 62 sei(); 60a: 78 94 sei uint8_t doorstatus = 0; stripe.setcolor(stripe.RED); 60c: 64 e0 ldi r22, 0x04 ; 4 60e: 88 e8 ldi r24, 0x88 ; 136 610: 91 e0 ldi r25, 0x01 ; 1 612: 0e 94 c2 02 call 0x584 ; 0x584 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Rot!"); 616: 6b e0 ldi r22, 0x0B ; 11 618: 71 e0 ldi r23, 0x01 ; 1 61a: 89 ea ldi r24, 0xA9 ; 169 61c: 91 e0 ldi r25, 0x01 ; 1 61e: 0e 94 d9 02 call 0x5b2 ; 0x5b2 <_ZN4UartILm9600EE7printlnEPKc> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); 622: 2f e7 ldi r18, 0x7F ; 127 624: 3a e1 ldi r19, 0x1A ; 26 626: 86 e0 ldi r24, 0x06 ; 6 628: 21 50 subi r18, 0x01 ; 1 62a: 30 40 sbci r19, 0x00 ; 0 62c: 80 40 sbci r24, 0x00 ; 0 62e: e1 f7 brne .-8 ; 0x628 630: 00 c0 rjmp .+0 ; 0x632 632: 00 00 nop _delay_ms(100); stripe.setcolor(stripe.GREEN); 634: 62 e0 ldi r22, 0x02 ; 2 636: 88 e8 ldi r24, 0x88 ; 136 638: 91 e0 ldi r25, 0x01 ; 1 63a: 0e 94 c2 02 call 0x584 ; 0x584 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Grün!"); 63e: 60 e1 ldi r22, 0x10 ; 16 640: 71 e0 ldi r23, 0x01 ; 1 642: 89 ea ldi r24, 0xA9 ; 169 644: 91 e0 ldi r25, 0x01 ; 1 646: 0e 94 d9 02 call 0x5b2 ; 0x5b2 <_ZN4UartILm9600EE7printlnEPKc> 64a: 9f e7 ldi r25, 0x7F ; 127 64c: aa e1 ldi r26, 0x1A ; 26 64e: b6 e0 ldi r27, 0x06 ; 6 650: 91 50 subi r25, 0x01 ; 1 652: a0 40 sbci r26, 0x00 ; 0 654: b0 40 sbci r27, 0x00 ; 0 656: e1 f7 brne .-8 ; 0x650 658: 00 c0 rjmp .+0 ; 0x65a 65a: 00 00 nop _delay_ms(100); stripe.setcolor(stripe.BLUE); 65c: 61 e0 ldi r22, 0x01 ; 1 65e: 88 e8 ldi r24, 0x88 ; 136 660: 91 e0 ldi r25, 0x01 ; 1 662: 0e 94 c2 02 call 0x584 ; 0x584 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Blau!"); 666: 66 e1 ldi r22, 0x16 ; 22 668: 71 e0 ldi r23, 0x01 ; 1 66a: 89 ea ldi r24, 0xA9 ; 169 66c: 91 e0 ldi r25, 0x01 ; 1 66e: 0e 94 d9 02 call 0x5b2 ; 0x5b2 <_ZN4UartILm9600EE7printlnEPKc> 672: 2f e7 ldi r18, 0x7F ; 127 674: 3a e1 ldi r19, 0x1A ; 26 676: 86 e0 ldi r24, 0x06 ; 6 678: 21 50 subi r18, 0x01 ; 1 67a: 30 40 sbci r19, 0x00 ; 0 67c: 80 40 sbci r24, 0x00 ; 0 67e: e1 f7 brne .-8 ; 0x678 680: 00 c0 rjmp .+0 ; 0x682 682: 00 00 nop _delay_ms(100); stripe.setcolor(stripe.WHITE); 684: 67 e0 ldi r22, 0x07 ; 7 686: 88 e8 ldi r24, 0x88 ; 136 688: 91 e0 ldi r25, 0x01 ; 1 68a: 0e 94 c2 02 call 0x584 ; 0x584 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Weiß, alles Initialisert! Habe Fertig und damit ab zum Normalbetrieb!"); 68e: 6c e1 ldi r22, 0x1C ; 28 690: 71 e0 ldi r23, 0x01 ; 1 692: 89 ea ldi r24, 0xA9 ; 169 694: 91 e0 ldi r25, 0x01 ; 1 696: 0e 94 d9 02 call 0x5b2 ; 0x5b2 <_ZN4UartILm9600EE7printlnEPKc> 69a: 9f e7 ldi r25, 0x7F ; 127 69c: aa e1 ldi r26, 0x1A ; 26 69e: b6 e0 ldi r27, 0x06 ; 6 6a0: 91 50 subi r25, 0x01 ; 1 6a2: a0 40 sbci r26, 0x00 ; 0 6a4: b0 40 sbci r27, 0x00 ; 0 6a6: e1 f7 brne .-8 ; 0x6a0 6a8: 00 c0 rjmp .+0 ; 0x6aa 6aa: 00 00 nop namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } 6ac: 29 9a sbi 0x05, 1 ; 5 _delay_ms(100); led.green(1); stripe.setcolor(stripe.BLACK); 6ae: 60 e0 ldi r22, 0x00 ; 0 6b0: 88 e8 ldi r24, 0x88 ; 136 6b2: 91 e0 ldi r25, 0x01 ; 1 6b4: 0e 94 c2 02 call 0x584 ; 0x584 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> irclass ir; int main(void) { sei(); uint8_t doorstatus = 0; 6b8: 21 2c mov r2, r1 } led.red(0); EIFR |= (1<_code; 6ba: 45 e8 ldi r20, 0x85 ; 133 6bc: 51 e0 ldi r21, 0x01 ; 1 this->_code = 255; 6be: bb 24 eor r11, r11 6c0: ba 94 dec r11 6c2: 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; 6c4: 0f 2e mov r0, r31 6c6: f9 e8 ldi r31, 0x89 ; 137 6c8: ef 2e mov r14, r31 6ca: f1 e0 ldi r31, 0x01 ; 1 6cc: ff 2e mov r15, r31 6ce: f0 2d mov r31, r0 this->fademap[1][index] = green; 6d0: 0e e8 ldi r16, 0x8E ; 142 6d2: 11 e0 ldi r17, 0x01 ; 1 this->fademap[2][index] = blue; 6d4: 0f 2e mov r0, r31 6d6: f3 e9 ldi r31, 0x93 ; 147 6d8: 8f 2e mov r8, r31 6da: f1 e0 ldi r31, 0x01 ; 1 6dc: 9f 2e mov r9, r31 6de: f0 2d mov r31, r0 this->fademap[3][index] = time; 6e0: 0f 2e mov r0, r31 6e2: f8 e9 ldi r31, 0x98 ; 152 6e4: 6f 2e mov r6, r31 6e6: f1 e0 ldi r31, 0x01 ; 1 6e8: 7f 2e mov r7, r31 6ea: f0 2d mov r31, r0 6ec: 0f 2e mov r0, r31 6ee: fa e0 ldi r31, 0x0A ; 10 6f0: 3f 2e mov r3, r31 6f2: 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; 6f4: 0f 2e mov r0, r31 6f6: f8 e8 ldi r31, 0x88 ; 136 6f8: 4f 2e mov r4, r31 6fa: f1 e0 ldi r31, 0x01 ; 1 6fc: 5f 2e mov r5, r31 6fe: f0 2d mov r31, r0 700: cc 24 eor r12, r12 702: c3 94 inc r12 UCSR0A= (0<_code; 710: da 01 movw r26, r20 712: 8c 91 ld r24, X this->_code = 255; 714: ac 92 st X, r10 uint8_t remotetimer = 10; while(1) { uint8_t c = ir.getCode(); switch(c) { 716: 8c 30 cpi r24, 0x0C ; 12 718: 09 f4 brne .+2 ; 0x71c 71a: fc c0 rjmp .+504 ; 0x914 71c: 38 f5 brcc .+78 ; 0x76c 71e: 85 30 cpi r24, 0x05 ; 5 720: 09 f4 brne .+2 ; 0x724 722: b3 c0 rjmp .+358 ; 0x88a 724: 90 f4 brcc .+36 ; 0x74a 726: 82 30 cpi r24, 0x02 ; 2 728: 09 f4 brne .+2 ; 0x72c 72a: 8c c0 rjmp .+280 ; 0x844 72c: 38 f4 brcc .+14 ; 0x73c 72e: 88 23 and r24, r24 730: 09 f4 brne .+2 ; 0x734 732: 46 c0 rjmp .+140 ; 0x7c0 734: 81 30 cpi r24, 0x01 ; 1 736: 09 f0 breq .+2 ; 0x73a 738: 56 c1 rjmp .+684 ; 0x9e6 73a: 63 c0 rjmp .+198 ; 0x802 73c: 83 30 cpi r24, 0x03 ; 3 73e: 09 f4 brne .+2 ; 0x742 740: 90 c0 rjmp .+288 ; 0x862 742: 84 30 cpi r24, 0x04 ; 4 744: 09 f0 breq .+2 ; 0x748 746: 4f c1 rjmp .+670 ; 0x9e6 748: 95 c0 rjmp .+298 ; 0x874 74a: 88 30 cpi r24, 0x08 ; 8 74c: 09 f4 brne .+2 ; 0x750 74e: be c0 rjmp .+380 ; 0x8cc 750: 38 f4 brcc .+14 ; 0x760 752: 86 30 cpi r24, 0x06 ; 6 754: 09 f4 brne .+2 ; 0x758 756: a4 c0 rjmp .+328 ; 0x8a0 758: 87 30 cpi r24, 0x07 ; 7 75a: 09 f0 breq .+2 ; 0x75e 75c: 44 c1 rjmp .+648 ; 0x9e6 75e: ab c0 rjmp .+342 ; 0x8b6 760: 8a 30 cpi r24, 0x0A ; 10 762: 09 f4 brne .+2 ; 0x766 764: cb c0 rjmp .+406 ; 0x8fc 766: 08 f0 brcs .+2 ; 0x76a 768: e5 c1 rjmp .+970 ; 0xb34 76a: bc c0 rjmp .+376 ; 0x8e4 76c: 82 31 cpi r24, 0x12 ; 18 76e: 09 f4 brne .+2 ; 0x772 770: 0d c1 rjmp .+538 ; 0x98c 772: 90 f4 brcc .+36 ; 0x798 774: 8f 30 cpi r24, 0x0F ; 15 776: 09 f4 brne .+2 ; 0x77a 778: dd c1 rjmp .+954 ; 0xb34 77a: 38 f4 brcc .+14 ; 0x78a 77c: 8d 30 cpi r24, 0x0D ; 13 77e: 09 f4 brne .+2 ; 0x782 780: d5 c0 rjmp .+426 ; 0x92c 782: 8e 30 cpi r24, 0x0E ; 14 784: 09 f0 breq .+2 ; 0x788 786: 2f c1 rjmp .+606 ; 0x9e6 788: dd c0 rjmp .+442 ; 0x944 78a: 80 31 cpi r24, 0x10 ; 16 78c: 09 f4 brne .+2 ; 0x790 78e: e6 c0 rjmp .+460 ; 0x95c 790: 81 31 cpi r24, 0x11 ; 17 792: 09 f0 breq .+2 ; 0x796 794: 28 c1 rjmp .+592 ; 0x9e6 796: ee c0 rjmp .+476 ; 0x974 798: 85 31 cpi r24, 0x15 ; 21 79a: 09 f4 brne .+2 ; 0x79e 79c: 0e c1 rjmp .+540 ; 0x9ba 79e: 38 f4 brcc .+14 ; 0x7ae 7a0: 83 31 cpi r24, 0x13 ; 19 7a2: 09 f4 brne .+2 ; 0x7a6 7a4: c7 c1 rjmp .+910 ; 0xb34 7a6: 84 31 cpi r24, 0x14 ; 20 7a8: 09 f0 breq .+2 ; 0x7ac 7aa: 1d c1 rjmp .+570 ; 0x9e6 7ac: fb c0 rjmp .+502 ; 0x9a4 7ae: 87 31 cpi r24, 0x17 ; 23 7b0: 09 f4 brne .+2 ; 0x7b4 7b2: c0 c1 rjmp .+896 ; 0xb34 7b4: 08 f4 brcc .+2 ; 0x7b8 7b6: 0c c1 rjmp .+536 ; 0x9d0 7b8: 8f 3f cpi r24, 0xFF ; 255 7ba: 09 f0 breq .+2 ; 0x7be 7bc: 14 c1 rjmp .+552 ; 0x9e6 7be: ba c1 rjmp .+884 ; 0xb34 } else { OCR2A = 0; } } void higher() { if(OCR0B <= 250) { 7c0: 88 b5 in r24, 0x28 ; 40 7c2: 8b 3f cpi r24, 0xFB ; 251 7c4: 20 f4 brcc .+8 ; 0x7ce OCR0B = OCR0B + 5; 7c6: 88 b5 in r24, 0x28 ; 40 7c8: 8b 5f subi r24, 0xFB ; 251 7ca: 88 bd out 0x28, r24 ; 40 7cc: 01 c0 rjmp .+2 ; 0x7d0 } else { OCR0B = 0; 7ce: 18 bc out 0x28, r1 ; 40 } if(OCR2B <= 250) { 7d0: a4 eb ldi r26, 0xB4 ; 180 7d2: b0 e0 ldi r27, 0x00 ; 0 7d4: 8c 91 ld r24, X 7d6: 8b 3f cpi r24, 0xFB ; 251 7d8: 20 f4 brcc .+8 ; 0x7e2 OCR2B = OCR2B + 5; 7da: 8c 91 ld r24, X 7dc: 8b 5f subi r24, 0xFB ; 251 7de: 8c 93 st X, r24 7e0: 03 c0 rjmp .+6 ; 0x7e8 } else { OCR2B = 0; 7e2: a4 eb ldi r26, 0xB4 ; 180 7e4: b0 e0 ldi r27, 0x00 ; 0 7e6: 1c 92 st X, r1 } if(OCR2A <= 250) { 7e8: a3 eb ldi r26, 0xB3 ; 179 7ea: b0 e0 ldi r27, 0x00 ; 0 7ec: 8c 91 ld r24, X 7ee: 8b 3f cpi r24, 0xFB ; 251 7f0: 20 f4 brcc .+8 ; 0x7fa OCR2A = OCR2A + 5; 7f2: 8c 91 ld r24, X 7f4: 8b 5f subi r24, 0xFB ; 251 7f6: 8c 93 st X, r24 7f8: 9d c1 rjmp .+826 ; 0xb34 } else { OCR2A = 0; 7fa: a3 eb ldi r26, 0xB3 ; 179 7fc: b0 e0 ldi r27, 0x00 ; 0 7fe: 1c 92 st X, r1 800: 99 c1 rjmp .+818 ; 0xb34 } void on() { this->timerOn(); } void lower() { if(OCR0B >= 5) { 802: 88 b5 in r24, 0x28 ; 40 804: 85 30 cpi r24, 0x05 ; 5 806: 20 f0 brcs .+8 ; 0x810 OCR0B = OCR0B - 5; 808: 88 b5 in r24, 0x28 ; 40 80a: 85 50 subi r24, 0x05 ; 5 80c: 88 bd out 0x28, r24 ; 40 80e: 01 c0 rjmp .+2 ; 0x812 } else { OCR0B = 0; 810: 18 bc out 0x28, r1 ; 40 } if(OCR2B >= 5) { 812: a4 eb ldi r26, 0xB4 ; 180 814: b0 e0 ldi r27, 0x00 ; 0 816: 8c 91 ld r24, X 818: 85 30 cpi r24, 0x05 ; 5 81a: 20 f0 brcs .+8 ; 0x824 OCR2B = OCR2B - 5; 81c: 8c 91 ld r24, X 81e: 85 50 subi r24, 0x05 ; 5 820: 8c 93 st X, r24 822: 03 c0 rjmp .+6 ; 0x82a } else { OCR2B = 0; 824: a4 eb ldi r26, 0xB4 ; 180 826: b0 e0 ldi r27, 0x00 ; 0 828: 1c 92 st X, r1 } if(OCR2A >= 5) { 82a: a3 eb ldi r26, 0xB3 ; 179 82c: b0 e0 ldi r27, 0x00 ; 0 82e: 8c 91 ld r24, X 830: 85 30 cpi r24, 0x05 ; 5 832: 20 f0 brcs .+8 ; 0x83c OCR2A = OCR2A - 5; 834: 8c 91 ld r24, X 836: 85 50 subi r24, 0x05 ; 5 838: 8c 93 st X, r24 83a: 7c c1 rjmp .+760 ; 0xb34 } else { OCR2A = 0; 83c: a3 eb ldi r26, 0xB3 ; 179 83e: b0 e0 ldi r27, 0x00 ; 0 840: 1c 92 st X, r1 842: 78 c1 rjmp .+752 ; 0xb34 } 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; 874: d7 01 movw r26, r14 876: bc 92 st X, r11 this->fademap[1][index] = green; 878: d8 01 movw r26, r16 87a: 1c 92 st X, r1 this->fademap[2][index] = blue; 87c: d4 01 movw r26, r8 87e: 1c 92 st X, r1 this->fademap[3][index] = time; 880: d3 01 movw r26, r6 882: 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; 884: d2 01 movw r26, r4 886: cc 92 st X, r12 888: 55 c1 rjmp .+682 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 88a: d7 01 movw r26, r14 88c: 1c 92 st X, r1 this->fademap[1][index] = green; 88e: d8 01 movw r26, r16 890: bc 92 st X, r11 this->fademap[2][index] = blue; 892: d4 01 movw r26, r8 894: 1c 92 st X, r1 this->fademap[3][index] = time; 896: d3 01 movw r26, r6 898: 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; 89a: d2 01 movw r26, r4 89c: cc 92 st X, r12 89e: 4a c1 rjmp .+660 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 8a0: d7 01 movw r26, r14 8a2: 1c 92 st X, r1 this->fademap[1][index] = green; 8a4: d8 01 movw r26, r16 8a6: 1c 92 st X, r1 this->fademap[2][index] = blue; 8a8: d4 01 movw r26, r8 8aa: bc 92 st X, r11 this->fademap[3][index] = time; 8ac: d3 01 movw r26, r6 8ae: 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; 8b0: d2 01 movw r26, r4 8b2: cc 92 st X, r12 8b4: 3f c1 rjmp .+638 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 8b6: d7 01 movw r26, r14 8b8: bc 92 st X, r11 this->fademap[1][index] = green; 8ba: d8 01 movw r26, r16 8bc: bc 92 st X, r11 this->fademap[2][index] = blue; 8be: d4 01 movw r26, r8 8c0: bc 92 st X, r11 this->fademap[3][index] = time; 8c2: d3 01 movw r26, r6 8c4: 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; 8c6: d2 01 movw r26, r4 8c8: cc 92 st X, r12 8ca: 34 c1 rjmp .+616 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 8cc: d7 01 movw r26, r14 8ce: bc 92 st X, r11 this->fademap[1][index] = green; 8d0: 20 e4 ldi r18, 0x40 ; 64 8d2: d8 01 movw r26, r16 8d4: 2c 93 st X, r18 this->fademap[2][index] = blue; 8d6: d4 01 movw r26, r8 8d8: 1c 92 st X, r1 this->fademap[3][index] = time; 8da: d3 01 movw r26, r6 8dc: 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; 8de: d2 01 movw r26, r4 8e0: cc 92 st X, r12 8e2: 28 c1 rjmp .+592 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 8e4: d7 01 movw r26, r14 8e6: 1c 92 st X, r1 this->fademap[1][index] = green; 8e8: d8 01 movw r26, r16 8ea: bc 92 st X, r11 this->fademap[2][index] = blue; 8ec: 20 e4 ldi r18, 0x40 ; 64 8ee: d4 01 movw r26, r8 8f0: 2c 93 st X, r18 this->fademap[3][index] = time; 8f2: d3 01 movw r26, r6 8f4: 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; 8f6: d2 01 movw r26, r4 8f8: cc 92 st X, r12 8fa: 1c c1 rjmp .+568 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 8fc: 20 e4 ldi r18, 0x40 ; 64 8fe: d7 01 movw r26, r14 900: 2c 93 st X, r18 this->fademap[1][index] = green; 902: d8 01 movw r26, r16 904: 1c 92 st X, r1 this->fademap[2][index] = blue; 906: d4 01 movw r26, r8 908: bc 92 st X, r11 this->fademap[3][index] = time; 90a: d3 01 movw r26, r6 90c: 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; 90e: d2 01 movw r26, r4 910: cc 92 st X, r12 912: 10 c1 rjmp .+544 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 914: d7 01 movw r26, r14 916: bc 92 st X, r11 this->fademap[1][index] = green; 918: 20 e8 ldi r18, 0x80 ; 128 91a: d8 01 movw r26, r16 91c: 2c 93 st X, r18 this->fademap[2][index] = blue; 91e: d4 01 movw r26, r8 920: 1c 92 st X, r1 this->fademap[3][index] = time; 922: d3 01 movw r26, r6 924: 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; 926: d2 01 movw r26, r4 928: cc 92 st X, r12 92a: 04 c1 rjmp .+520 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 92c: d7 01 movw r26, r14 92e: 1c 92 st X, r1 this->fademap[1][index] = green; 930: d8 01 movw r26, r16 932: bc 92 st X, r11 this->fademap[2][index] = blue; 934: 20 e8 ldi r18, 0x80 ; 128 936: d4 01 movw r26, r8 938: 2c 93 st X, r18 this->fademap[3][index] = time; 93a: d3 01 movw r26, r6 93c: 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; 93e: d2 01 movw r26, r4 940: cc 92 st X, r12 942: f8 c0 rjmp .+496 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 944: 20 e8 ldi r18, 0x80 ; 128 946: d7 01 movw r26, r14 948: 2c 93 st X, r18 this->fademap[1][index] = green; 94a: d8 01 movw r26, r16 94c: 1c 92 st X, r1 this->fademap[2][index] = blue; 94e: d4 01 movw r26, r8 950: bc 92 st X, r11 this->fademap[3][index] = time; 952: d3 01 movw r26, r6 954: 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; 956: d2 01 movw r26, r4 958: cc 92 st X, r12 95a: ec c0 rjmp .+472 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 95c: d7 01 movw r26, r14 95e: bc 92 st X, r11 this->fademap[1][index] = green; 960: 20 ec ldi r18, 0xC0 ; 192 962: d8 01 movw r26, r16 964: 2c 93 st X, r18 this->fademap[2][index] = blue; 966: d4 01 movw r26, r8 968: 1c 92 st X, r1 this->fademap[3][index] = time; 96a: d3 01 movw r26, r6 96c: 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; 96e: d2 01 movw r26, r4 970: cc 92 st X, r12 972: e0 c0 rjmp .+448 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 974: d7 01 movw r26, r14 976: 1c 92 st X, r1 this->fademap[1][index] = green; 978: d8 01 movw r26, r16 97a: bc 92 st X, r11 this->fademap[2][index] = blue; 97c: 20 ec ldi r18, 0xC0 ; 192 97e: d4 01 movw r26, r8 980: 2c 93 st X, r18 this->fademap[3][index] = time; 982: d3 01 movw r26, r6 984: 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; 986: d2 01 movw r26, r4 988: cc 92 st X, r12 98a: d4 c0 rjmp .+424 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 98c: 20 ec ldi r18, 0xC0 ; 192 98e: d7 01 movw r26, r14 990: 2c 93 st X, r18 this->fademap[1][index] = green; 992: d8 01 movw r26, r16 994: 1c 92 st X, r1 this->fademap[2][index] = blue; 996: d4 01 movw r26, r8 998: bc 92 st X, r11 this->fademap[3][index] = time; 99a: d3 01 movw r26, r6 99c: 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; 99e: d2 01 movw r26, r4 9a0: cc 92 st X, r12 9a2: c8 c0 rjmp .+400 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 9a4: d7 01 movw r26, r14 9a6: bc 92 st X, r11 this->fademap[1][index] = green; 9a8: d8 01 movw r26, r16 9aa: bc 92 st X, r11 this->fademap[2][index] = blue; 9ac: d4 01 movw r26, r8 9ae: 1c 92 st X, r1 this->fademap[3][index] = time; 9b0: d3 01 movw r26, r6 9b2: 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; 9b4: d2 01 movw r26, r4 9b6: cc 92 st X, r12 9b8: bd c0 rjmp .+378 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 9ba: d7 01 movw r26, r14 9bc: 1c 92 st X, r1 this->fademap[1][index] = green; 9be: d8 01 movw r26, r16 9c0: bc 92 st X, r11 this->fademap[2][index] = blue; 9c2: d4 01 movw r26, r8 9c4: bc 92 st X, r11 this->fademap[3][index] = time; 9c6: d3 01 movw r26, r6 9c8: 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; 9ca: d2 01 movw r26, r4 9cc: cc 92 st X, r12 9ce: b2 c0 rjmp .+356 ; 0xb34 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; 9d0: d7 01 movw r26, r14 9d2: bc 92 st X, r11 this->fademap[1][index] = green; 9d4: d8 01 movw r26, r16 9d6: 1c 92 st X, r1 this->fademap[2][index] = blue; 9d8: d4 01 movw r26, r8 9da: bc 92 st X, r11 this->fademap[3][index] = time; 9dc: d3 01 movw r26, r6 9de: 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; 9e0: d2 01 movw r26, r4 9e2: cc 92 st X, r12 9e4: a7 c0 rjmp .+334 ; 0xb34 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 9e6: 28 2f mov r18, r24 9e8: 30 e0 ldi r19, 0x00 ; 0 9ea: 3a 83 std Y+2, r19 ; 0x02 9ec: 29 83 std Y+1, r18 ; 0x01 UCSR0A= (0< UDR0 = c; 9f4: 80 e3 ldi r24, 0x30 ; 48 9f6: a6 ec ldi r26, 0xC6 ; 198 9f8: b0 e0 ldi r27, 0x00 ; 0 9fa: 8c 93 st X, r24 text++; } } void printDec(uint16_t wert) { print((wert/10000)+'0'); print(((wert/1000)%10)+'0'); 9fc: 60 e0 ldi r22, 0x00 ; 0 9fe: 70 e0 ldi r23, 0x00 ; 0 a00: cb 01 movw r24, r22 a02: 96 95 lsr r25 a04: 87 95 ror r24 a06: 96 95 lsr r25 a08: 87 95 ror r24 a0a: 96 95 lsr r25 a0c: 87 95 ror r24 a0e: 9c 01 movw r18, r24 a10: 22 0f add r18, r18 a12: 33 1f adc r19, r19 a14: 88 0f add r24, r24 a16: 99 1f adc r25, r25 a18: 88 0f add r24, r24 a1a: 99 1f adc r25, r25 a1c: 88 0f add r24, r24 a1e: 99 1f adc r25, r25 a20: 82 0f add r24, r18 a22: 93 1f adc r25, r19 a24: 68 1b sub r22, r24 a26: 79 0b sbc r23, r25 a28: 60 5d subi r22, 0xD0 ; 208 UCSR0A= (0< UDR0 = c; a30: a6 ec ldi r26, 0xC6 ; 198 a32: b0 e0 ldi r27, 0x00 ; 0 a34: 6c 93 st X, r22 } } void printDec(uint16_t wert) { print((wert/10000)+'0'); print(((wert/1000)%10)+'0'); print(((wert/100)%10)+'0'); a36: 29 81 ldd r18, Y+1 ; 0x01 a38: 3a 81 ldd r19, Y+2 ; 0x02 a3a: 36 95 lsr r19 a3c: 27 95 ror r18 a3e: 36 95 lsr r19 a40: 27 95 ror r18 a42: ab e7 ldi r26, 0x7B ; 123 a44: b4 e1 ldi r27, 0x14 ; 20 a46: 0e 94 9d 08 call 0x113a ; 0x113a <__umulhisi3> a4a: 96 95 lsr r25 a4c: 87 95 ror r24 a4e: 80 5d subi r24, 0xD0 ; 208 UCSR0A= (0< UDR0 = c; a56: a6 ec ldi r26, 0xC6 ; 198 a58: b0 e0 ldi r27, 0x00 ; 0 a5a: 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'); a5c: 29 81 ldd r18, Y+1 ; 0x01 a5e: 3a 81 ldd r19, Y+2 ; 0x02 a60: ad ec ldi r26, 0xCD ; 205 a62: bc ec ldi r27, 0xCC ; 204 a64: 0e 94 9d 08 call 0x113a ; 0x113a <__umulhisi3> a68: 96 95 lsr r25 a6a: 87 95 ror r24 a6c: 96 95 lsr r25 a6e: 87 95 ror r24 a70: 96 95 lsr r25 a72: 87 95 ror r24 a74: 9c 83 std Y+4, r25 ; 0x04 a76: 8b 83 std Y+3, r24 ; 0x03 a78: 9c 01 movw r18, r24 a7a: 0e 94 9d 08 call 0x113a ; 0x113a <__umulhisi3> a7e: 96 95 lsr r25 a80: 87 95 ror r24 a82: 96 95 lsr r25 a84: 87 95 ror r24 a86: 96 95 lsr r25 a88: 87 95 ror r24 a8a: 9c 01 movw r18, r24 a8c: 22 0f add r18, r18 a8e: 33 1f adc r19, r19 a90: 88 0f add r24, r24 a92: 99 1f adc r25, r25 a94: 88 0f add r24, r24 a96: 99 1f adc r25, r25 a98: 88 0f add r24, r24 a9a: 99 1f adc r25, r25 a9c: 82 0f add r24, r18 a9e: 93 1f adc r25, r19 aa0: 2b 81 ldd r18, Y+3 ; 0x03 aa2: 3c 81 ldd r19, Y+4 ; 0x04 aa4: 28 1b sub r18, r24 aa6: 39 0b sbc r19, r25 aa8: c9 01 movw r24, r18 aaa: 80 5d subi r24, 0xD0 ; 208 UCSR0A= (0< UDR0 = c; ab2: a6 ec ldi r26, 0xC6 ; 198 ab4: b0 e0 ldi r27, 0x00 ; 0 ab6: 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'); ab8: 29 81 ldd r18, Y+1 ; 0x01 aba: 3a 81 ldd r19, Y+2 ; 0x02 abc: ad ec ldi r26, 0xCD ; 205 abe: bc ec ldi r27, 0xCC ; 204 ac0: 0e 94 9d 08 call 0x113a ; 0x113a <__umulhisi3> ac4: 96 95 lsr r25 ac6: 87 95 ror r24 ac8: 96 95 lsr r25 aca: 87 95 ror r24 acc: 96 95 lsr r25 ace: 87 95 ror r24 ad0: 9c 01 movw r18, r24 ad2: 22 0f add r18, r18 ad4: 33 1f adc r19, r19 ad6: 88 0f add r24, r24 ad8: 99 1f adc r25, r25 ada: 88 0f add r24, r24 adc: 99 1f adc r25, r25 ade: 88 0f add r24, r24 ae0: 99 1f adc r25, r25 ae2: 82 0f add r24, r18 ae4: 93 1f adc r25, r19 ae6: 29 81 ldd r18, Y+1 ; 0x01 ae8: 3a 81 ldd r19, Y+2 ; 0x02 aea: 28 1b sub r18, r24 aec: 39 0b sbc r19, r25 aee: c9 01 movw r24, r18 af0: 80 5d subi r24, 0xD0 ; 208 UCSR0A= (0< UDR0 = c; af8: a6 ec ldi r26, 0xC6 ; 198 afa: b0 e0 ldi r27, 0x00 ; 0 afc: 8c 93 st X, r24 afe: a3 e6 ldi r26, 0x63 ; 99 b00: b1 e0 ldi r27, 0x01 ; 1 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) b02: 90 e2 ldi r25, 0x20 ; 32 b04: 9d 01 movw r18, r26 UCSR0A= (0< UDR0 = c; b0c: a6 ec ldi r26, 0xC6 ; 198 b0e: b0 e0 ldi r27, 0x00 ; 0 b10: 9c 93 st X, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) b12: d9 01 movw r26, r18 b14: 9d 91 ld r25, X+ b16: 9d 01 movw r18, r26 b18: 91 11 cpse r25, r1 b1a: f5 cf rjmp .-22 ; 0xb06 UCSR0A= (0< UDR0 = c; b22: a6 ec ldi r26, 0xC6 ; 198 b24: b0 e0 ldi r27, 0x00 ; 0 b26: dc 92 st X, r13 UCSR0A= (0< UDR0 = c; b2e: a6 ec ldi r26, 0xC6 ; 198 b30: b0 e0 ldi r27, 0x00 ; 0 b32: 3c 92 st X, r3 } if(comp.is_active()) { b34: 00 b6 in r0, 0x30 ; 48 b36: 05 fe sbrs r0, 5 b38: 2a c0 rjmp .+84 ; 0xb8e if(doorstatus == 0) { b3a: 21 10 cpse r2, r1 b3c: 52 c0 rjmp .+164 ; 0xbe2 } void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { this->fademap[0][index] = red; b3e: d7 01 movw r26, r14 b40: bc 92 st X, r11 this->fademap[1][index] = green; b42: d8 01 movw r26, r16 b44: 1c 92 st X, r1 this->fademap[2][index] = blue; b46: d4 01 movw r26, r8 b48: 1c 92 st X, r1 this->fademap[3][index] = time; b4a: 24 e6 ldi r18, 0x64 ; 100 b4c: d3 01 movw r26, r6 b4e: 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; b50: d2 01 movw r26, r4 b52: cc 92 st X, r12 b54: ad e6 ldi r26, 0x6D ; 109 b56: b1 e0 ldi r27, 0x01 ; 1 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) b58: 94 e5 ldi r25, 0x54 ; 84 b5a: 9d 01 movw r18, r26 UCSR0A= (0< UDR0 = c; b62: a6 ec ldi r26, 0xC6 ; 198 b64: b0 e0 ldi r27, 0x00 ; 0 b66: 9c 93 st X, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) b68: d9 01 movw r26, r18 b6a: 9d 91 ld r25, X+ b6c: 9d 01 movw r18, r26 b6e: 91 11 cpse r25, r1 b70: f5 cf rjmp .-22 ; 0xb5c UCSR0A= (0< UDR0 = c; b78: a6 ec ldi r26, 0xC6 ; 198 b7a: b0 e0 ldi r27, 0x00 ; 0 b7c: dc 92 st X, r13 UCSR0A= (0< UDR0 = c; b84: a6 ec ldi r26, 0xC6 ; 198 b86: b0 e0 ldi r27, 0x00 ; 0 b88: 3c 92 st X, r3 doorstatus = 1; b8a: 2c 2c mov r2, r12 b8c: 2a c0 rjmp .+84 ; 0xbe2 stripe.fadeto(0xFF,0x00,0x00,100); Serial.println("Tür Zu..."); } } else { if(doorstatus == 1) { b8e: b1 e0 ldi r27, 0x01 ; 1 b90: 2b 12 cpse r2, r27 b92: 27 c0 rjmp .+78 ; 0xbe2 b94: a7 e7 ldi r26, 0x77 ; 119 b96: b1 e0 ldi r27, 0x01 ; 1 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) b98: 94 e5 ldi r25, 0x54 ; 84 b9a: 9d 01 movw r18, r26 UCSR0A= (0< UDR0 = c; ba2: a6 ec ldi r26, 0xC6 ; 198 ba4: b0 e0 ldi r27, 0x00 ; 0 ba6: 9c 93 st X, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) ba8: d9 01 movw r26, r18 baa: 9d 91 ld r25, X+ bac: 9d 01 movw r18, r26 bae: 91 11 cpse r25, r1 bb0: f5 cf rjmp .-22 ; 0xb9c UCSR0A= (0< UDR0 = c; bb8: a6 ec ldi r26, 0xC6 ; 198 bba: b0 e0 ldi r27, 0x00 ; 0 bbc: dc 92 st X, r13 UCSR0A= (0< UDR0 = c; bc4: a6 ec ldi r26, 0xC6 ; 198 bc6: b0 e0 ldi r27, 0x00 ; 0 bc8: 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; bca: d7 01 movw r26, r14 bcc: 1c 92 st X, r1 this->fademap[1][index] = green; bce: d8 01 movw r26, r16 bd0: bc 92 st X, r11 this->fademap[2][index] = blue; bd2: d4 01 movw r26, r8 bd4: 1c 92 st X, r1 this->fademap[3][index] = time; bd6: 22 e3 ldi r18, 0x32 ; 50 bd8: d3 01 movw r26, r6 bda: 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; bdc: d2 01 movw r26, r4 bde: cc 92 st X, r12 doorstatus = 0; be0: 21 2c mov r2, r1 be2: 87 e8 ldi r24, 0x87 ; 135 be4: 93 e1 ldi r25, 0x13 ; 19 be6: 01 97 sbiw r24, 0x01 ; 1 be8: f1 f7 brne .-4 ; 0xbe6 bea: 00 c0 rjmp .+0 ; 0xbec bec: 00 00 nop namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } bee: 29 98 cbi 0x05, 1 ; 5 bf0: 9f ed ldi r25, 0xDF ; 223 bf2: aa e0 ldi r26, 0x0A ; 10 bf4: b6 e0 ldi r27, 0x06 ; 6 bf6: 91 50 subi r25, 0x01 ; 1 bf8: a0 40 sbci r26, 0x00 ; 0 bfa: b0 40 sbci r27, 0x00 ; 0 bfc: e1 f7 brne .-8 ; 0xbf6 bfe: 00 c0 rjmp .+0 ; 0xc00 c00: 00 00 nop c02: 29 9a sbi 0x05, 1 ; 5 c04: 85 cd rjmp .-1270 ; 0x710 00000c06 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv>: c06: 55 9a sbi 0x0a, 5 ; 10 c08: 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; } c0a: 23 9a sbi 0x04, 3 ; 4 float fadesteps[3]; void init() { stripered::make_output(); stripegreen::make_output(); stripeblue::make_output(); this->fade_zylk = 0; c0c: fc 01 movw r30, r24 c0e: 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<init(); } void color(uint8_t r, uint8_t g, uint8_t b) { OCR0B=r; //ROT c58: 18 bc out 0x28, r1 ; 40 OCR2B=g; //GRÜN c5a: 10 92 b4 00 sts 0x00B4, r1 OCR2A=b; //BLAU c5e: 10 92 b3 00 sts 0x00B3, r1 c62: 08 95 ret 00000c64 <_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); c72: ef e9 ldi r30, 0x9F ; 159 c74: ff e0 ldi r31, 0x0F ; 15 c76: 31 97 sbiw r30, 0x01 ; 1 c78: f1 f7 brne .-4 ; 0xc76 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x12> c7a: 00 c0 rjmp .+0 ; 0xc7c <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x18> c7c: 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()) { c7e: 4a 9b sbis 0x09, 2 ; 9 c80: 08 c0 rjmp .+16 ; 0xc92 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x2e> r |= (1< c88: 44 0f add r20, r20 c8a: 55 1f adc r21, r21 c8c: 0a 94 dec r0 c8e: e2 f7 brpl .-8 ; 0xc88 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x24> c90: 84 2b or r24, r20 } for(uint8_t j=0;j<50;j++) { if(!intpin::value()) { c92: 4a 99 sbic 0x09, 2 ; 9 c94: 0f c0 rjmp .+30 ; 0xcb4 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x50> c96: 08 c0 rjmp .+16 ; 0xca8 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x44> c98: 4a 9b sbis 0x09, 2 ; 9 c9a: 06 c0 rjmp .+12 ; 0xca8 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x44> c9c: f5 e8 ldi r31, 0x85 ; 133 c9e: fa 95 dec r31 ca0: f1 f7 brne .-4 ; 0xc9e <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x3a> ca2: 00 00 nop ca4: 91 50 subi r25, 0x01 ; 1 intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< ca8: 2f 5f subi r18, 0xFF ; 255 caa: 3f 4f sbci r19, 0xFF ; 255 EIMSK=(0< cb2: 08 95 ret cb4: 45 e8 ldi r20, 0x85 ; 133 cb6: 4a 95 dec r20 cb8: f1 f7 brne .-4 ; 0xcb6 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x52> cba: 00 00 nop cbc: 91 e3 ldi r25, 0x31 ; 49 cbe: ec cf rjmp .-40 ; 0xc98 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x34> 00000cc0 <__vector_1>: _delay_ms(99); led.green(1); } } ISR(INT0_vect) { cc0: 1f 92 push r1 cc2: 0f 92 push r0 cc4: 0f b6 in r0, 0x3f ; 63 cc6: 0f 92 push r0 cc8: 11 24 eor r1, r1 cca: 2f 93 push r18 ccc: 3f 93 push r19 cce: 4f 93 push r20 cd0: 5f 93 push r21 cd2: 6f 93 push r22 cd4: 7f 93 push r23 cd6: 8f 93 push r24 cd8: 9f 93 push r25 cda: af 93 push r26 cdc: bf 93 push r27 cde: cf 93 push r28 ce0: ef 93 push r30 ce2: ff 93 push r31 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } ce4: 28 9a sbi 0x05, 0 ; 5 public: IR() { this->init(); } int read() { if(intpin::value()) { //Is High, Abbort ce6: 4a 99 sbic 0x09, 2 ; 9 ce8: 79 c0 rjmp .+242 ; 0xddc <__vector_1+0x11c> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); cea: 8f e1 ldi r24, 0x1F ; 31 cec: 9e e4 ldi r25, 0x4E ; 78 cee: 01 97 sbiw r24, 0x01 ; 1 cf0: f1 f7 brne .-4 ; 0xcee <__vector_1+0x2e> cf2: 00 c0 rjmp .+0 ; 0xcf4 <__vector_1+0x34> cf4: 00 00 nop return 254; } _delay_ms(4); //Wait 4ms if(intpin::value()) { //Is High, Abbort cf6: 4a 99 sbic 0x09, 2 ; 9 cf8: 71 c0 rjmp .+226 ; 0xddc <__vector_1+0x11c> cfa: 4a 9b sbis 0x09, 2 ; 9 cfc: fe cf rjmp .-4 ; 0xcfa <__vector_1+0x3a> static void wait_is_clear() { do {} while ((Port::pin() & (1< d02: 80 e0 ldi r24, 0x00 ; 0 d04: 90 e0 ldi r25, 0x00 ; 0 d06: 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); d10: ef e9 ldi r30, 0x9F ; 159 d12: ff e0 ldi r31, 0x0F ; 15 d14: 31 97 sbiw r30, 0x01 ; 1 d16: f1 f7 brne .-4 ; 0xd14 <__vector_1+0x54> d18: 00 c0 rjmp .+0 ; 0xd1a <__vector_1+0x5a> d1a: 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()) { d1c: 4a 9b sbis 0x09, 2 ; 9 d1e: 08 c0 rjmp .+16 ; 0xd30 <__vector_1+0x70> r |= (1< d26: 22 0f add r18, r18 d28: 33 1f adc r19, r19 d2a: 0a 94 dec r0 d2c: e2 f7 brpl .-8 ; 0xd26 <__vector_1+0x66> d2e: 62 2b or r22, r18 } for(uint8_t j=0;j<50;j++) { if(!intpin::value()) { d30: 4a 99 sbic 0x09, 2 ; 9 d32: 66 c0 rjmp .+204 ; 0xe00 <__vector_1+0x140> d34: 08 c0 rjmp .+16 ; 0xd46 <__vector_1+0x86> d36: 4a 9b sbis 0x09, 2 ; 9 d38: 06 c0 rjmp .+12 ; 0xd46 <__vector_1+0x86> d3a: f5 e8 ldi r31, 0x85 ; 133 d3c: fa 95 dec r31 d3e: f1 f7 brne .-4 ; 0xd3c <__vector_1+0x7c> d40: 00 00 nop d42: 21 50 subi r18, 0x01 ; 1 intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< d46: 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; d4e: 61 11 cpse r22, r1 d50: 39 c0 rjmp .+114 ; 0xdc4 <__vector_1+0x104> d52: 80 e0 ldi r24, 0x00 ; 0 d54: 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< d5e: ef e9 ldi r30, 0x9F ; 159 d60: ff e0 ldi r31, 0x0F ; 15 d62: 31 97 sbiw r30, 0x01 ; 1 d64: f1 f7 brne .-4 ; 0xd62 <__vector_1+0xa2> d66: 00 c0 rjmp .+0 ; 0xd68 <__vector_1+0xa8> d68: 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()) { d6a: 4a 9b sbis 0x09, 2 ; 9 d6c: 08 c0 rjmp .+16 ; 0xd7e <__vector_1+0xbe> r |= (1< d74: 22 0f add r18, r18 d76: 33 1f adc r19, r19 d78: 0a 94 dec r0 d7a: e2 f7 brpl .-8 ; 0xd74 <__vector_1+0xb4> d7c: 62 2b or r22, r18 } for(uint8_t j=0;j<50;j++) { if(!intpin::value()) { d7e: 4a 99 sbic 0x09, 2 ; 9 d80: 39 c0 rjmp .+114 ; 0xdf4 <__vector_1+0x134> d82: 08 c0 rjmp .+16 ; 0xd94 <__vector_1+0xd4> d84: 4a 9b sbis 0x09, 2 ; 9 d86: 06 c0 rjmp .+12 ; 0xd94 <__vector_1+0xd4> d88: f5 e8 ldi r31, 0x85 ; 133 d8a: fa 95 dec r31 d8c: f1 f7 brne .-4 ; 0xd8a <__vector_1+0xca> d8e: 00 00 nop d90: 21 50 subi r18, 0x01 ; 1 intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< d94: 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) { d9c: 6f 3e cpi r22, 0xEF ; 239 d9e: 91 f4 brne .+36 ; 0xdc4 <__vector_1+0x104> return 255; } //Read Byte 3 and 4 (Data Byte and Checksum Byte! uint8_t a = this->read8bit(); da0: 84 e8 ldi r24, 0x84 ; 132 da2: 91 e0 ldi r25, 0x01 ; 1 da4: 0e 94 32 06 call 0xc64 ; 0xc64 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv> da8: c8 2f mov r28, r24 uint8_t b = this->read8bit(); daa: 84 e8 ldi r24, 0x84 ; 132 dac: 91 e0 ldi r25, 0x01 ; 1 dae: 0e 94 32 06 call 0xc64 ; 0xc64 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv> //Make Checksum Byte 3 + 4 must be 255! if(a+b != 255) { db2: 28 2f mov r18, r24 db4: 30 e0 ldi r19, 0x00 ; 0 db6: 2c 0f add r18, r28 db8: 31 1d adc r19, r1 dba: 2f 3f cpi r18, 0xFF ; 255 dbc: 31 05 cpc r19, r1 dbe: 11 f4 brne .+4 ; 0xdc4 <__vector_1+0x104> } //The Interrupt Function void interrupt() { led.red(1); uint8_t code = this->read(); if(code == 255) { dc0: cf 3f cpi r28, 0xFF ; 255 dc2: 51 f4 brne .+20 ; 0xdd8 <__vector_1+0x118> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); dc4: 2f e7 ldi r18, 0x7F ; 127 dc6: 34 e8 ldi r19, 0x84 ; 132 dc8: 8e e1 ldi r24, 0x1E ; 30 dca: 21 50 subi r18, 0x01 ; 1 dcc: 30 40 sbci r19, 0x00 ; 0 dce: 80 40 sbci r24, 0x00 ; 0 dd0: e1 f7 brne .-8 ; 0xdca <__vector_1+0x10a> dd2: 00 c0 rjmp .+0 ; 0xdd4 <__vector_1+0x114> dd4: 00 00 nop dd6: 0b c0 rjmp .+22 ; 0xdee <__vector_1+0x12e> _delay_ms(500); } else if(code == 254) { dd8: ce 3f cpi r28, 0xFE ; 254 dda: 39 f4 brne .+14 ; 0xdea <__vector_1+0x12a> ddc: e7 e8 ldi r30, 0x87 ; 135 dde: f3 e1 ldi r31, 0x13 ; 19 de0: 31 97 sbiw r30, 0x01 ; 1 de2: f1 f7 brne .-4 ; 0xde0 <__vector_1+0x120> de4: 00 c0 rjmp .+0 ; 0xde6 <__vector_1+0x126> de6: 00 00 nop de8: 02 c0 rjmp .+4 ; 0xdee <__vector_1+0x12e> _delay_ms(1); } else { this->_code = code; dea: c0 93 85 01 sts 0x0185, r28 dee: 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); df4: f5 e8 ldi r31, 0x85 ; 133 df6: fa 95 dec r31 df8: f1 f7 brne .-4 ; 0xdf6 <__vector_1+0x136> dfa: 00 00 nop dfc: 21 e3 ldi r18, 0x31 ; 49 dfe: c2 cf rjmp .-124 ; 0xd84 <__vector_1+0xc4> e00: 25 e8 ldi r18, 0x85 ; 133 e02: 2a 95 dec r18 e04: f1 f7 brne .-4 ; 0xe02 <__vector_1+0x142> e06: 00 00 nop e08: 21 e3 ldi r18, 0x31 ; 49 e0a: 95 cf rjmp .-214 ; 0xd36 <__vector_1+0x76> ir.interrupt(); } e0c: ff 91 pop r31 e0e: ef 91 pop r30 e10: cf 91 pop r28 e12: bf 91 pop r27 e14: af 91 pop r26 e16: 9f 91 pop r25 e18: 8f 91 pop r24 e1a: 7f 91 pop r23 e1c: 6f 91 pop r22 e1e: 5f 91 pop r21 e20: 4f 91 pop r20 e22: 3f 91 pop r19 e24: 2f 91 pop r18 e26: 0f 90 pop r0 e28: 0f be out 0x3f, r0 ; 63 e2a: 0f 90 pop r0 e2c: 1f 90 pop r1 e2e: 18 95 reti 00000e30 <_GLOBAL__sub_I_Serial>: */ #include "peripheral.h" #include uartclass Serial; e30: 89 ea ldi r24, 0xA9 ; 169 e32: 91 e0 ldi r25, 0x01 ; 1 e34: 0e 94 93 02 call 0x526 ; 0x526 <_ZN4UartILm9600EEC1Ev> template class Stripe { public: Stripe() { this->init(); e38: 88 e8 ldi r24, 0x88 ; 136 e3a: 91 e0 ldi r25, 0x01 ; 1 e3c: 0e 94 03 06 call 0xc06 ; 0xc06 <_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; } e40: 20 9a sbi 0x04, 0 ; 4 e42: 21 9a sbi 0x04, 1 ; 4 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } e44: 28 98 cbi 0x05, 0 ; 5 e46: 29 98 cbi 0x05, 1 ; 5 e48: 56 98 cbi 0x0a, 6 ; 10 namespace avrlib { struct portd { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } e4a: 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; } e4c: 57 98 cbi 0x0a, 7 ; 10 namespace avrlib { struct portd { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } e4e: 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; e68: 8f ef ldi r24, 0xFF ; 255 e6a: 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<: e7c: 50 58 subi r21, 0x80 ; 128 00000e7e <__addsf3>: e7e: bb 27 eor r27, r27 e80: aa 27 eor r26, r26 e82: 0e d0 rcall .+28 ; 0xea0 <__addsf3x> e84: 08 c1 rjmp .+528 ; 0x1096 <__fp_round> e86: f9 d0 rcall .+498 ; 0x107a <__fp_pscA> e88: 30 f0 brcs .+12 ; 0xe96 <__addsf3+0x18> e8a: fe d0 rcall .+508 ; 0x1088 <__fp_pscB> e8c: 20 f0 brcs .+8 ; 0xe96 <__addsf3+0x18> e8e: 31 f4 brne .+12 ; 0xe9c <__addsf3+0x1e> e90: 9f 3f cpi r25, 0xFF ; 255 e92: 11 f4 brne .+4 ; 0xe98 <__addsf3+0x1a> e94: 1e f4 brtc .+6 ; 0xe9c <__addsf3+0x1e> e96: ee c0 rjmp .+476 ; 0x1074 <__fp_nan> e98: 0e f4 brtc .+2 ; 0xe9c <__addsf3+0x1e> e9a: e0 95 com r30 e9c: e7 fb bst r30, 7 e9e: e4 c0 rjmp .+456 ; 0x1068 <__fp_inf> 00000ea0 <__addsf3x>: ea0: e9 2f mov r30, r25 ea2: 0a d1 rcall .+532 ; 0x10b8 <__fp_split3> ea4: 80 f3 brcs .-32 ; 0xe86 <__addsf3+0x8> ea6: ba 17 cp r27, r26 ea8: 62 07 cpc r22, r18 eaa: 73 07 cpc r23, r19 eac: 84 07 cpc r24, r20 eae: 95 07 cpc r25, r21 eb0: 18 f0 brcs .+6 ; 0xeb8 <__addsf3x+0x18> eb2: 71 f4 brne .+28 ; 0xed0 <__addsf3x+0x30> eb4: 9e f5 brtc .+102 ; 0xf1c <__addsf3x+0x7c> eb6: 22 c1 rjmp .+580 ; 0x10fc <__fp_zero> eb8: 0e f4 brtc .+2 ; 0xebc <__addsf3x+0x1c> eba: e0 95 com r30 ebc: 0b 2e mov r0, r27 ebe: ba 2f mov r27, r26 ec0: a0 2d mov r26, r0 ec2: 0b 01 movw r0, r22 ec4: b9 01 movw r22, r18 ec6: 90 01 movw r18, r0 ec8: 0c 01 movw r0, r24 eca: ca 01 movw r24, r20 ecc: a0 01 movw r20, r0 ece: 11 24 eor r1, r1 ed0: ff 27 eor r31, r31 ed2: 59 1b sub r21, r25 ed4: 99 f0 breq .+38 ; 0xefc <__addsf3x+0x5c> ed6: 59 3f cpi r21, 0xF9 ; 249 ed8: 50 f4 brcc .+20 ; 0xeee <__addsf3x+0x4e> eda: 50 3e cpi r21, 0xE0 ; 224 edc: 68 f1 brcs .+90 ; 0xf38 <__addsf3x+0x98> ede: 1a 16 cp r1, r26 ee0: f0 40 sbci r31, 0x00 ; 0 ee2: a2 2f mov r26, r18 ee4: 23 2f mov r18, r19 ee6: 34 2f mov r19, r20 ee8: 44 27 eor r20, r20 eea: 58 5f subi r21, 0xF8 ; 248 eec: f3 cf rjmp .-26 ; 0xed4 <__addsf3x+0x34> eee: 46 95 lsr r20 ef0: 37 95 ror r19 ef2: 27 95 ror r18 ef4: a7 95 ror r26 ef6: f0 40 sbci r31, 0x00 ; 0 ef8: 53 95 inc r21 efa: c9 f7 brne .-14 ; 0xeee <__addsf3x+0x4e> efc: 7e f4 brtc .+30 ; 0xf1c <__addsf3x+0x7c> efe: 1f 16 cp r1, r31 f00: ba 0b sbc r27, r26 f02: 62 0b sbc r22, r18 f04: 73 0b sbc r23, r19 f06: 84 0b sbc r24, r20 f08: ba f0 brmi .+46 ; 0xf38 <__addsf3x+0x98> f0a: 91 50 subi r25, 0x01 ; 1 f0c: a1 f0 breq .+40 ; 0xf36 <__addsf3x+0x96> f0e: ff 0f add r31, r31 f10: bb 1f adc r27, r27 f12: 66 1f adc r22, r22 f14: 77 1f adc r23, r23 f16: 88 1f adc r24, r24 f18: c2 f7 brpl .-16 ; 0xf0a <__addsf3x+0x6a> f1a: 0e c0 rjmp .+28 ; 0xf38 <__addsf3x+0x98> f1c: ba 0f add r27, r26 f1e: 62 1f adc r22, r18 f20: 73 1f adc r23, r19 f22: 84 1f adc r24, r20 f24: 48 f4 brcc .+18 ; 0xf38 <__addsf3x+0x98> f26: 87 95 ror r24 f28: 77 95 ror r23 f2a: 67 95 ror r22 f2c: b7 95 ror r27 f2e: f7 95 ror r31 f30: 9e 3f cpi r25, 0xFE ; 254 f32: 08 f0 brcs .+2 ; 0xf36 <__addsf3x+0x96> f34: b3 cf rjmp .-154 ; 0xe9c <__addsf3+0x1e> f36: 93 95 inc r25 f38: 88 0f add r24, r24 f3a: 08 f0 brcs .+2 ; 0xf3e <__addsf3x+0x9e> f3c: 99 27 eor r25, r25 f3e: ee 0f add r30, r30 f40: 97 95 ror r25 f42: 87 95 ror r24 f44: 08 95 ret 00000f46 <__cmpsf2>: f46: 6c d0 rcall .+216 ; 0x1020 <__fp_cmp> f48: 08 f4 brcc .+2 ; 0xf4c <__cmpsf2+0x6> f4a: 81 e0 ldi r24, 0x01 ; 1 f4c: 08 95 ret 00000f4e <__fixunssfsi>: f4e: bc d0 rcall .+376 ; 0x10c8 <__fp_splitA> f50: 88 f0 brcs .+34 ; 0xf74 <__fixunssfsi+0x26> f52: 9f 57 subi r25, 0x7F ; 127 f54: 90 f0 brcs .+36 ; 0xf7a <__fixunssfsi+0x2c> f56: b9 2f mov r27, r25 f58: 99 27 eor r25, r25 f5a: b7 51 subi r27, 0x17 ; 23 f5c: a0 f0 brcs .+40 ; 0xf86 <__fixunssfsi+0x38> f5e: d1 f0 breq .+52 ; 0xf94 <__fixunssfsi+0x46> f60: 66 0f add r22, r22 f62: 77 1f adc r23, r23 f64: 88 1f adc r24, r24 f66: 99 1f adc r25, r25 f68: 1a f0 brmi .+6 ; 0xf70 <__fixunssfsi+0x22> f6a: ba 95 dec r27 f6c: c9 f7 brne .-14 ; 0xf60 <__fixunssfsi+0x12> f6e: 12 c0 rjmp .+36 ; 0xf94 <__fixunssfsi+0x46> f70: b1 30 cpi r27, 0x01 ; 1 f72: 81 f0 breq .+32 ; 0xf94 <__fixunssfsi+0x46> f74: c3 d0 rcall .+390 ; 0x10fc <__fp_zero> f76: b1 e0 ldi r27, 0x01 ; 1 f78: 08 95 ret f7a: c0 c0 rjmp .+384 ; 0x10fc <__fp_zero> f7c: 67 2f mov r22, r23 f7e: 78 2f mov r23, r24 f80: 88 27 eor r24, r24 f82: b8 5f subi r27, 0xF8 ; 248 f84: 39 f0 breq .+14 ; 0xf94 <__fixunssfsi+0x46> f86: b9 3f cpi r27, 0xF9 ; 249 f88: cc f3 brlt .-14 ; 0xf7c <__fixunssfsi+0x2e> f8a: 86 95 lsr r24 f8c: 77 95 ror r23 f8e: 67 95 ror r22 f90: b3 95 inc r27 f92: d9 f7 brne .-10 ; 0xf8a <__fixunssfsi+0x3c> f94: 3e f4 brtc .+14 ; 0xfa4 <__fixunssfsi+0x56> f96: 90 95 com r25 f98: 80 95 com r24 f9a: 70 95 com r23 f9c: 61 95 neg r22 f9e: 7f 4f sbci r23, 0xFF ; 255 fa0: 8f 4f sbci r24, 0xFF ; 255 fa2: 9f 4f sbci r25, 0xFF ; 255 fa4: 08 95 ret 00000fa6 <__floatunsisf>: fa6: e8 94 clt fa8: 09 c0 rjmp .+18 ; 0xfbc <__floatsisf+0x12> 00000faa <__floatsisf>: faa: 97 fb bst r25, 7 fac: 3e f4 brtc .+14 ; 0xfbc <__floatsisf+0x12> fae: 90 95 com r25 fb0: 80 95 com r24 fb2: 70 95 com r23 fb4: 61 95 neg r22 fb6: 7f 4f sbci r23, 0xFF ; 255 fb8: 8f 4f sbci r24, 0xFF ; 255 fba: 9f 4f sbci r25, 0xFF ; 255 fbc: 99 23 and r25, r25 fbe: a9 f0 breq .+42 ; 0xfea <__floatsisf+0x40> fc0: f9 2f mov r31, r25 fc2: 96 e9 ldi r25, 0x96 ; 150 fc4: bb 27 eor r27, r27 fc6: 93 95 inc r25 fc8: f6 95 lsr r31 fca: 87 95 ror r24 fcc: 77 95 ror r23 fce: 67 95 ror r22 fd0: b7 95 ror r27 fd2: f1 11 cpse r31, r1 fd4: f8 cf rjmp .-16 ; 0xfc6 <__floatsisf+0x1c> fd6: fa f4 brpl .+62 ; 0x1016 <__floatsisf+0x6c> fd8: bb 0f add r27, r27 fda: 11 f4 brne .+4 ; 0xfe0 <__floatsisf+0x36> fdc: 60 ff sbrs r22, 0 fde: 1b c0 rjmp .+54 ; 0x1016 <__floatsisf+0x6c> fe0: 6f 5f subi r22, 0xFF ; 255 fe2: 7f 4f sbci r23, 0xFF ; 255 fe4: 8f 4f sbci r24, 0xFF ; 255 fe6: 9f 4f sbci r25, 0xFF ; 255 fe8: 16 c0 rjmp .+44 ; 0x1016 <__floatsisf+0x6c> fea: 88 23 and r24, r24 fec: 11 f0 breq .+4 ; 0xff2 <__floatsisf+0x48> fee: 96 e9 ldi r25, 0x96 ; 150 ff0: 11 c0 rjmp .+34 ; 0x1014 <__floatsisf+0x6a> ff2: 77 23 and r23, r23 ff4: 21 f0 breq .+8 ; 0xffe <__floatsisf+0x54> ff6: 9e e8 ldi r25, 0x8E ; 142 ff8: 87 2f mov r24, r23 ffa: 76 2f mov r23, r22 ffc: 05 c0 rjmp .+10 ; 0x1008 <__floatsisf+0x5e> ffe: 66 23 and r22, r22 1000: 71 f0 breq .+28 ; 0x101e <__floatsisf+0x74> 1002: 96 e8 ldi r25, 0x86 ; 134 1004: 86 2f mov r24, r22 1006: 70 e0 ldi r23, 0x00 ; 0 1008: 60 e0 ldi r22, 0x00 ; 0 100a: 2a f0 brmi .+10 ; 0x1016 <__floatsisf+0x6c> 100c: 9a 95 dec r25 100e: 66 0f add r22, r22 1010: 77 1f adc r23, r23 1012: 88 1f adc r24, r24 1014: da f7 brpl .-10 ; 0x100c <__floatsisf+0x62> 1016: 88 0f add r24, r24 1018: 96 95 lsr r25 101a: 87 95 ror r24 101c: 97 f9 bld r25, 7 101e: 08 95 ret 00001020 <__fp_cmp>: 1020: 99 0f add r25, r25 1022: 00 08 sbc r0, r0 1024: 55 0f add r21, r21 1026: aa 0b sbc r26, r26 1028: e0 e8 ldi r30, 0x80 ; 128 102a: fe ef ldi r31, 0xFE ; 254 102c: 16 16 cp r1, r22 102e: 17 06 cpc r1, r23 1030: e8 07 cpc r30, r24 1032: f9 07 cpc r31, r25 1034: c0 f0 brcs .+48 ; 0x1066 <__fp_cmp+0x46> 1036: 12 16 cp r1, r18 1038: 13 06 cpc r1, r19 103a: e4 07 cpc r30, r20 103c: f5 07 cpc r31, r21 103e: 98 f0 brcs .+38 ; 0x1066 <__fp_cmp+0x46> 1040: 62 1b sub r22, r18 1042: 73 0b sbc r23, r19 1044: 84 0b sbc r24, r20 1046: 95 0b sbc r25, r21 1048: 39 f4 brne .+14 ; 0x1058 <__fp_cmp+0x38> 104a: 0a 26 eor r0, r26 104c: 61 f0 breq .+24 ; 0x1066 <__fp_cmp+0x46> 104e: 23 2b or r18, r19 1050: 24 2b or r18, r20 1052: 25 2b or r18, r21 1054: 21 f4 brne .+8 ; 0x105e <__fp_cmp+0x3e> 1056: 08 95 ret 1058: 0a 26 eor r0, r26 105a: 09 f4 brne .+2 ; 0x105e <__fp_cmp+0x3e> 105c: a1 40 sbci r26, 0x01 ; 1 105e: a6 95 lsr r26 1060: 8f ef ldi r24, 0xFF ; 255 1062: 81 1d adc r24, r1 1064: 81 1d adc r24, r1 1066: 08 95 ret 00001068 <__fp_inf>: 1068: 97 f9 bld r25, 7 106a: 9f 67 ori r25, 0x7F ; 127 106c: 80 e8 ldi r24, 0x80 ; 128 106e: 70 e0 ldi r23, 0x00 ; 0 1070: 60 e0 ldi r22, 0x00 ; 0 1072: 08 95 ret 00001074 <__fp_nan>: 1074: 9f ef ldi r25, 0xFF ; 255 1076: 80 ec ldi r24, 0xC0 ; 192 1078: 08 95 ret 0000107a <__fp_pscA>: 107a: 00 24 eor r0, r0 107c: 0a 94 dec r0 107e: 16 16 cp r1, r22 1080: 17 06 cpc r1, r23 1082: 18 06 cpc r1, r24 1084: 09 06 cpc r0, r25 1086: 08 95 ret 00001088 <__fp_pscB>: 1088: 00 24 eor r0, r0 108a: 0a 94 dec r0 108c: 12 16 cp r1, r18 108e: 13 06 cpc r1, r19 1090: 14 06 cpc r1, r20 1092: 05 06 cpc r0, r21 1094: 08 95 ret 00001096 <__fp_round>: 1096: 09 2e mov r0, r25 1098: 03 94 inc r0 109a: 00 0c add r0, r0 109c: 11 f4 brne .+4 ; 0x10a2 <__fp_round+0xc> 109e: 88 23 and r24, r24 10a0: 52 f0 brmi .+20 ; 0x10b6 <__fp_round+0x20> 10a2: bb 0f add r27, r27 10a4: 40 f4 brcc .+16 ; 0x10b6 <__fp_round+0x20> 10a6: bf 2b or r27, r31 10a8: 11 f4 brne .+4 ; 0x10ae <__fp_round+0x18> 10aa: 60 ff sbrs r22, 0 10ac: 04 c0 rjmp .+8 ; 0x10b6 <__fp_round+0x20> 10ae: 6f 5f subi r22, 0xFF ; 255 10b0: 7f 4f sbci r23, 0xFF ; 255 10b2: 8f 4f sbci r24, 0xFF ; 255 10b4: 9f 4f sbci r25, 0xFF ; 255 10b6: 08 95 ret 000010b8 <__fp_split3>: 10b8: 57 fd sbrc r21, 7 10ba: 90 58 subi r25, 0x80 ; 128 10bc: 44 0f add r20, r20 10be: 55 1f adc r21, r21 10c0: 59 f0 breq .+22 ; 0x10d8 <__fp_splitA+0x10> 10c2: 5f 3f cpi r21, 0xFF ; 255 10c4: 71 f0 breq .+28 ; 0x10e2 <__fp_splitA+0x1a> 10c6: 47 95 ror r20 000010c8 <__fp_splitA>: 10c8: 88 0f add r24, r24 10ca: 97 fb bst r25, 7 10cc: 99 1f adc r25, r25 10ce: 61 f0 breq .+24 ; 0x10e8 <__fp_splitA+0x20> 10d0: 9f 3f cpi r25, 0xFF ; 255 10d2: 79 f0 breq .+30 ; 0x10f2 <__fp_splitA+0x2a> 10d4: 87 95 ror r24 10d6: 08 95 ret 10d8: 12 16 cp r1, r18 10da: 13 06 cpc r1, r19 10dc: 14 06 cpc r1, r20 10de: 55 1f adc r21, r21 10e0: f2 cf rjmp .-28 ; 0x10c6 <__fp_split3+0xe> 10e2: 46 95 lsr r20 10e4: f1 df rcall .-30 ; 0x10c8 <__fp_splitA> 10e6: 08 c0 rjmp .+16 ; 0x10f8 <__fp_splitA+0x30> 10e8: 16 16 cp r1, r22 10ea: 17 06 cpc r1, r23 10ec: 18 06 cpc r1, r24 10ee: 99 1f adc r25, r25 10f0: f1 cf rjmp .-30 ; 0x10d4 <__fp_splitA+0xc> 10f2: 86 95 lsr r24 10f4: 71 05 cpc r23, r1 10f6: 61 05 cpc r22, r1 10f8: 08 94 sec 10fa: 08 95 ret 000010fc <__fp_zero>: 10fc: e8 94 clt 000010fe <__fp_szero>: 10fe: bb 27 eor r27, r27 1100: 66 27 eor r22, r22 1102: 77 27 eor r23, r23 1104: cb 01 movw r24, r22 1106: 97 f9 bld r25, 7 1108: 08 95 ret 0000110a <__gesf2>: 110a: 8a df rcall .-236 ; 0x1020 <__fp_cmp> 110c: 08 f4 brcc .+2 ; 0x1110 <__gesf2+0x6> 110e: 8f ef ldi r24, 0xFF ; 255 1110: 08 95 ret 00001112 <__divmodhi4>: 1112: 97 fb bst r25, 7 1114: 07 2e mov r0, r23 1116: 16 f4 brtc .+4 ; 0x111c <__divmodhi4+0xa> 1118: 00 94 com r0 111a: 07 d0 rcall .+14 ; 0x112a <__divmodhi4_neg1> 111c: 77 fd sbrc r23, 7 111e: 09 d0 rcall .+18 ; 0x1132 <__divmodhi4_neg2> 1120: 0e 94 a9 08 call 0x1152 ; 0x1152 <__udivmodhi4> 1124: 07 fc sbrc r0, 7 1126: 05 d0 rcall .+10 ; 0x1132 <__divmodhi4_neg2> 1128: 3e f4 brtc .+14 ; 0x1138 <__divmodhi4_exit> 0000112a <__divmodhi4_neg1>: 112a: 90 95 com r25 112c: 81 95 neg r24 112e: 9f 4f sbci r25, 0xFF ; 255 1130: 08 95 ret 00001132 <__divmodhi4_neg2>: 1132: 70 95 com r23 1134: 61 95 neg r22 1136: 7f 4f sbci r23, 0xFF ; 255 00001138 <__divmodhi4_exit>: 1138: 08 95 ret 0000113a <__umulhisi3>: 113a: a2 9f mul r26, r18 113c: b0 01 movw r22, r0 113e: b3 9f mul r27, r19 1140: c0 01 movw r24, r0 1142: a3 9f mul r26, r19 1144: 01 d0 rcall .+2 ; 0x1148 <__umulhisi3+0xe> 1146: b2 9f mul r27, r18 1148: 70 0d add r23, r0 114a: 81 1d adc r24, r1 114c: 11 24 eor r1, r1 114e: 91 1d adc r25, r1 1150: 08 95 ret 00001152 <__udivmodhi4>: 1152: aa 1b sub r26, r26 1154: bb 1b sub r27, r27 1156: 51 e1 ldi r21, 0x11 ; 17 1158: 07 c0 rjmp .+14 ; 0x1168 <__udivmodhi4_ep> 0000115a <__udivmodhi4_loop>: 115a: aa 1f adc r26, r26 115c: bb 1f adc r27, r27 115e: a6 17 cp r26, r22 1160: b7 07 cpc r27, r23 1162: 10 f0 brcs .+4 ; 0x1168 <__udivmodhi4_ep> 1164: a6 1b sub r26, r22 1166: b7 0b sbc r27, r23 00001168 <__udivmodhi4_ep>: 1168: 88 1f adc r24, r24 116a: 99 1f adc r25, r25 116c: 5a 95 dec r21 116e: a9 f7 brne .-22 ; 0x115a <__udivmodhi4_loop> 1170: 80 95 com r24 1172: 90 95 com r25 1174: bc 01 movw r22, r24 1176: cd 01 movw r24, r26 1178: 08 95 ret 0000117a <__tablejump2__>: 117a: ee 0f add r30, r30 117c: ff 1f adc r31, r31 0000117e <__tablejump__>: 117e: 05 90 lpm r0, Z+ 1180: f4 91 lpm r31, Z 1182: e0 2d mov r30, r0 1184: 09 94 ijmp 00001186 <_exit>: 1186: f8 94 cli 00001188 <__stop_program>: 1188: ff cf rjmp .-2 ; 0x1188 <__stop_program>