diff --git a/BackupFiles/Fernsteuerung.BK1 b/BackupFiles/Fernsteuerung.BK1 index 3abed72..dc29111 100644 Binary files a/BackupFiles/Fernsteuerung.BK1 and b/BackupFiles/Fernsteuerung.BK1 differ diff --git a/BackupFiles/Fernsteuerung.BK2 b/BackupFiles/Fernsteuerung.BK2 index 1f4dd34..e63acf0 100644 Binary files a/BackupFiles/Fernsteuerung.BK2 and b/BackupFiles/Fernsteuerung.BK2 differ diff --git a/BackupFiles/Fernsteuerung.BK3 b/BackupFiles/Fernsteuerung.BK3 index 6a84394..2894e5f 100644 Binary files a/BackupFiles/Fernsteuerung.BK3 and b/BackupFiles/Fernsteuerung.BK3 differ diff --git a/BackupFiles/Fernsteuerung.BK4 b/BackupFiles/Fernsteuerung.BK4 index 19f977a..3abed72 100644 Binary files a/BackupFiles/Fernsteuerung.BK4 and b/BackupFiles/Fernsteuerung.BK4 differ diff --git a/BackupFiles/Fernsteuerung.BK5 b/BackupFiles/Fernsteuerung.BK5 index ab4b1b1..1f4dd34 100644 Binary files a/BackupFiles/Fernsteuerung.BK5 and b/BackupFiles/Fernsteuerung.BK5 differ diff --git a/BackupFiles/Fernsteuerung.T3000A b/BackupFiles/Fernsteuerung.T3000A index 8f4ecdd..89266b3 100644 Binary files a/BackupFiles/Fernsteuerung.T3000A and b/BackupFiles/Fernsteuerung.T3000A differ diff --git a/BackupFiles/Fernsteuerung.T3000B b/BackupFiles/Fernsteuerung.T3000B index ddbe64f..69fa48c 100644 Binary files a/BackupFiles/Fernsteuerung.T3000B and b/BackupFiles/Fernsteuerung.T3000B differ diff --git a/BackupFiles/Fernsteuerung.T3000C b/BackupFiles/Fernsteuerung.T3000C index 8f9a432..9281670 100644 Binary files a/BackupFiles/Fernsteuerung.T3000C and b/BackupFiles/Fernsteuerung.T3000C differ diff --git a/Fernsteuerung.T3000 b/Fernsteuerung.T3000 index 2894e5f..16f9c02 100644 Binary files a/Fernsteuerung.T3000 and b/Fernsteuerung.T3000 differ diff --git a/Reciver/Reciver/Debug/Reciver.elf b/Reciver/Reciver/Debug/Reciver.elf index dc4f024..aaf79ab 100644 Binary files a/Reciver/Reciver/Debug/Reciver.elf and b/Reciver/Reciver/Debug/Reciver.elf differ diff --git a/Reciver/Reciver/Debug/Reciver.hex b/Reciver/Reciver/Debug/Reciver.hex index 1562e77..6500740 100644 --- a/Reciver/Reciver/Debug/Reciver.hex +++ b/Reciver/Reciver/Debug/Reciver.hex @@ -1,113 +1,116 @@ :100000000C942A000C9447000C9447000C94470071 :100010000C9447000C9447000C9447000C94470044 -:100020000C9447000C94F6000C9447000C94470085 +:100020000C9447000C941C010C9447000C9447005E :100030000C9447000C9447000C9447000C94470024 :100040000C9447000C9447000C9447000C94470014 :100050000C94470011241FBECFE5D4E0DEBFCDBF16 -:1000600010E0A0E6B0E0E2EEF6E002C005900D92EE +:1000600010E0A0E6B0E0E6E1F7E002C005900D92F6 :10007000A436B107D9F710E0A4E6B0E001C01D92A4 -:10008000A636B107E1F70E9482010C946F030C942D -:10009000000080916200909163008630910599F193 -:1000A00086E090E0909363008093620088E790E0A0 -:1000B00090936100809360008FEF96E1A1E1815001 -:1000C0009040A040E1F700C000008CE390E09093E6 -:1000D0006100809360008FEF96E1A1E18150904034 -:1000E000A040E1F700C0000084EB90E09093610035 +:10008000A636B107E1F70E949B010C9489030C94FA +:10009000000080916200909163008630910509F420 +:1000A00041C086E090E0909363008093620088E70F +:1000B00090E090936100809360008FE39CE901974A +:1000C000F1F700C00000409162005091630081E0B0 +:1000D0006AE00E94F6028FEF96E1A1E18150904024 +:1000E000A040E1F700C000008CE390E09093610035 :1000F000809360008FEF96E1A1E181509040A04095 -:10010000E1F700C000000895899880916200909105 -:1001100063008330910541F4819B06C00E945F0219 -:100120000E9449000E9448020895CF930E9448020D -:1001300002C00E9484000E9455028823D1F70E94C9 -:100140005A02882341F08A3031F0803F09F044C0E0 -:1001500002C00E9484000E9455028823D1F70E94A9 -:100160005A02C82F02C00E9484000E9455028823B0 -:10017000D1F7C13089F50E945A02843051F08530A0 -:1001800018F48130B1F418C0853051F0873089F40B -:100190000EC082E090E090936300809362000CC0F8 -:1001A00083E090E0909363008093620005C00E941A -:1001B00049000E945F0210C00E945F028FE39CE929 -:1001C0000197F1F700C00000409162005091630078 -:1001D00081E06AE00E94DC02CF91089585E083BF50 -:1001E00088E582BF1CBE81E089BF08951F920F92EF -:1001F0000FB60F9211242F933F938F939F9388E50F -:1002000082BF80916200909163008230910561F419 -:10021000209164003091650081E090E02333310546 -:100220004CF580E090E026C08091620090916300E0 -:100230008330910561F4209164003091650081E084 -:1002400090E026303105B4F480E090E013C0809156 -:100250006200909163008630910509F049C02091B9 -:1002600064003091650081E090E02230310514F4A3 -:1002700080E090E020916400309165002F5F3F4F57 -:1002800030936500209364008130910551F4B89A51 -:10029000B09B02C0C09801C0C09A10926500109235 -:1002A0006400B99AC19A8FEA94E00197F1F700C00F -:1002B000000080916000909161001816190674F496 -:1002C00080E090E025E12A95F1F700000196209169 -:1002D00060003091610082179307A4F3C1989F9149 -:1002E0008F913F912F910F900FBE0F901F901895F7 -:1002F00080916400909165000196909365008093D1 -:100300006400CFCF0E94B40180E296E00E94FC011D -:1003100081E060E047E00E94DE0180E895E20E9413 -:100320000C0280E066E00E9433020E94EE007894A6 -:100330000E949500FDCF949840E120E030E09923A1 -:1003400014F4969A01C09698220F331F8399216066 -:10035000959A880F991F00C000009598415079F731 -:10036000949A822F932F089581B3806781BB949ACA -:100370008FEF90E7A2E081509040A040E1F700C0ED -:10038000000080EE90EC0E949B0187ED90E80E94B7 -:100390009B018BEA92EC0E949B0181E89AEC0E94FF -:1003A0009B0180E090EE0E949B0180E098EC0E940F -:1003B0009B0187EF94EC0E949B01089590E0880FC9 -:1003C000991F82959295907F9827807F98279070AB -:1003D00050E047705070842B952B946970E06370E7 -:1003E0007070660F771F660F771F660F771F862B5B -:1003F000972B0E949B0108958036910538F02FE0DD -:100400008034920728F08FE39FE002C080E690E0FE -:10041000906A0E949B01089522E08739920710F1AB -:1004200025E18831920780F49C0140E050E060E6CD -:1004300078EA80E090E00E945403C9010197806847 -:10044000966C0E949B0108959C0140E050E06CEF87 -:1004500072E485E090E00E943203C9010197966C36 -:100460000E949B01089590E087709070986970E0F9 -:1004700062957295707F7627607F76277070862BE5 -:10048000972B0E949B0108959498839BFECF08951B -:1004900088EC92E80E949B0181E89AEC0E949B0103 -:1004A00083E89AEC0E949B010895949881E08399D7 -:1004B00080E0089580E090EB0E949B01089588E021 -:1004C00092E80E949B0108950F931F93CF93DF93AF -:1004D0008C01C62F88E392E80E949B010E9444028F -:1004E0008AEA98EB0E949B010E9444028AEA98EBF8 -:1004F0000E949B010E9444028AEA98EB0E949B01A1 -:100500000E9444028DE298EB0E949B010E944402EB -:1005100084ED98EB0E949B01CC2399F0C8010196D1 -:10052000C1509C012C0F311DE9010E944402F801C9 -:1005300081918F0190E0986B0E949B010C171D0721 -:10054000A1F70E94440288E092E80E949B01DF919B -:10055000CF911F910F9108950F931F93CF93DF9326 -:100560008C01D62F88EC92E80E949B0181E89AECDE -:100570000E949B0183E89AEC0E949B01DD2399F085 -:10058000C8010196D1509C012D0F311DE9010E9437 -:10059000440280E090EB0E949B01F80181938F015F -:1005A000EC17FD07A1F788E092E80E949B01DF911C -:1005B000CF911F910F9108951F93CF93DF93182F21 -:1005C000D62FC42F88E392E80E949B010E94440228 -:1005D0008AEA98EB0E949B010E9444028AEA98EB07 -:1005E0000E949B010E9444028AEA98EB0E949B01B0 -:1005F0000E9444028DE298EB0E949B010E944402FB -:1006000084ED98EB0E949B010E944402812F90E0B0 -:10061000986B0E949B010E9444028D2F90E0986B82 -:100620000E949B010E9444028C2F90E0986B0E94D4 -:100630009B010E94440280E098EB0E949B010E9473 -:10064000440288E092E80E949B018FEF90E7A2E0CD -:1006500081509040A040E1F700C00000DF91CF91B1 -:100660001F910895A1E21A2EAA1BBB1BFD010DC00C -:10067000AA1FBB1FEE1FFF1FA217B307E407F50752 -:1006800020F0A21BB30BE40BF50B661F771F881F2E -:10069000991F1A9469F760957095809590959B01C4 -:1006A000AC01BD01CF01089597FB092E05260ED0A0 -:1006B00057FD04D0D7DF0AD0001C38F45095409580 -:1006C000309521953F4F4F4F5F4F0895F6F7909526 -:1006D0008095709561957F4F8F4F9F4F0895F89447 -:0206E000FFCF4A -:0406E200B40002005E +:10010000E1F700C0000084EB90E0909361008093E1 +:1001100060008FEF96E1A1E181509040A040E1F7AF +:1001200000C000000895899880916200909163005A +:100130008330910541F4819B06C00E9479020E94A0 +:1001400049000E94620280916200909163008230B7 +:10015000910559F4819B09C00E94790281E06AE00F +:1001600048E00E94F6020E9462020895CF930E9426 +:10017000620202C00E9493000E946F028823D1F79E +:100180000E947402882341F08A3031F0803F09F0E8 +:1001900049C002C00E9493000E946F028823D1F7D9 +:1001A0000E947402C82F02C00E9493000E946F0236 +:1001B0008823D1F7C130B1F50E947402843051F028 +:1001C000853018F48130D9F41DC0853051F0873066 +:1001D000B1F40EC082E090E09093630080936200DF +:1001E00011C083E090E090936300809362000AC0A6 +:1001F0000E9479020E9449000E94620213C00E947C +:10020000790210C00E9479028FE39CE90197F1F70F +:1002100000C00000409162005091630081E06AE0FC +:100220000E94F602CF91089585E083BF88E582BFE2 +:100230001CBE81E089BF08951F920F920FB60F92E6 +:1002400011242F933F938F939F9388E582BF8091D2 +:100250006200909163008230910581F48091640086 +:100260009091650083339105B4F198B381E08927BB +:1002700088BB10926500109264002DC080916200CE +:10028000909163008330910581F480916400909196 +:10029000650086309105FCF098B381E0892788BB22 +:1002A000109265001092640016C0809162009091D7 +:1002B00063008630910579F4809164009091650027 +:1002C0008230910544F098B381E0892788BB109271 +:1002D0006500109264008091640090916500019621 +:1002E0009093650080936400B99AC19A8FEA94E074 +:1002F0000197F1F700C000008091600090916100CB +:100300001816190674F480E090E025E12A95F1F7BB +:1003100000000196209160003091610082179307E0 +:10032000A4F3C1989F918F913F912F910F900FBE91 +:100330000F901F9018950E94CE0180E296E00E94D7 +:10034000160281E060E047E00E94F80180E895E253 +:100350000E94260280E066E00E944D020E94140185 +:10036000B89A78940E94B600FDCF949840E120E0BE +:1003700030E0992314F4969A01C09698220F331F07 +:1003800083992160959A880F991F00C00000959865 +:10039000415079F7949A822F932F089581B3806703 +:1003A00081BB949A8FEF90E7A2E081509040A040EB +:1003B000E1F700C0000080EE90EC0E94B50187EDEF +:1003C00090E80E94B5018BEA92EC0E94B50181E8A9 +:1003D0009AEC0E94B50180E090EE0E94B50180E0A9 +:1003E00098EC0E94B50187EF94EC0E94B501089546 +:1003F00090E0880F991F82959295907F9827807F33 +:100400009827907050E047705070842B952B94691A +:1004100070E063707070660F771F660F771F660F4E +:10042000771F862B972B0E94B50108958036910582 +:1004300038F02FE08034920728F08FE39FE002C06D +:1004400080E690E0906A0E94B501089522E0873925 +:10045000920710F125E18831920780F49C0140E079 +:1004600050E060E678EA80E090E00E946E03C90107 +:1004700001978068966C0E94B50108959C0140E048 +:1004800050E06CEF72E485E090E00E944C03C901FB +:100490000197966C0E94B501089590E08770907066 +:1004A000986970E062957295707F7627607F7627F5 +:1004B0007070862B972B0E94B50108959498839BAA +:1004C000FECF089588EC92E80E94B50181E89AEC8D +:1004D0000E94B50183E89AEC0E94B50108959498B2 +:1004E00081E0839980E0089580E090EB0E94B5015F +:1004F000089588E092E80E94B50108950F931F9334 +:10050000CF93DF938C01C62F88E392E80E94B50158 +:100510000E945E028AEA98EB0E94B5010E945E0288 +:100520008AEA98EB0E94B5010E945E028AEA98EB83 +:100530000E94B5010E945E028DE298EB0E94B50117 +:100540000E945E0284ED98EB0E94B501CC2399F0E5 +:10055000C8010196C1509C012C0F311DE9010E9478 +:100560005E02F80181918F0190E0986B0E94B501C5 +:100570000C171D07A1F70E945E0288E092E80E9416 +:10058000B501DF91CF911F910F9108950F931F93A4 +:10059000CF93DF938C01D62F88EC92E80E94B501AF +:1005A00081E89AEC0E94B50183E89AEC0E94B501BB +:1005B000DD2399F0C8010196D1509C012D0F311D0A +:1005C000E9010E945E0280E090EB0E94B501F80113 +:1005D00081938F01EC17FD07A1F788E092E80E9454 +:1005E000B501DF91CF911F910F9108951F93CF9384 +:1005F000DF93182FD62FC42F88E392E80E94B5010D +:100600000E945E028AEA98EB0E94B5010E945E0297 +:100610008AEA98EB0E94B5010E945E028AEA98EB92 +:100620000E94B5010E945E028DE298EB0E94B50126 +:100630000E945E0284ED98EB0E94B5010E945E026A +:10064000812F90E0986B0E94B5010E945E028D2F71 +:1006500090E0986B0E94B5010E945E028C2F90E0A2 +:10066000986B0E94B5010E945E0280E098EB0E94A8 +:10067000B5010E945E0288E092E80E94B5018FEF0A +:1006800090E7A2E081509040A040E1F700C0000058 +:10069000DF91CF911F910895A1E21A2EAA1BBB1BD7 +:1006A000FD010DC0AA1FBB1FEE1FFF1FA217B3073E +:1006B000E407F50720F0A21BB30BE40BF50B661F54 +:1006C000771F881F991F1A9469F760957095809518 +:1006D00090959B01AC01BD01CF01089597FB092EB8 +:1006E00005260ED057FD04D0D7DF0AD0001C38F401 +:1006F00050954095309521953F4F4F4F5F4F08954E +:10070000F6F790958095709561957F4F8F4F9F4F2D +:060710000895F894FFCFEC +:04071600B400020029 :00000001FF diff --git a/Reciver/Reciver/Debug/Reciver.lss b/Reciver/Reciver/Debug/Reciver.lss index 8880a8e..e31c535 100644 --- a/Reciver/Reciver/Debug/Reciver.lss +++ b/Reciver/Reciver/Debug/Reciver.lss @@ -3,29 +3,29 @@ Reciver.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .text 000006e2 00000000 00000000 00000094 2**1 + 0 .text 00000716 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000004 00800060 000006e2 00000776 2**0 + 1 .data 00000004 00800060 00000716 000007aa 2**0 CONTENTS, ALLOC, LOAD, DATA - 2 .bss 00000002 00800064 00800064 0000077a 2**0 + 2 .bss 00000002 00800064 00800064 000007ae 2**0 ALLOC - 3 .stab 000006cc 00000000 00000000 0000077c 2**2 + 3 .stab 000006cc 00000000 00000000 000007b0 2**2 CONTENTS, READONLY, DEBUGGING - 4 .stabstr 00000085 00000000 00000000 00000e48 2**0 + 4 .stabstr 00000085 00000000 00000000 00000e7c 2**0 CONTENTS, READONLY, DEBUGGING - 5 .debug_aranges 000000e0 00000000 00000000 00000ed0 2**3 + 5 .debug_aranges 000000e0 00000000 00000000 00000f08 2**3 CONTENTS, READONLY, DEBUGGING - 6 .debug_info 00000c6f 00000000 00000000 00000fb0 2**0 + 6 .debug_info 00000c9e 00000000 00000000 00000fe8 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_abbrev 0000036d 00000000 00000000 00001c1f 2**0 + 7 .debug_abbrev 00000388 00000000 00000000 00001c86 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_line 00000730 00000000 00000000 00001f8c 2**0 + 8 .debug_line 0000073b 00000000 00000000 0000200e 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_frame 000001c8 00000000 00000000 000026bc 2**2 + 9 .debug_frame 000001c8 00000000 00000000 0000274c 2**2 CONTENTS, READONLY, DEBUGGING - 10 .debug_str 0000025b 00000000 00000000 00002884 2**0 + 10 .debug_str 0000025b 00000000 00000000 00002914 2**0 CONTENTS, READONLY, DEBUGGING - 11 .debug_loc 00000620 00000000 00000000 00002adf 2**0 + 11 .debug_loc 000005fd 00000000 00000000 00002b6f 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -40,7 +40,7 @@ Disassembly of section .text: 18: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt> 1c: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt> 20: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt> - 24: 0c 94 f6 00 jmp 0x1ec ; 0x1ec <__vector_9> + 24: 0c 94 1c 01 jmp 0x238 ; 0x238 <__vector_9> 28: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt> 2c: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt> 30: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt> @@ -65,8 +65,8 @@ Disassembly of section .text: 60: 10 e0 ldi r17, 0x00 ; 0 62: a0 e6 ldi r26, 0x60 ; 96 64: b0 e0 ldi r27, 0x00 ; 0 - 66: e2 ee ldi r30, 0xE2 ; 226 - 68: f6 e0 ldi r31, 0x06 ; 6 + 66: e6 e1 ldi r30, 0x16 ; 22 + 68: f7 e0 ldi r31, 0x07 ; 7 6a: 02 c0 rjmp .+4 ; 0x70 <__do_copy_data+0x10> 6c: 05 90 lpm r0, Z+ 6e: 0d 92 st X+, r0 @@ -87,8 +87,8 @@ Disassembly of section .text: 80: a6 36 cpi r26, 0x66 ; 102 82: b1 07 cpc r27, r17 84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop> - 86: 0e 94 82 01 call 0x304 ; 0x304
- 8a: 0c 94 6f 03 jmp 0x6de ; 0x6de <_exit> + 86: 0e 94 9b 01 call 0x336 ; 0x336
+ 8a: 0c 94 89 03 jmp 0x712 ; 0x712 <_exit> 0000008e <__bad_interrupt>: 8e: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> @@ -104,39 +104,38 @@ void turn() { 96: 90 91 63 00 lds r25, 0x0063 9a: 86 30 cpi r24, 0x06 ; 6 9c: 91 05 cpc r25, r1 - 9e: 99 f1 breq .+102 ; 0x106 + 9e: 09 f4 brne .+2 ; 0xa2 + a0: 41 c0 rjmp .+130 ; 0x124 return; status = RUN; - a0: 86 e0 ldi r24, 0x06 ; 6 - a2: 90 e0 ldi r25, 0x00 ; 0 - a4: 90 93 63 00 sts 0x0063, r25 - a8: 80 93 62 00 sts 0x0062, r24 + a2: 86 e0 ldi r24, 0x06 ; 6 + a4: 90 e0 ldi r25, 0x00 ; 0 + a6: 90 93 63 00 sts 0x0063, r25 + aa: 80 93 62 00 sts 0x0062, r24 servopos = RIGHT-60; - ac: 88 e7 ldi r24, 0x78 ; 120 - ae: 90 e0 ldi r25, 0x00 ; 0 - b0: 90 93 61 00 sts 0x0061, r25 - b4: 80 93 60 00 sts 0x0060, r24 + ae: 88 e7 ldi r24, 0x78 ; 120 + b0: 90 e0 ldi r25, 0x00 ; 0 + b2: 90 93 61 00 sts 0x0061, r25 + b6: 80 93 60 00 sts 0x0060, r24 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - b8: 8f ef ldi r24, 0xFF ; 255 - ba: 96 e1 ldi r25, 0x16 ; 22 - bc: a1 e1 ldi r26, 0x11 ; 17 - be: 81 50 subi r24, 0x01 ; 1 - c0: 90 40 sbci r25, 0x00 ; 0 - c2: a0 40 sbci r26, 0x00 ; 0 - c4: e1 f7 brne .-8 ; 0xbe - c6: 00 c0 rjmp .+0 ; 0xc8 - c8: 00 00 nop - _delay_ms(700); - servopos = RIGHT-120; - ca: 8c e3 ldi r24, 0x3C ; 60 - cc: 90 e0 ldi r25, 0x00 ; 0 - ce: 90 93 61 00 sts 0x0061, r25 - d2: 80 93 60 00 sts 0x0060, r24 + ba: 8f e3 ldi r24, 0x3F ; 63 + bc: 9c e9 ldi r25, 0x9C ; 156 + be: 01 97 sbiw r24, 0x01 ; 1 + c0: f1 f7 brne .-4 ; 0xbe + c2: 00 c0 rjmp .+0 ; 0xc4 + c4: 00 00 nop + _delay_ms(10+DEVICE); + rf12_txpacket(MASTER, DEVICE, status); + c6: 40 91 62 00 lds r20, 0x0062 + ca: 50 91 63 00 lds r21, 0x0063 + ce: 81 e0 ldi r24, 0x01 ; 1 + d0: 6a e0 ldi r22, 0x0A ; 10 + d2: 0e 94 f6 02 call 0x5ec ; 0x5ec d6: 8f ef ldi r24, 0xFF ; 255 d8: 96 e1 ldi r25, 0x16 ; 22 da: a1 e1 ldi r26, 0x11 ; 17 @@ -147,8 +146,8 @@ void turn() { e4: 00 c0 rjmp .+0 ; 0xe6 e6: 00 00 nop _delay_ms(700); - servopos = RIGHT; - e8: 84 eb ldi r24, 0xB4 ; 180 + servopos = RIGHT-120; + e8: 8c e3 ldi r24, 0x3C ; 60 ea: 90 e0 ldi r25, 0x00 ; 0 ec: 90 93 61 00 sts 0x0061, r25 f0: 80 93 60 00 sts 0x0060, r24 @@ -161,1083 +160,1084 @@ void turn() { 100: e1 f7 brne .-8 ; 0xfa 102: 00 c0 rjmp .+0 ; 0x104 104: 00 00 nop - 106: 08 95 ret + _delay_ms(700); + servopos = RIGHT; + 106: 84 eb ldi r24, 0xB4 ; 180 + 108: 90 e0 ldi r25, 0x00 ; 0 + 10a: 90 93 61 00 sts 0x0061, r25 + 10e: 80 93 60 00 sts 0x0060, r24 + 112: 8f ef ldi r24, 0xFF ; 255 + 114: 96 e1 ldi r25, 0x16 ; 22 + 116: a1 e1 ldi r26, 0x11 ; 17 + 118: 81 50 subi r24, 0x01 ; 1 + 11a: 90 40 sbci r25, 0x00 ; 0 + 11c: a0 40 sbci r26, 0x00 ; 0 + 11e: e1 f7 brne .-8 ; 0x118 + 120: 00 c0 rjmp .+0 ; 0x122 + 122: 00 00 nop + 124: 08 95 ret -00000108 : +00000126 : _delay_ms(700); } void poll() { DDRD &= ~(1< + 128: 80 91 62 00 lds r24, 0x0062 + 12c: 90 91 63 00 lds r25, 0x0063 + 130: 83 30 cpi r24, 0x03 ; 3 + 132: 91 05 cpc r25, r1 + 134: 41 f4 brne .+16 ; 0x146 if(PIND & (1< + 136: 81 9b sbis 0x10, 1 ; 16 + 138: 06 c0 rjmp .+12 ; 0x146 rf12_endasyncrx(); - 11c: 0e 94 5f 02 call 0x4be ; 0x4be + 13a: 0e 94 79 02 call 0x4f2 ; 0x4f2 turn(); - 120: 0e 94 49 00 call 0x92 ; 0x92 + 13e: 0e 94 49 00 call 0x92 ; 0x92 rf12_beginasyncrx(); - 124: 0e 94 48 02 call 0x490 ; 0x490 - 128: 08 95 ret - -0000012a : + 142: 0e 94 62 02 call 0x4c4 ; 0x4c4 } } + if(status == SLEEP) { + 146: 80 91 62 00 lds r24, 0x0062 + 14a: 90 91 63 00 lds r25, 0x0063 + 14e: 82 30 cpi r24, 0x02 ; 2 + 150: 91 05 cpc r25, r1 + 152: 59 f4 brne .+22 ; 0x16a + if(PIND & (1< + rf12_endasyncrx(); + 158: 0e 94 79 02 call 0x4f2 ; 0x4f2 + rf12_txpacket(MASTER, DEVICE, DEDECT); + 15c: 81 e0 ldi r24, 0x01 ; 1 + 15e: 6a e0 ldi r22, 0x0A ; 10 + 160: 48 e0 ldi r20, 0x08 ; 8 + 162: 0e 94 f6 02 call 0x5ec ; 0x5ec + rf12_beginasyncrx(); + 166: 0e 94 62 02 call 0x4c4 ; 0x4c4 + 16a: 08 95 ret + +0000016c : + } + } } void recive() { - 12a: cf 93 push r28 + 16c: cf 93 push r28 rf12_beginasyncrx(); - 12c: 0e 94 48 02 call 0x490 ; 0x490 + 16e: 0e 94 62 02 call 0x4c4 ; 0x4c4 while(rf12_hasdata()) { - 130: 02 c0 rjmp .+4 ; 0x136 + 172: 02 c0 rjmp .+4 ; 0x178 poll(); - 132: 0e 94 84 00 call 0x108 ; 0x108 + 174: 0e 94 93 00 call 0x126 ; 0x126 } } void recive() { rf12_beginasyncrx(); while(rf12_hasdata()) { - 136: 0e 94 55 02 call 0x4aa ; 0x4aa - 13a: 88 23 and r24, r24 - 13c: d1 f7 brne .-12 ; 0x132 + 178: 0e 94 6f 02 call 0x4de ; 0x4de + 17c: 88 23 and r24, r24 + 17e: d1 f7 brne .-12 ; 0x174 poll(); } uint8_t addr = rf12_rxbyte(); - 13e: 0e 94 5a 02 call 0x4b4 ; 0x4b4 + 180: 0e 94 74 02 call 0x4e8 ; 0x4e8 if(addr == ALL || addr == DEVICE || addr == GROUP) { - 142: 88 23 and r24, r24 - 144: 41 f0 breq .+16 ; 0x156 - 146: 8a 30 cpi r24, 0x0A ; 10 - 148: 31 f0 breq .+12 ; 0x156 - 14a: 80 3f cpi r24, 0xF0 ; 240 - 14c: 09 f0 breq .+2 ; 0x150 - 14e: 44 c0 rjmp .+136 ; 0x1d8 - 150: 02 c0 rjmp .+4 ; 0x156 + 184: 88 23 and r24, r24 + 186: 41 f0 breq .+16 ; 0x198 + 188: 8a 30 cpi r24, 0x0A ; 10 + 18a: 31 f0 breq .+12 ; 0x198 + 18c: 80 3f cpi r24, 0xF0 ; 240 + 18e: 09 f0 breq .+2 ; 0x192 + 190: 49 c0 rjmp .+146 ; 0x224 + 192: 02 c0 rjmp .+4 ; 0x198 while(rf12_hasdata()) { poll(); - 152: 0e 94 84 00 call 0x108 ; 0x108 + 194: 0e 94 93 00 call 0x126 ; 0x126 while(rf12_hasdata()) { poll(); } uint8_t addr = rf12_rxbyte(); if(addr == ALL || addr == DEVICE || addr == GROUP) { while(rf12_hasdata()) { - 156: 0e 94 55 02 call 0x4aa ; 0x4aa - 15a: 88 23 and r24, r24 - 15c: d1 f7 brne .-12 ; 0x152 + 198: 0e 94 6f 02 call 0x4de ; 0x4de + 19c: 88 23 and r24, r24 + 19e: d1 f7 brne .-12 ; 0x194 poll(); } uint8_t from = rf12_rxbyte(); - 15e: 0e 94 5a 02 call 0x4b4 ; 0x4b4 - 162: c8 2f mov r28, r24 + 1a0: 0e 94 74 02 call 0x4e8 ; 0x4e8 + 1a4: c8 2f mov r28, r24 while(rf12_hasdata()) { - 164: 02 c0 rjmp .+4 ; 0x16a + 1a6: 02 c0 rjmp .+4 ; 0x1ac poll(); - 166: 0e 94 84 00 call 0x108 ; 0x108 + 1a8: 0e 94 93 00 call 0x126 ; 0x126 if(addr == ALL || addr == DEVICE || addr == GROUP) { while(rf12_hasdata()) { poll(); } uint8_t from = rf12_rxbyte(); while(rf12_hasdata()) { - 16a: 0e 94 55 02 call 0x4aa ; 0x4aa - 16e: 88 23 and r24, r24 - 170: d1 f7 brne .-12 ; 0x166 + 1ac: 0e 94 6f 02 call 0x4de ; 0x4de + 1b0: 88 23 and r24, r24 + 1b2: d1 f7 brne .-12 ; 0x1a8 poll(); } if(from == MASTER) { - 172: c1 30 cpi r28, 0x01 ; 1 - 174: 89 f5 brne .+98 ; 0x1d8 + 1b4: c1 30 cpi r28, 0x01 ; 1 + 1b6: b1 f5 brne .+108 ; 0x224 uint8_t data = rf12_rxbyte(); - 176: 0e 94 5a 02 call 0x4b4 ; 0x4b4 + 1b8: 0e 94 74 02 call 0x4e8 ; 0x4e8 switch(data) { - 17a: 84 30 cpi r24, 0x04 ; 4 - 17c: 51 f0 breq .+20 ; 0x192 - 17e: 85 30 cpi r24, 0x05 ; 5 - 180: 18 f4 brcc .+6 ; 0x188 - 182: 81 30 cpi r24, 0x01 ; 1 - 184: b1 f4 brne .+44 ; 0x1b2 - 186: 18 c0 rjmp .+48 ; 0x1b8 - 188: 85 30 cpi r24, 0x05 ; 5 - 18a: 51 f0 breq .+20 ; 0x1a0 - 18c: 87 30 cpi r24, 0x07 ; 7 - 18e: 89 f4 brne .+34 ; 0x1b2 - 190: 0e c0 rjmp .+28 ; 0x1ae + 1bc: 84 30 cpi r24, 0x04 ; 4 + 1be: 51 f0 breq .+20 ; 0x1d4 + 1c0: 85 30 cpi r24, 0x05 ; 5 + 1c2: 18 f4 brcc .+6 ; 0x1ca + 1c4: 81 30 cpi r24, 0x01 ; 1 + 1c6: d9 f4 brne .+54 ; 0x1fe + 1c8: 1d c0 rjmp .+58 ; 0x204 + 1ca: 85 30 cpi r24, 0x05 ; 5 + 1cc: 51 f0 breq .+20 ; 0x1e2 + 1ce: 87 30 cpi r24, 0x07 ; 7 + 1d0: b1 f4 brne .+44 ; 0x1fe + 1d2: 0e c0 rjmp .+28 ; 0x1f0 case PING: { break; } case SETSLEEP: { status = SLEEP; - 192: 82 e0 ldi r24, 0x02 ; 2 - 194: 90 e0 ldi r25, 0x00 ; 0 - 196: 90 93 63 00 sts 0x0063, r25 - 19a: 80 93 62 00 sts 0x0062, r24 + 1d4: 82 e0 ldi r24, 0x02 ; 2 + 1d6: 90 e0 ldi r25, 0x00 ; 0 + 1d8: 90 93 63 00 sts 0x0063, r25 + 1dc: 80 93 62 00 sts 0x0062, r24 break; - 19e: 0c c0 rjmp .+24 ; 0x1b8 + 1e0: 11 c0 rjmp .+34 ; 0x204 } case SETACTIVE: { status = ACTIVE; - 1a0: 83 e0 ldi r24, 0x03 ; 3 - 1a2: 90 e0 ldi r25, 0x00 ; 0 - 1a4: 90 93 63 00 sts 0x0063, r25 - 1a8: 80 93 62 00 sts 0x0062, r24 + 1e2: 83 e0 ldi r24, 0x03 ; 3 + 1e4: 90 e0 ldi r25, 0x00 ; 0 + 1e6: 90 93 63 00 sts 0x0063, r25 + 1ea: 80 93 62 00 sts 0x0062, r24 break; - 1ac: 05 c0 rjmp .+10 ; 0x1b8 + 1ee: 0a c0 rjmp .+20 ; 0x204 } case SETRUN: { + rf12_endasyncrx(); + 1f0: 0e 94 79 02 call 0x4f2 ; 0x4f2 turn(); - 1ae: 0e 94 49 00 call 0x92 ; 0x92 + 1f4: 0e 94 49 00 call 0x92 ; 0x92 + rf12_beginasyncrx(); + 1f8: 0e 94 62 02 call 0x4c4 ; 0x4c4 + return; + 1fc: 13 c0 rjmp .+38 ; 0x224 } default: { rf12_endasyncrx(); - 1b2: 0e 94 5f 02 call 0x4be ; 0x4be + 1fe: 0e 94 79 02 call 0x4f2 ; 0x4f2 return; - 1b6: 10 c0 rjmp .+32 ; 0x1d8 + 202: 10 c0 rjmp .+32 ; 0x224 } } rf12_endasyncrx(); - 1b8: 0e 94 5f 02 call 0x4be ; 0x4be - 1bc: 8f e3 ldi r24, 0x3F ; 63 - 1be: 9c e9 ldi r25, 0x9C ; 156 - 1c0: 01 97 sbiw r24, 0x01 ; 1 - 1c2: f1 f7 brne .-4 ; 0x1c0 - 1c4: 00 c0 rjmp .+0 ; 0x1c6 - 1c6: 00 00 nop + 204: 0e 94 79 02 call 0x4f2 ; 0x4f2 + 208: 8f e3 ldi r24, 0x3F ; 63 + 20a: 9c e9 ldi r25, 0x9C ; 156 + 20c: 01 97 sbiw r24, 0x01 ; 1 + 20e: f1 f7 brne .-4 ; 0x20c + 210: 00 c0 rjmp .+0 ; 0x212 + 212: 00 00 nop _delay_ms(10+DEVICE); rf12_txpacket(MASTER, DEVICE, status); - 1c8: 40 91 62 00 lds r20, 0x0062 - 1cc: 50 91 63 00 lds r21, 0x0063 - 1d0: 81 e0 ldi r24, 0x01 ; 1 - 1d2: 6a e0 ldi r22, 0x0A ; 10 - 1d4: 0e 94 dc 02 call 0x5b8 ; 0x5b8 + 214: 40 91 62 00 lds r20, 0x0062 + 218: 50 91 63 00 lds r21, 0x0063 + 21c: 81 e0 ldi r24, 0x01 ; 1 + 21e: 6a e0 ldi r22, 0x0A ; 10 + 220: 0e 94 f6 02 call 0x5ec ; 0x5ec return; } } } - 1d8: cf 91 pop r28 - 1da: 08 95 ret + 224: cf 91 pop r28 + 226: 08 95 ret -000001dc : +00000228 : // Clock source: System Clock // Clock value: 7,813 kHz // Mode: Normal top=0xFF // OC0 output: Disconnected // Timer Period: 21,504 ms TCCR0=(0<: +00000238 <__vector_9>: ISR(TIMER0_OVF_vect) { - 1ec: 1f 92 push r1 - 1ee: 0f 92 push r0 - 1f0: 0f b6 in r0, 0x3f ; 63 - 1f2: 0f 92 push r0 - 1f4: 11 24 eor r1, r1 - 1f6: 2f 93 push r18 - 1f8: 3f 93 push r19 - 1fa: 8f 93 push r24 - 1fc: 9f 93 push r25 + 238: 1f 92 push r1 + 23a: 0f 92 push r0 + 23c: 0f b6 in r0, 0x3f ; 63 + 23e: 0f 92 push r0 + 240: 11 24 eor r1, r1 + 242: 2f 93 push r18 + 244: 3f 93 push r19 + 246: 8f 93 push r24 + 248: 9f 93 push r25 // Reinitialize Timer 0 value TCNT0=0x58; - 1fe: 88 e5 ldi r24, 0x58 ; 88 - 200: 82 bf out 0x32, r24 ; 50 + 24a: 88 e5 ldi r24, 0x58 ; 88 + 24c: 82 bf out 0x32, r24 ; 50 - int led = 0; if(status == SLEEP) { - 202: 80 91 62 00 lds r24, 0x0062 - 206: 90 91 63 00 lds r25, 0x0063 - 20a: 82 30 cpi r24, 0x02 ; 2 - 20c: 91 05 cpc r25, r1 - 20e: 61 f4 brne .+24 ; 0x228 <__vector_9+0x3c> - if(pwm_led > 50) - 210: 20 91 64 00 lds r18, 0x0064 - 214: 30 91 65 00 lds r19, 0x0065 - led = 1; - 218: 81 e0 ldi r24, 0x01 ; 1 - 21a: 90 e0 ldi r25, 0x00 ; 0 - 21c: 23 33 cpi r18, 0x33 ; 51 - 21e: 31 05 cpc r19, r1 - 220: 4c f5 brge .+82 ; 0x274 <__vector_9+0x88> - 222: 80 e0 ldi r24, 0x00 ; 0 - 224: 90 e0 ldi r25, 0x00 ; 0 - 226: 26 c0 rjmp .+76 ; 0x274 <__vector_9+0x88> - } else if(status == ACTIVE) { - 228: 80 91 62 00 lds r24, 0x0062 - 22c: 90 91 63 00 lds r25, 0x0063 - 230: 83 30 cpi r24, 0x03 ; 3 - 232: 91 05 cpc r25, r1 - 234: 61 f4 brne .+24 ; 0x24e <__vector_9+0x62> - if(pwm_led > 5) - 236: 20 91 64 00 lds r18, 0x0064 - 23a: 30 91 65 00 lds r19, 0x0065 - TCNT0=0x58; - - int led = 0; - if(status == SLEEP) { - if(pwm_led > 50) - led = 1; - 23e: 81 e0 ldi r24, 0x01 ; 1 - 240: 90 e0 ldi r25, 0x00 ; 0 - 242: 26 30 cpi r18, 0x06 ; 6 - 244: 31 05 cpc r19, r1 - 246: b4 f4 brge .+44 ; 0x274 <__vector_9+0x88> - 248: 80 e0 ldi r24, 0x00 ; 0 - 24a: 90 e0 ldi r25, 0x00 ; 0 - 24c: 13 c0 rjmp .+38 ; 0x274 <__vector_9+0x88> - } else if(status == ACTIVE) { - if(pwm_led > 5) - led = 1; - } else if(status == RUN) { 24e: 80 91 62 00 lds r24, 0x0062 252: 90 91 63 00 lds r25, 0x0063 - 256: 86 30 cpi r24, 0x06 ; 6 + 256: 82 30 cpi r24, 0x02 ; 2 258: 91 05 cpc r25, r1 - 25a: 09 f0 breq .+2 ; 0x25e <__vector_9+0x72> - 25c: 49 c0 rjmp .+146 ; 0x2f0 <__vector_9+0x104> - if(pwm_led > 1) - 25e: 20 91 64 00 lds r18, 0x0064 - 262: 30 91 65 00 lds r19, 0x0065 - TCNT0=0x58; - - int led = 0; - if(status == SLEEP) { - if(pwm_led > 50) - led = 1; - 266: 81 e0 ldi r24, 0x01 ; 1 - 268: 90 e0 ldi r25, 0x00 ; 0 - 26a: 22 30 cpi r18, 0x02 ; 2 - 26c: 31 05 cpc r19, r1 - 26e: 14 f4 brge .+4 ; 0x274 <__vector_9+0x88> - 270: 80 e0 ldi r24, 0x00 ; 0 - 272: 90 e0 ldi r25, 0x00 ; 0 - } else if(status == RUN) { - if(pwm_led > 1) - led = 1; - } - - pwm_led++; - 274: 20 91 64 00 lds r18, 0x0064 - 278: 30 91 65 00 lds r19, 0x0065 - 27c: 2f 5f subi r18, 0xFF ; 255 - 27e: 3f 4f sbci r19, 0xFF ; 255 - 280: 30 93 65 00 sts 0x0065, r19 - 284: 20 93 64 00 sts 0x0064, r18 - - if(led == 1) { - 288: 81 30 cpi r24, 0x01 ; 1 - 28a: 91 05 cpc r25, r1 - 28c: 51 f4 brne .+20 ; 0x2a2 <__vector_9+0xb6> - DDRB |= (1< - PORTB &= ~(1< - } else { - PORTB |= (1< + if(pwm_led > 50) { + 25c: 80 91 64 00 lds r24, 0x0064 + 260: 90 91 65 00 lds r25, 0x0065 + 264: 83 33 cpi r24, 0x33 ; 51 + 266: 91 05 cpc r25, r1 + 268: b4 f1 brlt .+108 ; 0x2d6 <__vector_9+0x9e> + PORTB ^= (1< + } + } else if(status == ACTIVE) { + 27c: 80 91 62 00 lds r24, 0x0062 + 280: 90 91 63 00 lds r25, 0x0063 + 284: 83 30 cpi r24, 0x03 ; 3 + 286: 91 05 cpc r25, r1 + 288: 81 f4 brne .+32 ; 0x2aa <__vector_9+0x72> + if(pwm_led > 5) { + 28a: 80 91 64 00 lds r24, 0x0064 + 28e: 90 91 65 00 lds r25, 0x0065 + 292: 86 30 cpi r24, 0x06 ; 6 + 294: 91 05 cpc r25, r1 + 296: fc f0 brlt .+62 ; 0x2d6 <__vector_9+0x9e> + PORTB ^= (1< + } + } else if(status == RUN) { + 2aa: 80 91 62 00 lds r24, 0x0062 + 2ae: 90 91 63 00 lds r25, 0x0063 + 2b2: 86 30 cpi r24, 0x06 ; 6 + 2b4: 91 05 cpc r25, r1 + 2b6: 79 f4 brne .+30 ; 0x2d6 <__vector_9+0x9e> + if(pwm_led > 1) { + 2b8: 80 91 64 00 lds r24, 0x0064 + 2bc: 90 91 65 00 lds r25, 0x0065 + 2c0: 82 30 cpi r24, 0x02 ; 2 + 2c2: 91 05 cpc r25, r1 + 2c4: 44 f0 brlt .+16 ; 0x2d6 <__vector_9+0x9e> + PORTB ^= (1< - 2ae: 00 c0 rjmp .+0 ; 0x2b0 <__vector_9+0xc4> - 2b0: 00 00 nop + 2ec: 8f ea ldi r24, 0xAF ; 175 + 2ee: 94 e0 ldi r25, 0x04 ; 4 + 2f0: 01 97 sbiw r24, 0x01 ; 1 + 2f2: f1 f7 brne .-4 ; 0x2f0 <__vector_9+0xb8> + 2f4: 00 c0 rjmp .+0 ; 0x2f6 <__vector_9+0xbe> + 2f6: 00 00 nop _delay_us(LEFT); for(int i=0;i - 2c0: 80 e0 ldi r24, 0x00 ; 0 - 2c2: 90 e0 ldi r25, 0x00 ; 0 - 2c4: 25 e1 ldi r18, 0x15 ; 21 - 2c6: 2a 95 dec r18 - 2c8: f1 f7 brne .-4 ; 0x2c6 <__vector_9+0xda> - 2ca: 00 00 nop - 2cc: 01 96 adiw r24, 0x01 ; 1 - 2ce: 20 91 60 00 lds r18, 0x0060 - 2d2: 30 91 61 00 lds r19, 0x0061 - 2d6: 82 17 cp r24, r18 - 2d8: 93 07 cpc r25, r19 - 2da: a4 f3 brlt .-24 ; 0x2c4 <__vector_9+0xd8> + 2f8: 80 91 60 00 lds r24, 0x0060 + 2fc: 90 91 61 00 lds r25, 0x0061 + 300: 18 16 cp r1, r24 + 302: 19 06 cpc r1, r25 + 304: 74 f4 brge .+28 ; 0x322 <__vector_9+0xea> + 306: 80 e0 ldi r24, 0x00 ; 0 + 308: 90 e0 ldi r25, 0x00 ; 0 + 30a: 25 e1 ldi r18, 0x15 ; 21 + 30c: 2a 95 dec r18 + 30e: f1 f7 brne .-4 ; 0x30c <__vector_9+0xd4> + 310: 00 00 nop + 312: 01 96 adiw r24, 0x01 ; 1 + 314: 20 91 60 00 lds r18, 0x0060 + 318: 30 91 61 00 lds r19, 0x0061 + 31c: 82 17 cp r24, r18 + 31e: 93 07 cpc r25, r19 + 320: a4 f3 brlt .-24 ; 0x30a <__vector_9+0xd2> _delay_us(STEP); } PORTB &= ~(1< 1) - led = 1; - } - - pwm_led++; - 2f0: 80 91 64 00 lds r24, 0x0064 - 2f4: 90 91 65 00 lds r25, 0x0065 - 2f8: 01 96 adiw r24, 0x01 ; 1 - 2fa: 90 93 65 00 sts 0x0065, r25 - 2fe: 80 93 64 00 sts 0x0064, r24 - 302: cf cf rjmp .-98 ; 0x2a2 <__vector_9+0xb6> + 324: 9f 91 pop r25 + 326: 8f 91 pop r24 + 328: 3f 91 pop r19 + 32a: 2f 91 pop r18 + 32c: 0f 90 pop r0 + 32e: 0f be out 0x3f, r0 ; 63 + 330: 0f 90 pop r0 + 332: 1f 90 pop r1 + 334: 18 95 reti -00000304
: -} +00000336
: int main(void) { rf12_init(); // ein paar Register setzen (z.B. CLK auf 10MHz) - 304: 0e 94 b4 01 call 0x368 ; 0x368 + 336: 0e 94 ce 01 call 0x39c ; 0x39c rf12_setfreq(RF12FREQ(433.92)); // Sende/Empfangsfrequenz auf 433,92MHz einstellen - 308: 80 e2 ldi r24, 0x20 ; 32 - 30a: 96 e0 ldi r25, 0x06 ; 6 - 30c: 0e 94 fc 01 call 0x3f8 ; 0x3f8 + 33a: 80 e2 ldi r24, 0x20 ; 32 + 33c: 96 e0 ldi r25, 0x06 ; 6 + 33e: 0e 94 16 02 call 0x42c ; 0x42c rf12_setbandwidth(1, 0, 7); // 400kHz Bandbreite, 0dB Verstärkung, DRSSI threshold: -61dBm - 310: 81 e0 ldi r24, 0x01 ; 1 - 312: 60 e0 ldi r22, 0x00 ; 0 - 314: 47 e0 ldi r20, 0x07 ; 7 - 316: 0e 94 de 01 call 0x3bc ; 0x3bc + 342: 81 e0 ldi r24, 0x01 ; 1 + 344: 60 e0 ldi r22, 0x00 ; 0 + 346: 47 e0 ldi r20, 0x07 ; 7 + 348: 0e 94 f8 01 call 0x3f0 ; 0x3f0 rf12_setbaud(9600); // 19200 baud - 31a: 80 e8 ldi r24, 0x80 ; 128 - 31c: 95 e2 ldi r25, 0x25 ; 37 - 31e: 0e 94 0c 02 call 0x418 ; 0x418 + 34c: 80 e8 ldi r24, 0x80 ; 128 + 34e: 95 e2 ldi r25, 0x25 ; 37 + 350: 0e 94 26 02 call 0x44c ; 0x44c rf12_setpower(0, 6); // 1mW Ausgangsleistung, 120kHz Frequenzshift - 322: 80 e0 ldi r24, 0x00 ; 0 - 324: 66 e0 ldi r22, 0x06 ; 6 - 326: 0e 94 33 02 call 0x466 ; 0x466 + 354: 80 e0 ldi r24, 0x00 ; 0 + 356: 66 e0 ldi r22, 0x06 ; 6 + 358: 0e 94 4d 02 call 0x49a ; 0x49a init_timer(); - 32a: 0e 94 ee 00 call 0x1dc ; 0x1dc + 35c: 0e 94 14 01 call 0x228 ; 0x228 + DDRB |= (1< - 334: fd cf rjmp .-6 ; 0x330 + 364: 0e 94 b6 00 call 0x16c ; 0x16c + 368: fd cf rjmp .-6 ; 0x364 -00000336 : +0000036a : unsigned short rf12_trans(unsigned short wert) { unsigned short werti = 0; unsigned char i; RF_PORT &= ~(1< unsigned short rf12_trans(unsigned short wert) { unsigned short werti = 0; - 33a: 20 e0 ldi r18, 0x00 ; 0 - 33c: 30 e0 ldi r19, 0x00 ; 0 + 36e: 20 e0 ldi r18, 0x00 ; 0 + 370: 30 e0 ldi r19, 0x00 ; 0 unsigned char i; RF_PORT &= ~(1< + 372: 99 23 and r25, r25 + 374: 14 f4 brge .+4 ; 0x37a RF_PORT |= (1< + 376: 96 9a sbi 0x12, 6 ; 18 + 378: 01 c0 rjmp .+2 ; 0x37c } else { RF_PORT &= ~(1< - 358: 00 00 nop + 386: 88 0f add r24, r24 + 388: 99 1f adc r25, r25 + 38a: 00 c0 rjmp .+0 ; 0x38c + 38c: 00 00 nop _delay_us(0.3); RF_PORT &= ~(1< + 392: 79 f7 brne .-34 ; 0x372 RF_PORT |= (1<: +0000039c : void rf12_init(void) { RF_DDR |= (1< - 37e: 00 c0 rjmp .+0 ; 0x380 - 380: 00 00 nop + 3a4: 8f ef ldi r24, 0xFF ; 255 + 3a6: 90 e7 ldi r25, 0x70 ; 112 + 3a8: a2 e0 ldi r26, 0x02 ; 2 + 3aa: 81 50 subi r24, 0x01 ; 1 + 3ac: 90 40 sbci r25, 0x00 ; 0 + 3ae: a0 40 sbci r26, 0x00 ; 0 + 3b0: e1 f7 brne .-8 ; 0x3aa + 3b2: 00 c0 rjmp .+0 ; 0x3b4 + 3b4: 00 00 nop _delay_ms(100); rf12_trans(0xC0E0); // AVR CLK: 10MHz - 382: 80 ee ldi r24, 0xE0 ; 224 - 384: 90 ec ldi r25, 0xC0 ; 192 - 386: 0e 94 9b 01 call 0x336 ; 0x336 + 3b6: 80 ee ldi r24, 0xE0 ; 224 + 3b8: 90 ec ldi r25, 0xC0 ; 192 + 3ba: 0e 94 b5 01 call 0x36a ; 0x36a rf12_trans(0x80D7); // Enable FIFO - 38a: 87 ed ldi r24, 0xD7 ; 215 - 38c: 90 e8 ldi r25, 0x80 ; 128 - 38e: 0e 94 9b 01 call 0x336 ; 0x336 + 3be: 87 ed ldi r24, 0xD7 ; 215 + 3c0: 90 e8 ldi r25, 0x80 ; 128 + 3c2: 0e 94 b5 01 call 0x36a ; 0x36a rf12_trans(0xC2AB); // Data Filter: internal - 392: 8b ea ldi r24, 0xAB ; 171 - 394: 92 ec ldi r25, 0xC2 ; 194 - 396: 0e 94 9b 01 call 0x336 ; 0x336 + 3c6: 8b ea ldi r24, 0xAB ; 171 + 3c8: 92 ec ldi r25, 0xC2 ; 194 + 3ca: 0e 94 b5 01 call 0x36a ; 0x36a rf12_trans(0xCA81); // Set FIFO mode - 39a: 81 e8 ldi r24, 0x81 ; 129 - 39c: 9a ec ldi r25, 0xCA ; 202 - 39e: 0e 94 9b 01 call 0x336 ; 0x336 + 3ce: 81 e8 ldi r24, 0x81 ; 129 + 3d0: 9a ec ldi r25, 0xCA ; 202 + 3d2: 0e 94 b5 01 call 0x36a ; 0x36a rf12_trans(0xE000); // disable wakeuptimer - 3a2: 80 e0 ldi r24, 0x00 ; 0 - 3a4: 90 ee ldi r25, 0xE0 ; 224 - 3a6: 0e 94 9b 01 call 0x336 ; 0x336 + 3d6: 80 e0 ldi r24, 0x00 ; 0 + 3d8: 90 ee ldi r25, 0xE0 ; 224 + 3da: 0e 94 b5 01 call 0x36a ; 0x36a rf12_trans(0xC800); // disable low duty cycle - 3aa: 80 e0 ldi r24, 0x00 ; 0 - 3ac: 98 ec ldi r25, 0xC8 ; 200 - 3ae: 0e 94 9b 01 call 0x336 ; 0x336 + 3de: 80 e0 ldi r24, 0x00 ; 0 + 3e0: 98 ec ldi r25, 0xC8 ; 200 + 3e2: 0e 94 b5 01 call 0x36a ; 0x36a rf12_trans(0xC4F7); // AFC settings: autotuning: -10kHz...+7,5kHz - 3b2: 87 ef ldi r24, 0xF7 ; 247 - 3b4: 94 ec ldi r25, 0xC4 ; 196 - 3b6: 0e 94 9b 01 call 0x336 ; 0x336 + 3e6: 87 ef ldi r24, 0xF7 ; 247 + 3e8: 94 ec ldi r25, 0xC4 ; 196 + 3ea: 0e 94 b5 01 call 0x36a ; 0x36a } - 3ba: 08 95 ret + 3ee: 08 95 ret -000003bc : +000003f0 : void rf12_setbandwidth(unsigned char bandwidth, unsigned char gain, unsigned char drssi) { rf12_trans(0x9400|((bandwidth&7)<<5)|((gain&3)<<3)|(drssi&7)); - 3bc: 90 e0 ldi r25, 0x00 ; 0 - 3be: 88 0f add r24, r24 - 3c0: 99 1f adc r25, r25 - 3c2: 82 95 swap r24 - 3c4: 92 95 swap r25 - 3c6: 90 7f andi r25, 0xF0 ; 240 - 3c8: 98 27 eor r25, r24 - 3ca: 80 7f andi r24, 0xF0 ; 240 - 3cc: 98 27 eor r25, r24 - 3ce: 90 70 andi r25, 0x00 ; 0 - 3d0: 50 e0 ldi r21, 0x00 ; 0 - 3d2: 47 70 andi r20, 0x07 ; 7 - 3d4: 50 70 andi r21, 0x00 ; 0 - 3d6: 84 2b or r24, r20 - 3d8: 95 2b or r25, r21 - 3da: 94 69 ori r25, 0x94 ; 148 - 3dc: 70 e0 ldi r23, 0x00 ; 0 - 3de: 63 70 andi r22, 0x03 ; 3 - 3e0: 70 70 andi r23, 0x00 ; 0 - 3e2: 66 0f add r22, r22 - 3e4: 77 1f adc r23, r23 - 3e6: 66 0f add r22, r22 - 3e8: 77 1f adc r23, r23 - 3ea: 66 0f add r22, r22 - 3ec: 77 1f adc r23, r23 - 3ee: 86 2b or r24, r22 - 3f0: 97 2b or r25, r23 - 3f2: 0e 94 9b 01 call 0x336 ; 0x336 + 3f0: 90 e0 ldi r25, 0x00 ; 0 + 3f2: 88 0f add r24, r24 + 3f4: 99 1f adc r25, r25 + 3f6: 82 95 swap r24 + 3f8: 92 95 swap r25 + 3fa: 90 7f andi r25, 0xF0 ; 240 + 3fc: 98 27 eor r25, r24 + 3fe: 80 7f andi r24, 0xF0 ; 240 + 400: 98 27 eor r25, r24 + 402: 90 70 andi r25, 0x00 ; 0 + 404: 50 e0 ldi r21, 0x00 ; 0 + 406: 47 70 andi r20, 0x07 ; 7 + 408: 50 70 andi r21, 0x00 ; 0 + 40a: 84 2b or r24, r20 + 40c: 95 2b or r25, r21 + 40e: 94 69 ori r25, 0x94 ; 148 + 410: 70 e0 ldi r23, 0x00 ; 0 + 412: 63 70 andi r22, 0x03 ; 3 + 414: 70 70 andi r23, 0x00 ; 0 + 416: 66 0f add r22, r22 + 418: 77 1f adc r23, r23 + 41a: 66 0f add r22, r22 + 41c: 77 1f adc r23, r23 + 41e: 66 0f add r22, r22 + 420: 77 1f adc r23, r23 + 422: 86 2b or r24, r22 + 424: 97 2b or r25, r23 + 426: 0e 94 b5 01 call 0x36a ; 0x36a } - 3f6: 08 95 ret + 42a: 08 95 ret -000003f8 : +0000042c : void rf12_setfreq(unsigned short freq) { if (freq<96) { // 430,2400MHz - 3f8: 80 36 cpi r24, 0x60 ; 96 - 3fa: 91 05 cpc r25, r1 - 3fc: 38 f0 brcs .+14 ; 0x40c - 3fe: 2f e0 ldi r18, 0x0F ; 15 - 400: 80 34 cpi r24, 0x40 ; 64 - 402: 92 07 cpc r25, r18 - 404: 28 f0 brcs .+10 ; 0x410 - 406: 8f e3 ldi r24, 0x3F ; 63 - 408: 9f e0 ldi r25, 0x0F ; 15 - 40a: 02 c0 rjmp .+4 ; 0x410 + 42c: 80 36 cpi r24, 0x60 ; 96 + 42e: 91 05 cpc r25, r1 + 430: 38 f0 brcs .+14 ; 0x440 + 432: 2f e0 ldi r18, 0x0F ; 15 + 434: 80 34 cpi r24, 0x40 ; 64 + 436: 92 07 cpc r25, r18 + 438: 28 f0 brcs .+10 ; 0x444 + 43a: 8f e3 ldi r24, 0x3F ; 63 + 43c: 9f e0 ldi r25, 0x0F ; 15 + 43e: 02 c0 rjmp .+4 ; 0x444 freq=96; - 40c: 80 e6 ldi r24, 0x60 ; 96 - 40e: 90 e0 ldi r25, 0x00 ; 0 + 440: 80 e6 ldi r24, 0x60 ; 96 + 442: 90 e0 ldi r25, 0x00 ; 0 } else if (freq>3903) { // 439,7575MHz freq=3903; } rf12_trans(0xA000|freq); - 410: 90 6a ori r25, 0xA0 ; 160 - 412: 0e 94 9b 01 call 0x336 ; 0x336 + 444: 90 6a ori r25, 0xA0 ; 160 + 446: 0e 94 b5 01 call 0x36a ; 0x36a } - 416: 08 95 ret + 44a: 08 95 ret -00000418 : +0000044c : void rf12_setbaud(unsigned short baud) { if (baud<663) { - 418: 22 e0 ldi r18, 0x02 ; 2 - 41a: 87 39 cpi r24, 0x97 ; 151 - 41c: 92 07 cpc r25, r18 - 41e: 10 f1 brcs .+68 ; 0x464 <__stack+0x5> + 44c: 22 e0 ldi r18, 0x02 ; 2 + 44e: 87 39 cpi r24, 0x97 ; 151 + 450: 92 07 cpc r25, r18 + 452: 10 f1 brcs .+68 ; 0x498 <__stack+0x39> return; } if (baud<5400) { // Baudrate= 344827,58621/(R+1)/(1+CS*7) - 420: 25 e1 ldi r18, 0x15 ; 21 - 422: 88 31 cpi r24, 0x18 ; 24 - 424: 92 07 cpc r25, r18 - 426: 80 f4 brcc .+32 ; 0x448 + 454: 25 e1 ldi r18, 0x15 ; 21 + 456: 88 31 cpi r24, 0x18 ; 24 + 458: 92 07 cpc r25, r18 + 45a: 80 f4 brcc .+32 ; 0x47c <__stack+0x1d> rf12_trans(0xC680|((43104/baud)-1)); - 428: 9c 01 movw r18, r24 - 42a: 40 e0 ldi r20, 0x00 ; 0 - 42c: 50 e0 ldi r21, 0x00 ; 0 - 42e: 60 e6 ldi r22, 0x60 ; 96 - 430: 78 ea ldi r23, 0xA8 ; 168 - 432: 80 e0 ldi r24, 0x00 ; 0 - 434: 90 e0 ldi r25, 0x00 ; 0 - 436: 0e 94 54 03 call 0x6a8 ; 0x6a8 <__divmodsi4> - 43a: c9 01 movw r24, r18 - 43c: 01 97 sbiw r24, 0x01 ; 1 - 43e: 80 68 ori r24, 0x80 ; 128 - 440: 96 6c ori r25, 0xC6 ; 198 - 442: 0e 94 9b 01 call 0x336 ; 0x336 - 446: 08 95 ret + 45c: 9c 01 movw r18, r24 + 45e: 40 e0 ldi r20, 0x00 ; 0 + 460: 50 e0 ldi r21, 0x00 ; 0 + 462: 60 e6 ldi r22, 0x60 ; 96 + 464: 78 ea ldi r23, 0xA8 ; 168 + 466: 80 e0 ldi r24, 0x00 ; 0 + 468: 90 e0 ldi r25, 0x00 ; 0 + 46a: 0e 94 6e 03 call 0x6dc ; 0x6dc <__divmodsi4> + 46e: c9 01 movw r24, r18 + 470: 01 97 sbiw r24, 0x01 ; 1 + 472: 80 68 ori r24, 0x80 ; 128 + 474: 96 6c ori r25, 0xC6 ; 198 + 476: 0e 94 b5 01 call 0x36a ; 0x36a + 47a: 08 95 ret } else { rf12_trans(0xC600|((344828UL/baud)-1)); - 448: 9c 01 movw r18, r24 - 44a: 40 e0 ldi r20, 0x00 ; 0 - 44c: 50 e0 ldi r21, 0x00 ; 0 - 44e: 6c ef ldi r22, 0xFC ; 252 - 450: 72 e4 ldi r23, 0x42 ; 66 - 452: 85 e0 ldi r24, 0x05 ; 5 - 454: 90 e0 ldi r25, 0x00 ; 0 - 456: 0e 94 32 03 call 0x664 ; 0x664 <__udivmodsi4> - 45a: c9 01 movw r24, r18 - 45c: 01 97 sbiw r24, 0x01 ; 1 - 45e: 96 6c ori r25, 0xC6 ; 198 - 460: 0e 94 9b 01 call 0x336 ; 0x336 - 464: 08 95 ret + 47c: 9c 01 movw r18, r24 + 47e: 40 e0 ldi r20, 0x00 ; 0 + 480: 50 e0 ldi r21, 0x00 ; 0 + 482: 6c ef ldi r22, 0xFC ; 252 + 484: 72 e4 ldi r23, 0x42 ; 66 + 486: 85 e0 ldi r24, 0x05 ; 5 + 488: 90 e0 ldi r25, 0x00 ; 0 + 48a: 0e 94 4c 03 call 0x698 ; 0x698 <__udivmodsi4> + 48e: c9 01 movw r24, r18 + 490: 01 97 sbiw r24, 0x01 ; 1 + 492: 96 6c ori r25, 0xC6 ; 198 + 494: 0e 94 b5 01 call 0x36a ; 0x36a + 498: 08 95 ret -00000466 : +0000049a : } } void rf12_setpower(unsigned char power, unsigned char mod) { rf12_trans(0x9800|(power&7)|((mod&15)<<4)); - 466: 90 e0 ldi r25, 0x00 ; 0 - 468: 87 70 andi r24, 0x07 ; 7 - 46a: 90 70 andi r25, 0x00 ; 0 - 46c: 98 69 ori r25, 0x98 ; 152 - 46e: 70 e0 ldi r23, 0x00 ; 0 - 470: 62 95 swap r22 - 472: 72 95 swap r23 - 474: 70 7f andi r23, 0xF0 ; 240 - 476: 76 27 eor r23, r22 - 478: 60 7f andi r22, 0xF0 ; 240 - 47a: 76 27 eor r23, r22 - 47c: 70 70 andi r23, 0x00 ; 0 - 47e: 86 2b or r24, r22 - 480: 97 2b or r25, r23 - 482: 0e 94 9b 01 call 0x336 ; 0x336 + 49a: 90 e0 ldi r25, 0x00 ; 0 + 49c: 87 70 andi r24, 0x07 ; 7 + 49e: 90 70 andi r25, 0x00 ; 0 + 4a0: 98 69 ori r25, 0x98 ; 152 + 4a2: 70 e0 ldi r23, 0x00 ; 0 + 4a4: 62 95 swap r22 + 4a6: 72 95 swap r23 + 4a8: 70 7f andi r23, 0xF0 ; 240 + 4aa: 76 27 eor r23, r22 + 4ac: 60 7f andi r22, 0xF0 ; 240 + 4ae: 76 27 eor r23, r22 + 4b0: 70 70 andi r23, 0x00 ; 0 + 4b2: 86 2b or r24, r22 + 4b4: 97 2b or r25, r23 + 4b6: 0e 94 b5 01 call 0x36a ; 0x36a } - 486: 08 95 ret + 4ba: 08 95 ret -00000488 : +000004bc : void rf12_ready(void) { RF_PORT &= ~(1< + 4be: 83 9b sbis 0x10, 3 ; 16 + 4c0: fe cf rjmp .-4 ; 0x4be } - 48e: 08 95 ret + 4c2: 08 95 ret -00000490 : +000004c4 : void rf12_beginasyncrx() { rf12_trans(0x82C8); // RX on - 490: 88 ec ldi r24, 0xC8 ; 200 - 492: 92 e8 ldi r25, 0x82 ; 130 - 494: 0e 94 9b 01 call 0x336 ; 0x336 + 4c4: 88 ec ldi r24, 0xC8 ; 200 + 4c6: 92 e8 ldi r25, 0x82 ; 130 + 4c8: 0e 94 b5 01 call 0x36a ; 0x36a rf12_trans(0xCA81); // set FIFO mode - 498: 81 e8 ldi r24, 0x81 ; 129 - 49a: 9a ec ldi r25, 0xCA ; 202 - 49c: 0e 94 9b 01 call 0x336 ; 0x336 + 4cc: 81 e8 ldi r24, 0x81 ; 129 + 4ce: 9a ec ldi r25, 0xCA ; 202 + 4d0: 0e 94 b5 01 call 0x36a ; 0x36a rf12_trans(0xCA83); // enable FIFO - 4a0: 83 e8 ldi r24, 0x83 ; 131 - 4a2: 9a ec ldi r25, 0xCA ; 202 - 4a4: 0e 94 9b 01 call 0x336 ; 0x336 + 4d4: 83 e8 ldi r24, 0x83 ; 131 + 4d6: 9a ec ldi r25, 0xCA ; 202 + 4d8: 0e 94 b5 01 call 0x36a ; 0x36a } - 4a8: 08 95 ret + 4dc: 08 95 ret -000004aa : +000004de : uint8_t rf12_hasdata() { RF_PORT &= ~(1<: +000004e8 : uint8_t rf12_rxbyte() { return rf12_trans(0xB000); - 4b4: 80 e0 ldi r24, 0x00 ; 0 - 4b6: 90 eb ldi r25, 0xB0 ; 176 - 4b8: 0e 94 9b 01 call 0x336 ; 0x336 + 4e8: 80 e0 ldi r24, 0x00 ; 0 + 4ea: 90 eb ldi r25, 0xB0 ; 176 + 4ec: 0e 94 b5 01 call 0x36a ; 0x36a } - 4bc: 08 95 ret + 4f0: 08 95 ret -000004be : +000004f2 : void rf12_endasyncrx() { rf12_trans(0x8208); // RX off - 4be: 88 e0 ldi r24, 0x08 ; 8 - 4c0: 92 e8 ldi r25, 0x82 ; 130 - 4c2: 0e 94 9b 01 call 0x336 ; 0x336 + 4f2: 88 e0 ldi r24, 0x08 ; 8 + 4f4: 92 e8 ldi r25, 0x82 ; 130 + 4f6: 0e 94 b5 01 call 0x36a ; 0x36a } - 4c6: 08 95 ret + 4fa: 08 95 ret -000004c8 : +000004fc : void rf12_txdata(unsigned char *data, unsigned char number) { - 4c8: 0f 93 push r16 - 4ca: 1f 93 push r17 - 4cc: cf 93 push r28 - 4ce: df 93 push r29 - 4d0: 8c 01 movw r16, r24 - 4d2: c6 2f mov r28, r22 + 4fc: 0f 93 push r16 + 4fe: 1f 93 push r17 + 500: cf 93 push r28 + 502: df 93 push r29 + 504: 8c 01 movw r16, r24 + 506: c6 2f mov r28, r22 unsigned char i; rf12_trans(0x8238); // TX on - 4d4: 88 e3 ldi r24, 0x38 ; 56 - 4d6: 92 e8 ldi r25, 0x82 ; 130 - 4d8: 0e 94 9b 01 call 0x336 ; 0x336 + 508: 88 e3 ldi r24, 0x38 ; 56 + 50a: 92 e8 ldi r25, 0x82 ; 130 + 50c: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 4dc: 0e 94 44 02 call 0x488 ; 0x488 + 510: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB8AA); - 4e0: 8a ea ldi r24, 0xAA ; 170 - 4e2: 98 eb ldi r25, 0xB8 ; 184 - 4e4: 0e 94 9b 01 call 0x336 ; 0x336 + 514: 8a ea ldi r24, 0xAA ; 170 + 516: 98 eb ldi r25, 0xB8 ; 184 + 518: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 4e8: 0e 94 44 02 call 0x488 ; 0x488 + 51c: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB8AA); - 4ec: 8a ea ldi r24, 0xAA ; 170 - 4ee: 98 eb ldi r25, 0xB8 ; 184 - 4f0: 0e 94 9b 01 call 0x336 ; 0x336 + 520: 8a ea ldi r24, 0xAA ; 170 + 522: 98 eb ldi r25, 0xB8 ; 184 + 524: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 4f4: 0e 94 44 02 call 0x488 ; 0x488 + 528: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB8AA); - 4f8: 8a ea ldi r24, 0xAA ; 170 - 4fa: 98 eb ldi r25, 0xB8 ; 184 - 4fc: 0e 94 9b 01 call 0x336 ; 0x336 + 52c: 8a ea ldi r24, 0xAA ; 170 + 52e: 98 eb ldi r25, 0xB8 ; 184 + 530: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 500: 0e 94 44 02 call 0x488 ; 0x488 + 534: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB82D); - 504: 8d e2 ldi r24, 0x2D ; 45 - 506: 98 eb ldi r25, 0xB8 ; 184 - 508: 0e 94 9b 01 call 0x336 ; 0x336 + 538: 8d e2 ldi r24, 0x2D ; 45 + 53a: 98 eb ldi r25, 0xB8 ; 184 + 53c: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 50c: 0e 94 44 02 call 0x488 ; 0x488 + 540: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB8D4); - 510: 84 ed ldi r24, 0xD4 ; 212 - 512: 98 eb ldi r25, 0xB8 ; 184 - 514: 0e 94 9b 01 call 0x336 ; 0x336 + 544: 84 ed ldi r24, 0xD4 ; 212 + 546: 98 eb ldi r25, 0xB8 ; 184 + 548: 0e 94 b5 01 call 0x36a ; 0x36a for (i=0; i + 54c: cc 23 and r28, r28 + 54e: 99 f0 breq .+38 ; 0x576 } void rf12_endasyncrx() { rf12_trans(0x8208); // RX off } void rf12_txdata(unsigned char *data, unsigned char number) - 51c: c8 01 movw r24, r16 - 51e: 01 96 adiw r24, 0x01 ; 1 - 520: c1 50 subi r28, 0x01 ; 1 - 522: 9c 01 movw r18, r24 - 524: 2c 0f add r18, r28 - 526: 31 1d adc r19, r1 - 528: e9 01 movw r28, r18 + 550: c8 01 movw r24, r16 + 552: 01 96 adiw r24, 0x01 ; 1 + 554: c1 50 subi r28, 0x01 ; 1 + 556: 9c 01 movw r18, r24 + 558: 2c 0f add r18, r28 + 55a: 31 1d adc r19, r1 + 55c: e9 01 movw r28, r18 rf12_trans(0xB82D); rf12_ready(); rf12_trans(0xB8D4); for (i=0; i + 55e: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB800|(*data++)); - 52e: f8 01 movw r30, r16 - 530: 81 91 ld r24, Z+ - 532: 8f 01 movw r16, r30 - 534: 90 e0 ldi r25, 0x00 ; 0 - 536: 98 6b ori r25, 0xB8 ; 184 - 538: 0e 94 9b 01 call 0x336 ; 0x336 + 562: f8 01 movw r30, r16 + 564: 81 91 ld r24, Z+ + 566: 8f 01 movw r16, r30 + 568: 90 e0 ldi r25, 0x00 ; 0 + 56a: 98 6b ori r25, 0xB8 ; 184 + 56c: 0e 94 b5 01 call 0x36a ; 0x36a rf12_trans(0xB8AA); rf12_ready(); rf12_trans(0xB82D); rf12_ready(); rf12_trans(0xB8D4); for (i=0; i + 570: 0c 17 cp r16, r28 + 572: 1d 07 cpc r17, r29 + 574: a1 f7 brne .-24 ; 0x55e { rf12_ready(); rf12_trans(0xB800|(*data++)); } rf12_ready(); - 542: 0e 94 44 02 call 0x488 ; 0x488 + 576: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0x8208); // TX off - 546: 88 e0 ldi r24, 0x08 ; 8 - 548: 92 e8 ldi r25, 0x82 ; 130 - 54a: 0e 94 9b 01 call 0x336 ; 0x336 + 57a: 88 e0 ldi r24, 0x08 ; 8 + 57c: 92 e8 ldi r25, 0x82 ; 130 + 57e: 0e 94 b5 01 call 0x36a ; 0x36a } - 54e: df 91 pop r29 - 550: cf 91 pop r28 - 552: 1f 91 pop r17 - 554: 0f 91 pop r16 - 556: 08 95 ret + 582: df 91 pop r29 + 584: cf 91 pop r28 + 586: 1f 91 pop r17 + 588: 0f 91 pop r16 + 58a: 08 95 ret -00000558 : +0000058c : void rf12_rxdata(unsigned char *data, unsigned char number) { - 558: 0f 93 push r16 - 55a: 1f 93 push r17 - 55c: cf 93 push r28 - 55e: df 93 push r29 - 560: 8c 01 movw r16, r24 - 562: d6 2f mov r29, r22 + 58c: 0f 93 push r16 + 58e: 1f 93 push r17 + 590: cf 93 push r28 + 592: df 93 push r29 + 594: 8c 01 movw r16, r24 + 596: d6 2f mov r29, r22 unsigned char i; rf12_trans(0x82C8); // RX on - 564: 88 ec ldi r24, 0xC8 ; 200 - 566: 92 e8 ldi r25, 0x82 ; 130 - 568: 0e 94 9b 01 call 0x336 ; 0x336 + 598: 88 ec ldi r24, 0xC8 ; 200 + 59a: 92 e8 ldi r25, 0x82 ; 130 + 59c: 0e 94 b5 01 call 0x36a ; 0x36a rf12_trans(0xCA81); // set FIFO mode - 56c: 81 e8 ldi r24, 0x81 ; 129 - 56e: 9a ec ldi r25, 0xCA ; 202 - 570: 0e 94 9b 01 call 0x336 ; 0x336 + 5a0: 81 e8 ldi r24, 0x81 ; 129 + 5a2: 9a ec ldi r25, 0xCA ; 202 + 5a4: 0e 94 b5 01 call 0x36a ; 0x36a rf12_trans(0xCA83); // enable FIFO - 574: 83 e8 ldi r24, 0x83 ; 131 - 576: 9a ec ldi r25, 0xCA ; 202 - 578: 0e 94 9b 01 call 0x336 ; 0x336 + 5a8: 83 e8 ldi r24, 0x83 ; 131 + 5aa: 9a ec ldi r25, 0xCA ; 202 + 5ac: 0e 94 b5 01 call 0x36a ; 0x36a for (i=0; i + 5b0: dd 23 and r29, r29 + 5b2: 99 f0 breq .+38 ; 0x5da } rf12_ready(); rf12_trans(0x8208); // TX off } void rf12_rxdata(unsigned char *data, unsigned char number) - 580: c8 01 movw r24, r16 - 582: 01 96 adiw r24, 0x01 ; 1 - 584: d1 50 subi r29, 0x01 ; 1 - 586: 9c 01 movw r18, r24 - 588: 2d 0f add r18, r29 - 58a: 31 1d adc r19, r1 - 58c: e9 01 movw r28, r18 + 5b4: c8 01 movw r24, r16 + 5b6: 01 96 adiw r24, 0x01 ; 1 + 5b8: d1 50 subi r29, 0x01 ; 1 + 5ba: 9c 01 movw r18, r24 + 5bc: 2d 0f add r18, r29 + 5be: 31 1d adc r19, r1 + 5c0: e9 01 movw r28, r18 rf12_trans(0x82C8); // RX on rf12_trans(0xCA81); // set FIFO mode rf12_trans(0xCA83); // enable FIFO for (i=0; i + 5c2: 0e 94 5e 02 call 0x4bc ; 0x4bc *data++=rf12_trans(0xB000); - 592: 80 e0 ldi r24, 0x00 ; 0 - 594: 90 eb ldi r25, 0xB0 ; 176 - 596: 0e 94 9b 01 call 0x336 ; 0x336 - 59a: f8 01 movw r30, r16 - 59c: 81 93 st Z+, r24 - 59e: 8f 01 movw r16, r30 + 5c6: 80 e0 ldi r24, 0x00 ; 0 + 5c8: 90 eb ldi r25, 0xB0 ; 176 + 5ca: 0e 94 b5 01 call 0x36a ; 0x36a + 5ce: f8 01 movw r30, r16 + 5d0: 81 93 st Z+, r24 + 5d2: 8f 01 movw r16, r30 { unsigned char i; rf12_trans(0x82C8); // RX on rf12_trans(0xCA81); // set FIFO mode rf12_trans(0xCA83); // enable FIFO for (i=0; i + 5d4: ec 17 cp r30, r28 + 5d6: fd 07 cpc r31, r29 + 5d8: a1 f7 brne .-24 ; 0x5c2 { rf12_ready(); *data++=rf12_trans(0xB000); } rf12_trans(0x8208); // RX off - 5a6: 88 e0 ldi r24, 0x08 ; 8 - 5a8: 92 e8 ldi r25, 0x82 ; 130 - 5aa: 0e 94 9b 01 call 0x336 ; 0x336 + 5da: 88 e0 ldi r24, 0x08 ; 8 + 5dc: 92 e8 ldi r25, 0x82 ; 130 + 5de: 0e 94 b5 01 call 0x36a ; 0x36a } - 5ae: df 91 pop r29 - 5b0: cf 91 pop r28 - 5b2: 1f 91 pop r17 - 5b4: 0f 91 pop r16 - 5b6: 08 95 ret + 5e2: df 91 pop r29 + 5e4: cf 91 pop r28 + 5e6: 1f 91 pop r17 + 5e8: 0f 91 pop r16 + 5ea: 08 95 ret -000005b8 : +000005ec : void rf12_txpacket(uint8_t addr, uint8_t from, uint8_t data) { - 5b8: 1f 93 push r17 - 5ba: cf 93 push r28 - 5bc: df 93 push r29 - 5be: 18 2f mov r17, r24 - 5c0: d6 2f mov r29, r22 - 5c2: c4 2f mov r28, r20 + 5ec: 1f 93 push r17 + 5ee: cf 93 push r28 + 5f0: df 93 push r29 + 5f2: 18 2f mov r17, r24 + 5f4: d6 2f mov r29, r22 + 5f6: c4 2f mov r28, r20 rf12_trans(0x8238); // TX on - 5c4: 88 e3 ldi r24, 0x38 ; 56 - 5c6: 92 e8 ldi r25, 0x82 ; 130 - 5c8: 0e 94 9b 01 call 0x336 ; 0x336 + 5f8: 88 e3 ldi r24, 0x38 ; 56 + 5fa: 92 e8 ldi r25, 0x82 ; 130 + 5fc: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 5cc: 0e 94 44 02 call 0x488 ; 0x488 + 600: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB8AA); - 5d0: 8a ea ldi r24, 0xAA ; 170 - 5d2: 98 eb ldi r25, 0xB8 ; 184 - 5d4: 0e 94 9b 01 call 0x336 ; 0x336 + 604: 8a ea ldi r24, 0xAA ; 170 + 606: 98 eb ldi r25, 0xB8 ; 184 + 608: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 5d8: 0e 94 44 02 call 0x488 ; 0x488 + 60c: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB8AA); - 5dc: 8a ea ldi r24, 0xAA ; 170 - 5de: 98 eb ldi r25, 0xB8 ; 184 - 5e0: 0e 94 9b 01 call 0x336 ; 0x336 + 610: 8a ea ldi r24, 0xAA ; 170 + 612: 98 eb ldi r25, 0xB8 ; 184 + 614: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 5e4: 0e 94 44 02 call 0x488 ; 0x488 + 618: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB8AA); - 5e8: 8a ea ldi r24, 0xAA ; 170 - 5ea: 98 eb ldi r25, 0xB8 ; 184 - 5ec: 0e 94 9b 01 call 0x336 ; 0x336 + 61c: 8a ea ldi r24, 0xAA ; 170 + 61e: 98 eb ldi r25, 0xB8 ; 184 + 620: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 5f0: 0e 94 44 02 call 0x488 ; 0x488 + 624: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB82D); - 5f4: 8d e2 ldi r24, 0x2D ; 45 - 5f6: 98 eb ldi r25, 0xB8 ; 184 - 5f8: 0e 94 9b 01 call 0x336 ; 0x336 + 628: 8d e2 ldi r24, 0x2D ; 45 + 62a: 98 eb ldi r25, 0xB8 ; 184 + 62c: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 5fc: 0e 94 44 02 call 0x488 ; 0x488 + 630: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB8D4); - 600: 84 ed ldi r24, 0xD4 ; 212 - 602: 98 eb ldi r25, 0xB8 ; 184 - 604: 0e 94 9b 01 call 0x336 ; 0x336 + 634: 84 ed ldi r24, 0xD4 ; 212 + 636: 98 eb ldi r25, 0xB8 ; 184 + 638: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 608: 0e 94 44 02 call 0x488 ; 0x488 + 63c: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB800|addr); - 60c: 81 2f mov r24, r17 - 60e: 90 e0 ldi r25, 0x00 ; 0 - 610: 98 6b ori r25, 0xB8 ; 184 - 612: 0e 94 9b 01 call 0x336 ; 0x336 + 640: 81 2f mov r24, r17 + 642: 90 e0 ldi r25, 0x00 ; 0 + 644: 98 6b ori r25, 0xB8 ; 184 + 646: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 616: 0e 94 44 02 call 0x488 ; 0x488 + 64a: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB800|from); - 61a: 8d 2f mov r24, r29 - 61c: 90 e0 ldi r25, 0x00 ; 0 - 61e: 98 6b ori r25, 0xB8 ; 184 - 620: 0e 94 9b 01 call 0x336 ; 0x336 + 64e: 8d 2f mov r24, r29 + 650: 90 e0 ldi r25, 0x00 ; 0 + 652: 98 6b ori r25, 0xB8 ; 184 + 654: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 624: 0e 94 44 02 call 0x488 ; 0x488 + 658: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB800|data); - 628: 8c 2f mov r24, r28 - 62a: 90 e0 ldi r25, 0x00 ; 0 - 62c: 98 6b ori r25, 0xB8 ; 184 - 62e: 0e 94 9b 01 call 0x336 ; 0x336 + 65c: 8c 2f mov r24, r28 + 65e: 90 e0 ldi r25, 0x00 ; 0 + 660: 98 6b ori r25, 0xB8 ; 184 + 662: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 632: 0e 94 44 02 call 0x488 ; 0x488 + 666: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0xB800); - 636: 80 e0 ldi r24, 0x00 ; 0 - 638: 98 eb ldi r25, 0xB8 ; 184 - 63a: 0e 94 9b 01 call 0x336 ; 0x336 + 66a: 80 e0 ldi r24, 0x00 ; 0 + 66c: 98 eb ldi r25, 0xB8 ; 184 + 66e: 0e 94 b5 01 call 0x36a ; 0x36a rf12_ready(); - 63e: 0e 94 44 02 call 0x488 ; 0x488 + 672: 0e 94 5e 02 call 0x4bc ; 0x4bc rf12_trans(0x8208); // TX off - 642: 88 e0 ldi r24, 0x08 ; 8 - 644: 92 e8 ldi r25, 0x82 ; 130 - 646: 0e 94 9b 01 call 0x336 ; 0x336 - 64a: 8f ef ldi r24, 0xFF ; 255 - 64c: 90 e7 ldi r25, 0x70 ; 112 - 64e: a2 e0 ldi r26, 0x02 ; 2 - 650: 81 50 subi r24, 0x01 ; 1 - 652: 90 40 sbci r25, 0x00 ; 0 - 654: a0 40 sbci r26, 0x00 ; 0 - 656: e1 f7 brne .-8 ; 0x650 - 658: 00 c0 rjmp .+0 ; 0x65a - 65a: 00 00 nop + 676: 88 e0 ldi r24, 0x08 ; 8 + 678: 92 e8 ldi r25, 0x82 ; 130 + 67a: 0e 94 b5 01 call 0x36a ; 0x36a + 67e: 8f ef ldi r24, 0xFF ; 255 + 680: 90 e7 ldi r25, 0x70 ; 112 + 682: a2 e0 ldi r26, 0x02 ; 2 + 684: 81 50 subi r24, 0x01 ; 1 + 686: 90 40 sbci r25, 0x00 ; 0 + 688: a0 40 sbci r26, 0x00 ; 0 + 68a: e1 f7 brne .-8 ; 0x684 + 68c: 00 c0 rjmp .+0 ; 0x68e + 68e: 00 00 nop _delay_ms(100); - 65c: df 91 pop r29 - 65e: cf 91 pop r28 - 660: 1f 91 pop r17 - 662: 08 95 ret + 690: df 91 pop r29 + 692: cf 91 pop r28 + 694: 1f 91 pop r17 + 696: 08 95 ret -00000664 <__udivmodsi4>: - 664: a1 e2 ldi r26, 0x21 ; 33 - 666: 1a 2e mov r1, r26 - 668: aa 1b sub r26, r26 - 66a: bb 1b sub r27, r27 - 66c: fd 01 movw r30, r26 - 66e: 0d c0 rjmp .+26 ; 0x68a <__udivmodsi4_ep> +00000698 <__udivmodsi4>: + 698: a1 e2 ldi r26, 0x21 ; 33 + 69a: 1a 2e mov r1, r26 + 69c: aa 1b sub r26, r26 + 69e: bb 1b sub r27, r27 + 6a0: fd 01 movw r30, r26 + 6a2: 0d c0 rjmp .+26 ; 0x6be <__udivmodsi4_ep> -00000670 <__udivmodsi4_loop>: - 670: aa 1f adc r26, r26 - 672: bb 1f adc r27, r27 - 674: ee 1f adc r30, r30 - 676: ff 1f adc r31, r31 - 678: a2 17 cp r26, r18 - 67a: b3 07 cpc r27, r19 - 67c: e4 07 cpc r30, r20 - 67e: f5 07 cpc r31, r21 - 680: 20 f0 brcs .+8 ; 0x68a <__udivmodsi4_ep> - 682: a2 1b sub r26, r18 - 684: b3 0b sbc r27, r19 - 686: e4 0b sbc r30, r20 - 688: f5 0b sbc r31, r21 +000006a4 <__udivmodsi4_loop>: + 6a4: aa 1f adc r26, r26 + 6a6: bb 1f adc r27, r27 + 6a8: ee 1f adc r30, r30 + 6aa: ff 1f adc r31, r31 + 6ac: a2 17 cp r26, r18 + 6ae: b3 07 cpc r27, r19 + 6b0: e4 07 cpc r30, r20 + 6b2: f5 07 cpc r31, r21 + 6b4: 20 f0 brcs .+8 ; 0x6be <__udivmodsi4_ep> + 6b6: a2 1b sub r26, r18 + 6b8: b3 0b sbc r27, r19 + 6ba: e4 0b sbc r30, r20 + 6bc: f5 0b sbc r31, r21 -0000068a <__udivmodsi4_ep>: - 68a: 66 1f adc r22, r22 - 68c: 77 1f adc r23, r23 - 68e: 88 1f adc r24, r24 - 690: 99 1f adc r25, r25 - 692: 1a 94 dec r1 - 694: 69 f7 brne .-38 ; 0x670 <__udivmodsi4_loop> - 696: 60 95 com r22 - 698: 70 95 com r23 - 69a: 80 95 com r24 - 69c: 90 95 com r25 - 69e: 9b 01 movw r18, r22 - 6a0: ac 01 movw r20, r24 - 6a2: bd 01 movw r22, r26 - 6a4: cf 01 movw r24, r30 - 6a6: 08 95 ret +000006be <__udivmodsi4_ep>: + 6be: 66 1f adc r22, r22 + 6c0: 77 1f adc r23, r23 + 6c2: 88 1f adc r24, r24 + 6c4: 99 1f adc r25, r25 + 6c6: 1a 94 dec r1 + 6c8: 69 f7 brne .-38 ; 0x6a4 <__udivmodsi4_loop> + 6ca: 60 95 com r22 + 6cc: 70 95 com r23 + 6ce: 80 95 com r24 + 6d0: 90 95 com r25 + 6d2: 9b 01 movw r18, r22 + 6d4: ac 01 movw r20, r24 + 6d6: bd 01 movw r22, r26 + 6d8: cf 01 movw r24, r30 + 6da: 08 95 ret -000006a8 <__divmodsi4>: - 6a8: 97 fb bst r25, 7 - 6aa: 09 2e mov r0, r25 - 6ac: 05 26 eor r0, r21 - 6ae: 0e d0 rcall .+28 ; 0x6cc <__divmodsi4_neg1> - 6b0: 57 fd sbrc r21, 7 - 6b2: 04 d0 rcall .+8 ; 0x6bc <__divmodsi4_neg2> - 6b4: d7 df rcall .-82 ; 0x664 <__udivmodsi4> - 6b6: 0a d0 rcall .+20 ; 0x6cc <__divmodsi4_neg1> - 6b8: 00 1c adc r0, r0 - 6ba: 38 f4 brcc .+14 ; 0x6ca <__divmodsi4_exit> +000006dc <__divmodsi4>: + 6dc: 97 fb bst r25, 7 + 6de: 09 2e mov r0, r25 + 6e0: 05 26 eor r0, r21 + 6e2: 0e d0 rcall .+28 ; 0x700 <__divmodsi4_neg1> + 6e4: 57 fd sbrc r21, 7 + 6e6: 04 d0 rcall .+8 ; 0x6f0 <__divmodsi4_neg2> + 6e8: d7 df rcall .-82 ; 0x698 <__udivmodsi4> + 6ea: 0a d0 rcall .+20 ; 0x700 <__divmodsi4_neg1> + 6ec: 00 1c adc r0, r0 + 6ee: 38 f4 brcc .+14 ; 0x6fe <__divmodsi4_exit> -000006bc <__divmodsi4_neg2>: - 6bc: 50 95 com r21 - 6be: 40 95 com r20 - 6c0: 30 95 com r19 - 6c2: 21 95 neg r18 - 6c4: 3f 4f sbci r19, 0xFF ; 255 - 6c6: 4f 4f sbci r20, 0xFF ; 255 - 6c8: 5f 4f sbci r21, 0xFF ; 255 +000006f0 <__divmodsi4_neg2>: + 6f0: 50 95 com r21 + 6f2: 40 95 com r20 + 6f4: 30 95 com r19 + 6f6: 21 95 neg r18 + 6f8: 3f 4f sbci r19, 0xFF ; 255 + 6fa: 4f 4f sbci r20, 0xFF ; 255 + 6fc: 5f 4f sbci r21, 0xFF ; 255 -000006ca <__divmodsi4_exit>: - 6ca: 08 95 ret +000006fe <__divmodsi4_exit>: + 6fe: 08 95 ret -000006cc <__divmodsi4_neg1>: - 6cc: f6 f7 brtc .-4 ; 0x6ca <__divmodsi4_exit> - 6ce: 90 95 com r25 - 6d0: 80 95 com r24 - 6d2: 70 95 com r23 - 6d4: 61 95 neg r22 - 6d6: 7f 4f sbci r23, 0xFF ; 255 - 6d8: 8f 4f sbci r24, 0xFF ; 255 - 6da: 9f 4f sbci r25, 0xFF ; 255 - 6dc: 08 95 ret +00000700 <__divmodsi4_neg1>: + 700: f6 f7 brtc .-4 ; 0x6fe <__divmodsi4_exit> + 702: 90 95 com r25 + 704: 80 95 com r24 + 706: 70 95 com r23 + 708: 61 95 neg r22 + 70a: 7f 4f sbci r23, 0xFF ; 255 + 70c: 8f 4f sbci r24, 0xFF ; 255 + 70e: 9f 4f sbci r25, 0xFF ; 255 + 710: 08 95 ret -000006de <_exit>: - 6de: f8 94 cli +00000712 <_exit>: + 712: f8 94 cli -000006e0 <__stop_program>: - 6e0: ff cf rjmp .-2 ; 0x6e0 <__stop_program> +00000714 <__stop_program>: + 714: ff cf rjmp .-2 ; 0x714 <__stop_program> diff --git a/Reciver/Reciver/Debug/Reciver.map b/Reciver/Reciver/Debug/Reciver.map index 0b18bab..62d90ce 100644 --- a/Reciver/Reciver/Debug/Reciver.map +++ b/Reciver/Reciver/Debug/Reciver.map @@ -124,7 +124,7 @@ LOAD c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1 .rela.plt *(.rela.plt) -.text 0x00000000 0x6e2 +.text 0x00000000 0x716 *(.vectors) .vectors 0x00000000 0x54 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/avr5/crtm16a.o 0x00000000 __vector_default @@ -200,47 +200,47 @@ LOAD c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1 0x0000008e __vector_16 0x0000008e __vector_18 0x0000008e __vector_20 - .text 0x00000092 0x2a4 Reciver.o + .text 0x00000092 0x2d8 Reciver.o 0x00000092 turn - 0x00000108 poll - 0x0000012a recive - 0x000001dc init_timer - 0x000001ec __vector_9 - 0x00000304 main - .text 0x00000336 0x32e rf12.o - 0x00000336 rf12_trans - 0x00000368 rf12_init - 0x000003bc rf12_setbandwidth - 0x000003f8 rf12_setfreq - 0x00000418 rf12_setbaud - 0x00000466 rf12_setpower - 0x00000488 rf12_ready - 0x00000490 rf12_beginasyncrx - 0x000004aa rf12_hasdata - 0x000004b4 rf12_rxbyte - 0x000004be rf12_endasyncrx - 0x000004c8 rf12_txdata - 0x00000558 rf12_rxdata - 0x000005b8 rf12_txpacket - .text 0x00000664 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/avr5\libgcc.a(_udivmodsi4.o) - .text 0x00000664 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/avr5\libgcc.a(_divmodsi4.o) - .text 0x00000664 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/avr5\libgcc.a(_exit.o) - .text 0x00000664 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/avr5\libgcc.a(_copy_data.o) - .text 0x00000664 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/avr5\libgcc.a(_clear_bss.o) - 0x00000664 . = ALIGN (0x2) + 0x00000126 poll + 0x0000016c recive + 0x00000228 init_timer + 0x00000238 __vector_9 + 0x00000336 main + .text 0x0000036a 0x32e rf12.o + 0x0000036a rf12_trans + 0x0000039c rf12_init + 0x000003f0 rf12_setbandwidth + 0x0000042c rf12_setfreq + 0x0000044c rf12_setbaud + 0x0000049a rf12_setpower + 0x000004bc rf12_ready + 0x000004c4 rf12_beginasyncrx + 0x000004de rf12_hasdata + 0x000004e8 rf12_rxbyte + 0x000004f2 rf12_endasyncrx + 0x000004fc rf12_txdata + 0x0000058c rf12_rxdata + 0x000005ec rf12_txpacket + .text 0x00000698 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/avr5\libgcc.a(_udivmodsi4.o) + .text 0x00000698 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/avr5\libgcc.a(_divmodsi4.o) + .text 0x00000698 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/avr5\libgcc.a(_exit.o) + .text 0x00000698 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/avr5\libgcc.a(_copy_data.o) + .text 0x00000698 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/avr5\libgcc.a(_clear_bss.o) + 0x00000698 . = ALIGN (0x2) *(.text.*) - .text.libgcc 0x00000664 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/avr5\libgcc.a(_udivmodsi4.o) - 0x00000664 __udivmodsi4 - .text.libgcc 0x000006a8 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/avr5\libgcc.a(_divmodsi4.o) - 0x000006a8 __divmodsi4 - .text.libgcc 0x000006de 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/avr5\libgcc.a(_exit.o) - .text.libgcc 0x000006de 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/avr5\libgcc.a(_copy_data.o) - .text.libgcc 0x000006de 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/avr5\libgcc.a(_clear_bss.o) - 0x000006de . = ALIGN (0x2) + .text.libgcc 0x00000698 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/avr5\libgcc.a(_udivmodsi4.o) + 0x00000698 __udivmodsi4 + .text.libgcc 0x000006dc 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/avr5\libgcc.a(_divmodsi4.o) + 0x000006dc __divmodsi4 + .text.libgcc 0x00000712 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/avr5\libgcc.a(_exit.o) + .text.libgcc 0x00000712 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/avr5\libgcc.a(_copy_data.o) + .text.libgcc 0x00000712 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/avr5\libgcc.a(_clear_bss.o) + 0x00000712 . = ALIGN (0x2) *(.fini9) - .fini9 0x000006de 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/avr5\libgcc.a(_exit.o) - 0x000006de _exit - 0x000006de exit + .fini9 0x00000712 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/avr5\libgcc.a(_exit.o) + 0x00000712 _exit + 0x00000712 exit *(.fini9) *(.fini8) *(.fini8) @@ -259,11 +259,11 @@ LOAD c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1 *(.fini1) *(.fini1) *(.fini0) - .fini0 0x000006de 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/avr5\libgcc.a(_exit.o) + .fini0 0x00000712 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/avr5\libgcc.a(_exit.o) *(.fini0) - 0x000006e2 _etext = . + 0x00000716 _etext = . -.data 0x00800060 0x4 load address 0x000006e2 +.data 0x00800060 0x4 load address 0x00000716 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/avr5/crtm16a.o @@ -299,8 +299,8 @@ LOAD c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1 *(.bss*) *(COMMON) 0x00800066 PROVIDE (__bss_end, .) - 0x000006e2 __data_load_start = LOADADDR (.data) - 0x000006e6 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x00000716 __data_load_start = LOADADDR (.data) + 0x0000071a __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x00800066 0x0 0x00800066 PROVIDE (__noinit_start, .) @@ -380,36 +380,36 @@ LOAD c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1 .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0xc6f +.debug_info 0x00000000 0xc9e *(.debug_info) - .debug_info 0x00000000 0x3d8 Reciver.o - .debug_info 0x000003d8 0x446 rf12.o - .debug_info 0x0000081e 0xdd c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr5\libgcc.a(_udivmodsi4.o) - .debug_info 0x000008fb 0xdd c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr5\libgcc.a(_divmodsi4.o) - .debug_info 0x000009d8 0xdd c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr5\libgcc.a(_exit.o) - .debug_info 0x00000ab5 0xdd c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr5\libgcc.a(_copy_data.o) - .debug_info 0x00000b92 0xdd c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr5\libgcc.a(_clear_bss.o) + .debug_info 0x00000000 0x407 Reciver.o + .debug_info 0x00000407 0x446 rf12.o + .debug_info 0x0000084d 0xdd c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr5\libgcc.a(_udivmodsi4.o) + .debug_info 0x0000092a 0xdd c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr5\libgcc.a(_divmodsi4.o) + .debug_info 0x00000a07 0xdd c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr5\libgcc.a(_exit.o) + .debug_info 0x00000ae4 0xdd c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr5\libgcc.a(_copy_data.o) + .debug_info 0x00000bc1 0xdd c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoolchain/bin/../lib/gcc/avr/4.6.2/avr5\libgcc.a(_clear_bss.o) *(.gnu.linkonce.wi.*) -.debug_abbrev 0x00000000 0x36d +.debug_abbrev 0x00000000 0x388 *(.debug_abbrev) - .debug_abbrev 0x00000000 0x16e Reciver.o - .debug_abbrev 0x0000016e 0x19b rf12.o - .debug_abbrev 0x00000309 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/avr5\libgcc.a(_udivmodsi4.o) - .debug_abbrev 0x0000031d 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/avr5\libgcc.a(_divmodsi4.o) - .debug_abbrev 0x00000331 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/avr5\libgcc.a(_exit.o) - .debug_abbrev 0x00000345 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/avr5\libgcc.a(_copy_data.o) - .debug_abbrev 0x00000359 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/avr5\libgcc.a(_clear_bss.o) + .debug_abbrev 0x00000000 0x189 Reciver.o + .debug_abbrev 0x00000189 0x19b rf12.o + .debug_abbrev 0x00000324 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/avr5\libgcc.a(_udivmodsi4.o) + .debug_abbrev 0x00000338 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/avr5\libgcc.a(_divmodsi4.o) + .debug_abbrev 0x0000034c 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/avr5\libgcc.a(_exit.o) + .debug_abbrev 0x00000360 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/avr5\libgcc.a(_copy_data.o) + .debug_abbrev 0x00000374 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/avr5\libgcc.a(_clear_bss.o) -.debug_line 0x00000000 0x730 +.debug_line 0x00000000 0x73b *(.debug_line) - .debug_line 0x00000000 0x21e Reciver.o - .debug_line 0x0000021e 0x222 rf12.o - .debug_line 0x00000440 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/avr5\libgcc.a(_udivmodsi4.o) - .debug_line 0x000004e8 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/avr5\libgcc.a(_divmodsi4.o) - .debug_line 0x00000589 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/avr5\libgcc.a(_exit.o) - .debug_line 0x00000611 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/avr5\libgcc.a(_copy_data.o) - .debug_line 0x000006a2 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/avr5\libgcc.a(_clear_bss.o) + .debug_line 0x00000000 0x229 Reciver.o + .debug_line 0x00000229 0x222 rf12.o + .debug_line 0x0000044b 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/avr5\libgcc.a(_udivmodsi4.o) + .debug_line 0x000004f3 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/avr5\libgcc.a(_divmodsi4.o) + .debug_line 0x00000594 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/avr5\libgcc.a(_exit.o) + .debug_line 0x0000061c 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/avr5\libgcc.a(_copy_data.o) + .debug_line 0x000006ad 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/avr5\libgcc.a(_clear_bss.o) .debug_frame 0x00000000 0x1c8 *(.debug_frame) @@ -423,10 +423,10 @@ LOAD c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1 .debug_str 0x00000164 0xf7 rf12.o 0x25b (size before relaxing) -.debug_loc 0x00000000 0x620 +.debug_loc 0x00000000 0x5fd *(.debug_loc) - .debug_loc 0x00000000 0x2de Reciver.o - .debug_loc 0x000002de 0x342 rf12.o + .debug_loc 0x00000000 0x2bb Reciver.o + .debug_loc 0x000002bb 0x342 rf12.o .debug_macinfo *(.debug_macinfo) diff --git a/Reciver/Reciver/Debug/Reciver.srec b/Reciver/Reciver/Debug/Reciver.srec index 09c109a..5a00ee1 100644 --- a/Reciver/Reciver/Debug/Reciver.srec +++ b/Reciver/Reciver/Debug/Reciver.srec @@ -1,114 +1,117 @@ S00F0000526563697665722E7372656345 S11300000C942A000C9447000C9447000C9447006D S11300100C9447000C9447000C9447000C94470040 -S11300200C9447000C94F6000C9447000C94470081 +S11300200C9447000C941C010C9447000C9447005A S11300300C9447000C9447000C9447000C94470020 S11300400C9447000C9447000C9447000C94470010 S11300500C94470011241FBECFE5D4E0DEBFCDBF12 -S113006010E0A0E6B0E0E2EEF6E002C005900D92EA +S113006010E0A0E6B0E0E6E1F7E002C005900D92F2 S1130070A436B107D9F710E0A4E6B0E001C01D92A0 -S1130080A636B107E1F70E9482010C946F030C9429 -S1130090000080916200909163008630910599F18F -S11300A086E090E0909363008093620088E790E09C -S11300B090936100809360008FEF96E1A1E18150FD -S11300C09040A040E1F700C000008CE390E09093E2 -S11300D06100809360008FEF96E1A1E18150904030 -S11300E0A040E1F700C0000084EB90E09093610031 +S1130080A636B107E1F70E949B010C9489030C94F6 +S1130090000080916200909163008630910509F41C +S11300A041C086E090E0909363008093620088E70B +S11300B090E090936100809360008FE39CE9019746 +S11300C0F1F700C00000409162005091630081E0AC +S11300D06AE00E94F6028FEF96E1A1E18150904020 +S11300E0A040E1F700C000008CE390E09093610031 S11300F0809360008FEF96E1A1E181509040A04091 -S1130100E1F700C000000895899880916200909101 -S113011063008330910541F4819B06C00E945F0215 -S11301200E9449000E9448020895CF930E94480209 -S113013002C00E9484000E9455028823D1F70E94C5 -S11301405A02882341F08A3031F0803F09F044C0DC -S113015002C00E9484000E9455028823D1F70E94A5 -S11301605A02C82F02C00E9484000E9455028823AC -S1130170D1F7C13089F50E945A02843051F085309C -S113018018F48130B1F418C0853051F0873089F407 -S11301900EC082E090E090936300809362000CC0F4 -S11301A083E090E0909363008093620005C00E9416 -S11301B049000E945F0210C00E945F028FE39CE925 -S11301C00197F1F700C00000409162005091630074 -S11301D081E06AE00E94DC02CF91089585E083BF4C -S11301E088E582BF1CBE81E089BF08951F920F92EB -S11301F00FB60F9211242F933F938F939F9388E50B -S113020082BF80916200909163008230910561F415 -S1130210209164003091650081E090E02333310542 -S11302204CF580E090E026C08091620090916300DC -S11302308330910561F4209164003091650081E080 -S113024090E026303105B4F480E090E013C0809152 -S11302506200909163008630910509F049C02091B5 -S113026064003091650081E090E02230310514F49F -S113027080E090E020916400309165002F5F3F4F53 -S113028030936500209364008130910551F4B89A4D -S1130290B09B02C0C09801C0C09A10926500109231 -S11302A06400B99AC19A8FEA94E00197F1F700C00B -S11302B0000080916000909161001816190674F492 -S11302C080E090E025E12A95F1F700000196209165 -S11302D060003091610082179307A4F3C1989F9145 -S11302E08F913F912F910F900FBE0F901F901895F3 -S11302F080916400909165000196909365008093CD -S11303006400CFCF0E94B40180E296E00E94FC0119 -S113031081E060E047E00E94DE0180E895E20E940F -S11303200C0280E066E00E9433020E94EE007894A2 -S11303300E949500FDCF949840E120E030E099239D -S113034014F4969A01C09698220F331F8399216062 -S1130350959A880F991F00C000009598415079F72D -S1130360949A822F932F089581B3806781BB949AC6 -S11303708FEF90E7A2E081509040A040E1F700C0E9 -S1130380000080EE90EC0E949B0187ED90E80E94B3 -S11303909B018BEA92EC0E949B0181E89AEC0E94FB -S11303A09B0180E090EE0E949B0180E098EC0E940B -S11303B09B0187EF94EC0E949B01089590E0880FC5 -S11303C0991F82959295907F9827807F98279070A7 -S11303D050E047705070842B952B946970E06370E3 -S11303E07070660F771F660F771F660F771F862B57 -S11303F0972B0E949B0108958036910538F02FE0D9 -S11304008034920728F08FE39FE002C080E690E0FA -S1130410906A0E949B01089522E08739920710F1A7 -S113042025E18831920780F49C0140E050E060E6C9 -S113043078EA80E090E00E945403C9010197806843 -S1130440966C0E949B0108959C0140E050E06CEF83 -S113045072E485E090E00E943203C9010197966C32 -S11304600E949B01089590E087709070986970E0F5 -S113047062957295707F7627607F76277070862BE1 -S1130480972B0E949B0108959498839BFECF089517 -S113049088EC92E80E949B0181E89AEC0E949B01FF -S11304A083E89AEC0E949B010895949881E08399D3 -S11304B080E0089580E090EB0E949B01089588E01D -S11304C092E80E949B0108950F931F93CF93DF93AB -S11304D08C01C62F88E392E80E949B010E9444028B -S11304E08AEA98EB0E949B010E9444028AEA98EBF4 -S11304F00E949B010E9444028AEA98EB0E949B019D -S11305000E9444028DE298EB0E949B010E944402E7 -S113051084ED98EB0E949B01CC2399F0C8010196CD -S1130520C1509C012C0F311DE9010E944402F801C5 -S113053081918F0190E0986B0E949B010C171D071D -S1130540A1F70E94440288E092E80E949B01DF9197 -S1130550CF911F910F9108950F931F93CF93DF9322 -S11305608C01D62F88EC92E80E949B0181E89AECDA -S11305700E949B0183E89AEC0E949B01DD2399F081 -S1130580C8010196D1509C012D0F311DE9010E9433 -S1130590440280E090EB0E949B01F80181938F015B -S11305A0EC17FD07A1F788E092E80E949B01DF9118 -S11305B0CF911F910F9108951F93CF93DF93182F1D -S11305C0D62FC42F88E392E80E949B010E94440224 -S11305D08AEA98EB0E949B010E9444028AEA98EB03 -S11305E00E949B010E9444028AEA98EB0E949B01AC -S11305F00E9444028DE298EB0E949B010E944402F7 -S113060084ED98EB0E949B010E944402812F90E0AC -S1130610986B0E949B010E9444028D2F90E0986B7E -S11306200E949B010E9444028C2F90E0986B0E94D0 -S11306309B010E94440280E098EB0E949B010E946F -S1130640440288E092E80E949B018FEF90E7A2E0C9 -S113065081509040A040E1F700C00000DF91CF91AD -S11306601F910895A1E21A2EAA1BBB1BFD010DC008 -S1130670AA1FBB1FEE1FFF1FA217B307E407F5074E -S113068020F0A21BB30BE40BF50B661F771F881F2A -S1130690991F1A9469F760957095809590959B01C0 -S11306A0AC01BD01CF01089597FB092E05260ED09C -S11306B057FD04D0D7DF0AD0001C38F4509540957C -S11306C0309521953F4F4F4F5F4F0895F6F7909522 -S11306D08095709561957F4F8F4F9F4F0895F89443 -S10506E0FFCF46 -S10706E2B40002005A +S1130100E1F700C0000084EB90E0909361008093DD +S113011060008FEF96E1A1E181509040A040E1F7AB +S113012000C0000008958998809162009091630056 +S11301308330910541F4819B06C00E9479020E949C +S113014049000E94620280916200909163008230B3 +S1130150910559F4819B09C00E94790281E06AE00B +S113016048E00E94F6020E9462020895CF930E9422 +S1130170620202C00E9493000E946F028823D1F79A +S11301800E947402882341F08A3031F0803F09F0E4 +S113019049C002C00E9493000E946F028823D1F7D5 +S11301A00E947402C82F02C00E9493000E946F0232 +S11301B08823D1F7C130B1F50E947402843051F024 +S11301C0853018F48130D9F41DC0853051F0873062 +S11301D0B1F40EC082E090E09093630080936200DB +S11301E011C083E090E090936300809362000AC0A2 +S11301F00E9479020E9449000E94620213C00E9478 +S1130200790210C00E9479028FE39CE90197F1F70B +S113021000C00000409162005091630081E06AE0F8 +S11302200E94F602CF91089585E083BF88E582BFDE +S11302301CBE81E089BF08951F920F920FB60F92E2 +S113024011242F933F938F939F9388E582BF8091CE +S11302506200909163008230910581F48091640082 +S11302609091650083339105B4F198B381E08927B7 +S113027088BB10926500109264002DC080916200CA +S1130280909163008330910581F480916400909192 +S1130290650086309105FCF098B381E0892788BB1E +S11302A0109265001092640016C0809162009091D3 +S11302B063008630910579F4809164009091650023 +S11302C08230910544F098B381E0892788BB10926D +S11302D0650010926400809164009091650001961D +S11302E09093650080936400B99AC19A8FEA94E070 +S11302F00197F1F700C000008091600090916100C7 +S11303001816190674F480E090E025E12A95F1F7B7 +S113031000000196209160003091610082179307DC +S1130320A4F3C1989F918F913F912F910F900FBE8D +S11303300F901F9018950E94CE0180E296E00E94D3 +S1130340160281E060E047E00E94F80180E895E24F +S11303500E94260280E066E00E944D020E94140181 +S1130360B89A78940E94B600FDCF949840E120E0BA +S113037030E0992314F4969A01C09698220F331F03 +S113038083992160959A880F991F00C00000959861 +S1130390415079F7949A822F932F089581B38067FF +S11303A081BB949A8FEF90E7A2E081509040A040E7 +S11303B0E1F700C0000080EE90EC0E94B50187EDEB +S11303C090E80E94B5018BEA92EC0E94B50181E8A5 +S11303D09AEC0E94B50180E090EE0E94B50180E0A5 +S11303E098EC0E94B50187EF94EC0E94B501089542 +S11303F090E0880F991F82959295907F9827807F2F +S11304009827907050E047705070842B952B946916 +S113041070E063707070660F771F660F771F660F4A +S1130420771F862B972B0E94B5010895803691057E +S113043038F02FE08034920728F08FE39FE002C069 +S113044080E690E0906A0E94B501089522E0873921 +S1130450920710F125E18831920780F49C0140E075 +S113046050E060E678EA80E090E00E946E03C90103 +S113047001978068966C0E94B50108959C0140E044 +S113048050E06CEF72E485E090E00E944C03C901F7 +S11304900197966C0E94B501089590E08770907062 +S11304A0986970E062957295707F7627607F7627F1 +S11304B07070862B972B0E94B50108959498839BA6 +S11304C0FECF089588EC92E80E94B50181E89AEC89 +S11304D00E94B50183E89AEC0E94B50108959498AE +S11304E081E0839980E0089580E090EB0E94B5015B +S11304F0089588E092E80E94B50108950F931F9330 +S1130500CF93DF938C01C62F88E392E80E94B50154 +S11305100E945E028AEA98EB0E94B5010E945E0284 +S11305208AEA98EB0E94B5010E945E028AEA98EB7F +S11305300E94B5010E945E028DE298EB0E94B50113 +S11305400E945E0284ED98EB0E94B501CC2399F0E1 +S1130550C8010196C1509C012C0F311DE9010E9474 +S11305605E02F80181918F0190E0986B0E94B501C1 +S11305700C171D07A1F70E945E0288E092E80E9412 +S1130580B501DF91CF911F910F9108950F931F93A0 +S1130590CF93DF938C01D62F88EC92E80E94B501AB +S11305A081E89AEC0E94B50183E89AEC0E94B501B7 +S11305B0DD2399F0C8010196D1509C012D0F311D06 +S11305C0E9010E945E0280E090EB0E94B501F8010F +S11305D081938F01EC17FD07A1F788E092E80E9450 +S11305E0B501DF91CF911F910F9108951F93CF9380 +S11305F0DF93182FD62FC42F88E392E80E94B50109 +S11306000E945E028AEA98EB0E94B5010E945E0293 +S11306108AEA98EB0E94B5010E945E028AEA98EB8E +S11306200E94B5010E945E028DE298EB0E94B50122 +S11306300E945E0284ED98EB0E94B5010E945E0266 +S1130640812F90E0986B0E94B5010E945E028D2F6D +S113065090E0986B0E94B5010E945E028C2F90E09E +S1130660986B0E94B5010E945E0280E098EB0E94A4 +S1130670B5010E945E0288E092E80E94B5018FEF06 +S113068090E7A2E081509040A040E1F700C0000054 +S1130690DF91CF911F910895A1E21A2EAA1BBB1BD3 +S11306A0FD010DC0AA1FBB1FEE1FFF1FA217B3073A +S11306B0E407F50720F0A21BB30BE40BF50B661F50 +S11306C0771F881F991F1A9469F760957095809514 +S11306D090959B01AC01BD01CF01089597FB092EB4 +S11306E005260ED057FD04D0D7DF0AD0001C38F4FD +S11306F050954095309521953F4F4F4F5F4F08954A +S1130700F6F790958095709561957F4F8F4F9F4F29 +S10907100895F894FFCFE8 +S1070716B400020025 S9030000FC diff --git a/Reciver/Reciver/Reciver.c b/Reciver/Reciver/Reciver.c index 8c91603..3fc9333 100644 --- a/Reciver/Reciver/Reciver.c +++ b/Reciver/Reciver/Reciver.c @@ -24,6 +24,8 @@ void turn() { return; status = RUN; servopos = RIGHT-60; + _delay_ms(10+DEVICE); + rf12_txpacket(MASTER, DEVICE, status); _delay_ms(700); servopos = RIGHT-120; _delay_ms(700); @@ -40,6 +42,13 @@ void poll() { rf12_beginasyncrx(); } } + if(status == SLEEP) { + if(PIND & (1< 50) - led = 1; + if(pwm_led > 50) { + PORTB ^= (1< 5) - led = 1; - } else if(status == RUN) { - if(pwm_led > 1) - led = 1; - } - - pwm_led++; - - if(led == 1) { - DDRB |= (1< 5) { + PORTB ^= (1< 1) { + PORTB ^= (1< e: 26 c0 rjmp .+76 ; 0x5c <__bad_interrupt> 10: 25 c0 rjmp .+74 ; 0x5c <__bad_interrupt> - 12: 65 c3 rjmp .+1738 ; 0x6de <__vector_9> + 12: 9b c3 rjmp .+1846 ; 0x74a <__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: e6 e5 ldi r30, 0x56 ; 86 + 38: e4 ec ldi r30, 0xC4 ; 196 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: a9 3a cpi r26, 0xA9 ; 169 54: b1 07 cpc r27, r17 56: e1 f7 brne .-8 ; 0x50 <.do_clear_bss_loop> - 58: 97 d3 rcall .+1838 ; 0x788
- 5a: fb c3 rjmp .+2038 ; 0x852 <_exit> + 58: ce d3 rcall .+1948 ; 0x7f6
+ 5a: 32 c4 rjmp .+2148 ; 0x8c0 <_exit> 0000005c <__bad_interrupt>: 5c: d1 cf rjmp .-94 ; 0x0 <__vectors> @@ -317,7 +317,7 @@ void rf12_setbaud(unsigned short baud) 146: 78 ea ldi r23, 0xA8 ; 168 148: 80 e0 ldi r24, 0x00 ; 0 14a: 90 e0 ldi r25, 0x00 ; 0 - 14c: 67 d3 rcall .+1742 ; 0x81c <__divmodsi4> + 14c: 9e d3 rcall .+1852 ; 0x88a <__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: 37 d3 rcall .+1646 ; 0x7d8 <__udivmodsi4> + 168: 6e d3 rcall .+1756 ; 0x846 <__udivmodsi4> 16a: c9 01 movw r24, r18 16c: 01 97 sbiw r24, 0x01 ; 1 16e: 96 6c ori r25, 0xC6 ; 198 @@ -691,8 +691,8 @@ void rf12_txpacket(uint8_t addr, uint8_t from, uint8_t data) { 30a: 08 95 ret 0000030c : -static inline void BIT_CLEAR(volatile uint8_t *target, uint8_t bit) __attribute__((always_inline)); static inline uint8_t BIT_ON(volatile uint8_t *target, uint8_t bit) __attribute__((always_inline)); +static inline void BIT_TOG(volatile uint8_t *target, uint8_t bit) __attribute__((always_inline)); void init_ports() { //LED auf Ausgang @@ -761,12 +761,12 @@ void led() { if(status_dev[i/2] == SLEEP) { 35c: 01 ea ldi r16, 0xA1 ; 161 35e: 10 e0 ldi r17, 0x00 ; 0 -static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { - *target |= (1< + 3b2: 8e c0 rjmp .+284 ; 0x4d0 <__stack+0x71> void led() { for(uint8_t i=0;i + 3fa: 6a c0 rjmp .+212 ; 0x4d0 <__stack+0x71> 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) { @@ -954,7 +954,7 @@ static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { 43a: 83 2b or r24, r19 43c: f6 01 movw r30, r12 43e: 80 83 st Z, r24 - 440: 24 c0 rjmp .+72 ; 0x48a <__stack+0x2b> + 440: 47 c0 rjmp .+142 ; 0x4d0 <__stack+0x71> 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) { @@ -964,9 +964,9 @@ static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { 442: f8 01 movw r30, r16 444: e8 0f add r30, r24 446: f9 1f adc r31, r25 - 448: 80 81 ld r24, Z - 44a: 88 23 and r24, r24 - 44c: f1 f4 brne .+60 ; 0x48a <__stack+0x2b> + 448: 30 81 ld r19, Z + 44a: 33 23 and r19, r19 + 44c: f9 f4 brne .+62 ; 0x48c <__stack+0x2d> BIT_CLEAR(led_port[i],led_pin[i]); 44e: ec 91 ld r30, X 450: f0 e0 ldi r31, 0x00 ; 0 @@ -1016,857 +1016,950 @@ static inline void BIT_CLEAR(volatile uint8_t *target, uint8_t bit) { 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> + 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> + BIT_TOG(led_port[i],led_pin[i]); + 498: ec 91 ld r30, X + 49a: f0 e0 ldi r31, 0x00 ; 0 +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 + } 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 +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 //Rows auf PullUp PORTD |= ((1< - 49c: 64 cf rjmp .-312 ; 0x366 - } 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]); + 4d0: 2e 5f subi r18, 0xFE ; 254 + 4d2: 12 96 adiw r26, 0x02 ; 2 + 4d4: 22 96 adiw r28, 0x02 ; 2 + 4d6: 4e 5f subi r20, 0xFE ; 254 + 4d8: 5f 4f sbci r21, 0xFF ; 255 + 4da: 6e 5f subi r22, 0xFE ; 254 + 4dc: 7f 4f sbci r23, 0xFF ; 255 + 4de: 2a 30 cpi r18, 0x0A ; 10 + 4e0: 09 f0 breq .+2 ; 0x4e4 <__stack+0x85> + 4e2: 41 cf rjmp .-382 ; 0x366 + } 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]); } } } - 49e: df 91 pop r29 - 4a0: cf 91 pop r28 - 4a2: 1f 91 pop r17 - 4a4: 0f 91 pop r16 - 4a6: ff 90 pop r15 - 4a8: ef 90 pop r14 - 4aa: df 90 pop r13 - 4ac: cf 90 pop r12 - 4ae: 08 95 ret + 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 -000004b0 : +000004f6 : void poll() { - 4b0: 2f 92 push r2 - 4b2: 3f 92 push r3 - 4b4: 4f 92 push r4 - 4b6: 5f 92 push r5 - 4b8: 6f 92 push r6 - 4ba: 7f 92 push r7 - 4bc: 8f 92 push r8 - 4be: 9f 92 push r9 - 4c0: af 92 push r10 - 4c2: bf 92 push r11 - 4c4: cf 92 push r12 - 4c6: df 92 push r13 - 4c8: ef 92 push r14 - 4ca: ff 92 push r15 - 4cc: 0f 93 push r16 - 4ce: 1f 93 push r17 - 4d0: cf 93 push r28 - 4d2: df 93 push r29 - led(); - 4d4: 30 df rcall .-416 ; 0x336 - 4d6: 4f e7 ldi r20, 0x7F ; 127 - 4d8: 50 e0 ldi r21, 0x00 ; 0 - 4da: 65 e7 ldi r22, 0x75 ; 117 - 4dc: 70 e0 ldi r23, 0x00 ; 0 - 4de: cb e6 ldi r28, 0x6B ; 107 - 4e0: d0 e0 ldi r29, 0x00 ; 0 - 4e2: 01 e6 ldi r16, 0x61 ; 97 - 4e4: 10 e0 ldi r17, 0x00 ; 0 - uint8_t to = 0; - uint8_t data = 0; - - for(uint8_t i=0;i - 50c: 44 0f add r20, r20 - 50e: 55 1f adc r21, r21 - 510: 0a 94 dec r0 - 512: e2 f7 brpl .-8 ; 0x50c - 514: 94 2f mov r25, r20 - 516: 90 95 com r25 - 518: 89 23 and r24, r25 - 51a: 8c 93 st X, r24 + 54a: a7 01 movw r20, r14 + 54c: 00 80 ld r0, Z + 54e: 02 c0 rjmp .+4 ; 0x554 + 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 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 51c: 00 00 nop - BIT_CLEAR(led_port[i],led_pin[i]); - BIT_CLEAR(led_port[i+1],led_pin[i+1]); + 560: 00 00 nop + BIT_TOG(led_port[i],led_pin[i]); + BIT_TOG(led_port[i+1],led_pin[i+1]); } } } void poll() { - 51e: 4e 01 movw r8, r28 - 520: fe 01 movw r30, r28 - 522: 31 97 sbiw r30, 0x01 ; 1 + 562: 4e 01 movw r8, r28 + 564: fe 01 movw r30, r28 + 566: 31 97 sbiw r30, 0x01 ; 1 for(uint8_t i=0;i - 536: 88 0f add r24, r24 - 538: 99 1f adc r25, r25 - 53a: 0a 94 dec r0 - 53c: e2 f7 brpl .-8 ; 0x536 - 53e: 83 23 and r24, r19 + 574: c7 01 movw r24, r14 + 576: 00 80 ld r0, Z + 578: 02 c0 rjmp .+4 ; 0x57e + 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 for(uint8_t i=0;i + 584: b1 f4 brne .+44 ; 0x5b2 if(status_dev[i/2] == SLEEP) { - 542: 82 2f mov r24, r18 - 544: 86 95 lsr r24 - 546: e1 ea ldi r30, 0xA1 ; 161 - 548: f0 e0 ldi r31, 0x00 ; 0 - 54a: e8 0f add r30, r24 - 54c: f1 1d adc r31, r1 - 54e: 90 81 ld r25, Z - 550: 92 30 cpi r25, 0x02 ; 2 - 552: 29 f4 brne .+10 ; 0x55e + 586: 82 2f mov r24, r18 + 588: 86 95 lsr r24 + 58a: e1 ea ldi r30, 0xA1 ; 161 + 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 data = SETACTIVE; - 554: 0f 2e mov r0, r31 - 556: f5 e0 ldi r31, 0x05 ; 5 - 558: 2f 2e mov r2, r31 - 55a: f0 2d mov r31, r0 - 55c: 03 c0 rjmp .+6 ; 0x564 + 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 } else { data = SETSLEEP; - 55e: 22 24 eor r2, r2 - 560: 68 94 set - 562: 22 f8 bld r2, 2 + 5a2: 22 24 eor r2, r2 + 5a4: 68 94 set + 5a6: 22 f8 bld r2, 2 } //Device to = (i/2)+10; - 564: 0f 2e mov r0, r31 - 566: fa e0 ldi r31, 0x0A ; 10 - 568: 3f 2e mov r3, r31 - 56a: f0 2d mov r31, r0 - 56c: 38 0e add r3, r24 + 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 recive(); } } static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { *target |= (1< - 586: 44 0f add r20, r20 - 588: 55 1f adc r21, r21 - 58a: 0a 94 dec r0 - 58c: e2 f7 brpl .-8 ; 0x586 - 58e: 94 2f mov r25, r20 - 590: 90 95 com r25 - 592: 89 23 and r24, r25 - 594: 8c 93 st X, r24 - 596: 00 00 nop + 5c0: 8c 91 ld r24, X + 5c2: a7 01 movw r20, r14 + 5c4: f3 01 movw r30, r6 + 5c6: 00 80 ld r0, Z + 5c8: 02 c0 rjmp .+4 ; 0x5ce + 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 _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])) { - 598: f4 01 movw r30, r8 - 59a: 80 81 ld r24, Z - 59c: e8 2f mov r30, r24 - 59e: f0 e0 ldi r31, 0x00 ; 0 + 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 static inline void BIT_CLEAR(volatile uint8_t *target, uint8_t bit) { *target &= ~(1< - 5aa: 88 0f add r24, r24 - 5ac: 99 1f adc r25, r25 - 5ae: 0a 94 dec r0 - 5b0: e2 f7 brpl .-8 ; 0x5aa - 5b2: 83 23 and r24, r19 + 5e4: 30 81 ld r19, Z + 5e6: c7 01 movw r24, r14 + 5e8: f2 01 movw r30, r4 + 5ea: 00 80 ld r0, Z + 5ec: 02 c0 rjmp .+4 ; 0x5f2 + 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 _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])) { - 5b4: 59 f4 brne .+22 ; 0x5cc + 5f8: 59 f4 brne .+22 ; 0x610 data = SETRUN; //Device to = (i/2)+10; - 5b6: 82 2f mov r24, r18 - 5b8: 86 95 lsr r24 - 5ba: 0f 2e mov r0, r31 - 5bc: fa e0 ldi r31, 0x0A ; 10 - 5be: 3f 2e mov r3, r31 - 5c0: f0 2d mov r31, r0 - 5c2: 38 0e add r3, r24 + 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 //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; - 5c4: 0f 2e mov r0, r31 - 5c6: f7 e0 ldi r31, 0x07 ; 7 - 5c8: 2f 2e mov r2, r31 - 5ca: f0 2d mov r31, r0 + 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 recive(); } } static inline void BIT_SET(volatile uint8_t *target, uint8_t bit) { *target |= (1< - 5ec: 83 cf rjmp .-250 ; 0x4f4 + 618: 2e 5f subi r18, 0xFE ; 254 + 61a: 82 e0 ldi r24, 0x02 ; 2 + 61c: 90 e0 ldi r25, 0x00 ; 0 + 61e: c8 0e add r12, r24 + 620: d9 1e adc r13, r25 + 622: 6e 5f subi r22, 0xFE ; 254 + 624: 7f 4f sbci r23, 0xFF ; 255 + 626: 22 96 adiw r28, 0x02 ; 2 + 628: 0e 5f subi r16, 0xFE ; 254 + 62a: 1f 4f sbci r17, 0xFF ; 255 + 62c: 2a 30 cpi r18, 0x0A ; 10 + 62e: 09 f0 breq .+2 ; 0x632 + 630: 83 cf rjmp .-250 ; 0x538 to = (i/2)+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) { - 5ee: 33 20 and r3, r3 - 5f0: e1 f0 breq .+56 ; 0x62a - 5f2: 22 20 and r2, r2 - 5f4: d1 f0 breq .+52 ; 0x62a + 632: 33 20 and r3, r3 + 634: e1 f0 breq .+56 ; 0x66e + 636: 22 20 and r2, r2 + 638: d1 f0 breq .+52 ; 0x66e cli(); - 5f6: f8 94 cli + 63a: f8 94 cli DDRC |= (1< + 640: c0 dd rcall .-1152 ; 0x1c2 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 5fe: af e3 ldi r26, 0x3F ; 63 - 600: bc e9 ldi r27, 0x9C ; 156 - 602: 11 97 sbiw r26, 0x01 ; 1 - 604: f1 f7 brne .-4 ; 0x602 - 606: 00 c0 rjmp .+0 ; 0x608 - 608: 00 00 nop + 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 _delay_ms(20); rf12_txpacket(to, MASTER, data); - 60a: 83 2d mov r24, r3 - 60c: 61 e0 ldi r22, 0x01 ; 1 - 60e: 42 2d mov r20, r2 - 610: 3f de rcall .-898 ; 0x290 + 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 PORTC &= ~(1< - 622: 00 c0 rjmp .+0 ; 0x624 - 624: 00 00 nop + 656: ad 98 cbi 0x15, 5 ; 21 + 658: 8f e7 ldi r24, 0x7F ; 127 + 65a: 98 e3 ldi r25, 0x38 ; 56 + 65c: a1 e0 ldi r26, 0x01 ; 1 + 65e: 81 50 subi r24, 0x01 ; 1 + 660: 90 40 sbci r25, 0x00 ; 0 + 662: a0 40 sbci r26, 0x00 ; 0 + 664: e1 f7 brne .-8 ; 0x65e + 666: 00 c0 rjmp .+0 ; 0x668 + 668: 00 00 nop _delay_ms(50); rf12_beginasyncrx(); - 626: ba dd rcall .-1164 ; 0x19c + 66a: 98 dd rcall .-1232 ; 0x19c sei(); - 628: 78 94 sei + 66c: 78 94 sei } } - 62a: df 91 pop r29 - 62c: cf 91 pop r28 - 62e: 1f 91 pop r17 - 630: 0f 91 pop r16 - 632: ff 90 pop r15 - 634: ef 90 pop r14 - 636: df 90 pop r13 - 638: cf 90 pop r12 - 63a: bf 90 pop r11 - 63c: af 90 pop r10 - 63e: 9f 90 pop r9 - 640: 8f 90 pop r8 - 642: 7f 90 pop r7 - 644: 6f 90 pop r6 - 646: 5f 90 pop r5 - 648: 4f 90 pop r4 - 64a: 3f 90 pop r3 - 64c: 2f 90 pop r2 - 64e: 08 95 ret + 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 -00000650 : +00000694 : void recive() { - 650: cf 93 push r28 + 694: cf 93 push r28 rf12_beginasyncrx(); - 652: a4 dd rcall .-1208 ; 0x19c + 696: 82 dd rcall .-1276 ; 0x19c while(rf12_hasdata()) { - 654: 01 c0 rjmp .+2 ; 0x658 + 698: 01 c0 rjmp .+2 ; 0x69c poll(); - 656: 2c df rcall .-424 ; 0x4b0 + 69a: 2d df rcall .-422 ; 0x4f6 } } void recive() { rf12_beginasyncrx(); while(rf12_hasdata()) { - 658: ab dd rcall .-1194 ; 0x1b0 - 65a: 88 23 and r24, r24 - 65c: e1 f7 brne .-8 ; 0x656 + 69c: 89 dd rcall .-1262 ; 0x1b0 + 69e: 88 23 and r24, r24 + 6a0: e1 f7 brne .-8 ; 0x69a poll(); } uint8_t addr = rf12_rxbyte(); - 65e: ad dd rcall .-1190 ; 0x1ba + 6a2: 8b dd rcall .-1258 ; 0x1ba if(addr == ALL || addr == MASTER) { - 660: 82 30 cpi r24, 0x02 ; 2 - 662: d8 f5 brcc .+118 ; 0x6da - 664: 01 c0 rjmp .+2 ; 0x668 + 6a4: 82 30 cpi r24, 0x02 ; 2 + 6a6: 08 f0 brcs .+2 ; 0x6aa + 6a8: 4e c0 rjmp .+156 ; 0x746 + 6aa: 01 c0 rjmp .+2 ; 0x6ae while(rf12_hasdata()) { poll(); - 666: 24 df rcall .-440 ; 0x4b0 + 6ac: 24 df rcall .-440 ; 0x4f6 while(rf12_hasdata()) { poll(); } uint8_t addr = rf12_rxbyte(); if(addr == ALL || addr == MASTER) { while(rf12_hasdata()) { - 668: a3 dd rcall .-1210 ; 0x1b0 - 66a: 88 23 and r24, r24 - 66c: e1 f7 brne .-8 ; 0x666 + 6ae: 80 dd rcall .-1280 ; 0x1b0 + 6b0: 88 23 and r24, r24 + 6b2: e1 f7 brne .-8 ; 0x6ac poll(); } uint8_t from = rf12_rxbyte(); - 66e: a5 dd rcall .-1206 ; 0x1ba + 6b4: 82 dd rcall .-1276 ; 0x1ba if(from != MASTER) { - 670: 81 30 cpi r24, 0x01 ; 1 - 672: 99 f1 breq .+102 ; 0x6da + 6b6: 81 30 cpi r24, 0x01 ; 1 + 6b8: 09 f4 brne .+2 ; 0x6bc + 6ba: 45 c0 rjmp .+138 ; 0x746 from = (from/10)-1; - 674: 6a e0 ldi r22, 0x0A ; 10 - 676: a4 d0 rcall .+328 ; 0x7c0 <__udivmodqi4> - 678: c8 2f mov r28, r24 - 67a: c1 50 subi r28, 0x01 ; 1 + 6bc: 6a e0 ldi r22, 0x0A ; 10 + 6be: b7 d0 rcall .+366 ; 0x82e <__udivmodqi4> + 6c0: c8 2f mov r28, r24 + 6c2: c1 50 subi r28, 0x01 ; 1 while(rf12_hasdata()) { - 67c: 01 c0 rjmp .+2 ; 0x680 + 6c4: 01 c0 rjmp .+2 ; 0x6c8 poll(); - 67e: 18 df rcall .-464 ; 0x4b0 + 6c6: 17 df rcall .-466 ; 0x4f6 poll(); } uint8_t from = rf12_rxbyte(); if(from != MASTER) { from = (from/10)-1; while(rf12_hasdata()) { - 680: 97 dd rcall .-1234 ; 0x1b0 - 682: 88 23 and r24, r24 - 684: e1 f7 brne .-8 ; 0x67e + 6c8: 73 dd rcall .-1306 ; 0x1b0 + 6ca: 88 23 and r24, r24 + 6cc: e1 f7 brne .-8 ; 0x6c6 poll(); } uint8_t data = rf12_rxbyte(); - 686: 99 dd rcall .-1230 ; 0x1ba + 6ce: 75 dd rcall .-1302 ; 0x1ba switch(data) { - 688: 83 30 cpi r24, 0x03 ; 3 - 68a: 81 f0 breq .+32 ; 0x6ac - 68c: 86 30 cpi r24, 0x06 ; 6 - 68e: d1 f0 breq .+52 ; 0x6c4 - 690: 82 30 cpi r24, 0x02 ; 2 - 692: 19 f5 brne .+70 ; 0x6da + 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: a9 f5 brne .+106 ; 0x746 + 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: 81 f5 brne .+96 ; 0x746 + 6e6: 24 c0 rjmp .+72 ; 0x730 case SLEEP: { status_dev[from] = SLEEP; - 694: 8c 2f mov r24, r28 - 696: 90 e0 ldi r25, 0x00 ; 0 - 698: fc 01 movw r30, r24 - 69a: ef 55 subi r30, 0x5F ; 95 - 69c: ff 4f sbci r31, 0xFF ; 255 - 69e: 22 e0 ldi r18, 0x02 ; 2 - 6a0: 20 83 st Z, r18 + 6e8: 8c 2f mov r24, r28 + 6ea: 90 e0 ldi r25, 0x00 ; 0 + 6ec: fc 01 movw r30, r24 + 6ee: ef 55 subi r30, 0x5F ; 95 + 6f0: ff 4f sbci r31, 0xFF ; 255 + 6f2: 22 e0 ldi r18, 0x02 ; 2 + 6f4: 20 83 st Z, r18 status_count[from] = 0; - 6a2: 84 56 subi r24, 0x64 ; 100 - 6a4: 9f 4f sbci r25, 0xFF ; 255 - 6a6: fc 01 movw r30, r24 - 6a8: 10 82 st Z, r1 + 6f6: 84 56 subi r24, 0x64 ; 100 + 6f8: 9f 4f sbci r25, 0xFF ; 255 + 6fa: fc 01 movw r30, r24 + 6fc: 10 82 st Z, r1 return; - 6aa: 17 c0 rjmp .+46 ; 0x6da + 6fe: 23 c0 rjmp .+70 ; 0x746 } case ACTIVE: { status_dev[from] = ACTIVE; - 6ac: 8c 2f mov r24, r28 - 6ae: 90 e0 ldi r25, 0x00 ; 0 - 6b0: fc 01 movw r30, r24 - 6b2: ef 55 subi r30, 0x5F ; 95 - 6b4: ff 4f sbci r31, 0xFF ; 255 - 6b6: 23 e0 ldi r18, 0x03 ; 3 - 6b8: 20 83 st Z, r18 + 700: 8c 2f mov r24, r28 + 702: 90 e0 ldi r25, 0x00 ; 0 + 704: fc 01 movw r30, r24 + 706: ef 55 subi r30, 0x5F ; 95 + 708: ff 4f sbci r31, 0xFF ; 255 + 70a: 23 e0 ldi r18, 0x03 ; 3 + 70c: 20 83 st Z, r18 status_count[from] = 0; - 6ba: 84 56 subi r24, 0x64 ; 100 - 6bc: 9f 4f sbci r25, 0xFF ; 255 - 6be: fc 01 movw r30, r24 - 6c0: 10 82 st Z, r1 + 70e: 84 56 subi r24, 0x64 ; 100 + 710: 9f 4f sbci r25, 0xFF ; 255 + 712: fc 01 movw r30, r24 + 714: 10 82 st Z, r1 return; - 6c2: 0b c0 rjmp .+22 ; 0x6da + 716: 17 c0 rjmp .+46 ; 0x746 } case RUN: { status_dev[from] = RUN; - 6c4: 8c 2f mov r24, r28 - 6c6: 90 e0 ldi r25, 0x00 ; 0 - 6c8: fc 01 movw r30, r24 - 6ca: ef 55 subi r30, 0x5F ; 95 - 6cc: ff 4f sbci r31, 0xFF ; 255 - 6ce: 26 e0 ldi r18, 0x06 ; 6 - 6d0: 20 83 st Z, r18 + 718: 8c 2f mov r24, r28 + 71a: 90 e0 ldi r25, 0x00 ; 0 + 71c: fc 01 movw r30, r24 + 71e: ef 55 subi r30, 0x5F ; 95 + 720: ff 4f sbci r31, 0xFF ; 255 + 722: 26 e0 ldi r18, 0x06 ; 6 + 724: 20 83 st Z, r18 status_count[from] = 0; - 6d2: 84 56 subi r24, 0x64 ; 100 - 6d4: 9f 4f sbci r25, 0xFF ; 255 - 6d6: fc 01 movw r30, r24 - 6d8: 10 82 st Z, r1 + 726: 84 56 subi r24, 0x64 ; 100 + 728: 9f 4f sbci r25, 0xFF ; 255 + 72a: fc 01 movw r30, r24 + 72c: 10 82 st Z, r1 + return; + 72e: 0b c0 rjmp .+22 ; 0x746 + } + 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: ef 55 subi r30, 0x5F ; 95 + 738: ff 4f sbci r31, 0xFF ; 255 + 73a: 28 e0 ldi r18, 0x08 ; 8 + 73c: 20 83 st Z, r18 + status_count[from] = 0; + 73e: 84 56 subi r24, 0x64 ; 100 + 740: 9f 4f sbci r25, 0xFF ; 255 + 742: fc 01 movw r30, r24 + 744: 10 82 st Z, r1 return; } } } } } - 6da: cf 91 pop r28 - 6dc: 08 95 ret + 746: cf 91 pop r28 + 748: 08 95 ret -000006de <__vector_9>: +0000074a <__vector_9>: // Timer 0 overflow interrupt service routine ISR(TIMER0_OVF_vect) { - 6de: 1f 92 push r1 - 6e0: 0f 92 push r0 - 6e2: 0f b6 in r0, 0x3f ; 63 - 6e4: 0f 92 push r0 - 6e6: 11 24 eor r1, r1 - 6e8: 2f 93 push r18 - 6ea: 3f 93 push r19 - 6ec: 4f 93 push r20 - 6ee: 5f 93 push r21 - 6f0: 6f 93 push r22 - 6f2: 7f 93 push r23 - 6f4: 8f 93 push r24 - 6f6: 9f 93 push r25 - 6f8: af 93 push r26 - 6fa: bf 93 push r27 - 6fc: ef 93 push r30 - 6fe: ff 93 push r31 + 74a: 1f 92 push r1 + 74c: 0f 92 push r0 + 74e: 0f b6 in r0, 0x3f ; 63 + 750: 0f 92 push r0 + 752: 11 24 eor r1, r1 + 754: 2f 93 push r18 + 756: 3f 93 push r19 + 758: 4f 93 push r20 + 75a: 5f 93 push r21 + 75c: 6f 93 push r22 + 75e: 7f 93 push r23 + 760: 8f 93 push r24 + 762: 9f 93 push r25 + 764: af 93 push r26 + 766: bf 93 push r27 + 768: ef 93 push r30 + 76a: ff 93 push r31 + led(); + 76c: e4 dd rcall .-1080 ; 0x336 if(timer2s < 16) { - 700: 80 91 a6 00 lds r24, 0x00A6 - 704: 80 31 cpi r24, 0x10 ; 16 - 706: 30 f4 brcc .+12 ; 0x714 <__vector_9+0x36> + 76e: 80 91 a6 00 lds r24, 0x00A6 + 772: 80 31 cpi r24, 0x10 ; 16 + 774: 30 f4 brcc .+12 ; 0x782 <__vector_9+0x38> timer2s++; - 708: 80 91 a6 00 lds r24, 0x00A6 - 70c: 8f 5f subi r24, 0xFF ; 255 - 70e: 80 93 a6 00 sts 0x00A6, r24 + 776: 80 91 a6 00 lds r24, 0x00A6 + 77a: 8f 5f subi r24, 0xFF ; 255 + 77c: 80 93 a6 00 sts 0x00A6, r24 return; - 712: 23 c0 rjmp .+70 ; 0x75a <__vector_9+0x7c> + 780: 23 c0 rjmp .+70 ; 0x7c8 <__vector_9+0x7e> } timer2s = 0; - 714: 10 92 a6 00 sts 0x00A6, r1 + 782: 10 92 a6 00 sts 0x00A6, r1 rf12_endasyncrx(); - 718: 54 dd rcall .-1368 ; 0x1c2 + 786: 1d dd rcall .-1478 ; 0x1c2 rf12_txpacket(ALL, MASTER, PING); - 71a: 80 e0 ldi r24, 0x00 ; 0 - 71c: 61 e0 ldi r22, 0x01 ; 1 - 71e: 41 e0 ldi r20, 0x01 ; 1 - 720: b7 dd rcall .-1170 ; 0x290 - 722: 80 e0 ldi r24, 0x00 ; 0 - 724: 90 e0 ldi r25, 0x00 ; 0 + 788: 80 e0 ldi r24, 0x00 ; 0 + 78a: 61 e0 ldi r22, 0x01 ; 1 + 78c: 41 e0 ldi r20, 0x01 ; 1 + 78e: 80 dd rcall .-1280 ; 0x290 + 790: 80 e0 ldi r24, 0x00 ; 0 + 792: 90 e0 ldi r25, 0x00 ; 0 for(uint8_t i=0;i 10) { - 726: 2c e9 ldi r18, 0x9C ; 156 - 728: 30 e0 ldi r19, 0x00 ; 0 + 794: 2c e9 ldi r18, 0x9C ; 156 + 796: 30 e0 ldi r19, 0x00 ; 0 status_dev[i] = 0; - 72a: 41 ea ldi r20, 0xA1 ; 161 - 72c: 50 e0 ldi r21, 0x00 ; 0 + 798: 41 ea ldi r20, 0xA1 ; 161 + 79a: 50 e0 ldi r21, 0x00 ; 0 } timer2s = 0; rf12_endasyncrx(); rf12_txpacket(ALL, MASTER, PING); for(uint8_t i=0;i 10) { - 72e: f9 01 movw r30, r18 - 730: e8 0f add r30, r24 - 732: f9 1f adc r31, r25 - 734: 60 81 ld r22, Z - 736: 6b 30 cpi r22, 0x0B ; 11 - 738: 28 f0 brcs .+10 ; 0x744 <__vector_9+0x66> + 79c: f9 01 movw r30, r18 + 79e: e8 0f add r30, r24 + 7a0: f9 1f adc r31, r25 + 7a2: 60 81 ld r22, Z + 7a4: 6b 30 cpi r22, 0x0B ; 11 + 7a6: 28 f0 brcs .+10 ; 0x7b2 <__vector_9+0x68> status_dev[i] = 0; - 73a: fa 01 movw r30, r20 - 73c: e8 0f add r30, r24 - 73e: f9 1f adc r31, r25 - 740: 10 82 st Z, r1 - 742: 06 c0 rjmp .+12 ; 0x750 <__vector_9+0x72> + 7a8: fa 01 movw r30, r20 + 7aa: e8 0f add r30, r24 + 7ac: f9 1f adc r31, r25 + 7ae: 10 82 st Z, r1 + 7b0: 06 c0 rjmp .+12 ; 0x7be <__vector_9+0x74> } else { status_count[i]++; - 744: f9 01 movw r30, r18 - 746: e8 0f add r30, r24 - 748: f9 1f adc r31, r25 - 74a: 60 81 ld r22, Z - 74c: 6f 5f subi r22, 0xFF ; 255 - 74e: 60 83 st Z, r22 - 750: 01 96 adiw r24, 0x01 ; 1 + 7b2: f9 01 movw r30, r18 + 7b4: e8 0f add r30, r24 + 7b6: f9 1f adc r31, r25 + 7b8: 60 81 ld r22, Z + 7ba: 6f 5f subi r22, 0xFF ; 255 + 7bc: 60 83 st Z, r22 + 7be: 01 96 adiw r24, 0x01 ; 1 return; } timer2s = 0; rf12_endasyncrx(); rf12_txpacket(ALL, MASTER, PING); for(uint8_t i=0;i + 7c0: 85 30 cpi r24, 0x05 ; 5 + 7c2: 91 05 cpc r25, r1 + 7c4: 59 f7 brne .-42 ; 0x79c <__vector_9+0x52> status_dev[i] = 0; } else { status_count[i]++; } } rf12_beginasyncrx(); - 758: 21 dd rcall .-1470 ; 0x19c + 7c6: ea dc rcall .-1580 ; 0x19c } - 75a: ff 91 pop r31 - 75c: ef 91 pop r30 - 75e: bf 91 pop r27 - 760: af 91 pop r26 - 762: 9f 91 pop r25 - 764: 8f 91 pop r24 - 766: 7f 91 pop r23 - 768: 6f 91 pop r22 - 76a: 5f 91 pop r21 - 76c: 4f 91 pop r20 - 76e: 3f 91 pop r19 - 770: 2f 91 pop r18 - 772: 0f 90 pop r0 - 774: 0f be out 0x3f, r0 ; 63 - 776: 0f 90 pop r0 - 778: 1f 90 pop r1 - 77a: 18 95 reti + 7c8: ff 91 pop r31 + 7ca: ef 91 pop r30 + 7cc: bf 91 pop r27 + 7ce: af 91 pop r26 + 7d0: 9f 91 pop r25 + 7d2: 8f 91 pop r24 + 7d4: 7f 91 pop r23 + 7d6: 6f 91 pop r22 + 7d8: 5f 91 pop r21 + 7da: 4f 91 pop r20 + 7dc: 3f 91 pop r19 + 7de: 2f 91 pop r18 + 7e0: 0f 90 pop r0 + 7e2: 0f be out 0x3f, r0 ; 63 + 7e4: 0f 90 pop r0 + 7e6: 1f 90 pop r1 + 7e8: 18 95 reti -0000077c : +000007ea : void init_timer() { // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 7,813 kHz TCCR0=(1<: +000007f6
: int main(void) { rf12_init(); // ein paar Register setzen (z.B. CLK auf 10MHz) - 788: 83 dc rcall .-1786 ; 0x90 + 7f6: 4c dc rcall .-1896 ; 0x90 //rf12_ready(); rf12_setfreq(RF12FREQ(433.92)); // Sende/Empfangsfrequenz auf 433,92MHz einstellen - 78a: 80 e2 ldi r24, 0x20 ; 32 - 78c: 96 e0 ldi r25, 0x06 ; 6 - 78e: c0 dc rcall .-1664 ; 0x110 + 7f8: 80 e2 ldi r24, 0x20 ; 32 + 7fa: 96 e0 ldi r25, 0x06 ; 6 + 7fc: 89 dc rcall .-1774 ; 0x110 rf12_setbandwidth(1, 0, 7); // 400kHz Bandbreite, 0dB Verstärkung, DRSSI threshold: -61dBm - 790: 81 e0 ldi r24, 0x01 ; 1 - 792: 60 e0 ldi r22, 0x00 ; 0 - 794: 47 e0 ldi r20, 0x07 ; 7 - 796: 9f dc rcall .-1730 ; 0xd6 + 7fe: 81 e0 ldi r24, 0x01 ; 1 + 800: 60 e0 ldi r22, 0x00 ; 0 + 802: 47 e0 ldi r20, 0x07 ; 7 + 804: 68 dc rcall .-1840 ; 0xd6 rf12_setbaud(9600); // 19200 baud - 798: 80 e8 ldi r24, 0x80 ; 128 - 79a: 95 e2 ldi r25, 0x25 ; 37 - 79c: c8 dc rcall .-1648 ; 0x12e + 806: 80 e8 ldi r24, 0x80 ; 128 + 808: 95 e2 ldi r25, 0x25 ; 37 + 80a: 91 dc rcall .-1758 ; 0x12e rf12_setpower(0, 6); // 1mW Ausgangsleistung, 120kHz Frequenzshift - 79e: 80 e0 ldi r24, 0x00 ; 0 - 7a0: 66 e0 ldi r22, 0x06 ; 6 - 7a2: e8 dc rcall .-1584 ; 0x174 + 80c: 80 e0 ldi r24, 0x00 ; 0 + 80e: 66 e0 ldi r22, 0x06 ; 6 + 810: b1 dc rcall .-1694 ; 0x174 init_ports(); - 7a4: b3 dd rcall .-1178 ; 0x30c + 812: 7c dd rcall .-1288 ; 0x30c init_timer(); - 7a6: ea df rcall .-44 ; 0x77c + 814: ea df rcall .-44 ; 0x7ea sei(); - 7a8: 78 94 sei - 7aa: 8f ef ldi r24, 0xFF ; 255 - 7ac: 90 e7 ldi r25, 0x70 ; 112 - 7ae: a2 e0 ldi r26, 0x02 ; 2 - 7b0: 81 50 subi r24, 0x01 ; 1 - 7b2: 90 40 sbci r25, 0x00 ; 0 - 7b4: a0 40 sbci r26, 0x00 ; 0 - 7b6: e1 f7 brne .-8 ; 0x7b0 - 7b8: 00 c0 rjmp .+0 ; 0x7ba - 7ba: 00 00 nop + 816: 78 94 sei + 818: 8f ef ldi r24, 0xFF ; 255 + 81a: 90 e7 ldi r25, 0x70 ; 112 + 81c: a2 e0 ldi r26, 0x02 ; 2 + 81e: 81 50 subi r24, 0x01 ; 1 + 820: 90 40 sbci r25, 0x00 ; 0 + 822: a0 40 sbci r26, 0x00 ; 0 + 824: e1 f7 brne .-8 ; 0x81e + 826: 00 c0 rjmp .+0 ; 0x828 + 828: 00 00 nop _delay_ms(100); while(1) { recive(); - 7bc: 49 df rcall .-366 ; 0x650 - 7be: fe cf rjmp .-4 ; 0x7bc + 82a: 34 df rcall .-408 ; 0x694 + 82c: fe cf rjmp .-4 ; 0x82a -000007c0 <__udivmodqi4>: - 7c0: 99 1b sub r25, r25 - 7c2: 79 e0 ldi r23, 0x09 ; 9 - 7c4: 04 c0 rjmp .+8 ; 0x7ce <__udivmodqi4_ep> +0000082e <__udivmodqi4>: + 82e: 99 1b sub r25, r25 + 830: 79 e0 ldi r23, 0x09 ; 9 + 832: 04 c0 rjmp .+8 ; 0x83c <__udivmodqi4_ep> -000007c6 <__udivmodqi4_loop>: - 7c6: 99 1f adc r25, r25 - 7c8: 96 17 cp r25, r22 - 7ca: 08 f0 brcs .+2 ; 0x7ce <__udivmodqi4_ep> - 7cc: 96 1b sub r25, r22 +00000834 <__udivmodqi4_loop>: + 834: 99 1f adc r25, r25 + 836: 96 17 cp r25, r22 + 838: 08 f0 brcs .+2 ; 0x83c <__udivmodqi4_ep> + 83a: 96 1b sub r25, r22 -000007ce <__udivmodqi4_ep>: - 7ce: 88 1f adc r24, r24 - 7d0: 7a 95 dec r23 - 7d2: c9 f7 brne .-14 ; 0x7c6 <__udivmodqi4_loop> - 7d4: 80 95 com r24 - 7d6: 08 95 ret +0000083c <__udivmodqi4_ep>: + 83c: 88 1f adc r24, r24 + 83e: 7a 95 dec r23 + 840: c9 f7 brne .-14 ; 0x834 <__udivmodqi4_loop> + 842: 80 95 com r24 + 844: 08 95 ret -000007d8 <__udivmodsi4>: - 7d8: a1 e2 ldi r26, 0x21 ; 33 - 7da: 1a 2e mov r1, r26 - 7dc: aa 1b sub r26, r26 - 7de: bb 1b sub r27, r27 - 7e0: fd 01 movw r30, r26 - 7e2: 0d c0 rjmp .+26 ; 0x7fe <__udivmodsi4_ep> +00000846 <__udivmodsi4>: + 846: a1 e2 ldi r26, 0x21 ; 33 + 848: 1a 2e mov r1, r26 + 84a: aa 1b sub r26, r26 + 84c: bb 1b sub r27, r27 + 84e: fd 01 movw r30, r26 + 850: 0d c0 rjmp .+26 ; 0x86c <__udivmodsi4_ep> -000007e4 <__udivmodsi4_loop>: - 7e4: aa 1f adc r26, r26 - 7e6: bb 1f adc r27, r27 - 7e8: ee 1f adc r30, r30 - 7ea: ff 1f adc r31, r31 - 7ec: a2 17 cp r26, r18 - 7ee: b3 07 cpc r27, r19 - 7f0: e4 07 cpc r30, r20 - 7f2: f5 07 cpc r31, r21 - 7f4: 20 f0 brcs .+8 ; 0x7fe <__udivmodsi4_ep> - 7f6: a2 1b sub r26, r18 - 7f8: b3 0b sbc r27, r19 - 7fa: e4 0b sbc r30, r20 - 7fc: f5 0b sbc r31, r21 +00000852 <__udivmodsi4_loop>: + 852: aa 1f adc r26, r26 + 854: bb 1f adc r27, r27 + 856: ee 1f adc r30, r30 + 858: ff 1f adc r31, r31 + 85a: a2 17 cp r26, r18 + 85c: b3 07 cpc r27, r19 + 85e: e4 07 cpc r30, r20 + 860: f5 07 cpc r31, r21 + 862: 20 f0 brcs .+8 ; 0x86c <__udivmodsi4_ep> + 864: a2 1b sub r26, r18 + 866: b3 0b sbc r27, r19 + 868: e4 0b sbc r30, r20 + 86a: f5 0b sbc r31, r21 -000007fe <__udivmodsi4_ep>: - 7fe: 66 1f adc r22, r22 - 800: 77 1f adc r23, r23 - 802: 88 1f adc r24, r24 - 804: 99 1f adc r25, r25 - 806: 1a 94 dec r1 - 808: 69 f7 brne .-38 ; 0x7e4 <__udivmodsi4_loop> - 80a: 60 95 com r22 - 80c: 70 95 com r23 - 80e: 80 95 com r24 - 810: 90 95 com r25 - 812: 9b 01 movw r18, r22 - 814: ac 01 movw r20, r24 - 816: bd 01 movw r22, r26 - 818: cf 01 movw r24, r30 - 81a: 08 95 ret +0000086c <__udivmodsi4_ep>: + 86c: 66 1f adc r22, r22 + 86e: 77 1f adc r23, r23 + 870: 88 1f adc r24, r24 + 872: 99 1f adc r25, r25 + 874: 1a 94 dec r1 + 876: 69 f7 brne .-38 ; 0x852 <__udivmodsi4_loop> + 878: 60 95 com r22 + 87a: 70 95 com r23 + 87c: 80 95 com r24 + 87e: 90 95 com r25 + 880: 9b 01 movw r18, r22 + 882: ac 01 movw r20, r24 + 884: bd 01 movw r22, r26 + 886: cf 01 movw r24, r30 + 888: 08 95 ret -0000081c <__divmodsi4>: - 81c: 97 fb bst r25, 7 - 81e: 09 2e mov r0, r25 - 820: 05 26 eor r0, r21 - 822: 0e d0 rcall .+28 ; 0x840 <__divmodsi4_neg1> - 824: 57 fd sbrc r21, 7 - 826: 04 d0 rcall .+8 ; 0x830 <__divmodsi4_neg2> - 828: d7 df rcall .-82 ; 0x7d8 <__udivmodsi4> - 82a: 0a d0 rcall .+20 ; 0x840 <__divmodsi4_neg1> - 82c: 00 1c adc r0, r0 - 82e: 38 f4 brcc .+14 ; 0x83e <__divmodsi4_exit> +0000088a <__divmodsi4>: + 88a: 97 fb bst r25, 7 + 88c: 09 2e mov r0, r25 + 88e: 05 26 eor r0, r21 + 890: 0e d0 rcall .+28 ; 0x8ae <__divmodsi4_neg1> + 892: 57 fd sbrc r21, 7 + 894: 04 d0 rcall .+8 ; 0x89e <__divmodsi4_neg2> + 896: d7 df rcall .-82 ; 0x846 <__udivmodsi4> + 898: 0a d0 rcall .+20 ; 0x8ae <__divmodsi4_neg1> + 89a: 00 1c adc r0, r0 + 89c: 38 f4 brcc .+14 ; 0x8ac <__divmodsi4_exit> -00000830 <__divmodsi4_neg2>: - 830: 50 95 com r21 - 832: 40 95 com r20 - 834: 30 95 com r19 - 836: 21 95 neg r18 - 838: 3f 4f sbci r19, 0xFF ; 255 - 83a: 4f 4f sbci r20, 0xFF ; 255 - 83c: 5f 4f sbci r21, 0xFF ; 255 +0000089e <__divmodsi4_neg2>: + 89e: 50 95 com r21 + 8a0: 40 95 com r20 + 8a2: 30 95 com r19 + 8a4: 21 95 neg r18 + 8a6: 3f 4f sbci r19, 0xFF ; 255 + 8a8: 4f 4f sbci r20, 0xFF ; 255 + 8aa: 5f 4f sbci r21, 0xFF ; 255 -0000083e <__divmodsi4_exit>: - 83e: 08 95 ret +000008ac <__divmodsi4_exit>: + 8ac: 08 95 ret -00000840 <__divmodsi4_neg1>: - 840: f6 f7 brtc .-4 ; 0x83e <__divmodsi4_exit> - 842: 90 95 com r25 - 844: 80 95 com r24 - 846: 70 95 com r23 - 848: 61 95 neg r22 - 84a: 7f 4f sbci r23, 0xFF ; 255 - 84c: 8f 4f sbci r24, 0xFF ; 255 - 84e: 9f 4f sbci r25, 0xFF ; 255 - 850: 08 95 ret +000008ae <__divmodsi4_neg1>: + 8ae: f6 f7 brtc .-4 ; 0x8ac <__divmodsi4_exit> + 8b0: 90 95 com r25 + 8b2: 80 95 com r24 + 8b4: 70 95 com r23 + 8b6: 61 95 neg r22 + 8b8: 7f 4f sbci r23, 0xFF ; 255 + 8ba: 8f 4f sbci r24, 0xFF ; 255 + 8bc: 9f 4f sbci r25, 0xFF ; 255 + 8be: 08 95 ret -00000852 <_exit>: - 852: f8 94 cli +000008c0 <_exit>: + 8c0: f8 94 cli -00000854 <__stop_program>: - 854: ff cf rjmp .-2 ; 0x854 <__stop_program> +000008c2 <__stop_program>: + 8c2: ff cf rjmp .-2 ; 0x8c2 <__stop_program> diff --git a/Sender/Sender/Debug/Sender.map b/Sender/Sender/Debug/Sender.map index 2d3244a..43f45d3 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 0x856 +.text 0x00000000 0x8c4 *(.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 0x4b4 Sender.o + .text 0x0000030c 0x522 Sender.o 0x0000030c init_ports 0x00000336 led - 0x000004b0 poll - 0x00000650 recive - 0x000006de __vector_9 - 0x0000077c init_timer - 0x00000788 main - .text 0x000007c0 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 0x000007c0 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 0x000007c0 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 0x000007c0 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 0x000007c0 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 0x000007c0 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) - 0x000007c0 . = ALIGN (0x2) + 0x000004f6 poll + 0x00000694 recive + 0x0000074a __vector_9 + 0x000007ea init_timer + 0x000007f6 main + .text 0x0000082e 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 0x0000082e 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 0x0000082e 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 0x0000082e 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 0x0000082e 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 0x0000082e 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) + 0x0000082e . = ALIGN (0x2) *(.text.*) - .text.libgcc 0x000007c0 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) - 0x000007c0 __udivmodqi4 - .text.libgcc 0x000007d8 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) - 0x000007d8 __udivmodsi4 - .text.libgcc 0x0000081c 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) - 0x0000081c __divmodsi4 - .text.libgcc 0x00000852 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 0x00000852 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 0x00000852 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) - 0x00000852 . = ALIGN (0x2) + .text.libgcc 0x0000082e 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) + 0x0000082e __udivmodqi4 + .text.libgcc 0x00000846 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) + 0x00000846 __udivmodsi4 + .text.libgcc 0x0000088a 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) + 0x0000088a __divmodsi4 + .text.libgcc 0x000008c0 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 0x000008c0 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 0x000008c0 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) + 0x000008c0 . = ALIGN (0x2) *(.fini9) - .fini9 0x00000852 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) - 0x00000852 _exit - 0x00000852 exit + .fini9 0x000008c0 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) + 0x000008c0 _exit + 0x000008c0 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 0x00000852 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 0x000008c0 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) - 0x00000856 _etext = . + 0x000008c4 _etext = . -.data 0x00800060 0x3c load address 0x00000856 +.data 0x00800060 0x3c load address 0x000008c4 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 @@ -312,8 +312,8 @@ LOAD c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1 *(.bss*) *(COMMON) 0x008000a9 PROVIDE (__bss_end, .) - 0x00000856 __data_load_start = LOADADDR (.data) - 0x00000892 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x000008c4 __data_load_start = LOADADDR (.data) + 0x00000900 __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x008000a9 0x0 0x008000a9 PROVIDE (__noinit_start, .) @@ -395,16 +395,16 @@ LOAD c:/program files (x86)/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1 .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0x11a7 +.debug_info 0x00000000 0x1217 *(.debug_info) .debug_info 0x00000000 0x444 rf12.o - .debug_info 0x00000444 0x835 Sender.o - .debug_info 0x00000c79 0xdd 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_info 0x00000d56 0xdd 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_info 0x00000e33 0xdd 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_info 0x00000f10 0xdd 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_info 0x00000fed 0xdd 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_info 0x000010ca 0xdd 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_info 0x00000444 0x8a5 Sender.o + .debug_info 0x00000ce9 0xdd 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_info 0x00000dc6 0xdd 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_info 0x00000ea3 0xdd 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_info 0x00000f80 0xdd 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_info 0x0000105d 0xdd 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_info 0x0000113a 0xdd 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) *(.gnu.linkonce.wi.*) .debug_abbrev 0x00000000 0x40c @@ -418,33 +418,33 @@ 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 0x863 +.debug_line 0x00000000 0x87a *(.debug_line) .debug_line 0x00000000 0x222 rf12.o - .debug_line 0x00000222 0x2bf Sender.o - .debug_line 0x000004e1 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 0x00000573 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 0x0000061b 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 0x000006bc 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 0x00000744 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 0x000007d5 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 0x2d6 Sender.o + .debug_line 0x000004f8 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 0x0000058a 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 0x00000632 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 0x000006d3 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 0x0000075b 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 0x000007ec 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) .debug_frame 0x00000000 0x12c rf12.o .debug_frame 0x0000012c 0x158 Sender.o -.debug_str 0x00000000 0x2d7 +.debug_str 0x00000000 0x2df *(.debug_str) .debug_str 0x00000000 0x206 rf12.o 0x259 (size before relaxing) - .debug_str 0x00000206 0xd1 Sender.o - 0x219 (size before relaxing) + .debug_str 0x00000206 0xd9 Sender.o + 0x221 (size before relaxing) -.debug_loc 0x00000000 0x9f7 +.debug_loc 0x00000000 0xa5a *(.debug_loc) .debug_loc 0x00000000 0x342 rf12.o - .debug_loc 0x00000342 0x6b5 Sender.o + .debug_loc 0x00000342 0x718 Sender.o .debug_macinfo *(.debug_macinfo) diff --git a/Sender/Sender/Debug/Sender.srec b/Sender/Sender/Debug/Sender.srec index 7c9471a..b1f978e 100644 --- a/Sender/Sender/Debug/Sender.srec +++ b/Sender/Sender/Debug/Sender.srec @@ -1,10 +1,10 @@ S00E000053656E6465722E73726563B5 S113000012C02CC02BC02AC029C028C027C026C0BB -S113001025C065C323C022C021C020C01FC01EC08C +S113001025C09BC323C022C021C020C01FC01EC056 S11300201DC01CC01BC011241FBECFE5D4E0DEBF21 -S1130030CDBF10E0A0E6B0E0E6E5F8E002C0059030 +S1130030CDBF10E0A0E6B0E0E4ECF8E002C005902B S11300400D92AC39B107D9F710E0ACE9B0E001C0CA -S11300501D92A93AB107E1F797D3FBC3D1CFAC986E +S11300501D92A93AB107E1F7CED332C4D1CFAC98FF S113006040E120E030E0992314F4AA9A01C0AA9850 S1130070220F331F99992160AB9A880F991F00C0F2 S11300800000AB98415079F7AC9A822F932F0895D2 @@ -19,9 +19,9 @@ S1130100660F771F660F771F862B972BA8DF08953E S11301108036910538F02FE08034920728F08FE381 S11301209FE002C080E690E0906A99DF089522E0A3 S113013087399207F0F025E18831920770F49C0129 -S113014040E050E060E678EA80E090E067D3C901DF +S113014040E050E060E678EA80E090E09ED3C901A8 S113015001978068966C83DF08959C0140E050E02D -S11301606CEF72E485E090E037D3C9010197966C97 +S11301606CEF72E485E090E06ED3C9010197966C60 S113017076DF089590E087709070986970E06295DA S11301807295707F7627607F76277070862B972B09 S113019066DF0895AC98999BFECF089588EC92E8A9 @@ -58,83 +58,90 @@ S1130370F91F30813230F1F4EC91F0E03081C701A3 S1130380088002C0880F991F0A94E2F7832B8083A8 S1130390FA01C080DD24F6013081C701FB01008031 S11303A002C0880F991F0A94E2F780958323F6010F -S11303B080836BC0F801E80FF91F30813330F1F40A +S11303B080838EC0F801E80FF91F30813330F1F4E7 S11303C0FA01C080DD24F6013081C701FB01008001 S11303D002C0880F991F0A94E2F7832BF6018083E9 S11303E0EC91F0E03081C701088002C0880F991FAA -S11303F00A94E2F780958323808347C0F801E80FCD +S11303F00A94E2F78095832380836AC0F801E80FAA S1130400F91F30813630E9F4EC91F0E03081C70116 S1130410088002C0880F991F0A94E2F7832B808317 S1130420FA01C080DD24F6013081C701FB010080A0 S113043002C0880F991F0A94E2F7832BF601808388 -S113044024C0F801E80FF91F80818823F1F4EC91AE +S113044047C0F801E80FF91F30813323F9F4EC9128 S1130450F0E03081C701088002C0880F991F0A9418 S1130460E2F7809583238083FA01C080DD24F601BE S11304703081C701FB01008002C0880F991F0A94D4 -S1130480E2F780958323F60180832E5F12962296ED -S11304904E5F5F4F6E5F7F4F2A3009F064CFDF916C -S11304A0CF911F910F91FF90EF90DF90CF9008951F -S11304B02F923F924F925F926F927F928F929F9270 -S11304C0AF92BF92CF92DF92EF92FF920F931F935E -S11304D0CF93DF9330DF4FE750E065E770E0CBE682 -S11304E0D0E001E610E020E022243324EE24FF24AF -S11304F0E3946A015601F6013197A081B0E03B0113 -S11305008C91FB013197A701008002C0440F551F55 -S11305100A94E2F7942F909589238C9300004E015E -S1130520FE013197E081F0E028013081F801319734 -S1130530C701008002C0880F991F0A94E2F7832341 -S1130540B1F4822F8695E1EAF0E0E80FF11D908185 -S1130550923029F40F2EF5E02F2EF02D03C0222423 -S1130560689422F80F2EFAE03F2EF02D380E8C916D -S1130570842B8C930000F501A081B0E08C91A7013D -S1130580F301008002C0440F551F0A94E2F7942F30 -S1130590909589238C930000F4018081E82FF0E08A -S11305A03081C701F201008002C0880F991F0A94AC -S11305B0E2F7832359F4822F86950F2EFAE03F2E1B -S11305C0F02D380E0F2EF7E02F2EF02D8C91482BA6 -S11305D04C9300002E5F82E090E0C80ED91E6E5F3F -S11305E07F4F22960E5F1F4F2A3009F083CF3320AE -S11305F0E1F02220D1F0F894A59AAD9AE2DDAFE3C0 -S1130600BCE91197F1F700C00000832D61E0422D91 -S11306103FDEAD988FE798E3A1E081509040A04081 -S1130620E1F700C00000BADD7894DF91CF911F910B -S11306300F91FF90EF90DF90CF90BF90AF909F907D -S11306408F907F906F905F904F903F902F90089580 -S1130650CF93A4DD01C02CDFABDD8823E1F7ADDD52 -S11306608230D8F501C024DFA3DD8823E1F7A5DDBE -S1130670813099F16AE0A4D0C82FC15001C018DFBD -S113068097DD8823E1F799DD833081F08630D1F05E -S1130690823019F58C2F90E0FC01EF55FF4F22E0DA -S11306A0208384569F4FFC01108217C08C2F90E04A -S11306B0FC01EF55FF4F23E0208384569F4FFC013C -S11306C010820BC08C2F90E0FC01EF55FF4F26E009 -S11306D0208384569F4FFC011082CF9108951F926E -S11306E00F920FB60F9211242F933F934F935F9362 -S11306F06F937F938F939F93AF93BF93EF93FF93E6 -S11307008091A600803130F48091A6008F5F8093A1 -S1130710A60023C01092A60054DD80E061E041E011 -S1130720B7DD80E090E02CE930E041EA50E0F901E7 -S1130730E80FF91F60816B3028F0FA01E80FF91F08 -S1130740108206C0F901E80FF91F60816F5F6083B2 -S113075001968530910559F721DDFF91EF91BF9105 -S1130760AF919F918F917F916F915F914F913F9145 -S11307702F910F900FBE0F901F90189585E083BFA7 -S113078012BE81E089BF089583DC80E296E0C0DC7C -S113079081E060E047E09FDC80E895E2C8DC80E02F -S11307A066E0E8DCB3DDEADF78948FEF90E7A2E05F -S11307B081509040A040E1F700C0000049DFFECF27 -S11307C0991B79E004C0991F961708F0961B881F9F -S11307D07A95C9F780950895A1E21A2EAA1BBB1B2E -S11307E0FD010DC0AA1FBB1FEE1FFF1FA217B307F9 -S11307F0E407F50720F0A21BB30BE40BF50B661F0F -S1130800771F881F991F1A9469F7609570958095D2 -S113081090959B01AC01BD01CF01089597FB092E72 -S113082005260ED057FD04D0D7DF0AD0001C38F4BB -S113083050954095309521953F4F4F4F5F4F089508 -S1130840F6F790958095709561957F4F8F4F9F4FE8 -S10908500895F894FFCFA7 -S11308560001030303030303030330303030303055 -S11308663030303001010504050405040504383828 -S113087632323232323232320200060706070607B5 -S10F088606073838323232323232323255 +S1130480E2F780958323F601808322C0F801E80F08 +S1130490F91F80818830E1F4EC91F0E03081C701EC +S11304A0088002C0880F991F0A94E2F7832780838B +S11304B0FA01C080DD24F6013081C701FB01008010 +S11304C002C0880F991F0A94E2F78327F6018083FC +S11304D02E5F129622964E5F5F4F6E5F7F4F2A30DB +S11304E009F041CFDF91CF911F910F91FF90EF90D1 +S11304F0DF90CF9008952F923F924F925F926F9228 +S11305007F928F929F92AF92BF92CF92DF92EF929F +S1130510FF920F931F93CF93DF934FE750E065E76C +S113052070E0CBE6D0E001E610E020E022243324A2 +S1130530EE24FF24E3946A015601F6013197A08169 +S1130540B0E03B018C91FB013197A701008002C010 +S1130550440F551F0A94E2F7942F909589238C93A6 +S113056000004E01FE013197E081F0E02801308166 +S1130570F8013197C701008002C0880F991F0A94BF +S1130580E2F78323B1F4822F8695E1EAF0E0E80FE5 +S1130590F11D9081923029F40F2EF5E02F2EF02DCD +S11305A003C02224689422F80F2EFAE03F2EF02D87 +S11305B0380E8C91842B8C930000F501A081B0E05F +S11305C08C91A701F301008002C0440F551F0A94C7 +S11305D0E2F7942F909589238C930000F401808195 +S11305E0E82FF0E03081C701F201008002C0880FDB +S11305F0991F0A94E2F7832359F4822F86950F2ECC +S1130600FAE03F2EF02D380E0F2EF7E02F2EF02DAE +S11306108C91482B4C9300002E5F82E090E0C80E32 +S1130620D91E6E5F7F4F22960E5F1F4F2A3009F04E +S113063083CF3320E1F02220D1F0F894A59AAD9A2B +S1130640C0DDAFE3BCE91197F1F700C00000832DD2 +S113065061E0422D1DDEAD988FE798E3A1E0815063 +S11306609040A040E1F700C0000098DD7894DF914D +S1130670CF911F910F91FF90EF90DF90CF90BF909B +S1130680AF909F908F907F906F905F904F903F902E +S11306902F900895CF9382DD01C02DDF89DD88235B +S11306A0E1F78BDD823008F04EC001C024DF80DD2D +S11306B08823E1F782DD813009F445C06AE0B7D0D0 +S11306C0C82FC15001C017DF73DD8823E1F775DD42 +S11306D08330B1F0843018F48230A9F505C0863037 +S11306E0D9F0883081F524C08C2F90E0FC01EF55BF +S11306F0FF4F22E0208384569F4FFC01108223C0C9 +S11307008C2F90E0FC01EF55FF4F23E020838456AB +S11307109F4FFC01108217C08C2F90E0FC01EF5515 +S1130720FF4F26E0208384569F4FFC0110820BC0AC +S11307308C2F90E0FC01EF55FF4F28E02083845676 +S11307409F4FFC011082CF9108951F920F920FB614 +S11307500F9211242F933F934F935F936F937F9343 +S11307608F939F93AF93BF93EF93FF93E4DD8091B7 +S1130770A600803130F48091A6008F5F8093A6009C +S113078023C01092A6001DDD80E061E041E080DD21 +S113079080E090E02CE930E041EA50E0F901E80F14 +S11307A0F91F60816B3028F0FA01E80FF91F1082FD +S11307B006C0F901E80FF91F60816F5F608301963D +S11307C08530910559F7EADCFF91EF91BF91AF9124 +S11307D09F918F917F916F915F914F913F912F9155 +S11307E00F900FBE0F901F90189585E083BF12BE27 +S11307F081E089BF08954CDC80E296E089DC81E0E9 +S113080060E047E068DC80E895E291DC80E066E047 +S1130810B1DC7CDDEADF78948FEF90E7A2E08150D1 +S11308209040A040E1F700C0000034DFFECF991BE8 +S113083079E004C0991F961708F0961B881F7A95D3 +S1130840C9F780950895A1E21A2EAA1BBB1BFD01CE +S11308500DC0AA1FBB1FEE1FFF1FA217B307E4079B +S1130860F50720F0A21BB30BE40BF50B661F771FF3 +S1130870881F991F1A9469F76095709580959095D3 +S11308809B01AC01BD01CF01089597FB092E0526FC +S11308900ED057FD04D0D7DF0AD0001C38F4509591 +S11308A04095309521953F4F4F4F5F4F0895F6F790 +S11308B090958095709561957F4F8F4F9F4F0895C8 +S10708C0F894FFCFD6 +S11308C400010303030303030303303030303030E7 +S11308D430303030010105040504050405043838BA +S11308E43232323232323232020006070607060747 +S10F08F4060738383232323232323232E7 S9030000FC diff --git a/Sender/Sender/Sender.c b/Sender/Sender/Sender.c index cb361b3..b04b9ef 100644 --- a/Sender/Sender/Sender.c +++ b/Sender/Sender/Sender.c @@ -34,6 +34,7 @@ const uint8_t in_row_pin[] = {PIND0, PIND1, PIND3, PIND3, PIND3, PIND3, PIND3, 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)); static inline uint8_t BIT_ON(volatile uint8_t *target, uint8_t bit) __attribute__((always_inline)); +static inline void BIT_TOG(volatile uint8_t *target, uint8_t bit) __attribute__((always_inline)); void init_ports() { //LED auf Ausgang @@ -69,11 +70,13 @@ void led() { } 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]); } } } void poll() { - led(); uint8_t to = 0; uint8_t data = 0; @@ -151,6 +154,15 @@ void recive() { status_count[from] = 0; return; } + case DEDECT: { + status_dev[from] = DEDECT; + status_count[from] = 0; + return; + } + default: { + rf12_endasyncrx(); + return; + } } } } @@ -159,6 +171,7 @@ void recive() { // Timer 0 overflow interrupt service routine ISR(TIMER0_OVF_vect) { + led(); if(timer2s < 16) { timer2s++; return; @@ -217,4 +230,8 @@ static inline void BIT_CLEAR(volatile uint8_t *target, uint8_t bit) { static inline uint8_t BIT_ON(volatile uint8_t *target, uint8_t bit) { return *target & (1<