diff --git a/firmware/build/default/production/dstemperature.o b/firmware/build/default/production/dstemperature.o index 707a1cf..740b077 100644 Binary files a/firmware/build/default/production/dstemperature.o and b/firmware/build/default/production/dstemperature.o differ diff --git a/firmware/build/default/production/main.o b/firmware/build/default/production/main.o index 42c9abe..a377e98 100644 Binary files a/firmware/build/default/production/main.o and b/firmware/build/default/production/main.o differ diff --git a/firmware/build/default/production/onewire.o b/firmware/build/default/production/onewire.o index b9c1c29..0f3d5f2 100644 Binary files a/firmware/build/default/production/onewire.o and b/firmware/build/default/production/onewire.o differ diff --git a/firmware/dist/default/production/firmware.production.elf b/firmware/dist/default/production/firmware.production.elf index 72b9eb1..babe418 100755 Binary files a/firmware/dist/default/production/firmware.production.elf and b/firmware/dist/default/production/firmware.production.elf differ diff --git a/firmware/dist/default/production/firmware.production.hex b/firmware/dist/default/production/firmware.production.hex index 2936092..57557c3 100644 --- a/firmware/dist/default/production/firmware.production.hex +++ b/firmware/dist/default/production/firmware.production.hex @@ -1,7 +1,7 @@ :1000000013C01AC019C018C017C016C015C014C03C :1000100013C012C011C010C00FC00EC00DC03F06EB :100020005B4F666D7D077F6F11241FBECFE5D1E06A -:10003000DEBFCDBFEAD106C4E3CFF894C09AC29A1E +:10003000DEBFCDBFEAD115C4E3CFF894C09AC29A0F :100040008DE08A95F1F70000C0988DE08A95F1F770 :100050000000C29878940895F894C298C0988DE0F2 :100060008A95F1F70000C29A8DE08A95F1F70000B9 @@ -24,12 +24,12 @@ :10017000180714F0C7EED3E0112354F00F2EF3E06C :10018000DF2EF02D0F2EFAE0EF2EF12CF02D17C000 :10019000D195C195D10960E080E4C3DFEFCFDA9457 -:1001A000CE01B7013CD3B62EC72E825E9F4FFC0115 +:1001A000CE01B7014BD3B62EC72E825E9F4FFC0106 :1001B00084916D2DB6DFCB2DDC2DDD2029F01123B0 :1001C00074F7E1E0DE12EBCFDF91CF911F910F9139 :1001D000FF90EF90DF90CF90BF900895992384F027 :1001E00021E08A30910554F021E0EAE0F0E0BF011F -:1001F00016D3CB012F5F6A307105CCF7822F08959B +:1001F00025D3CB012F5F6A307105CCF7822F08958C :10020000919581959109ECCF7F928F929F92AF92B9 :10021000BF92CF92DF92EF92FF920F931F93CF93F3 :10022000DF9300D01F92CDB7DEB7F62E942EE22ECC @@ -46,8 +46,8 @@ :1002D0006C01883E934034F00F2EF7EECF2EF3E002 :1002E000DF2EF02DEE24E394D194C194D108C60101 :1002F00075DFB82E52E011E0851310E02AE030E0FF -:10030000C601B9018CD28B83CB01B90188D28A8313 -:10031000C60164E670E083D2CB01B90180D2A82E79 +:10030000C601B9019BD28B83CB01B90197D28A83F5 +:10031000C60164E670E092D2CB01B9018FD2A82E5B :10032000898381E0B81609F4A0CF03E00B190330EC :1003300008F0B6CF82E090E06C01C918D1087E2C9D :100340006894992497F8812C33C01C151D0409F476 @@ -60,75 +60,77 @@ :1003B000EE2059F2112309F45ACF1C151D0421F720 :1003C00083E0B81609F3E1E0F0E0EC0FFD1FE00F69 :1003D000F11DE081F0E0E25EFF4FE491F2E0892D53 -:1003E000BF1609F453CF8E2BDACF56D1882351F0A4 -:1003F000813011F081E00895C39A81E090E0ABDE96 -:1004000081E00895C39880E00895CF93DF93CDB73E -:10041000DEB766970FB6F894DEBF0FBECDBFBB9AAE -:10042000C398A89588E198E20FB6F894A89581BD85 -:100430000FBE91BD6BE0CE010196F3D028E042E003 +:1003E000BF1609F453CF8E2BDACF62D1882351F098 +:1003F000813011F081E00895C19A81E090E0ABDE98 +:1004000081E00895C19880E00895CF93DF93CDB740 +:10041000DEB766970FB6F894DEBF0FBECDBFB99AB0 +:10042000C198A89588E199E20FB6F894A89581BD86 +:100430000FBE91BD6CE0CE010196FFD028E042E0F6 :1004400062E080E054DE7DDE2FEF80E792E0215015 -:1004500080409040E1F700C0000004E610E00DC0CD -:10046000CE01019633D18B899C89B801C4D12D89E5 -:1004700041E089899A89C8DEA895CE010196B5DF49 -:10048000882371F32FE788E391E02150804090406A -:10049000E1F700C00000A895F0CFF894BC9A8FEB6C -:1004A00093E00197F1F700C00000BC989AEB9A9591 -:1004B000F1F700C086B3E3E3F3E03197F1F700C052 -:1004C000000078948295817091E08927089598E0E2 -:1004D0000DC0BC9A20EA2A95F1F7BC982AE12A952A -:1004E000F1F700C078948695915069F0F89480FFF8 -:1004F000F0CFBC9A20E12A95F1F7BC982AEA2A9518 -:10050000F1F700C0EFCF089598E080E007C022E93E -:100510002A95F1F700C07894915071F0F89486957F -:10052000BC9A20E12A95F1F7BC9828E12A95F1F7C9 -:10053000B49BEDCF8068EBCF0895AFDF811101C090 -:1005400008958CECC4DF81E0FBCF0F931F93CF9312 -:10055000DF938C01A2DF811105C0DF91CF911F9144 -:100560000F91089583E3B3DFE801085F1F4FCCDFED -:100570008993C017D107D9F781E0EFCFFC01680F4D -:10058000791F80E02CE80BC08695915029F080FF00 -:10059000FBCF86958227F9CFE617F70721F09191D7 -:1005A000892798E0F4CF0895EF92FF920F931F935D -:1005B000CF93DF937C01C1DF8EEB89DFE7018701F9 -:1005C000085F1F4FA1DF8993C017D107D9F768E0F3 -:1005D00070E0C701D3DFC82F97DF91E0C81390E028 -:1005E000892FDF91CF911F910F91FF90EF90089588 -:1005F00054DF811101C00895A0DF88E468DF81E045 -:10060000FACFCF93DF93EC0198DF8EE460DF88812F -:100610005EDF89815CDF8A815ADFEADFDF91CF917B -:100620000895FF920F931F93CF93DF9300D01F92F3 -:10063000CDB7DEB78C01F62EB7DFF8018281898352 -:1006400083818A83FAE0FF16B9F08BE0F81689F00F -:10065000E9E0FE16A1F08FE78B83CE010196D1DF92 -:100660000F900F900F90DF91CF911F910F91FF90FE -:1006700008958FE58B83F1CF8FE38B83EECF8FE1EE -:100680008B83EBCF0ADF811101C008958CEC1FDF53 -:1006900084E41DDF81E0F9CFCF93DF93EC01FDDE31 -:1006A000811104C081E0DF91CF910895CE010896B9 -:1006B0004CDF8885883211F082E0F5CFCE0174DFFF -:1006C000882311F080E0EFCF83E0EDCFCF93DF936D -:1006D000EC01D8DF882309F45EC02C81822F90E0E2 -:1006E0008095909580769927892B09F057C02FE740 -:1006F0003FE482E1215030408040E1F700C000003B -:10070000CE0152DF882309F46BC01D8A898190E0F5 -:100710004881242F382F33230CF465C03595279555 -:10072000359527953595279535952795398B288BC0 -:1007300080959095887F9927892B09F057C081E093 -:100740008C8B4195488388818F70282F30E0C901B8 -:10075000880F991F82959295907F9827807F982780 -:10076000821B930B880F991F880F991F820F931F6D -:10077000880F991F880F991F880F991F9C01992333 -:10078000BCF1359527953595279535952795359560 -:1007900027953B8B2A8BDF91CF91089526FF0AC0C6 -:1007A0009FEB27E239E0915020403040E1F700C054 -:1007B0000000A6CF25FF0AC08FEF96E924E0815004 -:1007C00090402040E1F700C000009ACF3FE78BE463 -:1007D00092E0315080409040E1F700C0000090CF9F -:1007E00081E08D8BD8CF215F3F4F98CF1C8AABCF54 -:1007F000215F3F4FC6CFAA1BBB1B51E107C0AA1FF9 -:10080000BB1FA617B70710F0A61BB70B881F991FB1 -:100810005A95A9F780959095BC01CD01089597FB55 -:10082000072E16F4009406D077FD08D0E4DF07FC0D -:1008300005D03EF4909581959F4F089570956195F0 -:080840007F4F0895F894FFCFEB +:1004500080409040E1F700C0000004E610E013C0C7 +:100460008FE19EE40197F1F700C00000CE010196F4 +:1004700039D18B899C89B801CDD12D8941E08989F9 +:100480009A89C2DEA895CE010196AFDF882341F399 +:100490002FE788E391E0215080409040E1F700C0D1 +:1004A0000000A895F0CFF894BB9A8FEB93E00197EA +:1004B000F1F700C00000BB989AEB9A95F1F700C0E5 +:1004C00086B3E3E3F3E03197F1F700C000007894DE +:1004D00083FB882780F991E08927089598E00DC073 +:1004E000BB9A20EA2A95F1F7BB982AE12A95F1F701 +:1004F00000C078948695915069F0F89480FFF0CF11 +:10050000BB9A20E12A95F1F7BB982AEA2A95F1F7E0 +:1005100000C0EFCF089598E080E007C022E92A9557 +:10052000F1F700C07894915071F0F8948695BB9AD9 +:1005300020E12A95F1F7BB9828E12A95F1F7B39BC2 +:10054000EDCF8068EBCF0895AEDF811101C0089533 +:100550008CECC4DF81E0FBCF0F931F93CF93DF932D +:100560008C01A1DF811105C0DF91CF911F910F9107 +:10057000089583E3B3DFE801085F1F4FCCDF899361 +:10058000C017D107D9F781E0EFCFFC01680F791FC1 +:1005900080E02CE80BC08695915029F080FFFBCFBE +:1005A00086958227F9CFE617F70721F091918927E1 +:1005B00098E0F4CF0895EF92FF920F931F93CF939B +:1005C000DF937C01C1DF982F811108C0892FDF9153 +:1005D000CF911F910F91FF90EF9008958EEB7EDFEA +:1005E000E7018701085F1F4F96DF8993C017D10786 +:1005F000D9F768E070E0C701C8DFC82F8CDF91E051 +:10060000C81721F390E0E2CF4EDF811101C00895B9 +:100610009BDF88E463DF81E0FACFCF93DF93EC01C7 +:1006200093DF8EE45BDF888159DF898157DF8A8120 +:1006300055DFEADFDF91CF910895FF920F931F936B +:10064000CF93DF9300D01F92CDB7DEB78C01F62E8B +:10065000B2DFF8018281898383818A83FAE0FF1601 +:10066000B9F08BE0F81689F0E9E0FE16A1F08FE70B +:100670008B83CE010196D1DF0F900F900F90DF9109 +:10068000CF911F910F91FF9008958FE58B83F1CF4C +:100690008FE38B83EECF8FE18B83EBCF04DF811170 +:1006A00001C008958CEC1ADF84E418DF81E0F9CFF3 +:1006B000CF93DF93EC01F7DE811104C081E0DF917D +:1006C000CF910895CE01089647DF8885883211F0D2 +:1006D00082E0F5CFCE016FDF882311F080E0EFCF0D +:1006E00083E0EDCFCF93DF93EC0165DF811103C091 +:1006F000DF91CF910895D2DF8823D1F32C81822F0F +:1007000090E08095909580769927892B09F055C0C7 +:100710002FE73FE482E1215030408040E1F700C004 +:100720000000CE0148DF882309F469C01D8A898151 +:1007300090E04881242F382F33230CF463C0359583 +:100740002795359527953595279535952795398B97 +:10075000288B80959095887F9927892B09F055C023 +:1007600081E08C8B4195488388818F70282F30E001 +:10077000C901880F991F82959295907F9827807F55 +:100780009827821B930B880F991F880F991F820F40 +:10079000931F880F991F880F991F880F991F9C011D +:1007A0009923ACF13595279535952795359527955E +:1007B000359527953B8B2A8B9BCF26FF0AC09FEB55 +:1007C00027E239E0915020403040E1F700C00000BE +:1007D000A8CF25FF0AC08FEF96E924E08150904012 +:1007E0002040E1F700C000009CCF3FE78BE492E09F +:1007F000315080409040E1F700C0000092CF81E08E +:100800008D8B76CF215F3F4F9ACF1C8AADCF215F72 +:100810003F4FC8CFAA1BBB1B51E107C0AA1FBB1F7C +:10082000A617B70710F0A61BB70B881F991F5A957C +:10083000A9F780959095BC01CD01089597FB072EEF +:1008400016F4009406D077FD08D0E4DF07FC05D04D +:100850003EF4909581959F4F0895709561957F4FD7 +:060860000895F894FFCF9B :00000001FF diff --git a/firmware/dist/default/production/firmware.production.lss b/firmware/dist/default/production/firmware.production.lss index 2c4f02d..0312965 100644 --- a/firmware/dist/default/production/firmware.production.lss +++ b/firmware/dist/default/production/firmware.production.lss @@ -3,21 +3,21 @@ dist/default/production/firmware.production.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .text 00000848 00000000 00000000 00000054 2**1 + 0 .text 00000866 00000000 00000000 00000054 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000000 00800060 00800060 0000089c 2**0 + 1 .data 00000000 00800060 00800060 000008ba 2**0 CONTENTS, ALLOC, LOAD, DATA - 2 .comment 00000030 00000000 00000000 0000089c 2**0 + 2 .comment 00000030 00000000 00000000 000008ba 2**0 CONTENTS, READONLY - 3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000008cc 2**2 + 3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000008ec 2**2 CONTENTS, READONLY - 4 .debug_info 00000420 00000000 00000000 00000908 2**0 + 4 .debug_info 00000420 00000000 00000000 00000928 2**0 CONTENTS, READONLY, DEBUGGING - 5 .debug_abbrev 000003e8 00000000 00000000 00000d28 2**0 + 5 .debug_abbrev 000003e8 00000000 00000000 00000d48 2**0 CONTENTS, READONLY, DEBUGGING - 6 .debug_line 000000f2 00000000 00000000 00001110 2**0 + 6 .debug_line 000000f2 00000000 00000000 00001130 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_str 00000169 00000000 00000000 00001202 2**0 + 7 .debug_str 00000169 00000000 00000000 00001222 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -54,7 +54,7 @@ Disassembly of section .text: 30: de bf out 0x3e, r29 ; 62 32: cd bf out 0x3d, r28 ; 61 34: ea d1 rcall .+980 ; 0x40a
- 36: 06 c4 rjmp .+2060 ; 0x844 <_exit> + 36: 15 c4 rjmp .+2090 ; 0x862 <_exit> 00000038 <__bad_interrupt>: 38: e3 cf rjmp .-58 ; 0x0 <__vectors> @@ -255,7 +255,7 @@ Disassembly of section .text: 19e: da 94 dec r13 1a0: ce 01 movw r24, r28 1a2: b7 01 movw r22, r14 - 1a4: 3c d3 rcall .+1656 ; 0x81e <__divmodhi4> + 1a4: 4b d3 rcall .+1686 ; 0x83c <__divmodhi4> 1a6: b6 2e mov r11, r22 1a8: c7 2e mov r12, r23 1aa: 82 5e subi r24, 0xE2 ; 226 @@ -295,7 +295,7 @@ Disassembly of section .text: 1ea: ea e0 ldi r30, 0x0A ; 10 1ec: f0 e0 ldi r31, 0x00 ; 0 1ee: bf 01 movw r22, r30 - 1f0: 16 d3 rcall .+1580 ; 0x81e <__divmodhi4> + 1f0: 25 d3 rcall .+1610 ; 0x83c <__divmodhi4> 1f2: cb 01 movw r24, r22 1f4: 2f 5f subi r18, 0xFF ; 255 1f6: 6a 30 cpi r22, 0x0A ; 10 @@ -435,19 +435,19 @@ Disassembly of section .text: 2fe: 30 e0 ldi r19, 0x00 ; 0 300: c6 01 movw r24, r12 302: b9 01 movw r22, r18 - 304: 8c d2 rcall .+1304 ; 0x81e <__divmodhi4> + 304: 9b d2 rcall .+1334 ; 0x83c <__divmodhi4> 306: 8b 83 std Y+3, r24 ; 0x03 308: cb 01 movw r24, r22 30a: b9 01 movw r22, r18 - 30c: 88 d2 rcall .+1296 ; 0x81e <__divmodhi4> + 30c: 97 d2 rcall .+1326 ; 0x83c <__divmodhi4> 30e: 8a 83 std Y+2, r24 ; 0x02 310: c6 01 movw r24, r12 312: 64 e6 ldi r22, 0x64 ; 100 314: 70 e0 ldi r23, 0x00 ; 0 - 316: 83 d2 rcall .+1286 ; 0x81e <__divmodhi4> + 316: 92 d2 rcall .+1316 ; 0x83c <__divmodhi4> 318: cb 01 movw r24, r22 31a: b9 01 movw r22, r18 - 31c: 80 d2 rcall .+1280 ; 0x81e <__divmodhi4> + 31c: 8f d2 rcall .+1310 ; 0x83c <__divmodhi4> 31e: a8 2e mov r10, r24 320: 89 83 std Y+1, r24 ; 0x01 322: 81 e0 ldi r24, 0x01 ; 1 @@ -552,20 +552,20 @@ Disassembly of section .text: 3e8: da cf rjmp .-76 ; 0x39e 000003ea : - 3ea: 56 d1 rcall .+684 ; 0x698 + 3ea: 62 d1 rcall .+708 ; 0x6b0 3ec: 88 23 and r24, r24 3ee: 51 f0 breq .+20 ; 0x404 <__LOCK_REGION_LENGTH__+0x4> 3f0: 81 30 cpi r24, 0x01 ; 1 3f2: 11 f0 breq .+4 ; 0x3f8 3f4: 81 e0 ldi r24, 0x01 ; 1 3f6: 08 95 ret - 3f8: c3 9a sbi 0x18, 3 ; 24 + 3f8: c1 9a sbi 0x18, 1 ; 24 3fa: 81 e0 ldi r24, 0x01 ; 1 3fc: 90 e0 ldi r25, 0x00 ; 0 3fe: ab de rcall .-682 ; 0x156 400: 81 e0 ldi r24, 0x01 ; 1 402: 08 95 ret - 404: c3 98 cbi 0x18, 3 ; 24 + 404: c1 98 cbi 0x18, 1 ; 24 406: 80 e0 ldi r24, 0x00 ; 0 408: 08 95 ret @@ -580,21 +580,21 @@ Disassembly of section .text: 418: de bf out 0x3e, r29 ; 62 41a: 0f be out 0x3f, r0 ; 63 41c: cd bf out 0x3d, r28 ; 61 - 41e: bb 9a sbi 0x17, 3 ; 23 - 420: c3 98 cbi 0x18, 3 ; 24 + 41e: b9 9a sbi 0x17, 1 ; 23 + 420: c1 98 cbi 0x18, 1 ; 24 422: a8 95 wdr 424: 88 e1 ldi r24, 0x18 ; 24 - 426: 98 e2 ldi r25, 0x28 ; 40 + 426: 99 e2 ldi r25, 0x29 ; 41 428: 0f b6 in r0, 0x3f ; 63 42a: f8 94 cli 42c: a8 95 wdr 42e: 81 bd out 0x21, r24 ; 33 430: 0f be out 0x3f, r0 ; 63 432: 91 bd out 0x21, r25 ; 33 - 434: 6b e0 ldi r22, 0x0B ; 11 + 434: 6c e0 ldi r22, 0x0C ; 12 436: ce 01 movw r24, r28 438: 01 96 adiw r24, 0x01 ; 1 - 43a: f3 d0 rcall .+486 ; 0x622 + 43a: ff d0 rcall .+510 ; 0x63a 43c: 28 e0 ldi r18, 0x08 ; 8 43e: 42 e0 ldi r20, 0x02 ; 2 440: 62 e0 ldi r22, 0x02 ; 2 @@ -612,548 +612,563 @@ Disassembly of section .text: 458: 00 00 nop 45a: 04 e6 ldi r16, 0x64 ; 100 45c: 10 e0 ldi r17, 0x00 ; 0 - 45e: 0d c0 rjmp .+26 ; 0x47a - 460: ce 01 movw r24, r28 - 462: 01 96 adiw r24, 0x01 ; 1 - 464: 33 d1 rcall .+614 ; 0x6cc - 466: 8b 89 ldd r24, Y+19 ; 0x13 - 468: 9c 89 ldd r25, Y+20 ; 0x14 - 46a: b8 01 movw r22, r16 - 46c: c4 d1 rcall .+904 ; 0x7f6 <__udivmodhi4> - 46e: 2d 89 ldd r18, Y+21 ; 0x15 - 470: 41 e0 ldi r20, 0x01 ; 1 - 472: 89 89 ldd r24, Y+17 ; 0x11 - 474: 9a 89 ldd r25, Y+18 ; 0x12 - 476: c8 de rcall .-624 ; 0x208 - 478: a8 95 wdr - 47a: ce 01 movw r24, r28 - 47c: 01 96 adiw r24, 0x01 ; 1 - 47e: b5 df rcall .-150 ; 0x3ea - 480: 88 23 and r24, r24 - 482: 71 f3 breq .-36 ; 0x460 - 484: 2f e7 ldi r18, 0x7F ; 127 - 486: 88 e3 ldi r24, 0x38 ; 56 - 488: 91 e0 ldi r25, 0x01 ; 1 - 48a: 21 50 subi r18, 0x01 ; 1 - 48c: 80 40 sbci r24, 0x00 ; 0 - 48e: 90 40 sbci r25, 0x00 ; 0 - 490: e1 f7 brne .-8 ; 0x48a - 492: 00 c0 rjmp .+0 ; 0x494 - 494: 00 00 nop - 496: a8 95 wdr - 498: f0 cf rjmp .-32 ; 0x47a + 45e: 13 c0 rjmp .+38 ; 0x486 + 460: 8f e1 ldi r24, 0x1F ; 31 + 462: 9e e4 ldi r25, 0x4E ; 78 + 464: 01 97 sbiw r24, 0x01 ; 1 + 466: f1 f7 brne .-4 ; 0x464 + 468: 00 c0 rjmp .+0 ; 0x46a + 46a: 00 00 nop + 46c: ce 01 movw r24, r28 + 46e: 01 96 adiw r24, 0x01 ; 1 + 470: 39 d1 rcall .+626 ; 0x6e4 + 472: 8b 89 ldd r24, Y+19 ; 0x13 + 474: 9c 89 ldd r25, Y+20 ; 0x14 + 476: b8 01 movw r22, r16 + 478: cd d1 rcall .+922 ; 0x814 <__udivmodhi4> + 47a: 2d 89 ldd r18, Y+21 ; 0x15 + 47c: 41 e0 ldi r20, 0x01 ; 1 + 47e: 89 89 ldd r24, Y+17 ; 0x11 + 480: 9a 89 ldd r25, Y+18 ; 0x12 + 482: c2 de rcall .-636 ; 0x208 + 484: a8 95 wdr + 486: ce 01 movw r24, r28 + 488: 01 96 adiw r24, 0x01 ; 1 + 48a: af df rcall .-162 ; 0x3ea + 48c: 88 23 and r24, r24 + 48e: 41 f3 breq .-48 ; 0x460 + 490: 2f e7 ldi r18, 0x7F ; 127 + 492: 88 e3 ldi r24, 0x38 ; 56 + 494: 91 e0 ldi r25, 0x01 ; 1 + 496: 21 50 subi r18, 0x01 ; 1 + 498: 80 40 sbci r24, 0x00 ; 0 + 49a: 90 40 sbci r25, 0x00 ; 0 + 49c: e1 f7 brne .-8 ; 0x496 + 49e: 00 c0 rjmp .+0 ; 0x4a0 + 4a0: 00 00 nop + 4a2: a8 95 wdr + 4a4: f0 cf rjmp .-32 ; 0x486 -0000049a : - 49a: f8 94 cli - 49c: bc 9a sbi 0x17, 4 ; 23 - 49e: 8f eb ldi r24, 0xBF ; 191 - 4a0: 93 e0 ldi r25, 0x03 ; 3 - 4a2: 01 97 sbiw r24, 0x01 ; 1 - 4a4: f1 f7 brne .-4 ; 0x4a2 - 4a6: 00 c0 rjmp .+0 ; 0x4a8 - 4a8: 00 00 nop - 4aa: bc 98 cbi 0x17, 4 ; 23 - 4ac: 9a eb ldi r25, 0xBA ; 186 - 4ae: 9a 95 dec r25 - 4b0: f1 f7 brne .-4 ; 0x4ae - 4b2: 00 c0 rjmp .+0 ; 0x4b4 - 4b4: 86 b3 in r24, 0x16 ; 22 - 4b6: e3 e3 ldi r30, 0x33 ; 51 - 4b8: f3 e0 ldi r31, 0x03 ; 3 - 4ba: 31 97 sbiw r30, 0x01 ; 1 - 4bc: f1 f7 brne .-4 ; 0x4ba - 4be: 00 c0 rjmp .+0 ; 0x4c0 - 4c0: 00 00 nop - 4c2: 78 94 sei - 4c4: 82 95 swap r24 - 4c6: 81 70 andi r24, 0x01 ; 1 - 4c8: 91 e0 ldi r25, 0x01 ; 1 - 4ca: 89 27 eor r24, r25 - 4cc: 08 95 ret +000004a6 : + 4a6: f8 94 cli + 4a8: bb 9a sbi 0x17, 3 ; 23 + 4aa: 8f eb ldi r24, 0xBF ; 191 + 4ac: 93 e0 ldi r25, 0x03 ; 3 + 4ae: 01 97 sbiw r24, 0x01 ; 1 + 4b0: f1 f7 brne .-4 ; 0x4ae + 4b2: 00 c0 rjmp .+0 ; 0x4b4 + 4b4: 00 00 nop + 4b6: bb 98 cbi 0x17, 3 ; 23 + 4b8: 9a eb ldi r25, 0xBA ; 186 + 4ba: 9a 95 dec r25 + 4bc: f1 f7 brne .-4 ; 0x4ba + 4be: 00 c0 rjmp .+0 ; 0x4c0 + 4c0: 86 b3 in r24, 0x16 ; 22 + 4c2: e3 e3 ldi r30, 0x33 ; 51 + 4c4: f3 e0 ldi r31, 0x03 ; 3 + 4c6: 31 97 sbiw r30, 0x01 ; 1 + 4c8: f1 f7 brne .-4 ; 0x4c6 + 4ca: 00 c0 rjmp .+0 ; 0x4cc + 4cc: 00 00 nop + 4ce: 78 94 sei + 4d0: 83 fb bst r24, 3 + 4d2: 88 27 eor r24, r24 + 4d4: 80 f9 bld r24, 0 + 4d6: 91 e0 ldi r25, 0x01 ; 1 + 4d8: 89 27 eor r24, r25 + 4da: 08 95 ret -000004ce : - 4ce: 98 e0 ldi r25, 0x08 ; 8 - 4d0: 0d c0 rjmp .+26 ; 0x4ec - 4d2: bc 9a sbi 0x17, 4 ; 23 - 4d4: 20 ea ldi r18, 0xA0 ; 160 - 4d6: 2a 95 dec r18 - 4d8: f1 f7 brne .-4 ; 0x4d6 - 4da: bc 98 cbi 0x17, 4 ; 23 - 4dc: 2a e1 ldi r18, 0x1A ; 26 - 4de: 2a 95 dec r18 - 4e0: f1 f7 brne .-4 ; 0x4de - 4e2: 00 c0 rjmp .+0 ; 0x4e4 - 4e4: 78 94 sei - 4e6: 86 95 lsr r24 - 4e8: 91 50 subi r25, 0x01 ; 1 - 4ea: 69 f0 breq .+26 ; 0x506 - 4ec: f8 94 cli - 4ee: 80 ff sbrs r24, 0 - 4f0: f0 cf rjmp .-32 ; 0x4d2 - 4f2: bc 9a sbi 0x17, 4 ; 23 - 4f4: 20 e1 ldi r18, 0x10 ; 16 - 4f6: 2a 95 dec r18 - 4f8: f1 f7 brne .-4 ; 0x4f6 - 4fa: bc 98 cbi 0x17, 4 ; 23 - 4fc: 2a ea ldi r18, 0xAA ; 170 - 4fe: 2a 95 dec r18 - 500: f1 f7 brne .-4 ; 0x4fe - 502: 00 c0 rjmp .+0 ; 0x504 - 504: ef cf rjmp .-34 ; 0x4e4 - 506: 08 95 ret +000004dc : + 4dc: 98 e0 ldi r25, 0x08 ; 8 + 4de: 0d c0 rjmp .+26 ; 0x4fa + 4e0: bb 9a sbi 0x17, 3 ; 23 + 4e2: 20 ea ldi r18, 0xA0 ; 160 + 4e4: 2a 95 dec r18 + 4e6: f1 f7 brne .-4 ; 0x4e4 + 4e8: bb 98 cbi 0x17, 3 ; 23 + 4ea: 2a e1 ldi r18, 0x1A ; 26 + 4ec: 2a 95 dec r18 + 4ee: f1 f7 brne .-4 ; 0x4ec + 4f0: 00 c0 rjmp .+0 ; 0x4f2 + 4f2: 78 94 sei + 4f4: 86 95 lsr r24 + 4f6: 91 50 subi r25, 0x01 ; 1 + 4f8: 69 f0 breq .+26 ; 0x514 + 4fa: f8 94 cli + 4fc: 80 ff sbrs r24, 0 + 4fe: f0 cf rjmp .-32 ; 0x4e0 + 500: bb 9a sbi 0x17, 3 ; 23 + 502: 20 e1 ldi r18, 0x10 ; 16 + 504: 2a 95 dec r18 + 506: f1 f7 brne .-4 ; 0x504 + 508: bb 98 cbi 0x17, 3 ; 23 + 50a: 2a ea ldi r18, 0xAA ; 170 + 50c: 2a 95 dec r18 + 50e: f1 f7 brne .-4 ; 0x50c + 510: 00 c0 rjmp .+0 ; 0x512 + 512: ef cf rjmp .-34 ; 0x4f2 + 514: 08 95 ret -00000508 : - 508: 98 e0 ldi r25, 0x08 ; 8 - 50a: 80 e0 ldi r24, 0x00 ; 0 - 50c: 07 c0 rjmp .+14 ; 0x51c - 50e: 22 e9 ldi r18, 0x92 ; 146 - 510: 2a 95 dec r18 - 512: f1 f7 brne .-4 ; 0x510 - 514: 00 c0 rjmp .+0 ; 0x516 - 516: 78 94 sei - 518: 91 50 subi r25, 0x01 ; 1 - 51a: 71 f0 breq .+28 ; 0x538 - 51c: f8 94 cli - 51e: 86 95 lsr r24 - 520: bc 9a sbi 0x17, 4 ; 23 - 522: 20 e1 ldi r18, 0x10 ; 16 - 524: 2a 95 dec r18 - 526: f1 f7 brne .-4 ; 0x524 - 528: bc 98 cbi 0x17, 4 ; 23 - 52a: 28 e1 ldi r18, 0x18 ; 24 - 52c: 2a 95 dec r18 - 52e: f1 f7 brne .-4 ; 0x52c - 530: b4 9b sbis 0x16, 4 ; 22 - 532: ed cf rjmp .-38 ; 0x50e - 534: 80 68 ori r24, 0x80 ; 128 - 536: eb cf rjmp .-42 ; 0x50e - 538: 08 95 ret +00000516 : + 516: 98 e0 ldi r25, 0x08 ; 8 + 518: 80 e0 ldi r24, 0x00 ; 0 + 51a: 07 c0 rjmp .+14 ; 0x52a + 51c: 22 e9 ldi r18, 0x92 ; 146 + 51e: 2a 95 dec r18 + 520: f1 f7 brne .-4 ; 0x51e + 522: 00 c0 rjmp .+0 ; 0x524 + 524: 78 94 sei + 526: 91 50 subi r25, 0x01 ; 1 + 528: 71 f0 breq .+28 ; 0x546 + 52a: f8 94 cli + 52c: 86 95 lsr r24 + 52e: bb 9a sbi 0x17, 3 ; 23 + 530: 20 e1 ldi r18, 0x10 ; 16 + 532: 2a 95 dec r18 + 534: f1 f7 brne .-4 ; 0x532 + 536: bb 98 cbi 0x17, 3 ; 23 + 538: 28 e1 ldi r18, 0x18 ; 24 + 53a: 2a 95 dec r18 + 53c: f1 f7 brne .-4 ; 0x53a + 53e: b3 9b sbis 0x16, 3 ; 22 + 540: ed cf rjmp .-38 ; 0x51c + 542: 80 68 ori r24, 0x80 ; 128 + 544: eb cf rjmp .-42 ; 0x51c + 546: 08 95 ret -0000053a : - 53a: af df rcall .-162 ; 0x49a - 53c: 81 11 cpse r24, r1 - 53e: 01 c0 rjmp .+2 ; 0x542 - 540: 08 95 ret - 542: 8c ec ldi r24, 0xCC ; 204 - 544: c4 df rcall .-120 ; 0x4ce - 546: 81 e0 ldi r24, 0x01 ; 1 - 548: fb cf rjmp .-10 ; 0x540 +00000548 : + 548: ae df rcall .-164 ; 0x4a6 + 54a: 81 11 cpse r24, r1 + 54c: 01 c0 rjmp .+2 ; 0x550 + 54e: 08 95 ret + 550: 8c ec ldi r24, 0xCC ; 204 + 552: c4 df rcall .-120 ; 0x4dc + 554: 81 e0 ldi r24, 0x01 ; 1 + 556: fb cf rjmp .-10 ; 0x54e -0000054a : - 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: a2 df rcall .-188 ; 0x49a - 556: 81 11 cpse r24, r1 - 558: 05 c0 rjmp .+10 ; 0x564 - 55a: df 91 pop r29 - 55c: cf 91 pop r28 - 55e: 1f 91 pop r17 - 560: 0f 91 pop r16 - 562: 08 95 ret - 564: 83 e3 ldi r24, 0x33 ; 51 - 566: b3 df rcall .-154 ; 0x4ce - 568: e8 01 movw r28, r16 - 56a: 08 5f subi r16, 0xF8 ; 248 - 56c: 1f 4f sbci r17, 0xFF ; 255 - 56e: cc df rcall .-104 ; 0x508 - 570: 89 93 st Y+, r24 - 572: c0 17 cp r28, r16 - 574: d1 07 cpc r29, r17 - 576: d9 f7 brne .-10 ; 0x56e - 578: 81 e0 ldi r24, 0x01 ; 1 - 57a: ef cf rjmp .-34 ; 0x55a +00000558 : + 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: a1 df rcall .-190 ; 0x4a6 + 564: 81 11 cpse r24, r1 + 566: 05 c0 rjmp .+10 ; 0x572 + 568: df 91 pop r29 + 56a: cf 91 pop r28 + 56c: 1f 91 pop r17 + 56e: 0f 91 pop r16 + 570: 08 95 ret + 572: 83 e3 ldi r24, 0x33 ; 51 + 574: b3 df rcall .-154 ; 0x4dc + 576: e8 01 movw r28, r16 + 578: 08 5f subi r16, 0xF8 ; 248 + 57a: 1f 4f sbci r17, 0xFF ; 255 + 57c: cc df rcall .-104 ; 0x516 + 57e: 89 93 st Y+, r24 + 580: c0 17 cp r28, r16 + 582: d1 07 cpc r29, r17 + 584: d9 f7 brne .-10 ; 0x57c + 586: 81 e0 ldi r24, 0x01 ; 1 + 588: ef cf rjmp .-34 ; 0x568 -0000057c : - 57c: fc 01 movw r30, r24 - 57e: 68 0f add r22, r24 - 580: 79 1f adc r23, r25 - 582: 80 e0 ldi r24, 0x00 ; 0 - 584: 2c e8 ldi r18, 0x8C ; 140 - 586: 0b c0 rjmp .+22 ; 0x59e - 588: 86 95 lsr r24 - 58a: 91 50 subi r25, 0x01 ; 1 - 58c: 29 f0 breq .+10 ; 0x598 - 58e: 80 ff sbrs r24, 0 - 590: fb cf rjmp .-10 ; 0x588 - 592: 86 95 lsr r24 - 594: 82 27 eor r24, r18 - 596: f9 cf rjmp .-14 ; 0x58a - 598: e6 17 cp r30, r22 - 59a: f7 07 cpc r31, r23 - 59c: 21 f0 breq .+8 ; 0x5a6 - 59e: 91 91 ld r25, Z+ - 5a0: 89 27 eor r24, r25 - 5a2: 98 e0 ldi r25, 0x08 ; 8 - 5a4: f4 cf rjmp .-24 ; 0x58e - 5a6: 08 95 ret +0000058a : + 58a: fc 01 movw r30, r24 + 58c: 68 0f add r22, r24 + 58e: 79 1f adc r23, r25 + 590: 80 e0 ldi r24, 0x00 ; 0 + 592: 2c e8 ldi r18, 0x8C ; 140 + 594: 0b c0 rjmp .+22 ; 0x5ac + 596: 86 95 lsr r24 + 598: 91 50 subi r25, 0x01 ; 1 + 59a: 29 f0 breq .+10 ; 0x5a6 + 59c: 80 ff sbrs r24, 0 + 59e: fb cf rjmp .-10 ; 0x596 + 5a0: 86 95 lsr r24 + 5a2: 82 27 eor r24, r18 + 5a4: f9 cf rjmp .-14 ; 0x598 + 5a6: e6 17 cp r30, r22 + 5a8: f7 07 cpc r31, r23 + 5aa: 21 f0 breq .+8 ; 0x5b4 + 5ac: 91 91 ld r25, Z+ + 5ae: 89 27 eor r24, r25 + 5b0: 98 e0 ldi r25, 0x08 ; 8 + 5b2: f4 cf rjmp .-24 ; 0x59c + 5b4: 08 95 ret -000005a8 : - 5a8: ef 92 push r14 - 5aa: ff 92 push r15 - 5ac: 0f 93 push r16 - 5ae: 1f 93 push r17 - 5b0: cf 93 push r28 - 5b2: df 93 push r29 - 5b4: 7c 01 movw r14, r24 - 5b6: c1 df rcall .-126 ; 0x53a - 5b8: 8e eb ldi r24, 0xBE ; 190 - 5ba: 89 df rcall .-238 ; 0x4ce - 5bc: e7 01 movw r28, r14 - 5be: 87 01 movw r16, r14 - 5c0: 08 5f subi r16, 0xF8 ; 248 - 5c2: 1f 4f sbci r17, 0xFF ; 255 - 5c4: a1 df rcall .-190 ; 0x508 - 5c6: 89 93 st Y+, r24 - 5c8: c0 17 cp r28, r16 - 5ca: d1 07 cpc r29, r17 - 5cc: d9 f7 brne .-10 ; 0x5c4 - 5ce: 68 e0 ldi r22, 0x08 ; 8 - 5d0: 70 e0 ldi r23, 0x00 ; 0 - 5d2: c7 01 movw r24, r14 - 5d4: d3 df rcall .-90 ; 0x57c - 5d6: c8 2f mov r28, r24 - 5d8: 97 df rcall .-210 ; 0x508 - 5da: 91 e0 ldi r25, 0x01 ; 1 - 5dc: c8 13 cpse r28, r24 - 5de: 90 e0 ldi r25, 0x00 ; 0 - 5e0: 89 2f mov r24, r25 - 5e2: df 91 pop r29 - 5e4: cf 91 pop r28 - 5e6: 1f 91 pop r17 - 5e8: 0f 91 pop r16 - 5ea: ff 90 pop r15 - 5ec: ef 90 pop r14 - 5ee: 08 95 ret +000005b6 : + 5b6: ef 92 push r14 + 5b8: ff 92 push r15 + 5ba: 0f 93 push r16 + 5bc: 1f 93 push r17 + 5be: cf 93 push r28 + 5c0: df 93 push r29 + 5c2: 7c 01 movw r14, r24 + 5c4: c1 df rcall .-126 ; 0x548 + 5c6: 98 2f mov r25, r24 + 5c8: 81 11 cpse r24, r1 + 5ca: 08 c0 rjmp .+16 ; 0x5dc + 5cc: 89 2f mov r24, r25 + 5ce: df 91 pop r29 + 5d0: cf 91 pop r28 + 5d2: 1f 91 pop r17 + 5d4: 0f 91 pop r16 + 5d6: ff 90 pop r15 + 5d8: ef 90 pop r14 + 5da: 08 95 ret + 5dc: 8e eb ldi r24, 0xBE ; 190 + 5de: 7e df rcall .-260 ; 0x4dc + 5e0: e7 01 movw r28, r14 + 5e2: 87 01 movw r16, r14 + 5e4: 08 5f subi r16, 0xF8 ; 248 + 5e6: 1f 4f sbci r17, 0xFF ; 255 + 5e8: 96 df rcall .-212 ; 0x516 + 5ea: 89 93 st Y+, r24 + 5ec: c0 17 cp r28, r16 + 5ee: d1 07 cpc r29, r17 + 5f0: d9 f7 brne .-10 ; 0x5e8 + 5f2: 68 e0 ldi r22, 0x08 ; 8 + 5f4: 70 e0 ldi r23, 0x00 ; 0 + 5f6: c7 01 movw r24, r14 + 5f8: c8 df rcall .-112 ; 0x58a + 5fa: c8 2f mov r28, r24 + 5fc: 8c df rcall .-232 ; 0x516 + 5fe: 91 e0 ldi r25, 0x01 ; 1 + 600: c8 17 cp r28, r24 + 602: 21 f3 breq .-56 ; 0x5cc + 604: 90 e0 ldi r25, 0x00 ; 0 + 606: e2 cf rjmp .-60 ; 0x5cc -000005f0 : - 5f0: 54 df rcall .-344 ; 0x49a - 5f2: 81 11 cpse r24, r1 - 5f4: 01 c0 rjmp .+2 ; 0x5f8 - 5f6: 08 95 ret - 5f8: a0 df rcall .-192 ; 0x53a - 5fa: 88 e4 ldi r24, 0x48 ; 72 - 5fc: 68 df rcall .-304 ; 0x4ce - 5fe: 81 e0 ldi r24, 0x01 ; 1 - 600: fa cf rjmp .-12 ; 0x5f6 +00000608 : + 608: 4e df rcall .-356 ; 0x4a6 + 60a: 81 11 cpse r24, r1 + 60c: 01 c0 rjmp .+2 ; 0x610 + 60e: 08 95 ret + 610: 9b df rcall .-202 ; 0x548 + 612: 88 e4 ldi r24, 0x48 ; 72 + 614: 63 df rcall .-314 ; 0x4dc + 616: 81 e0 ldi r24, 0x01 ; 1 + 618: fa cf rjmp .-12 ; 0x60e -00000602 : - 602: cf 93 push r28 - 604: df 93 push r29 - 606: ec 01 movw r28, r24 - 608: 98 df rcall .-208 ; 0x53a - 60a: 8e e4 ldi r24, 0x4E ; 78 - 60c: 60 df rcall .-320 ; 0x4ce - 60e: 88 81 ld r24, Y - 610: 5e df rcall .-324 ; 0x4ce - 612: 89 81 ldd r24, Y+1 ; 0x01 - 614: 5c df rcall .-328 ; 0x4ce - 616: 8a 81 ldd r24, Y+2 ; 0x02 - 618: 5a df rcall .-332 ; 0x4ce - 61a: ea df rcall .-44 ; 0x5f0 - 61c: df 91 pop r29 - 61e: cf 91 pop r28 - 620: 08 95 ret +0000061a : + 61a: cf 93 push r28 + 61c: df 93 push r29 + 61e: ec 01 movw r28, r24 + 620: 93 df rcall .-218 ; 0x548 + 622: 8e e4 ldi r24, 0x4E ; 78 + 624: 5b df rcall .-330 ; 0x4dc + 626: 88 81 ld r24, Y + 628: 59 df rcall .-334 ; 0x4dc + 62a: 89 81 ldd r24, Y+1 ; 0x01 + 62c: 57 df rcall .-338 ; 0x4dc + 62e: 8a 81 ldd r24, Y+2 ; 0x02 + 630: 55 df rcall .-342 ; 0x4dc + 632: ea df rcall .-44 ; 0x608 + 634: df 91 pop r29 + 636: cf 91 pop r28 + 638: 08 95 ret -00000622 : - 622: ff 92 push r15 - 624: 0f 93 push r16 - 626: 1f 93 push r17 - 628: cf 93 push r28 - 62a: df 93 push r29 - 62c: 00 d0 rcall .+0 ; 0x62e - 62e: 1f 92 push r1 - 630: cd b7 in r28, 0x3d ; 61 - 632: de b7 in r29, 0x3e ; 62 - 634: 8c 01 movw r16, r24 - 636: f6 2e mov r15, r22 - 638: b7 df rcall .-146 ; 0x5a8 - 63a: f8 01 movw r30, r16 - 63c: 82 81 ldd r24, Z+2 ; 0x02 - 63e: 89 83 std Y+1, r24 ; 0x01 - 640: 83 81 ldd r24, Z+3 ; 0x03 - 642: 8a 83 std Y+2, r24 ; 0x02 - 644: fa e0 ldi r31, 0x0A ; 10 - 646: ff 16 cp r15, r31 - 648: b9 f0 breq .+46 ; 0x678 - 64a: 8b e0 ldi r24, 0x0B ; 11 - 64c: f8 16 cp r15, r24 - 64e: 89 f0 breq .+34 ; 0x672 - 650: e9 e0 ldi r30, 0x09 ; 9 - 652: fe 16 cp r15, r30 - 654: a1 f0 breq .+40 ; 0x67e - 656: 8f e7 ldi r24, 0x7F ; 127 - 658: 8b 83 std Y+3, r24 ; 0x03 - 65a: ce 01 movw r24, r28 - 65c: 01 96 adiw r24, 0x01 ; 1 - 65e: d1 df rcall .-94 ; 0x602 - 660: 0f 90 pop r0 - 662: 0f 90 pop r0 - 664: 0f 90 pop r0 - 666: df 91 pop r29 - 668: cf 91 pop r28 - 66a: 1f 91 pop r17 - 66c: 0f 91 pop r16 - 66e: ff 90 pop r15 - 670: 08 95 ret - 672: 8f e5 ldi r24, 0x5F ; 95 - 674: 8b 83 std Y+3, r24 ; 0x03 - 676: f1 cf rjmp .-30 ; 0x65a - 678: 8f e3 ldi r24, 0x3F ; 63 - 67a: 8b 83 std Y+3, r24 ; 0x03 - 67c: ee cf rjmp .-36 ; 0x65a - 67e: 8f e1 ldi r24, 0x1F ; 31 - 680: 8b 83 std Y+3, r24 ; 0x03 - 682: eb cf rjmp .-42 ; 0x65a +0000063a : + 63a: ff 92 push r15 + 63c: 0f 93 push r16 + 63e: 1f 93 push r17 + 640: cf 93 push r28 + 642: df 93 push r29 + 644: 00 d0 rcall .+0 ; 0x646 + 646: 1f 92 push r1 + 648: cd b7 in r28, 0x3d ; 61 + 64a: de b7 in r29, 0x3e ; 62 + 64c: 8c 01 movw r16, r24 + 64e: f6 2e mov r15, r22 + 650: b2 df rcall .-156 ; 0x5b6 + 652: f8 01 movw r30, r16 + 654: 82 81 ldd r24, Z+2 ; 0x02 + 656: 89 83 std Y+1, r24 ; 0x01 + 658: 83 81 ldd r24, Z+3 ; 0x03 + 65a: 8a 83 std Y+2, r24 ; 0x02 + 65c: fa e0 ldi r31, 0x0A ; 10 + 65e: ff 16 cp r15, r31 + 660: b9 f0 breq .+46 ; 0x690 + 662: 8b e0 ldi r24, 0x0B ; 11 + 664: f8 16 cp r15, r24 + 666: 89 f0 breq .+34 ; 0x68a + 668: e9 e0 ldi r30, 0x09 ; 9 + 66a: fe 16 cp r15, r30 + 66c: a1 f0 breq .+40 ; 0x696 + 66e: 8f e7 ldi r24, 0x7F ; 127 + 670: 8b 83 std Y+3, r24 ; 0x03 + 672: ce 01 movw r24, r28 + 674: 01 96 adiw r24, 0x01 ; 1 + 676: d1 df rcall .-94 ; 0x61a + 678: 0f 90 pop r0 + 67a: 0f 90 pop r0 + 67c: 0f 90 pop r0 + 67e: df 91 pop r29 + 680: cf 91 pop r28 + 682: 1f 91 pop r17 + 684: 0f 91 pop r16 + 686: ff 90 pop r15 + 688: 08 95 ret + 68a: 8f e5 ldi r24, 0x5F ; 95 + 68c: 8b 83 std Y+3, r24 ; 0x03 + 68e: f1 cf rjmp .-30 ; 0x672 + 690: 8f e3 ldi r24, 0x3F ; 63 + 692: 8b 83 std Y+3, r24 ; 0x03 + 694: ee cf rjmp .-36 ; 0x672 + 696: 8f e1 ldi r24, 0x1F ; 31 + 698: 8b 83 std Y+3, r24 ; 0x03 + 69a: eb cf rjmp .-42 ; 0x672 -00000684 : - 684: 0a df rcall .-492 ; 0x49a - 686: 81 11 cpse r24, r1 - 688: 01 c0 rjmp .+2 ; 0x68c - 68a: 08 95 ret - 68c: 8c ec ldi r24, 0xCC ; 204 - 68e: 1f df rcall .-450 ; 0x4ce - 690: 84 e4 ldi r24, 0x44 ; 68 - 692: 1d df rcall .-454 ; 0x4ce - 694: 81 e0 ldi r24, 0x01 ; 1 - 696: f9 cf rjmp .-14 ; 0x68a +0000069c : + 69c: 04 df rcall .-504 ; 0x4a6 + 69e: 81 11 cpse r24, r1 + 6a0: 01 c0 rjmp .+2 ; 0x6a4 + 6a2: 08 95 ret + 6a4: 8c ec ldi r24, 0xCC ; 204 + 6a6: 1a df rcall .-460 ; 0x4dc + 6a8: 84 e4 ldi r24, 0x44 ; 68 + 6aa: 18 df rcall .-464 ; 0x4dc + 6ac: 81 e0 ldi r24, 0x01 ; 1 + 6ae: f9 cf rjmp .-14 ; 0x6a2 -00000698 : - 698: cf 93 push r28 - 69a: df 93 push r29 - 69c: ec 01 movw r28, r24 - 69e: fd de rcall .-518 ; 0x49a - 6a0: 81 11 cpse r24, r1 - 6a2: 04 c0 rjmp .+8 ; 0x6ac - 6a4: 81 e0 ldi r24, 0x01 ; 1 - 6a6: df 91 pop r29 - 6a8: cf 91 pop r28 - 6aa: 08 95 ret - 6ac: ce 01 movw r24, r28 - 6ae: 08 96 adiw r24, 0x08 ; 8 - 6b0: 4c df rcall .-360 ; 0x54a - 6b2: 88 85 ldd r24, Y+8 ; 0x08 - 6b4: 88 32 cpi r24, 0x28 ; 40 - 6b6: 11 f0 breq .+4 ; 0x6bc - 6b8: 82 e0 ldi r24, 0x02 ; 2 - 6ba: f5 cf rjmp .-22 ; 0x6a6 - 6bc: ce 01 movw r24, r28 - 6be: 74 df rcall .-280 ; 0x5a8 - 6c0: 88 23 and r24, r24 - 6c2: 11 f0 breq .+4 ; 0x6c8 - 6c4: 80 e0 ldi r24, 0x00 ; 0 - 6c6: ef cf rjmp .-34 ; 0x6a6 - 6c8: 83 e0 ldi r24, 0x03 ; 3 - 6ca: ed cf rjmp .-38 ; 0x6a6 +000006b0 : + 6b0: cf 93 push r28 + 6b2: df 93 push r29 + 6b4: ec 01 movw r28, r24 + 6b6: f7 de rcall .-530 ; 0x4a6 + 6b8: 81 11 cpse r24, r1 + 6ba: 04 c0 rjmp .+8 ; 0x6c4 + 6bc: 81 e0 ldi r24, 0x01 ; 1 + 6be: df 91 pop r29 + 6c0: cf 91 pop r28 + 6c2: 08 95 ret + 6c4: ce 01 movw r24, r28 + 6c6: 08 96 adiw r24, 0x08 ; 8 + 6c8: 47 df rcall .-370 ; 0x558 + 6ca: 88 85 ldd r24, Y+8 ; 0x08 + 6cc: 88 32 cpi r24, 0x28 ; 40 + 6ce: 11 f0 breq .+4 ; 0x6d4 + 6d0: 82 e0 ldi r24, 0x02 ; 2 + 6d2: f5 cf rjmp .-22 ; 0x6be + 6d4: ce 01 movw r24, r28 + 6d6: 6f df rcall .-290 ; 0x5b6 + 6d8: 88 23 and r24, r24 + 6da: 11 f0 breq .+4 ; 0x6e0 + 6dc: 80 e0 ldi r24, 0x00 ; 0 + 6de: ef cf rjmp .-34 ; 0x6be + 6e0: 83 e0 ldi r24, 0x03 ; 3 + 6e2: ed cf rjmp .-38 ; 0x6be -000006cc : - 6cc: cf 93 push r28 - 6ce: df 93 push r29 - 6d0: ec 01 movw r28, r24 - 6d2: d8 df rcall .-80 ; 0x684 - 6d4: 88 23 and r24, r24 - 6d6: 09 f4 brne .+2 ; 0x6da - 6d8: 5e c0 rjmp .+188 ; 0x796 - 6da: 2c 81 ldd r18, Y+4 ; 0x04 - 6dc: 82 2f mov r24, r18 - 6de: 90 e0 ldi r25, 0x00 ; 0 - 6e0: 80 95 com r24 - 6e2: 90 95 com r25 - 6e4: 80 76 andi r24, 0x60 ; 96 - 6e6: 99 27 eor r25, r25 - 6e8: 89 2b or r24, r25 - 6ea: 09 f0 breq .+2 ; 0x6ee - 6ec: 57 c0 rjmp .+174 ; 0x79c - 6ee: 2f e7 ldi r18, 0x7F ; 127 - 6f0: 3f e4 ldi r19, 0x4F ; 79 - 6f2: 82 e1 ldi r24, 0x12 ; 18 - 6f4: 21 50 subi r18, 0x01 ; 1 - 6f6: 30 40 sbci r19, 0x00 ; 0 - 6f8: 80 40 sbci r24, 0x00 ; 0 - 6fa: e1 f7 brne .-8 ; 0x6f4 - 6fc: 00 c0 rjmp .+0 ; 0x6fe - 6fe: 00 00 nop - 700: ce 01 movw r24, r28 - 702: 52 df rcall .-348 ; 0x5a8 - 704: 88 23 and r24, r24 - 706: 09 f4 brne .+2 ; 0x70a - 708: 6b c0 rjmp .+214 ; 0x7e0 - 70a: 1d 8a std Y+21, r1 ; 0x15 - 70c: 89 81 ldd r24, Y+1 ; 0x01 - 70e: 90 e0 ldi r25, 0x00 ; 0 - 710: 48 81 ld r20, Y - 712: 24 2f mov r18, r20 - 714: 38 2f mov r19, r24 - 716: 33 23 and r19, r19 - 718: 0c f4 brge .+2 ; 0x71c - 71a: 65 c0 rjmp .+202 ; 0x7e6 - 71c: 35 95 asr r19 - 71e: 27 95 ror r18 - 720: 35 95 asr r19 - 722: 27 95 ror r18 - 724: 35 95 asr r19 - 726: 27 95 ror r18 - 728: 35 95 asr r19 - 72a: 27 95 ror r18 - 72c: 39 8b std Y+17, r19 ; 0x11 - 72e: 28 8b std Y+16, r18 ; 0x10 - 730: 80 95 com r24 - 732: 90 95 com r25 - 734: 88 7f andi r24, 0xF8 ; 248 - 736: 99 27 eor r25, r25 - 738: 89 2b or r24, r25 - 73a: 09 f0 breq .+2 ; 0x73e - 73c: 57 c0 rjmp .+174 ; 0x7ec - 73e: 81 e0 ldi r24, 0x01 ; 1 - 740: 8c 8b std Y+20, r24 ; 0x14 - 742: 41 95 neg r20 - 744: 48 83 st Y, r20 - 746: 88 81 ld r24, Y - 748: 8f 70 andi r24, 0x0F ; 15 - 74a: 28 2f mov r18, r24 - 74c: 30 e0 ldi r19, 0x00 ; 0 - 74e: c9 01 movw r24, r18 - 750: 88 0f add r24, r24 - 752: 99 1f adc r25, r25 - 754: 82 95 swap r24 - 756: 92 95 swap r25 - 758: 90 7f andi r25, 0xF0 ; 240 - 75a: 98 27 eor r25, r24 - 75c: 80 7f andi r24, 0xF0 ; 240 - 75e: 98 27 eor r25, r24 - 760: 82 1b sub r24, r18 - 762: 93 0b sbc r25, r19 - 764: 88 0f add r24, r24 - 766: 99 1f adc r25, r25 - 768: 88 0f add r24, r24 - 76a: 99 1f adc r25, r25 - 76c: 82 0f add r24, r18 - 76e: 93 1f adc r25, r19 - 770: 88 0f add r24, r24 - 772: 99 1f adc r25, r25 - 774: 88 0f add r24, r24 - 776: 99 1f adc r25, r25 - 778: 88 0f add r24, r24 - 77a: 99 1f adc r25, r25 - 77c: 9c 01 movw r18, r24 - 77e: 99 23 and r25, r25 - 780: bc f1 brlt .+110 ; 0x7f0 - 782: 35 95 asr r19 - 784: 27 95 ror r18 - 786: 35 95 asr r19 - 788: 27 95 ror r18 - 78a: 35 95 asr r19 - 78c: 27 95 ror r18 - 78e: 35 95 asr r19 - 790: 27 95 ror r18 - 792: 3b 8b std Y+19, r19 ; 0x13 - 794: 2a 8b std Y+18, r18 ; 0x12 - 796: df 91 pop r29 - 798: cf 91 pop r28 - 79a: 08 95 ret - 79c: 26 ff sbrs r18, 6 - 79e: 0a c0 rjmp .+20 ; 0x7b4 - 7a0: 9f eb ldi r25, 0xBF ; 191 - 7a2: 27 e2 ldi r18, 0x27 ; 39 - 7a4: 39 e0 ldi r19, 0x09 ; 9 - 7a6: 91 50 subi r25, 0x01 ; 1 - 7a8: 20 40 sbci r18, 0x00 ; 0 - 7aa: 30 40 sbci r19, 0x00 ; 0 - 7ac: e1 f7 brne .-8 ; 0x7a6 - 7ae: 00 c0 rjmp .+0 ; 0x7b0 - 7b0: 00 00 nop - 7b2: a6 cf rjmp .-180 ; 0x700 - 7b4: 25 ff sbrs r18, 5 - 7b6: 0a c0 rjmp .+20 ; 0x7cc - 7b8: 8f ef ldi r24, 0xFF ; 255 - 7ba: 96 e9 ldi r25, 0x96 ; 150 - 7bc: 24 e0 ldi r18, 0x04 ; 4 - 7be: 81 50 subi r24, 0x01 ; 1 - 7c0: 90 40 sbci r25, 0x00 ; 0 - 7c2: 20 40 sbci r18, 0x00 ; 0 - 7c4: e1 f7 brne .-8 ; 0x7be - 7c6: 00 c0 rjmp .+0 ; 0x7c8 - 7c8: 00 00 nop - 7ca: 9a cf rjmp .-204 ; 0x700 - 7cc: 3f e7 ldi r19, 0x7F ; 127 - 7ce: 8b e4 ldi r24, 0x4B ; 75 - 7d0: 92 e0 ldi r25, 0x02 ; 2 - 7d2: 31 50 subi r19, 0x01 ; 1 - 7d4: 80 40 sbci r24, 0x00 ; 0 - 7d6: 90 40 sbci r25, 0x00 ; 0 - 7d8: e1 f7 brne .-8 ; 0x7d2 - 7da: 00 c0 rjmp .+0 ; 0x7dc - 7dc: 00 00 nop - 7de: 90 cf rjmp .-224 ; 0x700 - 7e0: 81 e0 ldi r24, 0x01 ; 1 - 7e2: 8d 8b std Y+21, r24 ; 0x15 - 7e4: d8 cf rjmp .-80 ; 0x796 - 7e6: 21 5f subi r18, 0xF1 ; 241 - 7e8: 3f 4f sbci r19, 0xFF ; 255 - 7ea: 98 cf rjmp .-208 ; 0x71c - 7ec: 1c 8a std Y+20, r1 ; 0x14 - 7ee: ab cf rjmp .-170 ; 0x746 - 7f0: 21 5f subi r18, 0xF1 ; 241 - 7f2: 3f 4f sbci r19, 0xFF ; 255 - 7f4: c6 cf rjmp .-116 ; 0x782 +000006e4 : + 6e4: cf 93 push r28 + 6e6: df 93 push r29 + 6e8: ec 01 movw r28, r24 + 6ea: 65 df rcall .-310 ; 0x5b6 + 6ec: 81 11 cpse r24, r1 + 6ee: 03 c0 rjmp .+6 ; 0x6f6 + 6f0: df 91 pop r29 + 6f2: cf 91 pop r28 + 6f4: 08 95 ret + 6f6: d2 df rcall .-92 ; 0x69c + 6f8: 88 23 and r24, r24 + 6fa: d1 f3 breq .-12 ; 0x6f0 + 6fc: 2c 81 ldd r18, Y+4 ; 0x04 + 6fe: 82 2f mov r24, r18 + 700: 90 e0 ldi r25, 0x00 ; 0 + 702: 80 95 com r24 + 704: 90 95 com r25 + 706: 80 76 andi r24, 0x60 ; 96 + 708: 99 27 eor r25, r25 + 70a: 89 2b or r24, r25 + 70c: 09 f0 breq .+2 ; 0x710 + 70e: 55 c0 rjmp .+170 ; 0x7ba + 710: 2f e7 ldi r18, 0x7F ; 127 + 712: 3f e4 ldi r19, 0x4F ; 79 + 714: 82 e1 ldi r24, 0x12 ; 18 + 716: 21 50 subi r18, 0x01 ; 1 + 718: 30 40 sbci r19, 0x00 ; 0 + 71a: 80 40 sbci r24, 0x00 ; 0 + 71c: e1 f7 brne .-8 ; 0x716 + 71e: 00 c0 rjmp .+0 ; 0x720 + 720: 00 00 nop + 722: ce 01 movw r24, r28 + 724: 48 df rcall .-368 ; 0x5b6 + 726: 88 23 and r24, r24 + 728: 09 f4 brne .+2 ; 0x72c + 72a: 69 c0 rjmp .+210 ; 0x7fe + 72c: 1d 8a std Y+21, r1 ; 0x15 + 72e: 89 81 ldd r24, Y+1 ; 0x01 + 730: 90 e0 ldi r25, 0x00 ; 0 + 732: 48 81 ld r20, Y + 734: 24 2f mov r18, r20 + 736: 38 2f mov r19, r24 + 738: 33 23 and r19, r19 + 73a: 0c f4 brge .+2 ; 0x73e + 73c: 63 c0 rjmp .+198 ; 0x804 + 73e: 35 95 asr r19 + 740: 27 95 ror r18 + 742: 35 95 asr r19 + 744: 27 95 ror r18 + 746: 35 95 asr r19 + 748: 27 95 ror r18 + 74a: 35 95 asr r19 + 74c: 27 95 ror r18 + 74e: 39 8b std Y+17, r19 ; 0x11 + 750: 28 8b std Y+16, r18 ; 0x10 + 752: 80 95 com r24 + 754: 90 95 com r25 + 756: 88 7f andi r24, 0xF8 ; 248 + 758: 99 27 eor r25, r25 + 75a: 89 2b or r24, r25 + 75c: 09 f0 breq .+2 ; 0x760 + 75e: 55 c0 rjmp .+170 ; 0x80a + 760: 81 e0 ldi r24, 0x01 ; 1 + 762: 8c 8b std Y+20, r24 ; 0x14 + 764: 41 95 neg r20 + 766: 48 83 st Y, r20 + 768: 88 81 ld r24, Y + 76a: 8f 70 andi r24, 0x0F ; 15 + 76c: 28 2f mov r18, r24 + 76e: 30 e0 ldi r19, 0x00 ; 0 + 770: c9 01 movw r24, r18 + 772: 88 0f add r24, r24 + 774: 99 1f adc r25, r25 + 776: 82 95 swap r24 + 778: 92 95 swap r25 + 77a: 90 7f andi r25, 0xF0 ; 240 + 77c: 98 27 eor r25, r24 + 77e: 80 7f andi r24, 0xF0 ; 240 + 780: 98 27 eor r25, r24 + 782: 82 1b sub r24, r18 + 784: 93 0b sbc r25, r19 + 786: 88 0f add r24, r24 + 788: 99 1f adc r25, r25 + 78a: 88 0f add r24, r24 + 78c: 99 1f adc r25, r25 + 78e: 82 0f add r24, r18 + 790: 93 1f adc r25, r19 + 792: 88 0f add r24, r24 + 794: 99 1f adc r25, r25 + 796: 88 0f add r24, r24 + 798: 99 1f adc r25, r25 + 79a: 88 0f add r24, r24 + 79c: 99 1f adc r25, r25 + 79e: 9c 01 movw r18, r24 + 7a0: 99 23 and r25, r25 + 7a2: ac f1 brlt .+106 ; 0x80e + 7a4: 35 95 asr r19 + 7a6: 27 95 ror r18 + 7a8: 35 95 asr r19 + 7aa: 27 95 ror r18 + 7ac: 35 95 asr r19 + 7ae: 27 95 ror r18 + 7b0: 35 95 asr r19 + 7b2: 27 95 ror r18 + 7b4: 3b 8b std Y+19, r19 ; 0x13 + 7b6: 2a 8b std Y+18, r18 ; 0x12 + 7b8: 9b cf rjmp .-202 ; 0x6f0 + 7ba: 26 ff sbrs r18, 6 + 7bc: 0a c0 rjmp .+20 ; 0x7d2 + 7be: 9f eb ldi r25, 0xBF ; 191 + 7c0: 27 e2 ldi r18, 0x27 ; 39 + 7c2: 39 e0 ldi r19, 0x09 ; 9 + 7c4: 91 50 subi r25, 0x01 ; 1 + 7c6: 20 40 sbci r18, 0x00 ; 0 + 7c8: 30 40 sbci r19, 0x00 ; 0 + 7ca: e1 f7 brne .-8 ; 0x7c4 + 7cc: 00 c0 rjmp .+0 ; 0x7ce + 7ce: 00 00 nop + 7d0: a8 cf rjmp .-176 ; 0x722 + 7d2: 25 ff sbrs r18, 5 + 7d4: 0a c0 rjmp .+20 ; 0x7ea + 7d6: 8f ef ldi r24, 0xFF ; 255 + 7d8: 96 e9 ldi r25, 0x96 ; 150 + 7da: 24 e0 ldi r18, 0x04 ; 4 + 7dc: 81 50 subi r24, 0x01 ; 1 + 7de: 90 40 sbci r25, 0x00 ; 0 + 7e0: 20 40 sbci r18, 0x00 ; 0 + 7e2: e1 f7 brne .-8 ; 0x7dc + 7e4: 00 c0 rjmp .+0 ; 0x7e6 + 7e6: 00 00 nop + 7e8: 9c cf rjmp .-200 ; 0x722 + 7ea: 3f e7 ldi r19, 0x7F ; 127 + 7ec: 8b e4 ldi r24, 0x4B ; 75 + 7ee: 92 e0 ldi r25, 0x02 ; 2 + 7f0: 31 50 subi r19, 0x01 ; 1 + 7f2: 80 40 sbci r24, 0x00 ; 0 + 7f4: 90 40 sbci r25, 0x00 ; 0 + 7f6: e1 f7 brne .-8 ; 0x7f0 + 7f8: 00 c0 rjmp .+0 ; 0x7fa + 7fa: 00 00 nop + 7fc: 92 cf rjmp .-220 ; 0x722 + 7fe: 81 e0 ldi r24, 0x01 ; 1 + 800: 8d 8b std Y+21, r24 ; 0x15 + 802: 76 cf rjmp .-276 ; 0x6f0 + 804: 21 5f subi r18, 0xF1 ; 241 + 806: 3f 4f sbci r19, 0xFF ; 255 + 808: 9a cf rjmp .-204 ; 0x73e + 80a: 1c 8a std Y+20, r1 ; 0x14 + 80c: ad cf rjmp .-166 ; 0x768 + 80e: 21 5f subi r18, 0xF1 ; 241 + 810: 3f 4f sbci r19, 0xFF ; 255 + 812: c8 cf rjmp .-112 ; 0x7a4 -000007f6 <__udivmodhi4>: - 7f6: aa 1b sub r26, r26 - 7f8: bb 1b sub r27, r27 - 7fa: 51 e1 ldi r21, 0x11 ; 17 - 7fc: 07 c0 rjmp .+14 ; 0x80c <__udivmodhi4_ep> +00000814 <__udivmodhi4>: + 814: aa 1b sub r26, r26 + 816: bb 1b sub r27, r27 + 818: 51 e1 ldi r21, 0x11 ; 17 + 81a: 07 c0 rjmp .+14 ; 0x82a <__udivmodhi4_ep> -000007fe <__udivmodhi4_loop>: - 7fe: aa 1f adc r26, r26 - 800: bb 1f adc r27, r27 - 802: a6 17 cp r26, r22 - 804: b7 07 cpc r27, r23 - 806: 10 f0 brcs .+4 ; 0x80c <__udivmodhi4_ep> - 808: a6 1b sub r26, r22 - 80a: b7 0b sbc r27, r23 +0000081c <__udivmodhi4_loop>: + 81c: aa 1f adc r26, r26 + 81e: bb 1f adc r27, r27 + 820: a6 17 cp r26, r22 + 822: b7 07 cpc r27, r23 + 824: 10 f0 brcs .+4 ; 0x82a <__udivmodhi4_ep> + 826: a6 1b sub r26, r22 + 828: b7 0b sbc r27, r23 -0000080c <__udivmodhi4_ep>: - 80c: 88 1f adc r24, r24 - 80e: 99 1f adc r25, r25 - 810: 5a 95 dec r21 - 812: a9 f7 brne .-22 ; 0x7fe <__udivmodhi4_loop> - 814: 80 95 com r24 - 816: 90 95 com r25 - 818: bc 01 movw r22, r24 - 81a: cd 01 movw r24, r26 - 81c: 08 95 ret - -0000081e <__divmodhi4>: - 81e: 97 fb bst r25, 7 - 820: 07 2e mov r0, r23 - 822: 16 f4 brtc .+4 ; 0x828 <__divmodhi4+0xa> - 824: 00 94 com r0 - 826: 06 d0 rcall .+12 ; 0x834 <__divmodhi4_neg1> - 828: 77 fd sbrc r23, 7 - 82a: 08 d0 rcall .+16 ; 0x83c <__divmodhi4_neg2> - 82c: e4 df rcall .-56 ; 0x7f6 <__udivmodhi4> - 82e: 07 fc sbrc r0, 7 - 830: 05 d0 rcall .+10 ; 0x83c <__divmodhi4_neg2> - 832: 3e f4 brtc .+14 ; 0x842 <__divmodhi4_exit> - -00000834 <__divmodhi4_neg1>: +0000082a <__udivmodhi4_ep>: + 82a: 88 1f adc r24, r24 + 82c: 99 1f adc r25, r25 + 82e: 5a 95 dec r21 + 830: a9 f7 brne .-22 ; 0x81c <__udivmodhi4_loop> + 832: 80 95 com r24 834: 90 95 com r25 - 836: 81 95 neg r24 - 838: 9f 4f sbci r25, 0xFF ; 255 + 836: bc 01 movw r22, r24 + 838: cd 01 movw r24, r26 83a: 08 95 ret -0000083c <__divmodhi4_neg2>: - 83c: 70 95 com r23 - 83e: 61 95 neg r22 - 840: 7f 4f sbci r23, 0xFF ; 255 +0000083c <__divmodhi4>: + 83c: 97 fb bst r25, 7 + 83e: 07 2e mov r0, r23 + 840: 16 f4 brtc .+4 ; 0x846 <__divmodhi4+0xa> + 842: 00 94 com r0 + 844: 06 d0 rcall .+12 ; 0x852 <__divmodhi4_neg1> + 846: 77 fd sbrc r23, 7 + 848: 08 d0 rcall .+16 ; 0x85a <__divmodhi4_neg2> + 84a: e4 df rcall .-56 ; 0x814 <__udivmodhi4> + 84c: 07 fc sbrc r0, 7 + 84e: 05 d0 rcall .+10 ; 0x85a <__divmodhi4_neg2> + 850: 3e f4 brtc .+14 ; 0x860 <__divmodhi4_exit> -00000842 <__divmodhi4_exit>: - 842: 08 95 ret +00000852 <__divmodhi4_neg1>: + 852: 90 95 com r25 + 854: 81 95 neg r24 + 856: 9f 4f sbci r25, 0xFF ; 255 + 858: 08 95 ret -00000844 <_exit>: - 844: f8 94 cli +0000085a <__divmodhi4_neg2>: + 85a: 70 95 com r23 + 85c: 61 95 neg r22 + 85e: 7f 4f sbci r23, 0xFF ; 255 -00000846 <__stop_program>: - 846: ff cf rjmp .-2 ; 0x846 <__stop_program> +00000860 <__divmodhi4_exit>: + 860: 08 95 ret + +00000862 <_exit>: + 862: f8 94 cli + +00000864 <__stop_program>: + 864: ff cf rjmp .-2 ; 0x864 <__stop_program> diff --git a/firmware/dist/default/production/firmware.production.map b/firmware/dist/default/production/firmware.production.map index 08cf002..45c2e8a 100644 --- a/firmware/dist/default/production/firmware.production.map +++ b/firmware/dist/default/production/firmware.production.map @@ -193,7 +193,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x0000000000000000 0x848 +.text 0x0000000000000000 0x866 *(.vectors) .vectors 0x0000000000000000 0x1e /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o 0x0000000000000000 __vectors @@ -300,59 +300,59 @@ END GROUP .text.SensorErrorHandler 0x00000000000003ea 0x20 build/default/production/main.o 0x00000000000003ea SensorErrorHandler - .text.main 0x000000000000040a 0x90 build/default/production/main.o + .text.main 0x000000000000040a 0x9c build/default/production/main.o 0x000000000000040a main .text.OneWire_Presence - 0x000000000000049a 0x34 build/default/production/onewire.o - 0x000000000000049a OneWire_Presence + 0x00000000000004a6 0x36 build/default/production/onewire.o + 0x00000000000004a6 OneWire_Presence .text.OneWire_WriteByte - 0x00000000000004ce 0x3a build/default/production/onewire.o - 0x00000000000004ce OneWire_WriteByte + 0x00000000000004dc 0x3a build/default/production/onewire.o + 0x00000000000004dc OneWire_WriteByte .text.OneWire_ReadByte - 0x0000000000000508 0x32 build/default/production/onewire.o - 0x0000000000000508 OneWire_ReadByte + 0x0000000000000516 0x32 build/default/production/onewire.o + 0x0000000000000516 OneWire_ReadByte .text.OneWire_SkipROM - 0x000000000000053a 0x10 build/default/production/onewire.o - 0x000000000000053a OneWire_SkipROM + 0x0000000000000548 0x10 build/default/production/onewire.o + 0x0000000000000548 OneWire_SkipROM .text.OneWire_ReadROM - 0x000000000000054a 0x32 build/default/production/onewire.o - 0x000000000000054a OneWire_ReadROM + 0x0000000000000558 0x32 build/default/production/onewire.o + 0x0000000000000558 OneWire_ReadROM .text.OneWire_CRC8_Update - 0x000000000000057c 0x2c build/default/production/onewire.o - 0x000000000000057c OneWire_CRC8_Update + 0x000000000000058a 0x2c build/default/production/onewire.o + 0x000000000000058a OneWire_CRC8_Update .text.DallasTemp_ReadScratchpad - 0x00000000000005a8 0x48 build/default/production/dstemperature.o - 0x00000000000005a8 DallasTemp_ReadScratchpad + 0x00000000000005b6 0x52 build/default/production/dstemperature.o + 0x00000000000005b6 DallasTemp_ReadScratchpad .text.DallasTemp_CopyScratchpad - 0x00000000000005f0 0x12 build/default/production/dstemperature.o - 0x00000000000005f0 DallasTemp_CopyScratchpad + 0x0000000000000608 0x12 build/default/production/dstemperature.o + 0x0000000000000608 DallasTemp_CopyScratchpad .text.DallasTemp_WriteScratchpad - 0x0000000000000602 0x20 build/default/production/dstemperature.o - 0x0000000000000602 DallasTemp_WriteScratchpad + 0x000000000000061a 0x20 build/default/production/dstemperature.o + 0x000000000000061a DallasTemp_WriteScratchpad .text.DallasTemp_SetResolution - 0x0000000000000622 0x62 build/default/production/dstemperature.o - 0x0000000000000622 DallasTemp_SetResolution + 0x000000000000063a 0x62 build/default/production/dstemperature.o + 0x000000000000063a DallasTemp_SetResolution .text.DallasTemp_Convert - 0x0000000000000684 0x14 build/default/production/dstemperature.o - 0x0000000000000684 DallasTemp_Convert + 0x000000000000069c 0x14 build/default/production/dstemperature.o + 0x000000000000069c DallasTemp_Convert .text.DallasTemp_CheckError - 0x0000000000000698 0x34 build/default/production/dstemperature.o - 0x0000000000000698 DallasTemp_CheckError + 0x00000000000006b0 0x34 build/default/production/dstemperature.o + 0x00000000000006b0 DallasTemp_CheckError .text.DallasTemp_GetTemperature - 0x00000000000006cc 0x12a build/default/production/dstemperature.o - 0x00000000000006cc DallasTemp_GetTemperature + 0x00000000000006e4 0x130 build/default/production/dstemperature.o + 0x00000000000006e4 DallasTemp_GetTemperature .text.libgcc.div - 0x00000000000007f6 0x28 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) - 0x00000000000007f6 __udivmodhi4 + 0x0000000000000814 0x28 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) + 0x0000000000000814 __udivmodhi4 .text.libgcc.div - 0x000000000000081e 0x26 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) - 0x000000000000081e __divmodhi4 - 0x000000000000081e _div - 0x0000000000000844 . = ALIGN (0x2) + 0x000000000000083c 0x26 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + 0x000000000000083c __divmodhi4 + 0x000000000000083c _div + 0x0000000000000862 . = ALIGN (0x2) *(.fini9) - .fini9 0x0000000000000844 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) - 0x0000000000000844 exit - 0x0000000000000844 _exit + .fini9 0x0000000000000862 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) + 0x0000000000000862 exit + 0x0000000000000862 _exit *(.fini9) *(.fini8) *(.fini8) @@ -371,11 +371,11 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x0000000000000844 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) + .fini0 0x0000000000000862 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) *(.fini0) - 0x0000000000000848 _etext = . + 0x0000000000000866 _etext = . -.data 0x0000000000800060 0x0 load address 0x0000000000000848 +.data 0x0000000000800060 0x0 load address 0x0000000000000866 [!provide] PROVIDE (__data_start, .) *(.data) *(.data*) @@ -393,8 +393,8 @@ END GROUP *(.bss*) *(COMMON) [!provide] PROVIDE (__bss_end, .) - 0x0000000000000848 __data_load_start = LOADADDR (.data) - 0x0000000000000848 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x0000000000000866 __data_load_start = LOADADDR (.data) + 0x0000000000000866 __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x0000000000800060 0x0 [!provide] PROVIDE (__noinit_start, .) diff --git a/firmware/dstemperature.c b/firmware/dstemperature.c index 9c38649..0f6b86b 100644 --- a/firmware/dstemperature.c +++ b/firmware/dstemperature.c @@ -1,7 +1,7 @@ #include "dstemperature.h" uint8_t DallasTemp_ReadScratchpad(uint8_t *scratchpad) { - OneWire_SkipROM(); + if (!OneWire_SkipROM()) return 0; OneWire_WriteByte(DS18B20_CMD_RSCRATCHPAD); for (uint8_t i = 0; i < 8; i++) { @@ -86,9 +86,14 @@ DallasSensorError DallasTemp_CheckError(DallasSensor* Sensor) { return 0; } -void DallasTemp_GetTemperature(DallasSensor *Sensor) { +void DallasTemp_GetTemperature(DallasSensor *Sensor) { + /* Читаем ОЗУ для определения нужной задержки */ + if (!DallasTemp_ReadScratchpad(Sensor->SCRATCHPAD)) return; + + /* Оцифровка */ if (!DallasTemp_Convert()) return; + /* Ждем необходимое кол-во времени в зависимости от разрядности АЦП */ if (!(~Sensor->SCRATCHPAD[4] & 0x60)) { _delay_ms(750); } else if (!(~Sensor->SCRATCHPAD[4] & 0x40)) { @@ -99,12 +104,12 @@ void DallasTemp_GetTemperature(DallasSensor *Sensor) { _delay_ms(94); } + /* Читаем еще раз ОЗУ для получения актуальной температуры и проверки валидности данных */ if (!DallasTemp_ReadScratchpad(Sensor->SCRATCHPAD)) { Sensor->CRC_ERROR = 1; return; } - - + Sensor->CRC_ERROR = 0; Sensor->TEMPERATURE = ((Sensor->SCRATCHPAD[1] << 8) | Sensor->SCRATCHPAD[0]) / 16; diff --git a/firmware/main.c b/firmware/main.c index de3c2d7..b766a93 100644 --- a/firmware/main.c +++ b/firmware/main.c @@ -17,7 +17,7 @@ #define PIN_TWI_CLK PINB2 #define TWI_DELAY 5 // uS -#define PIN_LED_ERR PB3 +#define PIN_LED_ERR PB1 #define TM1637_DIGITS_COUNT 3 @@ -268,10 +268,10 @@ int main(void) { PORTB &= ~_BV(PIN_LED_ERR); wdt_reset(); - wdt_enable(WDTO_4S); + wdt_enable(WDTO_8S); DallasSensor Sensor_01; - DallasTemp_SetResolution(&Sensor_01, DS_TEMP_ADC_RESOLUTION_11); + DallasTemp_SetResolution(&Sensor_01, DS_TEMP_ADC_RESOLUTION_12); TM1637_Init(PORT_TWI_DIO, PORT_TWI_CLK, TM1637_BRIGHTNESS_2, TM1637_DISP_ON); TM1637_DisplayLine(); @@ -284,6 +284,8 @@ int main(void) { _delay_ms(50); wdt_reset(); continue; + } else { + _delay_ms(10); } #endif @@ -292,6 +294,7 @@ int main(void) { */ DallasTemp_GetTemperature(&Sensor_01); TM1637_DisplayFixedNum(Sensor_01.TEMPERATURE, Sensor_01.TEMPERATURE_FRACTION / 100, 1, Sensor_01.T_NEGATIVE); + wdt_reset(); } return 0; diff --git a/firmware/nbproject/Makefile-genesis.properties b/firmware/nbproject/Makefile-genesis.properties index b42e2e8..19897fe 100644 --- a/firmware/nbproject/Makefile-genesis.properties +++ b/firmware/nbproject/Makefile-genesis.properties @@ -1,5 +1,5 @@ # -#Mon Aug 07 11:59:03 MSK 2023 +#Mon Aug 07 20:30:36 MSK 2023 default.languagetoolchain.version=7.3.0 default.Pack.dfplocation=/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151 default.com-microchip-mplab-nbide-toolchain-avr-AVRLanguageToolchain.md5=f7c8f2a9c7d7748a6cb97af5c32efadd diff --git a/firmware/nbproject/private/private.xml b/firmware/nbproject/private/private.xml index cb8d677..32813c9 100644 --- a/firmware/nbproject/private/private.xml +++ b/firmware/nbproject/private/private.xml @@ -3,6 +3,8 @@ + file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer/firmware/dstemperature.c + file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer/firmware/dstemperature.h file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer/firmware/main.c diff --git a/firmware/onewire.h b/firmware/onewire.h index d35f2d6..abb76d2 100644 --- a/firmware/onewire.h +++ b/firmware/onewire.h @@ -3,7 +3,7 @@ #include #include -#define OW_LINE PB4 +#define OW_LINE PB3 #define OW_PIN PINB #define OW_PORT PORTB #define OW_DDR DDRB diff --git a/proteus/Backup Of attiny45v_thermometer.pdsbak b/proteus/Backup Of attiny45v_thermometer.pdsbak index 5bf13ee..1b2eefb 100644 Binary files a/proteus/Backup Of attiny45v_thermometer.pdsbak and b/proteus/Backup Of attiny45v_thermometer.pdsbak differ diff --git a/proteus/Last Loaded attiny45v_thermometer.pdsbak b/proteus/Last Loaded attiny45v_thermometer.pdsbak new file mode 100644 index 0000000..22ad289 Binary files /dev/null and b/proteus/Last Loaded attiny45v_thermometer.pdsbak differ diff --git a/proteus/attiny45v_thermometer.pdsprj b/proteus/attiny45v_thermometer.pdsprj index 39f2380..f78dcb1 100644 Binary files a/proteus/attiny45v_thermometer.pdsprj and b/proteus/attiny45v_thermometer.pdsprj differ diff --git a/proteus/attiny45v_thermometer.pdsprj.WIN-DPCBF9JDVBJ.Sergey.workspace b/proteus/attiny45v_thermometer.pdsprj.WIN-DPCBF9JDVBJ.Sergey.workspace index 7f3fa63..a8e1f05 100644 --- a/proteus/attiny45v_thermometer.pdsprj.WIN-DPCBF9JDVBJ.Sergey.workspace +++ b/proteus/attiny45v_thermometer.pdsprj.WIN-DPCBF9JDVBJ.Sergey.workspace @@ -65,7 +65,7 @@ 00000000 - + 2 Yes