diff --git a/Timer-Zeit.xlsx b/Timer-Zeit.xlsx new file mode 100644 index 0000000..f041011 Binary files /dev/null and b/Timer-Zeit.xlsx differ diff --git a/Timer/Timer.c b/Timer/Timer.c index 83875e9..3168ee0 100644 --- a/Timer/Timer.c +++ b/Timer/Timer.c @@ -15,12 +15,11 @@ volatile uint8_t segs[] = { 0b00000111, //7 0b01111111, //8 0b01101111, //9 - 0b01000000, //- - 0b01110000, //+ - 0b01000110, //-1 - 0b01110110, //+1 - 0b00000000, //Blank - //15 + 0b01000000, //- 10 + 0b01110000, //+ 11 + 0b01000110, //-1 12 + 0b01110110, //+1 13 + 0b00000000, //Blank 14 0b01111001, //E 15 0b00110111, //N 16 0b01011110, //d 17 @@ -47,7 +46,7 @@ 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}; -uint8_t var = 0; +uint8_t timer_delay = 0; void display(uint8_t z, uint8_t p) { uint8_t ddr = (segs[z]<<1); @@ -85,10 +84,10 @@ void timerdown(uint8_t min) { frame[4] = 0; frame[5] = 0; cli(); - TCCR0A |= (1<254 Zählen + TIMSK |= (1<= 31) { //wenn Zustand mindestens 200x10ms = 2sec. andauert - var = 0; + if (timer_delay == 30) { //wenn Zustand mindestens 30x32,512ms = 0,97536sec. andauert + OCR0A = 193; //Restliche Sekunde abwarten + } + if(timer_delay == 31) { //wenn Zustand 1,00006400s gedauert hat ... 64µs Fehler! + timer_delay = 0; + OCR0A = 254; if(frame[5] > 0) { frame[5] = frame[5]--; } else { @@ -296,10 +291,10 @@ ISR(TIMER0_COMPA_vect) frame[5] = (uint8_t)((59-i)%10); frame[0] = (i%2==0)?11:14;*/ } else { - var++; + timer_delay++; } -}//*/ +} int main(void) { DDRB = 0; @@ -308,7 +303,7 @@ int main(void) { //Warten bis Startknopf start(); //Timer 20 nach unten - timerdown(20); + timerdown(22); while(1) { render(); if(frame[2] == 0 && frame[3] == 0 && frame[4] == 0 && frame[5] == 0) { diff --git a/Timer/default/Timer.elf b/Timer/default/Timer.elf index 35f48d3..30ed925 100644 Binary files a/Timer/default/Timer.elf and b/Timer/default/Timer.elf differ diff --git a/Timer/default/Timer.hex b/Timer/default/Timer.hex index a128276..47cb747 100644 --- a/Timer/default/Timer.hex +++ b/Timer/default/Timer.hex @@ -1,9 +1,9 @@ :1000000012C02AC029C028C027C026C025C024C0CD :1000100023C022C021C020C01FC075C21DC01CC08B :100020001BC01AC019C011241FBECFEDCDBF10E0F8 -:10003000A0E6B0E0E4E2F6E002C005900D92A83937 +:10003000A0E6B0E0E4E3F6E002C005900D92A83936 :10004000B107D9F710E0A8E9B0E001C01D92A939C5 -:10005000B107E1F7B1D2E4C2D3CFE82FF0E0E05A24 +:10005000B107E1F7B9D2ECC2D3CFE82FF0E0E05A14 :10006000FF4FA081AA0F7081770FE1E041E050E0DF :100070001FC08E2F90E02A2F30E00E2E02C0359543 :1000800027950A94E2F7019720FF08C09A0102C061 @@ -18,13 +18,13 @@ :10011000872318BAA7BB88BB08951F93CF93DF939B :1001200017E0C0E0D0E0FE01E258FF4F8081612F70 :1001300094DF85E88A95F1F700002196115011307F -:1001400091F7DF91CF911F9108956AE05DD280937E +:1001400091F7DF91CF911F9108956AE065D2809376 :100150008000909381001092820010928300F894A6 -:1001600080B7826080BF83B7856083BF8AEF86BF18 +:1001600080B7826080BF83B7856083BF8EEF86BF14 :1001700089B7816089BF78940895EF92FF920F93B9 :100180001F939AE090937E00082F9AE0F92E1FC0EB -:10019000802F6F2D39D2809380009093810010E0E2 -:1001A000812F6F2D31D2809382009093830010FFB6 +:10019000802F6F2D41D2809380009093810010E0DA +:1001A000812F6F2D39D2809382009093830010FFAE :1001B00002C08EE001C08AE080937E0082E5E82ED6 :1001C000ACDFEA94E9F71F5F1C3351F70F5F043689 :1001D000F8F21F910F91FF90EF9008958C9A9498E8 @@ -51,7 +51,7 @@ :10032000D0E02FE0C22E90E1A92E81E1B82EB3E0FB :100330008B2EAEE0DA2EFAE09F2EC0928000A092C3 :100340008100B0928200C0928300EE2420C08E2DE6 -:10035000682D5AD19923C9F4809180008E3059F4C8 +:10035000682D62D19923C9F4809180008E3059F4C0 :1003600090927E00C0928000A0928100B0928200A4 :10037000C09283000AC0D0927E00D0928000D092BA :100380008100D0928200D0928300C7DEE3948E2D4C @@ -79,27 +79,28 @@ :1004E0008100109382001093830064E1F62E15DEE4 :1004F000FA94E9F7015021F71F910F91FF90EF90C7 :10050000DF90CF9008951F920F920FB60F92112493 -:100510008F939F93809198008F3108F443C010927D -:10052000980080918300882341F08091830080931C -:1005300083008150809383002BC089E080938300E7 -:1005400090918200992341F08091820080938200F3 -:100550008150809382001CC095E09093820090911E -:100560008100992341F08091810080938100815026 -:10057000809381000DC08093810090918000992329 -:1005800029F08091800080938000815080938000CA -:1005900080917E008E3011F48BE001C08EE080935C -:1005A0007E0003C08F5F809398009F918F910F9082 -:1005B0000FBE0F901F90189517BA10DE84E1C5DDAD -:1005C000ACDD809180008823D9F780918100882359 -:1005D000B9F780918200882399F78091830088235E -:1005E00079F719BE0ADE89DE8AE080937E008FE00B -:1005F0008093800090E19093810091E1909382003C -:10060000809383008ADDFECF991B79E004C0991F97 -:10061000961708F0961B881F7A95C9F7809508955C -:04062000F894FFCF7C -:100624003F065B4F666D7D077F6F407046760079AD -:10063400375E71315C763C1E067739073E0F0E0E2D -:100644000E0E0E0E121314150F0E16170F1815108A -:08065400191A151B0F100E000E +:100510008F939F93809198008E3111F481EC86BF68 +:10052000809198008F3109F045C0109298008EEFAD +:1005300086BF80918300882341F08091830080935F +:1005400083008150809383002BC089E080938300D7 +:1005500090918200992341F08091820080938200E3 +:100560008150809382001CC095E09093820090910E +:100570008100992341F08091810080938100815016 +:10058000809381000DC08093810090918000992319 +:1005900029F08091800080938000815080938000BA +:1005A00080917E008E3011F48BE001C08EE080934C +:1005B0007E0003C08F5F809398009F918F910F9072 +:1005C0000FBE0F901F90189517BA08DE86E1BDDDAB +:1005D000A4DD809180008823D9F780918100882351 +:1005E000B9F780918200882399F78091830088234E +:1005F00079F719BE02DE81DE8AE080937E008FE00B +:100600008093800090E19093810091E1909382002B +:100610008093830082DDFECF991B79E004C0991F8F +:10062000961708F0961B881F7A95C9F7809508954C +:04063000F894FFCF6C +:100634003F065B4F666D7D077F6F4070467600799D +:10064400375E71315C763C1E067739073E0F0E0E1D +:100654000E0E0E0E121314150F0E16170F1815107A +:08066400191A151B0F100E00FE :04000003000001DC1C :00000001FF diff --git a/Timer/default/Timer.lss b/Timer/default/Timer.lss index 62d50de..e8cae0e 100644 --- a/Timer/default/Timer.lss +++ b/Timer/default/Timer.lss @@ -3,35 +3,35 @@ Timer.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .text 00000624 00000000 00000000 00000094 2**1 + 0 .text 00000634 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000038 00800060 00000624 000006b8 2**0 + 1 .data 00000038 00800060 00000634 000006c8 2**0 CONTENTS, ALLOC, LOAD, DATA - 2 .bss 00000001 00800098 00800098 000006f0 2**0 + 2 .bss 00000001 00800098 00800098 00000700 2**0 ALLOC - 3 .stab 000006b4 00000000 00000000 000006f0 2**2 + 3 .stab 000006b4 00000000 00000000 00000700 2**2 CONTENTS, READONLY, DEBUGGING - 4 .stabstr 00000085 00000000 00000000 00000da4 2**0 + 4 .stabstr 00000085 00000000 00000000 00000db4 2**0 CONTENTS, READONLY, DEBUGGING - 5 .debug_aranges 00000020 00000000 00000000 00000e29 2**0 + 5 .debug_aranges 00000020 00000000 00000000 00000e39 2**0 CONTENTS, READONLY, DEBUGGING - 6 .debug_pubnames 000000cc 00000000 00000000 00000e49 2**0 + 6 .debug_pubnames 000000d4 00000000 00000000 00000e59 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_info 00000696 00000000 00000000 00000f15 2**0 + 7 .debug_info 00000696 00000000 00000000 00000f2d 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_abbrev 00000208 00000000 00000000 000015ab 2**0 + 8 .debug_abbrev 000001e6 00000000 00000000 000015c3 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_line 00000860 00000000 00000000 000017b3 2**0 + 9 .debug_line 00000878 00000000 00000000 000017a9 2**0 CONTENTS, READONLY, DEBUGGING - 10 .debug_frame 000000d0 00000000 00000000 00002014 2**2 + 10 .debug_frame 000000d0 00000000 00000000 00002024 2**2 CONTENTS, READONLY, DEBUGGING - 11 .debug_str 00000174 00000000 00000000 000020e4 2**0 + 11 .debug_str 00000180 00000000 00000000 000020f4 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_loc 00000503 00000000 00000000 00002258 2**0 + 12 .debug_loc 00000503 00000000 00000000 00002274 2**0 CONTENTS, READONLY, DEBUGGING - 13 .debug_pubtypes 00000038 00000000 00000000 0000275b 2**0 + 13 .debug_pubtypes 00000038 00000000 00000000 00002777 2**0 CONTENTS, READONLY, DEBUGGING - 14 .debug_ranges 00000018 00000000 00000000 00002793 2**0 + 14 .debug_ranges 00000018 00000000 00000000 000027af 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -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: e4 e2 ldi r30, 0x24 ; 36 + 34: e4 e3 ldi r30, 0x34 ; 52 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: b1 d2 rcall .+1378 ; 0x5b8
- 56: e4 c2 rjmp .+1480 ; 0x620 <_exit> + 54: b9 d2 rcall .+1394 ; 0x5c8
+ 56: ec c2 rjmp .+1496 ; 0x630 <_exit> 00000058 <__bad_interrupt>: 58: d3 cf rjmp .-90 ; 0x0 <__vectors> @@ -98,7 +98,7 @@ Disassembly of section .text: 0000005a : // 14,14,18,18,19,19,20,20}; volatile uint8_t frame[6] = {14,14, 14,14, 14,14}; -uint8_t var = 0; +uint8_t timer_delay = 0; void display(uint8_t z, uint8_t p) { uint8_t ddr = (segs[z]<<1); @@ -119,7 +119,7 @@ void display(uint8_t z, uint8_t p) { ddr &= ~(1<<(i-1)); 6c: 41 e0 ldi r20, 0x01 ; 1 6e: 50 e0 ldi r21, 0x00 ; 0 -uint8_t var = 0; +uint8_t timer_delay = 0; void display(uint8_t z, uint8_t p) { uint8_t ddr = (segs[z]<<1); @@ -160,7 +160,7 @@ void display(uint8_t z, uint8_t p) { a8: c9 01 movw r24, r18 aa: 80 95 com r24 ac: a8 23 and r26, r24 -uint8_t var = 0; +uint8_t timer_delay = 0; void display(uint8_t z, uint8_t p) { uint8_t ddr = (segs[z]<<1); @@ -303,7 +303,7 @@ void render() { void timerdown(uint8_t min) { frame[2] = min/10; 14a: 6a e0 ldi r22, 0x0A ; 10 - 14c: 5d d2 rcall .+1210 ; 0x608 <__udivmodqi4> + 14c: 65 d2 rcall .+1226 ; 0x618 <__udivmodqi4> 14e: 80 93 80 00 sts 0x0080, r24 frame[3] = min%10; 152: 90 93 81 00 sts 0x0081, r25 @@ -313,18 +313,18 @@ void timerdown(uint8_t min) { 15a: 10 92 83 00 sts 0x0083, r1 cli(); 15e: f8 94 cli - TCCR0A |= (1<254 Zählen + 16c: 8e ef ldi r24, 0xFE ; 254 16e: 86 bf out 0x36, r24 ; 54 - TIMSK |= (1< + 194: 41 d2 rcall .+1154 ; 0x618 <__udivmodqi4> 196: 80 93 80 00 sts 0x0080, r24 frame[3] = (uint8_t)(j%10); 19a: 90 93 81 00 sts 0x0081, r25 @@ -367,7 +367,7 @@ void timerup(uint8_t min) { frame[4] = (uint8_t)(i/10); 1a0: 81 2f mov r24, r17 1a2: 6f 2d mov r22, r15 - 1a4: 31 d2 rcall .+1122 ; 0x608 <__udivmodqi4> + 1a4: 39 d2 rcall .+1138 ; 0x618 <__udivmodqi4> 1a6: 80 93 82 00 sts 0x0082, r24 frame[5] = (uint8_t)(i%10); 1aa: 90 93 83 00 sts 0x0083, r25 @@ -750,7 +750,7 @@ void endeblink() { if(k%3==0) { 34e: 8e 2d mov r24, r14 350: 68 2d mov r22, r8 - 352: 5a d1 rcall .+692 ; 0x608 <__udivmodqi4> + 352: 62 d1 rcall .+708 ; 0x618 <__udivmodqi4> 354: 99 23 and r25, r25 356: c9 f4 brne .+50 ; 0x38a if(frame[2] == 14) { @@ -1130,7 +1130,6 @@ void blink2013() { 00000506 <__vector_13>: -//ISR// (TIMER1_//OVF_vect) ISR(TIMER0_COMPA_vect) { 506: 1f 92 push r1 @@ -1140,185 +1139,191 @@ ISR(TIMER0_COMPA_vect) 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 + if (timer_delay == 30) { //wenn Zustand mindestens 30x32,512ms = 0,97536sec. 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 + 518: 8e 31 cpi r24, 0x1E ; 30 + 51a: 11 f4 brne .+4 ; 0x520 <__vector_13+0x1a> + OCR0A = 193; //Restliche Sekunde abwarten + 51c: 81 ec ldi r24, 0xC1 ; 193 + 51e: 86 bf out 0x36, r24 ; 54 + } + if(timer_delay == 31) { //wenn Zustand 1,00006400s gedauert hat ... 64µs Fehler! + 520: 80 91 98 00 lds r24, 0x0098 + 524: 8f 31 cpi r24, 0x1F ; 31 + 526: 09 f0 breq .+2 ; 0x52a <__vector_13+0x24> + 528: 45 c0 rjmp .+138 ; 0x5b4 <__vector_13+0xae> + timer_delay = 0; + 52a: 10 92 98 00 sts 0x0098, r1 + OCR0A = 254; + 52e: 8e ef ldi r24, 0xFE ; 254 + 530: 86 bf out 0x36, r24 ; 54 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> + 532: 80 91 83 00 lds r24, 0x0083 + 536: 88 23 and r24, r24 + 538: 41 f0 breq .+16 ; 0x54a <__vector_13+0x44> 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> + 53a: 80 91 83 00 lds r24, 0x0083 + 53e: 80 93 83 00 sts 0x0083, r24 + 542: 81 50 subi r24, 0x01 ; 1 + 544: 80 93 83 00 sts 0x0083, r24 + 548: 2b c0 rjmp .+86 ; 0x5a0 <__vector_13+0x9a> } else { frame[5] = 9; - 53a: 89 e0 ldi r24, 0x09 ; 9 - 53c: 80 93 83 00 sts 0x0083, r24 + 54a: 89 e0 ldi r24, 0x09 ; 9 + 54c: 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> + 550: 90 91 82 00 lds r25, 0x0082 + 554: 99 23 and r25, r25 + 556: 41 f0 breq .+16 ; 0x568 <__vector_13+0x62> 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> + 558: 80 91 82 00 lds r24, 0x0082 + 55c: 80 93 82 00 sts 0x0082, r24 + 560: 81 50 subi r24, 0x01 ; 1 + 562: 80 93 82 00 sts 0x0082, r24 + 566: 1c c0 rjmp .+56 ; 0x5a0 <__vector_13+0x9a> } else { frame[4] = 5; - 558: 95 e0 ldi r25, 0x05 ; 5 - 55a: 90 93 82 00 sts 0x0082, r25 + 568: 95 e0 ldi r25, 0x05 ; 5 + 56a: 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> + 56e: 90 91 81 00 lds r25, 0x0081 + 572: 99 23 and r25, r25 + 574: 41 f0 breq .+16 ; 0x586 <__vector_13+0x80> 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> + 576: 80 91 81 00 lds r24, 0x0081 + 57a: 80 93 81 00 sts 0x0081, r24 + 57e: 81 50 subi r24, 0x01 ; 1 + 580: 80 93 81 00 sts 0x0081, r24 + 584: 0d c0 rjmp .+26 ; 0x5a0 <__vector_13+0x9a> } else { frame[3] = 9; - 576: 80 93 81 00 sts 0x0081, r24 + 586: 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> + 58a: 90 91 80 00 lds r25, 0x0080 + 58e: 99 23 and r25, r25 + 590: 29 f0 breq .+10 ; 0x59c <__vector_13+0x96> 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 + 592: 80 91 80 00 lds r24, 0x0080 + 596: 80 93 80 00 sts 0x0080, r24 + 59a: 81 50 subi r24, 0x01 ; 1 } else { frame[2] = 9; - 58c: 80 93 80 00 sts 0x0080, r24 + 59c: 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> + 5a0: 80 91 7e 00 lds r24, 0x007E + 5a4: 8e 30 cpi r24, 0x0E ; 14 + 5a6: 11 f4 brne .+4 ; 0x5ac <__vector_13+0xa6> + 5a8: 8b e0 ldi r24, 0x0B ; 11 + 5aa: 01 c0 rjmp .+2 ; 0x5ae <__vector_13+0xa8> + 5ac: 8e e0 ldi r24, 0x0E ; 14 + 5ae: 80 93 7e 00 sts 0x007E, r24 + 5b2: 03 c0 rjmp .+6 ; 0x5ba <__vector_13+0xb4> 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 + timer_delay++; + 5b4: 8f 5f subi r24, 0xFF ; 255 + 5b6: 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 +} + 5ba: 9f 91 pop r25 + 5bc: 8f 91 pop r24 + 5be: 0f 90 pop r0 + 5c0: 0f be out 0x3f, r0 ; 63 + 5c2: 0f 90 pop r0 + 5c4: 1f 90 pop r1 + 5c6: 18 95 reti -000005b8
: +000005c8
: int main(void) { DDRB = 0; - 5b8: 17 ba out 0x17, r1 ; 23 + 5c8: 17 ba out 0x17, r1 ; 23 while(1){ //Warten bis Startknopf start(); - 5ba: 10 de rcall .-992 ; 0x1dc + 5ca: 08 de rcall .-1008 ; 0x1dc //Timer 20 nach unten - timerdown(20); - 5bc: 84 e1 ldi r24, 0x14 ; 20 - 5be: c5 dd rcall .-1142 ; 0x14a + timerdown(22); + 5cc: 86 e1 ldi r24, 0x16 ; 22 + 5ce: bd dd rcall .-1158 ; 0x14a while(1) { render(); - 5c0: ac dd rcall .-1192 ; 0x11a + 5d0: a4 dd rcall .-1208 ; 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 + 5d2: 80 91 80 00 lds r24, 0x0080 5d6: 88 23 and r24, r24 - 5d8: 99 f7 brne .-26 ; 0x5c0 - 5da: 80 91 83 00 lds r24, 0x0083 + 5d8: d9 f7 brne .-10 ; 0x5d0 + 5da: 80 91 81 00 lds r24, 0x0081 5de: 88 23 and r24, r24 - 5e0: 79 f7 brne .-34 ; 0x5c0 + 5e0: b9 f7 brne .-18 ; 0x5d0 + 5e2: 80 91 82 00 lds r24, 0x0082 + 5e6: 88 23 and r24, r24 + 5e8: 99 f7 brne .-26 ; 0x5d0 + 5ea: 80 91 83 00 lds r24, 0x0083 + 5ee: 88 23 and r24, r24 + 5f0: 79 f7 brne .-34 ; 0x5d0 TIMSK = 0; - 5e2: 19 be out 0x39, r1 ; 57 + 5f2: 19 be out 0x39, r1 ; 57 /*for(int i=0;i<5;i++) { weihnachten(); } blink2013();*/ //Lauflicht 10s; endelauflicht(); - 5e4: 0a de rcall .-1004 ; 0x1fa + 5f4: 02 de rcall .-1020 ; 0x1fa //Lauflicht Rand 10s //enderand(); //Blinklicht endeblink(); - 5e6: 89 de rcall .-750 ; 0x2fa + 5f6: 81 de rcall .-766 ; 0x2fa frame[0] = 10; - 5e8: 8a e0 ldi r24, 0x0A ; 10 - 5ea: 80 93 7e 00 sts 0x007E, r24 + 5f8: 8a e0 ldi r24, 0x0A ; 10 + 5fa: 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 + 5fe: 8f e0 ldi r24, 0x0F ; 15 + 600: 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 + 604: 90 e1 ldi r25, 0x10 ; 16 + 606: 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 + 60a: 91 e1 ldi r25, 0x11 ; 17 + 60c: 90 93 82 00 sts 0x0082, r25 frame[5] = 15; - 600: 80 93 83 00 sts 0x0083, r24 + 610: 80 93 83 00 sts 0x0083, r24 while(1) { render(); - 604: 8a dd rcall .-1260 ; 0x11a - 606: fe cf rjmp .-4 ; 0x604 + 614: 82 dd rcall .-1276 ; 0x11a + 616: fe cf rjmp .-4 ; 0x614 -00000608 <__udivmodqi4>: - 608: 99 1b sub r25, r25 - 60a: 79 e0 ldi r23, 0x09 ; 9 - 60c: 04 c0 rjmp .+8 ; 0x616 <__udivmodqi4_ep> +00000618 <__udivmodqi4>: + 618: 99 1b sub r25, r25 + 61a: 79 e0 ldi r23, 0x09 ; 9 + 61c: 04 c0 rjmp .+8 ; 0x626 <__udivmodqi4_ep> -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 +0000061e <__udivmodqi4_loop>: + 61e: 99 1f adc r25, r25 + 620: 96 17 cp r25, r22 + 622: 08 f0 brcs .+2 ; 0x626 <__udivmodqi4_ep> + 624: 96 1b sub r25, r22 -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 +00000626 <__udivmodqi4_ep>: + 626: 88 1f adc r24, r24 + 628: 7a 95 dec r23 + 62a: c9 f7 brne .-14 ; 0x61e <__udivmodqi4_loop> + 62c: 80 95 com r24 + 62e: 08 95 ret -00000620 <_exit>: - 620: f8 94 cli +00000630 <_exit>: + 630: f8 94 cli -00000622 <__stop_program>: - 622: ff cf rjmp .-2 ; 0x622 <__stop_program> +00000632 <__stop_program>: + 632: ff cf rjmp .-2 ; 0x632 <__stop_program> diff --git a/Timer/default/Timer.map b/Timer/default/Timer.map index cf8fd14..df4203b 100644 --- a/Timer/default/Timer.map +++ b/Timer/default/Timer.map @@ -118,7 +118,7 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a .rela.plt *(.rela.plt) -.text 0x00000000 0x624 +.text 0x00000000 0x634 *(.vectors) .vectors 0x00000000 0x26 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o 0x00000000 __vector_default @@ -192,7 +192,7 @@ 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 0x5ae Timer.o + .text 0x0000005a 0x5be Timer.o 0x0000005a display 0x0000011a render 0x0000014a timerdown @@ -204,23 +204,23 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a 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) + 0x000005c8 main + .text 0x00000618 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) + .text 0x00000618 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) + .text 0x00000618 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) + .text 0x00000618 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) + 0x00000618 . = ALIGN (0x2) *(.text.*) - .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) + .text.libgcc 0x00000618 0x18 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) + 0x00000618 __udivmodqi4 + .text.libgcc 0x00000630 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) + .text.libgcc 0x00000630 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) + .text.libgcc 0x00000630 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) + 0x00000630 . = ALIGN (0x2) *(.fini9) - .fini9 0x00000620 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) - 0x00000620 _exit - 0x00000620 exit + .fini9 0x00000630 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) + 0x00000630 _exit + 0x00000630 exit *(.fini9) *(.fini8) *(.fini8) @@ -239,11 +239,11 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00000620 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) + .fini0 0x00000630 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) *(.fini0) - 0x00000624 _etext = . + 0x00000634 _etext = . -.data 0x00800060 0x38 load address 0x00000624 +.data 0x00800060 0x38 load address 0x00000634 0x00800060 PROVIDE (__data_start, .) *(.data) .data 0x00800060 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o @@ -268,7 +268,7 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a *(.bss) .bss 0x00800098 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o .bss 0x00800098 0x1 Timer.o - 0x00800098 var + 0x00800098 timer_delay .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(_exit.o) .bss 0x00800099 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) @@ -276,8 +276,8 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a *(.bss*) *(COMMON) 0x00800099 PROVIDE (__bss_end, .) - 0x00000624 __data_load_start = LOADADDR (.data) - 0x0000065c __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x00000634 __data_load_start = LOADADDR (.data) + 0x0000066c __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x00800099 0x0 0x00800099 PROVIDE (__noinit_start, .) @@ -343,32 +343,32 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a 0x00000000 0x20 Timer.o .debug_pubnames - 0x00000000 0xcc + 0x00000000 0xd4 *(.debug_pubnames) .debug_pubnames - 0x00000000 0xcc Timer.o + 0x00000000 0xd4 Timer.o .debug_info 0x00000000 0x696 *(.debug_info) .debug_info 0x00000000 0x696 Timer.o *(.gnu.linkonce.wi.*) -.debug_abbrev 0x00000000 0x208 +.debug_abbrev 0x00000000 0x1e6 *(.debug_abbrev) - .debug_abbrev 0x00000000 0x208 Timer.o + .debug_abbrev 0x00000000 0x1e6 Timer.o -.debug_line 0x00000000 0x860 +.debug_line 0x00000000 0x878 *(.debug_line) - .debug_line 0x00000000 0x860 Timer.o + .debug_line 0x00000000 0x878 Timer.o .debug_frame 0x00000000 0xd0 *(.debug_frame) .debug_frame 0x00000000 0xd0 Timer.o -.debug_str 0x00000000 0x174 +.debug_str 0x00000000 0x180 *(.debug_str) - .debug_str 0x00000000 0x174 Timer.o - 0x1a8 (size before relaxing) + .debug_str 0x00000000 0x180 Timer.o + 0x1b4 (size before relaxing) .debug_loc 0x00000000 0x503 *(.debug_loc) diff --git a/Timer/timer.aws b/Timer/timer.aws index 286461f..dacbc33 100644 --- a/Timer/timer.aws +++ b/Timer/timer.aws @@ -1 +1 @@ - +