diff --git a/Reciver/Reciver.atsuo b/Reciver/Reciver.atsuo index 4134013..bd08528 100644 Binary files a/Reciver/Reciver.atsuo and b/Reciver/Reciver.atsuo differ diff --git a/Reciver/Reciver/Debug/Reciver.elf b/Reciver/Reciver/Debug/Reciver.elf index 3ad46a6..d554f84 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 0d97ab3..b8867c2 100644 --- a/Reciver/Reciver/Debug/Reciver.hex +++ b/Reciver/Reciver/Debug/Reciver.hex @@ -1,112 +1,112 @@ :100000000C942A000C9447000C9447000C94470071 :100010000C9447000C9447000C9447000C94470044 -:100020000C9447000C94E3000C9447000C94470098 +:100020000C9447000C94E5000C9447000C94470096 :100030000C9447000C9447000C9447000C94470024 :100040000C9447000C9447000C9447000C94470014 :100050000C94470011241FBECFE5D4E0DEBFCDBF16 -:1000600010E0A0E6B0E0E4EDF6E002C005900D92ED -:10007000A236B107D9F710E0A2E6B0E001C01D92A8 -:10008000A636B107E1F70E947B010C9468030C943B -:10009000000080916000909161008630910511F11F -:1000A00086E090E090936100809360008AEC90E09D -:1000B00090936300809362008FEF96E1A1E18150FD -:1000C0009040A040E1F700C0000010926300109241 -:1000D00062008FEF96E1A1E181509040A040E1F7EE -:1000E00000C000000895899880916000909161009F -:1000F0008330910541F4819B06C00E9458020E9402 -:1001000049000E9441020895CF930E94410202C01B -:100110000E9473000E944E028823D1F70E9453026E -:10012000882341F08A3031F0803F09F042C002C09C -:100130000E9473000E944E028823D1F70E9453024E -:10014000C82F02C00E9473000E944E028823D1F77C -:10015000C13079F50E945302843051F0853018F493 -:10016000813039F516C0853051F0873011F50EC059 -:1001700082E090E090936100809360000AC083E089 -:1001800090E0909361008093600003C00E9449005A -:1001900010C00E9458028FE39CE90197F1F700C05C -:1001A0000000409160005091610081E06AE00E948F -:1001B000D502CF91089585E083BF88E582BF1CBE3C -:1001C00081E089BF08951F920F920FB60F921124FC -:1001D0002F933F938F939F9388E582BF8091600018 -:1001E0009091610082309105D9F4809164009091E2 -:1001F00065008233910554F480916400909165000C -:10020000019690936500809364000AC0B89AB09BF1 -:1002100002C0C09801C0C09A10926500109264009C -:10022000809160009091610083309105D9F48091B4 -:100230006400909165008530910554F480916400CC -:1002400090916500019690936500809364000AC0C8 -:10025000B89AB09B02C0C09801C0C09A10926500C5 -:100260001092640080916000909161008630910549 -:10027000D9F480916400909165001816190654F025 -:100280008091640090916500019690936500809341 -:1002900064000AC0B89AB09B02C0C09801C0C09A5E -:1002A0001092650010926400B99AC19A8FEA94E0A6 -:1002B0000197F1F700C00000809162009091630007 -:1002C0001816190674F480E090E025E12A95F1F7FC -:1002D000000001962091620030916300821793071D -:1002E000A4F3C1989F918F913F912F910F900FBED2 -:1002F0000F901F9018950E94AD0180E296E00E9439 -:10030000F50181E060E047E00E94D70180E895E2D6 -:100310000E94050280E066E00E942C020E94DB0041 -:1003200078940E948400FDCF949840E120E030E072 -:10033000992314F4969A01C09698220F331F83993B -:100340002160959A880F991F00C000009598415030 -:1003500079F7949A822F932F089581B3806781BB98 -:10036000949A8FEF90E7A2E081509040A040E1F78F -:1003700000C0000080EE90EC0E94940187ED90E8B0 -:100380000E9494018BEA92EC0E94940181E89AEC1D -:100390000E94940180E090EE0E94940180E098EC2D -:1003A0000E94940187EF94EC0E949401089590E0DC -:1003B000880F991F82959295907F9827807F982724 -:1003C000907050E047705070842B952B946970E0CA -:1003D00063707070660F771F660F771F660F771F49 -:1003E000862B972B0E94940108958036910538F052 -:1003F0002FE08034920728F08FE39FE002C080E670 -:1004000090E0906A0E949401089522E08739920753 -:1004100010F125E18831920780F49C0140E050E022 -:1004200060E678EA80E090E00E944D03C901019700 -:100430008068966C0E94940108959C0140E050E011 -:100440006CEF72E485E090E00E942B03C9010197F4 -:10045000966C0E949401089590E08770907098695E -:1004600070E062957295707F7627607F7627707056 -:10047000862B972B0E94940108959498839BFECF1E -:10048000089588EC92E80E94940181E89AEC0E9419 -:10049000940183E89AEC0E9494010895949881E075 -:1004A000839980E0089580E090EB0E949401089584 -:1004B00088E092E80E94940108950F931F93CF93D0 -:1004C000DF938C01C62F88E392E80E9494010E947A -:1004D0003D028AEA98EB0E9494010E943D028AEA5A -:1004E00098EB0E9494010E943D028AEA98EB0E94D8 -:1004F00094010E943D028DE298EB0E9494010E94BB -:100500003D0284ED98EB0E949401CC2399F0C80140 -:100510000196C1509C012C0F311DE9010E943D0242 -:10052000F80181918F0190E0986B0E9494010C1763 -:100530001D07A1F70E943D0288E092E80E94940105 -:10054000DF91CF911F910F9108950F931F93CF9338 -:10055000DF938C01D62F88EC92E80E94940181E809 -:100560009AEC0E94940183E89AEC0E949401DD23A6 -:1005700099F0C8010196D1509C012D0F311DE90160 -:100580000E943D0280E090EB0E949401F80181936B -:100590008F01EC17FD07A1F788E092E80E94940113 -:1005A000DF91CF911F910F9108951F93CF93DF9308 -:1005B000182FD62FC42F88E392E80E9494010E943E -:1005C0003D028AEA98EB0E9494010E943D028AEA69 -:1005D00098EB0E9494010E943D028AEA98EB0E94E7 -:1005E00094010E943D028DE298EB0E9494010E94CA -:1005F0003D0284ED98EB0E9494010E943D02812F00 -:1006000090E0986B0E9494010E943D028D2F90E033 -:10061000986B0E9494010E943D028C2F90E0986B91 -:100620000E9494010E943D0280E098EB0E94940198 -:100630000E943D0288E092E80E9494018FEF90E7CB -:10064000A2E081509040A040E1F700C00000DF919F -:10065000CF911F910895A1E21A2EAA1BBB1BFD0189 -:100660000DC0AA1FBB1FEE1FFF1FA217B307E40791 -:10067000F50720F0A21BB30BE40BF50B661F771FE9 -:10068000881F991F1A9469F76095709580959095C9 -:100690009B01AC01BD01CF01089597FB092E0526F2 -:1006A0000ED057FD04D0D7DF0AD0001C38F4509587 -:1006B0004095309521953F4F4F4F5F4F0895F6F786 -:1006C00090958095709561957F4F8F4F9F4F0895BE -:0406D000F894FFCFCC -:0206D400020022 +:1000600010E0A0E6B0E0E8EDF6E002C005900D92E9 +:10007000A436B107D9F710E0A4E6B0E001C01D92A4 +:10008000A636B107E1F70E947D010C946A030C9437 +:10009000000080916200909163008630910521F10B +:1000A00086E090E090936300809362008EE890E099 +:1000B00090936100809360008FEF96E1A1E1815001 +:1000C0009040A040E1F700C000008AEC90E09093DF +:1000D0006100809360008FEF96E1A1E18150904034 +:1000E000A040E1F700C00000089589988091620067 +:1000F000909163008330910541F4819B06C00E947A +:100100005A020E9449000E9443020895CF930E9420 +:10011000430202C00E9475000E9450028823D1F75A +:100120000E945502882341F08A3031F0803F09F067 +:1001300042C002C00E9475000E9450028823D1F77D +:100140000E945502C82F02C00E9475000E945002F2 +:100150008823D1F7C13079F50E945502843051F0DF +:10016000853018F4813039F516C0853051F087306C +:1001700011F50EC082E090E09093630080936200DE +:100180000AC083E090E0909363008093620003C014 +:100190000E94490010C00E945A028FE39CE9019717 +:1001A000F1F700C00000409162005091630081E0CF +:1001B0006AE00E94D702CF91089585E083BF88E569 +:1001C00082BF1CBE81E089BF08951F920F920FB6B7 +:1001D0000F9211242F933F938F939F9388E582BFB3 +:1001E000809162009091630082309105D9F48091F2 +:1001F0006400909165008233910554F4809164000D +:1002000090916500019690936500809364000AC008 +:10021000B89AB09B02C0C09801C0C09A1092650005 +:100220001092640080916200909163008330910588 +:10023000D9F480916400909165008530910554F463 +:100240008091640090916500019690936500809381 +:1002500064000AC0B89AB09B02C0C09801C0C09A9E +:10026000109265001092640080916200909163008A +:1002700086309105D9F4809164009091650018163C +:10028000190654F080916400909165000196909356 +:100290006500809364000AC0B89AB09B02C0C09801 +:1002A00001C0C09A1092650010926400B99AC19A78 +:1002B0008FEA94E00197F1F700C0000080916000A0 +:1002C000909161001816190674F480E090E025E121 +:1002D0002A95F1F7000001962091600030916100AD +:1002E00082179307A4F3C1989F918F913F912F910B +:1002F0000F900FBE0F901F9018950E94AF0180E2E3 +:1003000096E00E94F70181E060E047E00E94D90199 +:1003100080E895E20E94070280E066E00E942E02DB +:100320000E94DD0078940E948600FDCF949840E101 +:1003300020E030E0992314F4969A01C09698220F99 +:10034000331F83992160959A880F991F00C0000080 +:100350009598415079F7949A822F932F089581B3FD +:10036000806781BB949A8FEF90E7A2E08150904024 +:10037000A040E1F700C0000080EE90EC0E949601E2 +:1003800087ED90E80E9496018BEA92EC0E9496011C +:1003900081E89AEC0E94960180E090EE0E9496011E +:1003A00080E098EC0E94960187EF94EC0E94960101 +:1003B000089590E0880F991F82959295907F9827D5 +:1003C000807F9827907050E047705070842B952B59 +:1003D000946970E063707070660F771F660F771F07 +:1003E000660F771F862B972B0E9496010895803603 +:1003F000910538F02FE08034920728F08FE39FE0DA +:1004000002C080E690E0906A0E949601089522E082 +:100410008739920710F125E18831920780F49C0119 +:1004200040E050E060E678EA80E090E00E944F0310 +:10043000C90101978068966C0E94960108959C01FD +:1004400040E050E06CEF72E485E090E00E942D0304 +:10045000C9010197966C0E949601089590E08770FB +:100460009070986970E062957295707F7627607FD2 +:1004700076277070862B972B0E949601089594988A +:10048000839BFECF089588EC92E80E94960181E854 +:100490009AEC0E94960183E89AEC0E9496010895D6 +:1004A000949881E0839980E0089580E090EB0E9429 +:1004B0009601089588E092E80E94960108950F93AE +:1004C0001F93CF93DF938C01C62F88E392E80E949D +:1004D00096010E943F028AEA98EB0E9496010E94D0 +:1004E0003F028AEA98EB0E9496010E943F028AEA44 +:1004F00098EB0E9496010E943F028DE298EB0E94C9 +:1005000096010E943F0284ED98EB0E949601CC2355 +:1005100099F0C8010196C1509C012C0F311DE901D1 +:100520000E943F02F80181918F0190E0986B0E9438 +:1005300096010C171D07A1F70E943F0288E092E880 +:100540000E949601DF91CF911F910F9108950F9313 +:100550001F93CF93DF938C01D62F88EC92E80E94F3 +:10056000960181E89AEC0E94960183E89AEC0E9439 +:100570009601DD2399F0C8010196D1509C012D0F01 +:10058000311DE9010E943F0280E090EB0E9496013C +:10059000F80181938F01EC17FD07A1F788E092E83D +:1005A0000E949601DF91CF911F910F9108951F93A3 +:1005B000CF93DF93182FD62FC42F88E392E80E94A1 +:1005C00096010E943F028AEA98EB0E9496010E94DF +:1005D0003F028AEA98EB0E9496010E943F028AEA53 +:1005E00098EB0E9496010E943F028DE298EB0E94D8 +:1005F00096010E943F0284ED98EB0E9496010E94B2 +:100600003F02812F90E0986B0E9496010E943F026A +:100610008D2F90E0986B0E9496010E943F028C2FD4 +:1006200090E0986B0E9496010E943F0280E098EB58 +:100630000E9496010E943F0288E092E80E94960183 +:100640008FEF90E7A2E081509040A040E1F700C01A +:100650000000DF91CF911F910895A1E21A2EAA1BED +:10066000BB1BFD010DC0AA1FBB1FEE1FFF1FA21762 +:10067000B307E407F50720F0A21BB30BE40BF50B5F +:10068000661F771F881F991F1A9469F760957095E8 +:10069000809590959B01AC01BD01CF01089597FB1A +:1006A000092E05260ED057FD04D0D7DF0AD0001C36 +:1006B00038F450954095309521953F4F4F4F5F4FFF +:1006C0000895F6F790958095709561957F4F8F4FBF +:0806D0009F4F0895F894FFCF3D +:0406D800CA00020052 :00000001FF diff --git a/Reciver/Reciver/Debug/Reciver.lss b/Reciver/Reciver/Debug/Reciver.lss index e62979e..eb5a93c 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 000006d4 00000000 00000000 00000094 2**1 + 0 .text 000006d8 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000002 00800060 000006d4 00000768 2**0 + 1 .data 00000004 00800060 000006d8 0000076c 2**0 CONTENTS, ALLOC, LOAD, DATA - 2 .bss 00000004 00800062 00800062 0000076a 2**0 + 2 .bss 00000002 00800064 00800064 00000770 2**0 ALLOC - 3 .stab 000006cc 00000000 00000000 0000076c 2**2 + 3 .stab 000006cc 00000000 00000000 00000770 2**2 CONTENTS, READONLY, DEBUGGING - 4 .stabstr 00000085 00000000 00000000 00000e38 2**0 + 4 .stabstr 00000085 00000000 00000000 00000e3c 2**0 CONTENTS, READONLY, DEBUGGING - 5 .debug_aranges 000000e0 00000000 00000000 00000ec0 2**3 + 5 .debug_aranges 000000e0 00000000 00000000 00000ec8 2**3 CONTENTS, READONLY, DEBUGGING - 6 .debug_info 00000c22 00000000 00000000 00000fa0 2**0 + 6 .debug_info 00000c22 00000000 00000000 00000fa8 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_abbrev 00000388 00000000 00000000 00001bc2 2**0 + 7 .debug_abbrev 00000388 00000000 00000000 00001bca 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_line 000006ff 00000000 00000000 00001f4a 2**0 + 8 .debug_line 000006ff 00000000 00000000 00001f52 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_frame 000001c8 00000000 00000000 0000264c 2**2 + 9 .debug_frame 000001c8 00000000 00000000 00002654 2**2 CONTENTS, READONLY, DEBUGGING - 10 .debug_str 0000024b 00000000 00000000 00002814 2**0 + 10 .debug_str 0000024b 00000000 00000000 0000281c 2**0 CONTENTS, READONLY, DEBUGGING - 11 .debug_loc 00000562 00000000 00000000 00002a5f 2**0 + 11 .debug_loc 00000562 00000000 00000000 00002a67 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 e3 00 jmp 0x1c6 ; 0x1c6 <__vector_9> + 24: 0c 94 e5 00 jmp 0x1ca ; 0x1ca <__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,18 +65,18 @@ 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: e4 ed ldi r30, 0xD4 ; 212 + 66: e8 ed ldi r30, 0xD8 ; 216 68: f6 e0 ldi r31, 0x06 ; 6 6a: 02 c0 rjmp .+4 ; 0x70 <__do_copy_data+0x10> 6c: 05 90 lpm r0, Z+ 6e: 0d 92 st X+, r0 - 70: a2 36 cpi r26, 0x62 ; 98 + 70: a4 36 cpi r26, 0x64 ; 100 72: b1 07 cpc r27, r17 74: d9 f7 brne .-10 ; 0x6c <__do_copy_data+0xc> 00000076 <__do_clear_bss>: 76: 10 e0 ldi r17, 0x00 ; 0 - 78: a2 e6 ldi r26, 0x62 ; 98 + 78: a4 e6 ldi r26, 0x64 ; 100 7a: b0 e0 ldi r27, 0x00 ; 0 7c: 01 c0 rjmp .+2 ; 0x80 <.do_clear_bss_start> @@ -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 7b 01 call 0x2f6 ; 0x2f6
- 8a: 0c 94 68 03 jmp 0x6d0 ; 0x6d0 <_exit> + 86: 0e 94 7d 01 call 0x2fa ; 0x2fa
+ 8a: 0c 94 6a 03 jmp 0x6d4 ; 0x6d4 <_exit> 0000008e <__bad_interrupt>: 8e: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> @@ -96,26 +96,26 @@ Disassembly of section .text: 00000092 : volatile int pwm_led = 0; -volatile int servopos = 0; +volatile int servopos = RIGHT; void turn() { if(status == RUN) - 92: 80 91 60 00 lds r24, 0x0060 - 96: 90 91 61 00 lds r25, 0x0061 + 92: 80 91 62 00 lds r24, 0x0062 + 96: 90 91 63 00 lds r25, 0x0063 9a: 86 30 cpi r24, 0x06 ; 6 9c: 91 05 cpc r25, r1 - 9e: 11 f1 breq .+68 ; 0xe4 + 9e: 21 f1 breq .+72 ; 0xe8 return; status = RUN; a0: 86 e0 ldi r24, 0x06 ; 6 a2: 90 e0 ldi r25, 0x00 ; 0 - a4: 90 93 61 00 sts 0x0061, r25 - a8: 80 93 60 00 sts 0x0060, r24 - servopos = RIGHT; - ac: 8a ec ldi r24, 0xCA ; 202 + a4: 90 93 63 00 sts 0x0063, r25 + a8: 80 93 62 00 sts 0x0062, r24 + servopos = RIGHT-60; + ac: 8e e8 ldi r24, 0x8E ; 142 ae: 90 e0 ldi r25, 0x00 ; 0 - b0: 90 93 63 00 sts 0x0063, r25 - b4: 80 93 62 00 sts 0x0062, r24 + b0: 90 93 61 00 sts 0x0061, r25 + b4: 80 93 60 00 sts 0x0060, r24 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); @@ -132,1093 +132,1095 @@ void turn() { c6: 00 c0 rjmp .+0 ; 0xc8 c8: 00 00 nop _delay_ms(700); - servopos = 0; - ca: 10 92 63 00 sts 0x0063, r1 - ce: 10 92 62 00 sts 0x0062, r1 - d2: 8f ef ldi r24, 0xFF ; 255 - d4: 96 e1 ldi r25, 0x16 ; 22 - d6: a1 e1 ldi r26, 0x11 ; 17 - d8: 81 50 subi r24, 0x01 ; 1 - da: 90 40 sbci r25, 0x00 ; 0 - dc: a0 40 sbci r26, 0x00 ; 0 - de: e1 f7 brne .-8 ; 0xd8 - e0: 00 c0 rjmp .+0 ; 0xe2 - e2: 00 00 nop - e4: 08 95 ret + servopos = RIGHT; + ca: 8a ec ldi r24, 0xCA ; 202 + cc: 90 e0 ldi r25, 0x00 ; 0 + ce: 90 93 61 00 sts 0x0061, r25 + d2: 80 93 60 00 sts 0x0060, r24 + d6: 8f ef ldi r24, 0xFF ; 255 + d8: 96 e1 ldi r25, 0x16 ; 22 + da: a1 e1 ldi r26, 0x11 ; 17 + dc: 81 50 subi r24, 0x01 ; 1 + de: 90 40 sbci r25, 0x00 ; 0 + e0: a0 40 sbci r26, 0x00 ; 0 + e2: e1 f7 brne .-8 ; 0xdc + e4: 00 c0 rjmp .+0 ; 0xe6 + e6: 00 00 nop + e8: 08 95 ret -000000e6 : +000000ea : _delay_ms(700); } void poll() { DDRD &= ~(1< + ec: 80 91 62 00 lds r24, 0x0062 + f0: 90 91 63 00 lds r25, 0x0063 + f4: 83 30 cpi r24, 0x03 ; 3 + f6: 91 05 cpc r25, r1 + f8: 41 f4 brne .+16 ; 0x10a if(PIND & (1< + fa: 81 9b sbis 0x10, 1 ; 16 + fc: 06 c0 rjmp .+12 ; 0x10a rf12_endasyncrx(); - fa: 0e 94 58 02 call 0x4b0 ; 0x4b0 + fe: 0e 94 5a 02 call 0x4b4 ; 0x4b4 turn(); - fe: 0e 94 49 00 call 0x92 ; 0x92 + 102: 0e 94 49 00 call 0x92 ; 0x92 rf12_beginasyncrx(); - 102: 0e 94 41 02 call 0x482 ; 0x482 - 106: 08 95 ret + 106: 0e 94 43 02 call 0x486 ; 0x486 + 10a: 08 95 ret -00000108 : +0000010c : } } } void recive() { - 108: cf 93 push r28 + 10c: cf 93 push r28 rf12_beginasyncrx(); - 10a: 0e 94 41 02 call 0x482 ; 0x482 + 10e: 0e 94 43 02 call 0x486 ; 0x486 while(rf12_hasdata()) { - 10e: 02 c0 rjmp .+4 ; 0x114 + 112: 02 c0 rjmp .+4 ; 0x118 poll(); - 110: 0e 94 73 00 call 0xe6 ; 0xe6 + 114: 0e 94 75 00 call 0xea ; 0xea } } void recive() { rf12_beginasyncrx(); while(rf12_hasdata()) { - 114: 0e 94 4e 02 call 0x49c ; 0x49c - 118: 88 23 and r24, r24 - 11a: d1 f7 brne .-12 ; 0x110 + 118: 0e 94 50 02 call 0x4a0 ; 0x4a0 + 11c: 88 23 and r24, r24 + 11e: d1 f7 brne .-12 ; 0x114 poll(); } uint8_t addr = rf12_rxbyte(); - 11c: 0e 94 53 02 call 0x4a6 ; 0x4a6 + 120: 0e 94 55 02 call 0x4aa ; 0x4aa if(addr == ALL || addr == DEVICE || addr == GROUP) { - 120: 88 23 and r24, r24 - 122: 41 f0 breq .+16 ; 0x134 - 124: 8a 30 cpi r24, 0x0A ; 10 - 126: 31 f0 breq .+12 ; 0x134 - 128: 80 3f cpi r24, 0xF0 ; 240 - 12a: 09 f0 breq .+2 ; 0x12e - 12c: 42 c0 rjmp .+132 ; 0x1b2 - 12e: 02 c0 rjmp .+4 ; 0x134 + 124: 88 23 and r24, r24 + 126: 41 f0 breq .+16 ; 0x138 + 128: 8a 30 cpi r24, 0x0A ; 10 + 12a: 31 f0 breq .+12 ; 0x138 + 12c: 80 3f cpi r24, 0xF0 ; 240 + 12e: 09 f0 breq .+2 ; 0x132 + 130: 42 c0 rjmp .+132 ; 0x1b6 + 132: 02 c0 rjmp .+4 ; 0x138 while(rf12_hasdata()) { poll(); - 130: 0e 94 73 00 call 0xe6 ; 0xe6 + 134: 0e 94 75 00 call 0xea ; 0xea while(rf12_hasdata()) { poll(); } uint8_t addr = rf12_rxbyte(); if(addr == ALL || addr == DEVICE || addr == GROUP) { while(rf12_hasdata()) { - 134: 0e 94 4e 02 call 0x49c ; 0x49c - 138: 88 23 and r24, r24 - 13a: d1 f7 brne .-12 ; 0x130 + 138: 0e 94 50 02 call 0x4a0 ; 0x4a0 + 13c: 88 23 and r24, r24 + 13e: d1 f7 brne .-12 ; 0x134 poll(); } uint8_t from = rf12_rxbyte(); - 13c: 0e 94 53 02 call 0x4a6 ; 0x4a6 - 140: c8 2f mov r28, r24 + 140: 0e 94 55 02 call 0x4aa ; 0x4aa + 144: c8 2f mov r28, r24 while(rf12_hasdata()) { - 142: 02 c0 rjmp .+4 ; 0x148 + 146: 02 c0 rjmp .+4 ; 0x14c poll(); - 144: 0e 94 73 00 call 0xe6 ; 0xe6 + 148: 0e 94 75 00 call 0xea ; 0xea if(addr == ALL || addr == DEVICE || addr == GROUP) { while(rf12_hasdata()) { poll(); } uint8_t from = rf12_rxbyte(); while(rf12_hasdata()) { - 148: 0e 94 4e 02 call 0x49c ; 0x49c - 14c: 88 23 and r24, r24 - 14e: d1 f7 brne .-12 ; 0x144 + 14c: 0e 94 50 02 call 0x4a0 ; 0x4a0 + 150: 88 23 and r24, r24 + 152: d1 f7 brne .-12 ; 0x148 poll(); } if(from == MASTER) { - 150: c1 30 cpi r28, 0x01 ; 1 - 152: 79 f5 brne .+94 ; 0x1b2 + 154: c1 30 cpi r28, 0x01 ; 1 + 156: 79 f5 brne .+94 ; 0x1b6 uint8_t data = rf12_rxbyte(); - 154: 0e 94 53 02 call 0x4a6 ; 0x4a6 + 158: 0e 94 55 02 call 0x4aa ; 0x4aa switch(data) { - 158: 84 30 cpi r24, 0x04 ; 4 - 15a: 51 f0 breq .+20 ; 0x170 - 15c: 85 30 cpi r24, 0x05 ; 5 - 15e: 18 f4 brcc .+6 ; 0x166 - 160: 81 30 cpi r24, 0x01 ; 1 - 162: 39 f5 brne .+78 ; 0x1b2 - 164: 16 c0 rjmp .+44 ; 0x192 - 166: 85 30 cpi r24, 0x05 ; 5 - 168: 51 f0 breq .+20 ; 0x17e - 16a: 87 30 cpi r24, 0x07 ; 7 - 16c: 11 f5 brne .+68 ; 0x1b2 - 16e: 0e c0 rjmp .+28 ; 0x18c + 15c: 84 30 cpi r24, 0x04 ; 4 + 15e: 51 f0 breq .+20 ; 0x174 + 160: 85 30 cpi r24, 0x05 ; 5 + 162: 18 f4 brcc .+6 ; 0x16a + 164: 81 30 cpi r24, 0x01 ; 1 + 166: 39 f5 brne .+78 ; 0x1b6 + 168: 16 c0 rjmp .+44 ; 0x196 + 16a: 85 30 cpi r24, 0x05 ; 5 + 16c: 51 f0 breq .+20 ; 0x182 + 16e: 87 30 cpi r24, 0x07 ; 7 + 170: 11 f5 brne .+68 ; 0x1b6 + 172: 0e c0 rjmp .+28 ; 0x190 case PING: { break; } case SETSLEEP: { status = SLEEP; - 170: 82 e0 ldi r24, 0x02 ; 2 - 172: 90 e0 ldi r25, 0x00 ; 0 - 174: 90 93 61 00 sts 0x0061, r25 - 178: 80 93 60 00 sts 0x0060, r24 + 174: 82 e0 ldi r24, 0x02 ; 2 + 176: 90 e0 ldi r25, 0x00 ; 0 + 178: 90 93 63 00 sts 0x0063, r25 + 17c: 80 93 62 00 sts 0x0062, r24 break; - 17c: 0a c0 rjmp .+20 ; 0x192 + 180: 0a c0 rjmp .+20 ; 0x196 } case SETACTIVE: { status = ACTIVE; - 17e: 83 e0 ldi r24, 0x03 ; 3 - 180: 90 e0 ldi r25, 0x00 ; 0 - 182: 90 93 61 00 sts 0x0061, r25 - 186: 80 93 60 00 sts 0x0060, r24 + 182: 83 e0 ldi r24, 0x03 ; 3 + 184: 90 e0 ldi r25, 0x00 ; 0 + 186: 90 93 63 00 sts 0x0063, r25 + 18a: 80 93 62 00 sts 0x0062, r24 break; - 18a: 03 c0 rjmp .+6 ; 0x192 + 18e: 03 c0 rjmp .+6 ; 0x196 } case SETRUN: { turn(); - 18c: 0e 94 49 00 call 0x92 ; 0x92 - 190: 10 c0 rjmp .+32 ; 0x1b2 + 190: 0e 94 49 00 call 0x92 ; 0x92 + 194: 10 c0 rjmp .+32 ; 0x1b6 default: { return; } } rf12_endasyncrx(); - 192: 0e 94 58 02 call 0x4b0 ; 0x4b0 - 196: 8f e3 ldi r24, 0x3F ; 63 - 198: 9c e9 ldi r25, 0x9C ; 156 - 19a: 01 97 sbiw r24, 0x01 ; 1 - 19c: f1 f7 brne .-4 ; 0x19a - 19e: 00 c0 rjmp .+0 ; 0x1a0 - 1a0: 00 00 nop + 196: 0e 94 5a 02 call 0x4b4 ; 0x4b4 + 19a: 8f e3 ldi r24, 0x3F ; 63 + 19c: 9c e9 ldi r25, 0x9C ; 156 + 19e: 01 97 sbiw r24, 0x01 ; 1 + 1a0: f1 f7 brne .-4 ; 0x19e + 1a2: 00 c0 rjmp .+0 ; 0x1a4 + 1a4: 00 00 nop _delay_ms(20); rf12_txpacket(MASTER, DEVICE, status); - 1a2: 40 91 60 00 lds r20, 0x0060 - 1a6: 50 91 61 00 lds r21, 0x0061 - 1aa: 81 e0 ldi r24, 0x01 ; 1 - 1ac: 6a e0 ldi r22, 0x0A ; 10 - 1ae: 0e 94 d5 02 call 0x5aa ; 0x5aa + 1a6: 40 91 62 00 lds r20, 0x0062 + 1aa: 50 91 63 00 lds r21, 0x0063 + 1ae: 81 e0 ldi r24, 0x01 ; 1 + 1b0: 6a e0 ldi r22, 0x0A ; 10 + 1b2: 0e 94 d7 02 call 0x5ae ; 0x5ae text[1] = 0; rf12_rxdata(text,2); if(text[0] == DEVICE && text[1] == PING) { turn(); }*/ } - 1b2: cf 91 pop r28 - 1b4: 08 95 ret + 1b6: cf 91 pop r28 + 1b8: 08 95 ret -000001b6 : +000001ba : // Clock source: System Clock // Clock value: 7,813 kHz // Mode: Normal top=0xFF // OC0 output: Disconnected // Timer Period: 21,504 ms TCCR0=(0<: +000001ca <__vector_9>: ISR(TIMER0_OVF_vect) { - 1c6: 1f 92 push r1 - 1c8: 0f 92 push r0 - 1ca: 0f b6 in r0, 0x3f ; 63 + 1ca: 1f 92 push r1 1cc: 0f 92 push r0 - 1ce: 11 24 eor r1, r1 - 1d0: 2f 93 push r18 - 1d2: 3f 93 push r19 - 1d4: 8f 93 push r24 - 1d6: 9f 93 push r25 + 1ce: 0f b6 in r0, 0x3f ; 63 + 1d0: 0f 92 push r0 + 1d2: 11 24 eor r1, r1 + 1d4: 2f 93 push r18 + 1d6: 3f 93 push r19 + 1d8: 8f 93 push r24 + 1da: 9f 93 push r25 // Reinitialize Timer 0 value TCNT0=0x58; - 1d8: 88 e5 ldi r24, 0x58 ; 88 - 1da: 82 bf out 0x32, r24 ; 50 + 1dc: 88 e5 ldi r24, 0x58 ; 88 + 1de: 82 bf out 0x32, r24 ; 50 if(status == SLEEP) { - 1dc: 80 91 60 00 lds r24, 0x0060 - 1e0: 90 91 61 00 lds r25, 0x0061 - 1e4: 82 30 cpi r24, 0x02 ; 2 - 1e6: 91 05 cpc r25, r1 - 1e8: d9 f4 brne .+54 ; 0x220 <__vector_9+0x5a> + 1e0: 80 91 62 00 lds r24, 0x0062 + 1e4: 90 91 63 00 lds r25, 0x0063 + 1e8: 82 30 cpi r24, 0x02 ; 2 + 1ea: 91 05 cpc r25, r1 + 1ec: d9 f4 brne .+54 ; 0x224 <__vector_9+0x5a> if(pwm_led < 50) { - 1ea: 80 91 64 00 lds r24, 0x0064 - 1ee: 90 91 65 00 lds r25, 0x0065 - 1f2: 82 33 cpi r24, 0x32 ; 50 - 1f4: 91 05 cpc r25, r1 - 1f6: 54 f4 brge .+20 ; 0x20c <__vector_9+0x46> + 1ee: 80 91 64 00 lds r24, 0x0064 + 1f2: 90 91 65 00 lds r25, 0x0065 + 1f6: 82 33 cpi r24, 0x32 ; 50 + 1f8: 91 05 cpc r25, r1 + 1fa: 54 f4 brge .+20 ; 0x210 <__vector_9+0x46> pwm_led++; - 1f8: 80 91 64 00 lds r24, 0x0064 - 1fc: 90 91 65 00 lds r25, 0x0065 - 200: 01 96 adiw r24, 0x01 ; 1 - 202: 90 93 65 00 sts 0x0065, r25 - 206: 80 93 64 00 sts 0x0064, r24 - 20a: 0a c0 rjmp .+20 ; 0x220 <__vector_9+0x5a> + 1fc: 80 91 64 00 lds r24, 0x0064 + 200: 90 91 65 00 lds r25, 0x0065 + 204: 01 96 adiw r24, 0x01 ; 1 + 206: 90 93 65 00 sts 0x0065, r25 + 20a: 80 93 64 00 sts 0x0064, r24 + 20e: 0a c0 rjmp .+20 ; 0x224 <__vector_9+0x5a> } else { DDRB |= (1< + 212: b0 9b sbis 0x16, 0 ; 22 + 214: 02 c0 rjmp .+4 ; 0x21a <__vector_9+0x50> PORTB &= ~(1< + 216: c0 98 cbi 0x18, 0 ; 24 + 218: 01 c0 rjmp .+2 ; 0x21c <__vector_9+0x52> } else { PORTB |= (1< + 224: 80 91 62 00 lds r24, 0x0062 + 228: 90 91 63 00 lds r25, 0x0063 + 22c: 83 30 cpi r24, 0x03 ; 3 + 22e: 91 05 cpc r25, r1 + 230: d9 f4 brne .+54 ; 0x268 <__vector_9+0x9e> if(pwm_led < 5) { - 22e: 80 91 64 00 lds r24, 0x0064 - 232: 90 91 65 00 lds r25, 0x0065 - 236: 85 30 cpi r24, 0x05 ; 5 - 238: 91 05 cpc r25, r1 - 23a: 54 f4 brge .+20 ; 0x250 <__vector_9+0x8a> + 232: 80 91 64 00 lds r24, 0x0064 + 236: 90 91 65 00 lds r25, 0x0065 + 23a: 85 30 cpi r24, 0x05 ; 5 + 23c: 91 05 cpc r25, r1 + 23e: 54 f4 brge .+20 ; 0x254 <__vector_9+0x8a> pwm_led++; - 23c: 80 91 64 00 lds r24, 0x0064 - 240: 90 91 65 00 lds r25, 0x0065 - 244: 01 96 adiw r24, 0x01 ; 1 - 246: 90 93 65 00 sts 0x0065, r25 - 24a: 80 93 64 00 sts 0x0064, r24 - 24e: 0a c0 rjmp .+20 ; 0x264 <__vector_9+0x9e> + 240: 80 91 64 00 lds r24, 0x0064 + 244: 90 91 65 00 lds r25, 0x0065 + 248: 01 96 adiw r24, 0x01 ; 1 + 24a: 90 93 65 00 sts 0x0065, r25 + 24e: 80 93 64 00 sts 0x0064, r24 + 252: 0a c0 rjmp .+20 ; 0x268 <__vector_9+0x9e> } else { DDRB |= (1< + 256: b0 9b sbis 0x16, 0 ; 22 + 258: 02 c0 rjmp .+4 ; 0x25e <__vector_9+0x94> PORTB &= ~(1< + 25a: c0 98 cbi 0x18, 0 ; 24 + 25c: 01 c0 rjmp .+2 ; 0x260 <__vector_9+0x96> } else { PORTB |= (1< + 268: 80 91 62 00 lds r24, 0x0062 + 26c: 90 91 63 00 lds r25, 0x0063 + 270: 86 30 cpi r24, 0x06 ; 6 + 272: 91 05 cpc r25, r1 + 274: d9 f4 brne .+54 ; 0x2ac <__vector_9+0xe2> if(pwm_led < 1) { - 272: 80 91 64 00 lds r24, 0x0064 - 276: 90 91 65 00 lds r25, 0x0065 - 27a: 18 16 cp r1, r24 - 27c: 19 06 cpc r1, r25 - 27e: 54 f0 brlt .+20 ; 0x294 <__vector_9+0xce> + 276: 80 91 64 00 lds r24, 0x0064 + 27a: 90 91 65 00 lds r25, 0x0065 + 27e: 18 16 cp r1, r24 + 280: 19 06 cpc r1, r25 + 282: 54 f0 brlt .+20 ; 0x298 <__vector_9+0xce> pwm_led++; - 280: 80 91 64 00 lds r24, 0x0064 - 284: 90 91 65 00 lds r25, 0x0065 - 288: 01 96 adiw r24, 0x01 ; 1 - 28a: 90 93 65 00 sts 0x0065, r25 - 28e: 80 93 64 00 sts 0x0064, r24 - 292: 0a c0 rjmp .+20 ; 0x2a8 <__vector_9+0xe2> + 284: 80 91 64 00 lds r24, 0x0064 + 288: 90 91 65 00 lds r25, 0x0065 + 28c: 01 96 adiw r24, 0x01 ; 1 + 28e: 90 93 65 00 sts 0x0065, r25 + 292: 80 93 64 00 sts 0x0064, r24 + 296: 0a c0 rjmp .+20 ; 0x2ac <__vector_9+0xe2> } else { DDRB |= (1< + 29a: b0 9b sbis 0x16, 0 ; 22 + 29c: 02 c0 rjmp .+4 ; 0x2a2 <__vector_9+0xd8> PORTB &= ~(1< + 29e: c0 98 cbi 0x18, 0 ; 24 + 2a0: 01 c0 rjmp .+2 ; 0x2a4 <__vector_9+0xda> } else { PORTB |= (1< - 2b4: 00 c0 rjmp .+0 ; 0x2b6 <__vector_9+0xf0> - 2b6: 00 00 nop + 2b0: 8f ea ldi r24, 0xAF ; 175 + 2b2: 94 e0 ldi r25, 0x04 ; 4 + 2b4: 01 97 sbiw r24, 0x01 ; 1 + 2b6: f1 f7 brne .-4 ; 0x2b4 <__vector_9+0xea> + 2b8: 00 c0 rjmp .+0 ; 0x2ba <__vector_9+0xf0> + 2ba: 00 00 nop _delay_us(LEFT); for(int i=0;i - 2c6: 80 e0 ldi r24, 0x00 ; 0 - 2c8: 90 e0 ldi r25, 0x00 ; 0 - 2ca: 25 e1 ldi r18, 0x15 ; 21 - 2cc: 2a 95 dec r18 - 2ce: f1 f7 brne .-4 ; 0x2cc <__vector_9+0x106> - 2d0: 00 00 nop - 2d2: 01 96 adiw r24, 0x01 ; 1 - 2d4: 20 91 62 00 lds r18, 0x0062 - 2d8: 30 91 63 00 lds r19, 0x0063 - 2dc: 82 17 cp r24, r18 - 2de: 93 07 cpc r25, r19 - 2e0: a4 f3 brlt .-24 ; 0x2ca <__vector_9+0x104> + 2bc: 80 91 60 00 lds r24, 0x0060 + 2c0: 90 91 61 00 lds r25, 0x0061 + 2c4: 18 16 cp r1, r24 + 2c6: 19 06 cpc r1, r25 + 2c8: 74 f4 brge .+28 ; 0x2e6 <__vector_9+0x11c> + 2ca: 80 e0 ldi r24, 0x00 ; 0 + 2cc: 90 e0 ldi r25, 0x00 ; 0 + 2ce: 25 e1 ldi r18, 0x15 ; 21 + 2d0: 2a 95 dec r18 + 2d2: f1 f7 brne .-4 ; 0x2d0 <__vector_9+0x106> + 2d4: 00 00 nop + 2d6: 01 96 adiw r24, 0x01 ; 1 + 2d8: 20 91 60 00 lds r18, 0x0060 + 2dc: 30 91 61 00 lds r19, 0x0061 + 2e0: 82 17 cp r24, r18 + 2e2: 93 07 cpc r25, r19 + 2e4: a4 f3 brlt .-24 ; 0x2ce <__vector_9+0x104> _delay_us(STEP); } PORTB &= ~(1<: +000002fa
: int main(void) { rf12_init(); // ein paar Register setzen (z.B. CLK auf 10MHz) - 2f6: 0e 94 ad 01 call 0x35a ; 0x35a + 2fa: 0e 94 af 01 call 0x35e ; 0x35e rf12_setfreq(RF12FREQ(433.92)); // Sende/Empfangsfrequenz auf 433,92MHz einstellen - 2fa: 80 e2 ldi r24, 0x20 ; 32 - 2fc: 96 e0 ldi r25, 0x06 ; 6 - 2fe: 0e 94 f5 01 call 0x3ea ; 0x3ea + 2fe: 80 e2 ldi r24, 0x20 ; 32 + 300: 96 e0 ldi r25, 0x06 ; 6 + 302: 0e 94 f7 01 call 0x3ee ; 0x3ee rf12_setbandwidth(1, 0, 7); // 400kHz Bandbreite, 0dB Verstärkung, DRSSI threshold: -61dBm - 302: 81 e0 ldi r24, 0x01 ; 1 - 304: 60 e0 ldi r22, 0x00 ; 0 - 306: 47 e0 ldi r20, 0x07 ; 7 - 308: 0e 94 d7 01 call 0x3ae ; 0x3ae + 306: 81 e0 ldi r24, 0x01 ; 1 + 308: 60 e0 ldi r22, 0x00 ; 0 + 30a: 47 e0 ldi r20, 0x07 ; 7 + 30c: 0e 94 d9 01 call 0x3b2 ; 0x3b2 rf12_setbaud(9600); // 19200 baud - 30c: 80 e8 ldi r24, 0x80 ; 128 - 30e: 95 e2 ldi r25, 0x25 ; 37 - 310: 0e 94 05 02 call 0x40a ; 0x40a + 310: 80 e8 ldi r24, 0x80 ; 128 + 312: 95 e2 ldi r25, 0x25 ; 37 + 314: 0e 94 07 02 call 0x40e ; 0x40e rf12_setpower(0, 6); // 1mW Ausgangsleistung, 120kHz Frequenzshift - 314: 80 e0 ldi r24, 0x00 ; 0 - 316: 66 e0 ldi r22, 0x06 ; 6 - 318: 0e 94 2c 02 call 0x458 ; 0x458 + 318: 80 e0 ldi r24, 0x00 ; 0 + 31a: 66 e0 ldi r22, 0x06 ; 6 + 31c: 0e 94 2e 02 call 0x45c ; 0x45c //rf12_ready(); init_timer(); - 31c: 0e 94 db 00 call 0x1b6 ; 0x1b6 + 320: 0e 94 dd 00 call 0x1ba ; 0x1ba sei(); - 320: 78 94 sei + 324: 78 94 sei //DDRB |= (1< - 326: fd cf rjmp .-6 ; 0x322 + 326: 0e 94 86 00 call 0x10c ; 0x10c + 32a: fd cf rjmp .-6 ; 0x326 -00000328 : +0000032c : 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; - 32c: 20 e0 ldi r18, 0x00 ; 0 - 32e: 30 e0 ldi r19, 0x00 ; 0 + 330: 20 e0 ldi r18, 0x00 ; 0 + 332: 30 e0 ldi r19, 0x00 ; 0 unsigned char i; RF_PORT &= ~(1< + 334: 99 23 and r25, r25 + 336: 14 f4 brge .+4 ; 0x33c RF_PORT |= (1< + 338: 96 9a sbi 0x12, 6 ; 18 + 33a: 01 c0 rjmp .+2 ; 0x33e } else { RF_PORT &= ~(1< - 34a: 00 00 nop + 348: 88 0f add r24, r24 + 34a: 99 1f adc r25, r25 + 34c: 00 c0 rjmp .+0 ; 0x34e + 34e: 00 00 nop _delay_us(0.3); RF_PORT &= ~(1< + 354: 79 f7 brne .-34 ; 0x334 RF_PORT |= (1<: +0000035e : void rf12_init(void) { RF_DDR |= (1< - 370: 00 c0 rjmp .+0 ; 0x372 - 372: 00 00 nop + 366: 8f ef ldi r24, 0xFF ; 255 + 368: 90 e7 ldi r25, 0x70 ; 112 + 36a: a2 e0 ldi r26, 0x02 ; 2 + 36c: 81 50 subi r24, 0x01 ; 1 + 36e: 90 40 sbci r25, 0x00 ; 0 + 370: a0 40 sbci r26, 0x00 ; 0 + 372: e1 f7 brne .-8 ; 0x36c + 374: 00 c0 rjmp .+0 ; 0x376 + 376: 00 00 nop _delay_ms(100); rf12_trans(0xC0E0); // AVR CLK: 10MHz - 374: 80 ee ldi r24, 0xE0 ; 224 - 376: 90 ec ldi r25, 0xC0 ; 192 - 378: 0e 94 94 01 call 0x328 ; 0x328 + 378: 80 ee ldi r24, 0xE0 ; 224 + 37a: 90 ec ldi r25, 0xC0 ; 192 + 37c: 0e 94 96 01 call 0x32c ; 0x32c rf12_trans(0x80D7); // Enable FIFO - 37c: 87 ed ldi r24, 0xD7 ; 215 - 37e: 90 e8 ldi r25, 0x80 ; 128 - 380: 0e 94 94 01 call 0x328 ; 0x328 + 380: 87 ed ldi r24, 0xD7 ; 215 + 382: 90 e8 ldi r25, 0x80 ; 128 + 384: 0e 94 96 01 call 0x32c ; 0x32c rf12_trans(0xC2AB); // Data Filter: internal - 384: 8b ea ldi r24, 0xAB ; 171 - 386: 92 ec ldi r25, 0xC2 ; 194 - 388: 0e 94 94 01 call 0x328 ; 0x328 + 388: 8b ea ldi r24, 0xAB ; 171 + 38a: 92 ec ldi r25, 0xC2 ; 194 + 38c: 0e 94 96 01 call 0x32c ; 0x32c rf12_trans(0xCA81); // Set FIFO mode - 38c: 81 e8 ldi r24, 0x81 ; 129 - 38e: 9a ec ldi r25, 0xCA ; 202 - 390: 0e 94 94 01 call 0x328 ; 0x328 + 390: 81 e8 ldi r24, 0x81 ; 129 + 392: 9a ec ldi r25, 0xCA ; 202 + 394: 0e 94 96 01 call 0x32c ; 0x32c rf12_trans(0xE000); // disable wakeuptimer - 394: 80 e0 ldi r24, 0x00 ; 0 - 396: 90 ee ldi r25, 0xE0 ; 224 - 398: 0e 94 94 01 call 0x328 ; 0x328 + 398: 80 e0 ldi r24, 0x00 ; 0 + 39a: 90 ee ldi r25, 0xE0 ; 224 + 39c: 0e 94 96 01 call 0x32c ; 0x32c rf12_trans(0xC800); // disable low duty cycle - 39c: 80 e0 ldi r24, 0x00 ; 0 - 39e: 98 ec ldi r25, 0xC8 ; 200 - 3a0: 0e 94 94 01 call 0x328 ; 0x328 + 3a0: 80 e0 ldi r24, 0x00 ; 0 + 3a2: 98 ec ldi r25, 0xC8 ; 200 + 3a4: 0e 94 96 01 call 0x32c ; 0x32c rf12_trans(0xC4F7); // AFC settings: autotuning: -10kHz...+7,5kHz - 3a4: 87 ef ldi r24, 0xF7 ; 247 - 3a6: 94 ec ldi r25, 0xC4 ; 196 - 3a8: 0e 94 94 01 call 0x328 ; 0x328 + 3a8: 87 ef ldi r24, 0xF7 ; 247 + 3aa: 94 ec ldi r25, 0xC4 ; 196 + 3ac: 0e 94 96 01 call 0x32c ; 0x32c } - 3ac: 08 95 ret + 3b0: 08 95 ret -000003ae : +000003b2 : void rf12_setbandwidth(unsigned char bandwidth, unsigned char gain, unsigned char drssi) { rf12_trans(0x9400|((bandwidth&7)<<5)|((gain&3)<<3)|(drssi&7)); - 3ae: 90 e0 ldi r25, 0x00 ; 0 - 3b0: 88 0f add r24, r24 - 3b2: 99 1f adc r25, r25 - 3b4: 82 95 swap r24 - 3b6: 92 95 swap r25 - 3b8: 90 7f andi r25, 0xF0 ; 240 - 3ba: 98 27 eor r25, r24 - 3bc: 80 7f andi r24, 0xF0 ; 240 + 3b2: 90 e0 ldi r25, 0x00 ; 0 + 3b4: 88 0f add r24, r24 + 3b6: 99 1f adc r25, r25 + 3b8: 82 95 swap r24 + 3ba: 92 95 swap r25 + 3bc: 90 7f andi r25, 0xF0 ; 240 3be: 98 27 eor r25, r24 - 3c0: 90 70 andi r25, 0x00 ; 0 - 3c2: 50 e0 ldi r21, 0x00 ; 0 - 3c4: 47 70 andi r20, 0x07 ; 7 - 3c6: 50 70 andi r21, 0x00 ; 0 - 3c8: 84 2b or r24, r20 - 3ca: 95 2b or r25, r21 - 3cc: 94 69 ori r25, 0x94 ; 148 - 3ce: 70 e0 ldi r23, 0x00 ; 0 - 3d0: 63 70 andi r22, 0x03 ; 3 - 3d2: 70 70 andi r23, 0x00 ; 0 - 3d4: 66 0f add r22, r22 - 3d6: 77 1f adc r23, r23 + 3c0: 80 7f andi r24, 0xF0 ; 240 + 3c2: 98 27 eor r25, r24 + 3c4: 90 70 andi r25, 0x00 ; 0 + 3c6: 50 e0 ldi r21, 0x00 ; 0 + 3c8: 47 70 andi r20, 0x07 ; 7 + 3ca: 50 70 andi r21, 0x00 ; 0 + 3cc: 84 2b or r24, r20 + 3ce: 95 2b or r25, r21 + 3d0: 94 69 ori r25, 0x94 ; 148 + 3d2: 70 e0 ldi r23, 0x00 ; 0 + 3d4: 63 70 andi r22, 0x03 ; 3 + 3d6: 70 70 andi r23, 0x00 ; 0 3d8: 66 0f add r22, r22 3da: 77 1f adc r23, r23 3dc: 66 0f add r22, r22 3de: 77 1f adc r23, r23 - 3e0: 86 2b or r24, r22 - 3e2: 97 2b or r25, r23 - 3e4: 0e 94 94 01 call 0x328 ; 0x328 + 3e0: 66 0f add r22, r22 + 3e2: 77 1f adc r23, r23 + 3e4: 86 2b or r24, r22 + 3e6: 97 2b or r25, r23 + 3e8: 0e 94 96 01 call 0x32c ; 0x32c } - 3e8: 08 95 ret + 3ec: 08 95 ret -000003ea : +000003ee : void rf12_setfreq(unsigned short freq) { if (freq<96) { // 430,2400MHz - 3ea: 80 36 cpi r24, 0x60 ; 96 - 3ec: 91 05 cpc r25, r1 - 3ee: 38 f0 brcs .+14 ; 0x3fe - 3f0: 2f e0 ldi r18, 0x0F ; 15 - 3f2: 80 34 cpi r24, 0x40 ; 64 - 3f4: 92 07 cpc r25, r18 - 3f6: 28 f0 brcs .+10 ; 0x402 - 3f8: 8f e3 ldi r24, 0x3F ; 63 - 3fa: 9f e0 ldi r25, 0x0F ; 15 - 3fc: 02 c0 rjmp .+4 ; 0x402 + 3ee: 80 36 cpi r24, 0x60 ; 96 + 3f0: 91 05 cpc r25, r1 + 3f2: 38 f0 brcs .+14 ; 0x402 + 3f4: 2f e0 ldi r18, 0x0F ; 15 + 3f6: 80 34 cpi r24, 0x40 ; 64 + 3f8: 92 07 cpc r25, r18 + 3fa: 28 f0 brcs .+10 ; 0x406 + 3fc: 8f e3 ldi r24, 0x3F ; 63 + 3fe: 9f e0 ldi r25, 0x0F ; 15 + 400: 02 c0 rjmp .+4 ; 0x406 freq=96; - 3fe: 80 e6 ldi r24, 0x60 ; 96 - 400: 90 e0 ldi r25, 0x00 ; 0 + 402: 80 e6 ldi r24, 0x60 ; 96 + 404: 90 e0 ldi r25, 0x00 ; 0 } else if (freq>3903) { // 439,7575MHz freq=3903; } rf12_trans(0xA000|freq); - 402: 90 6a ori r25, 0xA0 ; 160 - 404: 0e 94 94 01 call 0x328 ; 0x328 + 406: 90 6a ori r25, 0xA0 ; 160 + 408: 0e 94 96 01 call 0x32c ; 0x32c } - 408: 08 95 ret + 40c: 08 95 ret -0000040a : +0000040e : void rf12_setbaud(unsigned short baud) { if (baud<663) { - 40a: 22 e0 ldi r18, 0x02 ; 2 - 40c: 87 39 cpi r24, 0x97 ; 151 - 40e: 92 07 cpc r25, r18 - 410: 10 f1 brcs .+68 ; 0x456 + 40e: 22 e0 ldi r18, 0x02 ; 2 + 410: 87 39 cpi r24, 0x97 ; 151 + 412: 92 07 cpc r25, r18 + 414: 10 f1 brcs .+68 ; 0x45a return; } if (baud<5400) { // Baudrate= 344827,58621/(R+1)/(1+CS*7) - 412: 25 e1 ldi r18, 0x15 ; 21 - 414: 88 31 cpi r24, 0x18 ; 24 - 416: 92 07 cpc r25, r18 - 418: 80 f4 brcc .+32 ; 0x43a + 416: 25 e1 ldi r18, 0x15 ; 21 + 418: 88 31 cpi r24, 0x18 ; 24 + 41a: 92 07 cpc r25, r18 + 41c: 80 f4 brcc .+32 ; 0x43e rf12_trans(0xC680|((43104/baud)-1)); - 41a: 9c 01 movw r18, r24 - 41c: 40 e0 ldi r20, 0x00 ; 0 - 41e: 50 e0 ldi r21, 0x00 ; 0 - 420: 60 e6 ldi r22, 0x60 ; 96 - 422: 78 ea ldi r23, 0xA8 ; 168 - 424: 80 e0 ldi r24, 0x00 ; 0 - 426: 90 e0 ldi r25, 0x00 ; 0 - 428: 0e 94 4d 03 call 0x69a ; 0x69a <__divmodsi4> - 42c: c9 01 movw r24, r18 - 42e: 01 97 sbiw r24, 0x01 ; 1 - 430: 80 68 ori r24, 0x80 ; 128 - 432: 96 6c ori r25, 0xC6 ; 198 - 434: 0e 94 94 01 call 0x328 ; 0x328 - 438: 08 95 ret + 41e: 9c 01 movw r18, r24 + 420: 40 e0 ldi r20, 0x00 ; 0 + 422: 50 e0 ldi r21, 0x00 ; 0 + 424: 60 e6 ldi r22, 0x60 ; 96 + 426: 78 ea ldi r23, 0xA8 ; 168 + 428: 80 e0 ldi r24, 0x00 ; 0 + 42a: 90 e0 ldi r25, 0x00 ; 0 + 42c: 0e 94 4f 03 call 0x69e ; 0x69e <__divmodsi4> + 430: c9 01 movw r24, r18 + 432: 01 97 sbiw r24, 0x01 ; 1 + 434: 80 68 ori r24, 0x80 ; 128 + 436: 96 6c ori r25, 0xC6 ; 198 + 438: 0e 94 96 01 call 0x32c ; 0x32c + 43c: 08 95 ret } else { rf12_trans(0xC600|((344828UL/baud)-1)); - 43a: 9c 01 movw r18, r24 - 43c: 40 e0 ldi r20, 0x00 ; 0 - 43e: 50 e0 ldi r21, 0x00 ; 0 - 440: 6c ef ldi r22, 0xFC ; 252 - 442: 72 e4 ldi r23, 0x42 ; 66 - 444: 85 e0 ldi r24, 0x05 ; 5 - 446: 90 e0 ldi r25, 0x00 ; 0 - 448: 0e 94 2b 03 call 0x656 ; 0x656 <__udivmodsi4> - 44c: c9 01 movw r24, r18 - 44e: 01 97 sbiw r24, 0x01 ; 1 - 450: 96 6c ori r25, 0xC6 ; 198 - 452: 0e 94 94 01 call 0x328 ; 0x328 - 456: 08 95 ret + 43e: 9c 01 movw r18, r24 + 440: 40 e0 ldi r20, 0x00 ; 0 + 442: 50 e0 ldi r21, 0x00 ; 0 + 444: 6c ef ldi r22, 0xFC ; 252 + 446: 72 e4 ldi r23, 0x42 ; 66 + 448: 85 e0 ldi r24, 0x05 ; 5 + 44a: 90 e0 ldi r25, 0x00 ; 0 + 44c: 0e 94 2d 03 call 0x65a ; 0x65a <__udivmodsi4> + 450: c9 01 movw r24, r18 + 452: 01 97 sbiw r24, 0x01 ; 1 + 454: 96 6c ori r25, 0xC6 ; 198 + 456: 0e 94 96 01 call 0x32c ; 0x32c + 45a: 08 95 ret -00000458 : +0000045c : } } void rf12_setpower(unsigned char power, unsigned char mod) { rf12_trans(0x9800|(power&7)|((mod&15)<<4)); - 458: 90 e0 ldi r25, 0x00 ; 0 - 45a: 87 70 andi r24, 0x07 ; 7 - 45c: 90 70 andi r25, 0x00 ; 0 - 45e: 98 69 ori r25, 0x98 ; 152 - 460: 70 e0 ldi r23, 0x00 ; 0 - 462: 62 95 swap r22 - 464: 72 95 swap r23 - 466: 70 7f andi r23, 0xF0 ; 240 - 468: 76 27 eor r23, r22 - 46a: 60 7f andi r22, 0xF0 ; 240 + 45c: 90 e0 ldi r25, 0x00 ; 0 + 45e: 87 70 andi r24, 0x07 ; 7 + 460: 90 70 andi r25, 0x00 ; 0 + 462: 98 69 ori r25, 0x98 ; 152 + 464: 70 e0 ldi r23, 0x00 ; 0 + 466: 62 95 swap r22 + 468: 72 95 swap r23 + 46a: 70 7f andi r23, 0xF0 ; 240 46c: 76 27 eor r23, r22 - 46e: 70 70 andi r23, 0x00 ; 0 - 470: 86 2b or r24, r22 - 472: 97 2b or r25, r23 - 474: 0e 94 94 01 call 0x328 ; 0x328 + 46e: 60 7f andi r22, 0xF0 ; 240 + 470: 76 27 eor r23, r22 + 472: 70 70 andi r23, 0x00 ; 0 + 474: 86 2b or r24, r22 + 476: 97 2b or r25, r23 + 478: 0e 94 96 01 call 0x32c ; 0x32c } - 478: 08 95 ret + 47c: 08 95 ret -0000047a : +0000047e : void rf12_ready(void) { RF_PORT &= ~(1< + 480: 83 9b sbis 0x10, 3 ; 16 + 482: fe cf rjmp .-4 ; 0x480 } - 480: 08 95 ret + 484: 08 95 ret -00000482 : +00000486 : void rf12_beginasyncrx() { rf12_trans(0x82C8); // RX on - 482: 88 ec ldi r24, 0xC8 ; 200 - 484: 92 e8 ldi r25, 0x82 ; 130 - 486: 0e 94 94 01 call 0x328 ; 0x328 + 486: 88 ec ldi r24, 0xC8 ; 200 + 488: 92 e8 ldi r25, 0x82 ; 130 + 48a: 0e 94 96 01 call 0x32c ; 0x32c rf12_trans(0xCA81); // set FIFO mode - 48a: 81 e8 ldi r24, 0x81 ; 129 - 48c: 9a ec ldi r25, 0xCA ; 202 - 48e: 0e 94 94 01 call 0x328 ; 0x328 + 48e: 81 e8 ldi r24, 0x81 ; 129 + 490: 9a ec ldi r25, 0xCA ; 202 + 492: 0e 94 96 01 call 0x32c ; 0x32c rf12_trans(0xCA83); // enable FIFO - 492: 83 e8 ldi r24, 0x83 ; 131 - 494: 9a ec ldi r25, 0xCA ; 202 - 496: 0e 94 94 01 call 0x328 ; 0x328 + 496: 83 e8 ldi r24, 0x83 ; 131 + 498: 9a ec ldi r25, 0xCA ; 202 + 49a: 0e 94 96 01 call 0x32c ; 0x32c } - 49a: 08 95 ret + 49e: 08 95 ret -0000049c : +000004a0 : uint8_t rf12_hasdata() { RF_PORT &= ~(1<: +000004aa : uint8_t rf12_rxbyte() { return rf12_trans(0xB000); - 4a6: 80 e0 ldi r24, 0x00 ; 0 - 4a8: 90 eb ldi r25, 0xB0 ; 176 - 4aa: 0e 94 94 01 call 0x328 ; 0x328 + 4aa: 80 e0 ldi r24, 0x00 ; 0 + 4ac: 90 eb ldi r25, 0xB0 ; 176 + 4ae: 0e 94 96 01 call 0x32c ; 0x32c } - 4ae: 08 95 ret + 4b2: 08 95 ret -000004b0 : +000004b4 : void rf12_endasyncrx() { rf12_trans(0x8208); // RX off - 4b0: 88 e0 ldi r24, 0x08 ; 8 - 4b2: 92 e8 ldi r25, 0x82 ; 130 - 4b4: 0e 94 94 01 call 0x328 ; 0x328 + 4b4: 88 e0 ldi r24, 0x08 ; 8 + 4b6: 92 e8 ldi r25, 0x82 ; 130 + 4b8: 0e 94 96 01 call 0x32c ; 0x32c } - 4b8: 08 95 ret + 4bc: 08 95 ret -000004ba : +000004be : void rf12_txdata(unsigned char *data, unsigned char number) { - 4ba: 0f 93 push r16 - 4bc: 1f 93 push r17 - 4be: cf 93 push r28 - 4c0: df 93 push r29 - 4c2: 8c 01 movw r16, r24 - 4c4: c6 2f mov r28, r22 + 4be: 0f 93 push r16 + 4c0: 1f 93 push r17 + 4c2: cf 93 push r28 + 4c4: df 93 push r29 + 4c6: 8c 01 movw r16, r24 + 4c8: c6 2f mov r28, r22 unsigned char i; rf12_trans(0x8238); // TX on - 4c6: 88 e3 ldi r24, 0x38 ; 56 - 4c8: 92 e8 ldi r25, 0x82 ; 130 - 4ca: 0e 94 94 01 call 0x328 ; 0x328 + 4ca: 88 e3 ldi r24, 0x38 ; 56 + 4cc: 92 e8 ldi r25, 0x82 ; 130 + 4ce: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 4ce: 0e 94 3d 02 call 0x47a ; 0x47a + 4d2: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB8AA); - 4d2: 8a ea ldi r24, 0xAA ; 170 - 4d4: 98 eb ldi r25, 0xB8 ; 184 - 4d6: 0e 94 94 01 call 0x328 ; 0x328 + 4d6: 8a ea ldi r24, 0xAA ; 170 + 4d8: 98 eb ldi r25, 0xB8 ; 184 + 4da: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 4da: 0e 94 3d 02 call 0x47a ; 0x47a + 4de: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB8AA); - 4de: 8a ea ldi r24, 0xAA ; 170 - 4e0: 98 eb ldi r25, 0xB8 ; 184 - 4e2: 0e 94 94 01 call 0x328 ; 0x328 + 4e2: 8a ea ldi r24, 0xAA ; 170 + 4e4: 98 eb ldi r25, 0xB8 ; 184 + 4e6: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 4e6: 0e 94 3d 02 call 0x47a ; 0x47a + 4ea: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB8AA); - 4ea: 8a ea ldi r24, 0xAA ; 170 - 4ec: 98 eb ldi r25, 0xB8 ; 184 - 4ee: 0e 94 94 01 call 0x328 ; 0x328 + 4ee: 8a ea ldi r24, 0xAA ; 170 + 4f0: 98 eb ldi r25, 0xB8 ; 184 + 4f2: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 4f2: 0e 94 3d 02 call 0x47a ; 0x47a + 4f6: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB82D); - 4f6: 8d e2 ldi r24, 0x2D ; 45 - 4f8: 98 eb ldi r25, 0xB8 ; 184 - 4fa: 0e 94 94 01 call 0x328 ; 0x328 + 4fa: 8d e2 ldi r24, 0x2D ; 45 + 4fc: 98 eb ldi r25, 0xB8 ; 184 + 4fe: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 4fe: 0e 94 3d 02 call 0x47a ; 0x47a + 502: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB8D4); - 502: 84 ed ldi r24, 0xD4 ; 212 - 504: 98 eb ldi r25, 0xB8 ; 184 - 506: 0e 94 94 01 call 0x328 ; 0x328 + 506: 84 ed ldi r24, 0xD4 ; 212 + 508: 98 eb ldi r25, 0xB8 ; 184 + 50a: 0e 94 96 01 call 0x32c ; 0x32c for (i=0; i + 50e: cc 23 and r28, r28 + 510: 99 f0 breq .+38 ; 0x538 } void rf12_endasyncrx() { rf12_trans(0x8208); // RX off } void rf12_txdata(unsigned char *data, unsigned char number) - 50e: c8 01 movw r24, r16 - 510: 01 96 adiw r24, 0x01 ; 1 - 512: c1 50 subi r28, 0x01 ; 1 - 514: 9c 01 movw r18, r24 - 516: 2c 0f add r18, r28 - 518: 31 1d adc r19, r1 - 51a: e9 01 movw r28, r18 + 512: c8 01 movw r24, r16 + 514: 01 96 adiw r24, 0x01 ; 1 + 516: c1 50 subi r28, 0x01 ; 1 + 518: 9c 01 movw r18, r24 + 51a: 2c 0f add r18, r28 + 51c: 31 1d adc r19, r1 + 51e: e9 01 movw r28, r18 rf12_trans(0xB82D); rf12_ready(); rf12_trans(0xB8D4); for (i=0; i + 520: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB800|(*data++)); - 520: f8 01 movw r30, r16 - 522: 81 91 ld r24, Z+ - 524: 8f 01 movw r16, r30 - 526: 90 e0 ldi r25, 0x00 ; 0 - 528: 98 6b ori r25, 0xB8 ; 184 - 52a: 0e 94 94 01 call 0x328 ; 0x328 + 524: f8 01 movw r30, r16 + 526: 81 91 ld r24, Z+ + 528: 8f 01 movw r16, r30 + 52a: 90 e0 ldi r25, 0x00 ; 0 + 52c: 98 6b ori r25, 0xB8 ; 184 + 52e: 0e 94 96 01 call 0x32c ; 0x32c rf12_trans(0xB8AA); rf12_ready(); rf12_trans(0xB82D); rf12_ready(); rf12_trans(0xB8D4); for (i=0; i + 532: 0c 17 cp r16, r28 + 534: 1d 07 cpc r17, r29 + 536: a1 f7 brne .-24 ; 0x520 { rf12_ready(); rf12_trans(0xB800|(*data++)); } rf12_ready(); - 534: 0e 94 3d 02 call 0x47a ; 0x47a + 538: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0x8208); // TX off - 538: 88 e0 ldi r24, 0x08 ; 8 - 53a: 92 e8 ldi r25, 0x82 ; 130 - 53c: 0e 94 94 01 call 0x328 ; 0x328 + 53c: 88 e0 ldi r24, 0x08 ; 8 + 53e: 92 e8 ldi r25, 0x82 ; 130 + 540: 0e 94 96 01 call 0x32c ; 0x32c } - 540: df 91 pop r29 - 542: cf 91 pop r28 - 544: 1f 91 pop r17 - 546: 0f 91 pop r16 - 548: 08 95 ret + 544: df 91 pop r29 + 546: cf 91 pop r28 + 548: 1f 91 pop r17 + 54a: 0f 91 pop r16 + 54c: 08 95 ret -0000054a : +0000054e : void rf12_rxdata(unsigned char *data, unsigned char number) { - 54a: 0f 93 push r16 - 54c: 1f 93 push r17 - 54e: cf 93 push r28 - 550: df 93 push r29 - 552: 8c 01 movw r16, r24 - 554: d6 2f mov r29, r22 + 54e: 0f 93 push r16 + 550: 1f 93 push r17 + 552: cf 93 push r28 + 554: df 93 push r29 + 556: 8c 01 movw r16, r24 + 558: d6 2f mov r29, r22 unsigned char i; rf12_trans(0x82C8); // RX on - 556: 88 ec ldi r24, 0xC8 ; 200 - 558: 92 e8 ldi r25, 0x82 ; 130 - 55a: 0e 94 94 01 call 0x328 ; 0x328 + 55a: 88 ec ldi r24, 0xC8 ; 200 + 55c: 92 e8 ldi r25, 0x82 ; 130 + 55e: 0e 94 96 01 call 0x32c ; 0x32c rf12_trans(0xCA81); // set FIFO mode - 55e: 81 e8 ldi r24, 0x81 ; 129 - 560: 9a ec ldi r25, 0xCA ; 202 - 562: 0e 94 94 01 call 0x328 ; 0x328 + 562: 81 e8 ldi r24, 0x81 ; 129 + 564: 9a ec ldi r25, 0xCA ; 202 + 566: 0e 94 96 01 call 0x32c ; 0x32c rf12_trans(0xCA83); // enable FIFO - 566: 83 e8 ldi r24, 0x83 ; 131 - 568: 9a ec ldi r25, 0xCA ; 202 - 56a: 0e 94 94 01 call 0x328 ; 0x328 + 56a: 83 e8 ldi r24, 0x83 ; 131 + 56c: 9a ec ldi r25, 0xCA ; 202 + 56e: 0e 94 96 01 call 0x32c ; 0x32c for (i=0; i + 572: dd 23 and r29, r29 + 574: 99 f0 breq .+38 ; 0x59c } rf12_ready(); rf12_trans(0x8208); // TX off } void rf12_rxdata(unsigned char *data, unsigned char number) - 572: c8 01 movw r24, r16 - 574: 01 96 adiw r24, 0x01 ; 1 - 576: d1 50 subi r29, 0x01 ; 1 - 578: 9c 01 movw r18, r24 - 57a: 2d 0f add r18, r29 - 57c: 31 1d adc r19, r1 - 57e: e9 01 movw r28, r18 + 576: c8 01 movw r24, r16 + 578: 01 96 adiw r24, 0x01 ; 1 + 57a: d1 50 subi r29, 0x01 ; 1 + 57c: 9c 01 movw r18, r24 + 57e: 2d 0f add r18, r29 + 580: 31 1d adc r19, r1 + 582: 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 + 584: 0e 94 3f 02 call 0x47e ; 0x47e *data++=rf12_trans(0xB000); - 584: 80 e0 ldi r24, 0x00 ; 0 - 586: 90 eb ldi r25, 0xB0 ; 176 - 588: 0e 94 94 01 call 0x328 ; 0x328 - 58c: f8 01 movw r30, r16 - 58e: 81 93 st Z+, r24 - 590: 8f 01 movw r16, r30 + 588: 80 e0 ldi r24, 0x00 ; 0 + 58a: 90 eb ldi r25, 0xB0 ; 176 + 58c: 0e 94 96 01 call 0x32c ; 0x32c + 590: f8 01 movw r30, r16 + 592: 81 93 st Z+, r24 + 594: 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 + 596: ec 17 cp r30, r28 + 598: fd 07 cpc r31, r29 + 59a: a1 f7 brne .-24 ; 0x584 { rf12_ready(); *data++=rf12_trans(0xB000); } rf12_trans(0x8208); // RX off - 598: 88 e0 ldi r24, 0x08 ; 8 - 59a: 92 e8 ldi r25, 0x82 ; 130 - 59c: 0e 94 94 01 call 0x328 ; 0x328 + 59c: 88 e0 ldi r24, 0x08 ; 8 + 59e: 92 e8 ldi r25, 0x82 ; 130 + 5a0: 0e 94 96 01 call 0x32c ; 0x32c } - 5a0: df 91 pop r29 - 5a2: cf 91 pop r28 - 5a4: 1f 91 pop r17 - 5a6: 0f 91 pop r16 - 5a8: 08 95 ret + 5a4: df 91 pop r29 + 5a6: cf 91 pop r28 + 5a8: 1f 91 pop r17 + 5aa: 0f 91 pop r16 + 5ac: 08 95 ret -000005aa : +000005ae : void rf12_txpacket(uint8_t addr, uint8_t from, uint8_t data) { - 5aa: 1f 93 push r17 - 5ac: cf 93 push r28 - 5ae: df 93 push r29 - 5b0: 18 2f mov r17, r24 - 5b2: d6 2f mov r29, r22 - 5b4: c4 2f mov r28, r20 + 5ae: 1f 93 push r17 + 5b0: cf 93 push r28 + 5b2: df 93 push r29 + 5b4: 18 2f mov r17, r24 + 5b6: d6 2f mov r29, r22 + 5b8: c4 2f mov r28, r20 rf12_trans(0x8238); // TX on - 5b6: 88 e3 ldi r24, 0x38 ; 56 - 5b8: 92 e8 ldi r25, 0x82 ; 130 - 5ba: 0e 94 94 01 call 0x328 ; 0x328 + 5ba: 88 e3 ldi r24, 0x38 ; 56 + 5bc: 92 e8 ldi r25, 0x82 ; 130 + 5be: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 5be: 0e 94 3d 02 call 0x47a ; 0x47a + 5c2: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB8AA); - 5c2: 8a ea ldi r24, 0xAA ; 170 - 5c4: 98 eb ldi r25, 0xB8 ; 184 - 5c6: 0e 94 94 01 call 0x328 ; 0x328 + 5c6: 8a ea ldi r24, 0xAA ; 170 + 5c8: 98 eb ldi r25, 0xB8 ; 184 + 5ca: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 5ca: 0e 94 3d 02 call 0x47a ; 0x47a + 5ce: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB8AA); - 5ce: 8a ea ldi r24, 0xAA ; 170 - 5d0: 98 eb ldi r25, 0xB8 ; 184 - 5d2: 0e 94 94 01 call 0x328 ; 0x328 + 5d2: 8a ea ldi r24, 0xAA ; 170 + 5d4: 98 eb ldi r25, 0xB8 ; 184 + 5d6: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 5d6: 0e 94 3d 02 call 0x47a ; 0x47a + 5da: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB8AA); - 5da: 8a ea ldi r24, 0xAA ; 170 - 5dc: 98 eb ldi r25, 0xB8 ; 184 - 5de: 0e 94 94 01 call 0x328 ; 0x328 + 5de: 8a ea ldi r24, 0xAA ; 170 + 5e0: 98 eb ldi r25, 0xB8 ; 184 + 5e2: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 5e2: 0e 94 3d 02 call 0x47a ; 0x47a + 5e6: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB82D); - 5e6: 8d e2 ldi r24, 0x2D ; 45 - 5e8: 98 eb ldi r25, 0xB8 ; 184 - 5ea: 0e 94 94 01 call 0x328 ; 0x328 + 5ea: 8d e2 ldi r24, 0x2D ; 45 + 5ec: 98 eb ldi r25, 0xB8 ; 184 + 5ee: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 5ee: 0e 94 3d 02 call 0x47a ; 0x47a + 5f2: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB8D4); - 5f2: 84 ed ldi r24, 0xD4 ; 212 - 5f4: 98 eb ldi r25, 0xB8 ; 184 - 5f6: 0e 94 94 01 call 0x328 ; 0x328 + 5f6: 84 ed ldi r24, 0xD4 ; 212 + 5f8: 98 eb ldi r25, 0xB8 ; 184 + 5fa: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 5fa: 0e 94 3d 02 call 0x47a ; 0x47a + 5fe: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB800|addr); - 5fe: 81 2f mov r24, r17 - 600: 90 e0 ldi r25, 0x00 ; 0 - 602: 98 6b ori r25, 0xB8 ; 184 - 604: 0e 94 94 01 call 0x328 ; 0x328 + 602: 81 2f mov r24, r17 + 604: 90 e0 ldi r25, 0x00 ; 0 + 606: 98 6b ori r25, 0xB8 ; 184 + 608: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 608: 0e 94 3d 02 call 0x47a ; 0x47a + 60c: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB800|from); - 60c: 8d 2f mov r24, r29 - 60e: 90 e0 ldi r25, 0x00 ; 0 - 610: 98 6b ori r25, 0xB8 ; 184 - 612: 0e 94 94 01 call 0x328 ; 0x328 + 610: 8d 2f mov r24, r29 + 612: 90 e0 ldi r25, 0x00 ; 0 + 614: 98 6b ori r25, 0xB8 ; 184 + 616: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 616: 0e 94 3d 02 call 0x47a ; 0x47a + 61a: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB800|data); - 61a: 8c 2f mov r24, r28 - 61c: 90 e0 ldi r25, 0x00 ; 0 - 61e: 98 6b ori r25, 0xB8 ; 184 - 620: 0e 94 94 01 call 0x328 ; 0x328 + 61e: 8c 2f mov r24, r28 + 620: 90 e0 ldi r25, 0x00 ; 0 + 622: 98 6b ori r25, 0xB8 ; 184 + 624: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 624: 0e 94 3d 02 call 0x47a ; 0x47a + 628: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0xB800); - 628: 80 e0 ldi r24, 0x00 ; 0 - 62a: 98 eb ldi r25, 0xB8 ; 184 - 62c: 0e 94 94 01 call 0x328 ; 0x328 + 62c: 80 e0 ldi r24, 0x00 ; 0 + 62e: 98 eb ldi r25, 0xB8 ; 184 + 630: 0e 94 96 01 call 0x32c ; 0x32c rf12_ready(); - 630: 0e 94 3d 02 call 0x47a ; 0x47a + 634: 0e 94 3f 02 call 0x47e ; 0x47e rf12_trans(0x8208); // TX off - 634: 88 e0 ldi r24, 0x08 ; 8 - 636: 92 e8 ldi r25, 0x82 ; 130 - 638: 0e 94 94 01 call 0x328 ; 0x328 - 63c: 8f ef ldi r24, 0xFF ; 255 - 63e: 90 e7 ldi r25, 0x70 ; 112 - 640: a2 e0 ldi r26, 0x02 ; 2 - 642: 81 50 subi r24, 0x01 ; 1 - 644: 90 40 sbci r25, 0x00 ; 0 - 646: a0 40 sbci r26, 0x00 ; 0 - 648: e1 f7 brne .-8 ; 0x642 - 64a: 00 c0 rjmp .+0 ; 0x64c - 64c: 00 00 nop + 638: 88 e0 ldi r24, 0x08 ; 8 + 63a: 92 e8 ldi r25, 0x82 ; 130 + 63c: 0e 94 96 01 call 0x32c ; 0x32c + 640: 8f ef ldi r24, 0xFF ; 255 + 642: 90 e7 ldi r25, 0x70 ; 112 + 644: a2 e0 ldi r26, 0x02 ; 2 + 646: 81 50 subi r24, 0x01 ; 1 + 648: 90 40 sbci r25, 0x00 ; 0 + 64a: a0 40 sbci r26, 0x00 ; 0 + 64c: e1 f7 brne .-8 ; 0x646 + 64e: 00 c0 rjmp .+0 ; 0x650 + 650: 00 00 nop _delay_ms(100); - 64e: df 91 pop r29 - 650: cf 91 pop r28 - 652: 1f 91 pop r17 - 654: 08 95 ret + 652: df 91 pop r29 + 654: cf 91 pop r28 + 656: 1f 91 pop r17 + 658: 08 95 ret -00000656 <__udivmodsi4>: - 656: a1 e2 ldi r26, 0x21 ; 33 - 658: 1a 2e mov r1, r26 - 65a: aa 1b sub r26, r26 - 65c: bb 1b sub r27, r27 - 65e: fd 01 movw r30, r26 - 660: 0d c0 rjmp .+26 ; 0x67c <__udivmodsi4_ep> +0000065a <__udivmodsi4>: + 65a: a1 e2 ldi r26, 0x21 ; 33 + 65c: 1a 2e mov r1, r26 + 65e: aa 1b sub r26, r26 + 660: bb 1b sub r27, r27 + 662: fd 01 movw r30, r26 + 664: 0d c0 rjmp .+26 ; 0x680 <__udivmodsi4_ep> -00000662 <__udivmodsi4_loop>: - 662: aa 1f adc r26, r26 - 664: bb 1f adc r27, r27 - 666: ee 1f adc r30, r30 - 668: ff 1f adc r31, r31 - 66a: a2 17 cp r26, r18 - 66c: b3 07 cpc r27, r19 - 66e: e4 07 cpc r30, r20 - 670: f5 07 cpc r31, r21 - 672: 20 f0 brcs .+8 ; 0x67c <__udivmodsi4_ep> - 674: a2 1b sub r26, r18 - 676: b3 0b sbc r27, r19 - 678: e4 0b sbc r30, r20 - 67a: f5 0b sbc r31, r21 +00000666 <__udivmodsi4_loop>: + 666: aa 1f adc r26, r26 + 668: bb 1f adc r27, r27 + 66a: ee 1f adc r30, r30 + 66c: ff 1f adc r31, r31 + 66e: a2 17 cp r26, r18 + 670: b3 07 cpc r27, r19 + 672: e4 07 cpc r30, r20 + 674: f5 07 cpc r31, r21 + 676: 20 f0 brcs .+8 ; 0x680 <__udivmodsi4_ep> + 678: a2 1b sub r26, r18 + 67a: b3 0b sbc r27, r19 + 67c: e4 0b sbc r30, r20 + 67e: f5 0b sbc r31, r21 -0000067c <__udivmodsi4_ep>: - 67c: 66 1f adc r22, r22 - 67e: 77 1f adc r23, r23 - 680: 88 1f adc r24, r24 - 682: 99 1f adc r25, r25 - 684: 1a 94 dec r1 - 686: 69 f7 brne .-38 ; 0x662 <__udivmodsi4_loop> - 688: 60 95 com r22 - 68a: 70 95 com r23 - 68c: 80 95 com r24 - 68e: 90 95 com r25 - 690: 9b 01 movw r18, r22 - 692: ac 01 movw r20, r24 - 694: bd 01 movw r22, r26 - 696: cf 01 movw r24, r30 - 698: 08 95 ret +00000680 <__udivmodsi4_ep>: + 680: 66 1f adc r22, r22 + 682: 77 1f adc r23, r23 + 684: 88 1f adc r24, r24 + 686: 99 1f adc r25, r25 + 688: 1a 94 dec r1 + 68a: 69 f7 brne .-38 ; 0x666 <__udivmodsi4_loop> + 68c: 60 95 com r22 + 68e: 70 95 com r23 + 690: 80 95 com r24 + 692: 90 95 com r25 + 694: 9b 01 movw r18, r22 + 696: ac 01 movw r20, r24 + 698: bd 01 movw r22, r26 + 69a: cf 01 movw r24, r30 + 69c: 08 95 ret -0000069a <__divmodsi4>: - 69a: 97 fb bst r25, 7 - 69c: 09 2e mov r0, r25 - 69e: 05 26 eor r0, r21 - 6a0: 0e d0 rcall .+28 ; 0x6be <__divmodsi4_neg1> - 6a2: 57 fd sbrc r21, 7 - 6a4: 04 d0 rcall .+8 ; 0x6ae <__divmodsi4_neg2> - 6a6: d7 df rcall .-82 ; 0x656 <__udivmodsi4> - 6a8: 0a d0 rcall .+20 ; 0x6be <__divmodsi4_neg1> - 6aa: 00 1c adc r0, r0 - 6ac: 38 f4 brcc .+14 ; 0x6bc <__divmodsi4_exit> +0000069e <__divmodsi4>: + 69e: 97 fb bst r25, 7 + 6a0: 09 2e mov r0, r25 + 6a2: 05 26 eor r0, r21 + 6a4: 0e d0 rcall .+28 ; 0x6c2 <__divmodsi4_neg1> + 6a6: 57 fd sbrc r21, 7 + 6a8: 04 d0 rcall .+8 ; 0x6b2 <__divmodsi4_neg2> + 6aa: d7 df rcall .-82 ; 0x65a <__udivmodsi4> + 6ac: 0a d0 rcall .+20 ; 0x6c2 <__divmodsi4_neg1> + 6ae: 00 1c adc r0, r0 + 6b0: 38 f4 brcc .+14 ; 0x6c0 <__divmodsi4_exit> -000006ae <__divmodsi4_neg2>: - 6ae: 50 95 com r21 - 6b0: 40 95 com r20 - 6b2: 30 95 com r19 - 6b4: 21 95 neg r18 - 6b6: 3f 4f sbci r19, 0xFF ; 255 - 6b8: 4f 4f sbci r20, 0xFF ; 255 - 6ba: 5f 4f sbci r21, 0xFF ; 255 +000006b2 <__divmodsi4_neg2>: + 6b2: 50 95 com r21 + 6b4: 40 95 com r20 + 6b6: 30 95 com r19 + 6b8: 21 95 neg r18 + 6ba: 3f 4f sbci r19, 0xFF ; 255 + 6bc: 4f 4f sbci r20, 0xFF ; 255 + 6be: 5f 4f sbci r21, 0xFF ; 255 -000006bc <__divmodsi4_exit>: - 6bc: 08 95 ret +000006c0 <__divmodsi4_exit>: + 6c0: 08 95 ret -000006be <__divmodsi4_neg1>: - 6be: f6 f7 brtc .-4 ; 0x6bc <__divmodsi4_exit> - 6c0: 90 95 com r25 - 6c2: 80 95 com r24 - 6c4: 70 95 com r23 - 6c6: 61 95 neg r22 - 6c8: 7f 4f sbci r23, 0xFF ; 255 - 6ca: 8f 4f sbci r24, 0xFF ; 255 - 6cc: 9f 4f sbci r25, 0xFF ; 255 - 6ce: 08 95 ret +000006c2 <__divmodsi4_neg1>: + 6c2: f6 f7 brtc .-4 ; 0x6c0 <__divmodsi4_exit> + 6c4: 90 95 com r25 + 6c6: 80 95 com r24 + 6c8: 70 95 com r23 + 6ca: 61 95 neg r22 + 6cc: 7f 4f sbci r23, 0xFF ; 255 + 6ce: 8f 4f sbci r24, 0xFF ; 255 + 6d0: 9f 4f sbci r25, 0xFF ; 255 + 6d2: 08 95 ret -000006d0 <_exit>: - 6d0: f8 94 cli +000006d4 <_exit>: + 6d4: f8 94 cli -000006d2 <__stop_program>: - 6d2: ff cf rjmp .-2 ; 0x6d2 <__stop_program> +000006d6 <__stop_program>: + 6d6: ff cf rjmp .-2 ; 0x6d6 <__stop_program> diff --git a/Reciver/Reciver/Debug/Reciver.map b/Reciver/Reciver/Debug/Reciver.map index 443f74f..234bfb5 100644 --- a/Reciver/Reciver/Debug/Reciver.map +++ b/Reciver/Reciver/Debug/Reciver.map @@ -124,7 +124,7 @@ LOAD e:/programme/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoo .rela.plt *(.rela.plt) -.text 0x00000000 0x6d4 +.text 0x00000000 0x6d8 *(.vectors) .vectors 0x00000000 0x54 e:/programme/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 e:/programme/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoo 0x0000008e __vector_16 0x0000008e __vector_18 0x0000008e __vector_20 - .text 0x00000092 0x296 Reciver.o + .text 0x00000092 0x29a Reciver.o 0x00000092 turn - 0x000000e6 poll - 0x00000108 recive - 0x000001b6 init_timer - 0x000001c6 __vector_9 - 0x000002f6 main - .text 0x00000328 0x32e rf12.o - 0x00000328 rf12_trans - 0x0000035a rf12_init - 0x000003ae rf12_setbandwidth - 0x000003ea rf12_setfreq - 0x0000040a rf12_setbaud - 0x00000458 rf12_setpower - 0x0000047a rf12_ready - 0x00000482 rf12_beginasyncrx - 0x0000049c rf12_hasdata - 0x000004a6 rf12_rxbyte - 0x000004b0 rf12_endasyncrx - 0x000004ba rf12_txdata - 0x0000054a rf12_rxdata - 0x000005aa rf12_txpacket - .text 0x00000656 0x0 e:/programme/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 0x00000656 0x0 e:/programme/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 0x00000656 0x0 e:/programme/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 0x00000656 0x0 e:/programme/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 0x00000656 0x0 e:/programme/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) - 0x00000656 . = ALIGN (0x2) + 0x000000ea poll + 0x0000010c recive + 0x000001ba init_timer + 0x000001ca __vector_9 + 0x000002fa main + .text 0x0000032c 0x32e rf12.o + 0x0000032c rf12_trans + 0x0000035e rf12_init + 0x000003b2 rf12_setbandwidth + 0x000003ee rf12_setfreq + 0x0000040e rf12_setbaud + 0x0000045c rf12_setpower + 0x0000047e rf12_ready + 0x00000486 rf12_beginasyncrx + 0x000004a0 rf12_hasdata + 0x000004aa rf12_rxbyte + 0x000004b4 rf12_endasyncrx + 0x000004be rf12_txdata + 0x0000054e rf12_rxdata + 0x000005ae rf12_txpacket + .text 0x0000065a 0x0 e:/programme/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 0x0000065a 0x0 e:/programme/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 0x0000065a 0x0 e:/programme/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 0x0000065a 0x0 e:/programme/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 0x0000065a 0x0 e:/programme/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) + 0x0000065a . = ALIGN (0x2) *(.text.*) - .text.libgcc 0x00000656 0x44 e:/programme/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) - 0x00000656 __udivmodsi4 - .text.libgcc 0x0000069a 0x36 e:/programme/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) - 0x0000069a __divmodsi4 - .text.libgcc 0x000006d0 0x0 e:/programme/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 0x000006d0 0x0 e:/programme/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 0x000006d0 0x0 e:/programme/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) - 0x000006d0 . = ALIGN (0x2) + .text.libgcc 0x0000065a 0x44 e:/programme/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) + 0x0000065a __udivmodsi4 + .text.libgcc 0x0000069e 0x36 e:/programme/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) + 0x0000069e __divmodsi4 + .text.libgcc 0x000006d4 0x0 e:/programme/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 0x000006d4 0x0 e:/programme/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 0x000006d4 0x0 e:/programme/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) + 0x000006d4 . = ALIGN (0x2) *(.fini9) - .fini9 0x000006d0 0x0 e:/programme/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) - 0x000006d0 _exit - 0x000006d0 exit + .fini9 0x000006d4 0x0 e:/programme/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) + 0x000006d4 _exit + 0x000006d4 exit *(.fini9) *(.fini8) *(.fini8) @@ -259,36 +259,36 @@ LOAD e:/programme/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoo *(.fini1) *(.fini1) *(.fini0) - .fini0 0x000006d0 0x4 e:/programme/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 0x000006d4 0x4 e:/programme/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) - 0x000006d4 _etext = . + 0x000006d8 _etext = . -.data 0x00800060 0x2 load address 0x000006d4 +.data 0x00800060 0x4 load address 0x000006d8 0x00800060 PROVIDE (__data_start, .) *(.data) .data 0x00800060 0x0 e:/programme/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 - .data 0x00800060 0x2 Reciver.o - 0x00800060 status - .data 0x00800062 0x0 rf12.o - .data 0x00800062 0x0 e:/programme/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) - .data 0x00800062 0x0 e:/programme/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) - .data 0x00800062 0x0 e:/programme/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) - .data 0x00800062 0x0 e:/programme/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) - .data 0x00800062 0x0 e:/programme/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) + .data 0x00800060 0x4 Reciver.o + 0x00800060 servopos + 0x00800062 status + .data 0x00800064 0x0 rf12.o + .data 0x00800064 0x0 e:/programme/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) + .data 0x00800064 0x0 e:/programme/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) + .data 0x00800064 0x0 e:/programme/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) + .data 0x00800064 0x0 e:/programme/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) + .data 0x00800064 0x0 e:/programme/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) *(.data*) *(.rodata) *(.rodata*) *(.gnu.linkonce.d*) - 0x00800062 . = ALIGN (0x2) - 0x00800062 _edata = . - 0x00800062 PROVIDE (__data_end, .) + 0x00800064 . = ALIGN (0x2) + 0x00800064 _edata = . + 0x00800064 PROVIDE (__data_end, .) -.bss 0x00800062 0x4 - 0x00800062 PROVIDE (__bss_start, .) +.bss 0x00800064 0x2 + 0x00800064 PROVIDE (__bss_start, .) *(.bss) - .bss 0x00800062 0x0 e:/programme/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 - .bss 0x00800062 0x4 Reciver.o - 0x00800062 servopos + .bss 0x00800064 0x0 e:/programme/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 + .bss 0x00800064 0x2 Reciver.o 0x00800064 pwm_led .bss 0x00800066 0x0 rf12.o .bss 0x00800066 0x0 e:/programme/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) @@ -299,8 +299,8 @@ LOAD e:/programme/atmel/atmel studio 6.0/extensions/atmel/avrgcc/3.4.1.95/avrtoo *(.bss*) *(COMMON) 0x00800066 PROVIDE (__bss_end, .) - 0x000006d4 __data_load_start = LOADADDR (.data) - 0x000006d6 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x000006d8 __data_load_start = LOADADDR (.data) + 0x000006dc __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x00800066 0x0 0x00800066 PROVIDE (__noinit_start, .) diff --git a/Reciver/Reciver/Debug/Reciver.srec b/Reciver/Reciver/Debug/Reciver.srec index 39876e4..d40575a 100644 --- a/Reciver/Reciver/Debug/Reciver.srec +++ b/Reciver/Reciver/Debug/Reciver.srec @@ -1,113 +1,113 @@ S00F0000526563697665722E7372656345 S11300000C942A000C9447000C9447000C9447006D S11300100C9447000C9447000C9447000C94470040 -S11300200C9447000C94E3000C9447000C94470094 +S11300200C9447000C94E5000C9447000C94470092 S11300300C9447000C9447000C9447000C94470020 S11300400C9447000C9447000C9447000C94470010 S11300500C94470011241FBECFE5D4E0DEBFCDBF12 -S113006010E0A0E6B0E0E4EDF6E002C005900D92E9 -S1130070A236B107D9F710E0A2E6B0E001C01D92A4 -S1130080A636B107E1F70E947B010C9468030C9437 -S1130090000080916000909161008630910511F11B -S11300A086E090E090936100809360008AEC90E099 -S11300B090936300809362008FEF96E1A1E18150F9 -S11300C09040A040E1F700C000001092630010923D -S11300D062008FEF96E1A1E181509040A040E1F7EA -S11300E000C000000895899880916000909161009B -S11300F08330910541F4819B06C00E9458020E94FE -S113010049000E9441020895CF930E94410202C017 -S11301100E9473000E944E028823D1F70E9453026A -S1130120882341F08A3031F0803F09F042C002C098 -S11301300E9473000E944E028823D1F70E9453024A -S1130140C82F02C00E9473000E944E028823D1F778 -S1130150C13079F50E945302843051F0853018F48F -S1130160813039F516C0853051F0873011F50EC055 -S113017082E090E090936100809360000AC083E085 -S113018090E0909361008093600003C00E94490056 -S113019010C00E9458028FE39CE90197F1F700C058 -S11301A00000409160005091610081E06AE00E948B -S11301B0D502CF91089585E083BF88E582BF1CBE38 -S11301C081E089BF08951F920F920FB60F921124F8 -S11301D02F933F938F939F9388E582BF8091600014 -S11301E09091610082309105D9F4809164009091DE -S11301F065008233910554F4809164009091650008 -S1130200019690936500809364000AC0B89AB09BED -S113021002C0C09801C0C09A109265001092640098 -S1130220809160009091610083309105D9F48091B0 -S11302306400909165008530910554F480916400C8 -S113024090916500019690936500809364000AC0C4 -S1130250B89AB09B02C0C09801C0C09A10926500C1 -S11302601092640080916000909161008630910545 -S1130270D9F480916400909165001816190654F021 -S1130280809164009091650001969093650080933D -S113029064000AC0B89AB09B02C0C09801C0C09A5A -S11302A01092650010926400B99AC19A8FEA94E0A2 -S11302B00197F1F700C00000809162009091630003 -S11302C01816190674F480E090E025E12A95F1F7F8 -S11302D00000019620916200309163008217930719 -S11302E0A4F3C1989F918F913F912F910F900FBECE -S11302F00F901F9018950E94AD0180E296E00E9435 -S1130300F50181E060E047E00E94D70180E895E2D2 -S11303100E94050280E066E00E942C020E94DB003D -S113032078940E948400FDCF949840E120E030E06E -S1130330992314F4969A01C09698220F331F839937 -S11303402160959A880F991F00C00000959841502C -S113035079F7949A822F932F089581B3806781BB94 -S1130360949A8FEF90E7A2E081509040A040E1F78B -S113037000C0000080EE90EC0E94940187ED90E8AC -S11303800E9494018BEA92EC0E94940181E89AEC19 -S11303900E94940180E090EE0E94940180E098EC29 -S11303A00E94940187EF94EC0E949401089590E0D8 -S11303B0880F991F82959295907F9827807F982720 -S11303C0907050E047705070842B952B946970E0C6 -S11303D063707070660F771F660F771F660F771F45 -S11303E0862B972B0E94940108958036910538F04E -S11303F02FE08034920728F08FE39FE002C080E66C -S113040090E0906A0E949401089522E0873992074F -S113041010F125E18831920780F49C0140E050E01E -S113042060E678EA80E090E00E944D03C9010197FC -S11304308068966C0E94940108959C0140E050E00D -S11304406CEF72E485E090E00E942B03C9010197F0 -S1130450966C0E949401089590E08770907098695A -S113046070E062957295707F7627607F7627707052 -S1130470862B972B0E94940108959498839BFECF1A -S1130480089588EC92E80E94940181E89AEC0E9415 -S1130490940183E89AEC0E9494010895949881E071 -S11304A0839980E0089580E090EB0E949401089580 -S11304B088E092E80E94940108950F931F93CF93CC -S11304C0DF938C01C62F88E392E80E9494010E9476 -S11304D03D028AEA98EB0E9494010E943D028AEA56 -S11304E098EB0E9494010E943D028AEA98EB0E94D4 -S11304F094010E943D028DE298EB0E9494010E94B7 -S11305003D0284ED98EB0E949401CC2399F0C8013C -S11305100196C1509C012C0F311DE9010E943D023E -S1130520F80181918F0190E0986B0E9494010C175F -S11305301D07A1F70E943D0288E092E80E94940101 -S1130540DF91CF911F910F9108950F931F93CF9334 -S1130550DF938C01D62F88EC92E80E94940181E805 -S11305609AEC0E94940183E89AEC0E949401DD23A2 -S113057099F0C8010196D1509C012D0F311DE9015C -S11305800E943D0280E090EB0E949401F801819367 -S11305908F01EC17FD07A1F788E092E80E9494010F -S11305A0DF91CF911F910F9108951F93CF93DF9304 -S11305B0182FD62FC42F88E392E80E9494010E943A -S11305C03D028AEA98EB0E9494010E943D028AEA65 -S11305D098EB0E9494010E943D028AEA98EB0E94E3 -S11305E094010E943D028DE298EB0E9494010E94C6 -S11305F03D0284ED98EB0E9494010E943D02812FFC -S113060090E0986B0E9494010E943D028D2F90E02F -S1130610986B0E9494010E943D028C2F90E0986B8D -S11306200E9494010E943D0280E098EB0E94940194 -S11306300E943D0288E092E80E9494018FEF90E7C7 -S1130640A2E081509040A040E1F700C00000DF919B -S1130650CF911F910895A1E21A2EAA1BBB1BFD0185 -S11306600DC0AA1FBB1FEE1FFF1FA217B307E4078D -S1130670F50720F0A21BB30BE40BF50B661F771FE5 -S1130680881F991F1A9469F76095709580959095C5 -S11306909B01AC01BD01CF01089597FB092E0526EE -S11306A00ED057FD04D0D7DF0AD0001C38F4509583 -S11306B04095309521953F4F4F4F5F4F0895F6F782 -S11306C090958095709561957F4F8F4F9F4F0895BA -S10706D0F894FFCFC8 -S10506D402001E +S113006010E0A0E6B0E0E8EDF6E002C005900D92E5 +S1130070A436B107D9F710E0A4E6B0E001C01D92A0 +S1130080A636B107E1F70E947D010C946A030C9433 +S1130090000080916200909163008630910521F107 +S11300A086E090E090936300809362008EE890E095 +S11300B090936100809360008FEF96E1A1E18150FD +S11300C09040A040E1F700C000008AEC90E09093DB +S11300D06100809360008FEF96E1A1E18150904030 +S11300E0A040E1F700C00000089589988091620063 +S11300F0909163008330910541F4819B06C00E9476 +S11301005A020E9449000E9443020895CF930E941C +S1130110430202C00E9475000E9450028823D1F756 +S11301200E945502882341F08A3031F0803F09F063 +S113013042C002C00E9475000E9450028823D1F779 +S11301400E945502C82F02C00E9475000E945002EE +S11301508823D1F7C13079F50E945502843051F0DB +S1130160853018F4813039F516C0853051F0873068 +S113017011F50EC082E090E09093630080936200DA +S11301800AC083E090E0909363008093620003C010 +S11301900E94490010C00E945A028FE39CE9019713 +S11301A0F1F700C00000409162005091630081E0CB +S11301B06AE00E94D702CF91089585E083BF88E565 +S11301C082BF1CBE81E089BF08951F920F920FB6B3 +S11301D00F9211242F933F938F939F9388E582BFAF +S11301E0809162009091630082309105D9F48091EE +S11301F06400909165008233910554F48091640009 +S113020090916500019690936500809364000AC004 +S1130210B89AB09B02C0C09801C0C09A1092650001 +S11302201092640080916200909163008330910584 +S1130230D9F480916400909165008530910554F45F +S1130240809164009091650001969093650080937D +S113025064000AC0B89AB09B02C0C09801C0C09A9A +S11302601092650010926400809162009091630086 +S113027086309105D9F48091640090916500181638 +S1130280190654F080916400909165000196909352 +S11302906500809364000AC0B89AB09B02C0C098FD +S11302A001C0C09A1092650010926400B99AC19A74 +S11302B08FEA94E00197F1F700C00000809160009C +S11302C0909161001816190674F480E090E025E11D +S11302D02A95F1F7000001962091600030916100A9 +S11302E082179307A4F3C1989F918F913F912F9107 +S11302F00F900FBE0F901F9018950E94AF0180E2DF +S113030096E00E94F70181E060E047E00E94D90195 +S113031080E895E20E94070280E066E00E942E02D7 +S11303200E94DD0078940E948600FDCF949840E1FD +S113033020E030E0992314F4969A01C09698220F95 +S1130340331F83992160959A880F991F00C000007C +S11303509598415079F7949A822F932F089581B3F9 +S1130360806781BB949A8FEF90E7A2E08150904020 +S1130370A040E1F700C0000080EE90EC0E949601DE +S113038087ED90E80E9496018BEA92EC0E94960118 +S113039081E89AEC0E94960180E090EE0E9496011A +S11303A080E098EC0E94960187EF94EC0E949601FD +S11303B0089590E0880F991F82959295907F9827D1 +S11303C0807F9827907050E047705070842B952B55 +S11303D0946970E063707070660F771F660F771F03 +S11303E0660F771F862B972B0E94960108958036FF +S11303F0910538F02FE08034920728F08FE39FE0D6 +S113040002C080E690E0906A0E949601089522E07E +S11304108739920710F125E18831920780F49C0115 +S113042040E050E060E678EA80E090E00E944F030C +S1130430C90101978068966C0E94960108959C01F9 +S113044040E050E06CEF72E485E090E00E942D0300 +S1130450C9010197966C0E949601089590E08770F7 +S11304609070986970E062957295707F7627607FCE +S113047076277070862B972B0E9496010895949886 +S1130480839BFECF089588EC92E80E94960181E850 +S11304909AEC0E94960183E89AEC0E9496010895D2 +S11304A0949881E0839980E0089580E090EB0E9425 +S11304B09601089588E092E80E94960108950F93AA +S11304C01F93CF93DF938C01C62F88E392E80E9499 +S11304D096010E943F028AEA98EB0E9496010E94CC +S11304E03F028AEA98EB0E9496010E943F028AEA40 +S11304F098EB0E9496010E943F028DE298EB0E94C5 +S113050096010E943F0284ED98EB0E949601CC2351 +S113051099F0C8010196C1509C012C0F311DE901CD +S11305200E943F02F80181918F0190E0986B0E9434 +S113053096010C171D07A1F70E943F0288E092E87C +S11305400E949601DF91CF911F910F9108950F930F +S11305501F93CF93DF938C01D62F88EC92E80E94EF +S1130560960181E89AEC0E94960183E89AEC0E9435 +S11305709601DD2399F0C8010196D1509C012D0FFD +S1130580311DE9010E943F0280E090EB0E94960138 +S1130590F80181938F01EC17FD07A1F788E092E839 +S11305A00E949601DF91CF911F910F9108951F939F +S11305B0CF93DF93182FD62FC42F88E392E80E949D +S11305C096010E943F028AEA98EB0E9496010E94DB +S11305D03F028AEA98EB0E9496010E943F028AEA4F +S11305E098EB0E9496010E943F028DE298EB0E94D4 +S11305F096010E943F0284ED98EB0E9496010E94AE +S11306003F02812F90E0986B0E9496010E943F0266 +S11306108D2F90E0986B0E9496010E943F028C2FD0 +S113062090E0986B0E9496010E943F0280E098EB54 +S11306300E9496010E943F0288E092E80E9496017F +S11306408FEF90E7A2E081509040A040E1F700C016 +S11306500000DF91CF911F910895A1E21A2EAA1BE9 +S1130660BB1BFD010DC0AA1FBB1FEE1FFF1FA2175E +S1130670B307E407F50720F0A21BB30BE40BF50B5B +S1130680661F771F881F991F1A9469F760957095E4 +S1130690809590959B01AC01BD01CF01089597FB16 +S11306A0092E05260ED057FD04D0D7DF0AD0001C32 +S11306B038F450954095309521953F4F4F4F5F4FFB +S11306C00895F6F790958095709561957F4F8F4FBB +S10B06D09F4F0895F894FFCF39 +S10706D8CA0002004E S9030000FC diff --git a/Reciver/Reciver/Reciver.c b/Reciver/Reciver/Reciver.c index 76d2a09..594a8f8 100644 --- a/Reciver/Reciver/Reciver.c +++ b/Reciver/Reciver/Reciver.c @@ -17,15 +17,15 @@ volatile int status = SLEEP; volatile int pwm_led = 0; -volatile int servopos = 0; +volatile int servopos = RIGHT; void turn() { if(status == RUN) return; status = RUN; - servopos = RIGHT; + servopos = RIGHT-60; _delay_ms(700); - servopos = 0; + servopos = RIGHT; _delay_ms(700); }