diff --git a/build/default/production/dstemperature.o b/build/default/production/dstemperature.o index 094afb8..7f6f088 100644 Binary files a/build/default/production/dstemperature.o and b/build/default/production/dstemperature.o differ diff --git a/build/default/production/main.o b/build/default/production/main.o index e5e7df4..525990f 100644 Binary files a/build/default/production/main.o and b/build/default/production/main.o differ diff --git a/dist/default/production/attiny45v_thermometer.X.production.elf b/dist/default/production/attiny45v_thermometer.X.production.elf index 8c7aac4..5c3a95c 100755 Binary files a/dist/default/production/attiny45v_thermometer.X.production.elf and b/dist/default/production/attiny45v_thermometer.X.production.elf differ diff --git a/dist/default/production/attiny45v_thermometer.X.production.hex b/dist/default/production/attiny45v_thermometer.X.production.hex index fc9fe39..28fd7a8 100644 --- a/dist/default/production/attiny45v_thermometer.X.production.hex +++ b/dist/default/production/attiny45v_thermometer.X.production.hex @@ -1,65 +1,89 @@ :1000000013C01AC019C018C017C016C015C014C03C :1000100013C012C011C010C00FC00EC00DC03F06EB :100020005B4F666D7D077F6F11241FBECFE5D1E06A -:10003000DEBFCDBFB8D0DEC1E3CFC09AC29A8DE09B -:100040008A95F1F70000C0988DE08A95F1F70000DD -:10005000C2980895C298C0988DE08A95F1F7000083 -:10006000C29A8DE08A95F1F70000C09A08952DE0BC -:100070002A95F1F7000098E00DC0C09886952DE014 -:100080002A95F1F70000C29A2DE02A95F1F70000B9 -:10009000915049F0C2982DE02A95F1F7000080FFB9 -:1000A000ECCFC09AEBCFB898C298C09A8DE08A95F1 -:1000B000F1F7000086B3C29A9DE09A95F1F700002F -:1000C000C2982DE02A95F1F70000B89A80958170CA -:1000D0000895CF93C82FB1DF8C2FC9DFBBDFCF913D -:1000E000089597B3A1E0B0E0FD0102C0EE0FFF1F3D -:1000F0008A95E2F702C0AA0FBB1F6A95E2F7EA2BC6 -:100100009E2B97BB88B3E095E823E8BB842F8068DB -:10011000822BDFDF0895CF93DF93C82FD62F80E4A3 -:10012000D8DF8BDF8D2F806CA2DF8C2FA0DF92DFDA -:10013000DF91CF9108950F931F93CF93DF93EC013D -:10014000C83E83E0D80710F0C7EED3E0CE0164E6E6 -:1001500070E03CD1CB010AE010E0B80137D1825EFB -:100160009F4FFC01849160E0D6DFCE01B8012ED113 -:10017000EC01CB01B8012AD1825E9F4FFC01849132 -:1001800061E0C9DFFE01E25EFF4F849162E0C3DF00 -:10019000DF91CF911F910F91089528E041E062E037 -:1001A00080E09FDF0895CF93DF93CDB7DEB76397ED -:1001B0000FB6F894DEBF0FBECDBFEFDFCE010996BC -:1001C0005FD0CE010196B9D089899A89B4DFF9CF81 -:1001D000F894BC9A8FEB93E00197F1F700C0000010 -:1001E000BC989AEB9A95F1F700C086B3E3E3F3E08D -:1001F0003197F1F700C0000078948295817091E00A -:100200008927089598E00DC0BC9A20EA2A95F1F755 -:10021000BC982AE12A95F1F700C078948695915010 -:1002200069F0F89480FFF0CFBC9A20E12A95F1F7AD -:10023000BC982AEA2A95F1F700C0EFCF089598E01C -:1002400080E007C022E92A95F1F700C07894915028 -:1002500071F0F8948695BC9A20E12A95F1F7BC9844 -:1002600028E12A95F1F7B49BEDCF8068EBCF089594 -:10027000AFDF811101C008958CECC4DF81E0FBCFBA -:100280000F931F93CF93DF938C01A2DF811105C0E1 -:10029000DF91CF911F910F91089583E3B3DFE801C0 -:1002A000085F1F4FCCDF8993C017D107D9F781E0D2 -:1002B000EFCFFC01680F791F80E02CE80BC086951A -:1002C000915029F080FFFBCF86958227F9CFE61762 -:1002D000F70721F09191892798E0F4CF0895EF92E4 -:1002E000FF920F931F93CF93DF937C01C1DF8EEBBF -:1002F00089DFE7018701085F1F4FA1DF8993C017DE -:10030000D107D9F768E070E0C701D3DFC82F97DFC6 -:1003100091E0C81390E0892FDF91CF911F910F9149 -:10032000FF90EF90089554DF811101C008958CEC87 -:1003300069DF84E467DF81E0F9CFCF93DF93EC01DD -:10034000F2DF811103C0DF91CF9108952FE78FE491 -:1003500092E1215080409040E1F700C00000CE01C2 -:10036000BEDF882381F388814981542F482F9A0169 -:1003700033234CF135952795359527953595279558 -:1003800035952795398B288B8F70282F30E0C90140 -:10039000880F991F820F931FAC01440F551F429580 -:1003A0005295507F5427407F5427840F951F820F0A -:1003B000931F95958795959587959595879595958F -:1003C00087958A8BC0CF215F3F4FD4CFAA1BBB1B21 -:1003D00051E107C0AA1FBB1FA617B70710F0A61B45 -:1003E000B70B881F991F5A95A9F780959095BC0166 -:0803F000CD010895F894FFCF40 +:10003000DEBFCDBF30D19CC2E3CFF894C09AC29A44 +:100040008DE08A95F1F70000C0988DE08A95F1F770 +:100050000000C29878940895F894C298C0988DE0F2 +:100060008A95F1F70000C29A8DE08A95F1F70000B9 +:10007000C09A78940895F8942DE02A95F1F700003D +:1000800098E00DC0C09886952DE02A95F1F7000004 +:10009000C29A2DE02A95F1F70000915049F0C298DC +:1000A0002DE02A95F1F7000080FFECCFC09AEBCF4E +:1000B000B898C298C09A8DE08A95F1F7000086B38F +:1000C000C29A9DE09A95F1F70000C2982DE02A951A +:1000D000F1F70000B89A7894809581700895CF93D5 +:1000E000C82FABDF8C2FC7DFB7DFCF91089597B351 +:1000F000A1E0B0E0FD0102C0EE0FFF1F8A95E2F71C +:1001000002C0AA0FBB1F6A95E2F7EA2B9E2B97BB92 +:1001100088B3E095E823E8BB842F8068822BDFDF7B +:100120000895CF93DF93C82FD62F80E4D8DF85DFE3 +:100130008D2F806CA0DF8C2F9EDF8EDFDF91CF9123 +:10014000089562E080E4EDDF61E080E4EADF60E0F2 +:1001500080E4E7DF089521E08A30910550F021E046 +:10016000EAE0F0E0BF01DDD1CB012F5F6A3071051D +:10017000C8F7822F0895AF92BF92CF92DF92EF928D +:10018000FF920F931F93CF93DF9300D01F92CDB7B1 +:10019000DEB7B62EF42E009749F461113BC08C01F6 +:1001A000883E93407CF007EE13E00CC08C01883E43 +:1001B00023E0920714F007EE13E099231CF4119545 +:1001C00001951109C801C7DFA82E2AE030E0C80157 +:1001D000B901BBD18B83CB01B901B7D18A83C801E7 +:1001E00064E670E0B2D1CB01B901AFD1898331E0CF +:1001F000A31691F083E0D82EDA1882E08D15A8F1CD +:1002000010E000E0C12C82E090E09C012F19310940 +:10021000790118C08C01D3CFDA2CF2CFE1E0F0E005 +:10022000EC0FFD1FED0DF11DE081F0E0E25EFF4FF0 +:1002300084916C2D76DFD394C3940F5F1F4F82E0BF +:100240008D15A0F0E016F10649F733E0A31631F35F +:10025000E1E0F0E0EC0FFD1FED0DF11DE081F0E0BD +:10026000E25EFF4F84918068E4CFC12CEB2DF0E07B +:10027000E25EFF4F84916C2D54DF0F900F900F9032 +:10028000DF91CF911F910F91FF90EF90DF90CF9072 +:10029000BF90AF900895CF93DF93CDB7DEB764974B +:1002A0000FB6F894DEBF0FBECDBF28E042E062E09B +:1002B00080E01DDF46DF04E610E001C042DFCE0132 +:1002C0000196C3D08111FACFCE010196D1D08B898E +:1002D0009C89B80126D141E089899A894CDFEFCF0A +:1002E000F894BC9A8FEB93E00197F1F700C00000FF +:1002F000BC989AEB9A95F1F700C086B3E3E3F3E07C +:100300003197F1F700C0000078948295817091E0F8 +:100310008927089598E00DC0BC9A20EA2A95F1F744 +:10032000BC982AE12A95F1F700C0789486959150FF +:1003300069F0F89480FFF0CFBC9A20E12A95F1F79C +:10034000BC982AEA2A95F1F700C0EFCF089598E00B +:1003500080E007C022E92A95F1F700C07894915017 +:1003600071F0F8948695BC9A20E12A95F1F7BC9833 +:1003700028E12A95F1F7B49BEDCF8068EBCF089583 +:10038000AFDF811101C008958CECC4DF81E0FBCFA9 +:100390000F931F93CF93DF938C01A2DF811105C0D0 +:1003A000DF91CF911F910F91089583E3B3DFE801AF +:1003B000085F1F4FCCDF8993C017D107D9F781E0C1 +:1003C000EFCFFC01680F791F80E02CE80BC0869509 +:1003D000915029F080FFFBCF86958227F9CFE61751 +:1003E000F70721F09191892798E0F4CF0895EF92D3 +:1003F000FF920F931F93CF93DF937C01C1DF8EEBAE +:1004000089DFE7018701085F1F4FA1DF8993C017CC +:10041000D107D9F768E070E0C701D3DFC82F97DFB5 +:1004200091E0C81390E0892FDF91CF911F910F9138 +:10043000FF90EF90089554DF811101C008958CEC76 +:1004400069DF84E467DF81E0F9CFCF93DF93EC01CC +:1004500047DF811104C081E0DF91CF910895CE0183 +:10046000089696DF81E098859832B1F780E0F4CF66 +:10047000CF93DF93EC01DFDF811103C0DF91CF91D8 +:1004800008952FE78FE492E1215080409040E1F7FA +:1004900000C00000CE01ABDF882381F329813881C1 +:1004A000522F432FCA019923BCF1959587959595B5 +:1004B00087959595879595958795998B888B287FB6 +:1004C00011F03195388388818F70282F30E0C90171 +:1004D000880F991F82959295907F9827807F982703 +:1004E000821B930B880F991F880F991F820F931FF0 +:1004F000880F991F880F991F880F991F9C019923B6 +:100500006CF0359527953595279535952795359533 +:1005100027953B8B2A8BB2CF0F96C7CF215F3F4FDA +:10052000F0CFAA1BBB1B51E107C0AA1FBB1FA61718 +:10053000B70710F0A61BB70B881F991F5A95A9F78C +:1005400080959095BC01CD01089597FB072E16F478 +:10055000009406D077FD08D0E4DF07FC05D03EF418 +:10056000909581959F4F0895709561957F4F08955F +:04057000F894FFCF2D :00000001FF diff --git a/dist/default/production/attiny45v_thermometer.X.production.lss b/dist/default/production/attiny45v_thermometer.X.production.lss index 29bf2a3..fcce982 100644 --- a/dist/default/production/attiny45v_thermometer.X.production.lss +++ b/dist/default/production/attiny45v_thermometer.X.production.lss @@ -3,21 +3,21 @@ dist/default/production/attiny45v_thermometer.X.production.elf: file format Sections: Idx Name Size VMA LMA File off Algn - 0 .text 000003f8 00000000 00000000 00000054 2**1 + 0 .text 00000574 00000000 00000000 00000054 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000000 00800060 00800060 0000044c 2**0 + 1 .data 00000000 00800060 00800060 000005c8 2**0 CONTENTS, ALLOC, LOAD, DATA - 2 .comment 00000030 00000000 00000000 0000044c 2**0 + 2 .comment 00000030 00000000 00000000 000005c8 2**0 CONTENTS, READONLY - 3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 0000047c 2**2 + 3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000005f8 2**2 CONTENTS, READONLY - 4 .debug_info 00000420 00000000 00000000 000004b8 2**0 + 4 .debug_info 00000420 00000000 00000000 00000634 2**0 CONTENTS, READONLY, DEBUGGING - 5 .debug_abbrev 000003e8 00000000 00000000 000008d8 2**0 + 5 .debug_abbrev 000003e8 00000000 00000000 00000a54 2**0 CONTENTS, READONLY, DEBUGGING - 6 .debug_line 000000f2 00000000 00000000 00000cc0 2**0 + 6 .debug_line 000000f2 00000000 00000000 00000e3c 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_str 00000169 00000000 00000000 00000db2 2**0 + 7 .debug_str 00000169 00000000 00000000 00000f2e 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -53,533 +53,735 @@ Disassembly of section .text: 2e: d1 e0 ldi r29, 0x01 ; 1 30: de bf out 0x3e, r29 ; 62 32: cd bf out 0x3d, r28 ; 61 - 34: b8 d0 rcall .+368 ; 0x1a6
- 36: de c1 rjmp .+956 ; 0x3f4 <_exit> + 34: 30 d1 rcall .+608 ; 0x296
+ 36: 9c c2 rjmp .+1336 ; 0x570 <_exit> 00000038 <__bad_interrupt>: 38: e3 cf rjmp .-58 ; 0x0 <__vectors> 0000003a : - 3a: c0 9a sbi 0x18, 0 ; 24 - 3c: c2 9a sbi 0x18, 2 ; 24 - 3e: 8d e0 ldi r24, 0x0D ; 13 - 40: 8a 95 dec r24 - 42: f1 f7 brne .-4 ; 0x40 <__SREG__+0x1> - 44: 00 00 nop - 46: c0 98 cbi 0x18, 0 ; 24 - 48: 8d e0 ldi r24, 0x0D ; 13 - 4a: 8a 95 dec r24 - 4c: f1 f7 brne .-4 ; 0x4a <__SREG__+0xb> - 4e: 00 00 nop - 50: c2 98 cbi 0x18, 2 ; 24 - 52: 08 95 ret + 3a: f8 94 cli + 3c: c0 9a sbi 0x18, 0 ; 24 + 3e: c2 9a sbi 0x18, 2 ; 24 + 40: 8d e0 ldi r24, 0x0D ; 13 + 42: 8a 95 dec r24 + 44: f1 f7 brne .-4 ; 0x42 <__SREG__+0x3> + 46: 00 00 nop + 48: c0 98 cbi 0x18, 0 ; 24 + 4a: 8d e0 ldi r24, 0x0D ; 13 + 4c: 8a 95 dec r24 + 4e: f1 f7 brne .-4 ; 0x4c <__SREG__+0xd> + 50: 00 00 nop + 52: c2 98 cbi 0x18, 2 ; 24 + 54: 78 94 sei + 56: 08 95 ret -00000054 : - 54: c2 98 cbi 0x18, 2 ; 24 - 56: c0 98 cbi 0x18, 0 ; 24 - 58: 8d e0 ldi r24, 0x0D ; 13 - 5a: 8a 95 dec r24 - 5c: f1 f7 brne .-4 ; 0x5a - 5e: 00 00 nop - 60: c2 9a sbi 0x18, 2 ; 24 - 62: 8d e0 ldi r24, 0x0D ; 13 - 64: 8a 95 dec r24 - 66: f1 f7 brne .-4 ; 0x64 - 68: 00 00 nop - 6a: c0 9a sbi 0x18, 0 ; 24 - 6c: 08 95 ret +00000058 : + 58: f8 94 cli + 5a: c2 98 cbi 0x18, 2 ; 24 + 5c: c0 98 cbi 0x18, 0 ; 24 + 5e: 8d e0 ldi r24, 0x0D ; 13 + 60: 8a 95 dec r24 + 62: f1 f7 brne .-4 ; 0x60 + 64: 00 00 nop + 66: c2 9a sbi 0x18, 2 ; 24 + 68: 8d e0 ldi r24, 0x0D ; 13 + 6a: 8a 95 dec r24 + 6c: f1 f7 brne .-4 ; 0x6a + 6e: 00 00 nop + 70: c0 9a sbi 0x18, 0 ; 24 + 72: 78 94 sei + 74: 08 95 ret -0000006e : - 6e: 2d e0 ldi r18, 0x0D ; 13 - 70: 2a 95 dec r18 - 72: f1 f7 brne .-4 ; 0x70 - 74: 00 00 nop - 76: 98 e0 ldi r25, 0x08 ; 8 - 78: 0d c0 rjmp .+26 ; 0x94 - 7a: c0 98 cbi 0x18, 0 ; 24 - 7c: 86 95 lsr r24 - 7e: 2d e0 ldi r18, 0x0D ; 13 - 80: 2a 95 dec r18 - 82: f1 f7 brne .-4 ; 0x80 - 84: 00 00 nop - 86: c2 9a sbi 0x18, 2 ; 24 +00000076 : + 76: f8 94 cli + 78: 2d e0 ldi r18, 0x0D ; 13 + 7a: 2a 95 dec r18 + 7c: f1 f7 brne .-4 ; 0x7a + 7e: 00 00 nop + 80: 98 e0 ldi r25, 0x08 ; 8 + 82: 0d c0 rjmp .+26 ; 0x9e + 84: c0 98 cbi 0x18, 0 ; 24 + 86: 86 95 lsr r24 88: 2d e0 ldi r18, 0x0D ; 13 8a: 2a 95 dec r18 - 8c: f1 f7 brne .-4 ; 0x8a + 8c: f1 f7 brne .-4 ; 0x8a 8e: 00 00 nop - 90: 91 50 subi r25, 0x01 ; 1 - 92: 49 f0 breq .+18 ; 0xa6 - 94: c2 98 cbi 0x18, 2 ; 24 - 96: 2d e0 ldi r18, 0x0D ; 13 - 98: 2a 95 dec r18 - 9a: f1 f7 brne .-4 ; 0x98 - 9c: 00 00 nop - 9e: 80 ff sbrs r24, 0 - a0: ec cf rjmp .-40 ; 0x7a - a2: c0 9a sbi 0x18, 0 ; 24 - a4: eb cf rjmp .-42 ; 0x7c - a6: b8 98 cbi 0x17, 0 ; 23 - a8: c2 98 cbi 0x18, 2 ; 24 - aa: c0 9a sbi 0x18, 0 ; 24 - ac: 8d e0 ldi r24, 0x0D ; 13 - ae: 8a 95 dec r24 - b0: f1 f7 brne .-4 ; 0xae - b2: 00 00 nop - b4: 86 b3 in r24, 0x16 ; 22 - b6: c2 9a sbi 0x18, 2 ; 24 - b8: 9d e0 ldi r25, 0x0D ; 13 - ba: 9a 95 dec r25 - bc: f1 f7 brne .-4 ; 0xba - be: 00 00 nop - c0: c2 98 cbi 0x18, 2 ; 24 - c2: 2d e0 ldi r18, 0x0D ; 13 - c4: 2a 95 dec r18 - c6: f1 f7 brne .-4 ; 0xc4 + 90: c2 9a sbi 0x18, 2 ; 24 + 92: 2d e0 ldi r18, 0x0D ; 13 + 94: 2a 95 dec r18 + 96: f1 f7 brne .-4 ; 0x94 + 98: 00 00 nop + 9a: 91 50 subi r25, 0x01 ; 1 + 9c: 49 f0 breq .+18 ; 0xb0 + 9e: c2 98 cbi 0x18, 2 ; 24 + a0: 2d e0 ldi r18, 0x0D ; 13 + a2: 2a 95 dec r18 + a4: f1 f7 brne .-4 ; 0xa2 + a6: 00 00 nop + a8: 80 ff sbrs r24, 0 + aa: ec cf rjmp .-40 ; 0x84 + ac: c0 9a sbi 0x18, 0 ; 24 + ae: eb cf rjmp .-42 ; 0x86 + b0: b8 98 cbi 0x17, 0 ; 23 + b2: c2 98 cbi 0x18, 2 ; 24 + b4: c0 9a sbi 0x18, 0 ; 24 + b6: 8d e0 ldi r24, 0x0D ; 13 + b8: 8a 95 dec r24 + ba: f1 f7 brne .-4 ; 0xb8 + bc: 00 00 nop + be: 86 b3 in r24, 0x16 ; 22 + c0: c2 9a sbi 0x18, 2 ; 24 + c2: 9d e0 ldi r25, 0x0D ; 13 + c4: 9a 95 dec r25 + c6: f1 f7 brne .-4 ; 0xc4 c8: 00 00 nop - ca: b8 9a sbi 0x17, 0 ; 23 - cc: 80 95 com r24 - ce: 81 70 andi r24, 0x01 ; 1 - d0: 08 95 ret + ca: c2 98 cbi 0x18, 2 ; 24 + cc: 2d e0 ldi r18, 0x0D ; 13 + ce: 2a 95 dec r18 + d0: f1 f7 brne .-4 ; 0xce + d2: 00 00 nop + d4: b8 9a sbi 0x17, 0 ; 23 + d6: 78 94 sei + d8: 80 95 com r24 + da: 81 70 andi r24, 0x01 ; 1 + dc: 08 95 ret -000000d2 : - d2: cf 93 push r28 - d4: c8 2f mov r28, r24 - d6: b1 df rcall .-158 ; 0x3a - d8: 8c 2f mov r24, r28 - da: c9 df rcall .-110 ; 0x6e - dc: bb df rcall .-138 ; 0x54 - de: cf 91 pop r28 - e0: 08 95 ret +000000de : + de: cf 93 push r28 + e0: c8 2f mov r28, r24 + e2: ab df rcall .-170 ; 0x3a + e4: 8c 2f mov r24, r28 + e6: c7 df rcall .-114 ; 0x76 + e8: b7 df rcall .-146 ; 0x58 + ea: cf 91 pop r28 + ec: 08 95 ret -000000e2 : - e2: 97 b3 in r25, 0x17 ; 23 - e4: a1 e0 ldi r26, 0x01 ; 1 - e6: b0 e0 ldi r27, 0x00 ; 0 - e8: fd 01 movw r30, r26 - ea: 02 c0 rjmp .+4 ; 0xf0 - ec: ee 0f add r30, r30 - ee: ff 1f adc r31, r31 - f0: 8a 95 dec r24 - f2: e2 f7 brpl .-8 ; 0xec - f4: 02 c0 rjmp .+4 ; 0xfa - f6: aa 0f add r26, r26 - f8: bb 1f adc r27, r27 - fa: 6a 95 dec r22 - fc: e2 f7 brpl .-8 ; 0xf6 - fe: ea 2b or r30, r26 - 100: 9e 2b or r25, r30 - 102: 97 bb out 0x17, r25 ; 23 - 104: 88 b3 in r24, 0x18 ; 24 - 106: e0 95 com r30 - 108: e8 23 and r30, r24 - 10a: e8 bb out 0x18, r30 ; 24 - 10c: 84 2f mov r24, r20 - 10e: 80 68 ori r24, 0x80 ; 128 - 110: 82 2b or r24, r18 - 112: df df rcall .-66 ; 0xd2 - 114: 08 95 ret +000000ee : + ee: 97 b3 in r25, 0x17 ; 23 + f0: a1 e0 ldi r26, 0x01 ; 1 + f2: b0 e0 ldi r27, 0x00 ; 0 + f4: fd 01 movw r30, r26 + f6: 02 c0 rjmp .+4 ; 0xfc + f8: ee 0f add r30, r30 + fa: ff 1f adc r31, r31 + fc: 8a 95 dec r24 + fe: e2 f7 brpl .-8 ; 0xf8 + 100: 02 c0 rjmp .+4 ; 0x106 <__DATA_REGION_LENGTH__+0x6> + 102: aa 0f add r26, r26 + 104: bb 1f adc r27, r27 + 106: 6a 95 dec r22 + 108: e2 f7 brpl .-8 ; 0x102 <__DATA_REGION_LENGTH__+0x2> + 10a: ea 2b or r30, r26 + 10c: 9e 2b or r25, r30 + 10e: 97 bb out 0x17, r25 ; 23 + 110: 88 b3 in r24, 0x18 ; 24 + 112: e0 95 com r30 + 114: e8 23 and r30, r24 + 116: e8 bb out 0x18, r30 ; 24 + 118: 84 2f mov r24, r20 + 11a: 80 68 ori r24, 0x80 ; 128 + 11c: 82 2b or r24, r18 + 11e: df df rcall .-66 ; 0xde + 120: 08 95 ret -00000116 : - 116: cf 93 push r28 - 118: df 93 push r29 - 11a: c8 2f mov r28, r24 - 11c: d6 2f mov r29, r22 - 11e: 80 e4 ldi r24, 0x40 ; 64 - 120: d8 df rcall .-80 ; 0xd2 - 122: 8b df rcall .-234 ; 0x3a - 124: 8d 2f mov r24, r29 - 126: 80 6c ori r24, 0xC0 ; 192 - 128: a2 df rcall .-188 ; 0x6e - 12a: 8c 2f mov r24, r28 - 12c: a0 df rcall .-192 ; 0x6e - 12e: 92 df rcall .-220 ; 0x54 - 130: df 91 pop r29 - 132: cf 91 pop r28 - 134: 08 95 ret +00000122 : + 122: cf 93 push r28 + 124: df 93 push r29 + 126: c8 2f mov r28, r24 + 128: d6 2f mov r29, r22 + 12a: 80 e4 ldi r24, 0x40 ; 64 + 12c: d8 df rcall .-80 ; 0xde + 12e: 85 df rcall .-246 ; 0x3a + 130: 8d 2f mov r24, r29 + 132: 80 6c ori r24, 0xC0 ; 192 + 134: a0 df rcall .-192 ; 0x76 + 136: 8c 2f mov r24, r28 + 138: 9e df rcall .-196 ; 0x76 + 13a: 8e df rcall .-228 ; 0x58 + 13c: df 91 pop r29 + 13e: cf 91 pop r28 + 140: 08 95 ret -00000136 : - 136: 0f 93 push r16 - 138: 1f 93 push r17 - 13a: cf 93 push r28 - 13c: df 93 push r29 - 13e: ec 01 movw r28, r24 - 140: c8 3e cpi r28, 0xE8 ; 232 - 142: 83 e0 ldi r24, 0x03 ; 3 - 144: d8 07 cpc r29, r24 - 146: 10 f0 brcs .+4 ; 0x14c - 148: c7 ee ldi r28, 0xE7 ; 231 - 14a: d3 e0 ldi r29, 0x03 ; 3 - 14c: ce 01 movw r24, r28 - 14e: 64 e6 ldi r22, 0x64 ; 100 - 150: 70 e0 ldi r23, 0x00 ; 0 - 152: 3c d1 rcall .+632 ; 0x3cc <__udivmodhi4> - 154: cb 01 movw r24, r22 - 156: 0a e0 ldi r16, 0x0A ; 10 - 158: 10 e0 ldi r17, 0x00 ; 0 - 15a: b8 01 movw r22, r16 - 15c: 37 d1 rcall .+622 ; 0x3cc <__udivmodhi4> - 15e: 82 5e subi r24, 0xE2 ; 226 - 160: 9f 4f sbci r25, 0xFF ; 255 - 162: fc 01 movw r30, r24 - 164: 84 91 lpm r24, Z - 166: 60 e0 ldi r22, 0x00 ; 0 - 168: d6 df rcall .-84 ; 0x116 - 16a: ce 01 movw r24, r28 - 16c: b8 01 movw r22, r16 - 16e: 2e d1 rcall .+604 ; 0x3cc <__udivmodhi4> - 170: ec 01 movw r28, r24 - 172: cb 01 movw r24, r22 - 174: b8 01 movw r22, r16 - 176: 2a d1 rcall .+596 ; 0x3cc <__udivmodhi4> - 178: 82 5e subi r24, 0xE2 ; 226 - 17a: 9f 4f sbci r25, 0xFF ; 255 - 17c: fc 01 movw r30, r24 - 17e: 84 91 lpm r24, Z - 180: 61 e0 ldi r22, 0x01 ; 1 - 182: c9 df rcall .-110 ; 0x116 - 184: fe 01 movw r30, r28 - 186: e2 5e subi r30, 0xE2 ; 226 - 188: ff 4f sbci r31, 0xFF ; 255 - 18a: 84 91 lpm r24, Z - 18c: 62 e0 ldi r22, 0x02 ; 2 - 18e: c3 df rcall .-122 ; 0x116 - 190: df 91 pop r29 - 192: cf 91 pop r28 - 194: 1f 91 pop r17 - 196: 0f 91 pop r16 - 198: 08 95 ret +00000142 : + 142: 62 e0 ldi r22, 0x02 ; 2 + 144: 80 e4 ldi r24, 0x40 ; 64 + 146: ed df rcall .-38 ; 0x122 + 148: 61 e0 ldi r22, 0x01 ; 1 + 14a: 80 e4 ldi r24, 0x40 ; 64 + 14c: ea df rcall .-44 ; 0x122 + 14e: 60 e0 ldi r22, 0x00 ; 0 + 150: 80 e4 ldi r24, 0x40 ; 64 + 152: e7 df rcall .-50 ; 0x122 + 154: 08 95 ret -0000019a : - 19a: 28 e0 ldi r18, 0x08 ; 8 - 19c: 41 e0 ldi r20, 0x01 ; 1 - 19e: 62 e0 ldi r22, 0x02 ; 2 - 1a0: 80 e0 ldi r24, 0x00 ; 0 - 1a2: 9f df rcall .-194 ; 0xe2 - 1a4: 08 95 ret +00000156 : + 156: 21 e0 ldi r18, 0x01 ; 1 + 158: 8a 30 cpi r24, 0x0A ; 10 + 15a: 91 05 cpc r25, r1 + 15c: 50 f0 brcs .+20 ; 0x172 <__stack+0x13> + 15e: 21 e0 ldi r18, 0x01 ; 1 + 160: ea e0 ldi r30, 0x0A ; 10 + 162: f0 e0 ldi r31, 0x00 ; 0 + 164: bf 01 movw r22, r30 + 166: dd d1 rcall .+954 ; 0x522 <__udivmodhi4> + 168: cb 01 movw r24, r22 + 16a: 2f 5f subi r18, 0xFF ; 255 + 16c: 6a 30 cpi r22, 0x0A ; 10 + 16e: 71 05 cpc r23, r1 + 170: c8 f7 brcc .-14 ; 0x164 <__stack+0x5> + 172: 82 2f mov r24, r18 + 174: 08 95 ret -000001a6
: - 1a6: cf 93 push r28 - 1a8: df 93 push r29 - 1aa: cd b7 in r28, 0x3d ; 61 - 1ac: de b7 in r29, 0x3e ; 62 - 1ae: 63 97 sbiw r28, 0x13 ; 19 - 1b0: 0f b6 in r0, 0x3f ; 63 - 1b2: f8 94 cli - 1b4: de bf out 0x3e, r29 ; 62 - 1b6: 0f be out 0x3f, r0 ; 63 - 1b8: cd bf out 0x3d, r28 ; 61 - 1ba: ef df rcall .-34 ; 0x19a - 1bc: ce 01 movw r24, r28 - 1be: 09 96 adiw r24, 0x09 ; 9 - 1c0: 5f d0 rcall .+190 ; 0x280 - 1c2: ce 01 movw r24, r28 - 1c4: 01 96 adiw r24, 0x01 ; 1 - 1c6: b9 d0 rcall .+370 ; 0x33a - 1c8: 89 89 ldd r24, Y+17 ; 0x11 - 1ca: 9a 89 ldd r25, Y+18 ; 0x12 - 1cc: b4 df rcall .-152 ; 0x136 - 1ce: f9 cf rjmp .-14 ; 0x1c2 +00000176 : + 176: af 92 push r10 + 178: bf 92 push r11 + 17a: cf 92 push r12 + 17c: df 92 push r13 + 17e: ef 92 push r14 + 180: ff 92 push r15 + 182: 0f 93 push r16 + 184: 1f 93 push r17 + 186: cf 93 push r28 + 188: df 93 push r29 + 18a: 00 d0 rcall .+0 ; 0x18c + 18c: 1f 92 push r1 + 18e: cd b7 in r28, 0x3d ; 61 + 190: de b7 in r29, 0x3e ; 62 + 192: b6 2e mov r11, r22 + 194: f4 2e mov r15, r20 + 196: 00 97 sbiw r24, 0x00 ; 0 + 198: 49 f4 brne .+18 ; 0x1ac + 19a: 61 11 cpse r22, r1 + 19c: 3b c0 rjmp .+118 ; 0x214 + 19e: 8c 01 movw r16, r24 + 1a0: 88 3e cpi r24, 0xE8 ; 232 + 1a2: 93 40 sbci r25, 0x03 ; 3 + 1a4: 7c f0 brlt .+30 ; 0x1c4 + 1a6: 07 ee ldi r16, 0xE7 ; 231 + 1a8: 13 e0 ldi r17, 0x03 ; 3 + 1aa: 0c c0 rjmp .+24 ; 0x1c4 + 1ac: 8c 01 movw r16, r24 + 1ae: 88 3e cpi r24, 0xE8 ; 232 + 1b0: 23 e0 ldi r18, 0x03 ; 3 + 1b2: 92 07 cpc r25, r18 + 1b4: 14 f0 brlt .+4 ; 0x1ba + 1b6: 07 ee ldi r16, 0xE7 ; 231 + 1b8: 13 e0 ldi r17, 0x03 ; 3 + 1ba: 99 23 and r25, r25 + 1bc: 1c f4 brge .+6 ; 0x1c4 + 1be: 11 95 neg r17 + 1c0: 01 95 neg r16 + 1c2: 11 09 sbc r17, r1 + 1c4: c8 01 movw r24, r16 + 1c6: c7 df rcall .-114 ; 0x156 + 1c8: a8 2e mov r10, r24 + 1ca: 2a e0 ldi r18, 0x0A ; 10 + 1cc: 30 e0 ldi r19, 0x00 ; 0 + 1ce: c8 01 movw r24, r16 + 1d0: b9 01 movw r22, r18 + 1d2: bb d1 rcall .+886 ; 0x54a <__divmodhi4> + 1d4: 8b 83 std Y+3, r24 ; 0x03 + 1d6: cb 01 movw r24, r22 + 1d8: b9 01 movw r22, r18 + 1da: b7 d1 rcall .+878 ; 0x54a <__divmodhi4> + 1dc: 8a 83 std Y+2, r24 ; 0x02 + 1de: c8 01 movw r24, r16 + 1e0: 64 e6 ldi r22, 0x64 ; 100 + 1e2: 70 e0 ldi r23, 0x00 ; 0 + 1e4: b2 d1 rcall .+868 ; 0x54a <__divmodhi4> + 1e6: cb 01 movw r24, r22 + 1e8: b9 01 movw r22, r18 + 1ea: af d1 rcall .+862 ; 0x54a <__divmodhi4> + 1ec: 89 83 std Y+1, r24 ; 0x01 + 1ee: 31 e0 ldi r19, 0x01 ; 1 + 1f0: a3 16 cp r10, r19 + 1f2: 91 f0 breq .+36 ; 0x218 + 1f4: 83 e0 ldi r24, 0x03 ; 3 + 1f6: d8 2e mov r13, r24 + 1f8: da 18 sub r13, r10 + 1fa: 82 e0 ldi r24, 0x02 ; 2 + 1fc: 8d 15 cp r24, r13 + 1fe: a8 f1 brcs .+106 ; 0x26a + 200: 10 e0 ldi r17, 0x00 ; 0 + 202: 00 e0 ldi r16, 0x00 ; 0 + 204: c1 2c mov r12, r1 + 206: 82 e0 ldi r24, 0x02 ; 2 + 208: 90 e0 ldi r25, 0x00 ; 0 + 20a: 9c 01 movw r18, r24 + 20c: 2f 19 sub r18, r15 + 20e: 31 09 sbc r19, r1 + 210: 79 01 movw r14, r18 + 212: 18 c0 rjmp .+48 ; 0x244 + 214: 8c 01 movw r16, r24 + 216: d3 cf rjmp .-90 ; 0x1be + 218: da 2c mov r13, r10 + 21a: f2 cf rjmp .-28 ; 0x200 + 21c: e1 e0 ldi r30, 0x01 ; 1 + 21e: f0 e0 ldi r31, 0x00 ; 0 + 220: ec 0f add r30, r28 + 222: fd 1f adc r31, r29 + 224: ed 0d add r30, r13 + 226: f1 1d adc r31, r1 + 228: e0 81 ld r30, Z + 22a: f0 e0 ldi r31, 0x00 ; 0 + 22c: e2 5e subi r30, 0xE2 ; 226 + 22e: ff 4f sbci r31, 0xFF ; 255 + 230: 84 91 lpm r24, Z + 232: 6c 2d mov r22, r12 + 234: 76 df rcall .-276 ; 0x122 + 236: d3 94 inc r13 + 238: c3 94 inc r12 + 23a: 0f 5f subi r16, 0xFF ; 255 + 23c: 1f 4f sbci r17, 0xFF ; 255 + 23e: 82 e0 ldi r24, 0x02 ; 2 + 240: 8d 15 cp r24, r13 + 242: a0 f0 brcs .+40 ; 0x26c + 244: e0 16 cp r14, r16 + 246: f1 06 cpc r15, r17 + 248: 49 f7 brne .-46 ; 0x21c + 24a: 33 e0 ldi r19, 0x03 ; 3 + 24c: a3 16 cp r10, r19 + 24e: 31 f3 breq .-52 ; 0x21c + 250: e1 e0 ldi r30, 0x01 ; 1 + 252: f0 e0 ldi r31, 0x00 ; 0 + 254: ec 0f add r30, r28 + 256: fd 1f adc r31, r29 + 258: ed 0d add r30, r13 + 25a: f1 1d adc r31, r1 + 25c: e0 81 ld r30, Z + 25e: f0 e0 ldi r31, 0x00 ; 0 + 260: e2 5e subi r30, 0xE2 ; 226 + 262: ff 4f sbci r31, 0xFF ; 255 + 264: 84 91 lpm r24, Z + 266: 80 68 ori r24, 0x80 ; 128 + 268: e4 cf rjmp .-56 ; 0x232 + 26a: c1 2c mov r12, r1 + 26c: eb 2d mov r30, r11 + 26e: f0 e0 ldi r31, 0x00 ; 0 + 270: e2 5e subi r30, 0xE2 ; 226 + 272: ff 4f sbci r31, 0xFF ; 255 + 274: 84 91 lpm r24, Z + 276: 6c 2d mov r22, r12 + 278: 54 df rcall .-344 ; 0x122 + 27a: 0f 90 pop r0 + 27c: 0f 90 pop r0 + 27e: 0f 90 pop r0 + 280: df 91 pop r29 + 282: cf 91 pop r28 + 284: 1f 91 pop r17 + 286: 0f 91 pop r16 + 288: ff 90 pop r15 + 28a: ef 90 pop r14 + 28c: df 90 pop r13 + 28e: cf 90 pop r12 + 290: bf 90 pop r11 + 292: af 90 pop r10 + 294: 08 95 ret -000001d0 : - 1d0: f8 94 cli - 1d2: bc 9a sbi 0x17, 4 ; 23 - 1d4: 8f eb ldi r24, 0xBF ; 191 - 1d6: 93 e0 ldi r25, 0x03 ; 3 - 1d8: 01 97 sbiw r24, 0x01 ; 1 - 1da: f1 f7 brne .-4 ; 0x1d8 - 1dc: 00 c0 rjmp .+0 ; 0x1de - 1de: 00 00 nop - 1e0: bc 98 cbi 0x17, 4 ; 23 - 1e2: 9a eb ldi r25, 0xBA ; 186 - 1e4: 9a 95 dec r25 - 1e6: f1 f7 brne .-4 ; 0x1e4 - 1e8: 00 c0 rjmp .+0 ; 0x1ea - 1ea: 86 b3 in r24, 0x16 ; 22 - 1ec: e3 e3 ldi r30, 0x33 ; 51 - 1ee: f3 e0 ldi r31, 0x03 ; 3 - 1f0: 31 97 sbiw r30, 0x01 ; 1 - 1f2: f1 f7 brne .-4 ; 0x1f0 - 1f4: 00 c0 rjmp .+0 ; 0x1f6 - 1f6: 00 00 nop - 1f8: 78 94 sei - 1fa: 82 95 swap r24 - 1fc: 81 70 andi r24, 0x01 ; 1 - 1fe: 91 e0 ldi r25, 0x01 ; 1 - 200: 89 27 eor r24, r25 - 202: 08 95 ret +00000296
: + 296: cf 93 push r28 + 298: df 93 push r29 + 29a: cd b7 in r28, 0x3d ; 61 + 29c: de b7 in r29, 0x3e ; 62 + 29e: 64 97 sbiw r28, 0x14 ; 20 + 2a0: 0f b6 in r0, 0x3f ; 63 + 2a2: f8 94 cli + 2a4: de bf out 0x3e, r29 ; 62 + 2a6: 0f be out 0x3f, r0 ; 63 + 2a8: cd bf out 0x3d, r28 ; 61 + 2aa: 28 e0 ldi r18, 0x08 ; 8 + 2ac: 42 e0 ldi r20, 0x02 ; 2 + 2ae: 62 e0 ldi r22, 0x02 ; 2 + 2b0: 80 e0 ldi r24, 0x00 ; 0 + 2b2: 1d df rcall .-454 ; 0xee + 2b4: 46 df rcall .-372 ; 0x142 + 2b6: 04 e6 ldi r16, 0x64 ; 100 + 2b8: 10 e0 ldi r17, 0x00 ; 0 + 2ba: 01 c0 rjmp .+2 ; 0x2be + 2bc: 42 df rcall .-380 ; 0x142 + 2be: ce 01 movw r24, r28 + 2c0: 01 96 adiw r24, 0x01 ; 1 + 2c2: c3 d0 rcall .+390 ; 0x44a + 2c4: 81 11 cpse r24, r1 + 2c6: fa cf rjmp .-12 ; 0x2bc + 2c8: ce 01 movw r24, r28 + 2ca: 01 96 adiw r24, 0x01 ; 1 + 2cc: d1 d0 rcall .+418 ; 0x470 + 2ce: 8b 89 ldd r24, Y+19 ; 0x13 + 2d0: 9c 89 ldd r25, Y+20 ; 0x14 + 2d2: b8 01 movw r22, r16 + 2d4: 26 d1 rcall .+588 ; 0x522 <__udivmodhi4> + 2d6: 41 e0 ldi r20, 0x01 ; 1 + 2d8: 89 89 ldd r24, Y+17 ; 0x11 + 2da: 9a 89 ldd r25, Y+18 ; 0x12 + 2dc: 4c df rcall .-360 ; 0x176 + 2de: ef cf rjmp .-34 ; 0x2be -00000204 : - 204: 98 e0 ldi r25, 0x08 ; 8 - 206: 0d c0 rjmp .+26 ; 0x222 - 208: bc 9a sbi 0x17, 4 ; 23 - 20a: 20 ea ldi r18, 0xA0 ; 160 - 20c: 2a 95 dec r18 - 20e: f1 f7 brne .-4 ; 0x20c - 210: bc 98 cbi 0x17, 4 ; 23 - 212: 2a e1 ldi r18, 0x1A ; 26 - 214: 2a 95 dec r18 - 216: f1 f7 brne .-4 ; 0x214 - 218: 00 c0 rjmp .+0 ; 0x21a - 21a: 78 94 sei - 21c: 86 95 lsr r24 - 21e: 91 50 subi r25, 0x01 ; 1 - 220: 69 f0 breq .+26 ; 0x23c - 222: f8 94 cli - 224: 80 ff sbrs r24, 0 - 226: f0 cf rjmp .-32 ; 0x208 - 228: bc 9a sbi 0x17, 4 ; 23 - 22a: 20 e1 ldi r18, 0x10 ; 16 - 22c: 2a 95 dec r18 - 22e: f1 f7 brne .-4 ; 0x22c - 230: bc 98 cbi 0x17, 4 ; 23 - 232: 2a ea ldi r18, 0xAA ; 170 - 234: 2a 95 dec r18 - 236: f1 f7 brne .-4 ; 0x234 - 238: 00 c0 rjmp .+0 ; 0x23a - 23a: ef cf rjmp .-34 ; 0x21a - 23c: 08 95 ret +000002e0 : + 2e0: f8 94 cli + 2e2: bc 9a sbi 0x17, 4 ; 23 + 2e4: 8f eb ldi r24, 0xBF ; 191 + 2e6: 93 e0 ldi r25, 0x03 ; 3 + 2e8: 01 97 sbiw r24, 0x01 ; 1 + 2ea: f1 f7 brne .-4 ; 0x2e8 + 2ec: 00 c0 rjmp .+0 ; 0x2ee + 2ee: 00 00 nop + 2f0: bc 98 cbi 0x17, 4 ; 23 + 2f2: 9a eb ldi r25, 0xBA ; 186 + 2f4: 9a 95 dec r25 + 2f6: f1 f7 brne .-4 ; 0x2f4 + 2f8: 00 c0 rjmp .+0 ; 0x2fa + 2fa: 86 b3 in r24, 0x16 ; 22 + 2fc: e3 e3 ldi r30, 0x33 ; 51 + 2fe: f3 e0 ldi r31, 0x03 ; 3 + 300: 31 97 sbiw r30, 0x01 ; 1 + 302: f1 f7 brne .-4 ; 0x300 + 304: 00 c0 rjmp .+0 ; 0x306 + 306: 00 00 nop + 308: 78 94 sei + 30a: 82 95 swap r24 + 30c: 81 70 andi r24, 0x01 ; 1 + 30e: 91 e0 ldi r25, 0x01 ; 1 + 310: 89 27 eor r24, r25 + 312: 08 95 ret -0000023e : - 23e: 98 e0 ldi r25, 0x08 ; 8 - 240: 80 e0 ldi r24, 0x00 ; 0 - 242: 07 c0 rjmp .+14 ; 0x252 - 244: 22 e9 ldi r18, 0x92 ; 146 - 246: 2a 95 dec r18 - 248: f1 f7 brne .-4 ; 0x246 - 24a: 00 c0 rjmp .+0 ; 0x24c - 24c: 78 94 sei - 24e: 91 50 subi r25, 0x01 ; 1 - 250: 71 f0 breq .+28 ; 0x26e - 252: f8 94 cli - 254: 86 95 lsr r24 - 256: bc 9a sbi 0x17, 4 ; 23 - 258: 20 e1 ldi r18, 0x10 ; 16 - 25a: 2a 95 dec r18 - 25c: f1 f7 brne .-4 ; 0x25a - 25e: bc 98 cbi 0x17, 4 ; 23 - 260: 28 e1 ldi r18, 0x18 ; 24 - 262: 2a 95 dec r18 - 264: f1 f7 brne .-4 ; 0x262 - 266: b4 9b sbis 0x16, 4 ; 22 - 268: ed cf rjmp .-38 ; 0x244 - 26a: 80 68 ori r24, 0x80 ; 128 - 26c: eb cf rjmp .-42 ; 0x244 - 26e: 08 95 ret +00000314 : + 314: 98 e0 ldi r25, 0x08 ; 8 + 316: 0d c0 rjmp .+26 ; 0x332 + 318: bc 9a sbi 0x17, 4 ; 23 + 31a: 20 ea ldi r18, 0xA0 ; 160 + 31c: 2a 95 dec r18 + 31e: f1 f7 brne .-4 ; 0x31c + 320: bc 98 cbi 0x17, 4 ; 23 + 322: 2a e1 ldi r18, 0x1A ; 26 + 324: 2a 95 dec r18 + 326: f1 f7 brne .-4 ; 0x324 + 328: 00 c0 rjmp .+0 ; 0x32a + 32a: 78 94 sei + 32c: 86 95 lsr r24 + 32e: 91 50 subi r25, 0x01 ; 1 + 330: 69 f0 breq .+26 ; 0x34c + 332: f8 94 cli + 334: 80 ff sbrs r24, 0 + 336: f0 cf rjmp .-32 ; 0x318 + 338: bc 9a sbi 0x17, 4 ; 23 + 33a: 20 e1 ldi r18, 0x10 ; 16 + 33c: 2a 95 dec r18 + 33e: f1 f7 brne .-4 ; 0x33c + 340: bc 98 cbi 0x17, 4 ; 23 + 342: 2a ea ldi r18, 0xAA ; 170 + 344: 2a 95 dec r18 + 346: f1 f7 brne .-4 ; 0x344 + 348: 00 c0 rjmp .+0 ; 0x34a + 34a: ef cf rjmp .-34 ; 0x32a + 34c: 08 95 ret -00000270 : - 270: af df rcall .-162 ; 0x1d0 - 272: 81 11 cpse r24, r1 - 274: 01 c0 rjmp .+2 ; 0x278 - 276: 08 95 ret - 278: 8c ec ldi r24, 0xCC ; 204 - 27a: c4 df rcall .-120 ; 0x204 - 27c: 81 e0 ldi r24, 0x01 ; 1 - 27e: fb cf rjmp .-10 ; 0x276 +0000034e : + 34e: 98 e0 ldi r25, 0x08 ; 8 + 350: 80 e0 ldi r24, 0x00 ; 0 + 352: 07 c0 rjmp .+14 ; 0x362 + 354: 22 e9 ldi r18, 0x92 ; 146 + 356: 2a 95 dec r18 + 358: f1 f7 brne .-4 ; 0x356 + 35a: 00 c0 rjmp .+0 ; 0x35c + 35c: 78 94 sei + 35e: 91 50 subi r25, 0x01 ; 1 + 360: 71 f0 breq .+28 ; 0x37e + 362: f8 94 cli + 364: 86 95 lsr r24 + 366: bc 9a sbi 0x17, 4 ; 23 + 368: 20 e1 ldi r18, 0x10 ; 16 + 36a: 2a 95 dec r18 + 36c: f1 f7 brne .-4 ; 0x36a + 36e: bc 98 cbi 0x17, 4 ; 23 + 370: 28 e1 ldi r18, 0x18 ; 24 + 372: 2a 95 dec r18 + 374: f1 f7 brne .-4 ; 0x372 + 376: b4 9b sbis 0x16, 4 ; 22 + 378: ed cf rjmp .-38 ; 0x354 + 37a: 80 68 ori r24, 0x80 ; 128 + 37c: eb cf rjmp .-42 ; 0x354 + 37e: 08 95 ret -00000280 : - 280: 0f 93 push r16 - 282: 1f 93 push r17 - 284: cf 93 push r28 - 286: df 93 push r29 - 288: 8c 01 movw r16, r24 - 28a: a2 df rcall .-188 ; 0x1d0 - 28c: 81 11 cpse r24, r1 - 28e: 05 c0 rjmp .+10 ; 0x29a - 290: df 91 pop r29 - 292: cf 91 pop r28 - 294: 1f 91 pop r17 - 296: 0f 91 pop r16 - 298: 08 95 ret - 29a: 83 e3 ldi r24, 0x33 ; 51 - 29c: b3 df rcall .-154 ; 0x204 - 29e: e8 01 movw r28, r16 - 2a0: 08 5f subi r16, 0xF8 ; 248 - 2a2: 1f 4f sbci r17, 0xFF ; 255 - 2a4: cc df rcall .-104 ; 0x23e - 2a6: 89 93 st Y+, r24 - 2a8: c0 17 cp r28, r16 - 2aa: d1 07 cpc r29, r17 - 2ac: d9 f7 brne .-10 ; 0x2a4 - 2ae: 81 e0 ldi r24, 0x01 ; 1 - 2b0: ef cf rjmp .-34 ; 0x290 +00000380 : + 380: af df rcall .-162 ; 0x2e0 + 382: 81 11 cpse r24, r1 + 384: 01 c0 rjmp .+2 ; 0x388 + 386: 08 95 ret + 388: 8c ec ldi r24, 0xCC ; 204 + 38a: c4 df rcall .-120 ; 0x314 + 38c: 81 e0 ldi r24, 0x01 ; 1 + 38e: fb cf rjmp .-10 ; 0x386 -000002b2 : - 2b2: fc 01 movw r30, r24 - 2b4: 68 0f add r22, r24 - 2b6: 79 1f adc r23, r25 - 2b8: 80 e0 ldi r24, 0x00 ; 0 - 2ba: 2c e8 ldi r18, 0x8C ; 140 - 2bc: 0b c0 rjmp .+22 ; 0x2d4 - 2be: 86 95 lsr r24 - 2c0: 91 50 subi r25, 0x01 ; 1 - 2c2: 29 f0 breq .+10 ; 0x2ce - 2c4: 80 ff sbrs r24, 0 - 2c6: fb cf rjmp .-10 ; 0x2be - 2c8: 86 95 lsr r24 - 2ca: 82 27 eor r24, r18 - 2cc: f9 cf rjmp .-14 ; 0x2c0 - 2ce: e6 17 cp r30, r22 - 2d0: f7 07 cpc r31, r23 - 2d2: 21 f0 breq .+8 ; 0x2dc - 2d4: 91 91 ld r25, Z+ - 2d6: 89 27 eor r24, r25 - 2d8: 98 e0 ldi r25, 0x08 ; 8 - 2da: f4 cf rjmp .-24 ; 0x2c4 - 2dc: 08 95 ret +00000390 : + 390: 0f 93 push r16 + 392: 1f 93 push r17 + 394: cf 93 push r28 + 396: df 93 push r29 + 398: 8c 01 movw r16, r24 + 39a: a2 df rcall .-188 ; 0x2e0 + 39c: 81 11 cpse r24, r1 + 39e: 05 c0 rjmp .+10 ; 0x3aa + 3a0: df 91 pop r29 + 3a2: cf 91 pop r28 + 3a4: 1f 91 pop r17 + 3a6: 0f 91 pop r16 + 3a8: 08 95 ret + 3aa: 83 e3 ldi r24, 0x33 ; 51 + 3ac: b3 df rcall .-154 ; 0x314 + 3ae: e8 01 movw r28, r16 + 3b0: 08 5f subi r16, 0xF8 ; 248 + 3b2: 1f 4f sbci r17, 0xFF ; 255 + 3b4: cc df rcall .-104 ; 0x34e + 3b6: 89 93 st Y+, r24 + 3b8: c0 17 cp r28, r16 + 3ba: d1 07 cpc r29, r17 + 3bc: d9 f7 brne .-10 ; 0x3b4 + 3be: 81 e0 ldi r24, 0x01 ; 1 + 3c0: ef cf rjmp .-34 ; 0x3a0 -000002de : - 2de: ef 92 push r14 - 2e0: ff 92 push r15 - 2e2: 0f 93 push r16 - 2e4: 1f 93 push r17 - 2e6: cf 93 push r28 - 2e8: df 93 push r29 - 2ea: 7c 01 movw r14, r24 - 2ec: c1 df rcall .-126 ; 0x270 - 2ee: 8e eb ldi r24, 0xBE ; 190 - 2f0: 89 df rcall .-238 ; 0x204 - 2f2: e7 01 movw r28, r14 - 2f4: 87 01 movw r16, r14 - 2f6: 08 5f subi r16, 0xF8 ; 248 - 2f8: 1f 4f sbci r17, 0xFF ; 255 - 2fa: a1 df rcall .-190 ; 0x23e - 2fc: 89 93 st Y+, r24 - 2fe: c0 17 cp r28, r16 - 300: d1 07 cpc r29, r17 - 302: d9 f7 brne .-10 ; 0x2fa - 304: 68 e0 ldi r22, 0x08 ; 8 - 306: 70 e0 ldi r23, 0x00 ; 0 - 308: c7 01 movw r24, r14 - 30a: d3 df rcall .-90 ; 0x2b2 - 30c: c8 2f mov r28, r24 - 30e: 97 df rcall .-210 ; 0x23e - 310: 91 e0 ldi r25, 0x01 ; 1 - 312: c8 13 cpse r28, r24 - 314: 90 e0 ldi r25, 0x00 ; 0 - 316: 89 2f mov r24, r25 - 318: df 91 pop r29 - 31a: cf 91 pop r28 - 31c: 1f 91 pop r17 - 31e: 0f 91 pop r16 - 320: ff 90 pop r15 - 322: ef 90 pop r14 - 324: 08 95 ret +000003c2 : + 3c2: fc 01 movw r30, r24 + 3c4: 68 0f add r22, r24 + 3c6: 79 1f adc r23, r25 + 3c8: 80 e0 ldi r24, 0x00 ; 0 + 3ca: 2c e8 ldi r18, 0x8C ; 140 + 3cc: 0b c0 rjmp .+22 ; 0x3e4 + 3ce: 86 95 lsr r24 + 3d0: 91 50 subi r25, 0x01 ; 1 + 3d2: 29 f0 breq .+10 ; 0x3de + 3d4: 80 ff sbrs r24, 0 + 3d6: fb cf rjmp .-10 ; 0x3ce + 3d8: 86 95 lsr r24 + 3da: 82 27 eor r24, r18 + 3dc: f9 cf rjmp .-14 ; 0x3d0 + 3de: e6 17 cp r30, r22 + 3e0: f7 07 cpc r31, r23 + 3e2: 21 f0 breq .+8 ; 0x3ec + 3e4: 91 91 ld r25, Z+ + 3e6: 89 27 eor r24, r25 + 3e8: 98 e0 ldi r25, 0x08 ; 8 + 3ea: f4 cf rjmp .-24 ; 0x3d4 + 3ec: 08 95 ret -00000326 : - 326: 54 df rcall .-344 ; 0x1d0 - 328: 81 11 cpse r24, r1 - 32a: 01 c0 rjmp .+2 ; 0x32e - 32c: 08 95 ret - 32e: 8c ec ldi r24, 0xCC ; 204 - 330: 69 df rcall .-302 ; 0x204 - 332: 84 e4 ldi r24, 0x44 ; 68 - 334: 67 df rcall .-306 ; 0x204 - 336: 81 e0 ldi r24, 0x01 ; 1 - 338: f9 cf rjmp .-14 ; 0x32c +000003ee : + 3ee: ef 92 push r14 + 3f0: ff 92 push r15 + 3f2: 0f 93 push r16 + 3f4: 1f 93 push r17 + 3f6: cf 93 push r28 + 3f8: df 93 push r29 + 3fa: 7c 01 movw r14, r24 + 3fc: c1 df rcall .-126 ; 0x380 + 3fe: 8e eb ldi r24, 0xBE ; 190 + 400: 89 df rcall .-238 ; 0x314 + 402: e7 01 movw r28, r14 + 404: 87 01 movw r16, r14 + 406: 08 5f subi r16, 0xF8 ; 248 + 408: 1f 4f sbci r17, 0xFF ; 255 + 40a: a1 df rcall .-190 ; 0x34e + 40c: 89 93 st Y+, r24 + 40e: c0 17 cp r28, r16 + 410: d1 07 cpc r29, r17 + 412: d9 f7 brne .-10 ; 0x40a <__LOCK_REGION_LENGTH__+0xa> + 414: 68 e0 ldi r22, 0x08 ; 8 + 416: 70 e0 ldi r23, 0x00 ; 0 + 418: c7 01 movw r24, r14 + 41a: d3 df rcall .-90 ; 0x3c2 + 41c: c8 2f mov r28, r24 + 41e: 97 df rcall .-210 ; 0x34e + 420: 91 e0 ldi r25, 0x01 ; 1 + 422: c8 13 cpse r28, r24 + 424: 90 e0 ldi r25, 0x00 ; 0 + 426: 89 2f mov r24, r25 + 428: df 91 pop r29 + 42a: cf 91 pop r28 + 42c: 1f 91 pop r17 + 42e: 0f 91 pop r16 + 430: ff 90 pop r15 + 432: ef 90 pop r14 + 434: 08 95 ret -0000033a : - 33a: cf 93 push r28 - 33c: df 93 push r29 - 33e: ec 01 movw r28, r24 - 340: f2 df rcall .-28 ; 0x326 - 342: 81 11 cpse r24, r1 - 344: 03 c0 rjmp .+6 ; 0x34c - 346: df 91 pop r29 - 348: cf 91 pop r28 - 34a: 08 95 ret - 34c: 2f e7 ldi r18, 0x7F ; 127 - 34e: 8f e4 ldi r24, 0x4F ; 79 - 350: 92 e1 ldi r25, 0x12 ; 18 - 352: 21 50 subi r18, 0x01 ; 1 - 354: 80 40 sbci r24, 0x00 ; 0 - 356: 90 40 sbci r25, 0x00 ; 0 - 358: e1 f7 brne .-8 ; 0x352 - 35a: 00 c0 rjmp .+0 ; 0x35c - 35c: 00 00 nop - 35e: ce 01 movw r24, r28 - 360: be df rcall .-132 ; 0x2de - 362: 88 23 and r24, r24 - 364: 81 f3 breq .-32 ; 0x346 - 366: 88 81 ld r24, Y - 368: 49 81 ldd r20, Y+1 ; 0x01 - 36a: 54 2f mov r21, r20 - 36c: 48 2f mov r20, r24 - 36e: 9a 01 movw r18, r20 - 370: 33 23 and r19, r19 - 372: 4c f1 brlt .+82 ; 0x3c6 - 374: 35 95 asr r19 - 376: 27 95 ror r18 - 378: 35 95 asr r19 - 37a: 27 95 ror r18 - 37c: 35 95 asr r19 - 37e: 27 95 ror r18 - 380: 35 95 asr r19 - 382: 27 95 ror r18 - 384: 39 8b std Y+17, r19 ; 0x11 - 386: 28 8b std Y+16, r18 ; 0x10 - 388: 8f 70 andi r24, 0x0F ; 15 - 38a: 28 2f mov r18, r24 - 38c: 30 e0 ldi r19, 0x00 ; 0 - 38e: c9 01 movw r24, r18 - 390: 88 0f add r24, r24 - 392: 99 1f adc r25, r25 - 394: 82 0f add r24, r18 - 396: 93 1f adc r25, r19 - 398: ac 01 movw r20, r24 - 39a: 44 0f add r20, r20 - 39c: 55 1f adc r21, r21 - 39e: 42 95 swap r20 - 3a0: 52 95 swap r21 - 3a2: 50 7f andi r21, 0xF0 ; 240 - 3a4: 54 27 eor r21, r20 - 3a6: 40 7f andi r20, 0xF0 ; 240 - 3a8: 54 27 eor r21, r20 - 3aa: 84 0f add r24, r20 - 3ac: 95 1f adc r25, r21 - 3ae: 82 0f add r24, r18 - 3b0: 93 1f adc r25, r19 - 3b2: 95 95 asr r25 - 3b4: 87 95 ror r24 - 3b6: 95 95 asr r25 - 3b8: 87 95 ror r24 - 3ba: 95 95 asr r25 - 3bc: 87 95 ror r24 - 3be: 95 95 asr r25 - 3c0: 87 95 ror r24 - 3c2: 8a 8b std Y+18, r24 ; 0x12 - 3c4: c0 cf rjmp .-128 ; 0x346 - 3c6: 21 5f subi r18, 0xF1 ; 241 - 3c8: 3f 4f sbci r19, 0xFF ; 255 - 3ca: d4 cf rjmp .-88 ; 0x374 +00000436 : + 436: 54 df rcall .-344 ; 0x2e0 + 438: 81 11 cpse r24, r1 + 43a: 01 c0 rjmp .+2 ; 0x43e + 43c: 08 95 ret + 43e: 8c ec ldi r24, 0xCC ; 204 + 440: 69 df rcall .-302 ; 0x314 + 442: 84 e4 ldi r24, 0x44 ; 68 + 444: 67 df rcall .-306 ; 0x314 + 446: 81 e0 ldi r24, 0x01 ; 1 + 448: f9 cf rjmp .-14 ; 0x43c -000003cc <__udivmodhi4>: - 3cc: aa 1b sub r26, r26 - 3ce: bb 1b sub r27, r27 - 3d0: 51 e1 ldi r21, 0x11 ; 17 - 3d2: 07 c0 rjmp .+14 ; 0x3e2 <__udivmodhi4_ep> +0000044a : + 44a: cf 93 push r28 + 44c: df 93 push r29 + 44e: ec 01 movw r28, r24 + 450: 47 df rcall .-370 ; 0x2e0 + 452: 81 11 cpse r24, r1 + 454: 04 c0 rjmp .+8 ; 0x45e + 456: 81 e0 ldi r24, 0x01 ; 1 + 458: df 91 pop r29 + 45a: cf 91 pop r28 + 45c: 08 95 ret + 45e: ce 01 movw r24, r28 + 460: 08 96 adiw r24, 0x08 ; 8 + 462: 96 df rcall .-212 ; 0x390 + 464: 81 e0 ldi r24, 0x01 ; 1 + 466: 98 85 ldd r25, Y+8 ; 0x08 + 468: 98 32 cpi r25, 0x28 ; 40 + 46a: b1 f7 brne .-20 ; 0x458 + 46c: 80 e0 ldi r24, 0x00 ; 0 + 46e: f4 cf rjmp .-24 ; 0x458 -000003d4 <__udivmodhi4_loop>: - 3d4: aa 1f adc r26, r26 - 3d6: bb 1f adc r27, r27 - 3d8: a6 17 cp r26, r22 - 3da: b7 07 cpc r27, r23 - 3dc: 10 f0 brcs .+4 ; 0x3e2 <__udivmodhi4_ep> - 3de: a6 1b sub r26, r22 - 3e0: b7 0b sbc r27, r23 +00000470 : + 470: cf 93 push r28 + 472: df 93 push r29 + 474: ec 01 movw r28, r24 + 476: df df rcall .-66 ; 0x436 + 478: 81 11 cpse r24, r1 + 47a: 03 c0 rjmp .+6 ; 0x482 + 47c: df 91 pop r29 + 47e: cf 91 pop r28 + 480: 08 95 ret + 482: 2f e7 ldi r18, 0x7F ; 127 + 484: 8f e4 ldi r24, 0x4F ; 79 + 486: 92 e1 ldi r25, 0x12 ; 18 + 488: 21 50 subi r18, 0x01 ; 1 + 48a: 80 40 sbci r24, 0x00 ; 0 + 48c: 90 40 sbci r25, 0x00 ; 0 + 48e: e1 f7 brne .-8 ; 0x488 + 490: 00 c0 rjmp .+0 ; 0x492 + 492: 00 00 nop + 494: ce 01 movw r24, r28 + 496: ab df rcall .-170 ; 0x3ee + 498: 88 23 and r24, r24 + 49a: 81 f3 breq .-32 ; 0x47c + 49c: 29 81 ldd r18, Y+1 ; 0x01 + 49e: 38 81 ld r19, Y + 4a0: 52 2f mov r21, r18 + 4a2: 43 2f mov r20, r19 + 4a4: ca 01 movw r24, r20 + 4a6: 99 23 and r25, r25 + 4a8: bc f1 brlt .+110 ; 0x518 + 4aa: 95 95 asr r25 + 4ac: 87 95 ror r24 + 4ae: 95 95 asr r25 + 4b0: 87 95 ror r24 + 4b2: 95 95 asr r25 + 4b4: 87 95 ror r24 + 4b6: 95 95 asr r25 + 4b8: 87 95 ror r24 + 4ba: 99 8b std Y+17, r25 ; 0x11 + 4bc: 88 8b std Y+16, r24 ; 0x10 + 4be: 28 7f andi r18, 0xF8 ; 248 + 4c0: 11 f0 breq .+4 ; 0x4c6 + 4c2: 31 95 neg r19 + 4c4: 38 83 st Y, r19 + 4c6: 88 81 ld r24, Y + 4c8: 8f 70 andi r24, 0x0F ; 15 + 4ca: 28 2f mov r18, r24 + 4cc: 30 e0 ldi r19, 0x00 ; 0 + 4ce: c9 01 movw r24, r18 + 4d0: 88 0f add r24, r24 + 4d2: 99 1f adc r25, r25 + 4d4: 82 95 swap r24 + 4d6: 92 95 swap r25 + 4d8: 90 7f andi r25, 0xF0 ; 240 + 4da: 98 27 eor r25, r24 + 4dc: 80 7f andi r24, 0xF0 ; 240 + 4de: 98 27 eor r25, r24 + 4e0: 82 1b sub r24, r18 + 4e2: 93 0b sbc r25, r19 + 4e4: 88 0f add r24, r24 + 4e6: 99 1f adc r25, r25 + 4e8: 88 0f add r24, r24 + 4ea: 99 1f adc r25, r25 + 4ec: 82 0f add r24, r18 + 4ee: 93 1f adc r25, r19 + 4f0: 88 0f add r24, r24 + 4f2: 99 1f adc r25, r25 + 4f4: 88 0f add r24, r24 + 4f6: 99 1f adc r25, r25 + 4f8: 88 0f add r24, r24 + 4fa: 99 1f adc r25, r25 + 4fc: 9c 01 movw r18, r24 + 4fe: 99 23 and r25, r25 + 500: 6c f0 brlt .+26 ; 0x51c + 502: 35 95 asr r19 + 504: 27 95 ror r18 + 506: 35 95 asr r19 + 508: 27 95 ror r18 + 50a: 35 95 asr r19 + 50c: 27 95 ror r18 + 50e: 35 95 asr r19 + 510: 27 95 ror r18 + 512: 3b 8b std Y+19, r19 ; 0x13 + 514: 2a 8b std Y+18, r18 ; 0x12 + 516: b2 cf rjmp .-156 ; 0x47c + 518: 0f 96 adiw r24, 0x0f ; 15 + 51a: c7 cf rjmp .-114 ; 0x4aa + 51c: 21 5f subi r18, 0xF1 ; 241 + 51e: 3f 4f sbci r19, 0xFF ; 255 + 520: f0 cf rjmp .-32 ; 0x502 -000003e2 <__udivmodhi4_ep>: - 3e2: 88 1f adc r24, r24 - 3e4: 99 1f adc r25, r25 - 3e6: 5a 95 dec r21 - 3e8: a9 f7 brne .-22 ; 0x3d4 <__udivmodhi4_loop> - 3ea: 80 95 com r24 - 3ec: 90 95 com r25 - 3ee: bc 01 movw r22, r24 - 3f0: cd 01 movw r24, r26 - 3f2: 08 95 ret +00000522 <__udivmodhi4>: + 522: aa 1b sub r26, r26 + 524: bb 1b sub r27, r27 + 526: 51 e1 ldi r21, 0x11 ; 17 + 528: 07 c0 rjmp .+14 ; 0x538 <__udivmodhi4_ep> -000003f4 <_exit>: - 3f4: f8 94 cli +0000052a <__udivmodhi4_loop>: + 52a: aa 1f adc r26, r26 + 52c: bb 1f adc r27, r27 + 52e: a6 17 cp r26, r22 + 530: b7 07 cpc r27, r23 + 532: 10 f0 brcs .+4 ; 0x538 <__udivmodhi4_ep> + 534: a6 1b sub r26, r22 + 536: b7 0b sbc r27, r23 -000003f6 <__stop_program>: - 3f6: ff cf rjmp .-2 ; 0x3f6 <__stop_program> +00000538 <__udivmodhi4_ep>: + 538: 88 1f adc r24, r24 + 53a: 99 1f adc r25, r25 + 53c: 5a 95 dec r21 + 53e: a9 f7 brne .-22 ; 0x52a <__udivmodhi4_loop> + 540: 80 95 com r24 + 542: 90 95 com r25 + 544: bc 01 movw r22, r24 + 546: cd 01 movw r24, r26 + 548: 08 95 ret + +0000054a <__divmodhi4>: + 54a: 97 fb bst r25, 7 + 54c: 07 2e mov r0, r23 + 54e: 16 f4 brtc .+4 ; 0x554 <__divmodhi4+0xa> + 550: 00 94 com r0 + 552: 06 d0 rcall .+12 ; 0x560 <__divmodhi4_neg1> + 554: 77 fd sbrc r23, 7 + 556: 08 d0 rcall .+16 ; 0x568 <__divmodhi4_neg2> + 558: e4 df rcall .-56 ; 0x522 <__udivmodhi4> + 55a: 07 fc sbrc r0, 7 + 55c: 05 d0 rcall .+10 ; 0x568 <__divmodhi4_neg2> + 55e: 3e f4 brtc .+14 ; 0x56e <__divmodhi4_exit> + +00000560 <__divmodhi4_neg1>: + 560: 90 95 com r25 + 562: 81 95 neg r24 + 564: 9f 4f sbci r25, 0xFF ; 255 + 566: 08 95 ret + +00000568 <__divmodhi4_neg2>: + 568: 70 95 com r23 + 56a: 61 95 neg r22 + 56c: 7f 4f sbci r23, 0xFF ; 255 + +0000056e <__divmodhi4_exit>: + 56e: 08 95 ret + +00000570 <_exit>: + 570: f8 94 cli + +00000572 <__stop_program>: + 572: ff cf rjmp .-2 ; 0x572 <__stop_program> diff --git a/dist/default/production/attiny45v_thermometer.X.production.map b/dist/default/production/attiny45v_thermometer.X.production.map index ef55fe2..13012fa 100644 --- a/dist/default/production/attiny45v_thermometer.X.production.map +++ b/dist/default/production/attiny45v_thermometer.X.production.map @@ -2,6 +2,8 @@ Archive member included to satisfy reference by file (symbol) /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) build/default/production/main.o (__udivmodhi4) +/opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + build/default/production/main.o (__divmodhi4) /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o (exit) @@ -12,12 +14,16 @@ Discarded input sections .text 0x0000000000000000 0x0 build/default/production/main.o .data 0x0000000000000000 0x0 build/default/production/main.o .bss 0x0000000000000000 0x0 build/default/production/main.o + .text.TM1637_DisplayInt + 0x0000000000000000 0x86 build/default/production/main.o .text 0x0000000000000000 0x0 build/default/production/onewire.o .data 0x0000000000000000 0x0 build/default/production/onewire.o .bss 0x0000000000000000 0x0 build/default/production/onewire.o .text 0x0000000000000000 0x0 build/default/production/dstemperature.o .data 0x0000000000000000 0x0 build/default/production/dstemperature.o .bss 0x0000000000000000 0x0 build/default/production/dstemperature.o + .text.DallasTemp_WriteScratchpad + 0x0000000000000000 0x32 build/default/production/dstemperature.o .text 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) .data 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) .bss 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) @@ -32,6 +38,20 @@ Discarded input sections 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) .text.libgcc.fixed 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) + .text 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .data 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .bss 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .text.libgcc.mul + 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .text.libgcc 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .text.libgcc.prologue + 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .text.libgcc.builtins + 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .text.libgcc.fmul + 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .text.libgcc.fixed + 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) .text 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) .data 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) .bss 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) @@ -177,7 +197,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x0000000000000000 0x3f8 +.text 0x0000000000000000 0x574 *(.vectors) .vectors 0x0000000000000000 0x1e /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o 0x0000000000000000 __vectors @@ -252,66 +272,76 @@ END GROUP 0x000000000000003a . = ALIGN (0x2) *(.text.*) .text.TWI_Start - 0x000000000000003a 0x1a build/default/production/main.o + 0x000000000000003a 0x1e build/default/production/main.o 0x000000000000003a TWI_Start .text.TWI_Stop - 0x0000000000000054 0x1a build/default/production/main.o - 0x0000000000000054 TWI_Stop + 0x0000000000000058 0x1e build/default/production/main.o + 0x0000000000000058 TWI_Stop .text.TWI_WriteByte - 0x000000000000006e 0x64 build/default/production/main.o - 0x000000000000006e TWI_WriteByte + 0x0000000000000076 0x68 build/default/production/main.o + 0x0000000000000076 TWI_WriteByte .text.TM1637_WriteByte - 0x00000000000000d2 0x10 build/default/production/main.o - 0x00000000000000d2 TM1637_WriteByte + 0x00000000000000de 0x10 build/default/production/main.o + 0x00000000000000de TM1637_WriteByte .text.TM1637_Init - 0x00000000000000e2 0x34 build/default/production/main.o - 0x00000000000000e2 TM1637_Init + 0x00000000000000ee 0x34 build/default/production/main.o + 0x00000000000000ee TM1637_Init .text.TM1637_DisplaySymbol - 0x0000000000000116 0x20 build/default/production/main.o - 0x0000000000000116 TM1637_DisplaySymbol - .text.TM1637_DisplayUInt - 0x0000000000000136 0x64 build/default/production/main.o - 0x0000000000000136 TM1637_DisplayUInt - .text.MCU_Init - 0x000000000000019a 0xc build/default/production/main.o - 0x000000000000019a MCU_Init - .text.main 0x00000000000001a6 0x2a build/default/production/main.o - 0x00000000000001a6 main + 0x0000000000000122 0x20 build/default/production/main.o + 0x0000000000000122 TM1637_DisplaySymbol + .text.TM1637_DisplayLine + 0x0000000000000142 0x14 build/default/production/main.o + 0x0000000000000142 TM1637_DisplayLine + .text.get_int_length + 0x0000000000000156 0x20 build/default/production/main.o + 0x0000000000000156 get_int_length + .text.TM1637_DisplayFixedNum + 0x0000000000000176 0x120 build/default/production/main.o + 0x0000000000000176 TM1637_DisplayFixedNum + .text.main 0x0000000000000296 0x4a build/default/production/main.o + 0x0000000000000296 main .text.OneWire_Presence - 0x00000000000001d0 0x34 build/default/production/onewire.o - 0x00000000000001d0 OneWire_Presence + 0x00000000000002e0 0x34 build/default/production/onewire.o + 0x00000000000002e0 OneWire_Presence .text.OneWire_WriteByte - 0x0000000000000204 0x3a build/default/production/onewire.o - 0x0000000000000204 OneWire_WriteByte + 0x0000000000000314 0x3a build/default/production/onewire.o + 0x0000000000000314 OneWire_WriteByte .text.OneWire_ReadByte - 0x000000000000023e 0x32 build/default/production/onewire.o - 0x000000000000023e OneWire_ReadByte + 0x000000000000034e 0x32 build/default/production/onewire.o + 0x000000000000034e OneWire_ReadByte .text.OneWire_SkipROM - 0x0000000000000270 0x10 build/default/production/onewire.o - 0x0000000000000270 OneWire_SkipROM + 0x0000000000000380 0x10 build/default/production/onewire.o + 0x0000000000000380 OneWire_SkipROM .text.OneWire_ReadROM - 0x0000000000000280 0x32 build/default/production/onewire.o - 0x0000000000000280 OneWire_ReadROM + 0x0000000000000390 0x32 build/default/production/onewire.o + 0x0000000000000390 OneWire_ReadROM .text.OneWire_CRC8_Update - 0x00000000000002b2 0x2c build/default/production/onewire.o - 0x00000000000002b2 OneWire_CRC8_Update + 0x00000000000003c2 0x2c build/default/production/onewire.o + 0x00000000000003c2 OneWire_CRC8_Update .text.DallasTemp_ReadScratchpad - 0x00000000000002de 0x48 build/default/production/dstemperature.o - 0x00000000000002de DallasTemp_ReadScratchpad + 0x00000000000003ee 0x48 build/default/production/dstemperature.o + 0x00000000000003ee DallasTemp_ReadScratchpad .text.DallasTemp_Convert - 0x0000000000000326 0x14 build/default/production/dstemperature.o - 0x0000000000000326 DallasTemp_Convert + 0x0000000000000436 0x14 build/default/production/dstemperature.o + 0x0000000000000436 DallasTemp_Convert + .text.DallasTemp_CheckError + 0x000000000000044a 0x26 build/default/production/dstemperature.o + 0x000000000000044a DallasTemp_CheckError .text.DallasTemp_GetTemperature - 0x000000000000033a 0x92 build/default/production/dstemperature.o - 0x000000000000033a DallasTemp_GetTemperature + 0x0000000000000470 0xb2 build/default/production/dstemperature.o + 0x0000000000000470 DallasTemp_GetTemperature .text.libgcc.div - 0x00000000000003cc 0x28 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) - 0x00000000000003cc __udivmodhi4 - 0x00000000000003f4 . = ALIGN (0x2) + 0x0000000000000522 0x28 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) + 0x0000000000000522 __udivmodhi4 + .text.libgcc.div + 0x000000000000054a 0x26 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + 0x000000000000054a __divmodhi4 + 0x000000000000054a _div + 0x0000000000000570 . = ALIGN (0x2) *(.fini9) - .fini9 0x00000000000003f4 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) - 0x00000000000003f4 exit - 0x00000000000003f4 _exit + .fini9 0x0000000000000570 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) + 0x0000000000000570 exit + 0x0000000000000570 _exit *(.fini9) *(.fini8) *(.fini8) @@ -330,11 +360,11 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00000000000003f4 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) + .fini0 0x0000000000000570 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) *(.fini0) - 0x00000000000003f8 _etext = . + 0x0000000000000574 _etext = . -.data 0x0000000000800060 0x0 load address 0x00000000000003f8 +.data 0x0000000000800060 0x0 load address 0x0000000000000574 [!provide] PROVIDE (__data_start, .) *(.data) *(.data*) @@ -352,8 +382,8 @@ END GROUP *(.bss*) *(COMMON) [!provide] PROVIDE (__bss_end, .) - 0x00000000000003f8 __data_load_start = LOADADDR (.data) - 0x00000000000003f8 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x0000000000000574 __data_load_start = LOADADDR (.data) + 0x0000000000000574 __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x0000000000800060 0x0 [!provide] PROVIDE (__noinit_start, .) diff --git a/dstemperature.c b/dstemperature.c index 75f865a..8c686e6 100644 --- a/dstemperature.c +++ b/dstemperature.c @@ -16,6 +16,26 @@ uint8_t DallasTemp_ReadScratchpad(uint8_t *scratchpad) { return 1; } +void DallasTemp_WriteScratchpad(uint8_t *data) { + uint8_t i = 3; + + OneWire_SkipROM(); + OneWire_WriteByte(DS18B20_CMD_WSCRATCHPAD); + + do { + OneWire_WriteByte(*data++); + } while (--i); + + OneWire_Presence(); + + + // TODO вынести в отдельную функцию DallasTemp_CopyScratchpad + OneWire_SkipROM(); + OneWire_WriteByte(0x48); + + _delay_ms(10); +} + uint8_t DallasTemp_Convert(void) { if (!OneWire_Presence()) return 0; OneWire_WriteByte(ONE_WIRE_SKIPROM); @@ -23,10 +43,27 @@ uint8_t DallasTemp_Convert(void) { return 1; } +uint8_t DallasTemp_CheckError(DallasSensor* Sensor) { + if (!OneWire_Presence()) return 1; + OneWire_ReadROM(Sensor->ROM); + if (Sensor->ROM[0] != DS18B20_CONST_FAMILY_CODE) return 1; + return 0; +} + void DallasTemp_GetTemperature(DallasSensor *Sensor) { if (!DallasTemp_Convert()) return; - _delay_ms(750); + _delay_ms(750); // TODO задержку делать в зависимости от разрешения АЦП датчика if (!DallasTemp_ReadScratchpad(Sensor->SCRATCHPAD)) return; Sensor->TEMPERATURE = ((Sensor->SCRATCHPAD[1] << 8) | Sensor->SCRATCHPAD[0]) / 16; - Sensor->TEMPERATURE_FRACTION = ((Sensor->SCRATCHPAD[0] & 0x0f) * 100) / 16; + + /* + * Двойное дополнение для дробной части если минусовая температура: + * проверяем что последние пять битов в старшем байте температуры стоят в единице + */ + if (Sensor->SCRATCHPAD[1] & 0xf8) Sensor->SCRATCHPAD[0] = -Sensor->SCRATCHPAD[0]; + + /** + * Получаем дробную часть через битовую маску 0x0f, умножаем для получения точности. + */ + Sensor->TEMPERATURE_FRACTION = ((Sensor->SCRATCHPAD[0] & 0x0f) * 1000) / 16; } \ No newline at end of file diff --git a/dstemperature.h b/dstemperature.h index 9ec9ea6..89419af 100644 --- a/dstemperature.h +++ b/dstemperature.h @@ -1,18 +1,22 @@ #include "onewire.h" -#define DS18B20_CMD_CONVERTTEMP 0x44 -#define DS18B20_CMD_RSCRATCHPAD 0xbe +#define DS18B20_CMD_CONVERTTEMP 0x44 +#define DS18B20_CMD_RSCRATCHPAD 0xbe +#define DS18B20_CMD_WSCRATCHPAD 0x4e +#define DS18B20_CONST_FAMILY_CODE 0x28 #ifndef DSTEMPERATURE_H #define DSTEMPERATURE_H typedef struct DallasSensor { - uint8_t SCRATCHPAD[8]; // ОЗУ - uint8_t ROM[8]; // ПЗУ - int16_t TEMPERATURE; // Температура в градусах цельсия (целая часть) - uint8_t TEMPERATURE_FRACTION; // Дробная часть + uint8_t SCRATCHPAD[8]; // ОЗУ (T_LSB, T_MSB, TH/USER BYTE 1, TH/USER BYTE 2, CONFIG, RESERVED, RESERVED, RESERVED, CRC8) + uint8_t ROM[8]; // ПЗУ (код семейства, серийный код, CRC8) + int16_t TEMPERATURE; // Температура в градусах цельсия (целая часть) + uint16_t TEMPERATURE_FRACTION; // Дробная часть } DallasSensor; +// TODO сделать функию установки разрешения АЦП датчика + /** * Читает ОЗУ датчика * @param scratchpad - первые 8 байт. @@ -20,6 +24,12 @@ typedef struct DallasSensor { */ uint8_t DallasTemp_ReadScratchpad(uint8_t *scratchpad); +/** + * Записывает данные в ОЗУ датчика + * @param data - 3 байта + */ +void DallasTemp_WriteScratchpad(uint8_t *data); + /** * Отправляет команду для оцифровки температуры. * @return "1" - если команда отправлена, "0" - если не было ответа от датчика @@ -28,9 +38,16 @@ uint8_t DallasTemp_Convert(void); /** * Получает оцифрованное значение датчика и конвертирует занчение в читаемый вид. - * @param Sensor - структура датчика + * @param Sensor - датчика */ void DallasTemp_GetTemperature(DallasSensor *Sensor); +/** + * Читает семейный код датчика и проверяет его правильность + * @param Sensor - датчик + * @return Возвращает "1" если имеются проблемы с датчиком иначе "0" + */ +uint8_t DallasTemp_CheckError(DallasSensor *Sensor); + #endif /* DSTEMPERATURE_H */ diff --git a/main.c b/main.c index 0856306..291e493 100644 --- a/main.c +++ b/main.c @@ -41,6 +41,14 @@ #define TM1637_DISP_OFF 0x00 // Display off #define TM1637_DISP_ON 0x08 // Display on +#define TM1637_BRIGHTNESS_1 1 +#define TM1637_BRIGHTNESS_2 2 +#define TM1637_BRIGHTNESS_3 3 +#define TM1637_BRIGHTNESS_4 4 +#define TM1637_BRIGHTNESS_5 5 +#define TM1637_BRIGHTNESS_6 6 +#define TM1637_BRIGHTNESS_7 7 + #define dio_high() (PORT_TWI |= (_BV(PORT_TWI_DIO))) #define dio_low() (PORT_TWI &= (~_BV(PORT_TWI_DIO))) #define dio_input() (DDR_TWI &= (~_BV(PORT_TWI_DIO))) @@ -48,6 +56,8 @@ #define clk_high() (PORT_TWI |= (_BV(PORT_TWI_CLK))) #define clk_low() (PORT_TWI &= (~_BV(PORT_TWI_CLK))) +#define get_symbol(index) (pgm_read_byte_near(&display_symbols[index])) + static const uint8_t display_symbols[] PROGMEM = { 0x3F, // 0 @@ -59,31 +69,37 @@ static const uint8_t display_symbols[] PROGMEM = 0x7D, // 6 0x07, // 7 0x7F, // 8 - 0x6F // 9 + 0x6F, // 9 }; void TWI_Start(void) { + cli(); dio_high(); clk_high(); _delay_us(TWI_DELAY); dio_low(); _delay_us(TWI_DELAY); clk_low(); + sei(); } void TWI_Stop(void) { + cli(); clk_low(); dio_low(); _delay_us(TWI_DELAY); clk_high(); _delay_us(TWI_DELAY); dio_high(); + sei(); } uint8_t TWI_WriteByte(uint8_t byte) { uint8_t i = 8; uint8_t ack = 0; + cli(); + _delay_us(TWI_DELAY); do { @@ -109,6 +125,8 @@ uint8_t TWI_WriteByte(uint8_t byte) { _delay_us(TWI_DELAY); dio_output(); + sei(); + return ack; } @@ -132,36 +150,105 @@ void TM1637_DisplaySymbol(uint8_t symbol, uint8_t pos) { TWI_Stop(); } -void TM1637_DisplayUInt(uint16_t num) { - uint16_t tmp = num > 999 ? 999 : num; - uint8_t digits[TM1637_DIGITS_COUNT]; +void TM1637_DisplayLine(void) { uint8_t i = TM1637_DIGITS_COUNT; - do { - digits[i - 1] = tmp % 10; - tmp /= 10; + TM1637_DisplaySymbol(0x40, i - 1); } while (--i); - - - TM1637_DisplaySymbol(pgm_read_byte_near(&display_symbols[digits[0]]), 0); - TM1637_DisplaySymbol(pgm_read_byte_near(&display_symbols[digits[1]]), 1); - TM1637_DisplaySymbol(pgm_read_byte_near(&display_symbols[digits[2]]), 2); } -void MCU_Init(void) { - TM1637_Init(PORT_TWI_DIO, PORT_TWI_CLK, 1, TM1637_DISP_ON); +void TM1637_DisplayInt(int16_t num) { + uint8_t is_signed = num < 0; + int16_t tmp = num > 999 ? 999 : num; + uint8_t i = TM1637_DIGITS_COUNT; + + if (is_signed) { + tmp = -tmp; + TM1637_DisplaySymbol(0x40, 0); // sign symbol + } + + do { + if (is_signed && i == 1) break; + TM1637_DisplaySymbol(pgm_read_byte_near(&display_symbols[tmp % 10]), i - 1); + tmp /= 10; + } while (--i); +} + +uint8_t get_int_length(uint16_t num) { + uint8_t l = 1; + while (num > 9) { + num /= 10; + l++; + } + return l; +} + + +// TODO сделать отображение минусовой температуры для этой функции +void TM1637_DisplayFixedNum(int16_t num, uint8_t frac, uint8_t presicion) { + uint8_t is_signed = (num < 0) | (num == 0 && frac > 0); + num = num > 999 ? 999 : num; + + if (is_signed) { + num = -num; + } + + uint8_t length = get_int_length(num); + uint8_t i = TM1637_DIGITS_COUNT, j = 0; + uint8_t buffer[TM1637_DIGITS_COUNT]; + + do { + buffer[i - 1] = num % 10; + num /= 10; + } while (--i); + + if (length != 1) { + i = TM1637_DIGITS_COUNT - length; + } else { + i = 1; + } + + while (i < TM1637_DIGITS_COUNT) { +// if (j == 0) { +//// if (is_signed) { +//// TM1637_DisplaySymbol(0x40, 0); +//// } +// i++; +// j++; +// continue; +// } + TM1637_DisplaySymbol( + (j == TM1637_DIGITS_COUNT - 1 - presicion && TM1637_DIGITS_COUNT != length) + ? get_symbol(buffer[i]) | 0x80 // точка + : get_symbol(buffer[i]), + j); + i++; + j++; + } + + TM1637_DisplaySymbol(get_symbol(frac), j); } int main(void) { - MCU_Init(); - DallasSensor Sensor_01; - OneWire_ReadROM(Sensor_01.ROM); - + TM1637_Init(PORT_TWI_DIO, PORT_TWI_CLK, TM1637_BRIGHTNESS_2, TM1637_DISP_ON); + TM1637_DisplayLine(); + while (1) { + /** + * Проверка датчика + */ + if (DallasTemp_CheckError(&Sensor_01)) { + TM1637_DisplayLine(); + continue; + } + + /** + * Получение температуры и вывод на индикатор + */ DallasTemp_GetTemperature(&Sensor_01); - TM1637_DisplayUInt(Sensor_01.TEMPERATURE); + TM1637_DisplayFixedNum(Sensor_01.TEMPERATURE, Sensor_01.TEMPERATURE_FRACTION / 100, 1); } return 0; } \ No newline at end of file diff --git a/nbproject/Makefile-genesis.properties b/nbproject/Makefile-genesis.properties index 9132fc5..836de58 100644 --- a/nbproject/Makefile-genesis.properties +++ b/nbproject/Makefile-genesis.properties @@ -1,11 +1,11 @@ # -#Thu Aug 03 22:47:35 MSK 2023 +#Fri Aug 04 08:31:18 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 conf.ids=default default.languagetoolchain.dir=/opt/avr8-gnu-toolchain-linux_x86_64/bin -host.id=1f9t-t7j1-aq +host.id=256x-epq9-v8 configurations-xml=5516afcd622aad1c1ae6784dba5612d3 default.com-microchip-mplab-mdbcore-snap-SnapToolImpl.md5=eaa336cefb7fc46db8b50b7b2b6e54ca com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=6e02ca5e9f5042ffd365b42ab82d3a9b diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml index 887f767..3431ac4 100644 --- a/nbproject/private/private.xml +++ b/nbproject/private/private.xml @@ -6,7 +6,6 @@ file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/onewire.c file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/dstemperature.h file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/main.c - file:/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay.h file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/dstemperature.c diff --git a/onewire.h b/onewire.h index 2835d7b..d35f2d6 100644 --- a/onewire.h +++ b/onewire.h @@ -19,11 +19,44 @@ #ifndef ONEWIRE_H #define ONEWIRE_H +/** + * + * @return + */ uint8_t OneWire_Presence(void); + +/** + * + * @param byte + */ void OneWire_WriteByte(uint8_t byte); + +/** + * + * @return + */ uint8_t OneWire_ReadByte(); + +/** + * + * @return + */ uint8_t OneWire_SkipROM(); + +/** + * Читает ПЗУ подчиненного устройства. + * Использовать только если на шине одно подчиненной устройство! + * @param buffer - куда складывать данные + * @return "1" - если успешно прочиталось, "0" - если устройство не ответило + */ uint8_t OneWire_ReadROM(uint8_t *buffer); + +/** + * + * @param buffer + * @param len + * @return + */ uint8_t OneWire_CRC8_Update(uint8_t *buffer, size_t len); #endif /* ONEWIRE_H */