diff --git a/Sender/Sender.atsuo b/Sender/Sender.atsuo index 2cb46a9..0f3ab77 100644 Binary files a/Sender/Sender.atsuo and b/Sender/Sender.atsuo differ diff --git a/Sender/Sender/Debug/Sender.elf b/Sender/Sender/Debug/Sender.elf index e9fb759..f8261f2 100644 Binary files a/Sender/Sender/Debug/Sender.elf and b/Sender/Sender/Debug/Sender.elf differ diff --git a/Sender/Sender/Debug/Sender.hex b/Sender/Sender/Debug/Sender.hex index afe8391..38d4ace 100644 --- a/Sender/Sender/Debug/Sender.hex +++ b/Sender/Sender/Debug/Sender.hex @@ -1,13 +1,13 @@ :1000000012C02CC02BC02AC029C028C027C026C0BF -:1000100025C09DC323C022C021C020C01FC01EC058 +:1000100025C0B0C323C022C021C020C01FC01EC045 :100020001DC01CC01BC011241FBECFE5D4E0DEBF25 -:10003000CDBF10E0A0E6B0E0E8ECF8E002C005902B +:10003000CDBF10E0A0E6B0E0EEEEF8E002C0059023 :100040000D92A23AB107D9F710E0A2EAB0E001C0E0 -:100050001D92AA3AB107E1F7D0D334C4D1CFAC98FE -:1000600040E120E030E0992314F4AA9A01C0AA9854 -:10007000220F331F99992160AB9A880F991F00C0F6 -:100080000000AB98415079F7AC9A822F932F0895D6 -:1000900084B38C6184BBAC9A8FEF90E7A2E081506F +:100050001D92AA3AB107E1F7E3D347C4D1CFC298C2 +:1000600040E120E030E0992314F4C39A01C0C39822 +:10007000220F331FB4992160C59A880F991F00C0C1 +:100080000000C598415079F7C29A822F932F0895A6 +:1000900087B38C6287BBC29A8FEF90E7A2E0815052 :1000A0009040A040E1F700C0000080EE90ECD7DF68 :1000B00087ED90E8D4DF8BEA92ECD1DF81E89AEC0F :1000C000CEDF80E090EECBDF80E098ECC8DF87EFFA @@ -18,14 +18,14 @@ :100110008036910538F02FE08034920728F08FE385 :100120009FE002C080E690E0906A99DF089522E0A7 :1001300087399207F0F025E18831920770F49C012D -:1001400040E050E060E678EA80E090E0A0D3C901AA +:1001400040E050E060E678EA80E090E0B3D3C90197 :1001500001978068966C83DF08959C0140E050E031 -:100160006CEF72E485E090E070D3C9010197966C62 +:100160006CEF72E485E090E083D3C9010197966C4F :1001700076DF089590E087709070986970E06295DE :100180007295707F7627607F76277070862B972B0D -:1001900066DF0895AC98999BFECF089588EC92E8AD +:1001900066DF0895C298B49BFECF089588EC92E87C :1001A0005EDF81E89AEC5BDF83E89AEC58DF089524 -:1001B000AC9881E0999980E0089580E090EB4FDF62 +:1001B000C29881E0B49980E0089580E090EB4FDF31 :1001C000089588E092E84BDF08950F931F93CF9333 :1001D000DF938C01C62F88E392E841DFDBDF8AEAF8 :1001E00098EB3DDFD7DF8AEA98EB39DFD3DF8AEA85 @@ -46,102 +46,104 @@ :1002D000986BC5DE5FDF8D2F90E0986BC0DE5ADF34 :1002E0008C2F90E0986BBBDE55DF80E098EBB7DE9B :1002F00051DF88E092E8B3DE8FEC97E00197F1F7E9 -:1003000000C00000DF91CF911F91089587B38560F1 -:1003100087BB81B3806C81BBB99A81B3806381BB99 -:10032000C19A82B3806382BB81B3847F81BB82B375 -:100330008B6082BB0895CF92DF92EF92FF920F9372 -:100340001F93CF93DF93A2E9B0E0C8E8D0E0AD01FE -:100350004F5F5F4FBE016F5F7F4F20E00CE910E001 -:10036000EE24FF24E394822F869590E0F801E80FB5 -:10037000F91F30813230F1F4EC91F0E03081C701A7 -:10038000088002C0880F991F0A94E2F7832B8083AC -:10039000FA01C080DD24F6013081C701FB01008035 -:1003A00002C0880F991F0A94E2F780958323F60113 -:1003B00080838EC0F801E80FF91F30813330F1F4EB -:1003C000FA01C080DD24F6013081C701FB01008005 -:1003D00002C0880F991F0A94E2F7832BF6018083ED -:1003E000EC91F0E03081C701088002C0880F991FAE -:1003F0000A94E2F78095832380836AC0F801E80FAE -:10040000F91F30813630E9F4EC91F0E03081C7011A -:10041000088002C0880F991F0A94E2F7832B80831B -:10042000FA01C080DD24F6013081C701FB010080A4 -:1004300002C0880F991F0A94E2F7832BF60180838C -:1004400047C0F801E80FF91F30813323F9F4EC912C -:10045000F0E03081C701088002C0880F991F0A941C -:10046000E2F7809583238083FA01C080DD24F601C2 -:100470003081C701FB01008002C0880F991F0A94D8 -:10048000E2F780958323F601808322C0F801E80F0C -:10049000F91F80818830E1F4EC91F0E03081C701F0 -:1004A000088002C0880F991F0A94E2F7832780838F -:1004B000FA01C080DD24F6013081C701FB01008014 -:1004C00002C0880F991F0A94E2F78327F601808300 -:1004D0002E5F129622964E5F5F4F6E5F7F4F2A30DF -:1004E00009F041CFDF91CF911F910F91FF90EF90D5 -:1004F000DF90CF9008952F923F924F925F926F922C -:100500007F928F929F92AF92BF92CF92DF92EF92A3 -:10051000FF920F931F93CF93DF934FE750E065E770 -:1005200070E0CBE6D0E001E610E020E022243324A6 -:10053000EE24FF24E3946A015601F6013197A0816D -:10054000B0E03B018C91FB013197A701008002C014 -:10055000440F551F0A94E2F7942F909589238C93AA -:1005600000004E01FE013197E081F0E0280130816A -:10057000F8013197C701008002C0880F991F0A94C3 -:10058000E2F78323B1F4822F8695ECE9F0E0E80FDF -:10059000F11D9081923029F40F2EF5E02F2EF02DD1 -:1005A00003C02224689422F80F2EFAE03F2EF02D8B -:1005B000380E8C91842B8C930000F501A081B0E063 -:1005C0008C91A701F301008002C0440F551F0A94CB -:1005D000E2F7942F909589238C930000F401808199 -:1005E000E82FF0E03081C701F201008002C0880FDF -:1005F000991F0A94E2F7832359F4822F86950F2ED0 -:10060000FAE03F2EF02D380E0F2EF7E02F2EF02DB2 -:100610008C91482B4C9300002E5F82E090E0C80E36 -:10062000D91E6E5F7F4F22960E5F1F4F2A3009F052 -:1006300083CF3320E1F02220D1F0F894A59AAD9A2F -:10064000C0DDAFE3BCE91197F1F700C00000832DD6 -:1006500061E0422D1DDEAD988FE798E3A1E0815067 -:100660009040A040E1F700C0000098DD7894DF9151 -:10067000CF911F910F91FF90EF90DF90CF90BF909F -:10068000AF909F908F907F906F905F904F903F9032 -:100690002F900895CF9382DD01C02DDF89DD88235F -:1006A000E1F78BDD823008F050C001C024DF80DD2F -:1006B0008823E1F782DD813009F447C06AE0B9D0D0 -:1006C000C82FC15001C017DF73DD8823E1F775DD46 -:1006D0008330B1F0843018F48230B1F505C0863033 -:1006E000D9F0883089F524C08C2F90E0FC01E456C5 -:1006F000FF4F22E020838E559F4FFC01108225C0C2 -:100700008C2F90E0FC01E456FF4F23E020838E55B0 -:100710009F4FFC01108219C08C2F90E0FC01E45621 -:10072000FF4F26E020838E559F4FFC0110820DC0A5 -:100730008C2F90E0FC01E456FF4F28E020838E557B -:100740009F4FFC01108201C03CDDCF9108951F92A4 -:100750000F920FB60F9211242F933F934F935F93F5 -:100760006F937F938F939F93AF93BF93EF93FF9379 -:10077000E2DD8091A700803130F48091A7008F5F87 -:100780008093A70023C01092A7001BDD80E061E0EA -:1007900041E07EDD80E090E022EA30E04CE950E08C -:1007A000F901E80FF91F60816B3028F0FA01E80FBA -:1007B000F91F108206C0F901E80FF91F60816F5F11 -:1007C000608301968530910559F7E8DCFF91EF9140 -:1007D000BF91AF919F918F917F916F915F914F9159 -:1007E0003F912F910F900FBE0F901F90189585E0AD -:1007F00083BF12BE81E089BF08954ADC80E296E0A3 -:1008000087DC81E060E047E066DC80E895E28FDC31 -:1008100080E066E0AFDC7ADDEADF78948FEF90E786 -:10082000A2E081509040A040E1F700C0000032DF1C -:10083000FECF991B79E004C0991F961708F0961B0C -:10084000881F7A95C9F780950895A1E21A2EAA1BF0 -:10085000BB1BFD010DC0AA1FBB1FEE1FFF1FA21770 -:10086000B307E407F50720F0A21BB30BE40BF50B6D -:10087000661F771F881F991F1A9469F760957095F6 -:10088000809590959B01AC01BD01CF01089597FB28 -:10089000092E05260ED057FD04D0D7DF0AD0001C44 -:1008A00038F450954095309521953F4F4F4F5F4F0D -:1008B0000895F6F790958095709561957F4F8F4FCD -:0808C0009F4F0895F894FFCF4B -:1008C80000010303030303030303303030303030E7 -:1008D80030303030010105040504050405043838BA -:1008E8003232323232323232020006070607060747 -:1008F80006073838323232323232323200020000E1 -:020908000000ED +:1003000000C00000DF91CF911F91089587B3836CE7 +:1003100087BB84B3836084BB81B3806F81BB84B3AC +:100320008C6184BB85B38C6185BB81B3807F81BBCD +:1003300082B38F6082BB0895CF92DF92EF92FF92DB +:100340000F931F93CF93DF93A3E9B0E0AD0141502A +:100350005040C9E8D0E0BE016150704020E00CE997 +:1003600010E0EE24FF24E394822F869590E0F801BC +:10037000E80FF91F30813230F1F4EC91F0E0308178 +:10038000C701088002C0880F991F0A94E2F7832BE7 +:100390008083FA01C080DD24F6013081C701FB01B2 +:1003A000008002C0880F991F0A94E2F7809583238A +:1003B000F60180838EC0F801E80FF91F30813330D9 +:1003C000F1F4FA01C080DD24F6013081C701FB01A0 +:1003D000008002C0880F991F0A94E2F7832BF60170 +:1003E0008083EC91F0E03081C701088002C0880F63 +:1003F000991F0A94E2F78095832380836AC0F801ED +:10040000E80FF91F30813630E9F4FA01C080DD24AD +:10041000F6013081C701FB01008002C0880F991FDF +:100420000A94E2F7832BF6018083EC91F0E03081AF +:10043000C701088002C0880F991F0A94E2F7832B36 +:10044000808347C0F801E80FF91F30813323F9F4A6 +:10045000FA01C080DD24F6013081C701FB01008074 +:1004600002C0880F991F0A94E2F780958323F60152 +:100470008083EC91F0E03081C701088002C0880FD2 +:10048000991F0A94E2F780958323808322C0F801A4 +:10049000E80FF91F80818830E1F4FA01C080DD2483 +:1004A000F6013081C701FB01008002C0880F991F4F +:1004B0000A94E2F78327F6018083EC91F0E0308123 +:1004C000C701088002C0880F991F0A94E2F78327AA +:1004D00080832E5F12964E5F5F4F22966E5F7F4F36 +:1004E0002A3009F041CFDF91CF911F910F91FF90FA +:1004F000EF90DF90CF9008952F923F924F925F92AE +:100500006F927F928F929F92AF92BF92CF92DF9223 +:10051000EF92FF920F931F93CF93DF9300D000D001 +:10052000CDB7DEB74FE750E065E770E08BE690E0CF +:1005300001E610E020E01A821982EE24FF24E39401 +:100540006A019C838B834601F6013197A081B0E05C +:100550003B018C91FB0131975701008002C0AA0C2E +:10056000BB1C0A94E2F79A2D909589238C93000086 +:100570004B805C80F2013197E081F0E0180130811E +:10058000F8013197C701008002C0880F991F0A94B3 +:10059000E2F78323C1F4822F8695482F50E0ECE9DF +:1005A000F0E0E40FF51F8081823019F485E08A8342 +:1005B00002C094E09A83842F8F5F880F982F990F41 +:1005C000990F890F89838C918A298C930000F401FB +:1005D000A081B0E08C91A701F301008002C0440F1C +:1005E000551F0A94E2F7942F909589238C9300006D +:1005F000F2018081E82FF0E03081C701F101008035 +:1006000002C0880F991F0A94E2F7832351F4822FC6 +:100610008E7F8E5F982F990F990F890F8983F7E04E +:10062000FA838C91482B4C9300002E5F82E090E07F +:10063000C80ED91E6E5F7F4FAB81BC811296BC8302 +:10064000AB830E5F1F4F2A3009F07DCFB981BB23EA +:10065000E9F0EA81EE23D1F0F894A59AAD9AB1DDE4 +:100660008FE39CE90197F1F700C00000898161E008 +:100670004A810EDEAD988FE798E3A1E0815090406B +:10068000A040E1F700C0000089DD78940F900F9042 +:100690000F900F90DF91CF911F910F91FF90EF90EE +:1006A000DF90CF90BF90AF909F908F907F906F9092 +:1006B0005F904F903F902F900895CF936FDD01C0D2 +:1006C0001BDF76DD8823E1F778DD823008F050C04B +:1006D00001C012DF6DDD8823E1F76FDD813009F4A1 +:1006E00047C06AE0B9D0C82FC15001C005DF60DD46 +:1006F0008823E1F762DD8330B1F0843018F4823072 +:10070000B1F505C08630D9F0883089F524C08C2F2A +:1007100090E0FC01E456FF4F22E020838E559F4F6E +:10072000FC01108225C08C2F90E0FC01E456FF4FA5 +:1007300023E020838E559F4FFC01108219C08C2F1F +:1007400090E0FC01E456FF4F26E020838E559F4F3A +:10075000FC0110820DC08C2F90E0FC01E456FF4F8D +:1007600028E020838E559F4FFC01108201C029DDB7 +:10077000CF9108951F920F920FB60F9211242F93CD +:100780003F934F935F936F937F938F939F93AF9319 +:10079000BF93EF93FF93D0DD8091A700803130F4B9 +:1007A0008091A7008F5F8093A70023C01092A700BD +:1007B00008DD80E061E041E06BDD80E090E022EA6E +:1007C00030E04CE950E0F901E80FF91F60816B302F +:1007D00028F0FA01E80FF91F108206C0F901E80FAE +:1007E000F91F60816F5F608301968530910559F72D +:1007F000D5DCFF91EF91BF91AF919F918F917F9148 +:100800006F915F914F913F912F910F900FBE0F907D +:100810001F90189585E083BF12BE81E089BF0895BF +:1008200037DC80E296E074DC81E060E047E053DC96 +:1008300080E895E27CDC80E066E09CDC67DDEADF56 +:1008400078948FEF90E7A2E081509040A040E1F7CC +:1008500000C0000032DFFECF991B79E004C0991F71 +:10086000961708F0961B881F7A95C9F7809508950A +:10087000A1E21A2EAA1BBB1BFD010DC0AA1FBB1FA4 +:10088000EE1FFF1FA217B307E407F50720F0A21B16 +:10089000B30BE40BF50B661F771F881F991F1A9483 +:1008A00069F760957095809590959B01AC01BD01AD +:1008B000CF01089597FB092E05260ED057FD04D0D1 +:1008C000D7DF0AD0001C38F450954095309521951B +:1008D0003F4F4F4F5F4F0895F6F790958095709575 +:0E08E00061957F4F8F4F9F4F0895F894FFCF83 +:1008EE0003020202010100010000303030303030CE +:1008FE0030303030020302040203020404033535A3 +:10090E00353535353535353501040006070506070D +:10091E0000013532353838323232383800020000B4 +:02092E000000C7 :00000001FF diff --git a/Sender/Sender/Debug/Sender.lss b/Sender/Sender/Debug/Sender.lss index f29af0b..120ceb0 100644 --- a/Sender/Sender/Debug/Sender.lss +++ b/Sender/Sender/Debug/Sender.lss @@ -3,31 +3,31 @@ Sender.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .text 000008c8 00000000 00000000 00000094 2**1 + 0 .text 000008ee 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000042 00800060 000008c8 0000095c 2**0 + 1 .data 00000042 00800060 000008ee 00000982 2**0 CONTENTS, ALLOC, LOAD, DATA - 2 .bss 00000008 008000a2 008000a2 0000099e 2**0 + 2 .bss 00000008 008000a2 008000a2 000009c4 2**0 ALLOC - 3 .stab 000006cc 00000000 00000000 000009a0 2**2 + 3 .stab 000006cc 00000000 00000000 000009c4 2**2 CONTENTS, READONLY, DEBUGGING - 4 .stabstr 00000085 00000000 00000000 0000106c 2**0 + 4 .stabstr 00000085 00000000 00000000 00001090 2**0 CONTENTS, READONLY, DEBUGGING - 5 .debug_aranges 00000100 00000000 00000000 000010f8 2**3 + 5 .debug_aranges 00000100 00000000 00000000 00001118 2**3 CONTENTS, READONLY, DEBUGGING - 6 .debug_info 00001217 00000000 00000000 000011f8 2**0 + 6 .debug_info 00001217 00000000 00000000 00001218 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_abbrev 0000040c 00000000 00000000 0000240f 2**0 + 7 .debug_abbrev 0000040c 00000000 00000000 0000242f 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_line 0000087c 00000000 00000000 0000281b 2**0 + 8 .debug_line 0000087b 00000000 00000000 0000283b 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_frame 00000284 00000000 00000000 00003098 2**2 + 9 .debug_frame 00000288 00000000 00000000 000030b8 2**2 CONTENTS, READONLY, DEBUGGING - 10 .debug_str 000002df 00000000 00000000 0000331c 2**0 + 10 .debug_str 000002df 00000000 00000000 00003340 2**0 CONTENTS, READONLY, DEBUGGING - 11 .debug_loc 00000a65 00000000 00000000 000035fb 2**0 + 11 .debug_loc 00000a8d 00000000 00000000 0000361f 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_ranges 00000068 00000000 00000000 00004060 2**0 + 12 .debug_ranges 00000068 00000000 00000000 000040ac 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -42,7 +42,7 @@ Disassembly of section .text: c: 27 c0 rjmp .+78 ; 0x5c <__bad_interrupt> e: 26 c0 rjmp .+76 ; 0x5c <__bad_interrupt> 10: 25 c0 rjmp .+74 ; 0x5c <__bad_interrupt> - 12: 9d c3 rjmp .+1850 ; 0x74e <__vector_9> + 12: b0 c3 rjmp .+1888 ; 0x774 <__vector_9> 14: 23 c0 rjmp .+70 ; 0x5c <__bad_interrupt> 16: 22 c0 rjmp .+68 ; 0x5c <__bad_interrupt> 18: 21 c0 rjmp .+66 ; 0x5c <__bad_interrupt> @@ -65,7 +65,7 @@ Disassembly of section .text: 32: 10 e0 ldi r17, 0x00 ; 0 34: a0 e6 ldi r26, 0x60 ; 96 36: b0 e0 ldi r27, 0x00 ; 0 - 38: e8 ec ldi r30, 0xC8 ; 200 + 38: ee ee ldi r30, 0xEE ; 238 3a: f8 e0 ldi r31, 0x08 ; 8 3c: 02 c0 rjmp .+4 ; 0x42 <__SREG__+0x3> 3e: 05 90 lpm r0, Z+ @@ -87,8 +87,8 @@ Disassembly of section .text: 52: aa 3a cpi r26, 0xAA ; 170 54: b1 07 cpc r27, r17 56: e1 f7 brne .-8 ; 0x50 <.do_clear_bss_loop> - 58: d0 d3 rcall .+1952 ; 0x7fa
- 5a: 34 c4 rjmp .+2152 ; 0x8c4 <_exit> + 58: e3 d3 rcall .+1990 ; 0x820
+ 5a: 47 c4 rjmp .+2190 ; 0x8ea <_exit> 0000005c <__bad_interrupt>: 5c: d1 cf rjmp .-94 ; 0x0 <__vectors> @@ -100,7 +100,7 @@ unsigned short rf12_trans(unsigned short wert) unsigned char i; RF_PORT &= ~(1< @@ -119,23 +119,23 @@ unsigned short rf12_trans(unsigned short wert) 66: 99 23 and r25, r25 68: 14 f4 brge .+4 ; 0x6e RF_PORT |= (1< } else { RF_PORT &= ~(1< + 14c: b3 d3 rcall .+1894 ; 0x8b4 <__divmodsi4> 14e: c9 01 movw r24, r18 150: 01 97 sbiw r24, 0x01 ; 1 152: 80 68 ori r24, 0x80 ; 128 @@ -333,7 +333,7 @@ void rf12_setbaud(unsigned short baud) 162: 72 e4 ldi r23, 0x42 ; 66 164: 85 e0 ldi r24, 0x05 ; 5 166: 90 e0 ldi r25, 0x00 ; 0 - 168: 70 d3 rcall .+1760 ; 0x84a <__udivmodsi4> + 168: 83 d3 rcall .+1798 ; 0x870 <__udivmodsi4> 16a: c9 01 movw r24, r18 16c: 01 97 sbiw r24, 0x01 ; 1 16e: 96 6c ori r25, 0xC6 ; 198 @@ -370,9 +370,9 @@ void rf12_setpower(unsigned char power, unsigned char mod) void rf12_ready(void) { RF_PORT &= ~(1< } 19a: 08 95 ret @@ -398,10 +398,10 @@ void rf12_beginasyncrx() { 000001b0 : uint8_t rf12_hasdata() { RF_PORT &= ~(1<: +00000338 : void led() { - 336: cf 92 push r12 - 338: df 92 push r13 - 33a: ef 92 push r14 - 33c: ff 92 push r15 - 33e: 0f 93 push r16 - 340: 1f 93 push r17 - 342: cf 93 push r28 - 344: df 93 push r29 + 338: cf 92 push r12 + 33a: df 92 push r13 + 33c: ef 92 push r14 + 33e: ff 92 push r15 + 340: 0f 93 push r16 + 342: 1f 93 push r17 + 344: cf 93 push r28 + 346: df 93 push r29 for(uint8_t i=0;i - BIT_SET(led_port[i],led_pin[i]); - 378: ec 91 ld r30, X - 37a: f0 e0 ldi r31, 0x00 ; 0 + 368: 82 2f mov r24, r18 + 36a: 86 95 lsr r24 + 36c: 90 e0 ldi r25, 0x00 ; 0 + 36e: f8 01 movw r30, r16 + 370: e8 0f add r30, r24 + 372: f9 1f adc r31, r25 + 374: 30 81 ld r19, Z + 376: 32 30 cpi r19, 0x02 ; 2 + 378: f1 f4 brne .+60 ; 0x3b6 + BIT_SET(led_port[i+1],led_pin[i+1]); + 37a: ec 91 ld r30, X + 37c: f0 e0 ldi r31, 0x00 ; 0 recive(); } } static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { *target |= (1< - 384: 88 0f add r24, r24 - 386: 99 1f adc r25, r25 - 388: 0a 94 dec r0 - 38a: e2 f7 brpl .-8 ; 0x384 - 38c: 83 2b or r24, r19 - 38e: 80 83 st Z, r24 + 37e: 30 81 ld r19, Z + 380: c7 01 movw r24, r14 + 382: 08 80 ld r0, Y + 384: 02 c0 rjmp .+4 ; 0x38a + 386: 88 0f add r24, r24 + 388: 99 1f adc r25, r25 + 38a: 0a 94 dec r0 + 38c: e2 f7 brpl .-8 ; 0x386 + 38e: 83 2b or r24, r19 + 390: 80 83 st Z, r24 void led() { for(uint8_t i=0;i - 3a2: 88 0f add r24, r24 - 3a4: 99 1f adc r25, r25 - 3a6: 0a 94 dec r0 - 3a8: e2 f7 brpl .-8 ; 0x3a2 - 3aa: 80 95 com r24 - 3ac: 83 23 and r24, r19 - 3ae: f6 01 movw r30, r12 - 3b0: 80 83 st Z, r24 - 3b2: 8e c0 rjmp .+284 ; 0x4d0 <__stack+0x71> + 398: f6 01 movw r30, r12 + 39a: 30 81 ld r19, Z + 39c: c7 01 movw r24, r14 + 39e: fb 01 movw r30, r22 + 3a0: 00 80 ld r0, Z + 3a2: 02 c0 rjmp .+4 ; 0x3a8 + 3a4: 88 0f add r24, r24 + 3a6: 99 1f adc r25, r25 + 3a8: 0a 94 dec r0 + 3aa: e2 f7 brpl .-8 ; 0x3a4 + 3ac: 80 95 com r24 + 3ae: 83 23 and r24, r19 + 3b0: f6 01 movw r30, r12 + 3b2: 80 83 st Z, r24 + 3b4: 8e c0 rjmp .+284 ; 0x4d2 <__stack+0x73> void led() { for(uint8_t i=0;i BIT_SET(led_port[i+1],led_pin[i+1]); - 3c0: fa 01 movw r30, r20 - 3c2: c0 80 ld r12, Z - 3c4: dd 24 eor r13, r13 + BIT_CLEAR(led_port[i],led_pin[i]); + } else if(status_dev[i/2] == ACTIVE) { + 3b6: f8 01 movw r30, r16 + 3b8: e8 0f add r30, r24 + 3ba: f9 1f adc r31, r25 + 3bc: 30 81 ld r19, Z + 3be: 33 30 cpi r19, 0x03 ; 3 + 3c0: f1 f4 brne .+60 ; 0x3fe + BIT_SET(led_port[i],led_pin[i]); + 3c2: fa 01 movw r30, r20 + 3c4: c0 80 ld r12, Z + 3c6: dd 24 eor r13, r13 recive(); } } static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { *target |= (1< - 3d2: 88 0f add r24, r24 - 3d4: 99 1f adc r25, r25 - 3d6: 0a 94 dec r0 - 3d8: e2 f7 brpl .-8 ; 0x3d2 - 3da: 83 2b or r24, r19 - 3dc: f6 01 movw r30, r12 - 3de: 80 83 st Z, r24 + 3c8: f6 01 movw r30, r12 + 3ca: 30 81 ld r19, Z + 3cc: c7 01 movw r24, r14 + 3ce: fb 01 movw r30, r22 + 3d0: 00 80 ld r0, Z + 3d2: 02 c0 rjmp .+4 ; 0x3d8 + 3d4: 88 0f add r24, r24 + 3d6: 99 1f adc r25, r25 + 3d8: 0a 94 dec r0 + 3da: e2 f7 brpl .-8 ; 0x3d4 + 3dc: 83 2b or r24, r19 + 3de: f6 01 movw r30, r12 + 3e0: 80 83 st Z, r24 if(status_dev[i/2] == SLEEP) { - BIT_SET(led_port[i],led_pin[i]); - BIT_CLEAR(led_port[i+1],led_pin[i+1]); - } else if(status_dev[i/2] == ACTIVE) { BIT_SET(led_port[i+1],led_pin[i+1]); BIT_CLEAR(led_port[i],led_pin[i]); - 3e0: ec 91 ld r30, X - 3e2: f0 e0 ldi r31, 0x00 ; 0 + } else if(status_dev[i/2] == ACTIVE) { + BIT_SET(led_port[i],led_pin[i]); + BIT_CLEAR(led_port[i+1],led_pin[i+1]); + 3e2: ec 91 ld r30, X + 3e4: f0 e0 ldi r31, 0x00 ; 0 static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { *target |= (1< - 3ec: 88 0f add r24, r24 - 3ee: 99 1f adc r25, r25 - 3f0: 0a 94 dec r0 - 3f2: e2 f7 brpl .-8 ; 0x3ec - 3f4: 80 95 com r24 - 3f6: 83 23 and r24, r19 - 3f8: 80 83 st Z, r24 - 3fa: 6a c0 rjmp .+212 ; 0x4d0 <__stack+0x71> + 3e6: 30 81 ld r19, Z + 3e8: c7 01 movw r24, r14 + 3ea: 08 80 ld r0, Y + 3ec: 02 c0 rjmp .+4 ; 0x3f2 + 3ee: 88 0f add r24, r24 + 3f0: 99 1f adc r25, r25 + 3f2: 0a 94 dec r0 + 3f4: e2 f7 brpl .-8 ; 0x3ee + 3f6: 80 95 com r24 + 3f8: 83 23 and r24, r19 + 3fa: 80 83 st Z, r24 + 3fc: 6a c0 rjmp .+212 ; 0x4d2 <__stack+0x73> + BIT_SET(led_port[i+1],led_pin[i+1]); + BIT_CLEAR(led_port[i],led_pin[i]); + } else if(status_dev[i/2] == ACTIVE) { BIT_SET(led_port[i],led_pin[i]); BIT_CLEAR(led_port[i+1],led_pin[i+1]); - } else if(status_dev[i/2] == ACTIVE) { - BIT_SET(led_port[i+1],led_pin[i+1]); - BIT_CLEAR(led_port[i],led_pin[i]); } else if(status_dev[i/2] == RUN) { - 3fc: f8 01 movw r30, r16 - 3fe: e8 0f add r30, r24 - 400: f9 1f adc r31, r25 - 402: 30 81 ld r19, Z - 404: 36 30 cpi r19, 0x06 ; 6 - 406: e9 f4 brne .+58 ; 0x442 + 3fe: f8 01 movw r30, r16 + 400: e8 0f add r30, r24 + 402: f9 1f adc r31, r25 + 404: 30 81 ld r19, Z + 406: 36 30 cpi r19, 0x06 ; 6 + 408: e9 f4 brne .+58 ; 0x444 BIT_SET(led_port[i],led_pin[i]); - 408: ec 91 ld r30, X - 40a: f0 e0 ldi r31, 0x00 ; 0 - recive(); - } -} - -static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { - *target |= (1< - 414: 88 0f add r24, r24 - 416: 99 1f adc r25, r25 - 418: 0a 94 dec r0 - 41a: e2 f7 brpl .-8 ; 0x414 - 41c: 83 2b or r24, r19 - 41e: 80 83 st Z, r24 - } else if(status_dev[i/2] == ACTIVE) { - BIT_SET(led_port[i+1],led_pin[i+1]); - BIT_CLEAR(led_port[i],led_pin[i]); - } else if(status_dev[i/2] == RUN) { - BIT_SET(led_port[i],led_pin[i]); - BIT_SET(led_port[i+1],led_pin[i+1]); - 420: fa 01 movw r30, r20 - 422: c0 80 ld r12, Z - 424: dd 24 eor r13, r13 + 40a: fa 01 movw r30, r20 + 40c: c0 80 ld r12, Z + 40e: dd 24 eor r13, r13 recive(); } } static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { *target |= (1< + 41c: 88 0f add r24, r24 + 41e: 99 1f adc r25, r25 + 420: 0a 94 dec r0 + 422: e2 f7 brpl .-8 ; 0x41c + 424: 83 2b or r24, r19 426: f6 01 movw r30, r12 - 428: 30 81 ld r19, Z - 42a: c7 01 movw r24, r14 - 42c: fb 01 movw r30, r22 - 42e: 00 80 ld r0, Z - 430: 02 c0 rjmp .+4 ; 0x436 - 432: 88 0f add r24, r24 - 434: 99 1f adc r25, r25 - 436: 0a 94 dec r0 - 438: e2 f7 brpl .-8 ; 0x432 - 43a: 83 2b or r24, r19 - 43c: f6 01 movw r30, r12 - 43e: 80 83 st Z, r24 - 440: 47 c0 rjmp .+142 ; 0x4d0 <__stack+0x71> + 428: 80 83 st Z, r24 + } else if(status_dev[i/2] == ACTIVE) { + BIT_SET(led_port[i],led_pin[i]); + BIT_CLEAR(led_port[i+1],led_pin[i+1]); + } else if(status_dev[i/2] == RUN) { + BIT_SET(led_port[i],led_pin[i]); BIT_SET(led_port[i+1],led_pin[i+1]); - BIT_CLEAR(led_port[i],led_pin[i]); + 42a: ec 91 ld r30, X + 42c: f0 e0 ldi r31, 0x00 ; 0 + recive(); + } +} + +static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { + *target |= (1< + 436: 88 0f add r24, r24 + 438: 99 1f adc r25, r25 + 43a: 0a 94 dec r0 + 43c: e2 f7 brpl .-8 ; 0x436 + 43e: 83 2b or r24, r19 + 440: 80 83 st Z, r24 + 442: 47 c0 rjmp .+142 ; 0x4d2 <__stack+0x73> + BIT_SET(led_port[i],led_pin[i]); + BIT_CLEAR(led_port[i+1],led_pin[i+1]); } else if(status_dev[i/2] == RUN) { BIT_SET(led_port[i],led_pin[i]); BIT_SET(led_port[i+1],led_pin[i+1]); } else if(status_dev[i/2] == 0) { - 442: f8 01 movw r30, r16 - 444: e8 0f add r30, r24 - 446: f9 1f adc r31, r25 - 448: 30 81 ld r19, Z - 44a: 33 23 and r19, r19 - 44c: f9 f4 brne .+62 ; 0x48c <__stack+0x2d> + 444: f8 01 movw r30, r16 + 446: e8 0f add r30, r24 + 448: f9 1f adc r31, r25 + 44a: 30 81 ld r19, Z + 44c: 33 23 and r19, r19 + 44e: f9 f4 brne .+62 ; 0x48e <__stack+0x2f> BIT_CLEAR(led_port[i],led_pin[i]); - 44e: ec 91 ld r30, X - 450: f0 e0 ldi r31, 0x00 ; 0 + 450: fa 01 movw r30, r20 + 452: c0 80 ld r12, Z + 454: dd 24 eor r13, r13 static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { *target |= (1< - 45a: 88 0f add r24, r24 - 45c: 99 1f adc r25, r25 - 45e: 0a 94 dec r0 - 460: e2 f7 brpl .-8 ; 0x45a - 462: 80 95 com r24 - 464: 83 23 and r24, r19 - 466: 80 83 st Z, r24 + 456: f6 01 movw r30, r12 + 458: 30 81 ld r19, Z + 45a: c7 01 movw r24, r14 + 45c: fb 01 movw r30, r22 + 45e: 00 80 ld r0, Z + 460: 02 c0 rjmp .+4 ; 0x466 <__stack+0x7> + 462: 88 0f add r24, r24 + 464: 99 1f adc r25, r25 + 466: 0a 94 dec r0 + 468: e2 f7 brpl .-8 ; 0x462 <__stack+0x3> + 46a: 80 95 com r24 + 46c: 83 23 and r24, r19 + 46e: f6 01 movw r30, r12 + 470: 80 83 st Z, r24 } else if(status_dev[i/2] == RUN) { BIT_SET(led_port[i],led_pin[i]); BIT_SET(led_port[i+1],led_pin[i+1]); } else if(status_dev[i/2] == 0) { BIT_CLEAR(led_port[i],led_pin[i]); BIT_CLEAR(led_port[i+1],led_pin[i+1]); - 468: fa 01 movw r30, r20 - 46a: c0 80 ld r12, Z - 46c: dd 24 eor r13, r13 + 472: ec 91 ld r30, X + 474: f0 e0 ldi r31, 0x00 ; 0 static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { *target |= (1< - 47a: 88 0f add r24, r24 - 47c: 99 1f adc r25, r25 - 47e: 0a 94 dec r0 - 480: e2 f7 brpl .-8 ; 0x47a <__stack+0x1b> - 482: 80 95 com r24 - 484: 83 23 and r24, r19 - 486: f6 01 movw r30, r12 - 488: 80 83 st Z, r24 - 48a: 22 c0 rjmp .+68 ; 0x4d0 <__stack+0x71> + 476: 30 81 ld r19, Z + 478: c7 01 movw r24, r14 + 47a: 08 80 ld r0, Y + 47c: 02 c0 rjmp .+4 ; 0x482 <__stack+0x23> + 47e: 88 0f add r24, r24 + 480: 99 1f adc r25, r25 + 482: 0a 94 dec r0 + 484: e2 f7 brpl .-8 ; 0x47e <__stack+0x1f> + 486: 80 95 com r24 + 488: 83 23 and r24, r19 + 48a: 80 83 st Z, r24 + 48c: 22 c0 rjmp .+68 ; 0x4d2 <__stack+0x73> BIT_SET(led_port[i],led_pin[i]); BIT_SET(led_port[i+1],led_pin[i+1]); } else if(status_dev[i/2] == 0) { BIT_CLEAR(led_port[i],led_pin[i]); BIT_CLEAR(led_port[i+1],led_pin[i+1]); } else if(status_dev[i/2] == DEDECT) { - 48c: f8 01 movw r30, r16 - 48e: e8 0f add r30, r24 - 490: f9 1f adc r31, r25 - 492: 80 81 ld r24, Z - 494: 88 30 cpi r24, 0x08 ; 8 - 496: e1 f4 brne .+56 ; 0x4d0 <__stack+0x71> + 48e: f8 01 movw r30, r16 + 490: e8 0f add r30, r24 + 492: f9 1f adc r31, r25 + 494: 80 81 ld r24, Z + 496: 88 30 cpi r24, 0x08 ; 8 + 498: e1 f4 brne .+56 ; 0x4d2 <__stack+0x73> BIT_TOG(led_port[i],led_pin[i]); - 498: ec 91 ld r30, X - 49a: f0 e0 ldi r31, 0x00 ; 0 + 49a: fa 01 movw r30, r20 + 49c: c0 80 ld r12, Z + 49e: dd 24 eor r13, r13 static inline uint8_t BIT_ON(volatile uint8_t *target, uint8_t bit) { return *target & (1< - 4a4: 88 0f add r24, r24 - 4a6: 99 1f adc r25, r25 - 4a8: 0a 94 dec r0 - 4aa: e2 f7 brpl .-8 ; 0x4a4 <__stack+0x45> - 4ac: 83 27 eor r24, r19 - 4ae: 80 83 st Z, r24 + 4a0: f6 01 movw r30, r12 + 4a2: 30 81 ld r19, Z + 4a4: c7 01 movw r24, r14 + 4a6: fb 01 movw r30, r22 + 4a8: 00 80 ld r0, Z + 4aa: 02 c0 rjmp .+4 ; 0x4b0 <__stack+0x51> + 4ac: 88 0f add r24, r24 + 4ae: 99 1f adc r25, r25 + 4b0: 0a 94 dec r0 + 4b2: e2 f7 brpl .-8 ; 0x4ac <__stack+0x4d> + 4b4: 83 27 eor r24, r19 + 4b6: f6 01 movw r30, r12 + 4b8: 80 83 st Z, r24 } else if(status_dev[i/2] == 0) { BIT_CLEAR(led_port[i],led_pin[i]); BIT_CLEAR(led_port[i+1],led_pin[i+1]); } else if(status_dev[i/2] == DEDECT) { BIT_TOG(led_port[i],led_pin[i]); BIT_TOG(led_port[i+1],led_pin[i+1]); - 4b0: fa 01 movw r30, r20 - 4b2: c0 80 ld r12, Z - 4b4: dd 24 eor r13, r13 + 4ba: ec 91 ld r30, X + 4bc: f0 e0 ldi r31, 0x00 ; 0 static inline uint8_t BIT_ON(volatile uint8_t *target, uint8_t bit) { return *target & (1< - 4c2: 88 0f add r24, r24 - 4c4: 99 1f adc r25, r25 - 4c6: 0a 94 dec r0 - 4c8: e2 f7 brpl .-8 ; 0x4c2 <__stack+0x63> - 4ca: 83 27 eor r24, r19 - 4cc: f6 01 movw r30, r12 - 4ce: 80 83 st Z, r24 + 4be: 30 81 ld r19, Z + 4c0: c7 01 movw r24, r14 + 4c2: 08 80 ld r0, Y + 4c4: 02 c0 rjmp .+4 ; 0x4ca <__stack+0x6b> + 4c6: 88 0f add r24, r24 + 4c8: 99 1f adc r25, r25 + 4ca: 0a 94 dec r0 + 4cc: e2 f7 brpl .-8 ; 0x4c6 <__stack+0x67> + 4ce: 83 27 eor r24, r19 + 4d0: 80 83 st Z, r24 } void led() { for(uint8_t i=0;i - 4e2: 41 cf rjmp .-382 ; 0x366 + 4da: 22 96 adiw r28, 0x02 ; 2 + 4dc: 6e 5f subi r22, 0xFE ; 254 + 4de: 7f 4f sbci r23, 0xFF ; 255 + 4e0: 2a 30 cpi r18, 0x0A ; 10 + 4e2: 09 f0 breq .+2 ; 0x4e6 <__stack+0x87> + 4e4: 41 cf rjmp .-382 ; 0x368 } else if(status_dev[i/2] == DEDECT) { BIT_TOG(led_port[i],led_pin[i]); BIT_TOG(led_port[i+1],led_pin[i+1]); } } } - 4e4: df 91 pop r29 - 4e6: cf 91 pop r28 - 4e8: 1f 91 pop r17 - 4ea: 0f 91 pop r16 - 4ec: ff 90 pop r15 - 4ee: ef 90 pop r14 - 4f0: df 90 pop r13 - 4f2: cf 90 pop r12 - 4f4: 08 95 ret + 4e6: df 91 pop r29 + 4e8: cf 91 pop r28 + 4ea: 1f 91 pop r17 + 4ec: 0f 91 pop r16 + 4ee: ff 90 pop r15 + 4f0: ef 90 pop r14 + 4f2: df 90 pop r13 + 4f4: cf 90 pop r12 + 4f6: 08 95 ret -000004f6 : +000004f8 : void poll() { - 4f6: 2f 92 push r2 - 4f8: 3f 92 push r3 - 4fa: 4f 92 push r4 - 4fc: 5f 92 push r5 - 4fe: 6f 92 push r6 - 500: 7f 92 push r7 - 502: 8f 92 push r8 - 504: 9f 92 push r9 - 506: af 92 push r10 - 508: bf 92 push r11 - 50a: cf 92 push r12 - 50c: df 92 push r13 - 50e: ef 92 push r14 - 510: ff 92 push r15 - 512: 0f 93 push r16 - 514: 1f 93 push r17 - 516: cf 93 push r28 - 518: df 93 push r29 + 4f8: 2f 92 push r2 + 4fa: 3f 92 push r3 + 4fc: 4f 92 push r4 + 4fe: 5f 92 push r5 + 500: 6f 92 push r6 + 502: 7f 92 push r7 + 504: 8f 92 push r8 + 506: 9f 92 push r9 + 508: af 92 push r10 + 50a: bf 92 push r11 + 50c: cf 92 push r12 + 50e: df 92 push r13 + 510: ef 92 push r14 + 512: ff 92 push r15 + 514: 0f 93 push r16 + 516: 1f 93 push r17 + 518: cf 93 push r28 + 51a: df 93 push r29 + 51c: 00 d0 rcall .+0 ; 0x51e + 51e: 00 d0 rcall .+0 ; 0x520 + 520: cd b7 in r28, 0x3d ; 61 + 522: de b7 in r29, 0x3e ; 62 //Run Schalter BIT_CLEAR(in_collumn_port[i+1],in_collumn_pin[i+1]); //Collumn auf 0 _delay_us(0.01); if(!BIT_ON(in_row_port[i+1],in_row_pin[i+1])) { data = SETRUN; - 51a: 4f e7 ldi r20, 0x7F ; 127 - 51c: 50 e0 ldi r21, 0x00 ; 0 - 51e: 65 e7 ldi r22, 0x75 ; 117 - 520: 70 e0 ldi r23, 0x00 ; 0 - 522: cb e6 ldi r28, 0x6B ; 107 - 524: d0 e0 ldi r29, 0x00 ; 0 - 526: 01 e6 ldi r16, 0x61 ; 97 - 528: 10 e0 ldi r17, 0x00 ; 0 + 524: 4f e7 ldi r20, 0x7F ; 127 + 526: 50 e0 ldi r21, 0x00 ; 0 + 528: 65 e7 ldi r22, 0x75 ; 117 + 52a: 70 e0 ldi r23, 0x00 ; 0 + 52c: 8b e6 ldi r24, 0x6B ; 107 + 52e: 90 e0 ldi r25, 0x00 ; 0 + 530: 01 e6 ldi r16, 0x61 ; 97 + 532: 10 e0 ldi r17, 0x00 ; 0 } void poll() { uint8_t to = 0; uint8_t data = 0; for(uint8_t i=0;i - 550: 44 0f add r20, r20 - 552: 55 1f adc r21, r21 - 554: 0a 94 dec r0 - 556: e2 f7 brpl .-8 ; 0x550 - 558: 94 2f mov r25, r20 - 55a: 90 95 com r25 - 55c: 89 23 and r24, r25 - 55e: 8c 93 st X, r24 + 558: 57 01 movw r10, r14 + 55a: 00 80 ld r0, Z + 55c: 02 c0 rjmp .+4 ; 0x562 + 55e: aa 0c add r10, r10 + 560: bb 1c adc r11, r11 + 562: 0a 94 dec r0 + 564: e2 f7 brpl .-8 ; 0x55e + 566: 9a 2d mov r25, r10 + 568: 90 95 com r25 + 56a: 89 23 and r24, r25 + 56c: 8c 93 st X, r24 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 560: 00 00 nop + 56e: 00 00 nop BIT_TOG(led_port[i],led_pin[i]); BIT_TOG(led_port[i+1],led_pin[i+1]); } } } void poll() { - 562: 4e 01 movw r8, r28 - 564: fe 01 movw r30, r28 - 566: 31 97 sbiw r30, 0x01 ; 1 + 570: 4b 80 ldd r4, Y+3 ; 0x03 + 572: 5c 80 ldd r5, Y+4 ; 0x04 + 574: f2 01 movw r30, r4 + 576: 31 97 sbiw r30, 0x01 ; 1 for(uint8_t i=0;i - 57a: 88 0f add r24, r24 - 57c: 99 1f adc r25, r25 - 57e: 0a 94 dec r0 - 580: e2 f7 brpl .-8 ; 0x57a - 582: 83 23 and r24, r19 + 584: c7 01 movw r24, r14 + 586: 00 80 ld r0, Z + 588: 02 c0 rjmp .+4 ; 0x58e + 58a: 88 0f add r24, r24 + 58c: 99 1f adc r25, r25 + 58e: 0a 94 dec r0 + 590: e2 f7 brpl .-8 ; 0x58a + 592: 83 23 and r24, r19 for(uint8_t i=0;i + 594: c1 f4 brne .+48 ; 0x5c6 if(status_dev[i/2] == SLEEP) { - 586: 82 2f mov r24, r18 - 588: 86 95 lsr r24 - 58a: ec e9 ldi r30, 0x9C ; 156 - 58c: f0 e0 ldi r31, 0x00 ; 0 - 58e: e8 0f add r30, r24 - 590: f1 1d adc r31, r1 - 592: 90 81 ld r25, Z - 594: 92 30 cpi r25, 0x02 ; 2 - 596: 29 f4 brne .+10 ; 0x5a2 + 596: 82 2f mov r24, r18 + 598: 86 95 lsr r24 + 59a: 48 2f mov r20, r24 + 59c: 50 e0 ldi r21, 0x00 ; 0 + 59e: ec e9 ldi r30, 0x9C ; 156 + 5a0: f0 e0 ldi r31, 0x00 ; 0 + 5a2: e4 0f add r30, r20 + 5a4: f5 1f adc r31, r21 + 5a6: 80 81 ld r24, Z + 5a8: 82 30 cpi r24, 0x02 ; 2 + 5aa: 19 f4 brne .+6 ; 0x5b2 data = SETACTIVE; - 598: 0f 2e mov r0, r31 - 59a: f5 e0 ldi r31, 0x05 ; 5 - 59c: 2f 2e mov r2, r31 - 59e: f0 2d mov r31, r0 - 5a0: 03 c0 rjmp .+6 ; 0x5a8 + 5ac: 85 e0 ldi r24, 0x05 ; 5 + 5ae: 8a 83 std Y+2, r24 ; 0x02 + 5b0: 02 c0 rjmp .+4 ; 0x5b6 } else { data = SETSLEEP; - 5a2: 22 24 eor r2, r2 - 5a4: 68 94 set - 5a6: 22 f8 bld r2, 2 + 5b2: 94 e0 ldi r25, 0x04 ; 4 + 5b4: 9a 83 std Y+2, r25 ; 0x02 } //Device - to = (i/2)+10; - 5a8: 0f 2e mov r0, r31 - 5aa: fa e0 ldi r31, 0x0A ; 10 - 5ac: 3f 2e mov r3, r31 - 5ae: f0 2d mov r31, r0 - 5b0: 38 0e add r3, r24 + to = ((i/2)*10)+10; + 5b6: 84 2f mov r24, r20 + 5b8: 8f 5f subi r24, 0xFF ; 255 + 5ba: 88 0f add r24, r24 + 5bc: 98 2f mov r25, r24 + 5be: 99 0f add r25, r25 + 5c0: 99 0f add r25, r25 + 5c2: 89 0f add r24, r25 + 5c4: 89 83 std Y+1, r24 ; 0x01 recive(); } } static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { *target |= (1< - 5ca: 44 0f add r20, r20 - 5cc: 55 1f adc r21, r21 - 5ce: 0a 94 dec r0 - 5d0: e2 f7 brpl .-8 ; 0x5ca - 5d2: 94 2f mov r25, r20 - 5d4: 90 95 com r25 - 5d6: 89 23 and r24, r25 - 5d8: 8c 93 st X, r24 - 5da: 00 00 nop + 5d4: 8c 91 ld r24, X + 5d6: a7 01 movw r20, r14 + 5d8: f3 01 movw r30, r6 + 5da: 00 80 ld r0, Z + 5dc: 02 c0 rjmp .+4 ; 0x5e2 + 5de: 44 0f add r20, r20 + 5e0: 55 1f adc r21, r21 + 5e2: 0a 94 dec r0 + 5e4: e2 f7 brpl .-8 ; 0x5de + 5e6: 94 2f mov r25, r20 + 5e8: 90 95 com r25 + 5ea: 89 23 and r24, r25 + 5ec: 8c 93 st X, r24 + 5ee: 00 00 nop _delay_us(0.01); //Run Schalter BIT_CLEAR(in_collumn_port[i+1],in_collumn_pin[i+1]); //Collumn auf 0 _delay_us(0.01); if(!BIT_ON(in_row_port[i+1],in_row_pin[i+1])) { - 5dc: f4 01 movw r30, r8 - 5de: 80 81 ld r24, Z - 5e0: e8 2f mov r30, r24 - 5e2: f0 e0 ldi r31, 0x00 ; 0 + 5f0: f2 01 movw r30, r4 + 5f2: 80 81 ld r24, Z + 5f4: e8 2f mov r30, r24 + 5f6: f0 e0 ldi r31, 0x00 ; 0 static inline void BIT_CLEAR(volatile uint8_t *target, uint8_t bit) { *target &= ~(1< - 5ee: 88 0f add r24, r24 - 5f0: 99 1f adc r25, r25 - 5f2: 0a 94 dec r0 - 5f4: e2 f7 brpl .-8 ; 0x5ee - 5f6: 83 23 and r24, r19 + 5f8: 30 81 ld r19, Z + 5fa: c7 01 movw r24, r14 + 5fc: f1 01 movw r30, r2 + 5fe: 00 80 ld r0, Z + 600: 02 c0 rjmp .+4 ; 0x606 + 602: 88 0f add r24, r24 + 604: 99 1f adc r25, r25 + 606: 0a 94 dec r0 + 608: e2 f7 brpl .-8 ; 0x602 + 60a: 83 23 and r24, r19 _delay_us(0.01); //Run Schalter BIT_CLEAR(in_collumn_port[i+1],in_collumn_pin[i+1]); //Collumn auf 0 _delay_us(0.01); if(!BIT_ON(in_row_port[i+1],in_row_pin[i+1])) { - 5f8: 59 f4 brne .+22 ; 0x610 + 60c: 51 f4 brne .+20 ; 0x622 data = SETRUN; //Device - to = (i/2)+10; - 5fa: 82 2f mov r24, r18 - 5fc: 86 95 lsr r24 - 5fe: 0f 2e mov r0, r31 - 600: fa e0 ldi r31, 0x0A ; 10 - 602: 3f 2e mov r3, r31 - 604: f0 2d mov r31, r0 - 606: 38 0e add r3, r24 + to = ((i/2)*10)+10; + 60e: 82 2f mov r24, r18 + 610: 8e 7f andi r24, 0xFE ; 254 + 612: 8e 5f subi r24, 0xFE ; 254 + 614: 98 2f mov r25, r24 + 616: 99 0f add r25, r25 + 618: 99 0f add r25, r25 + 61a: 89 0f add r24, r25 + 61c: 89 83 std Y+1, r24 ; 0x01 //Run Schalter BIT_CLEAR(in_collumn_port[i+1],in_collumn_pin[i+1]); //Collumn auf 0 _delay_us(0.01); if(!BIT_ON(in_row_port[i+1],in_row_pin[i+1])) { data = SETRUN; - 608: 0f 2e mov r0, r31 - 60a: f7 e0 ldi r31, 0x07 ; 7 - 60c: 2f 2e mov r2, r31 - 60e: f0 2d mov r31, r0 + 61e: f7 e0 ldi r31, 0x07 ; 7 + 620: fa 83 std Y+2, r31 ; 0x02 recive(); } } static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { *target |= (1< - 630: 83 cf rjmp .-250 ; 0x538 - to = (i/2)+10; + 62a: 2e 5f subi r18, 0xFE ; 254 + 62c: 82 e0 ldi r24, 0x02 ; 2 + 62e: 90 e0 ldi r25, 0x00 ; 0 + 630: c8 0e add r12, r24 + 632: d9 1e adc r13, r25 + 634: 6e 5f subi r22, 0xFE ; 254 + 636: 7f 4f sbci r23, 0xFF ; 255 + 638: ab 81 ldd r26, Y+3 ; 0x03 + 63a: bc 81 ldd r27, Y+4 ; 0x04 + 63c: 12 96 adiw r26, 0x02 ; 2 + 63e: bc 83 std Y+4, r27 ; 0x04 + 640: ab 83 std Y+3, r26 ; 0x03 + 642: 0e 5f subi r16, 0xFE ; 254 + 644: 1f 4f sbci r17, 0xFF ; 255 + 646: 2a 30 cpi r18, 0x0A ; 10 + 648: 09 f0 breq .+2 ; 0x64c + 64a: 7d cf rjmp .-262 ; 0x546 + to = ((i/2)*10)+10; } BIT_SET(in_collumn_port[i+1],in_collumn_pin[i+1]); //Collumn auf wieder auf 1 _delay_us(0.01); } if(to != 0 && data != 0) { - 632: 33 20 and r3, r3 - 634: e1 f0 breq .+56 ; 0x66e - 636: 22 20 and r2, r2 - 638: d1 f0 breq .+52 ; 0x66e + 64c: b9 81 ldd r27, Y+1 ; 0x01 + 64e: bb 23 and r27, r27 + 650: e9 f0 breq .+58 ; 0x68c + 652: ea 81 ldd r30, Y+2 ; 0x02 + 654: ee 23 and r30, r30 + 656: d1 f0 breq .+52 ; 0x68c cli(); - 63a: f8 94 cli + 658: f8 94 cli DDRC |= (1< + 65e: b1 dd rcall .-1182 ; 0x1c2 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 642: af e3 ldi r26, 0x3F ; 63 - 644: bc e9 ldi r27, 0x9C ; 156 - 646: 11 97 sbiw r26, 0x01 ; 1 - 648: f1 f7 brne .-4 ; 0x646 - 64a: 00 c0 rjmp .+0 ; 0x64c - 64c: 00 00 nop + 660: 8f e3 ldi r24, 0x3F ; 63 + 662: 9c e9 ldi r25, 0x9C ; 156 + 664: 01 97 sbiw r24, 0x01 ; 1 + 666: f1 f7 brne .-4 ; 0x664 + 668: 00 c0 rjmp .+0 ; 0x66a + 66a: 00 00 nop _delay_ms(20); rf12_txpacket(to, MASTER, data); - 64e: 83 2d mov r24, r3 - 650: 61 e0 ldi r22, 0x01 ; 1 - 652: 42 2d mov r20, r2 - 654: 1d de rcall .-966 ; 0x290 + 66c: 89 81 ldd r24, Y+1 ; 0x01 + 66e: 61 e0 ldi r22, 0x01 ; 1 + 670: 4a 81 ldd r20, Y+2 ; 0x02 + 672: 0e de rcall .-996 ; 0x290 PORTC &= ~(1< - 666: 00 c0 rjmp .+0 ; 0x668 - 668: 00 00 nop + 674: ad 98 cbi 0x15, 5 ; 21 + 676: 8f e7 ldi r24, 0x7F ; 127 + 678: 98 e3 ldi r25, 0x38 ; 56 + 67a: a1 e0 ldi r26, 0x01 ; 1 + 67c: 81 50 subi r24, 0x01 ; 1 + 67e: 90 40 sbci r25, 0x00 ; 0 + 680: a0 40 sbci r26, 0x00 ; 0 + 682: e1 f7 brne .-8 ; 0x67c + 684: 00 c0 rjmp .+0 ; 0x686 + 686: 00 00 nop _delay_ms(50); rf12_beginasyncrx(); - 66a: 98 dd rcall .-1232 ; 0x19c + 688: 89 dd rcall .-1262 ; 0x19c sei(); - 66c: 78 94 sei + 68a: 78 94 sei } } - 66e: df 91 pop r29 - 670: cf 91 pop r28 - 672: 1f 91 pop r17 - 674: 0f 91 pop r16 - 676: ff 90 pop r15 - 678: ef 90 pop r14 - 67a: df 90 pop r13 - 67c: cf 90 pop r12 - 67e: bf 90 pop r11 - 680: af 90 pop r10 - 682: 9f 90 pop r9 - 684: 8f 90 pop r8 - 686: 7f 90 pop r7 - 688: 6f 90 pop r6 - 68a: 5f 90 pop r5 - 68c: 4f 90 pop r4 - 68e: 3f 90 pop r3 - 690: 2f 90 pop r2 - 692: 08 95 ret + 68c: 0f 90 pop r0 + 68e: 0f 90 pop r0 + 690: 0f 90 pop r0 + 692: 0f 90 pop r0 + 694: df 91 pop r29 + 696: cf 91 pop r28 + 698: 1f 91 pop r17 + 69a: 0f 91 pop r16 + 69c: ff 90 pop r15 + 69e: ef 90 pop r14 + 6a0: df 90 pop r13 + 6a2: cf 90 pop r12 + 6a4: bf 90 pop r11 + 6a6: af 90 pop r10 + 6a8: 9f 90 pop r9 + 6aa: 8f 90 pop r8 + 6ac: 7f 90 pop r7 + 6ae: 6f 90 pop r6 + 6b0: 5f 90 pop r5 + 6b2: 4f 90 pop r4 + 6b4: 3f 90 pop r3 + 6b6: 2f 90 pop r2 + 6b8: 08 95 ret -00000694 : +000006ba : void recive() { - 694: cf 93 push r28 + 6ba: cf 93 push r28 rf12_beginasyncrx(); - 696: 82 dd rcall .-1276 ; 0x19c + 6bc: 6f dd rcall .-1314 ; 0x19c while(rf12_hasdata()) { - 698: 01 c0 rjmp .+2 ; 0x69c + 6be: 01 c0 rjmp .+2 ; 0x6c2 poll(); - 69a: 2d df rcall .-422 ; 0x4f6 + 6c0: 1b df rcall .-458 ; 0x4f8 } } void recive() { rf12_beginasyncrx(); while(rf12_hasdata()) { - 69c: 89 dd rcall .-1262 ; 0x1b0 - 69e: 88 23 and r24, r24 - 6a0: e1 f7 brne .-8 ; 0x69a + 6c2: 76 dd rcall .-1300 ; 0x1b0 + 6c4: 88 23 and r24, r24 + 6c6: e1 f7 brne .-8 ; 0x6c0 poll(); } uint8_t addr = rf12_rxbyte(); - 6a2: 8b dd rcall .-1258 ; 0x1ba + 6c8: 78 dd rcall .-1296 ; 0x1ba if(addr == ALL || addr == MASTER) { - 6a4: 82 30 cpi r24, 0x02 ; 2 - 6a6: 08 f0 brcs .+2 ; 0x6aa - 6a8: 50 c0 rjmp .+160 ; 0x74a - 6aa: 01 c0 rjmp .+2 ; 0x6ae + 6ca: 82 30 cpi r24, 0x02 ; 2 + 6cc: 08 f0 brcs .+2 ; 0x6d0 + 6ce: 50 c0 rjmp .+160 ; 0x770 + 6d0: 01 c0 rjmp .+2 ; 0x6d4 while(rf12_hasdata()) { poll(); - 6ac: 24 df rcall .-440 ; 0x4f6 + 6d2: 12 df rcall .-476 ; 0x4f8 while(rf12_hasdata()) { poll(); } uint8_t addr = rf12_rxbyte(); if(addr == ALL || addr == MASTER) { while(rf12_hasdata()) { - 6ae: 80 dd rcall .-1280 ; 0x1b0 - 6b0: 88 23 and r24, r24 - 6b2: e1 f7 brne .-8 ; 0x6ac + 6d4: 6d dd rcall .-1318 ; 0x1b0 + 6d6: 88 23 and r24, r24 + 6d8: e1 f7 brne .-8 ; 0x6d2 poll(); } uint8_t from = rf12_rxbyte(); - 6b4: 82 dd rcall .-1276 ; 0x1ba + 6da: 6f dd rcall .-1314 ; 0x1ba if(from != MASTER) { - 6b6: 81 30 cpi r24, 0x01 ; 1 - 6b8: 09 f4 brne .+2 ; 0x6bc - 6ba: 47 c0 rjmp .+142 ; 0x74a + 6dc: 81 30 cpi r24, 0x01 ; 1 + 6de: 09 f4 brne .+2 ; 0x6e2 + 6e0: 47 c0 rjmp .+142 ; 0x770 from = (from/10)-1; - 6bc: 6a e0 ldi r22, 0x0A ; 10 - 6be: b9 d0 rcall .+370 ; 0x832 <__udivmodqi4> - 6c0: c8 2f mov r28, r24 - 6c2: c1 50 subi r28, 0x01 ; 1 + 6e2: 6a e0 ldi r22, 0x0A ; 10 + 6e4: b9 d0 rcall .+370 ; 0x858 <__udivmodqi4> + 6e6: c8 2f mov r28, r24 + 6e8: c1 50 subi r28, 0x01 ; 1 while(rf12_hasdata()) { - 6c4: 01 c0 rjmp .+2 ; 0x6c8 + 6ea: 01 c0 rjmp .+2 ; 0x6ee poll(); - 6c6: 17 df rcall .-466 ; 0x4f6 + 6ec: 05 df rcall .-502 ; 0x4f8 poll(); } uint8_t from = rf12_rxbyte(); if(from != MASTER) { from = (from/10)-1; while(rf12_hasdata()) { - 6c8: 73 dd rcall .-1306 ; 0x1b0 - 6ca: 88 23 and r24, r24 - 6cc: e1 f7 brne .-8 ; 0x6c6 + 6ee: 60 dd rcall .-1344 ; 0x1b0 + 6f0: 88 23 and r24, r24 + 6f2: e1 f7 brne .-8 ; 0x6ec poll(); } uint8_t data = rf12_rxbyte(); - 6ce: 75 dd rcall .-1302 ; 0x1ba + 6f4: 62 dd rcall .-1340 ; 0x1ba switch(data) { - 6d0: 83 30 cpi r24, 0x03 ; 3 - 6d2: b1 f0 breq .+44 ; 0x700 - 6d4: 84 30 cpi r24, 0x04 ; 4 - 6d6: 18 f4 brcc .+6 ; 0x6de - 6d8: 82 30 cpi r24, 0x02 ; 2 - 6da: b1 f5 brne .+108 ; 0x748 - 6dc: 05 c0 rjmp .+10 ; 0x6e8 - 6de: 86 30 cpi r24, 0x06 ; 6 - 6e0: d9 f0 breq .+54 ; 0x718 - 6e2: 88 30 cpi r24, 0x08 ; 8 - 6e4: 89 f5 brne .+98 ; 0x748 - 6e6: 24 c0 rjmp .+72 ; 0x730 + 6f6: 83 30 cpi r24, 0x03 ; 3 + 6f8: b1 f0 breq .+44 ; 0x726 + 6fa: 84 30 cpi r24, 0x04 ; 4 + 6fc: 18 f4 brcc .+6 ; 0x704 + 6fe: 82 30 cpi r24, 0x02 ; 2 + 700: b1 f5 brne .+108 ; 0x76e + 702: 05 c0 rjmp .+10 ; 0x70e + 704: 86 30 cpi r24, 0x06 ; 6 + 706: d9 f0 breq .+54 ; 0x73e + 708: 88 30 cpi r24, 0x08 ; 8 + 70a: 89 f5 brne .+98 ; 0x76e + 70c: 24 c0 rjmp .+72 ; 0x756 case SLEEP: { status_dev[from] = SLEEP; - 6e8: 8c 2f mov r24, r28 - 6ea: 90 e0 ldi r25, 0x00 ; 0 - 6ec: fc 01 movw r30, r24 - 6ee: e4 56 subi r30, 0x64 ; 100 - 6f0: ff 4f sbci r31, 0xFF ; 255 - 6f2: 22 e0 ldi r18, 0x02 ; 2 - 6f4: 20 83 st Z, r18 + 70e: 8c 2f mov r24, r28 + 710: 90 e0 ldi r25, 0x00 ; 0 + 712: fc 01 movw r30, r24 + 714: e4 56 subi r30, 0x64 ; 100 + 716: ff 4f sbci r31, 0xFF ; 255 + 718: 22 e0 ldi r18, 0x02 ; 2 + 71a: 20 83 st Z, r18 status_count[from] = 0; - 6f6: 8e 55 subi r24, 0x5E ; 94 - 6f8: 9f 4f sbci r25, 0xFF ; 255 - 6fa: fc 01 movw r30, r24 - 6fc: 10 82 st Z, r1 + 71c: 8e 55 subi r24, 0x5E ; 94 + 71e: 9f 4f sbci r25, 0xFF ; 255 + 720: fc 01 movw r30, r24 + 722: 10 82 st Z, r1 return; - 6fe: 25 c0 rjmp .+74 ; 0x74a + 724: 25 c0 rjmp .+74 ; 0x770 } case ACTIVE: { status_dev[from] = ACTIVE; - 700: 8c 2f mov r24, r28 - 702: 90 e0 ldi r25, 0x00 ; 0 - 704: fc 01 movw r30, r24 - 706: e4 56 subi r30, 0x64 ; 100 - 708: ff 4f sbci r31, 0xFF ; 255 - 70a: 23 e0 ldi r18, 0x03 ; 3 - 70c: 20 83 st Z, r18 + 726: 8c 2f mov r24, r28 + 728: 90 e0 ldi r25, 0x00 ; 0 + 72a: fc 01 movw r30, r24 + 72c: e4 56 subi r30, 0x64 ; 100 + 72e: ff 4f sbci r31, 0xFF ; 255 + 730: 23 e0 ldi r18, 0x03 ; 3 + 732: 20 83 st Z, r18 status_count[from] = 0; - 70e: 8e 55 subi r24, 0x5E ; 94 - 710: 9f 4f sbci r25, 0xFF ; 255 - 712: fc 01 movw r30, r24 - 714: 10 82 st Z, r1 + 734: 8e 55 subi r24, 0x5E ; 94 + 736: 9f 4f sbci r25, 0xFF ; 255 + 738: fc 01 movw r30, r24 + 73a: 10 82 st Z, r1 return; - 716: 19 c0 rjmp .+50 ; 0x74a + 73c: 19 c0 rjmp .+50 ; 0x770 } case RUN: { status_dev[from] = RUN; - 718: 8c 2f mov r24, r28 - 71a: 90 e0 ldi r25, 0x00 ; 0 - 71c: fc 01 movw r30, r24 - 71e: e4 56 subi r30, 0x64 ; 100 - 720: ff 4f sbci r31, 0xFF ; 255 - 722: 26 e0 ldi r18, 0x06 ; 6 - 724: 20 83 st Z, r18 + 73e: 8c 2f mov r24, r28 + 740: 90 e0 ldi r25, 0x00 ; 0 + 742: fc 01 movw r30, r24 + 744: e4 56 subi r30, 0x64 ; 100 + 746: ff 4f sbci r31, 0xFF ; 255 + 748: 26 e0 ldi r18, 0x06 ; 6 + 74a: 20 83 st Z, r18 status_count[from] = 0; - 726: 8e 55 subi r24, 0x5E ; 94 - 728: 9f 4f sbci r25, 0xFF ; 255 - 72a: fc 01 movw r30, r24 - 72c: 10 82 st Z, r1 + 74c: 8e 55 subi r24, 0x5E ; 94 + 74e: 9f 4f sbci r25, 0xFF ; 255 + 750: fc 01 movw r30, r24 + 752: 10 82 st Z, r1 return; - 72e: 0d c0 rjmp .+26 ; 0x74a + 754: 0d c0 rjmp .+26 ; 0x770 } case DEDECT: { status_dev[from] = DEDECT; - 730: 8c 2f mov r24, r28 - 732: 90 e0 ldi r25, 0x00 ; 0 - 734: fc 01 movw r30, r24 - 736: e4 56 subi r30, 0x64 ; 100 - 738: ff 4f sbci r31, 0xFF ; 255 - 73a: 28 e0 ldi r18, 0x08 ; 8 - 73c: 20 83 st Z, r18 + 756: 8c 2f mov r24, r28 + 758: 90 e0 ldi r25, 0x00 ; 0 + 75a: fc 01 movw r30, r24 + 75c: e4 56 subi r30, 0x64 ; 100 + 75e: ff 4f sbci r31, 0xFF ; 255 + 760: 28 e0 ldi r18, 0x08 ; 8 + 762: 20 83 st Z, r18 status_count[from] = 0; - 73e: 8e 55 subi r24, 0x5E ; 94 - 740: 9f 4f sbci r25, 0xFF ; 255 - 742: fc 01 movw r30, r24 - 744: 10 82 st Z, r1 + 764: 8e 55 subi r24, 0x5E ; 94 + 766: 9f 4f sbci r25, 0xFF ; 255 + 768: fc 01 movw r30, r24 + 76a: 10 82 st Z, r1 return; - 746: 01 c0 rjmp .+2 ; 0x74a + 76c: 01 c0 rjmp .+2 ; 0x770 } default: { rf12_endasyncrx(); - 748: 3c dd rcall .-1416 ; 0x1c2 + 76e: 29 dd rcall .-1454 ; 0x1c2 return; } } } } } - 74a: cf 91 pop r28 - 74c: 08 95 ret + 770: cf 91 pop r28 + 772: 08 95 ret -0000074e <__vector_9>: +00000774 <__vector_9>: // Timer 0 overflow interrupt service routine ISR(TIMER0_OVF_vect) { - 74e: 1f 92 push r1 - 750: 0f 92 push r0 - 752: 0f b6 in r0, 0x3f ; 63 - 754: 0f 92 push r0 - 756: 11 24 eor r1, r1 - 758: 2f 93 push r18 - 75a: 3f 93 push r19 - 75c: 4f 93 push r20 - 75e: 5f 93 push r21 - 760: 6f 93 push r22 - 762: 7f 93 push r23 - 764: 8f 93 push r24 - 766: 9f 93 push r25 - 768: af 93 push r26 - 76a: bf 93 push r27 - 76c: ef 93 push r30 - 76e: ff 93 push r31 + 774: 1f 92 push r1 + 776: 0f 92 push r0 + 778: 0f b6 in r0, 0x3f ; 63 + 77a: 0f 92 push r0 + 77c: 11 24 eor r1, r1 + 77e: 2f 93 push r18 + 780: 3f 93 push r19 + 782: 4f 93 push r20 + 784: 5f 93 push r21 + 786: 6f 93 push r22 + 788: 7f 93 push r23 + 78a: 8f 93 push r24 + 78c: 9f 93 push r25 + 78e: af 93 push r26 + 790: bf 93 push r27 + 792: ef 93 push r30 + 794: ff 93 push r31 led(); - 770: e2 dd rcall .-1084 ; 0x336 + 796: d0 dd rcall .-1120 ; 0x338 if(timer2s < 16) { - 772: 80 91 a7 00 lds r24, 0x00A7 - 776: 80 31 cpi r24, 0x10 ; 16 - 778: 30 f4 brcc .+12 ; 0x786 <__vector_9+0x38> + 798: 80 91 a7 00 lds r24, 0x00A7 + 79c: 80 31 cpi r24, 0x10 ; 16 + 79e: 30 f4 brcc .+12 ; 0x7ac <__vector_9+0x38> timer2s++; - 77a: 80 91 a7 00 lds r24, 0x00A7 - 77e: 8f 5f subi r24, 0xFF ; 255 - 780: 80 93 a7 00 sts 0x00A7, r24 + 7a0: 80 91 a7 00 lds r24, 0x00A7 + 7a4: 8f 5f subi r24, 0xFF ; 255 + 7a6: 80 93 a7 00 sts 0x00A7, r24 return; - 784: 23 c0 rjmp .+70 ; 0x7cc <__vector_9+0x7e> + 7aa: 23 c0 rjmp .+70 ; 0x7f2 <__vector_9+0x7e> } timer2s = 0; - 786: 10 92 a7 00 sts 0x00A7, r1 + 7ac: 10 92 a7 00 sts 0x00A7, r1 rf12_endasyncrx(); - 78a: 1b dd rcall .-1482 ; 0x1c2 + 7b0: 08 dd rcall .-1520 ; 0x1c2 rf12_txpacket(ALL, MASTER, PING); - 78c: 80 e0 ldi r24, 0x00 ; 0 - 78e: 61 e0 ldi r22, 0x01 ; 1 - 790: 41 e0 ldi r20, 0x01 ; 1 - 792: 7e dd rcall .-1284 ; 0x290 - 794: 80 e0 ldi r24, 0x00 ; 0 - 796: 90 e0 ldi r25, 0x00 ; 0 + 7b2: 80 e0 ldi r24, 0x00 ; 0 + 7b4: 61 e0 ldi r22, 0x01 ; 1 + 7b6: 41 e0 ldi r20, 0x01 ; 1 + 7b8: 6b dd rcall .-1322 ; 0x290 + 7ba: 80 e0 ldi r24, 0x00 ; 0 + 7bc: 90 e0 ldi r25, 0x00 ; 0 for(uint8_t i=0;i 10) { - 798: 22 ea ldi r18, 0xA2 ; 162 - 79a: 30 e0 ldi r19, 0x00 ; 0 + 7be: 22 ea ldi r18, 0xA2 ; 162 + 7c0: 30 e0 ldi r19, 0x00 ; 0 status_dev[i] = 0; - 79c: 4c e9 ldi r20, 0x9C ; 156 - 79e: 50 e0 ldi r21, 0x00 ; 0 + 7c2: 4c e9 ldi r20, 0x9C ; 156 + 7c4: 50 e0 ldi r21, 0x00 ; 0 } timer2s = 0; rf12_endasyncrx(); rf12_txpacket(ALL, MASTER, PING); for(uint8_t i=0;i 10) { - 7a0: f9 01 movw r30, r18 - 7a2: e8 0f add r30, r24 - 7a4: f9 1f adc r31, r25 - 7a6: 60 81 ld r22, Z - 7a8: 6b 30 cpi r22, 0x0B ; 11 - 7aa: 28 f0 brcs .+10 ; 0x7b6 <__vector_9+0x68> + 7c6: f9 01 movw r30, r18 + 7c8: e8 0f add r30, r24 + 7ca: f9 1f adc r31, r25 + 7cc: 60 81 ld r22, Z + 7ce: 6b 30 cpi r22, 0x0B ; 11 + 7d0: 28 f0 brcs .+10 ; 0x7dc <__vector_9+0x68> status_dev[i] = 0; - 7ac: fa 01 movw r30, r20 - 7ae: e8 0f add r30, r24 - 7b0: f9 1f adc r31, r25 - 7b2: 10 82 st Z, r1 - 7b4: 06 c0 rjmp .+12 ; 0x7c2 <__vector_9+0x74> + 7d2: fa 01 movw r30, r20 + 7d4: e8 0f add r30, r24 + 7d6: f9 1f adc r31, r25 + 7d8: 10 82 st Z, r1 + 7da: 06 c0 rjmp .+12 ; 0x7e8 <__vector_9+0x74> } else { status_count[i]++; - 7b6: f9 01 movw r30, r18 - 7b8: e8 0f add r30, r24 - 7ba: f9 1f adc r31, r25 - 7bc: 60 81 ld r22, Z - 7be: 6f 5f subi r22, 0xFF ; 255 - 7c0: 60 83 st Z, r22 - 7c2: 01 96 adiw r24, 0x01 ; 1 + 7dc: f9 01 movw r30, r18 + 7de: e8 0f add r30, r24 + 7e0: f9 1f adc r31, r25 + 7e2: 60 81 ld r22, Z + 7e4: 6f 5f subi r22, 0xFF ; 255 + 7e6: 60 83 st Z, r22 + 7e8: 01 96 adiw r24, 0x01 ; 1 return; } timer2s = 0; rf12_endasyncrx(); rf12_txpacket(ALL, MASTER, PING); for(uint8_t i=0;i + 7ea: 85 30 cpi r24, 0x05 ; 5 + 7ec: 91 05 cpc r25, r1 + 7ee: 59 f7 brne .-42 ; 0x7c6 <__vector_9+0x52> status_dev[i] = 0; } else { status_count[i]++; } } rf12_beginasyncrx(); - 7ca: e8 dc rcall .-1584 ; 0x19c + 7f0: d5 dc rcall .-1622 ; 0x19c } - 7cc: ff 91 pop r31 - 7ce: ef 91 pop r30 - 7d0: bf 91 pop r27 - 7d2: af 91 pop r26 - 7d4: 9f 91 pop r25 - 7d6: 8f 91 pop r24 - 7d8: 7f 91 pop r23 - 7da: 6f 91 pop r22 - 7dc: 5f 91 pop r21 - 7de: 4f 91 pop r20 - 7e0: 3f 91 pop r19 - 7e2: 2f 91 pop r18 - 7e4: 0f 90 pop r0 - 7e6: 0f be out 0x3f, r0 ; 63 - 7e8: 0f 90 pop r0 - 7ea: 1f 90 pop r1 - 7ec: 18 95 reti + 7f2: ff 91 pop r31 + 7f4: ef 91 pop r30 + 7f6: bf 91 pop r27 + 7f8: af 91 pop r26 + 7fa: 9f 91 pop r25 + 7fc: 8f 91 pop r24 + 7fe: 7f 91 pop r23 + 800: 6f 91 pop r22 + 802: 5f 91 pop r21 + 804: 4f 91 pop r20 + 806: 3f 91 pop r19 + 808: 2f 91 pop r18 + 80a: 0f 90 pop r0 + 80c: 0f be out 0x3f, r0 ; 63 + 80e: 0f 90 pop r0 + 810: 1f 90 pop r1 + 812: 18 95 reti -000007ee : +00000814 : void init_timer() { // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 7,813 kHz TCCR0=(1<: +00000820
: int main(void) { rf12_init(); // ein paar Register setzen (z.B. CLK auf 10MHz) - 7fa: 4a dc rcall .-1900 ; 0x90 + 820: 37 dc rcall .-1938 ; 0x90 //rf12_ready(); rf12_setfreq(RF12FREQ(433.92)); // Sende/Empfangsfrequenz auf 433,92MHz einstellen - 7fc: 80 e2 ldi r24, 0x20 ; 32 - 7fe: 96 e0 ldi r25, 0x06 ; 6 - 800: 87 dc rcall .-1778 ; 0x110 + 822: 80 e2 ldi r24, 0x20 ; 32 + 824: 96 e0 ldi r25, 0x06 ; 6 + 826: 74 dc rcall .-1816 ; 0x110 rf12_setbandwidth(1, 0, 7); // 400kHz Bandbreite, 0dB Verstärkung, DRSSI threshold: -61dBm - 802: 81 e0 ldi r24, 0x01 ; 1 - 804: 60 e0 ldi r22, 0x00 ; 0 - 806: 47 e0 ldi r20, 0x07 ; 7 - 808: 66 dc rcall .-1844 ; 0xd6 + 828: 81 e0 ldi r24, 0x01 ; 1 + 82a: 60 e0 ldi r22, 0x00 ; 0 + 82c: 47 e0 ldi r20, 0x07 ; 7 + 82e: 53 dc rcall .-1882 ; 0xd6 rf12_setbaud(9600); // 19200 baud - 80a: 80 e8 ldi r24, 0x80 ; 128 - 80c: 95 e2 ldi r25, 0x25 ; 37 - 80e: 8f dc rcall .-1762 ; 0x12e + 830: 80 e8 ldi r24, 0x80 ; 128 + 832: 95 e2 ldi r25, 0x25 ; 37 + 834: 7c dc rcall .-1800 ; 0x12e rf12_setpower(0, 6); // 1mW Ausgangsleistung, 120kHz Frequenzshift - 810: 80 e0 ldi r24, 0x00 ; 0 - 812: 66 e0 ldi r22, 0x06 ; 6 - 814: af dc rcall .-1698 ; 0x174 + 836: 80 e0 ldi r24, 0x00 ; 0 + 838: 66 e0 ldi r22, 0x06 ; 6 + 83a: 9c dc rcall .-1736 ; 0x174 init_ports(); - 816: 7a dd rcall .-1292 ; 0x30c + 83c: 67 dd rcall .-1330 ; 0x30c init_timer(); - 818: ea df rcall .-44 ; 0x7ee + 83e: ea df rcall .-44 ; 0x814 sei(); - 81a: 78 94 sei - 81c: 8f ef ldi r24, 0xFF ; 255 - 81e: 90 e7 ldi r25, 0x70 ; 112 - 820: a2 e0 ldi r26, 0x02 ; 2 - 822: 81 50 subi r24, 0x01 ; 1 - 824: 90 40 sbci r25, 0x00 ; 0 - 826: a0 40 sbci r26, 0x00 ; 0 - 828: e1 f7 brne .-8 ; 0x822 - 82a: 00 c0 rjmp .+0 ; 0x82c - 82c: 00 00 nop + 840: 78 94 sei + 842: 8f ef ldi r24, 0xFF ; 255 + 844: 90 e7 ldi r25, 0x70 ; 112 + 846: a2 e0 ldi r26, 0x02 ; 2 + 848: 81 50 subi r24, 0x01 ; 1 + 84a: 90 40 sbci r25, 0x00 ; 0 + 84c: a0 40 sbci r26, 0x00 ; 0 + 84e: e1 f7 brne .-8 ; 0x848 + 850: 00 c0 rjmp .+0 ; 0x852 + 852: 00 00 nop _delay_ms(100); while(1) { recive(); - 82e: 32 df rcall .-412 ; 0x694 - 830: fe cf rjmp .-4 ; 0x82e + 854: 32 df rcall .-412 ; 0x6ba + 856: fe cf rjmp .-4 ; 0x854 -00000832 <__udivmodqi4>: - 832: 99 1b sub r25, r25 - 834: 79 e0 ldi r23, 0x09 ; 9 - 836: 04 c0 rjmp .+8 ; 0x840 <__udivmodqi4_ep> +00000858 <__udivmodqi4>: + 858: 99 1b sub r25, r25 + 85a: 79 e0 ldi r23, 0x09 ; 9 + 85c: 04 c0 rjmp .+8 ; 0x866 <__udivmodqi4_ep> -00000838 <__udivmodqi4_loop>: - 838: 99 1f adc r25, r25 - 83a: 96 17 cp r25, r22 - 83c: 08 f0 brcs .+2 ; 0x840 <__udivmodqi4_ep> - 83e: 96 1b sub r25, r22 +0000085e <__udivmodqi4_loop>: + 85e: 99 1f adc r25, r25 + 860: 96 17 cp r25, r22 + 862: 08 f0 brcs .+2 ; 0x866 <__udivmodqi4_ep> + 864: 96 1b sub r25, r22 -00000840 <__udivmodqi4_ep>: - 840: 88 1f adc r24, r24 - 842: 7a 95 dec r23 - 844: c9 f7 brne .-14 ; 0x838 <__udivmodqi4_loop> - 846: 80 95 com r24 - 848: 08 95 ret +00000866 <__udivmodqi4_ep>: + 866: 88 1f adc r24, r24 + 868: 7a 95 dec r23 + 86a: c9 f7 brne .-14 ; 0x85e <__udivmodqi4_loop> + 86c: 80 95 com r24 + 86e: 08 95 ret -0000084a <__udivmodsi4>: - 84a: a1 e2 ldi r26, 0x21 ; 33 - 84c: 1a 2e mov r1, r26 - 84e: aa 1b sub r26, r26 - 850: bb 1b sub r27, r27 - 852: fd 01 movw r30, r26 - 854: 0d c0 rjmp .+26 ; 0x870 <__udivmodsi4_ep> +00000870 <__udivmodsi4>: + 870: a1 e2 ldi r26, 0x21 ; 33 + 872: 1a 2e mov r1, r26 + 874: aa 1b sub r26, r26 + 876: bb 1b sub r27, r27 + 878: fd 01 movw r30, r26 + 87a: 0d c0 rjmp .+26 ; 0x896 <__udivmodsi4_ep> -00000856 <__udivmodsi4_loop>: - 856: aa 1f adc r26, r26 - 858: bb 1f adc r27, r27 - 85a: ee 1f adc r30, r30 - 85c: ff 1f adc r31, r31 - 85e: a2 17 cp r26, r18 - 860: b3 07 cpc r27, r19 - 862: e4 07 cpc r30, r20 - 864: f5 07 cpc r31, r21 - 866: 20 f0 brcs .+8 ; 0x870 <__udivmodsi4_ep> - 868: a2 1b sub r26, r18 - 86a: b3 0b sbc r27, r19 - 86c: e4 0b sbc r30, r20 - 86e: f5 0b sbc r31, r21 +0000087c <__udivmodsi4_loop>: + 87c: aa 1f adc r26, r26 + 87e: bb 1f adc r27, r27 + 880: ee 1f adc r30, r30 + 882: ff 1f adc r31, r31 + 884: a2 17 cp r26, r18 + 886: b3 07 cpc r27, r19 + 888: e4 07 cpc r30, r20 + 88a: f5 07 cpc r31, r21 + 88c: 20 f0 brcs .+8 ; 0x896 <__udivmodsi4_ep> + 88e: a2 1b sub r26, r18 + 890: b3 0b sbc r27, r19 + 892: e4 0b sbc r30, r20 + 894: f5 0b sbc r31, r21 -00000870 <__udivmodsi4_ep>: - 870: 66 1f adc r22, r22 - 872: 77 1f adc r23, r23 - 874: 88 1f adc r24, r24 - 876: 99 1f adc r25, r25 - 878: 1a 94 dec r1 - 87a: 69 f7 brne .-38 ; 0x856 <__udivmodsi4_loop> - 87c: 60 95 com r22 - 87e: 70 95 com r23 - 880: 80 95 com r24 - 882: 90 95 com r25 - 884: 9b 01 movw r18, r22 - 886: ac 01 movw r20, r24 - 888: bd 01 movw r22, r26 - 88a: cf 01 movw r24, r30 - 88c: 08 95 ret +00000896 <__udivmodsi4_ep>: + 896: 66 1f adc r22, r22 + 898: 77 1f adc r23, r23 + 89a: 88 1f adc r24, r24 + 89c: 99 1f adc r25, r25 + 89e: 1a 94 dec r1 + 8a0: 69 f7 brne .-38 ; 0x87c <__udivmodsi4_loop> + 8a2: 60 95 com r22 + 8a4: 70 95 com r23 + 8a6: 80 95 com r24 + 8a8: 90 95 com r25 + 8aa: 9b 01 movw r18, r22 + 8ac: ac 01 movw r20, r24 + 8ae: bd 01 movw r22, r26 + 8b0: cf 01 movw r24, r30 + 8b2: 08 95 ret -0000088e <__divmodsi4>: - 88e: 97 fb bst r25, 7 - 890: 09 2e mov r0, r25 - 892: 05 26 eor r0, r21 - 894: 0e d0 rcall .+28 ; 0x8b2 <__divmodsi4_neg1> - 896: 57 fd sbrc r21, 7 - 898: 04 d0 rcall .+8 ; 0x8a2 <__divmodsi4_neg2> - 89a: d7 df rcall .-82 ; 0x84a <__udivmodsi4> - 89c: 0a d0 rcall .+20 ; 0x8b2 <__divmodsi4_neg1> - 89e: 00 1c adc r0, r0 - 8a0: 38 f4 brcc .+14 ; 0x8b0 <__divmodsi4_exit> +000008b4 <__divmodsi4>: + 8b4: 97 fb bst r25, 7 + 8b6: 09 2e mov r0, r25 + 8b8: 05 26 eor r0, r21 + 8ba: 0e d0 rcall .+28 ; 0x8d8 <__divmodsi4_neg1> + 8bc: 57 fd sbrc r21, 7 + 8be: 04 d0 rcall .+8 ; 0x8c8 <__divmodsi4_neg2> + 8c0: d7 df rcall .-82 ; 0x870 <__udivmodsi4> + 8c2: 0a d0 rcall .+20 ; 0x8d8 <__divmodsi4_neg1> + 8c4: 00 1c adc r0, r0 + 8c6: 38 f4 brcc .+14 ; 0x8d6 <__divmodsi4_exit> -000008a2 <__divmodsi4_neg2>: - 8a2: 50 95 com r21 - 8a4: 40 95 com r20 - 8a6: 30 95 com r19 - 8a8: 21 95 neg r18 - 8aa: 3f 4f sbci r19, 0xFF ; 255 - 8ac: 4f 4f sbci r20, 0xFF ; 255 - 8ae: 5f 4f sbci r21, 0xFF ; 255 +000008c8 <__divmodsi4_neg2>: + 8c8: 50 95 com r21 + 8ca: 40 95 com r20 + 8cc: 30 95 com r19 + 8ce: 21 95 neg r18 + 8d0: 3f 4f sbci r19, 0xFF ; 255 + 8d2: 4f 4f sbci r20, 0xFF ; 255 + 8d4: 5f 4f sbci r21, 0xFF ; 255 -000008b0 <__divmodsi4_exit>: - 8b0: 08 95 ret +000008d6 <__divmodsi4_exit>: + 8d6: 08 95 ret -000008b2 <__divmodsi4_neg1>: - 8b2: f6 f7 brtc .-4 ; 0x8b0 <__divmodsi4_exit> - 8b4: 90 95 com r25 - 8b6: 80 95 com r24 - 8b8: 70 95 com r23 - 8ba: 61 95 neg r22 - 8bc: 7f 4f sbci r23, 0xFF ; 255 - 8be: 8f 4f sbci r24, 0xFF ; 255 - 8c0: 9f 4f sbci r25, 0xFF ; 255 - 8c2: 08 95 ret +000008d8 <__divmodsi4_neg1>: + 8d8: f6 f7 brtc .-4 ; 0x8d6 <__divmodsi4_exit> + 8da: 90 95 com r25 + 8dc: 80 95 com r24 + 8de: 70 95 com r23 + 8e0: 61 95 neg r22 + 8e2: 7f 4f sbci r23, 0xFF ; 255 + 8e4: 8f 4f sbci r24, 0xFF ; 255 + 8e6: 9f 4f sbci r25, 0xFF ; 255 + 8e8: 08 95 ret -000008c4 <_exit>: - 8c4: f8 94 cli +000008ea <_exit>: + 8ea: f8 94 cli -000008c6 <__stop_program>: - 8c6: ff cf rjmp .-2 ; 0x8c6 <__stop_program> +000008ec <__stop_program>: + 8ec: ff cf rjmp .-2 ; 0x8ec <__stop_program> diff --git a/Sender/Sender/Debug/Sender.map b/Sender/Sender/Debug/Sender.map index 699f787..5c824fe 100644 --- a/Sender/Sender/Debug/Sender.map +++ b/Sender/Sender/Debug/Sender.map @@ -126,7 +126,7 @@ LOAD c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1 .rela.plt *(.rela.plt) -.text 0x00000000 0x8c8 +.text 0x00000000 0x8ee *(.vectors) .vectors 0x00000000 0x26 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr4/crtm8a.o 0x00000000 __vector_default @@ -215,36 +215,36 @@ LOAD c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1 0x000001ca rf12_txdata 0x0000023c rf12_rxdata 0x00000290 rf12_txpacket - .text 0x0000030c 0x526 Sender.o + .text 0x0000030c 0x54c Sender.o 0x0000030c init_ports - 0x00000336 led - 0x000004f6 poll - 0x00000694 recive - 0x0000074e __vector_9 - 0x000007ee init_timer - 0x000007fa main - .text 0x00000832 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_udivmodqi4.o) - .text 0x00000832 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_udivmodsi4.o) - .text 0x00000832 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_divmodsi4.o) - .text 0x00000832 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_exit.o) - .text 0x00000832 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_copy_data.o) - .text 0x00000832 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_clear_bss.o) - 0x00000832 . = ALIGN (0x2) + 0x00000338 led + 0x000004f8 poll + 0x000006ba recive + 0x00000774 __vector_9 + 0x00000814 init_timer + 0x00000820 main + .text 0x00000858 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_udivmodqi4.o) + .text 0x00000858 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_udivmodsi4.o) + .text 0x00000858 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_divmodsi4.o) + .text 0x00000858 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_exit.o) + .text 0x00000858 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_copy_data.o) + .text 0x00000858 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_clear_bss.o) + 0x00000858 . = ALIGN (0x2) *(.text.*) - .text.libgcc 0x00000832 0x18 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_udivmodqi4.o) - 0x00000832 __udivmodqi4 - .text.libgcc 0x0000084a 0x44 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_udivmodsi4.o) - 0x0000084a __udivmodsi4 - .text.libgcc 0x0000088e 0x36 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_divmodsi4.o) - 0x0000088e __divmodsi4 - .text.libgcc 0x000008c4 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_exit.o) - .text.libgcc 0x000008c4 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_copy_data.o) - .text.libgcc 0x000008c4 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_clear_bss.o) - 0x000008c4 . = ALIGN (0x2) + .text.libgcc 0x00000858 0x18 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_udivmodqi4.o) + 0x00000858 __udivmodqi4 + .text.libgcc 0x00000870 0x44 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_udivmodsi4.o) + 0x00000870 __udivmodsi4 + .text.libgcc 0x000008b4 0x36 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_divmodsi4.o) + 0x000008b4 __divmodsi4 + .text.libgcc 0x000008ea 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_exit.o) + .text.libgcc 0x000008ea 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_copy_data.o) + .text.libgcc 0x000008ea 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_clear_bss.o) + 0x000008ea . = ALIGN (0x2) *(.fini9) - .fini9 0x000008c4 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_exit.o) - 0x000008c4 _exit - 0x000008c4 exit + .fini9 0x000008ea 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_exit.o) + 0x000008ea _exit + 0x000008ea exit *(.fini9) *(.fini8) *(.fini8) @@ -263,11 +263,11 @@ LOAD c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1 *(.fini1) *(.fini1) *(.fini0) - .fini0 0x000008c4 0x4 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_exit.o) + .fini0 0x000008ea 0x4 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_exit.o) *(.fini0) - 0x000008c8 _etext = . + 0x000008ee _etext = . -.data 0x00800060 0x42 load address 0x000008c8 +.data 0x00800060 0x42 load address 0x000008ee 0x00800060 PROVIDE (__data_start, .) *(.data) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/../../../../avr/lib/avr4/crtm8a.o @@ -313,8 +313,8 @@ LOAD c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1 *(.bss*) *(COMMON) 0x008000aa PROVIDE (__bss_end, .) - 0x000008c8 __data_load_start = LOADADDR (.data) - 0x0000090a __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x000008ee __data_load_start = LOADADDR (.data) + 0x00000930 __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x008000aa 0x0 0x008000aa PROVIDE (__noinit_start, .) @@ -419,21 +419,21 @@ LOAD c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1 .debug_abbrev 0x000003e4 0x14 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_copy_data.o) .debug_abbrev 0x000003f8 0x14 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_clear_bss.o) -.debug_line 0x00000000 0x87c +.debug_line 0x00000000 0x87b *(.debug_line) .debug_line 0x00000000 0x222 rf12.o - .debug_line 0x00000222 0x2d8 Sender.o - .debug_line 0x000004fa 0x92 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_udivmodqi4.o) - .debug_line 0x0000058c 0xa8 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_udivmodsi4.o) - .debug_line 0x00000634 0xa1 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_divmodsi4.o) - .debug_line 0x000006d5 0x88 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_exit.o) - .debug_line 0x0000075d 0x91 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_copy_data.o) - .debug_line 0x000007ee 0x8e c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_clear_bss.o) + .debug_line 0x00000222 0x2d7 Sender.o + .debug_line 0x000004f9 0x92 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_udivmodqi4.o) + .debug_line 0x0000058b 0xa8 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_udivmodsi4.o) + .debug_line 0x00000633 0xa1 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_divmodsi4.o) + .debug_line 0x000006d4 0x88 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_exit.o) + .debug_line 0x0000075c 0x91 c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_copy_data.o) + .debug_line 0x000007ed 0x8e c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr4\libgcc.a(_clear_bss.o) -.debug_frame 0x00000000 0x284 +.debug_frame 0x00000000 0x288 *(.debug_frame) .debug_frame 0x00000000 0x12c rf12.o - .debug_frame 0x0000012c 0x158 Sender.o + .debug_frame 0x0000012c 0x15c Sender.o .debug_str 0x00000000 0x2df *(.debug_str) @@ -442,10 +442,10 @@ LOAD c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1 .debug_str 0x00000206 0xd9 Sender.o 0x221 (size before relaxing) -.debug_loc 0x00000000 0xa65 +.debug_loc 0x00000000 0xa8d *(.debug_loc) .debug_loc 0x00000000 0x342 rf12.o - .debug_loc 0x00000342 0x723 Sender.o + .debug_loc 0x00000342 0x74b Sender.o .debug_macinfo *(.debug_macinfo) diff --git a/Sender/Sender/Debug/Sender.srec b/Sender/Sender/Debug/Sender.srec index 2e14285..197ca9a 100644 --- a/Sender/Sender/Debug/Sender.srec +++ b/Sender/Sender/Debug/Sender.srec @@ -1,14 +1,14 @@ S00E000053656E6465722E73726563B5 S113000012C02CC02BC02AC029C028C027C026C0BB -S113001025C09DC323C022C021C020C01FC01EC054 +S113001025C0B0C323C022C021C020C01FC01EC041 S11300201DC01CC01BC011241FBECFE5D4E0DEBF21 -S1130030CDBF10E0A0E6B0E0E8ECF8E002C0059027 +S1130030CDBF10E0A0E6B0E0EEEEF8E002C005901F S11300400D92A23AB107D9F710E0A2EAB0E001C0DC -S11300501D92AA3AB107E1F7D0D334C4D1CFAC98FA -S113006040E120E030E0992314F4AA9A01C0AA9850 -S1130070220F331F99992160AB9A880F991F00C0F2 -S11300800000AB98415079F7AC9A822F932F0895D2 -S113009084B38C6184BBAC9A8FEF90E7A2E081506B +S11300501D92AA3AB107E1F7E3D347C4D1CFC298BE +S113006040E120E030E0992314F4C39A01C0C3981E +S1130070220F331FB4992160C59A880F991F00C0BD +S11300800000C598415079F7C29A822F932F0895A2 +S113009087B38C6287BBC29A8FEF90E7A2E081504E S11300A09040A040E1F700C0000080EE90ECD7DF64 S11300B087ED90E8D4DF8BEA92ECD1DF81E89AEC0B S11300C0CEDF80E090EECBDF80E098ECC8DF87EFF6 @@ -19,14 +19,14 @@ S1130100660F771F660F771F862B972BA8DF08953E S11301108036910538F02FE08034920728F08FE381 S11301209FE002C080E690E0906A99DF089522E0A3 S113013087399207F0F025E18831920770F49C0129 -S113014040E050E060E678EA80E090E0A0D3C901A6 +S113014040E050E060E678EA80E090E0B3D3C90193 S113015001978068966C83DF08959C0140E050E02D -S11301606CEF72E485E090E070D3C9010197966C5E +S11301606CEF72E485E090E083D3C9010197966C4B S113017076DF089590E087709070986970E06295DA S11301807295707F7627607F76277070862B972B09 -S113019066DF0895AC98999BFECF089588EC92E8A9 +S113019066DF0895C298B49BFECF089588EC92E878 S11301A05EDF81E89AEC5BDF83E89AEC58DF089520 -S11301B0AC9881E0999980E0089580E090EB4FDF5E +S11301B0C29881E0B49980E0089580E090EB4FDF2D S11301C0089588E092E84BDF08950F931F93CF932F S11301D0DF938C01C62F88E392E841DFDBDF8AEAF4 S11301E098EB3DDFD7DF8AEA98EB39DFD3DF8AEA81 @@ -47,102 +47,104 @@ S11302C0CEDE68DF84ED98EBCADE64DF812F90E038 S11302D0986BC5DE5FDF8D2F90E0986BC0DE5ADF30 S11302E08C2F90E0986BBBDE55DF80E098EBB7DE97 S11302F051DF88E092E8B3DE8FEC97E00197F1F7E5 -S113030000C00000DF91CF911F91089587B38560ED -S113031087BB81B3806C81BBB99A81B3806381BB95 -S1130320C19A82B3806382BB81B3847F81BB82B371 -S11303308B6082BB0895CF92DF92EF92FF920F936E -S11303401F93CF93DF93A2E9B0E0C8E8D0E0AD01FA -S11303504F5F5F4FBE016F5F7F4F20E00CE910E0FD -S1130360EE24FF24E394822F869590E0F801E80FB1 -S1130370F91F30813230F1F4EC91F0E03081C701A3 -S1130380088002C0880F991F0A94E2F7832B8083A8 -S1130390FA01C080DD24F6013081C701FB01008031 -S11303A002C0880F991F0A94E2F780958323F6010F -S11303B080838EC0F801E80FF91F30813330F1F4E7 -S11303C0FA01C080DD24F6013081C701FB01008001 -S11303D002C0880F991F0A94E2F7832BF6018083E9 -S11303E0EC91F0E03081C701088002C0880F991FAA -S11303F00A94E2F78095832380836AC0F801E80FAA -S1130400F91F30813630E9F4EC91F0E03081C70116 -S1130410088002C0880F991F0A94E2F7832B808317 -S1130420FA01C080DD24F6013081C701FB010080A0 -S113043002C0880F991F0A94E2F7832BF601808388 -S113044047C0F801E80FF91F30813323F9F4EC9128 -S1130450F0E03081C701088002C0880F991F0A9418 -S1130460E2F7809583238083FA01C080DD24F601BE -S11304703081C701FB01008002C0880F991F0A94D4 -S1130480E2F780958323F601808322C0F801E80F08 -S1130490F91F80818830E1F4EC91F0E03081C701EC -S11304A0088002C0880F991F0A94E2F7832780838B -S11304B0FA01C080DD24F6013081C701FB01008010 -S11304C002C0880F991F0A94E2F78327F6018083FC -S11304D02E5F129622964E5F5F4F6E5F7F4F2A30DB -S11304E009F041CFDF91CF911F910F91FF90EF90D1 -S11304F0DF90CF9008952F923F924F925F926F9228 -S11305007F928F929F92AF92BF92CF92DF92EF929F -S1130510FF920F931F93CF93DF934FE750E065E76C -S113052070E0CBE6D0E001E610E020E022243324A2 -S1130530EE24FF24E3946A015601F6013197A08169 -S1130540B0E03B018C91FB013197A701008002C010 -S1130550440F551F0A94E2F7942F909589238C93A6 -S113056000004E01FE013197E081F0E02801308166 -S1130570F8013197C701008002C0880F991F0A94BF -S1130580E2F78323B1F4822F8695ECE9F0E0E80FDB -S1130590F11D9081923029F40F2EF5E02F2EF02DCD -S11305A003C02224689422F80F2EFAE03F2EF02D87 -S11305B0380E8C91842B8C930000F501A081B0E05F -S11305C08C91A701F301008002C0440F551F0A94C7 -S11305D0E2F7942F909589238C930000F401808195 -S11305E0E82FF0E03081C701F201008002C0880FDB -S11305F0991F0A94E2F7832359F4822F86950F2ECC -S1130600FAE03F2EF02D380E0F2EF7E02F2EF02DAE -S11306108C91482B4C9300002E5F82E090E0C80E32 -S1130620D91E6E5F7F4F22960E5F1F4F2A3009F04E -S113063083CF3320E1F02220D1F0F894A59AAD9A2B -S1130640C0DDAFE3BCE91197F1F700C00000832DD2 -S113065061E0422D1DDEAD988FE798E3A1E0815063 -S11306609040A040E1F700C0000098DD7894DF914D -S1130670CF911F910F91FF90EF90DF90CF90BF909B -S1130680AF909F908F907F906F905F904F903F902E -S11306902F900895CF9382DD01C02DDF89DD88235B -S11306A0E1F78BDD823008F050C001C024DF80DD2B -S11306B08823E1F782DD813009F447C06AE0B9D0CC -S11306C0C82FC15001C017DF73DD8823E1F775DD42 -S11306D08330B1F0843018F48230B1F505C086302F -S11306E0D9F0883089F524C08C2F90E0FC01E456C1 -S11306F0FF4F22E020838E559F4FFC01108225C0BE -S11307008C2F90E0FC01E456FF4F23E020838E55AC -S11307109F4FFC01108219C08C2F90E0FC01E4561D -S1130720FF4F26E020838E559F4FFC0110820DC0A1 -S11307308C2F90E0FC01E456FF4F28E020838E5577 -S11307409F4FFC01108201C03CDDCF9108951F92A0 -S11307500F920FB60F9211242F933F934F935F93F1 -S11307606F937F938F939F93AF93BF93EF93FF9375 -S1130770E2DD8091A700803130F48091A7008F5F83 -S11307808093A70023C01092A7001BDD80E061E0E6 -S113079041E07EDD80E090E022EA30E04CE950E088 -S11307A0F901E80FF91F60816B3028F0FA01E80FB6 -S11307B0F91F108206C0F901E80FF91F60816F5F0D -S11307C0608301968530910559F7E8DCFF91EF913C -S11307D0BF91AF919F918F917F916F915F914F9155 -S11307E03F912F910F900FBE0F901F90189585E0A9 -S11307F083BF12BE81E089BF08954ADC80E296E09F -S113080087DC81E060E047E066DC80E895E28FDC2D -S113081080E066E0AFDC7ADDEADF78948FEF90E782 -S1130820A2E081509040A040E1F700C0000032DF18 -S1130830FECF991B79E004C0991F961708F0961B08 -S1130840881F7A95C9F780950895A1E21A2EAA1BEC -S1130850BB1BFD010DC0AA1FBB1FEE1FFF1FA2176C -S1130860B307E407F50720F0A21BB30BE40BF50B69 -S1130870661F771F881F991F1A9469F760957095F2 -S1130880809590959B01AC01BD01CF01089597FB24 -S1130890092E05260ED057FD04D0D7DF0AD0001C40 -S11308A038F450954095309521953F4F4F4F5F4F09 -S11308B00895F6F790958095709561957F4F8F4FC9 -S10B08C09F4F0895F894FFCF47 -S11308C800010303030303030303303030303030E3 -S11308D830303030010105040504050405043838B6 -S11308E83232323232323232020006070607060743 -S11308F806073838323232323232323200020000DD -S10509080000E9 +S113030000C00000DF91CF911F91089587B3836CE3 +S113031087BB84B3836084BB81B3806F81BB84B3A8 +S11303208C6184BB85B38C6185BB81B3807F81BBC9 +S113033082B38F6082BB0895CF92DF92EF92FF92D7 +S11303400F931F93CF93DF93A3E9B0E0AD01415026 +S11303505040C9E8D0E0BE016150704020E00CE993 +S113036010E0EE24FF24E394822F869590E0F801B8 +S1130370E80FF91F30813230F1F4EC91F0E0308174 +S1130380C701088002C0880F991F0A94E2F7832BE3 +S11303908083FA01C080DD24F6013081C701FB01AE +S11303A0008002C0880F991F0A94E2F78095832386 +S11303B0F60180838EC0F801E80FF91F30813330D5 +S11303C0F1F4FA01C080DD24F6013081C701FB019C +S11303D0008002C0880F991F0A94E2F7832BF6016C +S11303E08083EC91F0E03081C701088002C0880F5F +S11303F0991F0A94E2F78095832380836AC0F801E9 +S1130400E80FF91F30813630E9F4FA01C080DD24A9 +S1130410F6013081C701FB01008002C0880F991FDB +S11304200A94E2F7832BF6018083EC91F0E03081AB +S1130430C701088002C0880F991F0A94E2F7832B32 +S1130440808347C0F801E80FF91F30813323F9F4A2 +S1130450FA01C080DD24F6013081C701FB01008070 +S113046002C0880F991F0A94E2F780958323F6014E +S11304708083EC91F0E03081C701088002C0880FCE +S1130480991F0A94E2F780958323808322C0F801A0 +S1130490E80FF91F80818830E1F4FA01C080DD247F +S11304A0F6013081C701FB01008002C0880F991F4B +S11304B00A94E2F78327F6018083EC91F0E030811F +S11304C0C701088002C0880F991F0A94E2F78327A6 +S11304D080832E5F12964E5F5F4F22966E5F7F4F32 +S11304E02A3009F041CFDF91CF911F910F91FF90F6 +S11304F0EF90DF90CF9008952F923F924F925F92AA +S11305006F927F928F929F92AF92BF92CF92DF921F +S1130510EF92FF920F931F93CF93DF9300D000D0FD +S1130520CDB7DEB74FE750E065E770E08BE690E0CB +S113053001E610E020E01A821982EE24FF24E394FD +S11305406A019C838B834601F6013197A081B0E058 +S11305503B018C91FB0131975701008002C0AA0C2A +S1130560BB1C0A94E2F79A2D909589238C93000082 +S11305704B805C80F2013197E081F0E0180130811A +S1130580F8013197C701008002C0880F991F0A94AF +S1130590E2F78323C1F4822F8695482F50E0ECE9DB +S11305A0F0E0E40FF51F8081823019F485E08A833E +S11305B002C094E09A83842F8F5F880F982F990F3D +S11305C0990F890F89838C918A298C930000F401F7 +S11305D0A081B0E08C91A701F301008002C0440F18 +S11305E0551F0A94E2F7942F909589238C93000069 +S11305F0F2018081E82FF0E03081C701F101008031 +S113060002C0880F991F0A94E2F7832351F4822FC2 +S11306108E7F8E5F982F990F990F890F8983F7E04A +S1130620FA838C91482B4C9300002E5F82E090E07B +S1130630C80ED91E6E5F7F4FAB81BC811296BC83FE +S1130640AB830E5F1F4F2A3009F07DCFB981BB23E6 +S1130650E9F0EA81EE23D1F0F894A59AAD9AB1DDE0 +S11306608FE39CE90197F1F700C00000898161E004 +S11306704A810EDEAD988FE798E3A1E08150904067 +S1130680A040E1F700C0000089DD78940F900F903E +S11306900F900F90DF91CF911F910F91FF90EF90EA +S11306A0DF90CF90BF90AF909F908F907F906F908E +S11306B05F904F903F902F900895CF936FDD01C0CE +S11306C01BDF76DD8823E1F778DD823008F050C047 +S11306D001C012DF6DDD8823E1F76FDD813009F49D +S11306E047C06AE0B9D0C82FC15001C005DF60DD42 +S11306F08823E1F762DD8330B1F0843018F482306E +S1130700B1F505C08630D9F0883089F524C08C2F26 +S113071090E0FC01E456FF4F22E020838E559F4F6A +S1130720FC01108225C08C2F90E0FC01E456FF4FA1 +S113073023E020838E559F4FFC01108219C08C2F1B +S113074090E0FC01E456FF4F26E020838E559F4F36 +S1130750FC0110820DC08C2F90E0FC01E456FF4F89 +S113076028E020838E559F4FFC01108201C029DDB3 +S1130770CF9108951F920F920FB60F9211242F93C9 +S11307803F934F935F936F937F938F939F93AF9315 +S1130790BF93EF93FF93D0DD8091A700803130F4B5 +S11307A08091A7008F5F8093A70023C01092A700B9 +S11307B008DD80E061E041E06BDD80E090E022EA6A +S11307C030E04CE950E0F901E80FF91F60816B302B +S11307D028F0FA01E80FF91F108206C0F901E80FAA +S11307E0F91F60816F5F608301968530910559F729 +S11307F0D5DCFF91EF91BF91AF919F918F917F9144 +S11308006F915F914F913F912F910F900FBE0F9079 +S11308101F90189585E083BF12BE81E089BF0895BB +S113082037DC80E296E074DC81E060E047E053DC92 +S113083080E895E27CDC80E066E09CDC67DDEADF52 +S113084078948FEF90E7A2E081509040A040E1F7C8 +S113085000C0000032DFFECF991B79E004C0991F6D +S1130860961708F0961B881F7A95C9F78095089506 +S1130870A1E21A2EAA1BBB1BFD010DC0AA1FBB1FA0 +S1130880EE1FFF1FA217B307E407F50720F0A21B12 +S1130890B30BE40BF50B661F771F881F991F1A947F +S11308A069F760957095809590959B01AC01BD01A9 +S11308B0CF01089597FB092E05260ED057FD04D0CD +S11308C0D7DF0AD0001C38F4509540953095219517 +S11308D03F4F4F4F5F4F0895F6F790958095709571 +S11108E061957F4F8F4F9F4F0895F894FFCF7F +S11308EE03020202010100010000303030303030CA +S11308FE303030300203020402030204040335359F +S113090E3535353535353535010400060705060709 +S113091E00013532353838323232383800020000B0 +S105092E0000C3 S9030000FC diff --git a/Sender/Sender/Sender.c b/Sender/Sender/Sender.c index 2de4908..dee7763 100644 --- a/Sender/Sender/Sender.c +++ b/Sender/Sender/Sender.c @@ -22,14 +22,14 @@ volatile uint8_t status_dev[] = {0,SLEEP,0,0,0}; volatile uint8_t status_count[] = {0,0,0,0,0}; /* RED,GREEN */ -const uint8_t led_port[] = {&PORTB, &PORTB, &PORTD, &PORTD, &PORTD, &PORTD, &PORTD, &PORTD, &PORTD, &PORTD}; -const uint8_t led_pin[] = {PINB2, PINB0, PIND6, PIND7, PIND6, PIND7, PIND6, PIND7, PIND6, PIND7}; - -const uint8_t in_collumn_port[] = {&PORTB, &PORTB, &PORTD, &PORTD, &PORTD, &PORTD, &PORTD, &PORTD, &PORTD, &PORTD}; -const uint8_t in_collumn_pin[] = {PINB1, PINB1, PIND5, PIND4, PIND5, PIND4, PIND5, PIND4, PIND5, PIND4}; - +const uint8_t led_port[] = {&PORTC, &PORTD, &PORTC, &PORTB, &PORTB, &PORTD, &PORTD, &PORTD, &PORTB, &PORTB}; +const uint8_t led_pin[] = {PINC1, PIND4, PINC0, PINB6, PINB7, PIND5, PIND6, PIND7, PINB0, PINB1}; +/* MODE, RUN */ +const uint8_t in_collumn_port[] = {&PORTC, &PORTC, &PORTC, &PORTC, &PORTC, &PORTC, &PORTC, &PORTC, &PORTC, &PORTC}; +const uint8_t in_collumn_pin[] = {PINC2, PINC3, PINC2, PINC4, PINC2, PINC3, PINC2, PINC4, PINC4, PINC3}; +/* MODE, RUN */ const uint8_t in_row_port[] = {&PIND, &PIND, &PIND, &PIND, &PIND, &PIND, &PIND, &PIND, &PIND, &PIND}; -const uint8_t in_row_pin[] = {PIND0, PIND1, PIND3, PIND3, PIND3, PIND3, PIND3, PIND3, PIND3, PIND3}; +const uint8_t in_row_pin[] = {PIND3, PIND2, PIND2, PIND2, PIND1, PIND1, PIND0, PIND1, PIND0, PIND0}; static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) __attribute__((always_inline)); static inline void BIT_CLEAR(volatile uint8_t *target, uint8_t bit) __attribute__((always_inline)); @@ -38,22 +38,21 @@ static inline void BIT_TOG(volatile uint8_t *target, uint8_t bit) __attribute__( void init_ports() { //LED auf Ausgang - DDRB |= ((1<