diff --git a/Timer/Timer.c b/Timer/Timer.c index 6e4e382..a7e5282 100644 --- a/Timer/Timer.c +++ b/Timer/Timer.c @@ -53,17 +53,17 @@ void render() { _delay_us(2000); } } - +/* //ISR// (TIMER1_//OVF_vect) ISR(TIMER0_COMPA_vect) { // TCNT1L = 250; - /* Interrupt Aktion alle - (8000000/256)/256 Hz = 122,0703125 Hz - 1/122,0703125 s = 8,192 ms - */ - /*DDRB = 0b10111011; - PORTB = 0b10110011;*/ + // Interrupt Aktion alle + // (8000000/256)/256 Hz = 122,0703125 Hz + // 1/122,0703125 s = 8,192 ms + + // DDRB = 0b10111011; + // PORTB = 0b10110011; if (var++ >= 100) //wenn Zustand mindestens 200x10ms = 2sec. andauert { if(frame[2] == 14) { @@ -77,14 +77,146 @@ ISR(TIMER0_COMPA_vect) } } +}*/ + +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(); + } + } + } } -int main(void) { - DDRB = 0; +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++) { + 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++) { + render(); + } + } + } +} + +void start() { DDRD |= (1< 16: 20 c0 rjmp .+64 ; 0x58 <__bad_interrupt> 18: 1f c0 rjmp .+62 ; 0x58 <__bad_interrupt> - 1a: a4 c0 rjmp .+328 ; 0x164 <__vector_13> + 1a: 1e c0 rjmp .+60 ; 0x58 <__bad_interrupt> 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: e8 e9 ldi r30, 0x98 ; 152 + 34: e8 ef ldi r30, 0xF8 ; 248 36: f4 e0 ldi r31, 0x04 ; 4 38: 02 c0 rjmp .+4 ; 0x3e <__SP_H__> 3a: 05 90 lpm r0, Z+ @@ -89,8 +89,8 @@ Disassembly of section .text: 4e: a9 37 cpi r26, 0x79 ; 121 50: b1 07 cpc r27, r17 52: e1 f7 brne .-8 ; 0x4c <.do_clear_bss_loop> - 54: af d0 rcall .+350 ; 0x1b4
- 56: 1e c2 rjmp .+1084 ; 0x494 <_exit> + 54: 12 d2 rcall .+1060 ; 0x47a
+ 56: 4e c2 rjmp .+1180 ; 0x4f4 <_exit> 00000058 <__bad_interrupt>: 58: d3 cf rjmp .-90 ; 0x0 <__vectors> @@ -308,672 +308,771 @@ void render() { 160: 1f 91 pop r17 162: 08 95 ret -00000164 <__vector_13>: - -//ISR// (TIMER1_//OVF_vect) -ISR(TIMER0_COMPA_vect) -{ - 164: 1f 92 push r1 - 166: 0f 92 push r0 - 168: 0f b6 in r0, 0x3f ; 63 - 16a: 0f 92 push r0 - 16c: 11 24 eor r1, r1 - 16e: 8f 93 push r24 - 170: 9f 93 push r25 - (8000000/256)/256 Hz = 122,0703125 Hz - 1/122,0703125 s = 8,192 ms - */ - /*DDRB = 0b10111011; - PORTB = 0b10110011;*/ - if (var++ >= 100) //wenn Zustand mindestens 200x10ms = 2sec. andauert - 172: 80 91 78 00 lds r24, 0x0078 - 176: 98 2f mov r25, r24 - 178: 9f 5f subi r25, 0xFF ; 255 - 17a: 90 93 78 00 sts 0x0078, r25 - 17e: 84 36 cpi r24, 0x64 ; 100 - 180: 90 f0 brcs .+36 ; 0x1a6 <__vector_13+0x42> - { - if(frame[2] == 14) { - 182: 80 91 74 00 lds r24, 0x0074 - 186: 8e 30 cpi r24, 0x0E ; 14 - 188: 39 f4 brne .+14 ; 0x198 <__vector_13+0x34> - frame[2] = 0; - 18a: 10 92 74 00 sts 0x0074, r1 - frame[3] = 1; - 18e: 81 e0 ldi r24, 0x01 ; 1 - 190: 80 93 75 00 sts 0x0075, r24 - frame[4] = 2; - 194: 82 e0 ldi r24, 0x02 ; 2 - 196: 05 c0 rjmp .+10 ; 0x1a2 <__vector_13+0x3e> - } else { - frame[2] = 14; - 198: 8e e0 ldi r24, 0x0E ; 14 - 19a: 80 93 74 00 sts 0x0074, r24 - frame[3] = 14; - 19e: 80 93 75 00 sts 0x0075, r24 - frame[4] = 14; - 1a2: 80 93 76 00 sts 0x0076, r24 +00000164 : } } +}*/ + +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 72 00 sts 0x0072, 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: 84 d1 rcall .+776 ; 0x4a6 <__divmodhi4> + 19e: 60 93 74 00 sts 0x0074, r22 + frame[3] = (uint8_t)((MIN-j)%10); + 1a2: 80 93 75 00 sts 0x0075, 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: 79 d1 rcall .+754 ; 0x4a6 <__divmodhi4> + 1b4: 60 93 76 00 sts 0x0076, r22 + frame[5] = (uint8_t)((59-i)%10); + 1b8: 80 93 77 00 sts 0x0077, 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 72 00 sts 0x0072, 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(); + } + } + } } - 1a6: 9f 91 pop r25 - 1a8: 8f 91 pop r24 - 1aa: 0f 90 pop r0 - 1ac: 0f be out 0x3f, r0 ; 63 - 1ae: 0f 90 pop r0 - 1b0: 1f 90 pop r1 - 1b2: 18 95 reti + 1ec: 0f 90 pop r0 + 1ee: cf 91 pop r28 + 1f0: df 91 pop r29 + 1f2: 1f 91 pop r17 + 1f4: 0f 91 pop r16 + 1f6: ff 90 pop r15 + 1f8: ef 90 pop r14 + 1fa: df 90 pop r13 + 1fc: cf 90 pop r12 + 1fe: bf 90 pop r11 + 200: 9f 90 pop r9 + 202: 8f 90 pop r8 + 204: 08 95 ret -000001b4
: +00000206 : -int main(void) { - 1b4: 4f 92 push r4 - 1b6: 5f 92 push r5 - 1b8: 7f 92 push r7 - 1ba: 8f 92 push r8 - 1bc: 9f 92 push r9 - 1be: af 92 push r10 - 1c0: bf 92 push r11 - 1c2: cf 92 push r12 - 1c4: df 92 push r13 - 1c6: ef 92 push r14 - 1c8: ff 92 push r15 - 1ca: 0f 93 push r16 - 1cc: 1f 93 push r17 - 1ce: df 93 push r29 - 1d0: cf 93 push r28 - 1d2: 0f 92 push r0 - 1d4: cd b7 in r28, 0x3d ; 61 - 1d6: de b7 in r29, 0x3e ; 62 - DDRB = 0; - 1d8: 17 ba out 0x17, r1 ; 23 +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 + frame[0] = 10; + 20e: 9a e0 ldi r25, 0x0A ; 10 + 210: 90 93 72 00 sts 0x0072, r25 + for(uint8_t j=min;j<=99;j++) { + 214: 08 2f mov r16, r24 + frame[2] = (uint8_t)(j/10); + 216: 4a e0 ldi r20, 0x0A ; 10 + 218: f4 2e mov r15, r20 + } +} + +void timerup(uint8_t min) { + frame[0] = 10; + for(uint8_t j=min;j<=99;j++) { + 21a: 1f c0 rjmp .+62 ; 0x25a + frame[2] = (uint8_t)(j/10); + 21c: 80 2f mov r24, r16 + 21e: 6f 2d mov r22, r15 + 220: 36 d1 rcall .+620 ; 0x48e <__udivmodqi4> + 222: 80 93 74 00 sts 0x0074, r24 + frame[3] = (uint8_t)(j%10); + 226: 90 93 75 00 sts 0x0075, r25 + for(uint8_t i=0;i<=59;i++) { + 22a: 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: 2e d1 rcall .+604 ; 0x48e <__udivmodqi4> + 232: 80 93 76 00 sts 0x0076, r24 + frame[5] = (uint8_t)(i%10); + 236: 90 93 77 00 sts 0x0077, 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 72 00 sts 0x0072, r24 + 248: 32 e5 ldi r19, 0x52 ; 82 + 24a: e3 2e mov r14, r19 + for(uint8_t k=0;k<82;k++) { + render(); + 24c: 71 df rcall .-286 ; 0x130 + 24e: 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 +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 + } +} + +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 + 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 + +00000268 : + +void start() { DDRD |= (1< - break; - } + 26c: 95 9a sbi 0x12, 5 ; 18 + #else + //round up by default + __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); + #endif + + __builtin_avr_delay_cycles(__ticks_dc); + 26e: 8f ef ldi r24, 0xFF ; 255 + 270: 94 e3 ldi r25, 0x34 ; 52 + 272: ac e0 ldi r26, 0x0C ; 12 + 274: 81 50 subi r24, 0x01 ; 1 + 276: 90 40 sbci r25, 0x00 ; 0 + 278: a0 40 sbci r26, 0x00 ; 0 + 27a: e1 f7 brne .-8 ; 0x274 + 27c: 00 c0 rjmp .+0 ; 0x27e + 27e: 00 00 nop + _delay_ms(500); + while(1) { + if (!(PIND & (1< + break; } - frame[0] = 11; - 1e4: 8b e0 ldi r24, 0x0B ; 11 - 1e6: 80 93 72 00 sts 0x0072, r24 - 1ea: 6d e1 ldi r22, 0x1D ; 29 - 1ec: a6 2e mov r10, r22 - 1ee: b1 2c mov r11, r1 - for(uint8_t j=0;j<=MIN;j++) { - frame[2] = (uint8_t)((MIN-j)/10); - 1f0: 5a e0 ldi r21, 0x0A ; 10 - 1f2: e5 2e mov r14, r21 - 1f4: f1 2c mov r15, r1 - 1f6: c5 01 movw r24, r10 - 1f8: b7 01 movw r22, r14 - 1fa: 25 d1 rcall .+586 ; 0x446 <__divmodhi4> - 1fc: 60 93 74 00 sts 0x0074, r22 - frame[3] = (uint8_t)((MIN-j)%10); - 200: 80 93 75 00 sts 0x0075, r24 - 204: 0b e3 ldi r16, 0x3B ; 59 - 206: 10 e0 ldi r17, 0x00 ; 0 - for(uint8_t i=0;i<=59;i++) { - 208: 20 e0 ldi r18, 0x00 ; 0 - frame[4] = (uint8_t)((59-i)/10); - 20a: c8 01 movw r24, r16 - 20c: b7 01 movw r22, r14 - 20e: 1b d1 rcall .+566 ; 0x446 <__divmodhi4> - 210: 60 93 76 00 sts 0x0076, r22 - frame[5] = (uint8_t)((59-i)%10); - 214: 80 93 77 00 sts 0x0077, r24 - frame[0] = (i%2==0)?11:14; - 218: 20 ff sbrs r18, 0 - 21a: 02 c0 rjmp .+4 ; 0x220 - 21c: 8e e0 ldi r24, 0x0E ; 14 - 21e: 01 c0 rjmp .+2 ; 0x222 - 220: 8b e0 ldi r24, 0x0B ; 11 - 222: 80 93 72 00 sts 0x0072, r24 - 226: 42 e5 ldi r20, 0x52 ; 82 - 228: d4 2e mov r13, r20 - for(uint8_t k=0;k<82;k++) { - render(); - 22a: 29 83 std Y+1, r18 ; 0x01 - 22c: 81 df rcall .-254 ; 0x130 - 22e: da 94 dec r13 - 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++) { - 230: 29 81 ldd r18, Y+1 ; 0x01 - 232: dd 20 and r13, r13 - 234: d1 f7 brne .-12 ; 0x22a + } +} + 284: 08 95 ret + +00000286 : + +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 + frame[0] = 10; + 290: 8a e0 ldi r24, 0x0A ; 10 + 292: 80 93 72 00 sts 0x0072, r24 + 296: 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 + frame[3] = 14; + 29c: 1e e0 ldi r17, 0x0E ; 14 + frame[5] = 14; + for(uint8_t k=0;k<5;k++) { + render(); } - 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++) { - 236: 2f 5f subi r18, 0xFF ; 255 - 238: 01 50 subi r16, 0x01 ; 1 - 23a: 10 40 sbci r17, 0x00 ; 0 - 23c: 2c 33 cpi r18, 0x3C ; 60 - 23e: 29 f7 brne .-54 ; 0x20a - 240: 08 94 sec - 242: a1 08 sbc r10, r1 - 244: b1 08 sbc r11, r1 - if (!(PIND & (1< - render(); - } - } + frame[3] = 14; + frame[4] = 17; + 2a2: 51 e1 ldi r21, 0x11 ; 17 + 2a4: e5 2e mov r14, r21 +} + +void endelauflicht() { + frame[0] = 10; + for(uint8_t j=0;j<41;j++) { + frame[2] = 15; + 2a6: f0 92 74 00 sts 0x0074, r15 + frame[3] = 14; + 2aa: 10 93 75 00 sts 0x0075, r17 + frame[4] = 14; + 2ae: 10 93 76 00 sts 0x0076, r17 + frame[5] = 14; + 2b2: 10 93 77 00 sts 0x0077, 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 } - while(1) { - frame[0] = 10; - 250: 8a e0 ldi r24, 0x0A ; 10 - 252: 80 93 72 00 sts 0x0072, r24 - 256: 0a e0 ldi r16, 0x0A ; 10 - for(uint8_t j=0;j<10;j++) { - frame[2] = 15; - 258: 3f e0 ldi r19, 0x0F ; 15 - 25a: e3 2e mov r14, r19 - frame[3] = 14; - 25c: 1e e0 ldi r17, 0x0E ; 14 - frame[5] = 14; - for(uint8_t k=0;k<5;k++) { - render(); - } - frame[2] = 14; - frame[3] = 16; - 25e: 20 e1 ldi r18, 0x10 ; 16 - 260: c2 2e mov r12, r18 - for(uint8_t k=0;k<5;k++) { - render(); - } - frame[3] = 14; - frame[4] = 17; - 262: 91 e1 ldi r25, 0x11 ; 17 - 264: d9 2e mov r13, r25 - } + frame[2] = 14; + 2c0: 10 93 74 00 sts 0x0074, r17 + frame[3] = 16; + 2c4: d0 92 75 00 sts 0x0075, 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 } - while(1) { - frame[0] = 10; - for(uint8_t j=0;j<10;j++) { - frame[2] = 15; - 266: e0 92 74 00 sts 0x0074, r14 - frame[3] = 14; - 26a: 10 93 75 00 sts 0x0075, r17 - frame[4] = 14; - 26e: 10 93 76 00 sts 0x0076, r17 - frame[5] = 14; - 272: 10 93 77 00 sts 0x0077, r17 - for(uint8_t k=0;k<5;k++) { - render(); - 276: 5c df rcall .-328 ; 0x130 - 278: 5b df rcall .-330 ; 0x130 - 27a: 5a df rcall .-332 ; 0x130 - 27c: 59 df rcall .-334 ; 0x130 - 27e: 58 df rcall .-336 ; 0x130 - } - frame[2] = 14; - 280: 10 93 74 00 sts 0x0074, r17 - frame[3] = 16; - 284: c0 92 75 00 sts 0x0075, r12 - for(uint8_t k=0;k<5;k++) { - render(); - 288: 53 df rcall .-346 ; 0x130 - 28a: 52 df rcall .-348 ; 0x130 - 28c: 51 df rcall .-350 ; 0x130 - 28e: 50 df rcall .-352 ; 0x130 - 290: 4f df rcall .-354 ; 0x130 - } - frame[3] = 14; - 292: 10 93 75 00 sts 0x0075, r17 - frame[4] = 17; - 296: d0 92 76 00 sts 0x0076, r13 - for(uint8_t k=0;k<5;k++) { - render(); - 29a: 4a df rcall .-364 ; 0x130 - 29c: 49 df rcall .-366 ; 0x130 - 29e: 48 df rcall .-368 ; 0x130 - 2a0: 47 df rcall .-370 ; 0x130 - 2a2: 46 df rcall .-372 ; 0x130 - } - frame[4] = 14; - 2a4: 10 93 76 00 sts 0x0076, r17 - frame[5] = 15; - 2a8: e0 92 77 00 sts 0x0077, r14 - for(uint8_t k=0;k<5;k++) { - render(); - 2ac: 41 df rcall .-382 ; 0x130 - 2ae: 40 df rcall .-384 ; 0x130 - 2b0: 3f df rcall .-386 ; 0x130 - 2b2: 3e df rcall .-388 ; 0x130 - 2b4: 3d df rcall .-390 ; 0x130 - 2b6: 01 50 subi r16, 0x01 ; 1 - } - } - } - while(1) { - frame[0] = 10; - for(uint8_t j=0;j<10;j++) { - 2b8: b1 f6 brne .-84 ; 0x266 - 2ba: 0a e0 ldi r16, 0x0A ; 10 - for(uint8_t k=0;k<5;k++) { - render(); - } - } - for(uint8_t j=0;j<10;j++) { - frame[2] = 14; - 2bc: 1e e0 ldi r17, 0x0E ; 14 - frame[3] = 14; - frame[4] = 14; - frame[5] = 15; - 2be: 8f e0 ldi r24, 0x0F ; 15 - 2c0: e8 2e mov r14, r24 - for(uint8_t k=0;k<5;k++) { - render(); - } - frame[5] = 14; - frame[3] = 16; - 2c2: b0 e1 ldi r27, 0x10 ; 16 - 2c4: cb 2e mov r12, r27 - for(uint8_t k=0;k<5;k++) { - render(); - } - frame[3] = 14; - frame[4] = 17; - 2c6: a1 e1 ldi r26, 0x11 ; 17 - 2c8: da 2e mov r13, r26 - for(uint8_t k=0;k<5;k++) { - render(); - } - } - for(uint8_t j=0;j<10;j++) { - frame[2] = 14; - 2ca: 10 93 74 00 sts 0x0074, r17 - frame[3] = 14; - 2ce: 10 93 75 00 sts 0x0075, r17 - frame[4] = 14; - 2d2: 10 93 76 00 sts 0x0076, r17 - frame[5] = 15; - 2d6: e0 92 77 00 sts 0x0077, r14 - for(uint8_t k=0;k<5;k++) { - render(); + frame[3] = 14; + 2d2: 10 93 75 00 sts 0x0075, r17 + frame[4] = 17; + 2d6: e0 92 76 00 sts 0x0076, 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 - } - frame[5] = 14; - 2e4: 10 93 77 00 sts 0x0077, r17 - frame[3] = 16; - 2e8: c0 92 75 00 sts 0x0075, r12 - for(uint8_t k=0;k<5;k++) { - render(); + } + frame[4] = 14; + 2e4: 10 93 76 00 sts 0x0076, r17 + frame[5] = 15; + 2e8: f0 92 77 00 sts 0x0077, 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 - } - frame[3] = 14; - 2f6: 10 93 75 00 sts 0x0075, r17 - frame[4] = 17; - 2fa: d0 92 76 00 sts 0x0076, r13 - for(uint8_t k=0;k<5;k++) { - render(); - 2fe: 18 df rcall .-464 ; 0x130 - 300: 17 df rcall .-466 ; 0x130 - 302: 16 df rcall .-468 ; 0x130 - 304: 15 df rcall .-470 ; 0x130 - 306: 14 df rcall .-472 ; 0x130 - } - frame[2] = 15; - 308: e0 92 74 00 sts 0x0074, r14 - frame[4] = 14; - 30c: 10 93 76 00 sts 0x0076, r17 - for(uint8_t k=0;k<5;k++) { - render(); - 310: 0f df rcall .-482 ; 0x130 - 312: 0e df rcall .-484 ; 0x130 - 314: 0d df rcall .-486 ; 0x130 - 316: 0c df rcall .-488 ; 0x130 - 318: 0b df rcall .-490 ; 0x130 - 31a: 01 50 subi r16, 0x01 ; 1 - frame[5] = 15; - for(uint8_t k=0;k<5;k++) { - render(); - } - } - for(uint8_t j=0;j<10;j++) { - 31c: b1 f6 brne .-84 ; 0x2ca - 31e: 06 e0 ldi r16, 0x06 ; 6 - 320: 10 e0 ldi r17, 0x00 ; 0 - 322: 44 24 eor r4, r4 - 324: 55 24 eor r5, r5 - for(uint8_t k=0;k<5;k++) { - render(); - } - } - for(uint8_t j=0;j<39;j++) { - frame[2] = 15; - 326: ff e0 ldi r31, 0x0F ; 15 - 328: cf 2e mov r12, r31 - frame[3] = 16; - 32a: e0 e1 ldi r30, 0x10 ; 16 - 32c: ae 2e mov r10, r30 - frame[4] = 17; - 32e: 71 e1 ldi r23, 0x11 ; 17 - 330: b7 2e mov r11, r23 - frame[5] = 15; - for(uint8_t k=0;k<6+(j*2);k++) { - if(k%3==0) { - 332: 63 e0 ldi r22, 0x03 ; 3 - 334: 86 2e mov r8, r22 - frame[2] = 15; - frame[3] = 16; - frame[4] = 17; - frame[5] = 15; - } else { - frame[0] = 14; - 336: 5e e0 ldi r21, 0x0E ; 14 - 338: d5 2e mov r13, r21 - 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; - 33a: 4a e0 ldi r20, 0x0A ; 10 - 33c: 94 2e mov r9, r20 - for(uint8_t k=0;k<5;k++) { - render(); - } - } - for(uint8_t j=0;j<39;j++) { - frame[2] = 15; - 33e: c0 92 74 00 sts 0x0074, r12 - frame[3] = 16; - 342: a0 92 75 00 sts 0x0075, r10 - frame[4] = 17; - 346: b0 92 76 00 sts 0x0076, r11 - frame[5] = 15; - 34a: c0 92 77 00 sts 0x0077, r12 - for(uint8_t k=0;k<6+(j*2);k++) { - 34e: ee 24 eor r14, r14 - 350: 20 c0 rjmp .+64 ; 0x392 - if(k%3==0) { - 352: 8e 2d mov r24, r14 - 354: 68 2d mov r22, r8 - 356: 6b d0 rcall .+214 ; 0x42e <__udivmodqi4> - 358: 99 23 and r25, r25 - 35a: c9 f4 brne .+50 ; 0x38e - if(frame[2] == 14) { - 35c: 80 91 74 00 lds r24, 0x0074 - 360: 8e 30 cpi r24, 0x0E ; 14 - 362: 59 f4 brne .+22 ; 0x37a - frame[0] = 10; - 364: 90 92 72 00 sts 0x0072, r9 - frame[2] = 15; - 368: c0 92 74 00 sts 0x0074, r12 - frame[3] = 16; - 36c: a0 92 75 00 sts 0x0075, r10 - frame[4] = 17; - 370: b0 92 76 00 sts 0x0076, r11 - frame[5] = 15; - 374: c0 92 77 00 sts 0x0077, r12 - 378: 0a c0 rjmp .+20 ; 0x38e - } else { - frame[0] = 14; - 37a: d0 92 72 00 sts 0x0072, r13 - frame[2] = 14; - 37e: d0 92 74 00 sts 0x0074, r13 - frame[3] = 14; - 382: d0 92 75 00 sts 0x0075, r13 - frame[4] = 14; - 386: d0 92 76 00 sts 0x0076, r13 - frame[5] = 14; - 38a: d0 92 77 00 sts 0x0077, r13 - } - } - render(); - 38e: d0 de rcall .-608 ; 0x130 - for(uint8_t j=0;j<39;j++) { - frame[2] = 15; - frame[3] = 16; - frame[4] = 17; - frame[5] = 15; - for(uint8_t k=0;k<6+(j*2);k++) { - 390: e3 94 inc r14 - 392: 8e 2d mov r24, r14 - 394: 90 e0 ldi r25, 0x00 ; 0 - 396: 80 17 cp r24, r16 - 398: 91 07 cpc r25, r17 - 39a: dc f2 brlt .-74 ; 0x352 - frame[5] = 14; - } - } - render(); - } - frame[2] = 14; - 39c: d0 92 74 00 sts 0x0074, r13 - frame[3] = 14; - 3a0: d0 92 75 00 sts 0x0075, r13 - frame[4] = 14; - 3a4: d0 92 76 00 sts 0x0076, r13 - frame[5] = 14; - 3a8: d0 92 77 00 sts 0x0077, r13 - for(uint8_t k=0;k<5+j;k++) { - 3ac: 77 24 eor r7, r7 - } - } - + 2f6: 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 + 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 + +00000306 : + +void enderand() { + 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 + frame[0] = 10; + 310: 8a e0 ldi r24, 0x0A ; 10 + 312: 80 93 72 00 sts 0x0072, 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 74 00 sts 0x0074, r17 + frame[3] = 14; + 32a: 10 93 75 00 sts 0x0075, r17 + frame[4] = 14; + 32e: 10 93 76 00 sts 0x0076, r17 + frame[5] = 15; + 332: f0 92 77 00 sts 0x0077, 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 77 00 sts 0x0077, r17 + frame[3] = 16; + 344: d0 92 75 00 sts 0x0075, 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 75 00 sts 0x0075, r17 + frame[4] = 17; + 356: e0 92 76 00 sts 0x0076, 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 74 00 sts 0x0074, r15 + frame[4] = 14; + 368: 10 93 76 00 sts 0x0076, 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 72 00 sts 0x0072, 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 + for(uint8_t j=0;j<44;j++) { + frame[2] = 15; + 3ae: 5f e0 ldi r21, 0x0F ; 15 + 3b0: c5 2e mov r12, r21 + frame[3] = 16; + 3b2: 40 e1 ldi r20, 0x10 ; 16 + 3b4: a4 2e mov r10, r20 + frame[4] = 17; + 3b6: 31 e1 ldi r19, 0x11 ; 17 + 3b8: b3 2e mov r11, r19 + 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 + 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 + 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 +} + +void endeblink() { + frame[0] = 10; + for(uint8_t j=0;j<44;j++) { + frame[2] = 15; + 3c6: c0 92 74 00 sts 0x0074, r12 + frame[3] = 16; + 3ca: a0 92 75 00 sts 0x0075, r10 + frame[4] = 17; + 3ce: b0 92 76 00 sts 0x0076, r11 + frame[5] = 15; + 3d2: c0 92 77 00 sts 0x0077, r12 + for(uint8_t k=0;k<6+(j*2);k++) { + 3d6: ee 24 eor r14, r14 + 3d8: 20 c0 rjmp .+64 ; 0x41a + if(k%3==0) { + 3da: 8e 2d mov r24, r14 + 3dc: 68 2d mov r22, r8 + 3de: 57 d0 rcall .+174 ; 0x48e <__udivmodqi4> + 3e0: 99 23 and r25, r25 + 3e2: c9 f4 brne .+50 ; 0x416 + if(frame[2] == 14) { + 3e4: 80 91 74 00 lds r24, 0x0074 + 3e8: 8e 30 cpi r24, 0x0E ; 14 + 3ea: 59 f4 brne .+22 ; 0x402 + frame[0] = 10; + 3ec: 90 92 72 00 sts 0x0072, r9 + frame[2] = 15; + 3f0: c0 92 74 00 sts 0x0074, r12 + frame[3] = 16; + 3f4: a0 92 75 00 sts 0x0075, r10 + frame[4] = 17; + 3f8: b0 92 76 00 sts 0x0076, r11 + frame[5] = 15; + 3fc: c0 92 77 00 sts 0x0077, r12 + 400: 0a c0 rjmp .+20 ; 0x416 + } else { + frame[0] = 14; + 402: d0 92 72 00 sts 0x0072, r13 + frame[2] = 14; + 406: d0 92 74 00 sts 0x0074, r13 + frame[3] = 14; + 40a: d0 92 75 00 sts 0x0075, r13 + frame[4] = 14; + 40e: d0 92 76 00 sts 0x0076, r13 + frame[5] = 14; + 412: d0 92 77 00 sts 0x0077, r13 + } + } + render(); + 416: 8c de rcall .-744 ; 0x130 + 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 + frame[5] = 14; + } + } + render(); + } + frame[2] = 14; + 424: d0 92 74 00 sts 0x0074, r13 + frame[3] = 14; + 428: d0 92 75 00 sts 0x0075, r13 + frame[4] = 14; + 42c: d0 92 76 00 sts 0x0076, r13 + frame[5] = 14; + 430: d0 92 77 00 sts 0x0077, r13 + for(uint8_t k=0;k<5+j;k++) { + 434: 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 + } + 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 + render(); + 442: 76 de rcall .-788 ; 0x130 + } + 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 + } +} + +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 + 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 + +0000047a
: + + int main(void) { - 3ae: 34 e0 ldi r19, 0x04 ; 4 - 3b0: e3 2e mov r14, r19 - 3b2: f1 2c mov r15, r1 - 3b4: e4 0c add r14, r4 - 3b6: f5 1c adc r15, r5 - } - frame[2] = 14; - frame[3] = 14; - frame[4] = 14; - frame[5] = 14; - for(uint8_t k=0;k<5+j;k++) { - 3b8: 02 c0 rjmp .+4 ; 0x3be - render(); - 3ba: ba de rcall .-652 ; 0x130 - } - frame[2] = 14; - frame[3] = 14; - frame[4] = 14; - frame[5] = 14; - for(uint8_t k=0;k<5+j;k++) { - 3bc: 73 94 inc r7 - 3be: 87 2d mov r24, r7 - 3c0: 90 e0 ldi r25, 0x00 ; 0 - 3c2: e8 16 cp r14, r24 - 3c4: f9 06 cpc r15, r25 - 3c6: cc f7 brge .-14 ; 0x3ba - 3c8: 08 94 sec - 3ca: 41 1c adc r4, r1 - 3cc: 51 1c adc r5, r1 - 3ce: 0e 5f subi r16, 0xFE ; 254 - 3d0: 1f 4f sbci r17, 0xFF ; 255 - frame[4] = 14; - for(uint8_t k=0;k<5;k++) { - render(); - } - } - for(uint8_t j=0;j<39;j++) { - 3d2: e7 e2 ldi r30, 0x27 ; 39 - 3d4: 4e 16 cp r4, r30 - 3d6: 51 04 cpc r5, r1 - 3d8: 09 f0 breq .+2 ; 0x3dc - 3da: b1 cf rjmp .-158 ; 0x33e - for(uint8_t k=0;k<5+j;k++) { - render(); - } - } - while(1) { - frame[0] = 10; - 3dc: 2a e0 ldi r18, 0x0A ; 10 - 3de: e2 2e mov r14, r18 - 3e0: 9a e0 ldi r25, 0x0A ; 10 - 3e2: d9 2e mov r13, r25 - 3e4: d0 92 72 00 sts 0x0072, r13 - for(uint8_t j=1;j<=99;j++) { - 3e8: 11 e0 ldi r17, 0x01 ; 1 - frame[2] = (uint8_t)(j/10); - 3ea: 81 2f mov r24, r17 - 3ec: 6e 2d mov r22, r14 - 3ee: 1f d0 rcall .+62 ; 0x42e <__udivmodqi4> - 3f0: 80 93 74 00 sts 0x0074, r24 - frame[3] = (uint8_t)(j%10); - 3f4: 90 93 75 00 sts 0x0075, r25 - for(uint8_t i=0;i<=59;i++) { - 3f8: 00 e0 ldi r16, 0x00 ; 0 - frame[4] = (uint8_t)(i/10); - 3fa: 80 2f mov r24, r16 - 3fc: 6e 2d mov r22, r14 - 3fe: 17 d0 rcall .+46 ; 0x42e <__udivmodqi4> - 400: 80 93 76 00 sts 0x0076, r24 - frame[5] = (uint8_t)(i%10); - 404: 90 93 77 00 sts 0x0077, r25 - frame[0] = (i%2==0)?10:14; - 408: 00 ff sbrs r16, 0 - 40a: 02 c0 rjmp .+4 ; 0x410 - 40c: 8e e0 ldi r24, 0x0E ; 14 - 40e: 01 c0 rjmp .+2 ; 0x412 - 410: 8a e0 ldi r24, 0x0A ; 10 - 412: 80 93 72 00 sts 0x0072, r24 - 416: 82 e5 ldi r24, 0x52 ; 82 - 418: c8 2e mov r12, r24 - for(uint8_t k=0;k<82;k++) { - render(); - 41a: 8a de rcall .-748 ; 0x130 - 41c: ca 94 dec r12 - 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++) { - 41e: e9 f7 brne .-6 ; 0x41a - while(1) { - frame[0] = 10; - for(uint8_t j=1;j<=99;j++) { - frame[2] = (uint8_t)(j/10); - frame[3] = (uint8_t)(j%10); - for(uint8_t i=0;i<=59;i++) { - 420: 0f 5f subi r16, 0xFF ; 255 - 422: 0c 33 cpi r16, 0x3C ; 60 - 424: 51 f7 brne .-44 ; 0x3fa - render(); - } - } - while(1) { - frame[0] = 10; - for(uint8_t j=1;j<=99;j++) { - 426: 1f 5f subi r17, 0xFF ; 255 - 428: 14 36 cpi r17, 0x64 ; 100 - 42a: f9 f6 brne .-66 ; 0x3ea - 42c: db cf rjmp .-74 ; 0x3e4 + DDRB = 0; + 47a: 17 ba out 0x17, r1 ; 23 + OCR0A = 250; //geladen mit 10ms + TIMSK |= (1< + //Timer $MIN nach unten + timerdown(MIN); + 47e: 8d e1 ldi r24, 0x1D ; 29 + 480: 71 de rcall .-798 ; 0x164 + //Lauflicht 10s; + endelauflicht(); + 482: 01 df rcall .-510 ; 0x286 + //Lauflicht Rand 10s + enderand(); + 484: 40 df rcall .-384 ; 0x306 + //Blinklicht + endeblink(); + 486: 7f df rcall .-258 ; 0x386 + //Timer UP 1Min Start + timerup(1); + 488: 81 e0 ldi r24, 0x01 ; 1 + 48a: bd de rcall .-646 ; 0x206 + 48c: f7 cf rjmp .-18 ; 0x47c -0000042e <__udivmodqi4>: - 42e: 99 1b sub r25, r25 - 430: 79 e0 ldi r23, 0x09 ; 9 - 432: 04 c0 rjmp .+8 ; 0x43c <__udivmodqi4_ep> +0000048e <__udivmodqi4>: + 48e: 99 1b sub r25, r25 + 490: 79 e0 ldi r23, 0x09 ; 9 + 492: 04 c0 rjmp .+8 ; 0x49c <__udivmodqi4_ep> -00000434 <__udivmodqi4_loop>: - 434: 99 1f adc r25, r25 - 436: 96 17 cp r25, r22 - 438: 08 f0 brcs .+2 ; 0x43c <__udivmodqi4_ep> - 43a: 96 1b sub r25, r22 +00000494 <__udivmodqi4_loop>: + 494: 99 1f adc r25, r25 + 496: 96 17 cp r25, r22 + 498: 08 f0 brcs .+2 ; 0x49c <__udivmodqi4_ep> + 49a: 96 1b sub r25, r22 -0000043c <__udivmodqi4_ep>: - 43c: 88 1f adc r24, r24 - 43e: 7a 95 dec r23 - 440: c9 f7 brne .-14 ; 0x434 <__udivmodqi4_loop> - 442: 80 95 com r24 - 444: 08 95 ret +0000049c <__udivmodqi4_ep>: + 49c: 88 1f adc r24, r24 + 49e: 7a 95 dec r23 + 4a0: c9 f7 brne .-14 ; 0x494 <__udivmodqi4_loop> + 4a2: 80 95 com r24 + 4a4: 08 95 ret -00000446 <__divmodhi4>: - 446: 97 fb bst r25, 7 - 448: 09 2e mov r0, r25 - 44a: 07 26 eor r0, r23 - 44c: 0a d0 rcall .+20 ; 0x462 <__divmodhi4_neg1> - 44e: 77 fd sbrc r23, 7 - 450: 04 d0 rcall .+8 ; 0x45a <__divmodhi4_neg2> - 452: 0c d0 rcall .+24 ; 0x46c <__udivmodhi4> - 454: 06 d0 rcall .+12 ; 0x462 <__divmodhi4_neg1> - 456: 00 20 and r0, r0 - 458: 1a f4 brpl .+6 ; 0x460 <__divmodhi4_exit> +000004a6 <__divmodhi4>: + 4a6: 97 fb bst r25, 7 + 4a8: 09 2e mov r0, r25 + 4aa: 07 26 eor r0, r23 + 4ac: 0a d0 rcall .+20 ; 0x4c2 <__divmodhi4_neg1> + 4ae: 77 fd sbrc r23, 7 + 4b0: 04 d0 rcall .+8 ; 0x4ba <__divmodhi4_neg2> + 4b2: 0c d0 rcall .+24 ; 0x4cc <__udivmodhi4> + 4b4: 06 d0 rcall .+12 ; 0x4c2 <__divmodhi4_neg1> + 4b6: 00 20 and r0, r0 + 4b8: 1a f4 brpl .+6 ; 0x4c0 <__divmodhi4_exit> -0000045a <__divmodhi4_neg2>: - 45a: 70 95 com r23 - 45c: 61 95 neg r22 - 45e: 7f 4f sbci r23, 0xFF ; 255 +000004ba <__divmodhi4_neg2>: + 4ba: 70 95 com r23 + 4bc: 61 95 neg r22 + 4be: 7f 4f sbci r23, 0xFF ; 255 -00000460 <__divmodhi4_exit>: - 460: 08 95 ret +000004c0 <__divmodhi4_exit>: + 4c0: 08 95 ret -00000462 <__divmodhi4_neg1>: - 462: f6 f7 brtc .-4 ; 0x460 <__divmodhi4_exit> - 464: 90 95 com r25 - 466: 81 95 neg r24 - 468: 9f 4f sbci r25, 0xFF ; 255 - 46a: 08 95 ret +000004c2 <__divmodhi4_neg1>: + 4c2: f6 f7 brtc .-4 ; 0x4c0 <__divmodhi4_exit> + 4c4: 90 95 com r25 + 4c6: 81 95 neg r24 + 4c8: 9f 4f sbci r25, 0xFF ; 255 + 4ca: 08 95 ret -0000046c <__udivmodhi4>: - 46c: aa 1b sub r26, r26 - 46e: bb 1b sub r27, r27 - 470: 51 e1 ldi r21, 0x11 ; 17 - 472: 07 c0 rjmp .+14 ; 0x482 <__udivmodhi4_ep> +000004cc <__udivmodhi4>: + 4cc: aa 1b sub r26, r26 + 4ce: bb 1b sub r27, r27 + 4d0: 51 e1 ldi r21, 0x11 ; 17 + 4d2: 07 c0 rjmp .+14 ; 0x4e2 <__udivmodhi4_ep> -00000474 <__udivmodhi4_loop>: - 474: aa 1f adc r26, r26 - 476: bb 1f adc r27, r27 - 478: a6 17 cp r26, r22 - 47a: b7 07 cpc r27, r23 - 47c: 10 f0 brcs .+4 ; 0x482 <__udivmodhi4_ep> - 47e: a6 1b sub r26, r22 - 480: b7 0b sbc r27, r23 +000004d4 <__udivmodhi4_loop>: + 4d4: aa 1f adc r26, r26 + 4d6: bb 1f adc r27, r27 + 4d8: a6 17 cp r26, r22 + 4da: b7 07 cpc r27, r23 + 4dc: 10 f0 brcs .+4 ; 0x4e2 <__udivmodhi4_ep> + 4de: a6 1b sub r26, r22 + 4e0: b7 0b sbc r27, r23 -00000482 <__udivmodhi4_ep>: - 482: 88 1f adc r24, r24 - 484: 99 1f adc r25, r25 - 486: 5a 95 dec r21 - 488: a9 f7 brne .-22 ; 0x474 <__udivmodhi4_loop> - 48a: 80 95 com r24 - 48c: 90 95 com r25 - 48e: bc 01 movw r22, r24 - 490: cd 01 movw r24, r26 - 492: 08 95 ret +000004e2 <__udivmodhi4_ep>: + 4e2: 88 1f adc r24, r24 + 4e4: 99 1f adc r25, r25 + 4e6: 5a 95 dec r21 + 4e8: a9 f7 brne .-22 ; 0x4d4 <__udivmodhi4_loop> + 4ea: 80 95 com r24 + 4ec: 90 95 com r25 + 4ee: bc 01 movw r22, r24 + 4f0: cd 01 movw r24, r26 + 4f2: 08 95 ret -00000494 <_exit>: - 494: f8 94 cli +000004f4 <_exit>: + 4f4: f8 94 cli -00000496 <__stop_program>: - 496: ff cf rjmp .-2 ; 0x496 <__stop_program> +000004f6 <__stop_program>: + 4f6: ff cf rjmp .-2 ; 0x4f6 <__stop_program> diff --git a/Timer/default/Timer.map b/Timer/default/Timer.map index ddac2f6..9fc2867 100644 --- a/Timer/default/Timer.map +++ b/Timer/default/Timer.map @@ -122,7 +122,7 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a .rela.plt *(.rela.plt) -.text 0x00000000 0x498 +.text 0x00000000 0x4f8 *(.vectors) .vectors 0x00000000 0x26 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o 0x00000000 __vector_default @@ -184,6 +184,7 @@ 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 @@ -196,34 +197,39 @@ 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 0x3d4 Timer.o + .text 0x0000005a 0x434 Timer.o 0x0000005a display 0x00000130 render - 0x00000164 __vector_13 - 0x000001b4 main - .text 0x0000042e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) - .text 0x0000042e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o) - .text 0x0000042e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) - .text 0x0000042e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) - .text 0x0000042e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) - .text 0x0000042e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o) - 0x0000042e . = ALIGN (0x2) + 0x00000164 timerdown + 0x00000206 timerup + 0x00000268 start + 0x00000286 endelauflicht + 0x00000306 enderand + 0x00000386 endeblink + 0x0000047a main + .text 0x0000048e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) + .text 0x0000048e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o) + .text 0x0000048e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) + .text 0x0000048e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) + .text 0x0000048e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) + .text 0x0000048e 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o) + 0x0000048e . = ALIGN (0x2) *(.text.*) - .text.libgcc 0x0000042e 0x18 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) - 0x0000042e __udivmodqi4 - .text.libgcc 0x00000446 0x26 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o) - 0x00000446 _div - 0x00000446 __divmodhi4 - .text.libgcc 0x0000046c 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) - .text.libgcc 0x0000046c 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) - .text.libgcc 0x0000046c 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) - .text.libgcc 0x0000046c 0x28 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o) - 0x0000046c __udivmodhi4 - 0x00000494 . = ALIGN (0x2) + .text.libgcc 0x0000048e 0x18 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) + 0x0000048e __udivmodqi4 + .text.libgcc 0x000004a6 0x26 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o) + 0x000004a6 _div + 0x000004a6 __divmodhi4 + .text.libgcc 0x000004cc 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) + .text.libgcc 0x000004cc 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) + .text.libgcc 0x000004cc 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) + .text.libgcc 0x000004cc 0x28 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o) + 0x000004cc __udivmodhi4 + 0x000004f4 . = ALIGN (0x2) *(.fini9) - .fini9 0x00000494 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) - 0x00000494 _exit - 0x00000494 exit + .fini9 0x000004f4 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) + 0x000004f4 _exit + 0x000004f4 exit *(.fini9) *(.fini8) *(.fini8) @@ -242,11 +248,11 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00000494 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) + .fini0 0x000004f4 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) *(.fini0) - 0x00000498 _etext = . + 0x000004f8 _etext = . -.data 0x00800060 0x18 load address 0x00000498 +.data 0x00800060 0x18 load address 0x000004f8 0x00800060 PROVIDE (__data_start, .) *(.data) .data 0x00800060 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o @@ -282,8 +288,8 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a *(.bss*) *(COMMON) 0x00800079 PROVIDE (__bss_end, .) - 0x00000498 __data_load_start = LOADADDR (.data) - 0x000004b0 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x000004f8 __data_load_start = LOADADDR (.data) + 0x00000510 __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x00800079 0x0 0x00800079 PROVIDE (__noinit_start, .) @@ -349,36 +355,36 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a 0x00000000 0x20 Timer.o .debug_pubnames - 0x00000000 0x5d + 0x00000000 0x9e *(.debug_pubnames) .debug_pubnames - 0x00000000 0x5d Timer.o + 0x00000000 0x9e Timer.o -.debug_info 0x00000000 0x463 +.debug_info 0x00000000 0x5ab *(.debug_info) - .debug_info 0x00000000 0x463 Timer.o + .debug_info 0x00000000 0x5ab Timer.o *(.gnu.linkonce.wi.*) -.debug_abbrev 0x00000000 0x1e3 +.debug_abbrev 0x00000000 0x1b7 *(.debug_abbrev) - .debug_abbrev 0x00000000 0x1e3 Timer.o + .debug_abbrev 0x00000000 0x1b7 Timer.o -.debug_line 0x00000000 0x5a9 +.debug_line 0x00000000 0x626 *(.debug_line) - .debug_line 0x00000000 0x5a9 Timer.o + .debug_line 0x00000000 0x626 Timer.o -.debug_frame 0x00000000 0x50 +.debug_frame 0x00000000 0xa0 *(.debug_frame) - .debug_frame 0x00000000 0x50 Timer.o + .debug_frame 0x00000000 0xa0 Timer.o -.debug_str 0x00000000 0x102 +.debug_str 0x00000000 0x147 *(.debug_str) - .debug_str 0x00000000 0x102 Timer.o - 0x13b (size before relaxing) + .debug_str 0x00000000 0x147 Timer.o + 0x180 (size before relaxing) -.debug_loc 0x00000000 0x3fb +.debug_loc 0x00000000 0x474 *(.debug_loc) - .debug_loc 0x00000000 0x3fb Timer.o + .debug_loc 0x00000000 0x474 Timer.o .debug_macinfo *(.debug_macinfo) @@ -386,9 +392,9 @@ OUTPUT(Timer.elf elf32-avr) LOAD linker stubs .debug_pubtypes - 0x00000000 0x2b + 0x00000000 0x38 .debug_pubtypes - 0x00000000 0x2b Timer.o + 0x00000000 0x38 Timer.o .debug_ranges 0x00000000 0x18 .debug_ranges 0x00000000 0x18 Timer.o diff --git a/Timer/timer.aws b/Timer/timer.aws index f0d9ffa..06679ec 100644 --- a/Timer/timer.aws +++ b/Timer/timer.aws @@ -1 +1 @@ - +