diff --git a/Timer/Timer.c b/Timer/Timer.c index 5387a02..83875e9 100644 --- a/Timer/Timer.c +++ b/Timer/Timer.c @@ -47,74 +47,49 @@ volatile uint8_t segs[] = { // 2,0,1,3,14,2,0,1,3,14,2,0,1,3}; //2013 2013 2013 // 14,14,18,18,19,19,20,20}; volatile uint8_t frame[6] = {14,14, 14,14, 14,14}; -char var = 0; +uint8_t var = 0; void display(uint8_t z, uint8_t p) { - DDRB = (segs[z]<<1); - PORTB = (segs[z]<<1); + uint8_t ddr = (segs[z]<<1); + uint8_t port = (segs[z]<<1); for(uint8_t i = 1;i<=p;i++) { - if(DDRB & (1<= 100) //wenn Zustand mindestens 200x10ms = 2sec. andauert - { - if(frame[2] == 14) { - frame[2] = 0; - frame[3] = 1; - frame[4] = 2; - } else { - frame[2] = 14; - frame[3] = 14; - frame[4] = 14; - } - } - -}*/ void timerdown(uint8_t min) { - frame[0] = 11; - for(uint8_t j=0;j<=min;j++) { - frame[2] = (uint8_t)((MIN-j)/10); - frame[3] = (uint8_t)((MIN-j)%10); - for(uint8_t i=0;i<=59;i++) { - frame[4] = (uint8_t)((59-i)/10); - frame[5] = (uint8_t)((59-i)%10); - frame[0] = (i%2==0)?11:14; - for(uint8_t k=0;k<82;k++) { - render(); - } - } - } + frame[2] = min/10; + frame[3] = min%10; + frame[4] = 0; + frame[5] = 0; + cli(); + TCCR0A |= (1<= 31) { //wenn Zustand mindestens 200x10ms = 2sec. andauert + var = 0; + if(frame[5] > 0) { + frame[5] = frame[5]--; + } else { + frame[5] = 9; + if(frame[4] > 0) { + frame[4] = frame[4]--; + } else { + frame[4] = 5; + if(frame[3] > 0) { + frame[3] = frame[3]--; + } else { + frame[3] = 9; + if(frame[2] > 0) { + frame[2] = frame[2]--; + } else { + frame[2] = 9; + } + } + } + } + frame[0] = (frame[0]==14)?11:14; + /*frame[2] = (uint8_t)((MIN-j)/10); + frame[3] = (uint8_t)((MIN-j)%10); + frame[4] = (uint8_t)((59-i)/10); + frame[5] = (uint8_t)((59-i)%10); + frame[0] = (i%2==0)?11:14;*/ + } else { + var++; + } + +}//*/ + int main(void) { DDRB = 0; - /*cli(); - //TCCR1B |= (1< 16: 20 c0 rjmp .+64 ; 0x58 <__bad_interrupt> 18: 1f c0 rjmp .+62 ; 0x58 <__bad_interrupt> - 1a: 1e c0 rjmp .+60 ; 0x58 <__bad_interrupt> + 1a: 75 c2 rjmp .+1258 ; 0x506 <__vector_13> 1c: 1d c0 rjmp .+58 ; 0x58 <__bad_interrupt> 1e: 1c c0 rjmp .+56 ; 0x58 <__bad_interrupt> 20: 1b c0 rjmp .+54 ; 0x58 <__bad_interrupt> @@ -67,7 +67,7 @@ Disassembly of section .text: 2e: 10 e0 ldi r17, 0x00 ; 0 30: a0 e6 ldi r26, 0x60 ; 96 32: b0 e0 ldi r27, 0x00 ; 0 - 34: ea e1 ldi r30, 0x1A ; 26 + 34: e4 e2 ldi r30, 0x24 ; 36 36: f6 e0 ldi r31, 0x06 ; 6 38: 02 c0 rjmp .+4 ; 0x3e <__SP_H__> 3a: 05 90 lpm r0, Z+ @@ -89,8 +89,8 @@ Disassembly of section .text: 4e: a9 39 cpi r26, 0x99 ; 153 50: b1 07 cpc r27, r17 52: e1 f7 brne .-8 ; 0x4c <.do_clear_bss_loop> - 54: 9e d2 rcall .+1340 ; 0x592
- 56: df c2 rjmp .+1470 ; 0x616 <_exit> + 54: b1 d2 rcall .+1378 ; 0x5b8
+ 56: e4 c2 rjmp .+1480 ; 0x620 <_exit> 00000058 <__bad_interrupt>: 58: d3 cf rjmp .-90 ; 0x0 <__vectors> @@ -98,1240 +98,1227 @@ Disassembly of section .text: 0000005a : // 14,14,18,18,19,19,20,20}; volatile uint8_t frame[6] = {14,14, 14,14, 14,14}; -char var = 0; +uint8_t var = 0; void display(uint8_t z, uint8_t p) { - DDRB = (segs[z]<<1); + uint8_t ddr = (segs[z]<<1); 5a: e8 2f mov r30, r24 5c: f0 e0 ldi r31, 0x00 ; 0 5e: e0 5a subi r30, 0xA0 ; 160 60: ff 4f sbci r31, 0xFF ; 255 - 62: 80 81 ld r24, Z - 64: 88 0f add r24, r24 - 66: 87 bb out 0x17, r24 ; 23 - PORTB = (segs[z]<<1); - 68: 80 81 ld r24, Z - 6a: 88 0f add r24, r24 - 6c: 88 bb out 0x18, r24 ; 24 + 62: a0 81 ld r26, Z + 64: aa 0f add r26, r26 + uint8_t port = (segs[z]<<1); + 66: 70 81 ld r23, Z + 68: 77 0f add r23, r23 for(uint8_t i = 1;i<=p;i++) { - 6e: 71 e0 ldi r23, 0x01 ; 1 - if(DDRB & (1< - if(DDRB & (1< - 82: 35 95 asr r19 - 84: 27 95 ror r18 - 86: 0a 94 dec r0 - 88: e2 f7 brpl .-8 ; 0x82 - 8a: 01 97 sbiw r24, 0x01 ; 1 - 8c: 20 ff sbrs r18, 0 - 8e: 0a c0 rjmp .+20 ; 0xa4 - DDRB |= (1<<(i-1)); - 90: 27 b3 in r18, 0x17 ; 23 - 92: fa 01 movw r30, r20 - 94: 02 c0 rjmp .+4 ; 0x9a - 96: ee 0f add r30, r30 - 98: ff 1f adc r31, r31 - 9a: 8a 95 dec r24 - 9c: e2 f7 brpl .-8 ; 0x96 - 9e: 2e 2b or r18, r30 - a0: 27 bb out 0x17, r18 ; 23 - a2: 0b c0 rjmp .+22 ; 0xba + 70: 1f c0 rjmp .+62 ; 0xb0 + if(ddr & (1< + 7e: 35 95 asr r19 + 80: 27 95 ror r18 + 82: 0a 94 dec r0 + 84: e2 f7 brpl .-8 ; 0x7e + 86: 01 97 sbiw r24, 0x01 ; 1 + 88: 20 ff sbrs r18, 0 + 8a: 08 c0 rjmp .+16 ; 0x9c + ddr |= (1<<(i-1)); + 8c: 9a 01 movw r18, r20 + 8e: 02 c0 rjmp .+4 ; 0x94 + 90: 22 0f add r18, r18 + 92: 33 1f adc r19, r19 + 94: 8a 95 dec r24 + 96: e2 f7 brpl .-8 ; 0x90 + 98: a2 2b or r26, r18 + 9a: 09 c0 rjmp .+18 ; 0xae } else { - DDRB &= ~(1<<(i-1)); - a4: 27 b3 in r18, 0x17 ; 23 - a6: fa 01 movw r30, r20 - a8: 02 c0 rjmp .+4 ; 0xae - aa: ee 0f add r30, r30 - ac: ff 1f adc r31, r31 - ae: 8a 95 dec r24 - b0: e2 f7 brpl .-8 ; 0xaa - b2: cf 01 movw r24, r30 - b4: 80 95 com r24 - b6: 82 23 and r24, r18 - b8: 87 bb out 0x17, r24 ; 23 -char var = 0; + ddr &= ~(1<<(i-1)); + 9c: 9a 01 movw r18, r20 + 9e: 02 c0 rjmp .+4 ; 0xa4 + a0: 22 0f add r18, r18 + a2: 33 1f adc r19, r19 + a4: 8a 95 dec r24 + a6: e2 f7 brpl .-8 ; 0xa0 + a8: c9 01 movw r24, r18 + aa: 80 95 com r24 + ac: a8 23 and r26, r24 +uint8_t var = 0; void display(uint8_t z, uint8_t p) { - DDRB = (segs[z]<<1); - PORTB = (segs[z]<<1); + uint8_t ddr = (segs[z]<<1); + uint8_t port = (segs[z]<<1); for(uint8_t i = 1;i<=p;i++) { - ba: 7f 5f subi r23, 0xFF ; 255 - bc: 67 17 cp r22, r23 - be: d8 f6 brcc .-74 ; 0x76 - c0: 71 e0 ldi r23, 0x01 ; 1 + ae: ef 5f subi r30, 0xFF ; 255 + b0: 6e 17 cp r22, r30 + b2: f8 f6 brcc .-66 ; 0x72 + b4: e1 e0 ldi r30, 0x01 ; 1 } for(uint8_t i = 1;i<=p;i++) { - if(PORTB & (1< + port &= ~(1<<(i-1)); + b6: 41 e0 ldi r20, 0x01 ; 1 + b8: 50 e0 ldi r21, 0x00 ; 0 + ba: 1f c0 rjmp .+62 ; 0xfa <__stack+0x1b> } else { - DDRB &= ~(1<<(i-1)); + ddr &= ~(1<<(i-1)); } } for(uint8_t i = 1;i<=p;i++) { - if(PORTB & (1< - d4: 35 95 asr r19 - d6: 27 95 ror r18 - d8: 0a 94 dec r0 - da: e2 f7 brpl .-8 ; 0xd4 - dc: 01 97 sbiw r24, 0x01 ; 1 - de: 20 ff sbrs r18, 0 - e0: 0a c0 rjmp .+20 ; 0xf6 <__stack+0x17> - PORTB |= (1<<(i-1)); - e2: 28 b3 in r18, 0x18 ; 24 - e4: fa 01 movw r30, r20 - e6: 02 c0 rjmp .+4 ; 0xec <__stack+0xd> - e8: ee 0f add r30, r30 - ea: ff 1f adc r31, r31 - ec: 8a 95 dec r24 - ee: e2 f7 brpl .-8 ; 0xe8 <__stack+0x9> - f0: 2e 2b or r18, r30 - f2: 28 bb out 0x18, r18 ; 24 - f4: 0b c0 rjmp .+22 ; 0x10c <__stack+0x2d> + if(port & (1< + c8: 35 95 asr r19 + ca: 27 95 ror r18 + cc: 0a 94 dec r0 + ce: e2 f7 brpl .-8 ; 0xc8 + d0: 01 97 sbiw r24, 0x01 ; 1 + d2: 20 ff sbrs r18, 0 + d4: 08 c0 rjmp .+16 ; 0xe6 <__stack+0x7> + port |= (1<<(i-1)); + d6: 9a 01 movw r18, r20 + d8: 02 c0 rjmp .+4 ; 0xde + da: 22 0f add r18, r18 + dc: 33 1f adc r19, r19 + de: 8a 95 dec r24 + e0: e2 f7 brpl .-8 ; 0xda + e2: 72 2b or r23, r18 + e4: 09 c0 rjmp .+18 ; 0xf8 <__stack+0x19> } else { - PORTB &= ~(1<<(i-1)); - f6: 28 b3 in r18, 0x18 ; 24 - f8: fa 01 movw r30, r20 - fa: 02 c0 rjmp .+4 ; 0x100 <__stack+0x21> - fc: ee 0f add r30, r30 - fe: ff 1f adc r31, r31 - 100: 8a 95 dec r24 - 102: e2 f7 brpl .-8 ; 0xfc <__stack+0x1d> - 104: cf 01 movw r24, r30 - 106: 80 95 com r24 - 108: 82 23 and r24, r18 - 10a: 88 bb out 0x18, r24 ; 24 - DDRB |= (1<<(i-1)); + port &= ~(1<<(i-1)); + e6: 9a 01 movw r18, r20 + e8: 02 c0 rjmp .+4 ; 0xee <__stack+0xf> + ea: 22 0f add r18, r18 + ec: 33 1f adc r19, r19 + ee: 8a 95 dec r24 + f0: e2 f7 brpl .-8 ; 0xea <__stack+0xb> + f2: c9 01 movw r24, r18 + f4: 80 95 com r24 + f6: 78 23 and r23, r24 + ddr |= (1<<(i-1)); } else { - DDRB &= ~(1<<(i-1)); + ddr &= ~(1<<(i-1)); } } for(uint8_t i = 1;i<=p;i++) { - 10c: 7f 5f subi r23, 0xFF ; 255 - 10e: 67 17 cp r22, r23 - 110: d8 f6 brcc .-74 ; 0xc8 - PORTB |= (1<<(i-1)); + f8: ef 5f subi r30, 0xFF ; 255 + fa: 6e 17 cp r22, r30 + fc: f8 f6 brcc .-66 ; 0xbc + port |= (1<<(i-1)); } else { - PORTB &= ~(1<<(i-1)); + port &= ~(1<<(i-1)); } } - DDRB |= (1< - 11a: 88 0f add r24, r24 - 11c: 99 1f adc r25, r25 - 11e: 6a 95 dec r22 - 120: e2 f7 brpl .-8 ; 0x11a <__stack+0x3b> - 122: 28 2b or r18, r24 - 124: 27 bb out 0x17, r18 ; 23 - PORTB &= ~(1< + 104: 88 0f add r24, r24 + 106: 99 1f adc r25, r25 + 108: 6a 95 dec r22 + 10a: e2 f7 brpl .-8 ; 0x104 <__stack+0x25> + 10c: a8 2b or r26, r24 + port &= ~(1<: +0000011a : void render() { - 130: 1f 93 push r17 - 132: cf 93 push r28 - 134: df 93 push r29 - 136: 17 e0 ldi r17, 0x07 ; 7 - 138: c0 e0 ldi r28, 0x00 ; 0 - 13a: d0 e0 ldi r29, 0x00 ; 0 + 11a: 1f 93 push r17 + 11c: cf 93 push r28 + 11e: df 93 push r29 + 120: 17 e0 ldi r17, 0x07 ; 7 + 122: c0 e0 ldi r28, 0x00 ; 0 + 124: d0 e0 ldi r29, 0x00 ; 0 for(uint8_t f = 0;f<6;f++) { display(frame[f],(5-f)+2); - 13c: fe 01 movw r30, r28 - 13e: e2 58 subi r30, 0x82 ; 130 - 140: ff 4f sbci r31, 0xFF ; 255 - 142: 80 81 ld r24, Z - 144: 61 2f mov r22, r17 - 146: 89 df rcall .-238 ; 0x5a + 126: fe 01 movw r30, r28 + 128: e2 58 subi r30, 0x82 ; 130 + 12a: ff 4f sbci r31, 0xFF ; 255 + 12c: 80 81 ld r24, Z + 12e: 61 2f mov r22, r17 + 130: 94 df rcall .-216 ; 0x5a #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 148: 8f e9 ldi r24, 0x9F ; 159 - 14a: 9f e0 ldi r25, 0x0F ; 15 - 14c: 01 97 sbiw r24, 0x01 ; 1 - 14e: f1 f7 brne .-4 ; 0x14c - 150: 00 c0 rjmp .+0 ; 0x152 - 152: 00 00 nop - 154: 21 96 adiw r28, 0x01 ; 1 - 156: 11 50 subi r17, 0x01 ; 1 - } - DDRB |= (1< + 138: 00 00 nop + 13a: 21 96 adiw r28, 0x01 ; 1 + 13c: 11 50 subi r17, 0x01 ; 1 + PORTB = 0; + DDRB = ddr; + PORTB = port; } void render() { for(uint8_t f = 0;f<6;f++) { - 158: 11 30 cpi r17, 0x01 ; 1 - 15a: 81 f7 brne .-32 ; 0x13c + 13e: 11 30 cpi r17, 0x01 ; 1 + 140: 91 f7 brne .-28 ; 0x126 display(frame[f],(5-f)+2); - _delay_us(2000); + _delay_us(50); } } - 15c: df 91 pop r29 - 15e: cf 91 pop r28 - 160: 1f 91 pop r17 - 162: 08 95 ret + 142: df 91 pop r29 + 144: cf 91 pop r28 + 146: 1f 91 pop r17 + 148: 08 95 ret -00000164 : - } - } - -}*/ +0000014a : void timerdown(uint8_t min) { - 164: 8f 92 push r8 - 166: 9f 92 push r9 - 168: bf 92 push r11 - 16a: cf 92 push r12 - 16c: df 92 push r13 - 16e: ef 92 push r14 - 170: ff 92 push r15 - 172: 0f 93 push r16 - 174: 1f 93 push r17 - 176: df 93 push r29 - 178: cf 93 push r28 - 17a: 0f 92 push r0 - 17c: cd b7 in r28, 0x3d ; 61 - 17e: de b7 in r29, 0x3e ; 62 - 180: c8 2e mov r12, r24 - frame[0] = 11; - 182: 8b e0 ldi r24, 0x0B ; 11 - 184: 80 93 7e 00 sts 0x007E, r24 - for(uint8_t j=0;j<=min;j++) { - 188: dd 24 eor r13, r13 - frame[2] = (uint8_t)((MIN-j)/10); - 18a: 2d e1 ldi r18, 0x1D ; 29 - 18c: e2 2e mov r14, r18 - 18e: f1 2c mov r15, r1 - 190: 0a e0 ldi r16, 0x0A ; 10 - 192: 10 e0 ldi r17, 0x00 ; 0 - 194: c7 01 movw r24, r14 - 196: 8d 19 sub r24, r13 - 198: 91 09 sbc r25, r1 - 19a: b8 01 movw r22, r16 - 19c: 15 d2 rcall .+1066 ; 0x5c8 <__divmodhi4> - 19e: 60 93 80 00 sts 0x0080, r22 - frame[3] = (uint8_t)((MIN-j)%10); - 1a2: 80 93 81 00 sts 0x0081, r24 - 1a6: 9b e3 ldi r25, 0x3B ; 59 - 1a8: 89 2e mov r8, r25 - 1aa: 91 2c mov r9, r1 - for(uint8_t i=0;i<=59;i++) { - 1ac: 20 e0 ldi r18, 0x00 ; 0 - frame[4] = (uint8_t)((59-i)/10); - 1ae: c4 01 movw r24, r8 - 1b0: b8 01 movw r22, r16 - 1b2: 0a d2 rcall .+1044 ; 0x5c8 <__divmodhi4> - 1b4: 60 93 82 00 sts 0x0082, r22 - frame[5] = (uint8_t)((59-i)%10); - 1b8: 80 93 83 00 sts 0x0083, r24 - frame[0] = (i%2==0)?11:14; - 1bc: 20 ff sbrs r18, 0 - 1be: 02 c0 rjmp .+4 ; 0x1c4 - 1c0: 8e e0 ldi r24, 0x0E ; 14 - 1c2: 01 c0 rjmp .+2 ; 0x1c6 - 1c4: 8b e0 ldi r24, 0x0B ; 11 - 1c6: 80 93 7e 00 sts 0x007E, r24 - 1ca: 82 e5 ldi r24, 0x52 ; 82 - 1cc: b8 2e mov r11, r24 - for(uint8_t k=0;k<82;k++) { - render(); - 1ce: 29 83 std Y+1, r18 ; 0x01 - 1d0: af df rcall .-162 ; 0x130 - 1d2: ba 94 dec r11 - frame[3] = (uint8_t)((MIN-j)%10); - for(uint8_t i=0;i<=59;i++) { - frame[4] = (uint8_t)((59-i)/10); - frame[5] = (uint8_t)((59-i)%10); - frame[0] = (i%2==0)?11:14; - for(uint8_t k=0;k<82;k++) { - 1d4: 29 81 ldd r18, Y+1 ; 0x01 - 1d6: bb 20 and r11, r11 - 1d8: d1 f7 brne .-12 ; 0x1ce -void timerdown(uint8_t min) { - frame[0] = 11; - for(uint8_t j=0;j<=min;j++) { - frame[2] = (uint8_t)((MIN-j)/10); - frame[3] = (uint8_t)((MIN-j)%10); - for(uint8_t i=0;i<=59;i++) { - 1da: 2f 5f subi r18, 0xFF ; 255 - 1dc: 08 94 sec - 1de: 81 08 sbc r8, r1 - 1e0: 91 08 sbc r9, r1 - 1e2: 2c 33 cpi r18, 0x3C ; 60 - 1e4: 21 f7 brne .-56 ; 0x1ae - -}*/ - -void timerdown(uint8_t min) { - frame[0] = 11; - for(uint8_t j=0;j<=min;j++) { - 1e6: d3 94 inc r13 - 1e8: cd 14 cp r12, r13 - 1ea: a0 f6 brcc .-88 ; 0x194 - for(uint8_t k=0;k<82;k++) { - render(); - } - } - } + frame[2] = min/10; + 14a: 6a e0 ldi r22, 0x0A ; 10 + 14c: 5d d2 rcall .+1210 ; 0x608 <__udivmodqi4> + 14e: 80 93 80 00 sts 0x0080, r24 + frame[3] = min%10; + 152: 90 93 81 00 sts 0x0081, r25 + frame[4] = 0; + 156: 10 92 82 00 sts 0x0082, r1 + frame[5] = 0; + 15a: 10 92 83 00 sts 0x0083, r1 + cli(); + 15e: f8 94 cli + TCCR0A |= (1<: +0000017a : void timerup(uint8_t min) { - 206: ef 92 push r14 - 208: ff 92 push r15 - 20a: 0f 93 push r16 - 20c: 1f 93 push r17 + 17a: ef 92 push r14 + 17c: ff 92 push r15 + 17e: 0f 93 push r16 + 180: 1f 93 push r17 frame[0] = 10; - 20e: 9a e0 ldi r25, 0x0A ; 10 - 210: 90 93 7e 00 sts 0x007E, r25 + 182: 9a e0 ldi r25, 0x0A ; 10 + 184: 90 93 7e 00 sts 0x007E, r25 for(uint8_t j=min;j<=99;j++) { - 214: 08 2f mov r16, r24 + 188: 08 2f mov r16, r24 frame[2] = (uint8_t)(j/10); - 216: 4a e0 ldi r20, 0x0A ; 10 - 218: f4 2e mov r15, r20 - } + 18a: 9a e0 ldi r25, 0x0A ; 10 + 18c: f9 2e mov r15, r25 + sei(); } void timerup(uint8_t min) { frame[0] = 10; for(uint8_t j=min;j<=99;j++) { - 21a: 1f c0 rjmp .+62 ; 0x25a + 18e: 1f c0 rjmp .+62 ; 0x1ce frame[2] = (uint8_t)(j/10); - 21c: 80 2f mov r24, r16 - 21e: 6f 2d mov r22, r15 - 220: c7 d1 rcall .+910 ; 0x5b0 <__udivmodqi4> - 222: 80 93 80 00 sts 0x0080, r24 + 190: 80 2f mov r24, r16 + 192: 6f 2d mov r22, r15 + 194: 39 d2 rcall .+1138 ; 0x608 <__udivmodqi4> + 196: 80 93 80 00 sts 0x0080, r24 frame[3] = (uint8_t)(j%10); - 226: 90 93 81 00 sts 0x0081, r25 + 19a: 90 93 81 00 sts 0x0081, r25 for(uint8_t i=0;i<=59;i++) { - 22a: 10 e0 ldi r17, 0x00 ; 0 + 19e: 10 e0 ldi r17, 0x00 ; 0 frame[4] = (uint8_t)(i/10); - 22c: 81 2f mov r24, r17 - 22e: 6f 2d mov r22, r15 - 230: bf d1 rcall .+894 ; 0x5b0 <__udivmodqi4> - 232: 80 93 82 00 sts 0x0082, r24 + 1a0: 81 2f mov r24, r17 + 1a2: 6f 2d mov r22, r15 + 1a4: 31 d2 rcall .+1122 ; 0x608 <__udivmodqi4> + 1a6: 80 93 82 00 sts 0x0082, r24 frame[5] = (uint8_t)(i%10); - 236: 90 93 83 00 sts 0x0083, r25 + 1aa: 90 93 83 00 sts 0x0083, r25 frame[0] = (i%2==0)?10:14; - 23a: 10 ff sbrs r17, 0 - 23c: 02 c0 rjmp .+4 ; 0x242 - 23e: 8e e0 ldi r24, 0x0E ; 14 - 240: 01 c0 rjmp .+2 ; 0x244 - 242: 8a e0 ldi r24, 0x0A ; 10 - 244: 80 93 7e 00 sts 0x007E, r24 - 248: 32 e5 ldi r19, 0x52 ; 82 - 24a: e3 2e mov r14, r19 + 1ae: 10 ff sbrs r17, 0 + 1b0: 02 c0 rjmp .+4 ; 0x1b6 + 1b2: 8e e0 ldi r24, 0x0E ; 14 + 1b4: 01 c0 rjmp .+2 ; 0x1b8 + 1b6: 8a e0 ldi r24, 0x0A ; 10 + 1b8: 80 93 7e 00 sts 0x007E, r24 + 1bc: 82 e5 ldi r24, 0x52 ; 82 + 1be: e8 2e mov r14, r24 for(uint8_t k=0;k<82;k++) { render(); - 24c: 71 df rcall .-286 ; 0x130 - 24e: ea 94 dec r14 + 1c0: ac df rcall .-168 ; 0x11a + 1c2: ea 94 dec r14 frame[3] = (uint8_t)(j%10); for(uint8_t i=0;i<=59;i++) { frame[4] = (uint8_t)(i/10); frame[5] = (uint8_t)(i%10); frame[0] = (i%2==0)?10:14; for(uint8_t k=0;k<82;k++) { - 250: e9 f7 brne .-6 ; 0x24c + 1c4: e9 f7 brne .-6 ; 0x1c0 void timerup(uint8_t min) { frame[0] = 10; for(uint8_t j=min;j<=99;j++) { frame[2] = (uint8_t)(j/10); frame[3] = (uint8_t)(j%10); for(uint8_t i=0;i<=59;i++) { - 252: 1f 5f subi r17, 0xFF ; 255 - 254: 1c 33 cpi r17, 0x3C ; 60 - 256: 51 f7 brne .-44 ; 0x22c - } + 1c6: 1f 5f subi r17, 0xFF ; 255 + 1c8: 1c 33 cpi r17, 0x3C ; 60 + 1ca: 51 f7 brne .-44 ; 0x1a0 + sei(); } void timerup(uint8_t min) { frame[0] = 10; for(uint8_t j=min;j<=99;j++) { - 258: 0f 5f subi r16, 0xFF ; 255 - 25a: 04 36 cpi r16, 0x64 ; 100 - 25c: f8 f2 brcs .-66 ; 0x21c + 1cc: 0f 5f subi r16, 0xFF ; 255 + 1ce: 04 36 cpi r16, 0x64 ; 100 + 1d0: f8 f2 brcs .-66 ; 0x190 for(uint8_t k=0;k<82;k++) { render(); } } } } - 25e: 1f 91 pop r17 - 260: 0f 91 pop r16 - 262: ff 90 pop r15 - 264: ef 90 pop r14 - 266: 08 95 ret + 1d2: 1f 91 pop r17 + 1d4: 0f 91 pop r16 + 1d6: ff 90 pop r15 + 1d8: ef 90 pop r14 + 1da: 08 95 ret -00000268 : +000001dc : void start() { DDRD |= (1< - 27c: 00 c0 rjmp .+0 ; 0x27e - 27e: 00 00 nop + 1e2: 8f ef ldi r24, 0xFF ; 255 + 1e4: 94 e3 ldi r25, 0x34 ; 52 + 1e6: ac e0 ldi r26, 0x0C ; 12 + 1e8: 81 50 subi r24, 0x01 ; 1 + 1ea: 90 40 sbci r25, 0x00 ; 0 + 1ec: a0 40 sbci r26, 0x00 ; 0 + 1ee: e1 f7 brne .-8 ; 0x1e8 + 1f0: 00 c0 rjmp .+0 ; 0x1f2 + 1f2: 00 00 nop _delay_ms(500); while(1) { if (!(PIND & (1< + 1f4: 85 99 sbic 0x10, 5 ; 16 + 1f6: fe cf rjmp .-4 ; 0x1f4 break; } } } - 284: 08 95 ret + 1f8: 08 95 ret -00000286 : +000001fa : void endelauflicht() { - 286: df 92 push r13 - 288: ef 92 push r14 - 28a: ff 92 push r15 - 28c: 0f 93 push r16 - 28e: 1f 93 push r17 + 1fa: df 92 push r13 + 1fc: ef 92 push r14 + 1fe: ff 92 push r15 + 200: 0f 93 push r16 + 202: 1f 93 push r17 frame[0] = 10; - 290: 8a e0 ldi r24, 0x0A ; 10 - 292: 80 93 7e 00 sts 0x007E, r24 - 296: 09 e2 ldi r16, 0x29 ; 41 + 204: 8a e0 ldi r24, 0x0A ; 10 + 206: 80 93 7e 00 sts 0x007E, r24 + 20a: 09 e2 ldi r16, 0x29 ; 41 for(uint8_t j=0;j<41;j++) { frame[2] = 15; - 298: 7f e0 ldi r23, 0x0F ; 15 - 29a: f7 2e mov r15, r23 + 20c: 4f e0 ldi r20, 0x0F ; 15 + 20e: f4 2e mov r15, r20 frame[3] = 14; - 29c: 1e e0 ldi r17, 0x0E ; 14 + 210: 1e e0 ldi r17, 0x0E ; 14 frame[5] = 14; for(uint8_t k=0;k<5;k++) { render(); } frame[2] = 14; frame[3] = 16; - 29e: 60 e1 ldi r22, 0x10 ; 16 - 2a0: d6 2e mov r13, r22 + 212: 30 e1 ldi r19, 0x10 ; 16 + 214: d3 2e mov r13, r19 for(uint8_t k=0;k<5;k++) { render(); } frame[3] = 14; frame[4] = 17; - 2a2: 51 e1 ldi r21, 0x11 ; 17 - 2a4: e5 2e mov r14, r21 + 216: 21 e1 ldi r18, 0x11 ; 17 + 218: e2 2e mov r14, r18 } void endelauflicht() { frame[0] = 10; for(uint8_t j=0;j<41;j++) { frame[2] = 15; - 2a6: f0 92 80 00 sts 0x0080, r15 + 21a: f0 92 80 00 sts 0x0080, r15 frame[3] = 14; - 2aa: 10 93 81 00 sts 0x0081, r17 + 21e: 10 93 81 00 sts 0x0081, r17 frame[4] = 14; - 2ae: 10 93 82 00 sts 0x0082, r17 + 222: 10 93 82 00 sts 0x0082, r17 frame[5] = 14; - 2b2: 10 93 83 00 sts 0x0083, r17 + 226: 10 93 83 00 sts 0x0083, r17 for(uint8_t k=0;k<5;k++) { render(); - 2b6: 3c df rcall .-392 ; 0x130 - 2b8: 3b df rcall .-394 ; 0x130 - 2ba: 3a df rcall .-396 ; 0x130 - 2bc: 39 df rcall .-398 ; 0x130 - 2be: 38 df rcall .-400 ; 0x130 + 22a: 77 df rcall .-274 ; 0x11a + 22c: 76 df rcall .-276 ; 0x11a + 22e: 75 df rcall .-278 ; 0x11a + 230: 74 df rcall .-280 ; 0x11a + 232: 73 df rcall .-282 ; 0x11a } frame[2] = 14; - 2c0: 10 93 80 00 sts 0x0080, r17 + 234: 10 93 80 00 sts 0x0080, r17 frame[3] = 16; - 2c4: d0 92 81 00 sts 0x0081, r13 + 238: d0 92 81 00 sts 0x0081, r13 for(uint8_t k=0;k<5;k++) { render(); - 2c8: 33 df rcall .-410 ; 0x130 - 2ca: 32 df rcall .-412 ; 0x130 - 2cc: 31 df rcall .-414 ; 0x130 - 2ce: 30 df rcall .-416 ; 0x130 - 2d0: 2f df rcall .-418 ; 0x130 + 23c: 6e df rcall .-292 ; 0x11a + 23e: 6d df rcall .-294 ; 0x11a + 240: 6c df rcall .-296 ; 0x11a + 242: 6b df rcall .-298 ; 0x11a + 244: 6a df rcall .-300 ; 0x11a } frame[3] = 14; - 2d2: 10 93 81 00 sts 0x0081, r17 + 246: 10 93 81 00 sts 0x0081, r17 frame[4] = 17; - 2d6: e0 92 82 00 sts 0x0082, r14 + 24a: e0 92 82 00 sts 0x0082, r14 for(uint8_t k=0;k<5;k++) { render(); - 2da: 2a df rcall .-428 ; 0x130 - 2dc: 29 df rcall .-430 ; 0x130 - 2de: 28 df rcall .-432 ; 0x130 - 2e0: 27 df rcall .-434 ; 0x130 - 2e2: 26 df rcall .-436 ; 0x130 + 24e: 65 df rcall .-310 ; 0x11a + 250: 64 df rcall .-312 ; 0x11a + 252: 63 df rcall .-314 ; 0x11a + 254: 62 df rcall .-316 ; 0x11a + 256: 61 df rcall .-318 ; 0x11a } frame[4] = 14; - 2e4: 10 93 82 00 sts 0x0082, r17 + 258: 10 93 82 00 sts 0x0082, r17 frame[5] = 15; - 2e8: f0 92 83 00 sts 0x0083, r15 + 25c: f0 92 83 00 sts 0x0083, r15 for(uint8_t k=0;k<5;k++) { render(); - 2ec: 21 df rcall .-446 ; 0x130 - 2ee: 20 df rcall .-448 ; 0x130 - 2f0: 1f df rcall .-450 ; 0x130 - 2f2: 1e df rcall .-452 ; 0x130 - 2f4: 1d df rcall .-454 ; 0x130 - 2f6: 01 50 subi r16, 0x01 ; 1 + 260: 5c df rcall .-328 ; 0x11a + 262: 5b df rcall .-330 ; 0x11a + 264: 5a df rcall .-332 ; 0x11a + 266: 59 df rcall .-334 ; 0x11a + 268: 58 df rcall .-336 ; 0x11a + 26a: 01 50 subi r16, 0x01 ; 1 } } void endelauflicht() { frame[0] = 10; for(uint8_t j=0;j<41;j++) { - 2f8: b1 f6 brne .-84 ; 0x2a6 + 26c: b1 f6 brne .-84 ; 0x21a frame[5] = 15; for(uint8_t k=0;k<5;k++) { render(); } } } - 2fa: 1f 91 pop r17 - 2fc: 0f 91 pop r16 - 2fe: ff 90 pop r15 - 300: ef 90 pop r14 - 302: df 90 pop r13 - 304: 08 95 ret + 26e: 1f 91 pop r17 + 270: 0f 91 pop r16 + 272: ff 90 pop r15 + 274: ef 90 pop r14 + 276: df 90 pop r13 + 278: 08 95 ret -00000306 : +0000027a : void enderand() { + 27a: df 92 push r13 + 27c: ef 92 push r14 + 27e: ff 92 push r15 + 280: 0f 93 push r16 + 282: 1f 93 push r17 + frame[0] = 10; + 284: 8a e0 ldi r24, 0x0A ; 10 + 286: 80 93 7e 00 sts 0x007E, r24 + 28a: 09 e2 ldi r16, 0x29 ; 41 + for(uint8_t j=0;j<41;j++) { + frame[2] = 14; + 28c: 1e e0 ldi r17, 0x0E ; 14 + frame[3] = 14; + frame[4] = 14; + frame[5] = 15; + 28e: 7f e0 ldi r23, 0x0F ; 15 + 290: f7 2e mov r15, r23 + for(uint8_t k=0;k<5;k++) { + render(); + } + frame[5] = 14; + frame[3] = 16; + 292: 60 e1 ldi r22, 0x10 ; 16 + 294: d6 2e mov r13, r22 + for(uint8_t k=0;k<5;k++) { + render(); + } + frame[3] = 14; + frame[4] = 17; + 296: 51 e1 ldi r21, 0x11 ; 17 + 298: e5 2e mov r14, r21 +} + +void enderand() { + frame[0] = 10; + for(uint8_t j=0;j<41;j++) { + frame[2] = 14; + 29a: 10 93 80 00 sts 0x0080, r17 + frame[3] = 14; + 29e: 10 93 81 00 sts 0x0081, r17 + frame[4] = 14; + 2a2: 10 93 82 00 sts 0x0082, r17 + frame[5] = 15; + 2a6: f0 92 83 00 sts 0x0083, r15 + for(uint8_t k=0;k<5;k++) { + render(); + 2aa: 37 df rcall .-402 ; 0x11a + 2ac: 36 df rcall .-404 ; 0x11a + 2ae: 35 df rcall .-406 ; 0x11a + 2b0: 34 df rcall .-408 ; 0x11a + 2b2: 33 df rcall .-410 ; 0x11a + } + frame[5] = 14; + 2b4: 10 93 83 00 sts 0x0083, r17 + frame[3] = 16; + 2b8: d0 92 81 00 sts 0x0081, r13 + for(uint8_t k=0;k<5;k++) { + render(); + 2bc: 2e df rcall .-420 ; 0x11a + 2be: 2d df rcall .-422 ; 0x11a + 2c0: 2c df rcall .-424 ; 0x11a + 2c2: 2b df rcall .-426 ; 0x11a + 2c4: 2a df rcall .-428 ; 0x11a + } + frame[3] = 14; + 2c6: 10 93 81 00 sts 0x0081, r17 + frame[4] = 17; + 2ca: e0 92 82 00 sts 0x0082, r14 + for(uint8_t k=0;k<5;k++) { + render(); + 2ce: 25 df rcall .-438 ; 0x11a + 2d0: 24 df rcall .-440 ; 0x11a + 2d2: 23 df rcall .-442 ; 0x11a + 2d4: 22 df rcall .-444 ; 0x11a + 2d6: 21 df rcall .-446 ; 0x11a + } + frame[2] = 15; + 2d8: f0 92 80 00 sts 0x0080, r15 + frame[4] = 14; + 2dc: 10 93 82 00 sts 0x0082, r17 + for(uint8_t k=0;k<5;k++) { + render(); + 2e0: 1c df rcall .-456 ; 0x11a + 2e2: 1b df rcall .-458 ; 0x11a + 2e4: 1a df rcall .-460 ; 0x11a + 2e6: 19 df rcall .-462 ; 0x11a + 2e8: 18 df rcall .-464 ; 0x11a + 2ea: 01 50 subi r16, 0x01 ; 1 + } +} + +void enderand() { + frame[0] = 10; + for(uint8_t j=0;j<41;j++) { + 2ec: b1 f6 brne .-84 ; 0x29a + frame[4] = 14; + for(uint8_t k=0;k<5;k++) { + render(); + } + } +} + 2ee: 1f 91 pop r17 + 2f0: 0f 91 pop r16 + 2f2: ff 90 pop r15 + 2f4: ef 90 pop r14 + 2f6: df 90 pop r13 + 2f8: 08 95 ret + +000002fa : + +void endeblink() { + 2fa: 7f 92 push r7 + 2fc: 8f 92 push r8 + 2fe: 9f 92 push r9 + 300: af 92 push r10 + 302: bf 92 push r11 + 304: cf 92 push r12 306: df 92 push r13 308: ef 92 push r14 30a: ff 92 push r15 30c: 0f 93 push r16 30e: 1f 93 push r17 + 310: cf 93 push r28 + 312: df 93 push r29 frame[0] = 10; - 310: 8a e0 ldi r24, 0x0A ; 10 - 312: 80 93 7e 00 sts 0x007E, r24 - 316: 09 e2 ldi r16, 0x29 ; 41 - for(uint8_t j=0;j<41;j++) { - frame[2] = 14; - 318: 1e e0 ldi r17, 0x0E ; 14 - frame[3] = 14; - frame[4] = 14; - frame[5] = 15; - 31a: af e0 ldi r26, 0x0F ; 15 - 31c: fa 2e mov r15, r26 - for(uint8_t k=0;k<5;k++) { - render(); - } - frame[5] = 14; - frame[3] = 16; - 31e: f0 e1 ldi r31, 0x10 ; 16 - 320: df 2e mov r13, r31 - for(uint8_t k=0;k<5;k++) { - render(); - } - frame[3] = 14; - frame[4] = 17; - 322: e1 e1 ldi r30, 0x11 ; 17 - 324: ee 2e mov r14, r30 -} - -void enderand() { - frame[0] = 10; - for(uint8_t j=0;j<41;j++) { - frame[2] = 14; - 326: 10 93 80 00 sts 0x0080, r17 - frame[3] = 14; - 32a: 10 93 81 00 sts 0x0081, r17 - frame[4] = 14; - 32e: 10 93 82 00 sts 0x0082, r17 - frame[5] = 15; - 332: f0 92 83 00 sts 0x0083, r15 - for(uint8_t k=0;k<5;k++) { - render(); - 336: fc de rcall .-520 ; 0x130 - 338: fb de rcall .-522 ; 0x130 - 33a: fa de rcall .-524 ; 0x130 - 33c: f9 de rcall .-526 ; 0x130 - 33e: f8 de rcall .-528 ; 0x130 - } - frame[5] = 14; - 340: 10 93 83 00 sts 0x0083, r17 - frame[3] = 16; - 344: d0 92 81 00 sts 0x0081, r13 - for(uint8_t k=0;k<5;k++) { - render(); - 348: f3 de rcall .-538 ; 0x130 - 34a: f2 de rcall .-540 ; 0x130 - 34c: f1 de rcall .-542 ; 0x130 - 34e: f0 de rcall .-544 ; 0x130 - 350: ef de rcall .-546 ; 0x130 - } - frame[3] = 14; - 352: 10 93 81 00 sts 0x0081, r17 - frame[4] = 17; - 356: e0 92 82 00 sts 0x0082, r14 - for(uint8_t k=0;k<5;k++) { - render(); - 35a: ea de rcall .-556 ; 0x130 - 35c: e9 de rcall .-558 ; 0x130 - 35e: e8 de rcall .-560 ; 0x130 - 360: e7 de rcall .-562 ; 0x130 - 362: e6 de rcall .-564 ; 0x130 - } - frame[2] = 15; - 364: f0 92 80 00 sts 0x0080, r15 - frame[4] = 14; - 368: 10 93 82 00 sts 0x0082, r17 - for(uint8_t k=0;k<5;k++) { - render(); - 36c: e1 de rcall .-574 ; 0x130 - 36e: e0 de rcall .-576 ; 0x130 - 370: df de rcall .-578 ; 0x130 - 372: de de rcall .-580 ; 0x130 - 374: dd de rcall .-582 ; 0x130 - 376: 01 50 subi r16, 0x01 ; 1 - } -} - -void enderand() { - frame[0] = 10; - for(uint8_t j=0;j<41;j++) { - 378: b1 f6 brne .-84 ; 0x326 - frame[4] = 14; - for(uint8_t k=0;k<5;k++) { - render(); - } - } -} - 37a: 1f 91 pop r17 - 37c: 0f 91 pop r16 - 37e: ff 90 pop r15 - 380: ef 90 pop r14 - 382: df 90 pop r13 - 384: 08 95 ret - -00000386 : - -void endeblink() { - 386: 7f 92 push r7 - 388: 8f 92 push r8 - 38a: 9f 92 push r9 - 38c: af 92 push r10 - 38e: bf 92 push r11 - 390: cf 92 push r12 - 392: df 92 push r13 - 394: ef 92 push r14 - 396: ff 92 push r15 - 398: 0f 93 push r16 - 39a: 1f 93 push r17 - 39c: cf 93 push r28 - 39e: df 93 push r29 - frame[0] = 10; - 3a0: 8a e0 ldi r24, 0x0A ; 10 - 3a2: 80 93 7e 00 sts 0x007E, r24 - 3a6: 06 e0 ldi r16, 0x06 ; 6 - 3a8: 10 e0 ldi r17, 0x00 ; 0 - 3aa: c0 e0 ldi r28, 0x00 ; 0 - 3ac: d0 e0 ldi r29, 0x00 ; 0 + 314: 8a e0 ldi r24, 0x0A ; 10 + 316: 80 93 7e 00 sts 0x007E, r24 + 31a: 06 e0 ldi r16, 0x06 ; 6 + 31c: 10 e0 ldi r17, 0x00 ; 0 + 31e: c0 e0 ldi r28, 0x00 ; 0 + 320: d0 e0 ldi r29, 0x00 ; 0 for(uint8_t j=0;j<44;j++) { frame[2] = 15; - 3ae: 5f e0 ldi r21, 0x0F ; 15 - 3b0: c5 2e mov r12, r21 + 322: 2f e0 ldi r18, 0x0F ; 15 + 324: c2 2e mov r12, r18 frame[3] = 16; - 3b2: 40 e1 ldi r20, 0x10 ; 16 - 3b4: a4 2e mov r10, r20 + 326: 90 e1 ldi r25, 0x10 ; 16 + 328: a9 2e mov r10, r25 frame[4] = 17; - 3b6: 31 e1 ldi r19, 0x11 ; 17 - 3b8: b3 2e mov r11, r19 + 32a: 81 e1 ldi r24, 0x11 ; 17 + 32c: b8 2e mov r11, r24 frame[5] = 15; for(uint8_t k=0;k<6+(j*2);k++) { if(k%3==0) { - 3ba: 23 e0 ldi r18, 0x03 ; 3 - 3bc: 82 2e mov r8, r18 + 32e: b3 e0 ldi r27, 0x03 ; 3 + 330: 8b 2e mov r8, r27 frame[2] = 15; frame[3] = 16; frame[4] = 17; frame[5] = 15; } else { frame[0] = 14; - 3be: 9e e0 ldi r25, 0x0E ; 14 - 3c0: d9 2e mov r13, r25 + 332: ae e0 ldi r26, 0x0E ; 14 + 334: da 2e mov r13, r26 frame[4] = 17; frame[5] = 15; for(uint8_t k=0;k<6+(j*2);k++) { if(k%3==0) { if(frame[2] == 14) { frame[0] = 10; - 3c2: 8a e0 ldi r24, 0x0A ; 10 - 3c4: 98 2e mov r9, r24 + 336: fa e0 ldi r31, 0x0A ; 10 + 338: 9f 2e mov r9, r31 } void endeblink() { frame[0] = 10; for(uint8_t j=0;j<44;j++) { frame[2] = 15; - 3c6: c0 92 80 00 sts 0x0080, r12 + 33a: c0 92 80 00 sts 0x0080, r12 frame[3] = 16; - 3ca: a0 92 81 00 sts 0x0081, r10 + 33e: a0 92 81 00 sts 0x0081, r10 frame[4] = 17; - 3ce: b0 92 82 00 sts 0x0082, r11 + 342: b0 92 82 00 sts 0x0082, r11 frame[5] = 15; - 3d2: c0 92 83 00 sts 0x0083, r12 + 346: c0 92 83 00 sts 0x0083, r12 for(uint8_t k=0;k<6+(j*2);k++) { - 3d6: ee 24 eor r14, r14 - 3d8: 20 c0 rjmp .+64 ; 0x41a + 34a: ee 24 eor r14, r14 + 34c: 20 c0 rjmp .+64 ; 0x38e if(k%3==0) { - 3da: 8e 2d mov r24, r14 - 3dc: 68 2d mov r22, r8 - 3de: e8 d0 rcall .+464 ; 0x5b0 <__udivmodqi4> - 3e0: 99 23 and r25, r25 - 3e2: c9 f4 brne .+50 ; 0x416 + 34e: 8e 2d mov r24, r14 + 350: 68 2d mov r22, r8 + 352: 5a d1 rcall .+692 ; 0x608 <__udivmodqi4> + 354: 99 23 and r25, r25 + 356: c9 f4 brne .+50 ; 0x38a if(frame[2] == 14) { - 3e4: 80 91 80 00 lds r24, 0x0080 - 3e8: 8e 30 cpi r24, 0x0E ; 14 - 3ea: 59 f4 brne .+22 ; 0x402 + 358: 80 91 80 00 lds r24, 0x0080 + 35c: 8e 30 cpi r24, 0x0E ; 14 + 35e: 59 f4 brne .+22 ; 0x376 frame[0] = 10; - 3ec: 90 92 7e 00 sts 0x007E, r9 + 360: 90 92 7e 00 sts 0x007E, r9 frame[2] = 15; - 3f0: c0 92 80 00 sts 0x0080, r12 + 364: c0 92 80 00 sts 0x0080, r12 frame[3] = 16; - 3f4: a0 92 81 00 sts 0x0081, r10 + 368: a0 92 81 00 sts 0x0081, r10 frame[4] = 17; - 3f8: b0 92 82 00 sts 0x0082, r11 + 36c: b0 92 82 00 sts 0x0082, r11 frame[5] = 15; - 3fc: c0 92 83 00 sts 0x0083, r12 - 400: 0a c0 rjmp .+20 ; 0x416 + 370: c0 92 83 00 sts 0x0083, r12 + 374: 0a c0 rjmp .+20 ; 0x38a } else { frame[0] = 14; - 402: d0 92 7e 00 sts 0x007E, r13 + 376: d0 92 7e 00 sts 0x007E, r13 frame[2] = 14; - 406: d0 92 80 00 sts 0x0080, r13 + 37a: d0 92 80 00 sts 0x0080, r13 frame[3] = 14; - 40a: d0 92 81 00 sts 0x0081, r13 + 37e: d0 92 81 00 sts 0x0081, r13 frame[4] = 14; - 40e: d0 92 82 00 sts 0x0082, r13 + 382: d0 92 82 00 sts 0x0082, r13 frame[5] = 14; - 412: d0 92 83 00 sts 0x0083, r13 + 386: d0 92 83 00 sts 0x0083, r13 } } render(); - 416: 8c de rcall .-744 ; 0x130 + 38a: c7 de rcall .-626 ; 0x11a for(uint8_t j=0;j<44;j++) { frame[2] = 15; frame[3] = 16; frame[4] = 17; frame[5] = 15; for(uint8_t k=0;k<6+(j*2);k++) { - 418: e3 94 inc r14 - 41a: 8e 2d mov r24, r14 - 41c: 90 e0 ldi r25, 0x00 ; 0 - 41e: 80 17 cp r24, r16 - 420: 91 07 cpc r25, r17 - 422: dc f2 brlt .-74 ; 0x3da + 38c: e3 94 inc r14 + 38e: 8e 2d mov r24, r14 + 390: 90 e0 ldi r25, 0x00 ; 0 + 392: 80 17 cp r24, r16 + 394: 91 07 cpc r25, r17 + 396: dc f2 brlt .-74 ; 0x34e frame[5] = 14; } } render(); } frame[2] = 14; - 424: d0 92 80 00 sts 0x0080, r13 + 398: d0 92 80 00 sts 0x0080, r13 frame[3] = 14; - 428: d0 92 81 00 sts 0x0081, r13 + 39c: d0 92 81 00 sts 0x0081, r13 frame[4] = 14; - 42c: d0 92 82 00 sts 0x0082, r13 + 3a0: d0 92 82 00 sts 0x0082, r13 frame[5] = 14; - 430: d0 92 83 00 sts 0x0083, r13 + 3a4: d0 92 83 00 sts 0x0083, r13 for(uint8_t k=0;k<5+j;k++) { - 434: 77 24 eor r7, r7 + 3a8: 77 24 eor r7, r7 render(); } } } void endeblink() { - 436: b4 e0 ldi r27, 0x04 ; 4 - 438: eb 2e mov r14, r27 - 43a: f1 2c mov r15, r1 - 43c: ec 0e add r14, r28 - 43e: fd 1e adc r15, r29 + 3aa: e4 e0 ldi r30, 0x04 ; 4 + 3ac: ee 2e mov r14, r30 + 3ae: f1 2c mov r15, r1 + 3b0: ec 0e add r14, r28 + 3b2: fd 1e adc r15, r29 } frame[2] = 14; frame[3] = 14; frame[4] = 14; frame[5] = 14; for(uint8_t k=0;k<5+j;k++) { - 440: 02 c0 rjmp .+4 ; 0x446 + 3b4: 02 c0 rjmp .+4 ; 0x3ba render(); - 442: 76 de rcall .-788 ; 0x130 + 3b6: b1 de rcall .-670 ; 0x11a } frame[2] = 14; frame[3] = 14; frame[4] = 14; frame[5] = 14; for(uint8_t k=0;k<5+j;k++) { - 444: 73 94 inc r7 - 446: 87 2d mov r24, r7 - 448: 90 e0 ldi r25, 0x00 ; 0 - 44a: e8 16 cp r14, r24 - 44c: f9 06 cpc r15, r25 - 44e: cc f7 brge .-14 ; 0x442 - 450: 21 96 adiw r28, 0x01 ; 1 - 452: 0e 5f subi r16, 0xFE ; 254 - 454: 1f 4f sbci r17, 0xFF ; 255 + 3b8: 73 94 inc r7 + 3ba: 87 2d mov r24, r7 + 3bc: 90 e0 ldi r25, 0x00 ; 0 + 3be: e8 16 cp r14, r24 + 3c0: f9 06 cpc r15, r25 + 3c2: cc f7 brge .-14 ; 0x3b6 + 3c4: 21 96 adiw r28, 0x01 ; 1 + 3c6: 0e 5f subi r16, 0xFE ; 254 + 3c8: 1f 4f sbci r17, 0xFF ; 255 } } void endeblink() { frame[0] = 10; for(uint8_t j=0;j<44;j++) { - 456: cc 32 cpi r28, 0x2C ; 44 - 458: d1 05 cpc r29, r1 - 45a: 09 f0 breq .+2 ; 0x45e - 45c: b4 cf rjmp .-152 ; 0x3c6 + 3ca: cc 32 cpi r28, 0x2C ; 44 + 3cc: d1 05 cpc r29, r1 + 3ce: 09 f0 breq .+2 ; 0x3d2 + 3d0: b4 cf rjmp .-152 ; 0x33a frame[5] = 14; for(uint8_t k=0;k<5+j;k++) { render(); } } } - 45e: df 91 pop r29 - 460: cf 91 pop r28 - 462: 1f 91 pop r17 - 464: 0f 91 pop r16 - 466: ff 90 pop r15 - 468: ef 90 pop r14 - 46a: df 90 pop r13 - 46c: cf 90 pop r12 - 46e: bf 90 pop r11 - 470: af 90 pop r10 - 472: 9f 90 pop r9 - 474: 8f 90 pop r8 - 476: 7f 90 pop r7 - 478: 08 95 ret + 3d2: df 91 pop r29 + 3d4: cf 91 pop r28 + 3d6: 1f 91 pop r17 + 3d8: 0f 91 pop r16 + 3da: ff 90 pop r15 + 3dc: ef 90 pop r14 + 3de: df 90 pop r13 + 3e0: cf 90 pop r12 + 3e2: bf 90 pop r11 + 3e4: af 90 pop r10 + 3e6: 9f 90 pop r9 + 3e8: 8f 90 pop r8 + 3ea: 7f 90 pop r7 + 3ec: 08 95 ret -0000047a : +000003ee : void weihnachten() { - 47a: ef 92 push r14 - 47c: ff 92 push r15 - 47e: 0f 93 push r16 - 480: 1f 93 push r17 - 482: df 93 push r29 - 484: cf 93 push r28 - 486: cd b7 in r28, 0x3d ; 61 - 488: de b7 in r29, 0x3e ; 62 - 48a: c4 51 subi r28, 0x14 ; 20 - 48c: cd bf out 0x3d, r28 ; 61 + 3ee: ef 92 push r14 + 3f0: ff 92 push r15 + 3f2: 0f 93 push r16 + 3f4: 1f 93 push r17 + 3f6: df 93 push r29 + 3f8: cf 93 push r28 + 3fa: cd b7 in r28, 0x3d ; 61 + 3fc: de b7 in r29, 0x3e ; 62 + 3fe: c4 51 subi r28, 0x14 ; 20 + 400: cd bf out 0x3d, r28 ; 61 uint8_t text1[] = {18,19,20,21,15,14, //Frohe - 48e: de 01 movw r26, r28 - 490: 11 96 adiw r26, 0x01 ; 1 - 492: e4 e8 ldi r30, 0x84 ; 132 - 494: f0 e0 ldi r31, 0x00 ; 0 - 496: 83 e1 ldi r24, 0x13 ; 19 - 498: 01 90 ld r0, Z+ - 49a: 0d 92 st X+, r0 - 49c: 81 50 subi r24, 0x01 ; 1 - 49e: e1 f7 brne .-8 ; 0x498 + 402: de 01 movw r26, r28 + 404: 11 96 adiw r26, 0x01 ; 1 + 406: e4 e8 ldi r30, 0x84 ; 132 + 408: f0 e0 ldi r31, 0x00 ; 0 + 40a: 83 e1 ldi r24, 0x13 ; 19 + 40c: 01 90 ld r0, Z+ + 40e: 0d 92 st X+, r0 + 410: 81 50 subi r24, 0x01 ; 1 + 412: e1 f7 brne .-8 ; 0x40c 22,23,15,24,21,16,25,26,21,27,15,16,14}; //Weihnachten frame[0] = 14; - 4a0: 8e e0 ldi r24, 0x0E ; 14 - 4a2: 80 93 7e 00 sts 0x007E, r24 + 414: 8e e0 ldi r24, 0x0E ; 14 + 416: 80 93 7e 00 sts 0x007E, r24 frame[1] = 14; - 4a6: 80 93 7f 00 sts 0x007F, r24 + 41a: 80 93 7f 00 sts 0x007F, r24 frame[2] = 14; - 4aa: 80 93 80 00 sts 0x0080, r24 + 41e: 80 93 80 00 sts 0x0080, r24 frame[3] = 14; - 4ae: 80 93 81 00 sts 0x0081, r24 + 422: 80 93 81 00 sts 0x0081, r24 frame[4] = 14; - 4b2: 80 93 82 00 sts 0x0082, r24 + 426: 80 93 82 00 sts 0x0082, r24 frame[5] = 14; - 4b6: 80 93 83 00 sts 0x0083, r24 - 4ba: 4c ef ldi r20, 0xFC ; 252 + 42a: 80 93 83 00 sts 0x0083, r24 + 42e: 4c ef ldi r20, 0xFC ; 252 for(uint8_t j=0;j<5;j++) { uint8_t z = i+j-4; if(z>=0 && z < sizeof(text1)) { frame[j+1] = text1[z]; } else { frame[j+1] = 14; - 4bc: 7e e0 ldi r23, 0x0E ; 14 - 4be: e7 2e mov r14, r23 + 430: 5e e0 ldi r21, 0x0E ; 14 + 432: e5 2e mov r14, r21 frame[5] = 14; for(uint8_t i=0;i=0 && z < sizeof(text1)) { frame[j+1] = text1[z]; - 4c0: 8e 01 movw r16, r28 - 4c2: 0f 5f subi r16, 0xFF ; 255 - 4c4: 1f 4f sbci r17, 0xFF ; 255 - 4c6: 22 c0 rjmp .+68 ; 0x50c - 4c8: 9c 01 movw r18, r24 - 4ca: 2f 5f subi r18, 0xFF ; 255 - 4cc: 3f 4f sbci r19, 0xFF ; 255 + 434: 8e 01 movw r16, r28 + 436: 0f 5f subi r16, 0xFF ; 255 + 438: 1f 4f sbci r17, 0xFF ; 255 + 43a: 22 c0 rjmp .+68 ; 0x480 + 43c: 9c 01 movw r18, r24 + 43e: 2f 5f subi r18, 0xFF ; 255 + 440: 3f 4f sbci r19, 0xFF ; 255 frame[4] = 14; frame[5] = 14; for(uint8_t i=0;i=0 && z < sizeof(text1)) { - 4ce: 53 31 cpi r21, 0x13 ; 19 - 4d0: 48 f4 brcc .+18 ; 0x4e4 + 442: 53 31 cpi r21, 0x13 ; 19 + 444: 48 f4 brcc .+18 ; 0x458 frame[j+1] = text1[z]; - 4d2: f8 01 movw r30, r16 - 4d4: e5 0f add r30, r21 - 4d6: f1 1d adc r31, r1 - 4d8: 60 81 ld r22, Z - 4da: 22 58 subi r18, 0x82 ; 130 - 4dc: 3f 4f sbci r19, 0xFF ; 255 - 4de: f9 01 movw r30, r18 - 4e0: 60 83 st Z, r22 - 4e2: 04 c0 rjmp .+8 ; 0x4ec + 446: f8 01 movw r30, r16 + 448: e5 0f add r30, r21 + 44a: f1 1d adc r31, r1 + 44c: 60 81 ld r22, Z + 44e: 22 58 subi r18, 0x82 ; 130 + 450: 3f 4f sbci r19, 0xFF ; 255 + 452: f9 01 movw r30, r18 + 454: 60 83 st Z, r22 + 456: 04 c0 rjmp .+8 ; 0x460 } else { frame[j+1] = 14; - 4e4: 22 58 subi r18, 0x82 ; 130 - 4e6: 3f 4f sbci r19, 0xFF ; 255 - 4e8: f9 01 movw r30, r18 - 4ea: e0 82 st Z, r14 - 4ec: 01 96 adiw r24, 0x01 ; 1 - 4ee: 5f 5f subi r21, 0xFF ; 255 + 458: 22 58 subi r18, 0x82 ; 130 + 45a: 3f 4f sbci r19, 0xFF ; 255 + 45c: f9 01 movw r30, r18 + 45e: e0 82 st Z, r14 + 460: 01 96 adiw r24, 0x01 ; 1 + 462: 5f 5f subi r21, 0xFF ; 255 frame[2] = 14; frame[3] = 14; frame[4] = 14; frame[5] = 14; for(uint8_t i=0;i - 4f6: 6e e1 ldi r22, 0x1E ; 30 - 4f8: f6 2e mov r15, r22 + 464: 85 30 cpi r24, 0x05 ; 5 + 466: 91 05 cpc r25, r1 + 468: 49 f7 brne .-46 ; 0x43c + 46a: 3e e1 ldi r19, 0x1E ; 30 + 46c: f3 2e mov r15, r19 } else { frame[j+1] = 14; } } for(uint8_t k=0;k<30;k++) { render(); - 4fa: 4c 8b std Y+20, r20 ; 0x14 - 4fc: 19 de rcall .-974 ; 0x130 - 4fe: fa 94 dec r15 + 46e: 4c 8b std Y+20, r20 ; 0x14 + 470: 54 de rcall .-856 ; 0x11a + 472: fa 94 dec r15 frame[j+1] = text1[z]; } else { frame[j+1] = 14; } } for(uint8_t k=0;k<30;k++) { - 500: 4c 89 ldd r20, Y+20 ; 0x14 - 502: ff 20 and r15, r15 - 504: d1 f7 brne .-12 ; 0x4fa - 506: 4f 5f subi r20, 0xFF ; 255 + 474: 4c 89 ldd r20, Y+20 ; 0x14 + 476: ff 20 and r15, r15 + 478: d1 f7 brne .-12 ; 0x46e + 47a: 4f 5f subi r20, 0xFF ; 255 frame[1] = 14; frame[2] = 14; frame[3] = 14; frame[4] = 14; frame[5] = 14; for(uint8_t i=0;i + 47c: 44 31 cpi r20, 0x14 ; 20 + 47e: 21 f0 breq .+8 ; 0x488 render(); } } } void weihnachten() { - 50c: 54 2f mov r21, r20 - 50e: 80 e0 ldi r24, 0x00 ; 0 - 510: 90 e0 ldi r25, 0x00 ; 0 - 512: da cf rjmp .-76 ; 0x4c8 + 480: 54 2f mov r21, r20 + 482: 80 e0 ldi r24, 0x00 ; 0 + 484: 90 e0 ldi r25, 0x00 ; 0 + 486: da cf rjmp .-76 ; 0x43c } for(uint8_t k=0;k<30;k++) { render(); } } } - 514: cc 5e subi r28, 0xEC ; 236 - 516: cd bf out 0x3d, r28 ; 61 - 518: cf 91 pop r28 - 51a: df 91 pop r29 - 51c: 1f 91 pop r17 - 51e: 0f 91 pop r16 - 520: ff 90 pop r15 - 522: ef 90 pop r14 - 524: 08 95 ret + 488: cc 5e subi r28, 0xEC ; 236 + 48a: cd bf out 0x3d, r28 ; 61 + 48c: cf 91 pop r28 + 48e: df 91 pop r29 + 490: 1f 91 pop r17 + 492: 0f 91 pop r16 + 494: ff 90 pop r15 + 496: ef 90 pop r14 + 498: 08 95 ret -00000526 : +0000049a : void blink2013() { - 526: cf 92 push r12 - 528: df 92 push r13 - 52a: ef 92 push r14 - 52c: ff 92 push r15 - 52e: 0f 93 push r16 - 530: 1f 93 push r17 + 49a: cf 92 push r12 + 49c: df 92 push r13 + 49e: ef 92 push r14 + 4a0: ff 92 push r15 + 4a2: 0f 93 push r16 + 4a4: 1f 93 push r17 frame[0] = 14; - 532: 8e e0 ldi r24, 0x0E ; 14 - 534: 80 93 7e 00 sts 0x007E, r24 + 4a6: 8e e0 ldi r24, 0x0E ; 14 + 4a8: 80 93 7e 00 sts 0x007E, r24 frame[1] = 14; - 538: 80 93 7f 00 sts 0x007F, r24 - 53c: 0e e1 ldi r16, 0x1E ; 30 + 4ac: 80 93 7f 00 sts 0x007F, r24 + 4b0: 0e e1 ldi r16, 0x1E ; 30 for(uint8_t i=0;i<30;i++) { frame[2] = 2; - 53e: b2 e0 ldi r27, 0x02 ; 2 - 540: cb 2e mov r12, r27 + 4b2: f2 e0 ldi r31, 0x02 ; 2 + 4b4: cf 2e mov r12, r31 frame[3] = 0; frame[4] = 1; - 542: dd 24 eor r13, r13 - 544: d3 94 inc r13 + 4b6: dd 24 eor r13, r13 + 4b8: d3 94 inc r13 frame[5] = 3; - 546: a3 e0 ldi r26, 0x03 ; 3 - 548: ea 2e mov r14, r26 + 4ba: e3 e0 ldi r30, 0x03 ; 3 + 4bc: ee 2e mov r14, r30 for(uint8_t k=0;k<20;k++) { render(); } frame[2] = 14; - 54a: 1e e0 ldi r17, 0x0E ; 14 + 4be: 1e e0 ldi r17, 0x0E ; 14 void blink2013() { frame[0] = 14; frame[1] = 14; for(uint8_t i=0;i<30;i++) { frame[2] = 2; - 54c: c0 92 80 00 sts 0x0080, r12 + 4c0: c0 92 80 00 sts 0x0080, r12 frame[3] = 0; - 550: 10 92 81 00 sts 0x0081, r1 + 4c4: 10 92 81 00 sts 0x0081, r1 frame[4] = 1; - 554: d0 92 82 00 sts 0x0082, r13 + 4c8: d0 92 82 00 sts 0x0082, r13 frame[5] = 3; - 558: e0 92 83 00 sts 0x0083, r14 - 55c: f4 e1 ldi r31, 0x14 ; 20 - 55e: ff 2e mov r15, r31 + 4cc: e0 92 83 00 sts 0x0083, r14 + 4d0: 74 e1 ldi r23, 0x14 ; 20 + 4d2: f7 2e mov r15, r23 for(uint8_t k=0;k<20;k++) { render(); - 560: e7 dd rcall .-1074 ; 0x130 - 562: fa 94 dec r15 + 4d4: 22 de rcall .-956 ; 0x11a + 4d6: fa 94 dec r15 for(uint8_t i=0;i<30;i++) { frame[2] = 2; frame[3] = 0; frame[4] = 1; frame[5] = 3; for(uint8_t k=0;k<20;k++) { - 564: e9 f7 brne .-6 ; 0x560 + 4d8: e9 f7 brne .-6 ; 0x4d4 render(); } frame[2] = 14; - 566: 10 93 80 00 sts 0x0080, r17 + 4da: 10 93 80 00 sts 0x0080, r17 frame[3] = 14; - 56a: 10 93 81 00 sts 0x0081, r17 + 4de: 10 93 81 00 sts 0x0081, r17 frame[4] = 14; - 56e: 10 93 82 00 sts 0x0082, r17 + 4e2: 10 93 82 00 sts 0x0082, r17 frame[5] = 14; - 572: 10 93 83 00 sts 0x0083, r17 - 576: e4 e1 ldi r30, 0x14 ; 20 - 578: fe 2e mov r15, r30 + 4e6: 10 93 83 00 sts 0x0083, r17 + 4ea: 64 e1 ldi r22, 0x14 ; 20 + 4ec: f6 2e mov r15, r22 for(uint8_t k=0;k<20;k++) { render(); - 57a: da dd rcall .-1100 ; 0x130 - 57c: fa 94 dec r15 + 4ee: 15 de rcall .-982 ; 0x11a + 4f0: fa 94 dec r15 } frame[2] = 14; frame[3] = 14; frame[4] = 14; frame[5] = 14; for(uint8_t k=0;k<20;k++) { - 57e: e9 f7 brne .-6 ; 0x57a - 580: 01 50 subi r16, 0x01 ; 1 + 4f2: e9 f7 brne .-6 ; 0x4ee + 4f4: 01 50 subi r16, 0x01 ; 1 } void blink2013() { frame[0] = 14; frame[1] = 14; for(uint8_t i=0;i<30;i++) { - 582: 21 f7 brne .-56 ; 0x54c + 4f6: 21 f7 brne .-56 ; 0x4c0 frame[5] = 14; for(uint8_t k=0;k<20;k++) { render(); } } } - 584: 1f 91 pop r17 - 586: 0f 91 pop r16 - 588: ff 90 pop r15 - 58a: ef 90 pop r14 - 58c: df 90 pop r13 - 58e: cf 90 pop r12 - 590: 08 95 ret + 4f8: 1f 91 pop r17 + 4fa: 0f 91 pop r16 + 4fc: ff 90 pop r15 + 4fe: ef 90 pop r14 + 500: df 90 pop r13 + 502: cf 90 pop r12 + 504: 08 95 ret -00000592
: +00000506 <__vector_13>: + + +//ISR// (TIMER1_//OVF_vect) +ISR(TIMER0_COMPA_vect) +{ + 506: 1f 92 push r1 + 508: 0f 92 push r0 + 50a: 0f b6 in r0, 0x3f ; 63 + 50c: 0f 92 push r0 + 50e: 11 24 eor r1, r1 + 510: 8f 93 push r24 + 512: 9f 93 push r25 + // (8000000/256)/256 Hz = 122,0703125 Hz + // 1/122,0703125 s = 8,192 ms + + // DDRB = 0b10111011; + // PORTB = 0b10110011; + if (var >= 31) { //wenn Zustand mindestens 200x10ms = 2sec. andauert + 514: 80 91 98 00 lds r24, 0x0098 + 518: 8f 31 cpi r24, 0x1F ; 31 + 51a: 08 f4 brcc .+2 ; 0x51e <__vector_13+0x18> + 51c: 43 c0 rjmp .+134 ; 0x5a4 <__vector_13+0x9e> + var = 0; + 51e: 10 92 98 00 sts 0x0098, r1 + if(frame[5] > 0) { + 522: 80 91 83 00 lds r24, 0x0083 + 526: 88 23 and r24, r24 + 528: 41 f0 breq .+16 ; 0x53a <__vector_13+0x34> + frame[5] = frame[5]--; + 52a: 80 91 83 00 lds r24, 0x0083 + 52e: 80 93 83 00 sts 0x0083, r24 + 532: 81 50 subi r24, 0x01 ; 1 + 534: 80 93 83 00 sts 0x0083, r24 + 538: 2b c0 rjmp .+86 ; 0x590 <__vector_13+0x8a> + } else { + frame[5] = 9; + 53a: 89 e0 ldi r24, 0x09 ; 9 + 53c: 80 93 83 00 sts 0x0083, r24 + if(frame[4] > 0) { + 540: 90 91 82 00 lds r25, 0x0082 + 544: 99 23 and r25, r25 + 546: 41 f0 breq .+16 ; 0x558 <__vector_13+0x52> + frame[4] = frame[4]--; + 548: 80 91 82 00 lds r24, 0x0082 + 54c: 80 93 82 00 sts 0x0082, r24 + 550: 81 50 subi r24, 0x01 ; 1 + 552: 80 93 82 00 sts 0x0082, r24 + 556: 1c c0 rjmp .+56 ; 0x590 <__vector_13+0x8a> + } else { + frame[4] = 5; + 558: 95 e0 ldi r25, 0x05 ; 5 + 55a: 90 93 82 00 sts 0x0082, r25 + if(frame[3] > 0) { + 55e: 90 91 81 00 lds r25, 0x0081 + 562: 99 23 and r25, r25 + 564: 41 f0 breq .+16 ; 0x576 <__vector_13+0x70> + frame[3] = frame[3]--; + 566: 80 91 81 00 lds r24, 0x0081 + 56a: 80 93 81 00 sts 0x0081, r24 + 56e: 81 50 subi r24, 0x01 ; 1 + 570: 80 93 81 00 sts 0x0081, r24 + 574: 0d c0 rjmp .+26 ; 0x590 <__vector_13+0x8a> + } else { + frame[3] = 9; + 576: 80 93 81 00 sts 0x0081, r24 + if(frame[2] > 0) { + 57a: 90 91 80 00 lds r25, 0x0080 + 57e: 99 23 and r25, r25 + 580: 29 f0 breq .+10 ; 0x58c <__vector_13+0x86> + frame[2] = frame[2]--; + 582: 80 91 80 00 lds r24, 0x0080 + 586: 80 93 80 00 sts 0x0080, r24 + 58a: 81 50 subi r24, 0x01 ; 1 + } else { + frame[2] = 9; + 58c: 80 93 80 00 sts 0x0080, r24 + } + } + } + } + frame[0] = (frame[0]==14)?11:14; + 590: 80 91 7e 00 lds r24, 0x007E + 594: 8e 30 cpi r24, 0x0E ; 14 + 596: 11 f4 brne .+4 ; 0x59c <__vector_13+0x96> + 598: 8b e0 ldi r24, 0x0B ; 11 + 59a: 01 c0 rjmp .+2 ; 0x59e <__vector_13+0x98> + 59c: 8e e0 ldi r24, 0x0E ; 14 + 59e: 80 93 7e 00 sts 0x007E, r24 + 5a2: 03 c0 rjmp .+6 ; 0x5aa <__vector_13+0xa4> + frame[3] = (uint8_t)((MIN-j)%10); + frame[4] = (uint8_t)((59-i)/10); + frame[5] = (uint8_t)((59-i)%10); + frame[0] = (i%2==0)?11:14;*/ + } else { + var++; + 5a4: 8f 5f subi r24, 0xFF ; 255 + 5a6: 80 93 98 00 sts 0x0098, r24 + } + +}//*/ + 5aa: 9f 91 pop r25 + 5ac: 8f 91 pop r24 + 5ae: 0f 90 pop r0 + 5b0: 0f be out 0x3f, r0 ; 63 + 5b2: 0f 90 pop r0 + 5b4: 1f 90 pop r1 + 5b6: 18 95 reti + +000005b8
: int main(void) { DDRB = 0; - 592: 17 ba out 0x17, r1 ; 23 - OCR0A = 250; //geladen mit 10ms - TIMSK |= (1< - //Timer $MIN nach unten - timerdown(MIN); - 596: 8d e1 ldi r24, 0x1D ; 29 - 598: e5 dd rcall .-1078 ; 0x164 - for(int i=0;i<5;i++) { + 5ba: 10 de rcall .-992 ; 0x1dc + //Timer 20 nach unten + timerdown(20); + 5bc: 84 e1 ldi r24, 0x14 ; 20 + 5be: c5 dd rcall .-1142 ; 0x14a + while(1) { + render(); + 5c0: ac dd rcall .-1192 ; 0x11a + if(frame[2] == 0 && frame[3] == 0 && frame[4] == 0 && frame[5] == 0) { + 5c2: 80 91 80 00 lds r24, 0x0080 + 5c6: 88 23 and r24, r24 + 5c8: d9 f7 brne .-10 ; 0x5c0 + 5ca: 80 91 81 00 lds r24, 0x0081 + 5ce: 88 23 and r24, r24 + 5d0: b9 f7 brne .-18 ; 0x5c0 + 5d2: 80 91 82 00 lds r24, 0x0082 + 5d6: 88 23 and r24, r24 + 5d8: 99 f7 brne .-26 ; 0x5c0 + 5da: 80 91 83 00 lds r24, 0x0083 + 5de: 88 23 and r24, r24 + 5e0: 79 f7 brne .-34 ; 0x5c0 + TIMSK = 0; + 5e2: 19 be out 0x39, r1 ; 57 + /*for(int i=0;i<5;i++) { weihnachten(); - 59a: 6f df rcall .-290 ; 0x47a - 59c: 6e df rcall .-292 ; 0x47a - 59e: 6d df rcall .-294 ; 0x47a - 5a0: 6c df rcall .-296 ; 0x47a - 5a2: 6b df rcall .-298 ; 0x47a } - blink2013(); - 5a4: c0 df rcall .-128 ; 0x526 + blink2013();*/ //Lauflicht 10s; endelauflicht(); - 5a6: 6f de rcall .-802 ; 0x286 + 5e4: 0a de rcall .-1004 ; 0x1fa //Lauflicht Rand 10s //enderand(); //Blinklicht endeblink(); - 5a8: ee de rcall .-548 ; 0x386 - //Timer UP 1Min Start - timerup(2); - 5aa: 82 e0 ldi r24, 0x02 ; 2 - 5ac: 2c de rcall .-936 ; 0x206 - 5ae: f2 cf rjmp .-28 ; 0x594 + 5e6: 89 de rcall .-750 ; 0x2fa + frame[0] = 10; + 5e8: 8a e0 ldi r24, 0x0A ; 10 + 5ea: 80 93 7e 00 sts 0x007E, r24 + frame[2] = 15; + 5ee: 8f e0 ldi r24, 0x0F ; 15 + 5f0: 80 93 80 00 sts 0x0080, r24 + frame[3] = 16; + 5f4: 90 e1 ldi r25, 0x10 ; 16 + 5f6: 90 93 81 00 sts 0x0081, r25 + frame[4] = 17; + 5fa: 91 e1 ldi r25, 0x11 ; 17 + 5fc: 90 93 82 00 sts 0x0082, r25 + frame[5] = 15; + 600: 80 93 83 00 sts 0x0083, r24 + while(1) { + render(); + 604: 8a dd rcall .-1260 ; 0x11a + 606: fe cf rjmp .-4 ; 0x604 -000005b0 <__udivmodqi4>: - 5b0: 99 1b sub r25, r25 - 5b2: 79 e0 ldi r23, 0x09 ; 9 - 5b4: 04 c0 rjmp .+8 ; 0x5be <__udivmodqi4_ep> +00000608 <__udivmodqi4>: + 608: 99 1b sub r25, r25 + 60a: 79 e0 ldi r23, 0x09 ; 9 + 60c: 04 c0 rjmp .+8 ; 0x616 <__udivmodqi4_ep> -000005b6 <__udivmodqi4_loop>: - 5b6: 99 1f adc r25, r25 - 5b8: 96 17 cp r25, r22 - 5ba: 08 f0 brcs .+2 ; 0x5be <__udivmodqi4_ep> - 5bc: 96 1b sub r25, r22 +0000060e <__udivmodqi4_loop>: + 60e: 99 1f adc r25, r25 + 610: 96 17 cp r25, r22 + 612: 08 f0 brcs .+2 ; 0x616 <__udivmodqi4_ep> + 614: 96 1b sub r25, r22 -000005be <__udivmodqi4_ep>: - 5be: 88 1f adc r24, r24 - 5c0: 7a 95 dec r23 - 5c2: c9 f7 brne .-14 ; 0x5b6 <__udivmodqi4_loop> - 5c4: 80 95 com r24 - 5c6: 08 95 ret +00000616 <__udivmodqi4_ep>: + 616: 88 1f adc r24, r24 + 618: 7a 95 dec r23 + 61a: c9 f7 brne .-14 ; 0x60e <__udivmodqi4_loop> + 61c: 80 95 com r24 + 61e: 08 95 ret -000005c8 <__divmodhi4>: - 5c8: 97 fb bst r25, 7 - 5ca: 09 2e mov r0, r25 - 5cc: 07 26 eor r0, r23 - 5ce: 0a d0 rcall .+20 ; 0x5e4 <__divmodhi4_neg1> - 5d0: 77 fd sbrc r23, 7 - 5d2: 04 d0 rcall .+8 ; 0x5dc <__divmodhi4_neg2> - 5d4: 0c d0 rcall .+24 ; 0x5ee <__udivmodhi4> - 5d6: 06 d0 rcall .+12 ; 0x5e4 <__divmodhi4_neg1> - 5d8: 00 20 and r0, r0 - 5da: 1a f4 brpl .+6 ; 0x5e2 <__divmodhi4_exit> +00000620 <_exit>: + 620: f8 94 cli -000005dc <__divmodhi4_neg2>: - 5dc: 70 95 com r23 - 5de: 61 95 neg r22 - 5e0: 7f 4f sbci r23, 0xFF ; 255 - -000005e2 <__divmodhi4_exit>: - 5e2: 08 95 ret - -000005e4 <__divmodhi4_neg1>: - 5e4: f6 f7 brtc .-4 ; 0x5e2 <__divmodhi4_exit> - 5e6: 90 95 com r25 - 5e8: 81 95 neg r24 - 5ea: 9f 4f sbci r25, 0xFF ; 255 - 5ec: 08 95 ret - -000005ee <__udivmodhi4>: - 5ee: aa 1b sub r26, r26 - 5f0: bb 1b sub r27, r27 - 5f2: 51 e1 ldi r21, 0x11 ; 17 - 5f4: 07 c0 rjmp .+14 ; 0x604 <__udivmodhi4_ep> - -000005f6 <__udivmodhi4_loop>: - 5f6: aa 1f adc r26, r26 - 5f8: bb 1f adc r27, r27 - 5fa: a6 17 cp r26, r22 - 5fc: b7 07 cpc r27, r23 - 5fe: 10 f0 brcs .+4 ; 0x604 <__udivmodhi4_ep> - 600: a6 1b sub r26, r22 - 602: b7 0b sbc r27, r23 - -00000604 <__udivmodhi4_ep>: - 604: 88 1f adc r24, r24 - 606: 99 1f adc r25, r25 - 608: 5a 95 dec r21 - 60a: a9 f7 brne .-22 ; 0x5f6 <__udivmodhi4_loop> - 60c: 80 95 com r24 - 60e: 90 95 com r25 - 610: bc 01 movw r22, r24 - 612: cd 01 movw r24, r26 - 614: 08 95 ret - -00000616 <_exit>: - 616: f8 94 cli - -00000618 <__stop_program>: - 618: ff cf rjmp .-2 ; 0x618 <__stop_program> +00000622 <__stop_program>: + 622: ff cf rjmp .-2 ; 0x622 <__stop_program> diff --git a/Timer/default/Timer.map b/Timer/default/Timer.map index a397e71..cf8fd14 100644 --- a/Timer/default/Timer.map +++ b/Timer/default/Timer.map @@ -2,16 +2,12 @@ Archive member included because of file (symbol) e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) Timer.o (__udivmodqi4) -e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o) - Timer.o (__divmodhi4) e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o (exit) e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) Timer.o (__do_copy_data) e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) Timer.o (__do_clear_bss) -e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o) - e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o) (__udivmodhi4) Memory Configuration @@ -122,7 +118,7 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a .rela.plt *(.rela.plt) -.text 0x00000000 0x61a +.text 0x00000000 0x624 *(.vectors) .vectors 0x00000000 0x26 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o 0x00000000 __vector_default @@ -184,7 +180,6 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a 0x00000058 __vector_6 0x00000058 __vector_3 0x00000058 __vector_11 - 0x00000058 __vector_13 0x00000058 __vector_17 0x00000058 __vector_7 0x00000058 __vector_5 @@ -197,41 +192,35 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a 0x00000058 __vector_10 0x00000058 __vector_16 0x00000058 __vector_18 - .text 0x0000005a 0x556 Timer.o + .text 0x0000005a 0x5ae Timer.o 0x0000005a display - 0x00000130 render - 0x00000164 timerdown - 0x00000206 timerup - 0x00000268 start - 0x00000286 endelauflicht - 0x00000306 enderand - 0x00000386 endeblink - 0x0000047a weihnachten - 0x00000526 blink2013 - 0x00000592 main - .text 0x000005b0 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) - .text 0x000005b0 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o) - .text 0x000005b0 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) - .text 0x000005b0 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) - .text 0x000005b0 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) - .text 0x000005b0 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o) - 0x000005b0 . = ALIGN (0x2) + 0x0000011a render + 0x0000014a timerdown + 0x0000017a timerup + 0x000001dc start + 0x000001fa endelauflicht + 0x0000027a enderand + 0x000002fa endeblink + 0x000003ee weihnachten + 0x0000049a blink2013 + 0x00000506 __vector_13 + 0x000005b8 main + .text 0x00000608 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) + .text 0x00000608 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) + .text 0x00000608 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) + .text 0x00000608 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) + 0x00000608 . = ALIGN (0x2) *(.text.*) - .text.libgcc 0x000005b0 0x18 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) - 0x000005b0 __udivmodqi4 - .text.libgcc 0x000005c8 0x26 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o) - 0x000005c8 _div - 0x000005c8 __divmodhi4 - .text.libgcc 0x000005ee 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) - .text.libgcc 0x000005ee 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) - .text.libgcc 0x000005ee 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) - .text.libgcc 0x000005ee 0x28 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o) - 0x000005ee __udivmodhi4 - 0x00000616 . = ALIGN (0x2) + .text.libgcc 0x00000608 0x18 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) + 0x00000608 __udivmodqi4 + .text.libgcc 0x00000620 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) + .text.libgcc 0x00000620 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) + .text.libgcc 0x00000620 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) + 0x00000620 . = ALIGN (0x2) *(.fini9) - .fini9 0x00000616 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) - 0x00000616 _exit - 0x00000616 exit + .fini9 0x00000620 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) + 0x00000620 _exit + 0x00000620 exit *(.fini9) *(.fini8) *(.fini8) @@ -250,11 +239,11 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00000616 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) + .fini0 0x00000620 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) *(.fini0) - 0x0000061a _etext = . + 0x00000624 _etext = . -.data 0x00800060 0x38 load address 0x0000061a +.data 0x00800060 0x38 load address 0x00000624 0x00800060 PROVIDE (__data_start, .) *(.data) .data 0x00800060 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o @@ -262,11 +251,9 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a 0x00800060 segs 0x0080007e frame .data 0x00800097 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) - .data 0x00800097 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o) .data 0x00800097 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) .data 0x00800097 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) .data 0x00800097 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) - .data 0x00800097 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o) *(.data*) *(.rodata) *(.rodata*) @@ -283,16 +270,14 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a .bss 0x00800098 0x1 Timer.o 0x00800098 var .bss 0x00800099 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) - .bss 0x00800099 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o) .bss 0x00800099 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) .bss 0x00800099 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) .bss 0x00800099 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) - .bss 0x00800099 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o) *(.bss*) *(COMMON) 0x00800099 PROVIDE (__bss_end, .) - 0x0000061a __data_load_start = LOADADDR (.data) - 0x00000652 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x00000624 __data_load_start = LOADADDR (.data) + 0x0000065c __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x00800099 0x0 0x00800099 PROVIDE (__noinit_start, .) @@ -358,36 +343,36 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a 0x00000000 0x20 Timer.o .debug_pubnames - 0x00000000 0xbc + 0x00000000 0xcc *(.debug_pubnames) .debug_pubnames - 0x00000000 0xbc Timer.o + 0x00000000 0xcc Timer.o -.debug_info 0x00000000 0x6c3 +.debug_info 0x00000000 0x696 *(.debug_info) - .debug_info 0x00000000 0x6c3 Timer.o + .debug_info 0x00000000 0x696 Timer.o *(.gnu.linkonce.wi.*) -.debug_abbrev 0x00000000 0x1f9 +.debug_abbrev 0x00000000 0x208 *(.debug_abbrev) - .debug_abbrev 0x00000000 0x1f9 Timer.o + .debug_abbrev 0x00000000 0x208 Timer.o -.debug_line 0x00000000 0x786 +.debug_line 0x00000000 0x860 *(.debug_line) - .debug_line 0x00000000 0x786 Timer.o + .debug_line 0x00000000 0x860 Timer.o -.debug_frame 0x00000000 0xc0 +.debug_frame 0x00000000 0xd0 *(.debug_frame) - .debug_frame 0x00000000 0xc0 Timer.o + .debug_frame 0x00000000 0xd0 Timer.o -.debug_str 0x00000000 0x163 +.debug_str 0x00000000 0x174 *(.debug_str) - .debug_str 0x00000000 0x163 Timer.o - 0x19c (size before relaxing) + .debug_str 0x00000000 0x174 Timer.o + 0x1a8 (size before relaxing) -.debug_loc 0x00000000 0x548 +.debug_loc 0x00000000 0x503 *(.debug_loc) - .debug_loc 0x00000000 0x548 Timer.o + .debug_loc 0x00000000 0x503 Timer.o .debug_macinfo *(.debug_macinfo) diff --git a/Timer/timer.aws b/Timer/timer.aws index 8d25914..286461f 100644 --- a/Timer/timer.aws +++ b/Timer/timer.aws @@ -1 +1 @@ - +