diff --git a/Timer/Timer.c b/Timer/Timer.c index a7e5282..5387a02 100644 --- a/Timer/Timer.c +++ b/Timer/Timer.c @@ -4,7 +4,7 @@ #define MIN 29 -volatile uint8_t segs[18] = { +volatile uint8_t segs[] = { 0b00111111, //0 0b00000110, //1 0b01011011, //2 @@ -20,10 +20,32 @@ volatile uint8_t segs[18] = { 0b01000110, //-1 0b01110110, //+1 0b00000000, //Blank - 0b01111001, //E - 0b00110111, //N - 0b01011110 //d + //15 + 0b01111001, //E 15 + 0b00110111, //N 16 + 0b01011110, //d 17 + 0b01110001, //F 18 + 0b00110001, //R 19 + 0b01011100, //o 20 + 0b01110110, //H 21 + 0b00111100, //WL 22 + 0b00011110, //WR 23 + 0b00000110, //I 24 + 0b01110111, //A 25 + 0b00111001, //C 26 + 0b00000111, //T 27 + 0b00111110, //U 28 + 0b00001111, //J 29 }; +// uint8_t text[] = {18,19,20,21,15,14, //Frohe +// 22,23,15,24,21,16,25,26,21,27,15,16,14, //Weihnachten +// 27,16,17,14, //und +// 15,24,16,14, //ein +// 18,19,20,21,15,5,14, //frohes +// 16,15,28,15,5,14, //neues +// 29,25,21,19,14, //Jahr +// 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; @@ -214,6 +236,50 @@ void endeblink() { } } +void weihnachten() { + uint8_t text1[] = {18,19,20,21,15,14, //Frohe + 22,23,15,24,21,16,25,26,21,27,15,16,14}; //Weihnachten + frame[0] = 14; + frame[1] = 14; + frame[2] = 14; + frame[3] = 14; + frame[4] = 14; + frame[5] = 14; + for(uint8_t i=0;i=0 && z < sizeof(text1)) { + frame[j+1] = text1[z]; + } else { + frame[j+1] = 14; + } + } + for(uint8_t k=0;k<30;k++) { + render(); + } + } +} + +void blink2013() { + frame[0] = 14; + frame[1] = 14; + 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++) { + render(); + } + frame[2] = 14; + frame[3] = 14; + frame[4] = 14; + frame[5] = 14; + for(uint8_t k=0;k<20;k++) { + render(); + } + } +} int main(void) { DDRB = 0; @@ -231,13 +297,17 @@ int main(void) { start(); //Timer $MIN nach unten timerdown(MIN); + for(int i=0;i<5;i++) { + weihnachten(); + } + blink2013(); //Lauflicht 10s; endelauflicht(); //Lauflicht Rand 10s - enderand(); + //enderand(); //Blinklicht endeblink(); //Timer UP 1Min Start - timerup(1); + timerup(2); } } diff --git a/Timer/default/Timer.elf b/Timer/default/Timer.elf index 90c8986..38b8358 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 4a8367b..d5c451a 100644 --- a/Timer/default/Timer.hex +++ b/Timer/default/Timer.hex @@ -1,9 +1,9 @@ :1000000012C02AC029C028C027C026C025C024C0CD :1000100023C022C021C020C01FC01EC01DC01CC0E4 :100020001BC01AC019C011241FBECFEDCDBF10E0F8 -:10003000A0E6B0E0E8EFF4E002C005900D92A8372A -:10004000B107D9F710E0A8E7B0E001C01D92A937C9 -:10005000B107E1F712D24EC2D3CFE82FF0E0E05A59 +:10003000A0E6B0E0EAE1F6E002C005900D92A83932 +:10004000B107D9F710E0A8E9B0E001C01D92A939C5 +:10005000B107E1F79ED2DFC2D3CFE82FF0E0E05A3C :10006000FF4F8081880F87BB8081880F88BB71E03C :1000700041E050E023C027B3872F90E030E0072E07 :1000800002C0359527950A94E2F7019720FF0AC030 @@ -17,68 +17,88 @@ :100100008A95E2F7CF018095822388BB7F5F6717CE :10011000D8F627B381E090E002C0880F991F6A9556 :10012000E2F7282B27BB98B38095892388BB0895D5 -:100130001F93CF93DF9317E0C0E0D0E0FE01EE58AD +:100130001F93CF93DF9317E0C0E0D0E0FE01E258B9 :10014000FF4F8081612F89DF8FE99FE00197F1F7F1 :1001500000C0000021961150113081F7DF91CF913E :100160001F9108958F929F92BF92CF92DF92EF924C :10017000FF920F931F93DF93CF930F92CDB7DEB70C -:10018000C82E8BE080937200DD242DE1E22EF12C4D -:100190000AE010E0C7018D199109B80184D160937C -:1001A0007400809375009BE3892E912C20E0C4019C -:1001B000B80179D1609376008093770020FF02C068 -:1001C0008EE001C08BE08093720082E5B82E298317 +:10018000C82E8BE080937E00DD242DE1E22EF12C41 +:100190000AE010E0C7018D199109B80115D26093EA +:1001A0008000809381009BE3892E912C20E0C40184 +:1001B000B8010AD2609382008093830020FF02C0BE +:1001C0008EE001C08BE080937E0082E5B82E29830B :1001D000AFDFBA942981BB20D1F72F5F0894810843 :1001E00091082C3321F7D394CD14A0F60F90CF9122 :1001F000DF911F910F91FF90EF90DF90CF90BF9014 :100200009F908F900895EF92FF920F931F939AE023 -:1002100090937200082F4AE0F42E1FC0802F6F2D9C -:1002200036D1809374009093750010E0812F6F2D6C -:100230002ED1809376009093770010FF02C08EE05D -:1002400001C08AE08093720032E5E32E71DFEA9408 +:1002100090937E00082F4AE0F42E1FC0802F6F2D90 +:10022000C7D1809380009093810010E0812F6F2DC3 +:10023000BFD1809382009093830010FF02C08EE0B4 +:1002400001C08AE080937E0032E5E32E71DFEA94FC :10025000E9F71F5F1C3351F70F5F0436F8F21F9167 :100260000F91FF90EF9008958C9A9498959A8FEF44 :1002700094E3ACE081509040A040E1F700C0000062 :100280008599FECF0895DF92EF92FF920F931F930F -:100290008AE08093720009E27FE0F72E1EE060E1C1 -:1002A000D62E51E1E52EF092740010937500109354 -:1002B0007600109377003CDF3BDF3ADF39DF38DF31 -:1002C00010937400D092750033DF32DF31DF30DFFE -:1002D0002FDF10937500E09276002ADF29DF28DFF8 -:1002E00027DF26DF10937600F092770021DF20DFF2 +:100290008AE080937E0009E27FE0F72E1EE060E1B5 +:1002A000D62E51E1E52EF09280001093810010933C +:1002B0008200109383003CDF3BDF3ADF39DF38DF19 +:1002C00010938000D092810033DF32DF31DF30DFE6 +:1002D0002FDF10938100E09282002ADF29DF28DFE0 +:1002E00027DF26DF10938200F092830021DF20DFDA :1002F0001FDF1EDF1DDF0150B1F61F910F91FF9030 :10030000EF90DF900895DF92EF92FF920F931F938B -:100310008AE08093720009E21EE0AFE0FA2EF0E17D -:10032000DF2EE1E1EE2E1093740010937500109310 -:100330007600F0927700FCDEFBDEFADEF9DEF8DE16 -:1003400010937700D0927500F3DEF2DEF1DEF0DE7E -:10035000EFDE10937500E0927600EADEE9DEE8DE7B -:10036000E7DEE6DEF092740010937600E1DEE0DE78 +:100310008AE080937E0009E21EE0AFE0FA2EF0E171 +:10032000DF2EE1E1EE2E10938000109381001093F8 +:100330008200F0928300FCDEFBDEFADEF9DEF8DEFE +:1003400010938300D0928100F3DEF2DEF1DEF0DE66 +:10035000EFDE10938100E0928200EADEE9DEE8DE63 +:10036000E7DEE6DEF092800010938200E1DEE0DE60 :10037000DFDEDEDEDDDE0150B1F61F910F91FF9072 :10038000EF90DF9008957F928F929F92AF92BF92ED :10039000CF92DF92EF92FF920F931F93CF93DF9351 -:1003A0008AE08093720006E010E0C0E0D0E05FE0F9 +:1003A0008AE080937E0006E010E0C0E0D0E05FE0ED :1003B000C52E40E1A42E31E1B32E23E0822E9EE033 -:1003C000D92E8AE0982EC0927400A0927500B09247 -:1003D0007600C0927700EE2420C08E2D682D57D075 -:1003E0009923C9F4809174008E3059F49092720070 -:1003F000C0927400A0927500B0927600C09277000F -:100400000AC0D0927200D0927400D0927500D0923F -:100410007600D09277008CDEE3948E2D90E08017EA -:100420009107DCF2D0927400D0927500D0927600E1 -:10043000D09277007724B4E0EB2EF12CEC0EFD1E69 +:1003C000D92E8AE0982EC0928000A0928100B0922F +:1003D0008200C0928300EE2420C08E2D682DE8D0CC +:1003E0009923C9F4809180008E3059F490927E0058 +:1003F000C0928000A0928100B0928200C0928300DF +:100400000AC0D0927E00D0928000D0928100D0921B +:100410008200D09283008CDEE3948E2D90E08017D2 +:100420009107DCF2D0928000D0928100D0928200BD +:10043000D09283007724B4E0EB2EF12CEC0EFD1E5D :1004400002C076DE7394872D90E0E816F906CCF7AB :1004500021960E5F1F4FCC32D10509F0B4CFDF914A :10046000CF911F910F91FF90EF90DF90CF90BF90B1 -:10047000AF909F908F907F90089517BAF5DE8DE131 -:1004800071DE01DF40DF7FDF81E0BDDEF7CF991B4A -:1004900079E004C0991F961708F0961B881F7A957B -:1004A000C9F78095089597FB092E07260AD077FD96 -:1004B00004D00CD006D000201AF4709561957F4FBF -:1004C0000895F6F7909581959F4F0895AA1BBB1B41 -:1004D00051E107C0AA1FBB1FA617B70710F0A61B44 -:1004E000B70B881F991F5A95A9F780959095BC0165 -:0804F000CD010895F894FFCF3F -:1004F8003F065B4F666D7D077F6F407046760079DB -:08050800375E0E0E0E0E0E0E02 +:10047000AF909F908F907F900895EF92FF920F938F +:100480001F93DF93CF93CDB7DEB7C451CDBFDE014D +:100490001196E4E8F0E083E101900D928150E1F7DC +:1004A0008EE080937E0080937F0080938000809315 +:1004B000810080938200809383004CEF7EE0E72EE2 +:1004C0008E010F5F1F4F22C09C012F5F3F4F5331A2 +:1004D00048F4F801E50FF11D608122583F4FF90102 +:1004E000608304C022583F4FF901E08201965F5FAC +:1004F0008530910549F76EE1F62E4C8B19DEFA94A2 +:100500004C89FF20D1F74F5F443121F0542F80E018 +:1005100090E0DACFCC5ECDBFCF91DF911F910F91EC +:10052000FF90EF900895CF92DF92EF92FF920F939A +:100530001F938EE080937E0080937F000EE1B2E0F7 +:10054000CB2EDD24D394A3E0EA2E1EE0C0928000DF +:1005500010928100D0928200E0928300F4E1FF2E9D +:10056000E7DDFA94E9F7109380001093810010936F +:10057000820010938300E4E1FE2EDADDFA94E9F7BD +:10058000015021F71F910F91FF90EF90DF90CF90D6 +:10059000089517BA69DE8DE1E5DD6FDF6EDF6DDF8F +:1005A0006CDF6BDFC0DF6FDEEEDE82E02CDEF2CFD1 +:1005B000991B79E004C0991F961708F0961B881FB5 +:1005C0007A95C9F78095089597FB092E07260AD0DA +:1005D00077FD04D00CD006D000201AF470956195F8 +:1005E0007F4F0895F6F7909581959F4F0895AA1B28 +:1005F000BB1B51E107C0AA1FBB1FA617B70710F00E +:10060000A61BB70B881F991F5A95A9F7809590953F +:0A061000BC01CD010895F894FFCF5E +:10061A003F065B4F666D7D077F6F407046760079B7 +:10062A00375E71315C763C1E067739073E0F0E0E37 +:10063A000E0E0E0E121314150F0E16170F18151094 +:08064A00191A151B0F100E0018 :04000003000002688F :00000001FF diff --git a/Timer/default/Timer.lss b/Timer/default/Timer.lss index 035d09b..b58f8ee 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 000004f8 00000000 00000000 00000094 2**1 + 0 .text 0000061a 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000018 00800060 000004f8 0000058c 2**0 + 1 .data 00000038 00800060 0000061a 000006ae 2**0 CONTENTS, ALLOC, LOAD, DATA - 2 .bss 00000001 00800078 00800078 000005a4 2**0 + 2 .bss 00000001 00800098 00800098 000006e6 2**0 ALLOC - 3 .stab 000006b4 00000000 00000000 000005a4 2**2 + 3 .stab 000006b4 00000000 00000000 000006e8 2**2 CONTENTS, READONLY, DEBUGGING - 4 .stabstr 00000085 00000000 00000000 00000c58 2**0 + 4 .stabstr 00000085 00000000 00000000 00000d9c 2**0 CONTENTS, READONLY, DEBUGGING - 5 .debug_aranges 00000020 00000000 00000000 00000cdd 2**0 + 5 .debug_aranges 00000020 00000000 00000000 00000e21 2**0 CONTENTS, READONLY, DEBUGGING - 6 .debug_pubnames 0000009e 00000000 00000000 00000cfd 2**0 + 6 .debug_pubnames 000000bc 00000000 00000000 00000e41 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_info 000005ab 00000000 00000000 00000d9b 2**0 + 7 .debug_info 000006c3 00000000 00000000 00000efd 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_abbrev 000001b7 00000000 00000000 00001346 2**0 + 8 .debug_abbrev 000001f9 00000000 00000000 000015c0 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_line 00000626 00000000 00000000 000014fd 2**0 + 9 .debug_line 00000786 00000000 00000000 000017b9 2**0 CONTENTS, READONLY, DEBUGGING - 10 .debug_frame 000000a0 00000000 00000000 00001b24 2**2 + 10 .debug_frame 000000c0 00000000 00000000 00001f40 2**2 CONTENTS, READONLY, DEBUGGING - 11 .debug_str 00000147 00000000 00000000 00001bc4 2**0 + 11 .debug_str 00000163 00000000 00000000 00002000 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_loc 00000474 00000000 00000000 00001d0b 2**0 + 12 .debug_loc 00000548 00000000 00000000 00002163 2**0 CONTENTS, READONLY, DEBUGGING - 13 .debug_pubtypes 00000038 00000000 00000000 0000217f 2**0 + 13 .debug_pubtypes 00000038 00000000 00000000 000026ab 2**0 CONTENTS, READONLY, DEBUGGING - 14 .debug_ranges 00000018 00000000 00000000 000021b7 2**0 + 14 .debug_ranges 00000018 00000000 00000000 000026e3 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -67,18 +67,18 @@ 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 ef ldi r30, 0xF8 ; 248 - 36: f4 e0 ldi r31, 0x04 ; 4 + 34: ea e1 ldi r30, 0x1A ; 26 + 36: f6 e0 ldi r31, 0x06 ; 6 38: 02 c0 rjmp .+4 ; 0x3e <__SP_H__> 3a: 05 90 lpm r0, Z+ 3c: 0d 92 st X+, r0 - 3e: a8 37 cpi r26, 0x78 ; 120 + 3e: a8 39 cpi r26, 0x98 ; 152 40: b1 07 cpc r27, r17 42: d9 f7 brne .-10 ; 0x3a <__CCP__+0x6> 00000044 <__do_clear_bss>: 44: 10 e0 ldi r17, 0x00 ; 0 - 46: a8 e7 ldi r26, 0x78 ; 120 + 46: a8 e9 ldi r26, 0x98 ; 152 48: b0 e0 ldi r27, 0x00 ; 0 4a: 01 c0 rjmp .+2 ; 0x4e <.do_clear_bss_start> @@ -86,17 +86,17 @@ Disassembly of section .text: 4c: 1d 92 st X+, r1 0000004e <.do_clear_bss_start>: - 4e: a9 37 cpi r26, 0x79 ; 121 + 4e: a9 39 cpi r26, 0x99 ; 153 50: b1 07 cpc r27, r17 52: e1 f7 brne .-8 ; 0x4c <.do_clear_bss_loop> - 54: 12 d2 rcall .+1060 ; 0x47a
- 56: 4e c2 rjmp .+1180 ; 0x4f4 <_exit> + 54: 9e d2 rcall .+1340 ; 0x592
+ 56: df c2 rjmp .+1470 ; 0x616 <_exit> 00000058 <__bad_interrupt>: 58: d3 cf rjmp .-90 ; 0x0 <__vectors> 0000005a : -}; + // 14,14,18,18,19,19,20,20}; volatile uint8_t frame[6] = {14,14, 14,14, 14,14}; char var = 0; @@ -272,7 +272,7 @@ void render() { for(uint8_t f = 0;f<6;f++) { display(frame[f],(5-f)+2); 13c: fe 01 movw r30, r28 - 13e: ee 58 subi r30, 0x8E ; 142 + 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 @@ -332,7 +332,7 @@ void timerdown(uint8_t min) { 180: c8 2e mov r12, r24 frame[0] = 11; 182: 8b e0 ldi r24, 0x0B ; 11 - 184: 80 93 72 00 sts 0x0072, r24 + 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); @@ -345,10 +345,10 @@ void timerdown(uint8_t min) { 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 + 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 75 00 sts 0x0075, r24 + 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 @@ -357,17 +357,17 @@ void timerdown(uint8_t min) { 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 + 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 77 00 sts 0x0077, r24 + 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 72 00 sts 0x0072, r24 + 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++) { @@ -434,7 +434,7 @@ void timerup(uint8_t min) { 20c: 1f 93 push r17 frame[0] = 10; 20e: 9a e0 ldi r25, 0x0A ; 10 - 210: 90 93 72 00 sts 0x0072, r25 + 210: 90 93 7e 00 sts 0x007E, r25 for(uint8_t j=min;j<=99;j++) { 214: 08 2f mov r16, r24 frame[2] = (uint8_t)(j/10); @@ -450,26 +450,26 @@ void timerup(uint8_t min) { 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 + 220: c7 d1 rcall .+910 ; 0x5b0 <__udivmodqi4> + 222: 80 93 80 00 sts 0x0080, r24 frame[3] = (uint8_t)(j%10); - 226: 90 93 75 00 sts 0x0075, r25 + 226: 90 93 81 00 sts 0x0081, 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 + 230: bf d1 rcall .+894 ; 0x5b0 <__udivmodqi4> + 232: 80 93 82 00 sts 0x0082, r24 frame[5] = (uint8_t)(i%10); - 236: 90 93 77 00 sts 0x0077, r25 + 236: 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 72 00 sts 0x0072, r24 + 244: 80 93 7e 00 sts 0x007E, r24 248: 32 e5 ldi r19, 0x52 ; 82 24a: e3 2e mov r14, r19 for(uint8_t k=0;k<82;k++) { @@ -558,7 +558,7 @@ void endelauflicht() { 28e: 1f 93 push r17 frame[0] = 10; 290: 8a e0 ldi r24, 0x0A ; 10 - 292: 80 93 72 00 sts 0x0072, r24 + 292: 80 93 7e 00 sts 0x007E, r24 296: 09 e2 ldi r16, 0x29 ; 41 for(uint8_t j=0;j<41;j++) { frame[2] = 15; @@ -587,13 +587,13 @@ void endelauflicht() { frame[0] = 10; for(uint8_t j=0;j<41;j++) { frame[2] = 15; - 2a6: f0 92 74 00 sts 0x0074, r15 + 2a6: f0 92 80 00 sts 0x0080, r15 frame[3] = 14; - 2aa: 10 93 75 00 sts 0x0075, r17 + 2aa: 10 93 81 00 sts 0x0081, r17 frame[4] = 14; - 2ae: 10 93 76 00 sts 0x0076, r17 + 2ae: 10 93 82 00 sts 0x0082, r17 frame[5] = 14; - 2b2: 10 93 77 00 sts 0x0077, r17 + 2b2: 10 93 83 00 sts 0x0083, r17 for(uint8_t k=0;k<5;k++) { render(); 2b6: 3c df rcall .-392 ; 0x130 @@ -603,9 +603,9 @@ void endelauflicht() { 2be: 38 df rcall .-400 ; 0x130 } frame[2] = 14; - 2c0: 10 93 74 00 sts 0x0074, r17 + 2c0: 10 93 80 00 sts 0x0080, r17 frame[3] = 16; - 2c4: d0 92 75 00 sts 0x0075, r13 + 2c4: d0 92 81 00 sts 0x0081, r13 for(uint8_t k=0;k<5;k++) { render(); 2c8: 33 df rcall .-410 ; 0x130 @@ -615,9 +615,9 @@ void endelauflicht() { 2d0: 2f df rcall .-418 ; 0x130 } frame[3] = 14; - 2d2: 10 93 75 00 sts 0x0075, r17 + 2d2: 10 93 81 00 sts 0x0081, r17 frame[4] = 17; - 2d6: e0 92 76 00 sts 0x0076, r14 + 2d6: e0 92 82 00 sts 0x0082, r14 for(uint8_t k=0;k<5;k++) { render(); 2da: 2a df rcall .-428 ; 0x130 @@ -627,9 +627,9 @@ void endelauflicht() { 2e2: 26 df rcall .-436 ; 0x130 } frame[4] = 14; - 2e4: 10 93 76 00 sts 0x0076, r17 + 2e4: 10 93 82 00 sts 0x0082, r17 frame[5] = 15; - 2e8: f0 92 77 00 sts 0x0077, r15 + 2e8: f0 92 83 00 sts 0x0083, r15 for(uint8_t k=0;k<5;k++) { render(); 2ec: 21 df rcall .-446 ; 0x130 @@ -668,7 +668,7 @@ void enderand() { 30e: 1f 93 push r17 frame[0] = 10; 310: 8a e0 ldi r24, 0x0A ; 10 - 312: 80 93 72 00 sts 0x0072, r24 + 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; @@ -698,13 +698,13 @@ void enderand() { frame[0] = 10; for(uint8_t j=0;j<41;j++) { frame[2] = 14; - 326: 10 93 74 00 sts 0x0074, r17 + 326: 10 93 80 00 sts 0x0080, r17 frame[3] = 14; - 32a: 10 93 75 00 sts 0x0075, r17 + 32a: 10 93 81 00 sts 0x0081, r17 frame[4] = 14; - 32e: 10 93 76 00 sts 0x0076, r17 + 32e: 10 93 82 00 sts 0x0082, r17 frame[5] = 15; - 332: f0 92 77 00 sts 0x0077, r15 + 332: f0 92 83 00 sts 0x0083, r15 for(uint8_t k=0;k<5;k++) { render(); 336: fc de rcall .-520 ; 0x130 @@ -714,9 +714,9 @@ void enderand() { 33e: f8 de rcall .-528 ; 0x130 } frame[5] = 14; - 340: 10 93 77 00 sts 0x0077, r17 + 340: 10 93 83 00 sts 0x0083, r17 frame[3] = 16; - 344: d0 92 75 00 sts 0x0075, r13 + 344: d0 92 81 00 sts 0x0081, r13 for(uint8_t k=0;k<5;k++) { render(); 348: f3 de rcall .-538 ; 0x130 @@ -726,9 +726,9 @@ void enderand() { 350: ef de rcall .-546 ; 0x130 } frame[3] = 14; - 352: 10 93 75 00 sts 0x0075, r17 + 352: 10 93 81 00 sts 0x0081, r17 frame[4] = 17; - 356: e0 92 76 00 sts 0x0076, r14 + 356: e0 92 82 00 sts 0x0082, r14 for(uint8_t k=0;k<5;k++) { render(); 35a: ea de rcall .-556 ; 0x130 @@ -738,9 +738,9 @@ void enderand() { 362: e6 de rcall .-564 ; 0x130 } frame[2] = 15; - 364: f0 92 74 00 sts 0x0074, r15 + 364: f0 92 80 00 sts 0x0080, r15 frame[4] = 14; - 368: 10 93 76 00 sts 0x0076, r17 + 368: 10 93 82 00 sts 0x0082, r17 for(uint8_t k=0;k<5;k++) { render(); 36c: e1 de rcall .-574 ; 0x130 @@ -787,7 +787,7 @@ void endeblink() { 39e: df 93 push r29 frame[0] = 10; 3a0: 8a e0 ldi r24, 0x0A ; 10 - 3a2: 80 93 72 00 sts 0x0072, r24 + 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 @@ -829,48 +829,48 @@ void endeblink() { frame[0] = 10; for(uint8_t j=0;j<44;j++) { frame[2] = 15; - 3c6: c0 92 74 00 sts 0x0074, r12 + 3c6: c0 92 80 00 sts 0x0080, r12 frame[3] = 16; - 3ca: a0 92 75 00 sts 0x0075, r10 + 3ca: a0 92 81 00 sts 0x0081, r10 frame[4] = 17; - 3ce: b0 92 76 00 sts 0x0076, r11 + 3ce: b0 92 82 00 sts 0x0082, r11 frame[5] = 15; - 3d2: c0 92 77 00 sts 0x0077, r12 + 3d2: 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 if(k%3==0) { 3da: 8e 2d mov r24, r14 3dc: 68 2d mov r22, r8 - 3de: 57 d0 rcall .+174 ; 0x48e <__udivmodqi4> + 3de: e8 d0 rcall .+464 ; 0x5b0 <__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 + 3e4: 80 91 80 00 lds r24, 0x0080 3e8: 8e 30 cpi r24, 0x0E ; 14 3ea: 59 f4 brne .+22 ; 0x402 frame[0] = 10; - 3ec: 90 92 72 00 sts 0x0072, r9 + 3ec: 90 92 7e 00 sts 0x007E, r9 frame[2] = 15; - 3f0: c0 92 74 00 sts 0x0074, r12 + 3f0: c0 92 80 00 sts 0x0080, r12 frame[3] = 16; - 3f4: a0 92 75 00 sts 0x0075, r10 + 3f4: a0 92 81 00 sts 0x0081, r10 frame[4] = 17; - 3f8: b0 92 76 00 sts 0x0076, r11 + 3f8: b0 92 82 00 sts 0x0082, r11 frame[5] = 15; - 3fc: c0 92 77 00 sts 0x0077, r12 + 3fc: c0 92 83 00 sts 0x0083, r12 400: 0a c0 rjmp .+20 ; 0x416 } else { frame[0] = 14; - 402: d0 92 72 00 sts 0x0072, r13 + 402: d0 92 7e 00 sts 0x007E, r13 frame[2] = 14; - 406: d0 92 74 00 sts 0x0074, r13 + 406: d0 92 80 00 sts 0x0080, r13 frame[3] = 14; - 40a: d0 92 75 00 sts 0x0075, r13 + 40a: d0 92 81 00 sts 0x0081, r13 frame[4] = 14; - 40e: d0 92 76 00 sts 0x0076, r13 + 40e: d0 92 82 00 sts 0x0082, r13 frame[5] = 14; - 412: d0 92 77 00 sts 0x0077, r13 + 412: d0 92 83 00 sts 0x0083, r13 } } render(); @@ -893,13 +893,13 @@ void endeblink() { render(); } frame[2] = 14; - 424: d0 92 74 00 sts 0x0074, r13 + 424: d0 92 80 00 sts 0x0080, r13 frame[3] = 14; - 428: d0 92 75 00 sts 0x0075, r13 + 428: d0 92 81 00 sts 0x0081, r13 frame[4] = 14; - 42c: d0 92 76 00 sts 0x0076, r13 + 42c: d0 92 82 00 sts 0x0082, r13 frame[5] = 14; - 430: d0 92 77 00 sts 0x0077, r13 + 430: d0 92 83 00 sts 0x0083, r13 for(uint8_t k=0;k<5+j;k++) { 434: 77 24 eor r7, r7 render(); @@ -968,111 +968,370 @@ void endeblink() { 476: 7f 90 pop r7 478: 08 95 ret -0000047a
: +0000047a : +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 + 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 + 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 + frame[1] = 14; + 4a6: 80 93 7f 00 sts 0x007F, r24 + frame[2] = 14; + 4aa: 80 93 80 00 sts 0x0080, r24 + frame[3] = 14; + 4ae: 80 93 81 00 sts 0x0081, r24 + frame[4] = 14; + 4b2: 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 + 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 + 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 + 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 + 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 + } 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 + 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 + } 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 + 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 + frame[1] = 14; + frame[2] = 14; + frame[3] = 14; + frame[4] = 14; + frame[5] = 14; + for(uint8_t i=0;i + 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 + } + 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 + +00000526 : + +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 + frame[0] = 14; + 532: 8e e0 ldi r24, 0x0E ; 14 + 534: 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 + for(uint8_t i=0;i<30;i++) { + frame[2] = 2; + 53e: b2 e0 ldi r27, 0x02 ; 2 + 540: cb 2e mov r12, r27 + frame[3] = 0; + frame[4] = 1; + 542: dd 24 eor r13, r13 + 544: d3 94 inc r13 + frame[5] = 3; + 546: a3 e0 ldi r26, 0x03 ; 3 + 548: ea 2e mov r14, r26 + for(uint8_t k=0;k<20;k++) { + render(); + } + frame[2] = 14; + 54a: 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 + frame[3] = 0; + 550: 10 92 81 00 sts 0x0081, r1 + frame[4] = 1; + 554: 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 + for(uint8_t k=0;k<20;k++) { + render(); + 560: e7 dd rcall .-1074 ; 0x130 + 562: 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 + render(); + } + frame[2] = 14; + 566: 10 93 80 00 sts 0x0080, r17 + frame[3] = 14; + 56a: 10 93 81 00 sts 0x0081, r17 + frame[4] = 14; + 56e: 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 + for(uint8_t k=0;k<20;k++) { + render(); + 57a: da dd rcall .-1100 ; 0x130 + 57c: 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 +} + +void blink2013() { + frame[0] = 14; + frame[1] = 14; + for(uint8_t i=0;i<30;i++) { + 582: 21 f7 brne .-56 ; 0x54c + 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 + +00000592
: int main(void) { DDRB = 0; - 47a: 17 ba out 0x17, r1 ; 23 + 592: 17 ba out 0x17, r1 ; 23 OCR0A = 250; //geladen mit 10ms TIMSK |= (1< + 594: 69 de rcall .-814 ; 0x268 //Timer $MIN nach unten timerdown(MIN); - 47e: 8d e1 ldi r24, 0x1D ; 29 - 480: 71 de rcall .-798 ; 0x164 + 596: 8d e1 ldi r24, 0x1D ; 29 + 598: e5 dd rcall .-1078 ; 0x164 + 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 //Lauflicht 10s; endelauflicht(); - 482: 01 df rcall .-510 ; 0x286 + 5a6: 6f de rcall .-802 ; 0x286 //Lauflicht Rand 10s - enderand(); - 484: 40 df rcall .-384 ; 0x306 + //enderand(); //Blinklicht endeblink(); - 486: 7f df rcall .-258 ; 0x386 + 5a8: ee de rcall .-548 ; 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 + timerup(2); + 5aa: 82 e0 ldi r24, 0x02 ; 2 + 5ac: 2c de rcall .-936 ; 0x206 + 5ae: f2 cf rjmp .-28 ; 0x594 -0000048e <__udivmodqi4>: - 48e: 99 1b sub r25, r25 - 490: 79 e0 ldi r23, 0x09 ; 9 - 492: 04 c0 rjmp .+8 ; 0x49c <__udivmodqi4_ep> +000005b0 <__udivmodqi4>: + 5b0: 99 1b sub r25, r25 + 5b2: 79 e0 ldi r23, 0x09 ; 9 + 5b4: 04 c0 rjmp .+8 ; 0x5be <__udivmodqi4_ep> -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 +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 -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 +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 -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> +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> -000004ba <__divmodhi4_neg2>: - 4ba: 70 95 com r23 - 4bc: 61 95 neg r22 - 4be: 7f 4f sbci r23, 0xFF ; 255 +000005dc <__divmodhi4_neg2>: + 5dc: 70 95 com r23 + 5de: 61 95 neg r22 + 5e0: 7f 4f sbci r23, 0xFF ; 255 -000004c0 <__divmodhi4_exit>: - 4c0: 08 95 ret +000005e2 <__divmodhi4_exit>: + 5e2: 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 +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 -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> +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> -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 +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 -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 +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 -000004f4 <_exit>: - 4f4: f8 94 cli +00000616 <_exit>: + 616: f8 94 cli -000004f6 <__stop_program>: - 4f6: ff cf rjmp .-2 ; 0x4f6 <__stop_program> +00000618 <__stop_program>: + 618: ff cf rjmp .-2 ; 0x618 <__stop_program> diff --git a/Timer/default/Timer.map b/Timer/default/Timer.map index 9fc2867..a397e71 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 0x4f8 +.text 0x00000000 0x61a *(.vectors) .vectors 0x00000000 0x26 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o 0x00000000 __vector_default @@ -197,7 +197,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 0x434 Timer.o + .text 0x0000005a 0x556 Timer.o 0x0000005a display 0x00000130 render 0x00000164 timerdown @@ -206,30 +206,32 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a 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) + 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) *(.text.*) - .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) + .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) *(.fini9) - .fini9 0x000004f4 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) - 0x000004f4 _exit - 0x000004f4 exit + .fini9 0x00000616 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) + 0x00000616 _exit + 0x00000616 exit *(.fini9) *(.fini8) *(.fini8) @@ -248,55 +250,56 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a *(.fini1) *(.fini1) *(.fini0) - .fini0 0x000004f4 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) + .fini0 0x00000616 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) *(.fini0) - 0x000004f8 _etext = . + 0x0000061a _etext = . -.data 0x00800060 0x18 load address 0x000004f8 +.data 0x00800060 0x38 load address 0x0000061a 0x00800060 PROVIDE (__data_start, .) *(.data) .data 0x00800060 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o - .data 0x00800060 0x18 Timer.o + .data 0x00800060 0x37 Timer.o 0x00800060 segs - 0x00800072 frame - .data 0x00800078 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) - .data 0x00800078 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o) - .data 0x00800078 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) - .data 0x00800078 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) - .data 0x00800078 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) - .data 0x00800078 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o) + 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*) *(.gnu.linkonce.d*) - 0x00800078 . = ALIGN (0x2) - 0x00800078 _edata = . - 0x00800078 PROVIDE (__data_end, .) + 0x00800098 . = ALIGN (0x2) + *fill* 0x00800097 0x1 00 + 0x00800098 _edata = . + 0x00800098 PROVIDE (__data_end, .) -.bss 0x00800078 0x1 - 0x00800078 PROVIDE (__bss_start, .) +.bss 0x00800098 0x1 + 0x00800098 PROVIDE (__bss_start, .) *(.bss) - .bss 0x00800078 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o - .bss 0x00800078 0x1 Timer.o - 0x00800078 var - .bss 0x00800079 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodqi4.o) - .bss 0x00800079 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_divmodhi4.o) - .bss 0x00800079 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o) - .bss 0x00800079 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o) - .bss 0x00800079 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_clear_bss.o) - .bss 0x00800079 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_udivmodhi4.o) + .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 + .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) - 0x00800079 PROVIDE (__bss_end, .) - 0x000004f8 __data_load_start = LOADADDR (.data) - 0x00000510 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x00800099 PROVIDE (__bss_end, .) + 0x0000061a __data_load_start = LOADADDR (.data) + 0x00000652 __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x00800079 0x0 - 0x00800079 PROVIDE (__noinit_start, .) +.noinit 0x00800099 0x0 + 0x00800099 PROVIDE (__noinit_start, .) *(.noinit*) - 0x00800079 PROVIDE (__noinit_end, .) - 0x00800079 _end = . - 0x00800079 PROVIDE (__heap_start, .) + 0x00800099 PROVIDE (__noinit_end, .) + 0x00800099 _end = . + 0x00800099 PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 *(.eeprom*) @@ -355,36 +358,36 @@ LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a 0x00000000 0x20 Timer.o .debug_pubnames - 0x00000000 0x9e + 0x00000000 0xbc *(.debug_pubnames) .debug_pubnames - 0x00000000 0x9e Timer.o + 0x00000000 0xbc Timer.o -.debug_info 0x00000000 0x5ab +.debug_info 0x00000000 0x6c3 *(.debug_info) - .debug_info 0x00000000 0x5ab Timer.o + .debug_info 0x00000000 0x6c3 Timer.o *(.gnu.linkonce.wi.*) -.debug_abbrev 0x00000000 0x1b7 +.debug_abbrev 0x00000000 0x1f9 *(.debug_abbrev) - .debug_abbrev 0x00000000 0x1b7 Timer.o + .debug_abbrev 0x00000000 0x1f9 Timer.o -.debug_line 0x00000000 0x626 +.debug_line 0x00000000 0x786 *(.debug_line) - .debug_line 0x00000000 0x626 Timer.o + .debug_line 0x00000000 0x786 Timer.o -.debug_frame 0x00000000 0xa0 +.debug_frame 0x00000000 0xc0 *(.debug_frame) - .debug_frame 0x00000000 0xa0 Timer.o + .debug_frame 0x00000000 0xc0 Timer.o -.debug_str 0x00000000 0x147 +.debug_str 0x00000000 0x163 *(.debug_str) - .debug_str 0x00000000 0x147 Timer.o - 0x180 (size before relaxing) + .debug_str 0x00000000 0x163 Timer.o + 0x19c (size before relaxing) -.debug_loc 0x00000000 0x474 +.debug_loc 0x00000000 0x548 *(.debug_loc) - .debug_loc 0x00000000 0x474 Timer.o + .debug_loc 0x00000000 0x548 Timer.o .debug_macinfo *(.debug_macinfo) diff --git a/Timer/timer.aws b/Timer/timer.aws index 06679ec..cb1455b 100644 --- a/Timer/timer.aws +++ b/Timer/timer.aws @@ -1 +1 @@ - +