2014-09-05 01:39:40 +02:00
|
|
|
|
|
|
|
|
|
Door.elf: file format elf32-avr
|
|
|
|
|
|
|
|
|
|
Sections:
|
|
|
|
|
Idx Name Size VMA LMA File off Algn
|
2015-02-09 18:10:07 +01:00
|
|
|
|
0 .data 00000084 00800100 0000118a 0000121e 2**0
|
2014-09-05 01:39:40 +02:00
|
|
|
|
CONTENTS, ALLOC, LOAD, DATA
|
2015-02-09 18:10:07 +01:00
|
|
|
|
1 .text 0000118a 00000000 00000000 00000094 2**1
|
2014-11-16 18:10:00 +01:00
|
|
|
|
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
2015-02-09 18:10:07 +01:00
|
|
|
|
2 .bss 00000026 00800184 00800184 000012a2 2**0
|
2014-11-19 23:57:35 +01:00
|
|
|
|
ALLOC
|
2015-02-09 18:10:07 +01:00
|
|
|
|
3 .stab 00001968 00000000 00000000 000012a4 2**2
|
2014-09-05 01:39:40 +02:00
|
|
|
|
CONTENTS, READONLY, DEBUGGING
|
2015-02-09 18:10:07 +01:00
|
|
|
|
4 .stabstr 000005b5 00000000 00000000 00002c0c 2**0
|
2014-09-05 01:39:40 +02:00
|
|
|
|
CONTENTS, READONLY, DEBUGGING
|
2015-02-09 18:10:07 +01:00
|
|
|
|
5 .comment 0000002f 00000000 00000000 000031c1 2**0
|
2014-09-05 01:39:40 +02:00
|
|
|
|
CONTENTS, READONLY
|
2015-02-09 18:10:07 +01:00
|
|
|
|
6 .debug_aranges 00000060 00000000 00000000 000031f0 2**0
|
2014-09-05 01:39:40 +02:00
|
|
|
|
CONTENTS, READONLY, DEBUGGING
|
2015-02-09 18:10:07 +01:00
|
|
|
|
7 .debug_info 00003546 00000000 00000000 00003250 2**0
|
2014-09-05 01:39:40 +02:00
|
|
|
|
CONTENTS, READONLY, DEBUGGING
|
2015-02-09 18:10:07 +01:00
|
|
|
|
8 .debug_abbrev 000004bb 00000000 00000000 00006796 2**0
|
2014-09-05 01:39:40 +02:00
|
|
|
|
CONTENTS, READONLY, DEBUGGING
|
2015-02-09 18:10:07 +01:00
|
|
|
|
9 .debug_line 000005d5 00000000 00000000 00006c51 2**0
|
2014-09-05 01:39:40 +02:00
|
|
|
|
CONTENTS, READONLY, DEBUGGING
|
2015-02-09 18:10:07 +01:00
|
|
|
|
10 .debug_frame 00000190 00000000 00000000 00007228 2**2
|
2014-09-05 01:39:40 +02:00
|
|
|
|
CONTENTS, READONLY, DEBUGGING
|
2015-02-09 18:10:07 +01:00
|
|
|
|
11 .debug_str 000013b1 00000000 00000000 000073b8 2**0
|
2014-09-05 01:39:40 +02:00
|
|
|
|
CONTENTS, READONLY, DEBUGGING
|
2015-02-09 18:10:07 +01:00
|
|
|
|
12 .debug_loc 000014d0 00000000 00000000 00008769 2**0
|
2014-11-19 23:57:35 +01:00
|
|
|
|
CONTENTS, READONLY, DEBUGGING
|
2015-02-09 18:10:07 +01:00
|
|
|
|
13 .debug_ranges 000002d8 00000000 00000000 00009c39 2**0
|
2014-09-05 01:39:40 +02:00
|
|
|
|
CONTENTS, READONLY, DEBUGGING
|
|
|
|
|
|
|
|
|
|
Disassembly of section .text:
|
|
|
|
|
|
|
|
|
|
00000000 <__vectors>:
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
|
|
|
|
|
00000068 <__ctors_start>:
|
2015-02-09 18:10:07 +01:00
|
|
|
|
68: 18 07 cpc r17, r24
|
2014-11-19 23:57:35 +01:00
|
|
|
|
|
|
|
|
|
0000006a <__ctors_end>:
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2014-11-19 23:57:35 +01:00
|
|
|
|
|
|
|
|
|
00000076 <__do_copy_data>:
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
|
|
|
|
|
0000008c <__do_clear_bss>:
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
|
|
|
|
|
00000094 <.do_clear_bss_loop>:
|
2015-02-09 18:10:07 +01:00
|
|
|
|
94: 1d 92 st X+, r1
|
2014-11-19 23:57:35 +01:00
|
|
|
|
|
|
|
|
|
00000096 <.do_clear_bss_start>:
|
2015-02-09 18:10:07 +01:00
|
|
|
|
96: aa 3a cpi r26, 0xAA ; 170
|
|
|
|
|
98: b2 07 cpc r27, r18
|
|
|
|
|
9a: e1 f7 brne .-8 ; 0x94 <.do_clear_bss_loop>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
|
|
|
|
|
0000009c <__do_global_ctors>:
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main>
|
|
|
|
|
b6: 0c 94 c3 08 jmp 0x1186 ; 0x1186 <_exit>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
|
|
|
|
|
000000ba <__bad_interrupt>:
|
2015-02-09 18:10:07 +01:00
|
|
|
|
ba: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>:
|
2015-02-08 00:22:32 +01:00
|
|
|
|
#include <avr/interrupt.h>
|
|
|
|
|
|
|
|
|
|
template <uint32_t baudrate>
|
|
|
|
|
class Uart {
|
|
|
|
|
public:
|
|
|
|
|
Uart() {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
526: cf 93 push r28
|
|
|
|
|
528: df 93 push r29
|
2015-02-08 00:22:32 +01:00
|
|
|
|
sei();
|
2015-02-09 18:10:07 +01:00
|
|
|
|
52a: 78 94 sei
|
2015-02-08 00:22:32 +01:00
|
|
|
|
void print(uint8_t wert) {
|
|
|
|
|
uart_putchar(wert);
|
2014-11-19 23:57:35 +01:00
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
private:
|
|
|
|
|
void init() {
|
|
|
|
|
UBRR0L = (F_CPU / (baudrate * 16L) - 1); //Teiler wird gesetzt
|
2015-02-09 18:10:07 +01:00
|
|
|
|
52c: 81 e8 ldi r24, 0x81 ; 129
|
|
|
|
|
52e: 80 93 c4 00 sts 0x00C4, r24
|
2015-02-08 00:22:32 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
532: 10 92 c0 00 sts 0x00C0, r1
|
2015-02-08 00:22:32 +01:00
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
2015-02-09 18:10:07 +01:00
|
|
|
|
536: 88 e0 ldi r24, 0x08 ; 8
|
|
|
|
|
538: 80 93 c1 00 sts 0x00C1, r24
|
2015-02-08 00:22:32 +01:00
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
2015-02-09 18:10:07 +01:00
|
|
|
|
53c: 86 e0 ldi r24, 0x06 ; 6
|
|
|
|
|
53e: 80 93 c2 00 sts 0x00C2, r24
|
|
|
|
|
542: a1 e0 ldi r26, 0x01 ; 1
|
|
|
|
|
544: b1 e0 ldi r27, 0x01 ; 1
|
2015-02-08 00:22:32 +01:00
|
|
|
|
sei();
|
|
|
|
|
init();
|
|
|
|
|
println("Uart done!");
|
|
|
|
|
}
|
|
|
|
|
void print(const char *text) {
|
|
|
|
|
while (*text)
|
2015-02-09 18:10:07 +01:00
|
|
|
|
546: 95 e5 ldi r25, 0x55 ; 85
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
548: e0 ec ldi r30, 0xC0 ; 192
|
|
|
|
|
54a: f0 e0 ldi r31, 0x00 ; 0
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
54c: c6 ec ldi r28, 0xC6 ; 198
|
|
|
|
|
54e: d0 e0 ldi r29, 0x00 ; 0
|
2015-02-08 00:22:32 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
2014-11-19 23:57:35 +01:00
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
550: 80 81 ld r24, Z
|
|
|
|
|
552: 85 ff sbrs r24, 5
|
|
|
|
|
554: fd cf rjmp .-6 ; 0x550 <_ZN4UartILm9600EEC1Ev+0x2a>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
556: 98 83 st Y, r25
|
2015-02-08 00:22:32 +01:00
|
|
|
|
sei();
|
|
|
|
|
init();
|
|
|
|
|
println("Uart done!");
|
|
|
|
|
}
|
|
|
|
|
void print(const char *text) {
|
|
|
|
|
while (*text)
|
2015-02-09 18:10:07 +01:00
|
|
|
|
558: 9d 91 ld r25, X+
|
|
|
|
|
55a: 91 11 cpse r25, r1
|
|
|
|
|
55c: f9 cf rjmp .-14 ; 0x550 <_ZN4UartILm9600EEC1Ev+0x2a>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
55e: e0 ec ldi r30, 0xC0 ; 192
|
|
|
|
|
560: f0 e0 ldi r31, 0x00 ; 0
|
|
|
|
|
562: 80 81 ld r24, Z
|
|
|
|
|
564: 85 ff sbrs r24, 5
|
|
|
|
|
566: fd cf rjmp .-6 ; 0x562 <_ZN4UartILm9600EEC1Ev+0x3c>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
568: 8d e0 ldi r24, 0x0D ; 13
|
|
|
|
|
56a: 80 93 c6 00 sts 0x00C6, r24
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
56e: e0 ec ldi r30, 0xC0 ; 192
|
|
|
|
|
570: f0 e0 ldi r31, 0x00 ; 0
|
|
|
|
|
572: 80 81 ld r24, Z
|
|
|
|
|
574: 85 ff sbrs r24, 5
|
|
|
|
|
576: fd cf rjmp .-6 ; 0x572 <_ZN4UartILm9600EEC1Ev+0x4c>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
578: 8a e0 ldi r24, 0x0A ; 10
|
|
|
|
|
57a: 80 93 c6 00 sts 0x00C6, r24
|
2015-02-08 00:22:32 +01:00
|
|
|
|
public:
|
|
|
|
|
Uart() {
|
|
|
|
|
sei();
|
|
|
|
|
init();
|
|
|
|
|
println("Uart done!");
|
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
57e: df 91 pop r29
|
|
|
|
|
580: cf 91 pop r28
|
|
|
|
|
582: 08 95 ret
|
2015-02-08 00:22:32 +01:00
|
|
|
|
|
2015-02-09 18:10:07 +01:00
|
|
|
|
00000584 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh>:
|
2015-02-08 00:22:32 +01:00
|
|
|
|
OCR0B=r; //ROT
|
|
|
|
|
OCR2B=g; //GR<47>N
|
|
|
|
|
OCR2A=b; //BLAU
|
|
|
|
|
}
|
|
|
|
|
void setcolor(uint8_t mask) {
|
|
|
|
|
(mask & (1<<0)) ? OCR2A=0xFF : OCR2A=0x00;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
(mask & (1<<1)) ? OCR2B=0xFF : OCR2B=0x00;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
(mask & (1<<2)) ? OCR0B=0xFF : OCR0B=0x00;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>:
|
2015-02-08 00:22:32 +01:00
|
|
|
|
} else {
|
|
|
|
|
print("0");
|
|
|
|
|
}
|
2014-11-19 23:57:35 +01:00
|
|
|
|
}
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
void println(const char *text) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
5b2: cf 93 push r28
|
|
|
|
|
5b4: df 93 push r29
|
2015-02-08 00:22:32 +01:00
|
|
|
|
sei();
|
|
|
|
|
init();
|
|
|
|
|
println("Uart done!");
|
|
|
|
|
}
|
|
|
|
|
void print(const char *text) {
|
|
|
|
|
while (*text)
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
} else {
|
|
|
|
|
print("0");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void println(const char *text) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
5be: db 01 movw r26, r22
|
|
|
|
|
5c0: 11 96 adiw r26, 0x01 ; 1
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
5c2: e0 ec ldi r30, 0xC0 ; 192
|
|
|
|
|
5c4: f0 e0 ldi r31, 0x00 ; 0
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
5c6: c6 ec ldi r28, 0xC6 ; 198
|
|
|
|
|
5c8: d0 e0 ldi r29, 0x00 ; 0
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
5ca: 80 81 ld r24, Z
|
|
|
|
|
5cc: 85 ff sbrs r24, 5
|
|
|
|
|
5ce: fd cf rjmp .-6 ; 0x5ca <_ZN4UartILm9600EE7printlnEPKc+0x18>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
5d0: 98 83 st Y, r25
|
2015-02-08 00:22:32 +01:00
|
|
|
|
sei();
|
|
|
|
|
init();
|
|
|
|
|
println("Uart done!");
|
|
|
|
|
}
|
|
|
|
|
void print(const char *text) {
|
|
|
|
|
while (*text)
|
2015-02-09 18:10:07 +01:00
|
|
|
|
5d2: 9d 91 ld r25, X+
|
|
|
|
|
5d4: 91 11 cpse r25, r1
|
|
|
|
|
5d6: f9 cf rjmp .-14 ; 0x5ca <_ZN4UartILm9600EE7printlnEPKc+0x18>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
5d8: e0 ec ldi r30, 0xC0 ; 192
|
|
|
|
|
5da: f0 e0 ldi r31, 0x00 ; 0
|
|
|
|
|
5dc: 80 81 ld r24, Z
|
|
|
|
|
5de: 85 ff sbrs r24, 5
|
|
|
|
|
5e0: fd cf rjmp .-6 ; 0x5dc <_ZN4UartILm9600EE7printlnEPKc+0x2a>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
5e2: 8d e0 ldi r24, 0x0D ; 13
|
|
|
|
|
5e4: 80 93 c6 00 sts 0x00C6, r24
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
5e8: e0 ec ldi r30, 0xC0 ; 192
|
|
|
|
|
5ea: f0 e0 ldi r31, 0x00 ; 0
|
|
|
|
|
5ec: 80 81 ld r24, Z
|
|
|
|
|
5ee: 85 ff sbrs r24, 5
|
|
|
|
|
5f0: fd cf rjmp .-6 ; 0x5ec <_ZN4UartILm9600EE7printlnEPKc+0x3a>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
5f2: 8a e0 ldi r24, 0x0A ; 10
|
|
|
|
|
5f4: 80 93 c6 00 sts 0x00C6, r24
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
void println(const char *text) {
|
|
|
|
|
print(text);
|
|
|
|
|
print("\r");
|
|
|
|
|
print("\n");
|
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
5f8: df 91 pop r29
|
|
|
|
|
5fa: cf 91 pop r28
|
|
|
|
|
5fc: 08 95 ret
|
2015-02-08 00:22:32 +01:00
|
|
|
|
|
2015-02-09 18:10:07 +01:00
|
|
|
|
000005fe <main>:
|
|
|
|
|
ledclass led;
|
2015-02-08 00:22:32 +01:00
|
|
|
|
compclass comp;
|
|
|
|
|
irclass ir;
|
|
|
|
|
|
|
|
|
|
int main(void)
|
|
|
|
|
{
|
2015-02-09 18:10:07 +01:00
|
|
|
|
5fe: cf 93 push r28
|
|
|
|
|
600: df 93 push r29
|
|
|
|
|
602: 00 d0 rcall .+0 ; 0x604 <main+0x6>
|
|
|
|
|
604: 00 d0 rcall .+0 ; 0x606 <main+0x8>
|
|
|
|
|
606: cd b7 in r28, 0x3d ; 61
|
|
|
|
|
608: de b7 in r29, 0x3e ; 62
|
2015-02-08 00:22:32 +01:00
|
|
|
|
sei();
|
2015-02-09 18:10:07 +01:00
|
|
|
|
60a: 78 94 sei
|
|
|
|
|
uint8_t doorstatus = 0;
|
2015-02-08 00:22:32 +01:00
|
|
|
|
stripe.setcolor(stripe.RED);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
Serial.println("Rot!");
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
#else
|
|
|
|
|
//round up by default
|
|
|
|
|
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
__builtin_avr_delay_cycles(__ticks_dc);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x2a>
|
|
|
|
|
630: 00 c0 rjmp .+0 ; 0x632 <main+0x34>
|
|
|
|
|
632: 00 00 nop
|
2015-02-08 00:22:32 +01:00
|
|
|
|
_delay_ms(100);
|
|
|
|
|
stripe.setcolor(stripe.GREEN);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
Serial.println("Gr<47>n!");
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x52>
|
|
|
|
|
658: 00 c0 rjmp .+0 ; 0x65a <main+0x5c>
|
|
|
|
|
65a: 00 00 nop
|
2015-02-08 00:22:32 +01:00
|
|
|
|
_delay_ms(100);
|
|
|
|
|
stripe.setcolor(stripe.BLUE);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
Serial.println("Blau!");
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x7a>
|
|
|
|
|
680: 00 c0 rjmp .+0 ; 0x682 <main+0x84>
|
|
|
|
|
682: 00 00 nop
|
2015-02-08 00:22:32 +01:00
|
|
|
|
_delay_ms(100);
|
|
|
|
|
stripe.setcolor(stripe.WHITE);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
Serial.println("Wei<65>, alles Initialisert! Habe Fertig und damit ab zum Normalbetrieb!");
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0xa2>
|
|
|
|
|
6a8: 00 c0 rjmp .+0 ; 0x6aa <main+0xac>
|
|
|
|
|
6aa: 00 00 nop
|
2015-02-08 00:22:32 +01:00
|
|
|
|
namespace avrlib {
|
|
|
|
|
|
|
|
|
|
struct portb
|
|
|
|
|
{
|
|
|
|
|
static uint8_t port() { return PORTB; }
|
|
|
|
|
static void port(uint8_t v) { PORTB = v; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
6ac: 29 9a sbi 0x05, 1 ; 5
|
2015-02-08 00:22:32 +01:00
|
|
|
|
_delay_ms(100);
|
|
|
|
|
led.green(1);
|
|
|
|
|
stripe.setcolor(stripe.BLACK);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
led.red(0);
|
|
|
|
|
EIFR |= (1<<INTF0);
|
|
|
|
|
}
|
|
|
|
|
uint8_t getCode() {
|
|
|
|
|
uint8_t ret = this->_code;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
6ba: 45 e8 ldi r20, 0x85 ; 133
|
|
|
|
|
6bc: 51 e0 ldi r21, 0x01 ; 1
|
2015-02-08 00:22:32 +01:00
|
|
|
|
this->_code = 255;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
704: e0 ec ldi r30, 0xC0 ; 192
|
|
|
|
|
706: f0 e0 ldi r31, 0x00 ; 0
|
2015-02-08 00:22:32 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
708: 0f 2e mov r0, r31
|
|
|
|
|
70a: fd e0 ldi r31, 0x0D ; 13
|
|
|
|
|
70c: df 2e mov r13, r31
|
|
|
|
|
70e: f0 2d mov r31, r0
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
led.red(0);
|
|
|
|
|
EIFR |= (1<<INTF0);
|
|
|
|
|
}
|
|
|
|
|
uint8_t getCode() {
|
|
|
|
|
uint8_t ret = this->_code;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
710: da 01 movw r26, r20
|
|
|
|
|
712: 8c 91 ld r24, X
|
2015-02-08 00:22:32 +01:00
|
|
|
|
this->_code = 255;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
714: ac 92 st X, r10
|
|
|
|
|
|
|
|
|
|
uint8_t remotetimer = 10;
|
2015-02-08 00:22:32 +01:00
|
|
|
|
while(1)
|
|
|
|
|
{
|
|
|
|
|
uint8_t c = ir.getCode();
|
|
|
|
|
switch(c) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
716: 8c 30 cpi r24, 0x0C ; 12
|
|
|
|
|
718: 09 f4 brne .+2 ; 0x71c <main+0x11e>
|
|
|
|
|
71a: fc c0 rjmp .+504 ; 0x914 <main+0x316>
|
|
|
|
|
71c: 38 f5 brcc .+78 ; 0x76c <main+0x16e>
|
|
|
|
|
71e: 85 30 cpi r24, 0x05 ; 5
|
|
|
|
|
720: 09 f4 brne .+2 ; 0x724 <main+0x126>
|
|
|
|
|
722: b3 c0 rjmp .+358 ; 0x88a <main+0x28c>
|
|
|
|
|
724: 90 f4 brcc .+36 ; 0x74a <main+0x14c>
|
|
|
|
|
726: 82 30 cpi r24, 0x02 ; 2
|
|
|
|
|
728: 09 f4 brne .+2 ; 0x72c <main+0x12e>
|
|
|
|
|
72a: 8c c0 rjmp .+280 ; 0x844 <main+0x246>
|
|
|
|
|
72c: 38 f4 brcc .+14 ; 0x73c <main+0x13e>
|
|
|
|
|
72e: 88 23 and r24, r24
|
|
|
|
|
730: 09 f4 brne .+2 ; 0x734 <main+0x136>
|
|
|
|
|
732: 46 c0 rjmp .+140 ; 0x7c0 <main+0x1c2>
|
|
|
|
|
734: 81 30 cpi r24, 0x01 ; 1
|
|
|
|
|
736: 09 f0 breq .+2 ; 0x73a <main+0x13c>
|
|
|
|
|
738: 56 c1 rjmp .+684 ; 0x9e6 <main+0x3e8>
|
|
|
|
|
73a: 63 c0 rjmp .+198 ; 0x802 <main+0x204>
|
|
|
|
|
73c: 83 30 cpi r24, 0x03 ; 3
|
|
|
|
|
73e: 09 f4 brne .+2 ; 0x742 <main+0x144>
|
|
|
|
|
740: 90 c0 rjmp .+288 ; 0x862 <main+0x264>
|
|
|
|
|
742: 84 30 cpi r24, 0x04 ; 4
|
|
|
|
|
744: 09 f0 breq .+2 ; 0x748 <main+0x14a>
|
|
|
|
|
746: 4f c1 rjmp .+670 ; 0x9e6 <main+0x3e8>
|
|
|
|
|
748: 95 c0 rjmp .+298 ; 0x874 <main+0x276>
|
|
|
|
|
74a: 88 30 cpi r24, 0x08 ; 8
|
|
|
|
|
74c: 09 f4 brne .+2 ; 0x750 <main+0x152>
|
|
|
|
|
74e: be c0 rjmp .+380 ; 0x8cc <main+0x2ce>
|
|
|
|
|
750: 38 f4 brcc .+14 ; 0x760 <main+0x162>
|
|
|
|
|
752: 86 30 cpi r24, 0x06 ; 6
|
|
|
|
|
754: 09 f4 brne .+2 ; 0x758 <main+0x15a>
|
|
|
|
|
756: a4 c0 rjmp .+328 ; 0x8a0 <main+0x2a2>
|
|
|
|
|
758: 87 30 cpi r24, 0x07 ; 7
|
|
|
|
|
75a: 09 f0 breq .+2 ; 0x75e <main+0x160>
|
|
|
|
|
75c: 44 c1 rjmp .+648 ; 0x9e6 <main+0x3e8>
|
|
|
|
|
75e: ab c0 rjmp .+342 ; 0x8b6 <main+0x2b8>
|
|
|
|
|
760: 8a 30 cpi r24, 0x0A ; 10
|
|
|
|
|
762: 09 f4 brne .+2 ; 0x766 <main+0x168>
|
|
|
|
|
764: cb c0 rjmp .+406 ; 0x8fc <main+0x2fe>
|
|
|
|
|
766: 08 f0 brcs .+2 ; 0x76a <main+0x16c>
|
|
|
|
|
768: e5 c1 rjmp .+970 ; 0xb34 <main+0x536>
|
|
|
|
|
76a: bc c0 rjmp .+376 ; 0x8e4 <main+0x2e6>
|
|
|
|
|
76c: 82 31 cpi r24, 0x12 ; 18
|
|
|
|
|
76e: 09 f4 brne .+2 ; 0x772 <main+0x174>
|
|
|
|
|
770: 0d c1 rjmp .+538 ; 0x98c <main+0x38e>
|
|
|
|
|
772: 90 f4 brcc .+36 ; 0x798 <main+0x19a>
|
|
|
|
|
774: 8f 30 cpi r24, 0x0F ; 15
|
|
|
|
|
776: 09 f4 brne .+2 ; 0x77a <main+0x17c>
|
|
|
|
|
778: dd c1 rjmp .+954 ; 0xb34 <main+0x536>
|
|
|
|
|
77a: 38 f4 brcc .+14 ; 0x78a <main+0x18c>
|
|
|
|
|
77c: 8d 30 cpi r24, 0x0D ; 13
|
|
|
|
|
77e: 09 f4 brne .+2 ; 0x782 <main+0x184>
|
|
|
|
|
780: d5 c0 rjmp .+426 ; 0x92c <main+0x32e>
|
|
|
|
|
782: 8e 30 cpi r24, 0x0E ; 14
|
|
|
|
|
784: 09 f0 breq .+2 ; 0x788 <main+0x18a>
|
|
|
|
|
786: 2f c1 rjmp .+606 ; 0x9e6 <main+0x3e8>
|
|
|
|
|
788: dd c0 rjmp .+442 ; 0x944 <main+0x346>
|
|
|
|
|
78a: 80 31 cpi r24, 0x10 ; 16
|
|
|
|
|
78c: 09 f4 brne .+2 ; 0x790 <main+0x192>
|
|
|
|
|
78e: e6 c0 rjmp .+460 ; 0x95c <main+0x35e>
|
|
|
|
|
790: 81 31 cpi r24, 0x11 ; 17
|
|
|
|
|
792: 09 f0 breq .+2 ; 0x796 <main+0x198>
|
|
|
|
|
794: 28 c1 rjmp .+592 ; 0x9e6 <main+0x3e8>
|
|
|
|
|
796: ee c0 rjmp .+476 ; 0x974 <main+0x376>
|
|
|
|
|
798: 85 31 cpi r24, 0x15 ; 21
|
|
|
|
|
79a: 09 f4 brne .+2 ; 0x79e <main+0x1a0>
|
|
|
|
|
79c: 0e c1 rjmp .+540 ; 0x9ba <main+0x3bc>
|
|
|
|
|
79e: 38 f4 brcc .+14 ; 0x7ae <main+0x1b0>
|
|
|
|
|
7a0: 83 31 cpi r24, 0x13 ; 19
|
|
|
|
|
7a2: 09 f4 brne .+2 ; 0x7a6 <main+0x1a8>
|
|
|
|
|
7a4: c7 c1 rjmp .+910 ; 0xb34 <main+0x536>
|
|
|
|
|
7a6: 84 31 cpi r24, 0x14 ; 20
|
|
|
|
|
7a8: 09 f0 breq .+2 ; 0x7ac <main+0x1ae>
|
|
|
|
|
7aa: 1d c1 rjmp .+570 ; 0x9e6 <main+0x3e8>
|
|
|
|
|
7ac: fb c0 rjmp .+502 ; 0x9a4 <main+0x3a6>
|
|
|
|
|
7ae: 87 31 cpi r24, 0x17 ; 23
|
|
|
|
|
7b0: 09 f4 brne .+2 ; 0x7b4 <main+0x1b6>
|
|
|
|
|
7b2: c0 c1 rjmp .+896 ; 0xb34 <main+0x536>
|
|
|
|
|
7b4: 08 f4 brcc .+2 ; 0x7b8 <main+0x1ba>
|
|
|
|
|
7b6: 0c c1 rjmp .+536 ; 0x9d0 <main+0x3d2>
|
|
|
|
|
7b8: 8f 3f cpi r24, 0xFF ; 255
|
|
|
|
|
7ba: 09 f0 breq .+2 ; 0x7be <main+0x1c0>
|
|
|
|
|
7bc: 14 c1 rjmp .+552 ; 0x9e6 <main+0x3e8>
|
|
|
|
|
7be: ba c1 rjmp .+884 ; 0xb34 <main+0x536>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
} else {
|
|
|
|
|
OCR2A = 0;
|
2014-11-19 23:57:35 +01:00
|
|
|
|
}
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
void higher() {
|
|
|
|
|
if(OCR0B <= 250) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
7c0: 88 b5 in r24, 0x28 ; 40
|
|
|
|
|
7c2: 8b 3f cpi r24, 0xFB ; 251
|
|
|
|
|
7c4: 20 f4 brcc .+8 ; 0x7ce <main+0x1d0>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
OCR0B = OCR0B + 5;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x1d2>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
} else {
|
|
|
|
|
OCR0B = 0;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
7ce: 18 bc out 0x28, r1 ; 40
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
if(OCR2B <= 250) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x1e4>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
OCR2B = OCR2B + 5;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x1ea>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
} else {
|
|
|
|
|
OCR2B = 0;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
7e2: a4 eb ldi r26, 0xB4 ; 180
|
|
|
|
|
7e4: b0 e0 ldi r27, 0x00 ; 0
|
|
|
|
|
7e6: 1c 92 st X, r1
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
if(OCR2A <= 250) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x1fc>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
OCR2A = OCR2A + 5;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
} else {
|
|
|
|
|
OCR2A = 0;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
void on() {
|
|
|
|
|
this->timerOn();
|
|
|
|
|
}
|
|
|
|
|
void lower() {
|
|
|
|
|
if(OCR0B >= 5) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
802: 88 b5 in r24, 0x28 ; 40
|
|
|
|
|
804: 85 30 cpi r24, 0x05 ; 5
|
|
|
|
|
806: 20 f0 brcs .+8 ; 0x810 <main+0x212>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
OCR0B = OCR0B - 5;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x214>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
} else {
|
|
|
|
|
OCR0B = 0;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
810: 18 bc out 0x28, r1 ; 40
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
if(OCR2B >= 5) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x226>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
OCR2B = OCR2B - 5;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x22c>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
} else {
|
|
|
|
|
OCR2B = 0;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
824: a4 eb ldi r26, 0xB4 ; 180
|
|
|
|
|
826: b0 e0 ldi r27, 0x00 ; 0
|
|
|
|
|
828: 1c 92 st X, r1
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
if(OCR2A >= 5) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x23e>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
OCR2A = OCR2A - 5;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
} else {
|
|
|
|
|
OCR2A = 0;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
void timerOff() {
|
|
|
|
|
// OC0B output: Disconnected
|
|
|
|
|
// OC2A output: Disconnected
|
|
|
|
|
// OC2B output: Disconnected
|
|
|
|
|
TCCR0A &= ~(1<<COM0B1);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
844: 84 b5 in r24, 0x24 ; 36
|
|
|
|
|
846: 8f 7d andi r24, 0xDF ; 223
|
|
|
|
|
848: 84 bd out 0x24, r24 ; 36
|
2015-02-08 00:22:32 +01:00
|
|
|
|
TCCR2A &= ~((1<<COM2A1) | (1<<COM2B1));
|
2015-02-09 18:10:07 +01:00
|
|
|
|
84a: a0 eb ldi r26, 0xB0 ; 176
|
|
|
|
|
84c: b0 e0 ldi r27, 0x00 ; 0
|
|
|
|
|
84e: 8c 91 ld r24, X
|
|
|
|
|
850: 8f 75 andi r24, 0x5F ; 95
|
|
|
|
|
852: 8c 93 st X, r24
|
2015-02-08 00:22:32 +01:00
|
|
|
|
namespace avrlib {
|
|
|
|
|
|
|
|
|
|
struct portd
|
|
|
|
|
{
|
|
|
|
|
static uint8_t port() { return PORTD; }
|
|
|
|
|
static void port(uint8_t v) { PORTD = v; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
854: 5d 98 cbi 0x0b, 5 ; 11
|
2015-02-08 00:22:32 +01:00
|
|
|
|
|
|
|
|
|
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; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
856: 55 9a sbi 0x0a, 5 ; 10
|
2015-02-08 00:22:32 +01:00
|
|
|
|
namespace avrlib {
|
|
|
|
|
|
|
|
|
|
struct portd
|
|
|
|
|
{
|
|
|
|
|
static uint8_t port() { return PORTD; }
|
|
|
|
|
static void port(uint8_t v) { PORTD = v; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
858: 5b 98 cbi 0x0b, 3 ; 11
|
2015-02-08 00:22:32 +01:00
|
|
|
|
|
|
|
|
|
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; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
85a: 53 9a sbi 0x0a, 3 ; 10
|
|
|
|
|
85c: 2b 98 cbi 0x05, 3 ; 5
|
2015-02-08 00:22:32 +01:00
|
|
|
|
|
|
|
|
|
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; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
85e: 23 9a sbi 0x04, 3 ; 4
|
|
|
|
|
860: 69 c1 rjmp .+722 ; 0xb34 <main+0x536>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
void timerOn() {
|
|
|
|
|
// OC0B output: Non-Inverted PWM
|
|
|
|
|
// OC2A output: Non-Inverted PWM
|
|
|
|
|
// OC2B output: Non-Inverted PWM
|
|
|
|
|
TCCR0A |= (1<<COM0B1);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
862: 84 b5 in r24, 0x24 ; 36
|
|
|
|
|
864: 80 62 ori r24, 0x20 ; 32
|
|
|
|
|
866: 84 bd out 0x24, r24 ; 36
|
2015-02-08 00:22:32 +01:00
|
|
|
|
TCCR2A |= (1<<COM2A1) | (1<<COM2B1);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
868: a0 eb ldi r26, 0xB0 ; 176
|
|
|
|
|
86a: b0 e0 ldi r27, 0x00 ; 0
|
|
|
|
|
86c: 8c 91 ld r24, X
|
|
|
|
|
86e: 80 6a ori r24, 0xA0 ; 160
|
|
|
|
|
870: 8c 93 st X, r24
|
|
|
|
|
872: 60 c1 rjmp .+704 ; 0xb34 <main+0x536>
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x536>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
case 19: break; //Button FADE
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 %
|
2015-02-08 00:22:32 +01:00
|
|
|
|
case 23: break; //Button SMOOTH
|
|
|
|
|
default: Serial.printDec(c); Serial.println(" Pressed!"); break; //Code den ich nicht kenne
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
2015-02-07 18:10:00 +01:00
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
9ee: 80 81 ld r24, Z
|
|
|
|
|
9f0: 85 ff sbrs r24, 5
|
|
|
|
|
9f2: fd cf rjmp .-6 ; 0x9ee <main+0x3f0>
|
2015-02-07 18:10:00 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-07 18:10:00 +01:00
|
|
|
|
text++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void printDec(uint16_t wert) {
|
|
|
|
|
print((wert/10000)+'0');
|
2014-11-19 23:57:35 +01:00
|
|
|
|
print(((wert/1000)%10)+'0');
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
a2a: 80 81 ld r24, Z
|
|
|
|
|
a2c: 85 ff sbrs r24, 5
|
|
|
|
|
a2e: fd cf rjmp .-6 ; 0xa2a <main+0x42c>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
a30: a6 ec ldi r26, 0xC6 ; 198
|
|
|
|
|
a32: b0 e0 ldi r27, 0x00 ; 0
|
|
|
|
|
a34: 6c 93 st X, r22
|
2014-11-19 23:57:35 +01:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void printDec(uint16_t wert) {
|
|
|
|
|
print((wert/10000)+'0');
|
|
|
|
|
print(((wert/1000)%10)+'0');
|
|
|
|
|
print(((wert/100)%10)+'0');
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
a50: 90 81 ld r25, Z
|
|
|
|
|
a52: 95 ff sbrs r25, 5
|
|
|
|
|
a54: fd cf rjmp .-6 ; 0xa50 <main+0x452>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
a56: a6 ec ldi r26, 0xC6 ; 198
|
|
|
|
|
a58: b0 e0 ldi r27, 0x00 ; 0
|
|
|
|
|
a5a: 8c 93 st X, r24
|
2014-11-19 23:57:35 +01:00
|
|
|
|
}
|
|
|
|
|
void printDec(uint16_t wert) {
|
|
|
|
|
print((wert/10000)+'0');
|
|
|
|
|
print(((wert/1000)%10)+'0');
|
|
|
|
|
print(((wert/100)%10)+'0');
|
|
|
|
|
print(((wert/10)%10)+'0');
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
aac: 90 81 ld r25, Z
|
|
|
|
|
aae: 95 ff sbrs r25, 5
|
|
|
|
|
ab0: fd cf rjmp .-6 ; 0xaac <main+0x4ae>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
ab2: a6 ec ldi r26, 0xC6 ; 198
|
|
|
|
|
ab4: b0 e0 ldi r27, 0x00 ; 0
|
|
|
|
|
ab6: 8c 93 st X, r24
|
2014-11-19 23:57:35 +01:00
|
|
|
|
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');
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
|
|
|
|
af2: 90 81 ld r25, Z
|
|
|
|
|
af4: 95 ff sbrs r25, 5
|
|
|
|
|
af6: fd cf rjmp .-6 ; 0xaf2 <main+0x4f4>
|
|
|
|
|
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<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
|
|
|
|
b06: 80 81 ld r24, Z
|
|
|
|
|
b08: 85 ff sbrs r24, 5
|
|
|
|
|
b0a: fd cf rjmp .-6 ; 0xb06 <main+0x508>
|
|
|
|
|
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 <main+0x508>
|
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
|
|
|
|
b1c: 80 81 ld r24, Z
|
|
|
|
|
b1e: 85 ff sbrs r24, 5
|
|
|
|
|
b20: fd cf rjmp .-6 ; 0xb1c <main+0x51e>
|
|
|
|
|
UDR0 = c;
|
|
|
|
|
b22: a6 ec ldi r26, 0xC6 ; 198
|
|
|
|
|
b24: b0 e0 ldi r27, 0x00 ; 0
|
|
|
|
|
b26: dc 92 st X, r13
|
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
|
|
|
|
b28: 80 81 ld r24, Z
|
|
|
|
|
b2a: 85 ff sbrs r24, 5
|
|
|
|
|
b2c: fd cf rjmp .-6 ; 0xb28 <main+0x52a>
|
|
|
|
|
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 <main+0x590>
|
|
|
|
|
if(doorstatus == 0) {
|
|
|
|
|
b3a: 21 10 cpse r2, r1
|
|
|
|
|
b3c: 52 c0 rjmp .+164 ; 0xbe2 <main+0x5e4>
|
|
|
|
|
}
|
|
|
|
|
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<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
|
|
|
|
b5c: 80 81 ld r24, Z
|
|
|
|
|
b5e: 85 ff sbrs r24, 5
|
|
|
|
|
b60: fd cf rjmp .-6 ; 0xb5c <main+0x55e>
|
|
|
|
|
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 <main+0x55e>
|
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
|
|
|
|
b72: 80 81 ld r24, Z
|
|
|
|
|
b74: 85 ff sbrs r24, 5
|
|
|
|
|
b76: fd cf rjmp .-6 ; 0xb72 <main+0x574>
|
|
|
|
|
UDR0 = c;
|
|
|
|
|
b78: a6 ec ldi r26, 0xC6 ; 198
|
|
|
|
|
b7a: b0 e0 ldi r27, 0x00 ; 0
|
|
|
|
|
b7c: dc 92 st X, r13
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
b7e: 80 81 ld r24, Z
|
|
|
|
|
b80: 85 ff sbrs r24, 5
|
|
|
|
|
b82: fd cf rjmp .-6 ; 0xb7e <main+0x580>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x5e4>
|
|
|
|
|
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 <main+0x5e4>
|
|
|
|
|
b94: a7 e7 ldi r26, 0x77 ; 119
|
|
|
|
|
b96: b1 e0 ldi r27, 0x01 ; 1
|
2015-02-08 00:22:32 +01:00
|
|
|
|
sei();
|
|
|
|
|
init();
|
|
|
|
|
println("Uart done!");
|
2014-11-19 23:57:35 +01:00
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
void print(const char *text) {
|
|
|
|
|
while (*text)
|
2015-02-09 18:10:07 +01:00
|
|
|
|
b98: 94 e5 ldi r25, 0x54 ; 84
|
|
|
|
|
b9a: 9d 01 movw r18, r26
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
b9c: 80 81 ld r24, Z
|
|
|
|
|
b9e: 85 ff sbrs r24, 5
|
|
|
|
|
ba0: fd cf rjmp .-6 ; 0xb9c <main+0x59e>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
ba2: a6 ec ldi r26, 0xC6 ; 198
|
|
|
|
|
ba4: b0 e0 ldi r27, 0x00 ; 0
|
|
|
|
|
ba6: 9c 93 st X, r25
|
2015-02-08 00:22:32 +01:00
|
|
|
|
sei();
|
|
|
|
|
init();
|
|
|
|
|
println("Uart done!");
|
|
|
|
|
}
|
|
|
|
|
void print(const char *text) {
|
|
|
|
|
while (*text)
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x59e>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
bb2: 80 81 ld r24, Z
|
|
|
|
|
bb4: 85 ff sbrs r24, 5
|
|
|
|
|
bb6: fd cf rjmp .-6 ; 0xbb2 <main+0x5b4>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
bb8: a6 ec ldi r26, 0xC6 ; 198
|
|
|
|
|
bba: b0 e0 ldi r27, 0x00 ; 0
|
|
|
|
|
bbc: dc 92 st X, r13
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UCSR0A= (0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
|
|
|
|
|
UCSR0B= (0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (0<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80); //Enable TXEN im Register UCR TX-Data Enable
|
|
|
|
|
UCSR0C= (0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0); //8N1
|
|
|
|
|
}
|
|
|
|
|
uint8_t uart_putchar(uint8_t c) {
|
|
|
|
|
loop_until_bit_is_set(UCSR0A, UDRE0); //Ausgabe des Zeichens
|
2015-02-09 18:10:07 +01:00
|
|
|
|
bbe: 80 81 ld r24, Z
|
|
|
|
|
bc0: 85 ff sbrs r24, 5
|
|
|
|
|
bc2: fd cf rjmp .-6 ; 0xbbe <main+0x5c0>
|
2014-11-19 23:57:35 +01:00
|
|
|
|
UDR0 = c;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x5e8>
|
|
|
|
|
bea: 00 c0 rjmp .+0 ; 0xbec <main+0x5ee>
|
|
|
|
|
bec: 00 00 nop
|
2015-02-08 00:22:32 +01:00
|
|
|
|
namespace avrlib {
|
2014-11-19 23:57:35 +01:00
|
|
|
|
|
2015-02-08 00:22:32 +01:00
|
|
|
|
struct portb
|
|
|
|
|
{
|
|
|
|
|
static uint8_t port() { return PORTB; }
|
|
|
|
|
static void port(uint8_t v) { PORTB = v; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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 <main+0x5f8>
|
|
|
|
|
bfe: 00 c0 rjmp .+0 ; 0xc00 <main+0x602>
|
|
|
|
|
c00: 00 00 nop
|
|
|
|
|
c02: 29 9a sbi 0x05, 1 ; 5
|
|
|
|
|
c04: 85 cd rjmp .-1270 ; 0x710 <main+0x112>
|
|
|
|
|
|
|
|
|
|
00000c06 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv>:
|
|
|
|
|
c06: 55 9a sbi 0x0a, 5 ; 10
|
|
|
|
|
c08: 53 9a sbi 0x0a, 3 ; 10
|
2015-02-08 00:22:32 +01:00
|
|
|
|
|
|
|
|
|
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; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
// 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<<COM0A1) | (0<<COM0A0) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c10: 81 e0 ldi r24, 0x01 ; 1
|
|
|
|
|
c12: 84 bd out 0x24, r24 ; 36
|
2015-02-08 00:22:32 +01:00
|
|
|
|
TCCR0B=(0<<WGM02) | (1<<CS02) | (0<<CS01) | (0<<CS00);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c14: 94 e0 ldi r25, 0x04 ; 4
|
|
|
|
|
c16: 95 bd out 0x25, r25 ; 37
|
2015-02-08 00:22:32 +01:00
|
|
|
|
TCNT0=0x00;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c18: 16 bc out 0x26, r1 ; 38
|
|
|
|
|
// Timer Period: 3,2768 ms
|
|
|
|
|
// Timer1 Overflow Interrupt: On
|
|
|
|
|
// Input Capture Interrupt: Off
|
|
|
|
|
// Compare A Match Interrupt: Off
|
|
|
|
|
// Compare B Match Interrupt: Off
|
|
|
|
|
TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
|
|
|
|
|
c1a: 10 92 80 00 sts 0x0080, r1
|
|
|
|
|
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (1<<CS11) | (0<<CS10);
|
|
|
|
|
c1e: 92 e0 ldi r25, 0x02 ; 2
|
|
|
|
|
c20: 90 93 81 00 sts 0x0081, r25
|
|
|
|
|
TCNT1H=0x00;
|
|
|
|
|
c24: 10 92 85 00 sts 0x0085, r1
|
|
|
|
|
TCNT1L=0x00;
|
|
|
|
|
c28: 10 92 84 00 sts 0x0084, r1
|
2015-02-08 00:22:32 +01:00
|
|
|
|
// Mode: Phase correct PWM top=0xFF
|
|
|
|
|
// Timer Period: 0,06375 ms
|
|
|
|
|
// Output Pulse(s):
|
|
|
|
|
// OC2A Period: 0,06375 ms Width: 0 us
|
|
|
|
|
// OC2B Period: 0,06375 ms Width: 0 us
|
|
|
|
|
ASSR=(0<<EXCLK) | (0<<AS2);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c2c: 10 92 b6 00 sts 0x00B6, r1
|
2015-02-08 00:22:32 +01:00
|
|
|
|
TCCR2A=(0<<COM2A0) | (0<<COM2B0) | (0<<WGM21) | (1<<WGM20);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c30: e0 eb ldi r30, 0xB0 ; 176
|
|
|
|
|
c32: f0 e0 ldi r31, 0x00 ; 0
|
|
|
|
|
c34: 80 83 st Z, r24
|
2015-02-08 00:22:32 +01:00
|
|
|
|
TCCR2B=(0<<WGM22) | (1<<CS22) | (0<<CS21) | (1<<CS20);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c36: 95 e0 ldi r25, 0x05 ; 5
|
|
|
|
|
c38: 90 93 b1 00 sts 0x00B1, r25
|
2015-02-08 00:22:32 +01:00
|
|
|
|
TCNT2=0x00;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c3c: 10 92 b2 00 sts 0x00B2, r1
|
2015-02-08 00:22:32 +01:00
|
|
|
|
// Timer/Counter 0 Interrupt(s) initialization
|
|
|
|
|
TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c40: 10 92 6e 00 sts 0x006E, r1
|
|
|
|
|
// Timer/Counter 1 Interrupt(s) initialization
|
|
|
|
|
TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (1<<TOIE1);
|
|
|
|
|
c44: 80 93 6f 00 sts 0x006F, r24
|
2015-02-08 00:22:32 +01:00
|
|
|
|
// Timer/Counter 2 Interrupt(s) initialization
|
|
|
|
|
TIMSK2=(0<<OCIE2B) | (0<<OCIE2A) | (0<<TOIE2);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c48: 10 92 70 00 sts 0x0070, r1
|
2014-11-19 23:57:35 +01:00
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
void timerOn() {
|
|
|
|
|
// OC0B output: Non-Inverted PWM
|
|
|
|
|
// OC2A output: Non-Inverted PWM
|
|
|
|
|
// OC2B output: Non-Inverted PWM
|
|
|
|
|
TCCR0A |= (1<<COM0B1);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c4c: 84 b5 in r24, 0x24 ; 36
|
|
|
|
|
c4e: 80 62 ori r24, 0x20 ; 32
|
|
|
|
|
c50: 84 bd out 0x24, r24 ; 36
|
2015-02-08 00:22:32 +01:00
|
|
|
|
TCCR2A |= (1<<COM2A1) | (1<<COM2B1);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c52: 80 81 ld r24, Z
|
|
|
|
|
c54: 80 6a ori r24, 0xA0 ; 160
|
|
|
|
|
c56: 80 83 st Z, r24
|
2015-02-08 00:22:32 +01:00
|
|
|
|
public:
|
|
|
|
|
Stripe() {
|
|
|
|
|
this->init();
|
|
|
|
|
}
|
|
|
|
|
void color(uint8_t r, uint8_t g, uint8_t b) {
|
|
|
|
|
OCR0B=r; //ROT
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c58: 18 bc out 0x28, r1 ; 40
|
2015-02-08 00:22:32 +01:00
|
|
|
|
OCR2B=g; //GR<47>N
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c5a: 10 92 b4 00 sts 0x00B4, r1
|
2015-02-08 00:22:32 +01:00
|
|
|
|
OCR2A=b; //BLAU
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c5e: 10 92 b3 00 sts 0x00B3, r1
|
|
|
|
|
c62: 08 95 ret
|
2014-11-19 23:57:35 +01:00
|
|
|
|
|
2015-02-09 18:10:07 +01:00
|
|
|
|
00000c64 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv>:
|
2015-02-08 00:22:32 +01:00
|
|
|
|
// Interrupt on any change on pins PCINT16-23: Off
|
|
|
|
|
EICRA=(0<<ISC11) | (0<<ISC10) | (1<<ISC01) | (0<<ISC00);
|
|
|
|
|
EIMSK=(0<<INT1) | (1<<INT0);
|
|
|
|
|
EIFR=(0<<INTF1) | (0<<INTF0);
|
|
|
|
|
}
|
|
|
|
|
uint8_t read8bit() {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c64: 20 e0 ldi r18, 0x00 ; 0
|
|
|
|
|
c66: 30 e0 ldi r19, 0x00 ; 0
|
2015-02-08 00:22:32 +01:00
|
|
|
|
uint8_t r = 0;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c68: 80 e0 ldi r24, 0x00 ; 0
|
2015-02-08 00:22:32 +01:00
|
|
|
|
for (uint8_t i=0;i<8;i++) {
|
|
|
|
|
intpin::wait_is_set();
|
|
|
|
|
_delay_us(800);
|
|
|
|
|
if(intpin::read()) {
|
|
|
|
|
r |= (1<<i);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c6a: 61 e0 ldi r22, 0x01 ; 1
|
|
|
|
|
c6c: 70 e0 ldi r23, 0x00 ; 0
|
2015-02-08 00:22:32 +01:00
|
|
|
|
static void set_high() { set(true); }
|
|
|
|
|
static void set_low() { set(false); }
|
|
|
|
|
static bool read() { return value(); }
|
|
|
|
|
static void pullup() { set_high(); }
|
|
|
|
|
|
|
|
|
|
static void wait_is_set() { do { } while (!(Port::pin() & (1<<Pin))); }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c6e: 4a 9b sbis 0x09, 2 ; 9
|
|
|
|
|
c70: fe cf rjmp .-4 ; 0xc6e <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0xa>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
#else
|
|
|
|
|
//round up by default
|
|
|
|
|
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
__builtin_avr_delay_cycles(__ticks_dc);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
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()) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c7e: 4a 9b sbis 0x09, 2 ; 9
|
|
|
|
|
c80: 08 c0 rjmp .+16 ; 0xc92 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x2e>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
r |= (1<<i);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
c82: ab 01 movw r20, r22
|
|
|
|
|
c84: 02 2e mov r0, r18
|
|
|
|
|
c86: 02 c0 rjmp .+4 ; 0xc8c <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x28>
|
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
for(uint8_t j=0;j<50;j++) {
|
|
|
|
|
if(!intpin::value()) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
intpin::wait_is_set();
|
|
|
|
|
_delay_us(800);
|
|
|
|
|
if(intpin::read()) {
|
|
|
|
|
r |= (1<<i);
|
|
|
|
|
}
|
|
|
|
|
for(uint8_t j=0;j<50;j++) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
ca6: c1 f7 brne .-16 ; 0xc98 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x34>
|
|
|
|
|
ca8: 2f 5f subi r18, 0xFF ; 255
|
|
|
|
|
caa: 3f 4f sbci r19, 0xFF ; 255
|
2015-02-08 00:22:32 +01:00
|
|
|
|
EIMSK=(0<<INT1) | (1<<INT0);
|
|
|
|
|
EIFR=(0<<INTF1) | (0<<INTF0);
|
|
|
|
|
}
|
|
|
|
|
uint8_t read8bit() {
|
|
|
|
|
uint8_t r = 0;
|
|
|
|
|
for (uint8_t i=0;i<8;i++) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
cac: 28 30 cpi r18, 0x08 ; 8
|
|
|
|
|
cae: 31 05 cpc r19, r1
|
|
|
|
|
cb0: f1 f6 brne .-68 ; 0xc6e <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0xa>
|
|
|
|
|
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>:
|
2015-02-08 00:22:32 +01:00
|
|
|
|
_delay_ms(99);
|
|
|
|
|
led.green(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ISR(INT0_vect) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
namespace avrlib {
|
|
|
|
|
|
|
|
|
|
struct portb
|
|
|
|
|
{
|
|
|
|
|
static uint8_t port() { return PORTB; }
|
|
|
|
|
static void port(uint8_t v) { PORTB = v; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
ce4: 28 9a sbi 0x05, 0 ; 5
|
2015-02-08 00:22:32 +01:00
|
|
|
|
public:
|
|
|
|
|
IR() {
|
|
|
|
|
this->init();
|
|
|
|
|
}
|
|
|
|
|
int read() {
|
|
|
|
|
if(intpin::value()) { //Is High, Abbort
|
2015-02-09 18:10:07 +01:00
|
|
|
|
ce6: 4a 99 sbic 0x09, 2 ; 9
|
|
|
|
|
ce8: 79 c0 rjmp .+242 ; 0xddc <__vector_1+0x11c>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
#else
|
|
|
|
|
//round up by default
|
|
|
|
|
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
__builtin_avr_delay_cycles(__ticks_dc);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
return 254;
|
2014-11-19 23:57:35 +01:00
|
|
|
|
}
|
2015-02-08 00:22:32 +01:00
|
|
|
|
_delay_ms(4); //Wait 4ms
|
|
|
|
|
if(intpin::value()) { //Is High, Abbort
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
static void wait_is_clear() { do {} while ((Port::pin() & (1<<Pin))); }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
cfe: 4a 99 sbic 0x09, 2 ; 9
|
|
|
|
|
d00: fe cf rjmp .-4 ; 0xcfe <__vector_1+0x3e>
|
|
|
|
|
d02: 80 e0 ldi r24, 0x00 ; 0
|
|
|
|
|
d04: 90 e0 ldi r25, 0x00 ; 0
|
|
|
|
|
d06: 60 e0 ldi r22, 0x00 ; 0
|
2015-02-08 00:22:32 +01:00
|
|
|
|
uint8_t r = 0;
|
|
|
|
|
for (uint8_t i=0;i<8;i++) {
|
|
|
|
|
intpin::wait_is_set();
|
|
|
|
|
_delay_us(800);
|
|
|
|
|
if(intpin::read()) {
|
|
|
|
|
r |= (1<<i);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
d08: 41 e0 ldi r20, 0x01 ; 1
|
|
|
|
|
d0a: 50 e0 ldi r21, 0x00 ; 0
|
2015-02-08 00:22:32 +01:00
|
|
|
|
static void set_high() { set(true); }
|
|
|
|
|
static void set_low() { set(false); }
|
|
|
|
|
static bool read() { return value(); }
|
|
|
|
|
static void pullup() { set_high(); }
|
|
|
|
|
|
|
|
|
|
static void wait_is_set() { do { } while (!(Port::pin() & (1<<Pin))); }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
d0c: 4a 9b sbis 0x09, 2 ; 9
|
|
|
|
|
d0e: fe cf rjmp .-4 ; 0xd0c <__vector_1+0x4c>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
#else
|
|
|
|
|
//round up by default
|
|
|
|
|
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
__builtin_avr_delay_cycles(__ticks_dc);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
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()) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
d1c: 4a 9b sbis 0x09, 2 ; 9
|
|
|
|
|
d1e: 08 c0 rjmp .+16 ; 0xd30 <__vector_1+0x70>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
r |= (1<<i);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
d20: 9a 01 movw r18, r20
|
|
|
|
|
d22: 08 2e mov r0, r24
|
|
|
|
|
d24: 02 c0 rjmp .+4 ; 0xd2a <__vector_1+0x6a>
|
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
for(uint8_t j=0;j<50;j++) {
|
|
|
|
|
if(!intpin::value()) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
intpin::wait_is_set();
|
|
|
|
|
_delay_us(800);
|
|
|
|
|
if(intpin::read()) {
|
|
|
|
|
r |= (1<<i);
|
|
|
|
|
}
|
|
|
|
|
for(uint8_t j=0;j<50;j++) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
d44: c1 f7 brne .-16 ; 0xd36 <__vector_1+0x76>
|
|
|
|
|
d46: 01 96 adiw r24, 0x01 ; 1
|
2015-02-08 00:22:32 +01:00
|
|
|
|
EIMSK=(0<<INT1) | (1<<INT0);
|
|
|
|
|
EIFR=(0<<INTF1) | (0<<INTF0);
|
|
|
|
|
}
|
|
|
|
|
uint8_t read8bit() {
|
|
|
|
|
uint8_t r = 0;
|
|
|
|
|
for (uint8_t i=0;i<8;i++) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
d48: 88 30 cpi r24, 0x08 ; 8
|
|
|
|
|
d4a: 91 05 cpc r25, r1
|
|
|
|
|
d4c: f9 f6 brne .-66 ; 0xd0c <__vector_1+0x4c>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
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;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
uint8_t r = 0;
|
|
|
|
|
for (uint8_t i=0;i<8;i++) {
|
|
|
|
|
intpin::wait_is_set();
|
|
|
|
|
_delay_us(800);
|
|
|
|
|
if(intpin::read()) {
|
|
|
|
|
r |= (1<<i);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
d56: 41 e0 ldi r20, 0x01 ; 1
|
|
|
|
|
d58: 50 e0 ldi r21, 0x00 ; 0
|
|
|
|
|
d5a: 4a 9b sbis 0x09, 2 ; 9
|
|
|
|
|
d5c: fe cf rjmp .-4 ; 0xd5a <__vector_1+0x9a>
|
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
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()) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
d6a: 4a 9b sbis 0x09, 2 ; 9
|
|
|
|
|
d6c: 08 c0 rjmp .+16 ; 0xd7e <__vector_1+0xbe>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
r |= (1<<i);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
d6e: 9a 01 movw r18, r20
|
|
|
|
|
d70: 08 2e mov r0, r24
|
|
|
|
|
d72: 02 c0 rjmp .+4 ; 0xd78 <__vector_1+0xb8>
|
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
for(uint8_t j=0;j<50;j++) {
|
|
|
|
|
if(!intpin::value()) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
intpin::wait_is_set();
|
|
|
|
|
_delay_us(800);
|
|
|
|
|
if(intpin::read()) {
|
|
|
|
|
r |= (1<<i);
|
|
|
|
|
}
|
|
|
|
|
for(uint8_t j=0;j<50;j++) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
d92: c1 f7 brne .-16 ; 0xd84 <__vector_1+0xc4>
|
|
|
|
|
d94: 01 96 adiw r24, 0x01 ; 1
|
2015-02-08 00:22:32 +01:00
|
|
|
|
EIMSK=(0<<INT1) | (1<<INT0);
|
|
|
|
|
EIFR=(0<<INTF1) | (0<<INTF0);
|
|
|
|
|
}
|
|
|
|
|
uint8_t read8bit() {
|
|
|
|
|
uint8_t r = 0;
|
|
|
|
|
for (uint8_t i=0;i<8;i++) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
d96: 88 30 cpi r24, 0x08 ; 8
|
|
|
|
|
d98: 91 05 cpc r25, r1
|
|
|
|
|
d9a: f9 f6 brne .-66 ; 0xd5a <__vector_1+0x9a>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
//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) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
d9c: 6f 3e cpi r22, 0xEF ; 239
|
|
|
|
|
d9e: 91 f4 brne .+36 ; 0xdc4 <__vector_1+0x104>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
return 255;
|
|
|
|
|
}
|
|
|
|
|
//Read Byte 3 and 4 (Data Byte and Checksum Byte!
|
|
|
|
|
uint8_t a = this->read8bit();
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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
|
2015-02-08 00:22:32 +01:00
|
|
|
|
uint8_t b = this->read8bit();
|
2015-02-09 18:10:07 +01:00
|
|
|
|
daa: 84 e8 ldi r24, 0x84 ; 132
|
|
|
|
|
dac: 91 e0 ldi r25, 0x01 ; 1
|
|
|
|
|
dae: 0e 94 32 06 call 0xc64 ; 0xc64 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
//Make Checksum Byte 3 + 4 must be 255!
|
|
|
|
|
if(a+b != 255) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
//The Interrupt Function
|
|
|
|
|
void interrupt() {
|
|
|
|
|
led.red(1);
|
|
|
|
|
uint8_t code = this->read();
|
|
|
|
|
if(code == 255) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
dc0: cf 3f cpi r28, 0xFF ; 255
|
|
|
|
|
dc2: 51 f4 brne .+20 ; 0xdd8 <__vector_1+0x118>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
#else
|
|
|
|
|
//round up by default
|
|
|
|
|
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
__builtin_avr_delay_cycles(__ticks_dc);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
_delay_ms(500);
|
|
|
|
|
} else if(code == 254) {
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
_delay_ms(1);
|
|
|
|
|
} else {
|
|
|
|
|
this->_code = code;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
dea: c0 93 85 01 sts 0x0185, r28
|
|
|
|
|
dee: 28 98 cbi 0x05, 0 ; 5
|
2015-02-08 00:22:32 +01:00
|
|
|
|
}
|
|
|
|
|
led.red(0);
|
|
|
|
|
EIFR |= (1<<INTF0);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
df0: e0 9a sbi 0x1c, 0 ; 28
|
|
|
|
|
df2: 0c c0 rjmp .+24 ; 0xe0c <__vector_1+0x14c>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
#else
|
|
|
|
|
//round up by default
|
|
|
|
|
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
__builtin_avr_delay_cycles(__ticks_dc);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
ir.interrupt();
|
|
|
|
|
}
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>:
|
2015-02-08 00:22:32 +01:00
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "peripheral.h"
|
|
|
|
|
#include <util/delay.h>
|
|
|
|
|
|
|
|
|
|
uartclass Serial;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e30: 89 ea ldi r24, 0xA9 ; 169
|
|
|
|
|
e32: 91 e0 ldi r25, 0x01 ; 1
|
|
|
|
|
e34: 0e 94 93 02 call 0x526 ; 0x526 <_ZN4UartILm9600EEC1Ev>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
|
|
|
|
|
template <typename PortR, int pin_red, typename PortG, int pin_green, typename PortB, int pin_blue>
|
|
|
|
|
class Stripe {
|
|
|
|
|
public:
|
|
|
|
|
Stripe() {
|
|
|
|
|
this->init();
|
2015-02-09 18:10:07 +01:00
|
|
|
|
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>
|
2015-02-08 00:22:32 +01:00
|
|
|
|
|
|
|
|
|
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; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e40: 20 9a sbi 0x04, 0 ; 4
|
|
|
|
|
e42: 21 9a sbi 0x04, 1 ; 4
|
2015-02-08 00:22:32 +01:00
|
|
|
|
namespace avrlib {
|
|
|
|
|
|
|
|
|
|
struct portb
|
|
|
|
|
{
|
|
|
|
|
static uint8_t port() { return PORTB; }
|
|
|
|
|
static void port(uint8_t v) { PORTB = v; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e44: 28 98 cbi 0x05, 0 ; 5
|
|
|
|
|
e46: 29 98 cbi 0x05, 1 ; 5
|
|
|
|
|
e48: 56 98 cbi 0x0a, 6 ; 10
|
2015-02-08 00:22:32 +01:00
|
|
|
|
namespace avrlib {
|
|
|
|
|
|
|
|
|
|
struct portd
|
|
|
|
|
{
|
|
|
|
|
static uint8_t port() { return PORTD; }
|
|
|
|
|
static void port(uint8_t v) { PORTD = v; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e4a: 5e 98 cbi 0x0b, 6 ; 11
|
2015-02-08 00:22:32 +01:00
|
|
|
|
|
|
|
|
|
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; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e4c: 57 98 cbi 0x0a, 7 ; 10
|
2015-02-08 00:22:32 +01:00
|
|
|
|
namespace avrlib {
|
|
|
|
|
|
|
|
|
|
struct portd
|
|
|
|
|
{
|
|
|
|
|
static uint8_t port() { return PORTD; }
|
|
|
|
|
static void port(uint8_t v) { PORTD = v; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e4e: 5f 98 cbi 0x0b, 7 ; 11
|
2015-02-08 00:22:32 +01:00
|
|
|
|
// 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<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e50: 10 be out 0x30, r1 ; 48
|
2015-02-08 00:22:32 +01:00
|
|
|
|
ADCSRB=(0<<ACME);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e52: 10 92 7b 00 sts 0x007B, r1
|
2015-02-08 00:22:32 +01:00
|
|
|
|
// Digital input buffer on AIN0: Off
|
|
|
|
|
// Digital input buffer on AIN1: Off
|
|
|
|
|
DIDR1=(1<<AIN0D) | (1<<AIN1D);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e56: 83 e0 ldi r24, 0x03 ; 3
|
|
|
|
|
e58: 80 93 7f 00 sts 0x007F, r24
|
2015-02-08 00:22:32 +01:00
|
|
|
|
|
|
|
|
|
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; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e5c: 20 9a sbi 0x04, 0 ; 4
|
|
|
|
|
e5e: 21 9a sbi 0x04, 1 ; 4
|
2015-02-08 00:22:32 +01:00
|
|
|
|
namespace avrlib {
|
|
|
|
|
|
|
|
|
|
struct portb
|
|
|
|
|
{
|
|
|
|
|
static uint8_t port() { return PORTB; }
|
|
|
|
|
static void port(uint8_t v) { PORTB = v; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e60: 28 98 cbi 0x05, 0 ; 5
|
|
|
|
|
e62: 29 98 cbi 0x05, 1 ; 5
|
2015-02-08 00:22:32 +01:00
|
|
|
|
|
|
|
|
|
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; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e64: 52 98 cbi 0x0a, 2 ; 10
|
2015-02-08 00:22:32 +01:00
|
|
|
|
namespace avrlib {
|
|
|
|
|
|
|
|
|
|
struct portd
|
|
|
|
|
{
|
|
|
|
|
static uint8_t port() { return PORTD; }
|
|
|
|
|
static void port(uint8_t v) { PORTD = v; }
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e66: 5a 98 cbi 0x0b, 2 ; 11
|
2015-02-08 00:22:32 +01:00
|
|
|
|
private:
|
|
|
|
|
Led led;
|
|
|
|
|
uint8_t _code;
|
|
|
|
|
void init() {
|
|
|
|
|
intpin::make_input();
|
|
|
|
|
this->_code = 255;
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e68: 8f ef ldi r24, 0xFF ; 255
|
|
|
|
|
e6a: 80 93 85 01 sts 0x0185, r24
|
2015-02-08 00:22:32 +01:00
|
|
|
|
// 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<<ISC11) | (0<<ISC10) | (1<<ISC01) | (0<<ISC00);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e6e: 82 e0 ldi r24, 0x02 ; 2
|
|
|
|
|
e70: 80 93 69 00 sts 0x0069, r24
|
2015-02-08 00:22:32 +01:00
|
|
|
|
EIMSK=(0<<INT1) | (1<<INT0);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e74: 81 e0 ldi r24, 0x01 ; 1
|
|
|
|
|
e76: 8d bb out 0x1d, r24 ; 29
|
2015-02-08 00:22:32 +01:00
|
|
|
|
EIFR=(0<<INTF1) | (0<<INTF0);
|
2015-02-09 18:10:07 +01:00
|
|
|
|
e78: 1c ba out 0x1c, r1 ; 28
|
|
|
|
|
e7a: 08 95 ret
|
|
|
|
|
|
|
|
|
|
00000e7c <__subsf3>:
|
|
|
|
|
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>
|