diff --git a/USBLaminator/USBLaminator.atsuo b/USBLaminator/USBLaminator.atsuo index a383263..fa1d770 100644 Binary files a/USBLaminator/USBLaminator.atsuo and b/USBLaminator/USBLaminator.atsuo differ diff --git a/USBLaminator/USBLaminator/Debug/USBLaminator.elf b/USBLaminator/USBLaminator/Debug/USBLaminator.elf index 1298848..c7d6f1e 100644 Binary files a/USBLaminator/USBLaminator/Debug/USBLaminator.elf and b/USBLaminator/USBLaminator/Debug/USBLaminator.elf differ diff --git a/USBLaminator/USBLaminator/Debug/USBLaminator.hex b/USBLaminator/USBLaminator/Debug/USBLaminator.hex index 9e8c45f..695faad 100644 --- a/USBLaminator/USBLaminator/Debug/USBLaminator.hex +++ b/USBLaminator/USBLaminator/Debug/USBLaminator.hex @@ -1,5 +1,5 @@ -:100000000C94A8000C9434050C94D0000C94D000EF -:100010000C94D0000C94D0000C94B0040C94D0003C +:100000000C94A8000C9494050C94D0000C94D0008F +:100010000C94D0000C94D0000C9410050C94D000DB :100020000C94D0000C94D0000C94D0000C94D00010 :100030000C94D0000C94D0000C94D0000C94D00000 :100040000C94D0000C94D0000C94D0000C94D000F0 @@ -18,12 +18,12 @@ :100110004E0A000000C80C333333330F986E12833D :100120001141EF8D2114893BE65516CFFEE6DB1811 :10013000D1844B381BF77C1D901DA4BBE4242032D6 -:1001400084725E228100C9F124ECA1E53D27AB0554 +:1001400084725E228100C9F124ECA1E53D270906F5 :1001500011241FBECFE5D4E0DEBFCDBF11E0A0E685 -:10016000B0E0E0E6F4E102C005900D92A639B107D7 +:10016000B0E0ECEEF5E102C005900D92A639B107C2 :10017000D9F721E0A6E9B1E001C01D92A23DB20786 :10018000E1F711E0C0E5D1E004C02297FE010E9432 -:100190008E07CE34D107C9F70E94DD010C942E0AD8 +:100190004008CE34D107C9F70E94DD010C94F40A5F :1001A0000C940000CF93C49ABC9AAA98A29AAB98D8 :1001B000A39AAC98A49AAD98A59AAE98A69AAF982F :1001C000A79AE1E9F0E083E2C39ABB9A5D9BFECF78 @@ -58,290 +58,315 @@ :10039000BB9AEFE3F1E083E2C9CF379A2FEF81EE0A :1003A00094E0215080409040E1F700C00000ECE470 :1003B000F1E083E2C6CFCF910895CF93DF93CDB71D -:1003C000DEB7A9970FB6F894DEBF0FBECDBF0E946F -:1003D000D20029E130E039A728A787B1887F87B903 +:1003C000DEB7AB970FB6F894DEBF0FBECDBF0E946D +:1003D000D20024E130E039A728A787B1887F87B908 :1003E00087B187B935E33A95F1F70000369A349B27 :1003F000FECFA4B0B5B087B1887F87B9389A85E3BE :100400008A95F1F70000369A349BFECF84B095B000 -:10041000E7E9F1E020803180E9E9F1E00081118134 -:10042000EBE9F1E0808191819101281B390BC90131 -:10043000EDE9F1E020813181B801621B730B0E946C -:10044000780780E090E00E945F06C62ED72EE82E47 -:10045000F92E462E572E682E792EB50180E090E0B9 -:100460000E945F069B01AC016C2D7D2D8E2D9F2D72 -:100470000E9415076B017C0177FA709477F87094ED -:10048000B80180E090E00E945F069B01AC01C301CF -:10049000B2010E9415079B01AC01C701B6010E9481 -:1004A000CB056B017C01B10180E090E00E945F060A -:1004B0009B01AC01C701B6010E94CB056AA37BA3D7 -:1004C0008CA39DA3EFE9F1E020803180E1EAF1E027 -:1004D00000811181E3EAF1E0808191819101281B83 -:1004E000390BC901E5EAF1E020813181B801621BD5 -:1004F000730B0E94780780E090E00E945F06C62E92 -:10050000D72EE82EF92E462E572E682E792EB401BE -:1005100080E090E00E945F069B01AC016C2D7D2D78 -:100520008E2D9F2D0E9415076B017C0177FA709428 -:1005300077F87094B80180E090E00E945F069B011C -:10054000AC01C301B2010E9415079B01AC01C701B8 -:10055000B6010E94CB056B017C01B10180E090E007 -:100560000E945F069B01AC01C701B6010E94CB054A -:100570006EA37FA3D82EC92E762F6FA1272F362FDB -:100580004D2D5C2DBAA1ABA1FCA1EDA16B2F7A2F53 -:100590008F2F9E2F0E94CB0520E030E040E05FE3EC -:1005A0000E941507762E672E582E492EE8ECF1E0B2 -:1005B000808191812FEF3FEF318320838F3F3FEF89 -:1005C000930711F099A788A768A579A56B5F7F4F5E -:1005D000882777FD8095982F0E946106272D362D5C -:1005E000452D542D0E94CA05F62EE72E382E292EB1 -:1005F00020E030E0A9010E942F0688230CF499C165 -:1006000020E030E040EA51E46F2D7E2D832D922DC5 -:100610000E94110718160CF491C17F2D6E2D932D99 -:10062000822D90C1C39ABB9A5D9BFECF8CB9C398B3 -:10063000BB9A81918111F6CF8E01095E1F4F22E096 -:100640004AE06F2D7E2D832D922D0E949207FC0192 -:100650002081222359F03196C39ABB9A5D9BFECF2D -:100660002CB9C398BB9A21912111F6CFC39ABB9A9A -:100670005D9BFECF8BE38CB9C398BB9A0F2EFAE635 -:10068000EF2EF1E0FF2EF02DF70183E6C39ABB9A1F -:100690005D9BFECF8CB9C398BB9A81918111F6CF37 -:1006A000B4016A0D7B1D80E090E00E945F0620E0AF -:1006B00030E040E05FE30E9415078E01045F1F4FAA -:1006C00022E04AE00E949207FC012081222359F097 -:1006D0003196C39ABB9A5D9BFECF2CB9C398BB9A47 -:1006E00021912111F6CFC39ABB9A5D9BFECF8BE37C -:1006F0008CB9C398BB9AEEE6F1E086E7C39ABB9A41 -:100700005D9BFECF8CB9C398BB9A81918111F6CFC6 -:100710004AE050E0BE01645F7F4FC5010E94B3070D -:10072000FC012081222359F03196C39ABB9A5D9B2C -:10073000FECF2CB9C398BB9A21912111F6CFC39A51 -:10074000BB9A5D9BFECF8BE38CB9C398BB9AE2E763 -:10075000F1E086E7C39ABB9A5D9BFECF8CB9C39844 -:10076000BB9A81918111F6CF4AE050E0BE01645FEF -:100770007F4FC4010E94B307FC012081222359F05E -:100780003196C39ABB9A5D9BFECF2CB9C398BB9A96 -:1007900021912111F6CFC39ABB9A5D9BFECF8BE3CB -:1007A0008CB9C398BB9A83E6F701C39ABB9A5D9B49 -:1007B000FECF8CB9C398BB9A81918111F6CF8E017F -:1007C0000F5F1F4F22E04AE0672D762D852D942D77 -:1007D0000E949207FC012081222359F03196C39A8E -:1007E000BB9A5D9BFECF2CB9C398BB9A2191211176 -:1007F000F6CFC39ABB9A5D9BFECF8BE38CB9C398AF -:10080000BB9AE6E7F1E083E6C39ABB9A5D9BFECF15 -:100810008CB9C398BB9A81918111F6CF8E010F5F7D -:100820001F4F22E04AE0FAA1EBA15CA13DA16F2F8E -:100830007E2F852F932F0E949207FC012081222377 +:1004100099EEA91693E0B90668F4E9EE8E16E3E0CA +:100420009E0640F4F5E0AF16B10420F025E08216F8 +:10043000910478F4C49ABC9A1092CC011092CD0128 +:100440001092CE011092CF011092D0011092D101E2 +:10045000FFCFE7E9F1E06081718180E090E00E94E8 +:1004600025076AA37BA38CA39DA3E9E9F1E0608142 +:10047000718180E090E00E942507262E372E082FFC +:10048000192FEBE9F1E06081718180E090E00E943A +:1004900025079B01AC01BAA1ABA1FCA1EDA16B2F7B +:1004A0007A2F8F2F9E2F0E9428066B017C01EDE989 +:1004B000F1E06081718180E090E00E9425079B015E +:1004C000AC01622D732D802F912F0E9428069B0175 +:1004D000AC01C701B6010E949106D62EC72EE82EA8 +:1004E000F92E462E572E682E792EB50180E090E029 +:1004F0000E9425079B01AC016D2D7C2D8E2D9F2D1B +:100500000E94DB076B017C01A30192015058622D10 +:10051000732D802F912F0E94DB079B01AC01C70137 +:10052000B6010E9429069B01AC01BAA1ABA1FCA1B6 +:10053000EDA16B2F7A2F8F2F9E2F0E9429066AA381 +:100540007BA38CA39DA3EFE9F1E06081718180E042 +:1005500090E00E9425076EA37FA38AA79BA7E1EAEC +:10056000F1E06081718180E090E00E942507262EF5 +:10057000372E082F192FE3EAF1E06081718180E0C6 +:1005800090E00E9425079B01AC01BEA1AFA1FAA596 +:10059000EBA56B2F7A2F8F2F9E2F0E9428066B01C1 +:1005A0007C01E5EAF1E06081718180E090E00E94E9 +:1005B00025079B01AC01622D732D802F912F0E9486 +:1005C00028069B01AC01C701B6010E949106D62EF8 +:1005D000C72EE82EF92E462E572E682E792EB401FE +:1005E00080E090E00E9425079B01AC016D2D7C2DE1 +:1005F0008E2D9F2D0E94DB076B017C01A3019201D0 +:100600005058622D732D802F912F0E94DB079B0184 +:10061000AC01C701B6010E9429069B01AC01BEA135 +:10062000AFA1FAA5EBA56B2F7A2F8F2F9E2F0E94DB +:1006300029066EA37FA3D82EC92E762F6FA1272F50 +:10064000362F4D2D5C2DBAA1ABA1FCA1EDA16B2FD6 +:100650007A2F8F2F9E2F0E94290620E030E040E065 +:100660005FE30E94DB07762E672E582E492EE8ECBA +:10067000F1E0808191812FEF3FEF318320838F3F25 +:100680003FEF930711F099A788A768A579A56B5F3D +:100690007F4F882777FD8095982F0E942707272D69 +:1006A000362D452D542D0E942806F62EE72E382E85 +:1006B000292E20E030E0A9010E948D0688230CF449 +:1006C00099C120E030E040EA51E46F2D7E2D832D6A +:1006D000922D0E94D70718160CF491C13F2D2E2D94 +:1006E000932D822D90C1C39ABB9A5D9BFECF8CB98E +:1006F000C398BB9A81918111F6CF8E01095E1F4F7D +:1007000022E04AE06F2D7E2D832D922D0E94440819 +:10071000FC012081222359F03196C39ABB9A5D9B3C +:10072000FECF2CB9C398BB9A21912111F6CFC39A61 +:10073000BB9A5D9BFECF8BE38CB9C398BB9A0F2EFF +:10074000FAE6EF2EF1E0FF2EF02DF70183E6C39AD3 +:10075000BB9A5D9BFECF8CB9C398BB9A81918111E6 +:10076000F6CFB4016A0D7B1D80E090E00E94250762 +:1007700020E030E040E05FE30E94DB078E01045F91 +:100780001F4F22E04AE00E944408FC0120812223FE +:1007900059F03196C39ABB9A5D9BFECF2CB9C39892 +:1007A000BB9A21912111F6CFC39ABB9A5D9BFECFD4 +:1007B0008BE38CB9C398BB9AEEE6F1E086E7C39A67 +:1007C000BB9A5D9BFECF8CB9C398BB9A8191811176 +:1007D000F6CF4AE050E0BE01645F7F4FC5010E9442 +:1007E0006508FC012081222359F03196C39ABB9AF7 +:1007F0005D9BFECF2CB9C398BB9A21912111F6CFF6 +:10080000C39ABB9A5D9BFECF8BE38CB9C398BB9A0E +:10081000E2E7F1E086E7C39ABB9A5D9BFECF8CB915 +:10082000C398BB9A81918111F6CF4AE050E0BE0196 +:10083000645F7F4FC4010E946508FC012081222370 :1008400059F03196C39ABB9A5D9BFECF2CB9C398E1 :10085000BB9A21912111F6CFC39ABB9A5D9BFECF23 -:100860008BE38CB9C398BB9AEAE7F1E083E6C39ABD -:10087000BB9A5D9BFECF8CB9C398BB9A81918111C5 -:10088000F6CF8E010F5F1F4F22E04AE0FEA1EFA1DD -:100890006F2F7E2F8D2D9C2D0E949207FC012081B1 -:1008A000222359F03196C39ABB9A5D9BFECF2CB997 -:1008B000C398BB9A21912111F6CFC39ABB9A5D9B35 -:1008C000FECF8BE38CB9C398BB9AEEE7F1E088E6E4 -:1008D000C39ABB9A5D9BFECF8CB9C398BB9A81919A -:1008E0008111F6CF9A9B03C0E2E6F1E002C0EBE58E -:1008F000F1E08081882359F03196C39ABB9A5D9BC1 -:10090000FECF8CB9C398BB9A81918111F6CFC39A5F -:10091000BB9A5D9BFECF8AE08CB9C398BB9AFFEF70 -:1009200021EE34E0F15020403040E1F700C00000FB -:1009300054CD70E060E090E080E004C070E060E0E2 -:1009400090EA81E4462F282F672F742F892F922F4A -:100950000E9433066093CB01E5E8F1E080E762CEC8 -:100960001F920F920FB60F9211242F933F934F9324 -:100970005F936F937F938F939F93AF93BF93EF9307 -:10098000FF938091CA01843108F451C01092CA01CA -:1009900051C0822F91916C91961718F1992309F10A -:1009A000BA01022E02C0660F771F0A94E2F7CB014C -:1009B00060FF02C0AA9AA29A81FF02C0AB9AA39AD2 -:1009C00082FF02C0AC9AA49A83FF02C0AD9AA59A96 -:1009D00084FF02C0AE9AA69A85FF22C0AF9AA79A5A -:1009E0001FC0BA0102C0660F771F8A95E2F7CB01DC -:1009F00060FF02C0AA98A29A81FF02C0AB98A39A96 -:100A000082FF02C0AC98A49A83FF02C0AD98A59A59 -:100A100084FF02C0AE98A69A85FF02C0AF98A79A3D -:100A20002F5F3F4F2630310509F0B3CF0CC08F5FE9 -:100A30008093CA01EBECF1E020E030E0AAECB1E0F9 -:100A400041E050E0A6CFFF91EF91BF91AF919F9110 -:100A50008F917F916F915F914F913F912F910F9067 -:100A60000FBE0F901F9018951F920F920FB60F9206 -:100A700011248F9380E48ABFC49ABC9A8F910F90FF -:100A80000FBE0F901F901895FC01119286E0DF01B8 -:100A90001D928A95E9F7A29AA39AA49AA59AA69A72 -:100AA000A79AAA98A29AAB98A39AAC98A49AAD9840 -:100AB000A59AAE98A69AAF98A79A0895CF93DF9378 -:100AC0001F92CDB7DEB76983BC9ABB9ABA9AC49815 -:100AD000BC9AC398BB9AC298BA9A2FEF3FEFFC0119 -:100AE000328321831BB888E08AB986EA80BD10BCB6 -:100AF00089E189B9EAE8F1E085E5C39ABB9A5D9B93 -:100B0000FECF8CB9C398BB9A81918111F6CF0F901B -:100B1000DF91CF910895CF93DF931F92CDB7DEB7CA -:100B20006983BC9ABB9ABA9AC498BC9AC398BB9A78 -:100B3000C298BA9A8A989298929A0F90DF91CF9120 -:100B40000895BC9ABB9ABA9AC498BC9AC398BB9AA7 -:100B5000C298BA9A089581ED91E00E94A1058AECAD -:100B600091E00E94440560E087EC91E00E945E0500 -:100B700080E3E0E6F0E0A7E9B1E001900D928A950C -:100B8000E1F784E086B917B860E086E991E00E9459 -:100B90008B0508955058BB27AA270ED008C1F9D05D -:100BA00030F0FED020F031F49F3F11F41EF4EEC07F -:100BB0000EF4E095E7FBE4C0E92F0AD180F3BA1701 -:100BC000620773078407950718F071F49EF522C138 -:100BD0000EF4E0950B2EBA2FA02D0B01B901900158 -:100BE0000C01CA01A0011124FF27591B99F0593F9C -:100BF00050F4503E68F11A16F040A22F232F342FE4 -:100C00004427585FF3CF469537952795A795F04031 -:100C10005395C9F77EF41F16BA0B620B730B840B46 -:100C2000BAF09150A1F0FF0FBB1F661F771F881FFE -:100C3000C2F70EC0BA0F621F731F841F48F4879556 -:100C400077956795B795F7959E3F08F0B3CF939545 -:100C5000880F08F09927EE0F9795879508956CD027 -:100C600008F481E00895BCD088F09F5790F0B92F28 -:100C70009927B751A0F0D1F0660F771F881F991FF1 -:100C80001AF0BA95C9F712C0B13081F0C3D0B1E003 -:100C90000895C0C0672F782F8827B85F39F0B93F13 -:100CA000CCF3869577956795B395D9F73EF49095F3 -:100CB0008095709561957F4F8F4F9F4F0895E89471 -:100CC00009C097FB3EF490958095709561957F4F94 -:100CD0008F4F9F4F9923A9F0F92F96E9BB27939542 -:100CE000F695879577956795B795F111F8CFFAF452 -:100CF000BB0F11F460FF1BC06F5F7F4F8F4F9F4F83 -:100D000016C0882311F096E911C0772321F09EE8E0 -:100D1000872F762F05C0662371F096E8862F70E046 -:100D200060E02AF09A95660F771F881FDAF7880F20 -:100D30009695879597F90895990F0008550FAA0B76 -:100D4000E0E8FEEF16161706E807F907C0F01216DE -:100D50001306E407F50798F0621B730B840B950BE1 -:100D600039F40A2661F0232B242B252B21F4089536 -:100D70000A2609F4A140A6958FEF811D811D0895D3 -:100D800097F99F6780E870E060E008959FEF80EC3E -:100D9000089500240A9416161706180609060895E1 -:100DA00000240A9412161306140605060895092E47 -:100DB0000394000C11F4882352F0BB0F40F4BF2BB6 -:100DC00011F460FF04C06F5F7F4F8F4F9F4F0895F6 -:100DD00057FD9058440F551F59F05F3F71F04795EC -:100DE000880F97FB991F61F09F3F79F087950895D1 -:100DF000121613061406551FF2CF4695F1DF08C0F0 -:100E0000161617061806991FF1CF8695710561050C -:100E100008940895E894BB2766277727CB0197F9B4 -:100E200008958ADF08F48FEF08950BD0C0CFB1DFAB -:100E300028F0B6DF18F0952309F0A2CFA7CF112430 -:100E4000EACFC6DFA0F3959FD1F3950F50E0551F71 -:100E5000629FF001729FBB27F00DB11D639FAA270F -:100E6000F00DB11DAA1F649F6627B00DA11D661F5E -:100E7000829F2227B00DA11D621F739FB00DA11D7F -:100E8000621F839FA00D611D221F749F3327A00D39 -:100E9000611D231F849F600D211D822F762F6A2FD5 -:100EA00011249F5750408AF0E1F088234AF0EE0F5A -:100EB000FF1FBB1F661F771F881F91505040A9F767 -:100EC0009E3F510570F05CCFA6CF5F3FECF3983E9C -:100ED000DCF3869577956795B795F795E7959F5FCE -:100EE000C1F7FE2B880F911D9695879597F9089568 -:100EF000AA1BBB1B51E107C0AA1FBB1FA617B70740 -:100F000010F0A61BB70B881F991F5A95A9F780955B -:100F10009095BC01CD010895EE0FFF1F0590F4914F -:100F2000E02D0994EF920F931F93CF93C02F47FFAB -:100F300002C034E101C034E0E42FFF27E7FDF09563 -:100F4000F7FF03C0F195E195F109E32E022F2E2F53 -:100F50004C2F512F0E94C9078C2F912FCF911F9199 -:100F60000F91EF900895FB019F01423074F04532DC -:100F700064F4642F77270E947807805D8A330CF031 -:100F8000895D8193CB010097A1F71082C9010C9470 -:100F90001E0A6F927F929F92AF92BF92CF92DF9282 -:100FA000EF92FF920F931F93CF93DF93CDB7DEB7EE -:100FB00029970FB6F894DEBF0FBECDBF6A01B22EDF -:100FC000102F0C3318F4F02EF39402C05CE3F52ECE -:100FD0000F2D27E0AE014F5F5F4F0E9446097981D8 -:100FE000272F2970213031F0E1FC06C0E0FE06C059 -:100FF00060E205C06DE203C06BE201C060E073FF18 -:101000003DC0662311F084E001C083E08B1510F42D -:10101000B81A01C0B12CE4FC0BC08B2DF60190E294 -:1010200002C0919381508111FCCFCB0CD11CB12C0B -:10103000662319F0D6016D936D01E2FE0AC08EE4BD -:10104000F601808391E491838283F3E0CF0ED11C7B -:101050000CC08EE6D6018C9391E611969C93119765 -:1010600012968C93B3E0CB0ED11C8B2DF60190E23F -:1010700002C0919381508111FCCF40C072FF45C0E6 -:10108000662311F084E001C083E08B1510F4B81AD8 -:1010900001C0B12CE4FC0BC08B2DF60190E202C024 -:1010A000919381508111FCCFCB0CD11CB12C6623C4 -:1010B00019F0F60161936F01E2FE0EC089E4D601DA -:1010C0008C938EE411968C93119786E412968C93F0 -:1010D000B3E0CB0ED11C0AC089E6F60180838EE610 -:1010E000818386E68283F3E0CF0ED11C8B2DF6013F -:1010F00090E202C0919381508111FCCFF601EB0D7B -:10110000F11D10822EEF3FEFACC0A1E0611101C0D4 -:10111000A0E04A2F50E01816190624F49C012F5F16 -:101120003F4F02C021E030E0240F351F112329F08A -:10113000412F50E04F5F5F4F02C040E050E0420F50 -:10114000531F2B2D30E04217530714F4B41A01C07B -:10115000B12C3E2D3071E4FC0DC0E3FC0BC02B2DF7 -:10116000F60140E202C0419321502111FCCFCB0C8B -:10117000D11CB12CAA2319F0D6016D936D01311148 -:101180000BC02B2DF60130E302C031932150211109 -:10119000FCCFCB0CD11CB12CF80E0A8140E1A42E5F -:1011A000A72274FF03C0013309F4FA941F142CF42E -:1011B0002F2D293018F028E001C021E0AC0197FF65 -:1011C00002C040E050E060E070E03EE2932EFC019F -:1011D000E21BF1099F01DC01A41BB50BFE01319656 -:1011E000EA0FFB1FA12FB0E0662477246A1A7B0A5E -:1011F0004F3F1FEF510719F4D6019D926D018417DF -:10120000950754F0241735073CF47F01E60EF71ECE -:10121000D70111961C9101C010E3415051096F5F35 -:101220007F4F4615570524F0D6011D936D01E0CF81 -:101230004817590739F4063320F4053319F4A1107F -:1012400001C011E3F60111938B2DDF0190E202C082 -:101250009D9381508111FCCFEB0DF11D108220E098 -:1012600030E0C90129960FB6F894DEBF0FBECDBF9E -:10127000DF91CF911F910F91FF90EF90DF90CF9072 -:10128000BF90AF909F907F906F900895283008F0A6 -:1012900027E03327DA01990F311D87FD9160009611 -:1012A0006105710539F432602E5F3D9330E32A9574 -:1012B000E1F708959F3F30F080387105610509F02E -:1012C0003C5F3C5F3D93913008F08068911DDF9357 -:1012D000CF931F930F93FF92EF92192F987F9695BC -:1012E000E92F96959695E90FFF27E255FF4F99272D -:1012F0003327EE24FF24A701E70105900894079403 -:1013000028F4360FE71EF81E491F511D660F771F80 -:10131000881F991F0694A1F70590079428F4E70EFB -:10132000F81E491F561FC11D770F881F991F661F82 -:101330000694A1F70590079428F4F80E491F561F4C -:10134000C71FD11D880F991F661F771F0694A1F72D -:101350000590079420F4490F561FC71FD81F990FF7 -:10136000661F771F881F0694A9F784911095177040 -:1013700041F0D695C79557954795F794E7941A95F8 -:10138000C1F7E4E5F0E06894159015913591659109 -:10139000959105907FE27395E118F10A430B560B86 -:1013A000C90BD009C0F7E10CF11E431F561FC91F1E -:1013B000D01D7EF4703311F48A95E6CFE894015085 -:1013C00030F0080F0AF40027021708F4202F2395A5 -:1013D000022F7A3328F079E37D932A95E9F710C03C -:1013E0007D932A9589F60694979567953795179575 -:1013F0001794E118F10A430B560BC90BD00998F06A -:1014000023957E9173957A3308F070E37C932013D3 -:10141000B8F77E9170617D9330F0839571E37D9391 -:1014200070E32A95E1F71124EF90FF900F911F913F -:10143000CF91DF91992787FD90950895DC01FC01FC -:10144000672F71917723E1F7329704C07C916D93F8 -:1014500070836291AE17BF07C8F30895F894FFCF69 -:101460001A009000B40054001A009000B400540018 -:10147000000000000000000000000000000000006C -:10148000000000000000000000000000000000005C -:101490002323232320426567696E20426F6F747592 -:1014A00070202323232323232323232323232323C2 -:1014B00023232323232323232323232323232323FC -:1014C00023232323232323232323230A00232054FA -:1014D000657374204F75747075740A00232053650A -:1014E0007475702054696D65720A002323204F754E -:1014F0007470757420496E697420446F6E65210A9A -:10150000002323232320456E6420426F6F7475707F -:10151000202323232323232323232323232323239E -:10152000232323232323232323232323232323238B -:101530002323232323232323232323230A002320BA -:101540005365747570204144430A00232053657429 -:10155000757020427574746F6E0A006D6F6E3D3049 -:101560003B006D6F6E3D313B00636D3D0076303D5D -:101570000076313D0063313D0063323D00686F6E9F -:101580003D303B0070776D3D005561727420646F93 -:061590006E65210A000057 +:100860008BE38CB9C398BB9A83E6F701C39ABB9A12 +:100870005D9BFECF8CB9C398BB9A81918111F6CF55 +:100880008E010F5F1F4F22E04AE0672D762D852DE8 +:10089000942D0E944408FC012081222359F03196B6 +:1008A000C39ABB9A5D9BFECF2CB9C398BB9A21918A +:1008B0002111F6CFC39ABB9A5D9BFECF8BE38CB917 +:1008C000C398BB9AE6E7F1E083E6C39ABB9A5D9BC7 +:1008D000FECF8CB9C398BB9A81918111F6CF8E015E +:1008E0000F5F1F4F22E04AE0FAA1EBA15CA13DA1FE +:1008F0006F2F7E2F852F932F0E944408FC012081AB +:10090000222359F03196C39ABB9A5D9BFECF2CB936 +:10091000C398BB9A21912111F6CFC39ABB9A5D9BD4 +:10092000FECF8BE38CB9C398BB9AEAE7F1E083E68C +:10093000C39ABB9A5D9BFECF8CB9C398BB9A819139 +:100940008111F6CF8E010F5F1F4F22E04AE0FEA11A +:10095000EFA16F2F7E2F8D2D9C2D0E944408FC014E +:100960002081222359F03196C39ABB9A5D9BFECF1A +:100970002CB9C398BB9A21912111F6CFC39ABB9A87 +:100980005D9BFECF8BE38CB9C398BB9AEEE7F1E099 +:1009900088E6C39ABB9A5D9BFECF8CB9C398BB9A7D +:1009A00081918111F6CF9A9B03C0E2E6F1E002C08B +:1009B000EBE5F1E08081882359F03196C39ABB9A28 +:1009C0005D9BFECF8CB9C398BB9A81918111F6CF04 +:1009D000C39ABB9A5D9BFECF8AE08CB9C398BB9A41 +:1009E000FFEF21EE34E0F15020403040E1F700C04D +:1009F0000000F3CC30E020E090E080E004C030E084 +:100A000020E090EA81E4482F632F722F892F942FE2 +:100A10000E94F9066093CB01E5E8F1E080E763CE40 +:100A20001F920F920FB60F9211242F933F934F9363 +:100A30005F936F937F938F939F93AF93BF93EF9346 +:100A4000FF938091CA01843108F451C01092CA0109 +:100A500051C0822F91916C91961718F1992309F149 +:100A6000BA01022E02C0660F771F0A94E2F7CB018B +:100A700060FF02C0AA9AA29A81FF02C0AB9AA39A11 +:100A800082FF02C0AC9AA49A83FF02C0AD9AA59AD5 +:100A900084FF02C0AE9AA69A85FF22C0AF9AA79A99 +:100AA0001FC0BA0102C0660F771F8A95E2F7CB011B +:100AB00060FF02C0AA98A29A81FF02C0AB98A39AD5 +:100AC00082FF02C0AC98A49A83FF02C0AD98A59A99 +:100AD00084FF02C0AE98A69A85FF02C0AF98A79A7D +:100AE0002F5F3F4F2630310509F0B3CF0CC08F5F29 +:100AF0008093CA01EBECF1E020E030E0AAECB1E039 +:100B000041E050E0A6CFFF91EF91BF91AF919F914F +:100B10008F917F916F915F914F913F912F910F90A6 +:100B20000FBE0F901F9018951F920F920FB60F9245 +:100B300011248F9380E48ABF8F910F900FBE0F9086 +:100B40001F901895FC01119286E0DF011D928A9595 +:100B5000E9F7A29AA39AA49AA59AA69AA79AAA98FC +:100B6000A29AAB98A39AAC98A49AAD98A59AAE987D +:100B7000A69AAF98A79A0895CF93DF931F92CDB707 +:100B8000DEB76983BC9ABB9ABA9AC498BC9AC398D8 +:100B9000BB9AC298BA9A2FEF3FEFFC0132832183B0 +:100BA0001BB888E08AB986EA80BD10BC89E189B9A2 +:100BB000EAE8F1E085E5C39ABB9A5D9BFECF8CB96C +:100BC000C398BB9A81918111F6CF0F90DF91CF919D +:100BD0000895CF93DF931F92CDB7DEB76983BC9A98 +:100BE000BB9ABA9AC498BC9AC398BB9AC298BA9A4C +:100BF0008A989298929A0F90DF91CF910895BC9A1B +:100C0000BB9ABA9AC498BC9AC398BB9AC298BA9A2B +:100C1000089581ED91E00E94FF058AEC91E00E9429 +:100C2000A20560E087EC91E00E94BC0580E3E0E66D +:100C3000F0E0A7E9B1E001900D928A95E1F784E038 +:100C400086B917B860E086E991E00E94E905089549 +:100C50005058BB27AA270ED070C161D130F066D1A1 +:100C600020F031F49F3F11F41EF456C10EF4E095CC +:100C7000E7FB4CC1E92F72D180F3BA176207730703 +:100C80008407950718F071F49EF58AC10EF4E0957B +:100C90000B2EBA2FA02D0B01B90190010C01CA0136 +:100CA000A0011124FF27591B99F0593F50F4503EE1 +:100CB00068F11A16F040A22F232F342F4427585FD3 +:100CC000F3CF469537952795A795F0405395C9F7EB +:100CD0007EF41F16BA0B620B730B840BBAF09150A3 +:100CE000A1F0FF0FBB1F661F771F881FC2F70EC042 +:100CF000BA0F621F731F841F48F487957795679515 +:100D0000B795F7959E3F08F0B3CF9395880F08F0FD +:100D10009927EE0F979587950895D4D008F481E030 +:100D200008950CD00AC102D140F0F9D030F021F47E +:100D30005F3F19F0EBC0511134C1EEC00FD198F3F1 +:100D40009923C9F35523B1F3951B550BBB27AA274C +:100D500062177307840738F09F5F5F4F220F331FBE +:100D6000441FAA1FA9F333D00E2E3AF0E0E830D08A +:100D700091505040E695001CCAF729D0FE2F27D08D +:100D8000660F771F881FBB1F261737074807AB075B +:100D9000B0E809F0BB0B802DBF01FF2793585F4FD0 +:100DA0002AF09E3F510568F0B1C0FBC05F3FECF3F5 +:100DB000983EDCF3869577956795B795F7959F5F95 +:100DC000C9F7880F911D9695879597F90895E1E0E9 +:100DD000660F771F881FBB1F621773078407BA0748 +:100DE00020F0621B730B840BBA0BEE1F88F7E095A3 +:100DF0000895BCD088F09F5790F0B92F9927B7512C +:100E0000A0F0D1F0660F771F881F991F1AF0BA95CE +:100E1000C9F712C0B13081F0C3D0B1E00895C0C0AD +:100E2000672F782F8827B85F39F0B93FCCF38695C4 +:100E300077956795B395D9F73EF490958095709521 +:100E400061957F4F8F4F9F4F0895E89409C097FB9E +:100E50003EF490958095709561957F4F8F4F9F4F91 +:100E60009923A9F0F92F96E9BB279395F6958795D5 +:100E700077956795B795F111F8CFFAF4BB0F11F498 +:100E800060FF1BC06F5F7F4F8F4F9F4F16C088233F +:100E900011F096E911C0772321F09EE8872F762F75 +:100EA00005C0662371F096E8862F70E060E02AF0B6 +:100EB0009A95660F771F881FDAF7880F96958795A2 +:100EC00097F90895990F0008550FAA0BE0E8FEEF77 +:100ED00016161706E807F907C0F012161306E407FE +:100EE000F50798F0621B730B840B950B39F40A26F7 +:100EF00061F0232B242B252B21F408950A2609F4D5 +:100F0000A140A6958FEF811D811D089597F99F67D8 +:100F100080E870E060E008959FEF80EC0895002481 +:100F20000A941616170618060906089500240A944E +:100F300012161306140605060895092E0394000CD4 +:100F400011F4882352F0BB0F40F4BF2B11F460FF63 +:100F500004C06F5F7F4F8F4F9F4F089557FD90588C +:100F6000440F551F59F05F3F71F04795880F97FB6D +:100F7000991F61F09F3F79F0879508951216130627 +:100F80001406551FF2CF4695F1DF08C01616170656 +:100F90001806991FF1CF869571056105089408958B +:100FA000E894BB2766277727CB0197F908958ADF56 +:100FB00008F48FEF08950BD0C0CFB1DF28F0B6DF73 +:100FC00018F0952309F0A2CFA7CF1124EACFC6DFEE +:100FD000A0F3959FD1F3950F50E0551F629FF0014C +:100FE000729FBB27F00DB11D639FAA27F00DB11DA5 +:100FF000AA1F649F6627B00DA11D661F829F22272E +:10100000B00DA11D621F739FB00DA11D621F839FB4 +:10101000A00D611D221F749F3327A00D611D231F8A +:10102000849F600D211D822F762F6A2F11249F57D8 +:1010300050408AF0E1F088234AF0EE0FFF1FBB1FFB +:10104000661F771F881F91505040A9F79E3F51059A +:1010500070F05CCFA6CF5F3FECF3983EDCF3869553 +:1010600077956795B795F795E7959F5FC1F7FE2B45 +:10107000880F911D9695879597F90895EE0FFF1F9C +:101080000590F491E02D0994EF920F931F93CF9365 +:10109000C02F47FF02C034E101C034E0E42FFF2736 +:1010A000E7FDF095F7FF03C0F195E195F109E32E17 +:1010B000022F2E2F4C2F512F0E947B088C2F912F07 +:1010C000CF911F910F91EF900895FB019F01423046 +:1010D00074F0453264F4642F77270E94E00A805D43 +:1010E0008A330CF0895D8193CB010097A1F71082C0 +:1010F000C9010C94D00A6F927F929F92AF92BF92D7 +:10110000CF92DF92EF92FF920F931F93CF93DF93D3 +:10111000CDB7DEB729970FB6F894DEBF0FBECDBFAF +:101120006A01B22E102F0C3318F4F02EF39402C083 +:101130005CE3F52E0F2D27E0AE014F5F5F4F0E945D +:10114000F8097981272F2970213031F0E1FC06C0A0 +:10115000E0FE06C060E205C06DE203C06BE201C0C4 +:1011600060E073FF3DC0662311F084E001C083E0BE +:101170008B1510F4B81A01C0B12CE4FC0BC08B2DF8 +:10118000F60190E202C0919381508111FCCFCB0C0B +:10119000D11CB12C662319F0D6016D936D01E2FECE +:1011A0000AC08EE4F601808391E491838283F3E0A8 +:1011B000CF0ED11C0CC08EE6D6018C9391E6119611 +:1011C0009C93119712968C93B3E0CB0ED11C8B2D70 +:1011D000F60190E202C0919381508111FCCF40C092 +:1011E00072FF45C0662311F084E001C083E08B15D7 +:1011F00010F4B81A01C0B12CE4FC0BC08B2DF60121 +:1012000090E202C0919381508111FCCFCB0CD11C94 +:10121000B12C662319F0F60161936F01E2FE0EC056 +:1012200089E4D6018C938EE411968C93119786E411 +:1012300012968C93B3E0CB0ED11C0AC089E6F6015E +:1012400080838EE6818386E68283F3E0CF0ED11C15 +:101250008B2DF60190E202C0919381508111FCCF59 +:10126000F601EB0DF11D10822EEF3FEFACC0A1E0B7 +:10127000611101C0A0E04A2F50E01816190624F4AD +:101280009C012F5F3F4F02C021E030E0240F351F4B +:10129000112329F0412F50E04F5F5F4F02C040E023 +:1012A00050E0420F531F2B2D30E04217530714F428 +:1012B000B41A01C0B12C3E2D3071E4FC0DC0E3FC2A +:1012C0000BC02B2DF60140E202C0419321502111A9 +:1012D000FCCFCB0CD11CB12CAA2319F0D6016D93F5 +:1012E0006D0131110BC02B2DF60130E302C031939B +:1012F00021502111FCCFCB0CD11CB12CF80E0A814E +:1013000040E1A42EA72274FF03C0013309F4FA942C +:101310001F142CF42F2D293018F028E001C021E0F3 +:10132000AC0197FF02C040E050E060E070E03EE2B8 +:10133000932EFC01E21BF1099F01DC01A41BB50BFC +:10134000FE013196EA0FFB1FA12FB0E0662477243F +:101350006A1A7B0A4F3F1FEF510719F4D6019D927D +:101360006D018417950754F0241735073CF47F016D +:10137000E60EF71ED70111961C9101C010E34150F3 +:1013800051096F5F7F4F4615570524F0D6011D9315 +:101390006D01E0CF4817590739F4063320F40533BF +:1013A00019F4A11001C011E3F60111938B2DDF0197 +:1013B00090E202C09D9381508111FCCFEB0DF11D95 +:1013C000108220E030E0C90129960FB6F894DEBF04 +:1013D0000FBECDBFDF91CF911F910F91FF90EF9086 +:1013E000DF90CF90BF90AF909F907F906F900895C7 +:1013F000283008F027E03327DA01990F311D87FDE7 +:10140000916000966105710539F432602E5F3D935D +:1014100030E32A95E1F708959F3F30F08038710559 +:10142000610509F03C5F3C5F3D93913008F08068B6 +:10143000911DDF93CF931F930F93FF92EF92192F7C +:10144000987F9695E92F96959695E90FFF27E25597 +:10145000FF4F99273327EE24FF24A701E7010590CA +:101460000894079428F4360FE71EF81E491F511DF3 +:10147000660F771F881F991F0694A1F705900794A0 +:1014800028F4E70EF81E491F561FC11D770F881F4D +:10149000991F661F0694A1F70590079428F4F80E8B +:1014A000491F561FC71FD11D880F991F661F771F21 +:1014B0000694A1F70590079420F4490F561FC71F03 +:1014C000D81F990F661F771F881F0694A9F784916C +:1014D0001095177041F0D695C79557954795F79495 +:1014E000E7941A95C1F7E4E5F0E06894159015913A +:1014F00035916591959105907FE27395E118F10A18 +:10150000430B560BC90BD009C0F7E10CF11E431F6A +:10151000561FC91FD01D7EF4703311F48A95E6CF93 +:10152000E894015030F0080F0AF40027021708F47D +:10153000202F2395022F7A3328F079E37D932A9583 +:10154000E9F710C07D932A9589F6069497956795DB +:10155000379517951794E118F10A430B560BC90BF1 +:10156000D00998F023957E9173957A3308F070E353 +:101570007C932013B8F77E9170617D9330F0839552 +:1015800071E37D9370E32A95E1F71124EF90FF90CA +:101590000F911F91CF91DF91992787FD9095089525 +:1015A000DC01FC01672F71917723E1F7329704C0CA +:1015B0007C916D9370836291AE17BF07C8F3089555 +:1015C000AA1BBB1B51E107C0AA1FBB1FA617B70769 +:1015D00010F0A61BB70B881F991F5A95A9F7809585 +:0C15E0009095BC01CD010895F894FFCF58 +:1015EC001F00FC01C80080011F00F801C800700139 +:1015FC0000000000000000000000000000000000DF +:10160C0000000000000000000000000000000000CE +:10161C002323232320426567696E20426F6F747504 +:10162C007020232323232323232323232323232334 +:10163C00232323232323232323232323232323236E +:10164C0023232323232323232323230A002320546C +:10165C00657374204F75747075740A00232053657C +:10166C007475702054696D65720A002323204F75C0 +:10167C007470757420496E697420446F6E65210A0C +:10168C00002323232320456E6420426F6F747570F2 +:10169C002023232323232323232323232323232311 +:1016AC0023232323232323232323232323232323FE +:1016BC002323232323232323232323230A0023202D +:1016CC005365747570204144430A0023205365749C +:1016DC00757020427574746F6E0A006D6F6E3D30BC +:1016EC003B006D6F6E3D313B00636D3D0076303DD0 +:1016FC000076313D0063303D0063313D00686F6E14 +:10170C003D303B0070776D3D005561727420646F05 +:06171C006E65210A0000C9 :00000001FF diff --git a/USBLaminator/USBLaminator/Debug/USBLaminator.lss b/USBLaminator/USBLaminator/Debug/USBLaminator.lss index a9f93f5..319bf1e 100644 --- a/USBLaminator/USBLaminator/Debug/USBLaminator.lss +++ b/USBLaminator/USBLaminator/Debug/USBLaminator.lss @@ -3,45 +3,45 @@ USBLaminator.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .text 00001460 00000000 00000000 00000094 2**1 + 0 .text 000015ec 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000136 00800060 00001460 000014f4 2**0 + 1 .data 00000136 00800060 000015ec 00001680 2**0 CONTENTS, ALLOC, LOAD, DATA - 2 .bss 0000003c 00800196 00800196 0000162a 2**0 + 2 .bss 0000003c 00800196 00800196 000017b6 2**0 ALLOC - 3 .stab 00002ac0 00000000 00000000 0000162c 2**2 + 3 .stab 00003018 00000000 00000000 000017b8 2**2 CONTENTS, READONLY, DEBUGGING - 4 .stabstr 00000798 00000000 00000000 000040ec 2**0 + 4 .stabstr 00000855 00000000 00000000 000047d0 2**0 CONTENTS, READONLY, DEBUGGING - 5 .comment 0000002f 00000000 00000000 00004884 2**0 + 5 .comment 0000002f 00000000 00000000 00005025 2**0 CONTENTS, READONLY - 6 .debug_aranges 000000a0 00000000 00000000 000048b3 2**0 + 6 .debug_aranges 000000a0 00000000 00000000 00005054 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_info 000074a7 00000000 00000000 00004953 2**0 + 7 .debug_info 0000756b 00000000 00000000 000050f4 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_abbrev 00000659 00000000 00000000 0000bdfa 2**0 + 8 .debug_abbrev 00000659 00000000 00000000 0000c65f 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_line 00000b6d 00000000 00000000 0000c453 2**0 + 9 .debug_line 00000b99 00000000 00000000 0000ccb8 2**0 CONTENTS, READONLY, DEBUGGING - 10 .debug_frame 000001d8 00000000 00000000 0000cfc0 2**2 + 10 .debug_frame 000001d8 00000000 00000000 0000d854 2**2 CONTENTS, READONLY, DEBUGGING - 11 .debug_str 00001908 00000000 00000000 0000d198 2**0 + 11 .debug_str 00001945 00000000 00000000 0000da2c 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_loc 000018cf 00000000 00000000 0000eaa0 2**0 + 12 .debug_loc 00001a95 00000000 00000000 0000f371 2**0 CONTENTS, READONLY, DEBUGGING - 13 .debug_ranges 000000d0 00000000 00000000 0001036f 2**0 + 13 .debug_ranges 000000d0 00000000 00000000 00010e06 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 <__vectors>: 0: 0c 94 a8 00 jmp 0x150 ; 0x150 <__ctors_end> - 4: 0c 94 34 05 jmp 0xa68 ; 0xa68 <__vector_1> + 4: 0c 94 94 05 jmp 0xb28 ; 0xb28 <__vector_1> 8: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> c: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> 10: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> 14: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> - 18: 0c 94 b0 04 jmp 0x960 ; 0x960 <__vector_6> + 18: 0c 94 10 05 jmp 0xa20 ; 0xa20 <__vector_6> 1c: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> 20: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> 24: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> @@ -63,7 +63,7 @@ Disassembly of section .text: 5c: 72 4e sbci r23, 0xE2 ; 226 5e: 18 09 sbc r17, r8 60: 00 10 cpse r0, r0 - 62: a5 d4 rcall .+2378 ; 0x9ae <__vector_6+0x4e> + 62: a5 d4 rcall .+2378 ; 0x9ae <__stack+0x54f> 64: e8 00 .word 0x00e8 ; ???? 66: 00 e8 ldi r16, 0x80 ; 128 68: 76 48 sbci r23, 0x86 ; 134 @@ -183,7 +183,7 @@ Disassembly of section .text: 14c: 3d 27 eor r19, r29 0000014e <__ctors_start>: - 14e: ab 05 cpc r26, r11 + 14e: 09 06 cpc r0, r25 00000150 <__ctors_end>: 150: 11 24 eor r1, r1 @@ -197,8 +197,8 @@ Disassembly of section .text: 15c: 11 e0 ldi r17, 0x01 ; 1 15e: a0 e6 ldi r26, 0x60 ; 96 160: b0 e0 ldi r27, 0x00 ; 0 - 162: e0 e6 ldi r30, 0x60 ; 96 - 164: f4 e1 ldi r31, 0x14 ; 20 + 162: ec ee ldi r30, 0xEC ; 236 + 164: f5 e1 ldi r31, 0x15 ; 21 166: 02 c0 rjmp .+4 ; 0x16c <__do_copy_data+0x10> 168: 05 90 lpm r0, Z+ 16a: 0d 92 st X+, r0 @@ -227,12 +227,12 @@ Disassembly of section .text: 188: 04 c0 rjmp .+8 ; 0x192 <__do_global_ctors+0x10> 18a: 22 97 sbiw r28, 0x02 ; 2 18c: fe 01 movw r30, r28 - 18e: 0e 94 8e 07 call 0xf1c ; 0xf1c <__tablejump__> + 18e: 0e 94 40 08 call 0x1080 ; 0x1080 <__tablejump__> 192: ce 34 cpi r28, 0x4E ; 78 194: d1 07 cpc r29, r17 196: c9 f7 brne .-14 ; 0x18a <__do_global_ctors+0x8> 198: 0e 94 dd 01 call 0x3ba ; 0x3ba
- 19c: 0c 94 2e 0a jmp 0x145c ; 0x145c <_exit> + 19c: 0c 94 f4 0a jmp 0x15e8 ; 0x15e8 <_exit> 000001a0 <__bad_interrupt>: 1a0: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> @@ -1306,7 +1306,7 @@ int main(void) 3bc: df 93 push r29 3be: cd b7 in r28, 0x3d ; 61 3c0: de b7 in r29, 0x3e ; 62 - 3c2: a9 97 sbiw r28, 0x29 ; 41 + 3c2: ab 97 sbiw r28, 0x2b ; 43 3c4: 0f b6 in r0, 0x3f ; 63 3c6: f8 94 cli 3c8: de bf out 0x3e, r29 ; 62 @@ -1314,8 +1314,8 @@ int main(void) 3cc: cd bf out 0x3d, r28 ; 61 setup(); 3ce: 0e 94 d2 00 call 0x1a4 ; 0x1a4 <_Z5setupv> - int16_t target_temp = 25; - 3d2: 29 e1 ldi r18, 0x19 ; 25 + int16_t target_temp = 20; + 3d2: 24 e1 ldi r18, 0x14 ; 20 3d4: 30 e0 ldi r19, 0x00 ; 0 3d6: 39 a7 std Y+41, r19 ; 0x29 3d8: 28 a7 std Y+40, r18 ; 0x28 @@ -1376,583 +1376,420 @@ int main(void) return ADCW; 40c: 84 b0 in r8, 0x04 ; 4 40e: 95 b0 in r9, 0x05 ; 5 + float pwm_value = 0; + while(1) + { + uint16_t v0 = a.get(0); + uint16_t v1 = a.get(1); + if(v0 > 1000 || v1 > 1000 || v0 < 5 || v1 < 5) { + 410: 99 ee ldi r25, 0xE9 ; 233 + 412: a9 16 cp r10, r25 + 414: 93 e0 ldi r25, 0x03 ; 3 + 416: b9 06 cpc r11, r25 + 418: 68 f4 brcc .+26 ; 0x434 + 41a: e9 ee ldi r30, 0xE9 ; 233 + 41c: 8e 16 cp r8, r30 + 41e: e3 e0 ldi r30, 0x03 ; 3 + 420: 9e 06 cpc r9, r30 + 422: 40 f4 brcc .+16 ; 0x434 + 424: f5 e0 ldi r31, 0x05 ; 5 + 426: af 16 cp r10, r31 + 428: b1 04 cpc r11, r1 + 42a: 20 f0 brcs .+8 ; 0x434 + 42c: 25 e0 ldi r18, 0x05 ; 5 + 42e: 82 16 cp r8, r18 + 430: 91 04 cpc r9, r1 + 432: 78 f4 brcc .+30 ; 0x452 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 434: c4 9a sbi 0x18, 4 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 436: bc 9a sbi 0x17, 4 ; 23 + } + } + //out1::toggle(); + } + void stop() { + pwm[0] = 0; pwm[1] = 0; pwm[2] = 0; pwm[3] = 0; pwm[4] = 0; pwm[5] = 0; pwm[6] = 0; + 438: 10 92 cc 01 sts 0x01CC, r1 + 43c: 10 92 cd 01 sts 0x01CD, r1 + 440: 10 92 ce 01 sts 0x01CE, r1 + 444: 10 92 cf 01 sts 0x01CF, r1 + 448: 10 92 d0 01 sts 0x01D0, r1 + 44c: 10 92 d1 01 sts 0x01D1, r1 + 450: ff cf rjmp .-2 ; 0x450 } float convert(uint16_t v, uint8_t pin) { - float m=((this->table[pin][0]-this->table[pin][2])/(this->table[pin][1]-this->table[pin][3])); - 410: e7 e9 ldi r30, 0x97 ; 151 - 412: f1 e0 ldi r31, 0x01 ; 1 - 414: 20 80 ld r2, Z - 416: 31 80 ldd r3, Z+1 ; 0x01 - 418: e9 e9 ldi r30, 0x99 ; 153 - 41a: f1 e0 ldi r31, 0x01 ; 1 - 41c: 00 81 ld r16, Z - 41e: 11 81 ldd r17, Z+1 ; 0x01 - 420: eb e9 ldi r30, 0x9B ; 155 - 422: f1 e0 ldi r31, 0x01 ; 1 - 424: 80 81 ld r24, Z - 426: 91 81 ldd r25, Z+1 ; 0x01 - 428: 91 01 movw r18, r2 - 42a: 28 1b sub r18, r24 - 42c: 39 0b sbc r19, r25 - 42e: c9 01 movw r24, r18 - 430: ed e9 ldi r30, 0x9D ; 157 - 432: f1 e0 ldi r31, 0x01 ; 1 - 434: 20 81 ld r18, Z - 436: 31 81 ldd r19, Z+1 ; 0x01 - 438: b8 01 movw r22, r16 - 43a: 62 1b sub r22, r18 - 43c: 73 0b sbc r23, r19 - 43e: 0e 94 78 07 call 0xef0 ; 0xef0 <__udivmodhi4> - 442: 80 e0 ldi r24, 0x00 ; 0 - 444: 90 e0 ldi r25, 0x00 ; 0 - 446: 0e 94 5f 06 call 0xcbe ; 0xcbe <__floatunsisf> - 44a: c6 2e mov r12, r22 - 44c: d7 2e mov r13, r23 - 44e: e8 2e mov r14, r24 - 450: f9 2e mov r15, r25 - 452: 46 2e mov r4, r22 - 454: 57 2e mov r5, r23 - 456: 68 2e mov r6, r24 - 458: 79 2e mov r7, r25 - return (m * (float)v) + (-m * (float)this->table[pin][1]) + this->table[pin][0]; - 45a: b5 01 movw r22, r10 - 45c: 80 e0 ldi r24, 0x00 ; 0 - 45e: 90 e0 ldi r25, 0x00 ; 0 - 460: 0e 94 5f 06 call 0xcbe ; 0xcbe <__floatunsisf> - 464: 9b 01 movw r18, r22 - 466: ac 01 movw r20, r24 - 468: 6c 2d mov r22, r12 - 46a: 7d 2d mov r23, r13 - 46c: 8e 2d mov r24, r14 - 46e: 9f 2d mov r25, r15 - 470: 0e 94 15 07 call 0xe2a ; 0xe2a <__mulsf3> - 474: 6b 01 movw r12, r22 - 476: 7c 01 movw r14, r24 - 478: 77 fa bst r7, 7 - 47a: 70 94 com r7 - 47c: 77 f8 bld r7, 7 - 47e: 70 94 com r7 - 480: b8 01 movw r22, r16 - 482: 80 e0 ldi r24, 0x00 ; 0 - 484: 90 e0 ldi r25, 0x00 ; 0 - 486: 0e 94 5f 06 call 0xcbe ; 0xcbe <__floatunsisf> - 48a: 9b 01 movw r18, r22 - 48c: ac 01 movw r20, r24 - 48e: c3 01 movw r24, r6 - 490: b2 01 movw r22, r4 - 492: 0e 94 15 07 call 0xe2a ; 0xe2a <__mulsf3> - 496: 9b 01 movw r18, r22 - 498: ac 01 movw r20, r24 - 49a: c7 01 movw r24, r14 - 49c: b6 01 movw r22, r12 - 49e: 0e 94 cb 05 call 0xb96 ; 0xb96 <__addsf3> - 4a2: 6b 01 movw r12, r22 - 4a4: 7c 01 movw r14, r24 - 4a6: b1 01 movw r22, r2 - 4a8: 80 e0 ldi r24, 0x00 ; 0 - 4aa: 90 e0 ldi r25, 0x00 ; 0 - 4ac: 0e 94 5f 06 call 0xcbe ; 0xcbe <__floatunsisf> - 4b0: 9b 01 movw r18, r22 - 4b2: ac 01 movw r20, r24 - 4b4: c7 01 movw r24, r14 - 4b6: b6 01 movw r22, r12 - 4b8: 0e 94 cb 05 call 0xb96 ; 0xb96 <__addsf3> - 4bc: 6a a3 std Y+34, r22 ; 0x22 - 4be: 7b a3 std Y+35, r23 ; 0x23 - 4c0: 8c a3 std Y+36, r24 ; 0x24 - 4c2: 9d a3 std Y+37, r25 ; 0x25 + float c1 = this->table[pin][0]; + 452: e7 e9 ldi r30, 0x97 ; 151 + 454: f1 e0 ldi r31, 0x01 ; 1 + 456: 60 81 ld r22, Z + 458: 71 81 ldd r23, Z+1 ; 0x01 + 45a: 80 e0 ldi r24, 0x00 ; 0 + 45c: 90 e0 ldi r25, 0x00 ; 0 + 45e: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> + 462: 6a a3 std Y+34, r22 ; 0x22 + 464: 7b a3 std Y+35, r23 ; 0x23 + 466: 8c a3 std Y+36, r24 ; 0x24 + 468: 9d a3 std Y+37, r25 ; 0x25 + float v1 = this->table[pin][1]; + 46a: e9 e9 ldi r30, 0x99 ; 153 + 46c: f1 e0 ldi r31, 0x01 ; 1 + 46e: 60 81 ld r22, Z + 470: 71 81 ldd r23, Z+1 ; 0x01 + 472: 80 e0 ldi r24, 0x00 ; 0 + 474: 90 e0 ldi r25, 0x00 ; 0 + 476: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> + 47a: 26 2e mov r2, r22 + 47c: 37 2e mov r3, r23 + 47e: 08 2f mov r16, r24 + 480: 19 2f mov r17, r25 + + float c2 = this->table[pin][2]; + 482: eb e9 ldi r30, 0x9B ; 155 + 484: f1 e0 ldi r31, 0x01 ; 1 + 486: 60 81 ld r22, Z + 488: 71 81 ldd r23, Z+1 ; 0x01 + 48a: 80 e0 ldi r24, 0x00 ; 0 + 48c: 90 e0 ldi r25, 0x00 ; 0 + 48e: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> + 492: 9b 01 movw r18, r22 + 494: ac 01 movw r20, r24 + float v2 = this->table[pin][3]; + float m = ((c1 - c2) / (v1 - v2)); + 496: ba a1 ldd r27, Y+34 ; 0x22 + 498: ab a1 ldd r26, Y+35 ; 0x23 + 49a: fc a1 ldd r31, Y+36 ; 0x24 + 49c: ed a1 ldd r30, Y+37 ; 0x25 + 49e: 6b 2f mov r22, r27 + 4a0: 7a 2f mov r23, r26 + 4a2: 8f 2f mov r24, r31 + 4a4: 9e 2f mov r25, r30 + 4a6: 0e 94 28 06 call 0xc50 ; 0xc50 <__subsf3> + 4aa: 6b 01 movw r12, r22 + 4ac: 7c 01 movw r14, r24 + float convert(uint16_t v, uint8_t pin) { + float c1 = this->table[pin][0]; + float v1 = this->table[pin][1]; + + float c2 = this->table[pin][2]; + float v2 = this->table[pin][3]; + 4ae: ed e9 ldi r30, 0x9D ; 157 + 4b0: f1 e0 ldi r31, 0x01 ; 1 + 4b2: 60 81 ld r22, Z + 4b4: 71 81 ldd r23, Z+1 ; 0x01 + 4b6: 80 e0 ldi r24, 0x00 ; 0 + 4b8: 90 e0 ldi r25, 0x00 ; 0 + 4ba: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> + 4be: 9b 01 movw r18, r22 + 4c0: ac 01 movw r20, r24 + float m = ((c1 - c2) / (v1 - v2)); + 4c2: 62 2d mov r22, r2 + 4c4: 73 2d mov r23, r3 + 4c6: 80 2f mov r24, r16 + 4c8: 91 2f mov r25, r17 + 4ca: 0e 94 28 06 call 0xc50 ; 0xc50 <__subsf3> + 4ce: 9b 01 movw r18, r22 + 4d0: ac 01 movw r20, r24 + 4d2: c7 01 movw r24, r14 + 4d4: b6 01 movw r22, r12 + 4d6: 0e 94 91 06 call 0xd22 ; 0xd22 <__divsf3> + 4da: d6 2e mov r13, r22 + 4dc: c7 2e mov r12, r23 + 4de: e8 2e mov r14, r24 + 4e0: f9 2e mov r15, r25 + 4e2: 46 2e mov r4, r22 + 4e4: 57 2e mov r5, r23 + 4e6: 68 2e mov r6, r24 + 4e8: 79 2e mov r7, r25 + + return (m * (float)v) + (-m * v1) + c1; + 4ea: b5 01 movw r22, r10 + 4ec: 80 e0 ldi r24, 0x00 ; 0 + 4ee: 90 e0 ldi r25, 0x00 ; 0 + 4f0: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> + 4f4: 9b 01 movw r18, r22 + 4f6: ac 01 movw r20, r24 + 4f8: 6d 2d mov r22, r13 + 4fa: 7c 2d mov r23, r12 + 4fc: 8e 2d mov r24, r14 + 4fe: 9f 2d mov r25, r15 + 500: 0e 94 db 07 call 0xfb6 ; 0xfb6 <__mulsf3> + 504: 6b 01 movw r12, r22 + 506: 7c 01 movw r14, r24 + 508: a3 01 movw r20, r6 + 50a: 92 01 movw r18, r4 + 50c: 50 58 subi r21, 0x80 ; 128 + 50e: 62 2d mov r22, r2 + 510: 73 2d mov r23, r3 + 512: 80 2f mov r24, r16 + 514: 91 2f mov r25, r17 + 516: 0e 94 db 07 call 0xfb6 ; 0xfb6 <__mulsf3> + 51a: 9b 01 movw r18, r22 + 51c: ac 01 movw r20, r24 + 51e: c7 01 movw r24, r14 + 520: b6 01 movw r22, r12 + 522: 0e 94 29 06 call 0xc52 ; 0xc52 <__addsf3> + 526: 9b 01 movw r18, r22 + 528: ac 01 movw r20, r24 + 52a: ba a1 ldd r27, Y+34 ; 0x22 + 52c: ab a1 ldd r26, Y+35 ; 0x23 + 52e: fc a1 ldd r31, Y+36 ; 0x24 + 530: ed a1 ldd r30, Y+37 ; 0x25 + 532: 6b 2f mov r22, r27 + 534: 7a 2f mov r23, r26 + 536: 8f 2f mov r24, r31 + 538: 9e 2f mov r25, r30 + 53a: 0e 94 29 06 call 0xc52 ; 0xc52 <__addsf3> + 53e: 6a a3 std Y+34, r22 ; 0x22 + 540: 7b a3 std Y+35, r23 ; 0x23 + 542: 8c a3 std Y+36, r24 ; 0x24 + 544: 9d a3 std Y+37, r25 ; 0x25 loop_until_bit_is_set(ADCSRA, ADIF); //ADCSRA |= (1<table[pin][0]-this->table[pin][2])/(this->table[pin][1]-this->table[pin][3])); - 4c4: ef e9 ldi r30, 0x9F ; 159 - 4c6: f1 e0 ldi r31, 0x01 ; 1 - 4c8: 20 80 ld r2, Z - 4ca: 31 80 ldd r3, Z+1 ; 0x01 - 4cc: e1 ea ldi r30, 0xA1 ; 161 - 4ce: f1 e0 ldi r31, 0x01 ; 1 - 4d0: 00 81 ld r16, Z - 4d2: 11 81 ldd r17, Z+1 ; 0x01 - 4d4: e3 ea ldi r30, 0xA3 ; 163 - 4d6: f1 e0 ldi r31, 0x01 ; 1 - 4d8: 80 81 ld r24, Z - 4da: 91 81 ldd r25, Z+1 ; 0x01 - 4dc: 91 01 movw r18, r2 - 4de: 28 1b sub r18, r24 - 4e0: 39 0b sbc r19, r25 - 4e2: c9 01 movw r24, r18 - 4e4: e5 ea ldi r30, 0xA5 ; 165 - 4e6: f1 e0 ldi r31, 0x01 ; 1 - 4e8: 20 81 ld r18, Z - 4ea: 31 81 ldd r19, Z+1 ; 0x01 - 4ec: b8 01 movw r22, r16 - 4ee: 62 1b sub r22, r18 - 4f0: 73 0b sbc r23, r19 - 4f2: 0e 94 78 07 call 0xef0 ; 0xef0 <__udivmodhi4> - 4f6: 80 e0 ldi r24, 0x00 ; 0 - 4f8: 90 e0 ldi r25, 0x00 ; 0 - 4fa: 0e 94 5f 06 call 0xcbe ; 0xcbe <__floatunsisf> - 4fe: c6 2e mov r12, r22 - 500: d7 2e mov r13, r23 - 502: e8 2e mov r14, r24 - 504: f9 2e mov r15, r25 - 506: 46 2e mov r4, r22 - 508: 57 2e mov r5, r23 - 50a: 68 2e mov r6, r24 - 50c: 79 2e mov r7, r25 - return (m * (float)v) + (-m * (float)this->table[pin][1]) + this->table[pin][0]; - 50e: b4 01 movw r22, r8 - 510: 80 e0 ldi r24, 0x00 ; 0 - 512: 90 e0 ldi r25, 0x00 ; 0 - 514: 0e 94 5f 06 call 0xcbe ; 0xcbe <__floatunsisf> - 518: 9b 01 movw r18, r22 - 51a: ac 01 movw r20, r24 - 51c: 6c 2d mov r22, r12 - 51e: 7d 2d mov r23, r13 - 520: 8e 2d mov r24, r14 - 522: 9f 2d mov r25, r15 - 524: 0e 94 15 07 call 0xe2a ; 0xe2a <__mulsf3> - 528: 6b 01 movw r12, r22 - 52a: 7c 01 movw r14, r24 - 52c: 77 fa bst r7, 7 - 52e: 70 94 com r7 - 530: 77 f8 bld r7, 7 - 532: 70 94 com r7 - 534: b8 01 movw r22, r16 - 536: 80 e0 ldi r24, 0x00 ; 0 - 538: 90 e0 ldi r25, 0x00 ; 0 - 53a: 0e 94 5f 06 call 0xcbe ; 0xcbe <__floatunsisf> - 53e: 9b 01 movw r18, r22 - 540: ac 01 movw r20, r24 - 542: c3 01 movw r24, r6 - 544: b2 01 movw r22, r4 - 546: 0e 94 15 07 call 0xe2a ; 0xe2a <__mulsf3> - 54a: 9b 01 movw r18, r22 - 54c: ac 01 movw r20, r24 - 54e: c7 01 movw r24, r14 - 550: b6 01 movw r22, r12 - 552: 0e 94 cb 05 call 0xb96 ; 0xb96 <__addsf3> - 556: 6b 01 movw r12, r22 - 558: 7c 01 movw r14, r24 - 55a: b1 01 movw r22, r2 - 55c: 80 e0 ldi r24, 0x00 ; 0 - 55e: 90 e0 ldi r25, 0x00 ; 0 - 560: 0e 94 5f 06 call 0xcbe ; 0xcbe <__floatunsisf> - 564: 9b 01 movw r18, r22 - 566: ac 01 movw r20, r24 - 568: c7 01 movw r24, r14 - 56a: b6 01 movw r22, r12 - 56c: 0e 94 cb 05 call 0xb96 ; 0xb96 <__addsf3> - 570: 6e a3 std Y+38, r22 ; 0x26 - 572: 7f a3 std Y+39, r23 ; 0x27 - 574: d8 2e mov r13, r24 - 576: c9 2e mov r12, r25 - { - uint16_t v0 = a.get(0); - uint16_t v1 = a.get(1); + float c1 = this->table[pin][0]; + 546: ef e9 ldi r30, 0x9F ; 159 + 548: f1 e0 ldi r31, 0x01 ; 1 + 54a: 60 81 ld r22, Z + 54c: 71 81 ldd r23, Z+1 ; 0x01 + 54e: 80 e0 ldi r24, 0x00 ; 0 + 550: 90 e0 ldi r25, 0x00 ; 0 + 552: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> + 556: 6e a3 std Y+38, r22 ; 0x26 + 558: 7f a3 std Y+39, r23 ; 0x27 + 55a: 8a a7 std Y+42, r24 ; 0x2a + 55c: 9b a7 std Y+43, r25 ; 0x2b + float v1 = this->table[pin][1]; + 55e: e1 ea ldi r30, 0xA1 ; 161 + 560: f1 e0 ldi r31, 0x01 ; 1 + 562: 60 81 ld r22, Z + 564: 71 81 ldd r23, Z+1 ; 0x01 + 566: 80 e0 ldi r24, 0x00 ; 0 + 568: 90 e0 ldi r25, 0x00 ; 0 + 56a: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> + 56e: 26 2e mov r2, r22 + 570: 37 2e mov r3, r23 + 572: 08 2f mov r16, r24 + 574: 19 2f mov r17, r25 + + float c2 = this->table[pin][2]; + 576: e3 ea ldi r30, 0xA3 ; 163 + 578: f1 e0 ldi r31, 0x01 ; 1 + 57a: 60 81 ld r22, Z + 57c: 71 81 ldd r23, Z+1 ; 0x01 + 57e: 80 e0 ldi r24, 0x00 ; 0 + 580: 90 e0 ldi r25, 0x00 ; 0 + 582: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> + 586: 9b 01 movw r18, r22 + 588: ac 01 movw r20, r24 + float v2 = this->table[pin][3]; + float m = ((c1 - c2) / (v1 - v2)); + 58a: be a1 ldd r27, Y+38 ; 0x26 + 58c: af a1 ldd r26, Y+39 ; 0x27 + 58e: fa a5 ldd r31, Y+42 ; 0x2a + 590: eb a5 ldd r30, Y+43 ; 0x2b + 592: 6b 2f mov r22, r27 + 594: 7a 2f mov r23, r26 + 596: 8f 2f mov r24, r31 + 598: 9e 2f mov r25, r30 + 59a: 0e 94 28 06 call 0xc50 ; 0xc50 <__subsf3> + 59e: 6b 01 movw r12, r22 + 5a0: 7c 01 movw r14, r24 + float convert(uint16_t v, uint8_t pin) { + float c1 = this->table[pin][0]; + float v1 = this->table[pin][1]; + + float c2 = this->table[pin][2]; + float v2 = this->table[pin][3]; + 5a2: e5 ea ldi r30, 0xA5 ; 165 + 5a4: f1 e0 ldi r31, 0x01 ; 1 + 5a6: 60 81 ld r22, Z + 5a8: 71 81 ldd r23, Z+1 ; 0x01 + 5aa: 80 e0 ldi r24, 0x00 ; 0 + 5ac: 90 e0 ldi r25, 0x00 ; 0 + 5ae: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> + 5b2: 9b 01 movw r18, r22 + 5b4: ac 01 movw r20, r24 + float m = ((c1 - c2) / (v1 - v2)); + 5b6: 62 2d mov r22, r2 + 5b8: 73 2d mov r23, r3 + 5ba: 80 2f mov r24, r16 + 5bc: 91 2f mov r25, r17 + 5be: 0e 94 28 06 call 0xc50 ; 0xc50 <__subsf3> + 5c2: 9b 01 movw r18, r22 + 5c4: ac 01 movw r20, r24 + 5c6: c7 01 movw r24, r14 + 5c8: b6 01 movw r22, r12 + 5ca: 0e 94 91 06 call 0xd22 ; 0xd22 <__divsf3> + 5ce: d6 2e mov r13, r22 + 5d0: c7 2e mov r12, r23 + 5d2: e8 2e mov r14, r24 + 5d4: f9 2e mov r15, r25 + 5d6: 46 2e mov r4, r22 + 5d8: 57 2e mov r5, r23 + 5da: 68 2e mov r6, r24 + 5dc: 79 2e mov r7, r25 + + return (m * (float)v) + (-m * v1) + c1; + 5de: b4 01 movw r22, r8 + 5e0: 80 e0 ldi r24, 0x00 ; 0 + 5e2: 90 e0 ldi r25, 0x00 ; 0 + 5e4: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> + 5e8: 9b 01 movw r18, r22 + 5ea: ac 01 movw r20, r24 + 5ec: 6d 2d mov r22, r13 + 5ee: 7c 2d mov r23, r12 + 5f0: 8e 2d mov r24, r14 + 5f2: 9f 2d mov r25, r15 + 5f4: 0e 94 db 07 call 0xfb6 ; 0xfb6 <__mulsf3> + 5f8: 6b 01 movw r12, r22 + 5fa: 7c 01 movw r14, r24 + 5fc: a3 01 movw r20, r6 + 5fe: 92 01 movw r18, r4 + 600: 50 58 subi r21, 0x80 ; 128 + 602: 62 2d mov r22, r2 + 604: 73 2d mov r23, r3 + 606: 80 2f mov r24, r16 + 608: 91 2f mov r25, r17 + 60a: 0e 94 db 07 call 0xfb6 ; 0xfb6 <__mulsf3> + 60e: 9b 01 movw r18, r22 + 610: ac 01 movw r20, r24 + 612: c7 01 movw r24, r14 + 614: b6 01 movw r22, r12 + 616: 0e 94 29 06 call 0xc52 ; 0xc52 <__addsf3> + 61a: 9b 01 movw r18, r22 + 61c: ac 01 movw r20, r24 + 61e: be a1 ldd r27, Y+38 ; 0x26 + 620: af a1 ldd r26, Y+39 ; 0x27 + 622: fa a5 ldd r31, Y+42 ; 0x2a + 624: eb a5 ldd r30, Y+43 ; 0x2b + 626: 6b 2f mov r22, r27 + 628: 7a 2f mov r23, r26 + 62a: 8f 2f mov r24, r31 + 62c: 9e 2f mov r25, r30 + 62e: 0e 94 29 06 call 0xc52 ; 0xc52 <__addsf3> + 632: 6e a3 std Y+38, r22 ; 0x26 + 634: 7f a3 std Y+39, r23 ; 0x27 + 636: d8 2e mov r13, r24 + 638: c9 2e mov r12, r25 + o.stop(); + while(true) {}; + } float t0 = a.convert(v0, 0); float t1 = a.convert(v1, 1); float tm = (t0+t1)/2; - 578: 76 2f mov r23, r22 - 57a: 6f a1 ldd r22, Y+39 ; 0x27 - 57c: 27 2f mov r18, r23 - 57e: 36 2f mov r19, r22 - 580: 4d 2d mov r20, r13 - 582: 5c 2d mov r21, r12 - 584: ba a1 ldd r27, Y+34 ; 0x22 - 586: ab a1 ldd r26, Y+35 ; 0x23 - 588: fc a1 ldd r31, Y+36 ; 0x24 - 58a: ed a1 ldd r30, Y+37 ; 0x25 - 58c: 6b 2f mov r22, r27 - 58e: 7a 2f mov r23, r26 - 590: 8f 2f mov r24, r31 - 592: 9e 2f mov r25, r30 - 594: 0e 94 cb 05 call 0xb96 ; 0xb96 <__addsf3> - 598: 20 e0 ldi r18, 0x00 ; 0 - 59a: 30 e0 ldi r19, 0x00 ; 0 - 59c: 40 e0 ldi r20, 0x00 ; 0 - 59e: 5f e3 ldi r21, 0x3F ; 63 - 5a0: 0e 94 15 07 call 0xe2a ; 0xe2a <__mulsf3> - 5a4: 76 2e mov r7, r22 - 5a6: 67 2e mov r6, r23 - 5a8: 58 2e mov r5, r24 - 5aa: 49 2e mov r4, r25 + 63a: 76 2f mov r23, r22 + 63c: 6f a1 ldd r22, Y+39 ; 0x27 + 63e: 27 2f mov r18, r23 + 640: 36 2f mov r19, r22 + 642: 4d 2d mov r20, r13 + 644: 5c 2d mov r21, r12 + 646: ba a1 ldd r27, Y+34 ; 0x22 + 648: ab a1 ldd r26, Y+35 ; 0x23 + 64a: fc a1 ldd r31, Y+36 ; 0x24 + 64c: ed a1 ldd r30, Y+37 ; 0x25 + 64e: 6b 2f mov r22, r27 + 650: 7a 2f mov r23, r26 + 652: 8f 2f mov r24, r31 + 654: 9e 2f mov r25, r30 + 656: 0e 94 29 06 call 0xc52 ; 0xc52 <__addsf3> + 65a: 20 e0 ldi r18, 0x00 ; 0 + 65c: 30 e0 ldi r19, 0x00 ; 0 + 65e: 40 e0 ldi r20, 0x00 ; 0 + 660: 5f e3 ldi r21, 0x3F ; 63 + 662: 0e 94 db 07 call 0xfb6 ; 0xfb6 <__mulsf3> + 666: 76 2e mov r7, r22 + 668: 67 2e mov r6, r23 + 66a: 58 2e mov r5, r24 + 66c: 49 2e mov r4, r25 } void send(uint8_t wert) { uart_putchar(wert); } int16_t readTemp() { int16_t t = this->temp; - 5ac: e8 ec ldi r30, 0xC8 ; 200 - 5ae: f1 e0 ldi r31, 0x01 ; 1 - 5b0: 80 81 ld r24, Z - 5b2: 91 81 ldd r25, Z+1 ; 0x01 + 66e: e8 ec ldi r30, 0xC8 ; 200 + 670: f1 e0 ldi r31, 0x01 ; 1 + 672: 80 81 ld r24, Z + 674: 91 81 ldd r25, Z+1 ; 0x01 this->temp = -1; - 5b4: 2f ef ldi r18, 0xFF ; 255 - 5b6: 3f ef ldi r19, 0xFF ; 255 - 5b8: 31 83 std Z+1, r19 ; 0x01 - 5ba: 20 83 st Z, r18 + 676: 2f ef ldi r18, 0xFF ; 255 + 678: 3f ef ldi r19, 0xFF ; 255 + 67a: 31 83 std Z+1, r19 ; 0x01 + 67c: 20 83 st Z, r18 int16_t temp = r.readTemp(); if(temp != -1) { - 5bc: 8f 3f cpi r24, 0xFF ; 255 - 5be: 3f ef ldi r19, 0xFF ; 255 - 5c0: 93 07 cpc r25, r19 - 5c2: 11 f0 breq .+4 ; 0x5c8 <__stack+0x169> + 67e: 8f 3f cpi r24, 0xFF ; 255 + 680: 3f ef ldi r19, 0xFF ; 255 + 682: 93 07 cpc r25, r19 + 684: 11 f0 breq .+4 ; 0x68a <__stack+0x22b> target_temp = temp; - 5c4: 99 a7 std Y+41, r25 ; 0x29 - 5c6: 88 a7 std Y+40, r24 ; 0x28 + 686: 99 a7 std Y+41, r25 ; 0x29 + 688: 88 a7 std Y+40, r24 ; 0x28 } pwm_value = (target_temp+5) - tm; - 5c8: 68 a5 ldd r22, Y+40 ; 0x28 - 5ca: 79 a5 ldd r23, Y+41 ; 0x29 - 5cc: 6b 5f subi r22, 0xFB ; 251 - 5ce: 7f 4f sbci r23, 0xFF ; 255 - 5d0: 88 27 eor r24, r24 - 5d2: 77 fd sbrc r23, 7 - 5d4: 80 95 com r24 - 5d6: 98 2f mov r25, r24 - 5d8: 0e 94 61 06 call 0xcc2 ; 0xcc2 <__floatsisf> - 5dc: 27 2d mov r18, r7 - 5de: 36 2d mov r19, r6 - 5e0: 45 2d mov r20, r5 - 5e2: 54 2d mov r21, r4 - 5e4: 0e 94 ca 05 call 0xb94 ; 0xb94 <__subsf3> - 5e8: f6 2e mov r15, r22 - 5ea: e7 2e mov r14, r23 - 5ec: 38 2e mov r3, r24 - 5ee: 29 2e mov r2, r25 + 68a: 68 a5 ldd r22, Y+40 ; 0x28 + 68c: 79 a5 ldd r23, Y+41 ; 0x29 + 68e: 6b 5f subi r22, 0xFB ; 251 + 690: 7f 4f sbci r23, 0xFF ; 255 + 692: 88 27 eor r24, r24 + 694: 77 fd sbrc r23, 7 + 696: 80 95 com r24 + 698: 98 2f mov r25, r24 + 69a: 0e 94 27 07 call 0xe4e ; 0xe4e <__floatsisf> + 69e: 27 2d mov r18, r7 + 6a0: 36 2d mov r19, r6 + 6a2: 45 2d mov r20, r5 + 6a4: 54 2d mov r21, r4 + 6a6: 0e 94 28 06 call 0xc50 ; 0xc50 <__subsf3> + 6aa: f6 2e mov r15, r22 + 6ac: e7 2e mov r14, r23 + 6ae: 38 2e mov r3, r24 + 6b0: 29 2e mov r2, r25 void setPwm(uint8_t ausg, float val) { if(ausg < 0) ausg = 0; if(ausg > 5) ausg = 5; if(val < 0) - 5f0: 20 e0 ldi r18, 0x00 ; 0 - 5f2: 30 e0 ldi r19, 0x00 ; 0 - 5f4: a9 01 movw r20, r18 - 5f6: 0e 94 2f 06 call 0xc5e ; 0xc5e <__cmpsf2> - 5fa: 88 23 and r24, r24 - 5fc: 0c f4 brge .+2 ; 0x600 <__stack+0x1a1> - 5fe: 99 c1 rjmp .+818 ; 0x932 <__stack+0x4d3> + 6b2: 20 e0 ldi r18, 0x00 ; 0 + 6b4: 30 e0 ldi r19, 0x00 ; 0 + 6b6: a9 01 movw r20, r18 + 6b8: 0e 94 8d 06 call 0xd1a ; 0xd1a <__cmpsf2> + 6bc: 88 23 and r24, r24 + 6be: 0c f4 brge .+2 ; 0x6c2 <__stack+0x263> + 6c0: 99 c1 rjmp .+818 ; 0x9f4 <__stack+0x595> val = 0; if(val > 20) - 600: 20 e0 ldi r18, 0x00 ; 0 - 602: 30 e0 ldi r19, 0x00 ; 0 - 604: 40 ea ldi r20, 0xA0 ; 160 - 606: 51 e4 ldi r21, 0x41 ; 65 - 608: 6f 2d mov r22, r15 - 60a: 7e 2d mov r23, r14 - 60c: 83 2d mov r24, r3 - 60e: 92 2d mov r25, r2 - 610: 0e 94 11 07 call 0xe22 ; 0xe22 <__gesf2> - 614: 18 16 cp r1, r24 - 616: 0c f4 brge .+2 ; 0x61a <__stack+0x1bb> - 618: 91 c1 rjmp .+802 ; 0x93c <__stack+0x4dd> - 61a: 7f 2d mov r23, r15 - 61c: 6e 2d mov r22, r14 - 61e: 93 2d mov r25, r3 - 620: 82 2d mov r24, r2 - 622: 90 c1 rjmp .+800 ; 0x944 <__stack+0x4e5> -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 624: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 626: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 628: 5d 9b sbis 0x0b, 5 ; 11 - 62a: fe cf rjmp .-4 ; 0x628 <__stack+0x1c9> - UDR = c; - 62c: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 62e: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 630: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 632: 81 91 ld r24, Z+ - 634: 81 11 cpse r24, r1 - 636: f6 cf rjmp .-20 ; 0x624 <__stack+0x1c5> - o.setPwm(0, pwm_value); - char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); - 638: 8e 01 movw r16, r28 - 63a: 09 5e subi r16, 0xE9 ; 233 - 63c: 1f 4f sbci r17, 0xFF ; 255 - 63e: 22 e0 ldi r18, 0x02 ; 2 - 640: 4a e0 ldi r20, 0x0A ; 10 - 642: 6f 2d mov r22, r15 - 644: 7e 2d mov r23, r14 - 646: 83 2d mov r24, r3 - 648: 92 2d mov r25, r2 - 64a: 0e 94 92 07 call 0xf24 ; 0xf24 - 64e: fc 01 movw r30, r24 - 650: 20 81 ld r18, Z - 652: 22 23 and r18, r18 - 654: 59 f0 breq .+22 ; 0x66c <__stack+0x20d> - l.off(l.YELLOW); - r.send("#### End Bootup ###########################################\n"); - l.on(l.GREEN); -} - -int main(void) - 656: 31 96 adiw r30, 0x01 ; 1 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 658: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 65a: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 65c: 5d 9b sbis 0x0b, 5 ; 11 - 65e: fe cf rjmp .-4 ; 0x65c <__stack+0x1fd> - UDR = c; - 660: 2c b9 out 0x0c, r18 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 662: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 664: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 666: 21 91 ld r18, Z+ - 668: 21 11 cpse r18, r1 - 66a: f6 cf rjmp .-20 ; 0x658 <__stack+0x1f9> -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 66c: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 66e: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 670: 5d 9b sbis 0x0b, 5 ; 11 - 672: fe cf rjmp .-4 ; 0x670 <__stack+0x211> - UDR = c; - 674: 8b e3 ldi r24, 0x3B ; 59 - 676: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 678: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 67a: bb 9a sbi 0x17, 3 ; 23 - 67c: 0f 2e mov r0, r31 - 67e: fa e6 ldi r31, 0x6A ; 106 - 680: ef 2e mov r14, r31 - 682: f1 e0 ldi r31, 0x01 ; 1 - 684: ff 2e mov r15, r31 - 686: f0 2d mov r31, r0 - 688: f7 01 movw r30, r14 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 68a: 83 e6 ldi r24, 0x63 ; 99 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 68c: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 68e: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 690: 5d 9b sbis 0x0b, 5 ; 11 - 692: fe cf rjmp .-4 ; 0x690 <__stack+0x231> - UDR = c; - 694: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 696: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 698: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 69a: 81 91 ld r24, Z+ - 69c: 81 11 cpse r24, r1 - 69e: f6 cf rjmp .-20 ; 0x68c <__stack+0x22d> - target_temp = temp; - } - pwm_value = (target_temp+5) - tm; - o.setPwm(0, pwm_value); - char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); - char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); - 6a0: b4 01 movw r22, r8 - 6a2: 6a 0d add r22, r10 - 6a4: 7b 1d adc r23, r11 - 6a6: 80 e0 ldi r24, 0x00 ; 0 - 6a8: 90 e0 ldi r25, 0x00 ; 0 - 6aa: 0e 94 5f 06 call 0xcbe ; 0xcbe <__floatunsisf> - 6ae: 20 e0 ldi r18, 0x00 ; 0 - 6b0: 30 e0 ldi r19, 0x00 ; 0 - 6b2: 40 e0 ldi r20, 0x00 ; 0 - 6b4: 5f e3 ldi r21, 0x3F ; 63 - 6b6: 0e 94 15 07 call 0xe2a ; 0xe2a <__mulsf3> - 6ba: 8e 01 movw r16, r28 - 6bc: 04 5f subi r16, 0xF4 ; 244 - 6be: 1f 4f sbci r17, 0xFF ; 255 - 6c0: 22 e0 ldi r18, 0x02 ; 2 - 6c2: 4a e0 ldi r20, 0x0A ; 10 - 6c4: 0e 94 92 07 call 0xf24 ; 0xf24 - 6c8: fc 01 movw r30, r24 - 6ca: 20 81 ld r18, Z - 6cc: 22 23 and r18, r18 - 6ce: 59 f0 breq .+22 ; 0x6e6 <__stack+0x287> - l.off(l.YELLOW); - r.send("#### End Bootup ###########################################\n"); - l.on(l.GREEN); -} - -int main(void) - 6d0: 31 96 adiw r30, 0x01 ; 1 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 6d2: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 6d4: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 6d6: 5d 9b sbis 0x0b, 5 ; 11 - 6d8: fe cf rjmp .-4 ; 0x6d6 <__stack+0x277> - UDR = c; - 6da: 2c b9 out 0x0c, r18 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 6dc: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 6de: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 6e0: 21 91 ld r18, Z+ - 6e2: 21 11 cpse r18, r1 - 6e4: f6 cf rjmp .-20 ; 0x6d2 <__stack+0x273> + 6c2: 20 e0 ldi r18, 0x00 ; 0 + 6c4: 30 e0 ldi r19, 0x00 ; 0 + 6c6: 40 ea ldi r20, 0xA0 ; 160 + 6c8: 51 e4 ldi r21, 0x41 ; 65 + 6ca: 6f 2d mov r22, r15 + 6cc: 7e 2d mov r23, r14 + 6ce: 83 2d mov r24, r3 + 6d0: 92 2d mov r25, r2 + 6d2: 0e 94 d7 07 call 0xfae ; 0xfae <__gesf2> + 6d6: 18 16 cp r1, r24 + 6d8: 0c f4 brge .+2 ; 0x6dc <__stack+0x27d> + 6da: 91 c1 rjmp .+802 ; 0x9fe <__stack+0x59f> + 6dc: 3f 2d mov r19, r15 + 6de: 2e 2d mov r18, r14 + 6e0: 93 2d mov r25, r3 + 6e2: 82 2d mov r24, r2 + 6e4: 90 c1 rjmp .+800 ; 0xa06 <__stack+0x5a7> namespace avrlib { struct portb @@ -1976,385 +1813,305 @@ namespace avrlib { 6ea: 5d 9b sbis 0x0b, 5 ; 11 6ec: fe cf rjmp .-4 ; 0x6ea <__stack+0x28b> UDR = c; - 6ee: 8b e3 ldi r24, 0x3B ; 59 - 6f0: 8c b9 out 0x0c, r24 ; 12 + 6ee: 8c b9 out 0x0c, r24 ; 12 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 6f2: c3 98 cbi 0x18, 3 ; 24 + 6f0: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 6f4: bb 9a sbi 0x17, 3 ; 23 - 6f6: ee e6 ldi r30, 0x6E ; 110 - 6f8: f1 e0 ldi r31, 0x01 ; 1 + 6f2: bb 9a sbi 0x17, 3 ; 23 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - 6fa: 86 e7 ldi r24, 0x76 ; 118 + 6f4: 81 91 ld r24, Z+ + 6f6: 81 11 cpse r24, r1 + 6f8: f6 cf rjmp .-20 ; 0x6e6 <__stack+0x287> + o.setPwm(0, pwm_value); + char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); + 6fa: 8e 01 movw r16, r28 + 6fc: 09 5e subi r16, 0xE9 ; 233 + 6fe: 1f 4f sbci r17, 0xFF ; 255 + 700: 22 e0 ldi r18, 0x02 ; 2 + 702: 4a e0 ldi r20, 0x0A ; 10 + 704: 6f 2d mov r22, r15 + 706: 7e 2d mov r23, r14 + 708: 83 2d mov r24, r3 + 70a: 92 2d mov r25, r2 + 70c: 0e 94 44 08 call 0x1088 ; 0x1088 + 710: fc 01 movw r30, r24 + 712: 20 81 ld r18, Z + 714: 22 23 and r18, r18 + 716: 59 f0 breq .+22 ; 0x72e <__stack+0x2cf> + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + 718: 31 96 adiw r30, 0x01 ; 1 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 6fc: c3 9a sbi 0x18, 3 ; 24 + 71a: c3 9a sbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 6fe: bb 9a sbi 0x17, 3 ; 23 + 71c: bb 9a sbi 0x17, 3 ; 23 UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 700: 5d 9b sbis 0x0b, 5 ; 11 - 702: fe cf rjmp .-4 ; 0x700 <__stack+0x2a1> + 71e: 5d 9b sbis 0x0b, 5 ; 11 + 720: fe cf rjmp .-4 ; 0x71e <__stack+0x2bf> UDR = c; - 704: 8c b9 out 0x0c, r24 ; 12 + 722: 2c b9 out 0x0c, r18 ; 12 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 706: c3 98 cbi 0x18, 3 ; 24 + 724: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 708: bb 9a sbi 0x17, 3 ; 23 + 726: bb 9a sbi 0x17, 3 ; 23 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - 70a: 81 91 ld r24, Z+ - 70c: 81 11 cpse r24, r1 - 70e: f6 cf rjmp .-20 ; 0x6fc <__stack+0x29d> + 728: 21 91 ld r18, Z+ + 72a: 21 11 cpse r18, r1 + 72c: f6 cf rjmp .-20 ; 0x71a <__stack+0x2bb> +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 72e: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 730: bb 9a sbi 0x17, 3 ; 23 + UBRRH = 0; + UBRRL = (F_CPU / (baudrate * 16L) - 1); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + 732: 5d 9b sbis 0x0b, 5 ; 11 + 734: fe cf rjmp .-4 ; 0x732 <__stack+0x2d3> + UDR = c; + 736: 8b e3 ldi r24, 0x3B ; 59 + 738: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 73a: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 73c: bb 9a sbi 0x17, 3 ; 23 + 73e: 0f 2e mov r0, r31 + 740: fa e6 ldi r31, 0x6A ; 106 + 742: ef 2e mov r14, r31 + 744: f1 e0 ldi r31, 0x01 ; 1 + 746: ff 2e mov r15, r31 + 748: f0 2d mov r31, r0 + 74a: f7 01 movw r30, r14 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + 74c: 83 e6 ldi r24, 0x63 ; 99 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 74e: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 750: bb 9a sbi 0x17, 3 ; 23 + UBRRH = 0; + UBRRL = (F_CPU / (baudrate * 16L) - 1); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + 752: 5d 9b sbis 0x0b, 5 ; 11 + 754: fe cf rjmp .-4 ; 0x752 <__stack+0x2f3> + UDR = c; + 756: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 758: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 75a: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + 75c: 81 91 ld r24, Z+ + 75e: 81 11 cpse r24, r1 + 760: f6 cf rjmp .-20 ; 0x74e <__stack+0x2ef> + target_temp = temp; } pwm_value = (target_temp+5) - tm; o.setPwm(0, pwm_value); char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); - r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); - 710: 4a e0 ldi r20, 0x0A ; 10 - 712: 50 e0 ldi r21, 0x00 ; 0 - 714: be 01 movw r22, r28 - 716: 64 5f subi r22, 0xF4 ; 244 - 718: 7f 4f sbci r23, 0xFF ; 255 - 71a: c5 01 movw r24, r10 - 71c: 0e 94 b3 07 call 0xf66 ; 0xf66 - 720: fc 01 movw r30, r24 - 722: 20 81 ld r18, Z - 724: 22 23 and r18, r18 - 726: 59 f0 breq .+22 ; 0x73e <__stack+0x2df> + 762: b4 01 movw r22, r8 + 764: 6a 0d add r22, r10 + 766: 7b 1d adc r23, r11 + 768: 80 e0 ldi r24, 0x00 ; 0 + 76a: 90 e0 ldi r25, 0x00 ; 0 + 76c: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> + 770: 20 e0 ldi r18, 0x00 ; 0 + 772: 30 e0 ldi r19, 0x00 ; 0 + 774: 40 e0 ldi r20, 0x00 ; 0 + 776: 5f e3 ldi r21, 0x3F ; 63 + 778: 0e 94 db 07 call 0xfb6 ; 0xfb6 <__mulsf3> + 77c: 8e 01 movw r16, r28 + 77e: 04 5f subi r16, 0xF4 ; 244 + 780: 1f 4f sbci r17, 0xFF ; 255 + 782: 22 e0 ldi r18, 0x02 ; 2 + 784: 4a e0 ldi r20, 0x0A ; 10 + 786: 0e 94 44 08 call 0x1088 ; 0x1088 + 78a: fc 01 movw r30, r24 + 78c: 20 81 ld r18, Z + 78e: 22 23 and r18, r18 + 790: 59 f0 breq .+22 ; 0x7a8 <__stack+0x349> l.off(l.YELLOW); r.send("#### End Bootup ###########################################\n"); l.on(l.GREEN); } int main(void) - 728: 31 96 adiw r30, 0x01 ; 1 + 792: 31 96 adiw r30, 0x01 ; 1 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 72a: c3 9a sbi 0x18, 3 ; 24 + 794: c3 9a sbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 72c: bb 9a sbi 0x17, 3 ; 23 + 796: bb 9a sbi 0x17, 3 ; 23 UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 72e: 5d 9b sbis 0x0b, 5 ; 11 - 730: fe cf rjmp .-4 ; 0x72e <__stack+0x2cf> + 798: 5d 9b sbis 0x0b, 5 ; 11 + 79a: fe cf rjmp .-4 ; 0x798 <__stack+0x339> UDR = c; - 732: 2c b9 out 0x0c, r18 ; 12 + 79c: 2c b9 out 0x0c, r18 ; 12 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 734: c3 98 cbi 0x18, 3 ; 24 + 79e: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 736: bb 9a sbi 0x17, 3 ; 23 + 7a0: bb 9a sbi 0x17, 3 ; 23 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - 738: 21 91 ld r18, Z+ - 73a: 21 11 cpse r18, r1 - 73c: f6 cf rjmp .-20 ; 0x72a <__stack+0x2cb> + 7a2: 21 91 ld r18, Z+ + 7a4: 21 11 cpse r18, r1 + 7a6: f6 cf rjmp .-20 ; 0x794 <__stack+0x335> namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 73e: c3 9a sbi 0x18, 3 ; 24 + 7a8: c3 9a sbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 740: bb 9a sbi 0x17, 3 ; 23 + 7aa: bb 9a sbi 0x17, 3 ; 23 UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 742: 5d 9b sbis 0x0b, 5 ; 11 - 744: fe cf rjmp .-4 ; 0x742 <__stack+0x2e3> - UDR = c; - 746: 8b e3 ldi r24, 0x3B ; 59 - 748: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 74a: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 74c: bb 9a sbi 0x17, 3 ; 23 - 74e: e2 e7 ldi r30, 0x72 ; 114 - 750: f1 e0 ldi r31, 0x01 ; 1 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 752: 86 e7 ldi r24, 0x76 ; 118 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 754: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 756: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 758: 5d 9b sbis 0x0b, 5 ; 11 - 75a: fe cf rjmp .-4 ; 0x758 <__stack+0x2f9> - UDR = c; - 75c: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 75e: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 760: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 762: 81 91 ld r24, Z+ - 764: 81 11 cpse r24, r1 - 766: f6 cf rjmp .-20 ; 0x754 <__stack+0x2f5> - pwm_value = (target_temp+5) - tm; - o.setPwm(0, pwm_value); - char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); - char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); - r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); - r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); - 768: 4a e0 ldi r20, 0x0A ; 10 - 76a: 50 e0 ldi r21, 0x00 ; 0 - 76c: be 01 movw r22, r28 - 76e: 64 5f subi r22, 0xF4 ; 244 - 770: 7f 4f sbci r23, 0xFF ; 255 - 772: c4 01 movw r24, r8 - 774: 0e 94 b3 07 call 0xf66 ; 0xf66 - 778: fc 01 movw r30, r24 - 77a: 20 81 ld r18, Z - 77c: 22 23 and r18, r18 - 77e: 59 f0 breq .+22 ; 0x796 <__stack+0x337> - l.off(l.YELLOW); - r.send("#### End Bootup ###########################################\n"); - l.on(l.GREEN); -} - -int main(void) - 780: 31 96 adiw r30, 0x01 ; 1 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 782: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 784: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 786: 5d 9b sbis 0x0b, 5 ; 11 - 788: fe cf rjmp .-4 ; 0x786 <__stack+0x327> - UDR = c; - 78a: 2c b9 out 0x0c, r18 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 78c: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 78e: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 790: 21 91 ld r18, Z+ - 792: 21 11 cpse r18, r1 - 794: f6 cf rjmp .-20 ; 0x782 <__stack+0x323> -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 796: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 798: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 79a: 5d 9b sbis 0x0b, 5 ; 11 - 79c: fe cf rjmp .-4 ; 0x79a <__stack+0x33b> - UDR = c; - 79e: 8b e3 ldi r24, 0x3B ; 59 - 7a0: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 7a2: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 7a4: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 7a6: 83 e6 ldi r24, 0x63 ; 99 - 7a8: f7 01 movw r30, r14 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 7aa: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 7ac: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 7ae: 5d 9b sbis 0x0b, 5 ; 11 - 7b0: fe cf rjmp .-4 ; 0x7ae <__stack+0x34f> + 7ac: 5d 9b sbis 0x0b, 5 ; 11 + 7ae: fe cf rjmp .-4 ; 0x7ac <__stack+0x34d> UDR = c; + 7b0: 8b e3 ldi r24, 0x3B ; 59 7b2: 8c b9 out 0x0c, r24 ; 12 namespace avrlib { @@ -2370,204 +2127,241 @@ namespace avrlib { static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } 7b6: bb 9a sbi 0x17, 3 ; 23 + 7b8: ee e6 ldi r30, 0x6E ; 110 + 7ba: f1 e0 ldi r31, 0x01 ; 1 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - 7b8: 81 91 ld r24, Z+ - 7ba: 81 11 cpse r24, r1 - 7bc: f6 cf rjmp .-20 ; 0x7aa <__stack+0x34b> + 7bc: 86 e7 ldi r24, 0x76 ; 118 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 7be: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 7c0: bb 9a sbi 0x17, 3 ; 23 + UBRRH = 0; + UBRRL = (F_CPU / (baudrate * 16L) - 1); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + 7c2: 5d 9b sbis 0x0b, 5 ; 11 + 7c4: fe cf rjmp .-4 ; 0x7c2 <__stack+0x363> + UDR = c; + 7c6: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 7c8: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 7ca: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + 7cc: 81 91 ld r24, Z+ + 7ce: 81 11 cpse r24, r1 + 7d0: f6 cf rjmp .-20 ; 0x7be <__stack+0x35f> + } + pwm_value = (target_temp+5) - tm; o.setPwm(0, pwm_value); char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); - r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); - char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); - 7be: 8e 01 movw r16, r28 - 7c0: 0f 5f subi r16, 0xFF ; 255 - 7c2: 1f 4f sbci r17, 0xFF ; 255 - 7c4: 22 e0 ldi r18, 0x02 ; 2 - 7c6: 4a e0 ldi r20, 0x0A ; 10 - 7c8: 67 2d mov r22, r7 - 7ca: 76 2d mov r23, r6 - 7cc: 85 2d mov r24, r5 - 7ce: 94 2d mov r25, r4 - 7d0: 0e 94 92 07 call 0xf24 ; 0xf24 - 7d4: fc 01 movw r30, r24 - 7d6: 20 81 ld r18, Z - 7d8: 22 23 and r18, r18 - 7da: 59 f0 breq .+22 ; 0x7f2 <__stack+0x393> + 7d2: 4a e0 ldi r20, 0x0A ; 10 + 7d4: 50 e0 ldi r21, 0x00 ; 0 + 7d6: be 01 movw r22, r28 + 7d8: 64 5f subi r22, 0xF4 ; 244 + 7da: 7f 4f sbci r23, 0xFF ; 255 + 7dc: c5 01 movw r24, r10 + 7de: 0e 94 65 08 call 0x10ca ; 0x10ca + 7e2: fc 01 movw r30, r24 + 7e4: 20 81 ld r18, Z + 7e6: 22 23 and r18, r18 + 7e8: 59 f0 breq .+22 ; 0x800 <__stack+0x3a1> l.off(l.YELLOW); r.send("#### End Bootup ###########################################\n"); l.on(l.GREEN); } int main(void) - 7dc: 31 96 adiw r30, 0x01 ; 1 + 7ea: 31 96 adiw r30, 0x01 ; 1 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 7de: c3 9a sbi 0x18, 3 ; 24 + 7ec: c3 9a sbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 7e0: bb 9a sbi 0x17, 3 ; 23 + 7ee: bb 9a sbi 0x17, 3 ; 23 UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 7e2: 5d 9b sbis 0x0b, 5 ; 11 - 7e4: fe cf rjmp .-4 ; 0x7e2 <__stack+0x383> + 7f0: 5d 9b sbis 0x0b, 5 ; 11 + 7f2: fe cf rjmp .-4 ; 0x7f0 <__stack+0x391> UDR = c; - 7e6: 2c b9 out 0x0c, r18 ; 12 + 7f4: 2c b9 out 0x0c, r18 ; 12 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 7e8: c3 98 cbi 0x18, 3 ; 24 + 7f6: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 7ea: bb 9a sbi 0x17, 3 ; 23 + 7f8: bb 9a sbi 0x17, 3 ; 23 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - 7ec: 21 91 ld r18, Z+ - 7ee: 21 11 cpse r18, r1 - 7f0: f6 cf rjmp .-20 ; 0x7de <__stack+0x37f> + 7fa: 21 91 ld r18, Z+ + 7fc: 21 11 cpse r18, r1 + 7fe: f6 cf rjmp .-20 ; 0x7ec <__stack+0x38d> namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 7f2: c3 9a sbi 0x18, 3 ; 24 + 800: c3 9a sbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 7f4: bb 9a sbi 0x17, 3 ; 23 + 802: bb 9a sbi 0x17, 3 ; 23 UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 7f6: 5d 9b sbis 0x0b, 5 ; 11 - 7f8: fe cf rjmp .-4 ; 0x7f6 <__stack+0x397> + 804: 5d 9b sbis 0x0b, 5 ; 11 + 806: fe cf rjmp .-4 ; 0x804 <__stack+0x3a5> UDR = c; - 7fa: 8b e3 ldi r24, 0x3B ; 59 - 7fc: 8c b9 out 0x0c, r24 ; 12 + 808: 8b e3 ldi r24, 0x3B ; 59 + 80a: 8c b9 out 0x0c, r24 ; 12 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 7fe: c3 98 cbi 0x18, 3 ; 24 + 80c: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 800: bb 9a sbi 0x17, 3 ; 23 - 802: e6 e7 ldi r30, 0x76 ; 118 - 804: f1 e0 ldi r31, 0x01 ; 1 + 80e: bb 9a sbi 0x17, 3 ; 23 + 810: e2 e7 ldi r30, 0x72 ; 114 + 812: f1 e0 ldi r31, 0x01 ; 1 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - 806: 83 e6 ldi r24, 0x63 ; 99 + 814: 86 e7 ldi r24, 0x76 ; 118 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 808: c3 9a sbi 0x18, 3 ; 24 + 816: c3 9a sbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 80a: bb 9a sbi 0x17, 3 ; 23 + 818: bb 9a sbi 0x17, 3 ; 23 UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 80c: 5d 9b sbis 0x0b, 5 ; 11 - 80e: fe cf rjmp .-4 ; 0x80c <__stack+0x3ad> + 81a: 5d 9b sbis 0x0b, 5 ; 11 + 81c: fe cf rjmp .-4 ; 0x81a <__stack+0x3bb> UDR = c; - 810: 8c b9 out 0x0c, r24 ; 12 + 81e: 8c b9 out 0x0c, r24 ; 12 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 812: c3 98 cbi 0x18, 3 ; 24 + 820: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 814: bb 9a sbi 0x17, 3 ; 23 + 822: bb 9a sbi 0x17, 3 ; 23 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - 816: 81 91 ld r24, Z+ - 818: 81 11 cpse r24, r1 - 81a: f6 cf rjmp .-20 ; 0x808 <__stack+0x3a9> + 824: 81 91 ld r24, Z+ + 826: 81 11 cpse r24, r1 + 828: f6 cf rjmp .-20 ; 0x816 <__stack+0x3b7> + pwm_value = (target_temp+5) - tm; + o.setPwm(0, pwm_value); char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); - char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); - r.send("c1="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); - 81c: 8e 01 movw r16, r28 - 81e: 0f 5f subi r16, 0xFF ; 255 - 820: 1f 4f sbci r17, 0xFF ; 255 - 822: 22 e0 ldi r18, 0x02 ; 2 - 824: 4a e0 ldi r20, 0x0A ; 10 - 826: fa a1 ldd r31, Y+34 ; 0x22 - 828: eb a1 ldd r30, Y+35 ; 0x23 - 82a: 5c a1 ldd r21, Y+36 ; 0x24 - 82c: 3d a1 ldd r19, Y+37 ; 0x25 - 82e: 6f 2f mov r22, r31 - 830: 7e 2f mov r23, r30 - 832: 85 2f mov r24, r21 - 834: 93 2f mov r25, r19 - 836: 0e 94 92 07 call 0xf24 ; 0xf24 + 82a: 4a e0 ldi r20, 0x0A ; 10 + 82c: 50 e0 ldi r21, 0x00 ; 0 + 82e: be 01 movw r22, r28 + 830: 64 5f subi r22, 0xF4 ; 244 + 832: 7f 4f sbci r23, 0xFF ; 255 + 834: c4 01 movw r24, r8 + 836: 0e 94 65 08 call 0x10ca ; 0x10ca 83a: fc 01 movw r30, r24 83c: 20 81 ld r18, Z 83e: 22 23 and r18, r18 @@ -2665,335 +2459,315 @@ namespace avrlib { static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } 866: bb 9a sbi 0x17, 3 ; 23 - 868: ea e7 ldi r30, 0x7A ; 122 - 86a: f1 e0 ldi r31, 0x01 ; 1 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - 86c: 83 e6 ldi r24, 0x63 ; 99 + 868: 83 e6 ldi r24, 0x63 ; 99 + 86a: f7 01 movw r30, r14 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 86e: c3 9a sbi 0x18, 3 ; 24 + 86c: c3 9a sbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 870: bb 9a sbi 0x17, 3 ; 23 + 86e: bb 9a sbi 0x17, 3 ; 23 UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 872: 5d 9b sbis 0x0b, 5 ; 11 - 874: fe cf rjmp .-4 ; 0x872 <__stack+0x413> + 870: 5d 9b sbis 0x0b, 5 ; 11 + 872: fe cf rjmp .-4 ; 0x870 <__stack+0x411> UDR = c; - 876: 8c b9 out 0x0c, r24 ; 12 + 874: 8c b9 out 0x0c, r24 ; 12 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 878: c3 98 cbi 0x18, 3 ; 24 + 876: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 87a: bb 9a sbi 0x17, 3 ; 23 + 878: bb 9a sbi 0x17, 3 ; 23 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - 87c: 81 91 ld r24, Z+ - 87e: 81 11 cpse r24, r1 - 880: f6 cf rjmp .-20 ; 0x86e <__stack+0x40f> + 87a: 81 91 ld r24, Z+ + 87c: 81 11 cpse r24, r1 + 87e: f6 cf rjmp .-20 ; 0x86c <__stack+0x40d> + o.setPwm(0, pwm_value); + char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); - r.send("c1="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); - r.send("c2="); r.send(dtostrf(t1, 10, 2, cs)); r.send(";"); - 882: 8e 01 movw r16, r28 - 884: 0f 5f subi r16, 0xFF ; 255 - 886: 1f 4f sbci r17, 0xFF ; 255 - 888: 22 e0 ldi r18, 0x02 ; 2 - 88a: 4a e0 ldi r20, 0x0A ; 10 - 88c: fe a1 ldd r31, Y+38 ; 0x26 - 88e: ef a1 ldd r30, Y+39 ; 0x27 - 890: 6f 2f mov r22, r31 - 892: 7e 2f mov r23, r30 - 894: 8d 2d mov r24, r13 - 896: 9c 2d mov r25, r12 - 898: 0e 94 92 07 call 0xf24 ; 0xf24 - 89c: fc 01 movw r30, r24 - 89e: 20 81 ld r18, Z - 8a0: 22 23 and r18, r18 - 8a2: 59 f0 breq .+22 ; 0x8ba <__stack+0x45b> + 880: 8e 01 movw r16, r28 + 882: 0f 5f subi r16, 0xFF ; 255 + 884: 1f 4f sbci r17, 0xFF ; 255 + 886: 22 e0 ldi r18, 0x02 ; 2 + 888: 4a e0 ldi r20, 0x0A ; 10 + 88a: 67 2d mov r22, r7 + 88c: 76 2d mov r23, r6 + 88e: 85 2d mov r24, r5 + 890: 94 2d mov r25, r4 + 892: 0e 94 44 08 call 0x1088 ; 0x1088 + 896: fc 01 movw r30, r24 + 898: 20 81 ld r18, Z + 89a: 22 23 and r18, r18 + 89c: 59 f0 breq .+22 ; 0x8b4 <__stack+0x455> l.off(l.YELLOW); r.send("#### End Bootup ###########################################\n"); l.on(l.GREEN); } int main(void) - 8a4: 31 96 adiw r30, 0x01 ; 1 + 89e: 31 96 adiw r30, 0x01 ; 1 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 8a6: c3 9a sbi 0x18, 3 ; 24 + 8a0: c3 9a sbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 8a8: bb 9a sbi 0x17, 3 ; 23 + 8a2: bb 9a sbi 0x17, 3 ; 23 UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 8aa: 5d 9b sbis 0x0b, 5 ; 11 - 8ac: fe cf rjmp .-4 ; 0x8aa <__stack+0x44b> + 8a4: 5d 9b sbis 0x0b, 5 ; 11 + 8a6: fe cf rjmp .-4 ; 0x8a4 <__stack+0x445> UDR = c; - 8ae: 2c b9 out 0x0c, r18 ; 12 + 8a8: 2c b9 out 0x0c, r18 ; 12 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 8b0: c3 98 cbi 0x18, 3 ; 24 + 8aa: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 8b2: bb 9a sbi 0x17, 3 ; 23 + 8ac: bb 9a sbi 0x17, 3 ; 23 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - 8b4: 21 91 ld r18, Z+ - 8b6: 21 11 cpse r18, r1 - 8b8: f6 cf rjmp .-20 ; 0x8a6 <__stack+0x447> + 8ae: 21 91 ld r18, Z+ + 8b0: 21 11 cpse r18, r1 + 8b2: f6 cf rjmp .-20 ; 0x8a0 <__stack+0x441> namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 8ba: c3 9a sbi 0x18, 3 ; 24 + 8b4: c3 9a sbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 8bc: bb 9a sbi 0x17, 3 ; 23 + 8b6: bb 9a sbi 0x17, 3 ; 23 UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 8be: 5d 9b sbis 0x0b, 5 ; 11 - 8c0: fe cf rjmp .-4 ; 0x8be <__stack+0x45f> + 8b8: 5d 9b sbis 0x0b, 5 ; 11 + 8ba: fe cf rjmp .-4 ; 0x8b8 <__stack+0x459> UDR = c; - 8c2: 8b e3 ldi r24, 0x3B ; 59 - 8c4: 8c b9 out 0x0c, r24 ; 12 + 8bc: 8b e3 ldi r24, 0x3B ; 59 + 8be: 8c b9 out 0x0c, r24 ; 12 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 8c6: c3 98 cbi 0x18, 3 ; 24 + 8c0: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 8c8: bb 9a sbi 0x17, 3 ; 23 - 8ca: ee e7 ldi r30, 0x7E ; 126 - 8cc: f1 e0 ldi r31, 0x01 ; 1 + 8c2: bb 9a sbi 0x17, 3 ; 23 + 8c4: e6 e7 ldi r30, 0x76 ; 118 + 8c6: f1 e0 ldi r31, 0x01 ; 1 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - 8ce: 88 e6 ldi r24, 0x68 ; 104 + 8c8: 83 e6 ldi r24, 0x63 ; 99 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 8d0: c3 9a sbi 0x18, 3 ; 24 + 8ca: c3 9a sbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 8d2: bb 9a sbi 0x17, 3 ; 23 + 8cc: bb 9a sbi 0x17, 3 ; 23 UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 8d4: 5d 9b sbis 0x0b, 5 ; 11 - 8d6: fe cf rjmp .-4 ; 0x8d4 <__stack+0x475> + 8ce: 5d 9b sbis 0x0b, 5 ; 11 + 8d0: fe cf rjmp .-4 ; 0x8ce <__stack+0x46f> UDR = c; - 8d8: 8c b9 out 0x0c, r24 ; 12 + 8d2: 8c b9 out 0x0c, r24 ; 12 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 8da: c3 98 cbi 0x18, 3 ; 24 + 8d4: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 8dc: bb 9a sbi 0x17, 3 ; 23 + 8d6: bb 9a sbi 0x17, 3 ; 23 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - 8de: 81 91 ld r24, Z+ - 8e0: 81 11 cpse r24, r1 - 8e2: f6 cf rjmp .-20 ; 0x8d0 <__stack+0x471> - r.send("c1="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); - r.send("c2="); r.send(dtostrf(t1, 10, 2, cs)); r.send(";"); - //temp_ziel_wert - //motor_ziel_wert - r.send((o.isOn(0)==1)?"hon=1;":"hon=0;"); - r.send((o.isOn(1)==1)?"mon=1;":"mon=0;"); - 8e4: 9a 9b sbis 0x13, 2 ; 19 - 8e6: 03 c0 rjmp .+6 ; 0x8ee <__stack+0x48f> - 8e8: e2 e6 ldi r30, 0x62 ; 98 - 8ea: f1 e0 ldi r31, 0x01 ; 1 - 8ec: 02 c0 rjmp .+4 ; 0x8f2 <__stack+0x493> - 8ee: eb e5 ldi r30, 0x5B ; 91 - 8f0: f1 e0 ldi r31, 0x01 ; 1 - 8f2: 80 81 ld r24, Z - 8f4: 88 23 and r24, r24 - 8f6: 59 f0 breq .+22 ; 0x90e <__stack+0x4af> + 8d8: 81 91 ld r24, Z+ + 8da: 81 11 cpse r24, r1 + 8dc: f6 cf rjmp .-20 ; 0x8ca <__stack+0x46b> + char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); + char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); + r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); + r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); + char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); + r.send("c0="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); + 8de: 8e 01 movw r16, r28 + 8e0: 0f 5f subi r16, 0xFF ; 255 + 8e2: 1f 4f sbci r17, 0xFF ; 255 + 8e4: 22 e0 ldi r18, 0x02 ; 2 + 8e6: 4a e0 ldi r20, 0x0A ; 10 + 8e8: fa a1 ldd r31, Y+34 ; 0x22 + 8ea: eb a1 ldd r30, Y+35 ; 0x23 + 8ec: 5c a1 ldd r21, Y+36 ; 0x24 + 8ee: 3d a1 ldd r19, Y+37 ; 0x25 + 8f0: 6f 2f mov r22, r31 + 8f2: 7e 2f mov r23, r30 + 8f4: 85 2f mov r24, r21 + 8f6: 93 2f mov r25, r19 + 8f8: 0e 94 44 08 call 0x1088 ; 0x1088 + 8fc: fc 01 movw r30, r24 + 8fe: 20 81 ld r18, Z + 900: 22 23 and r18, r18 + 902: 59 f0 breq .+22 ; 0x91a <__stack+0x4bb> l.off(l.YELLOW); r.send("#### End Bootup ###########################################\n"); l.on(l.GREEN); } int main(void) - 8f8: 31 96 adiw r30, 0x01 ; 1 + 904: 31 96 adiw r30, 0x01 ; 1 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 8fa: c3 9a sbi 0x18, 3 ; 24 + 906: c3 9a sbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 8fc: bb 9a sbi 0x17, 3 ; 23 + 908: bb 9a sbi 0x17, 3 ; 23 UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 8fe: 5d 9b sbis 0x0b, 5 ; 11 - 900: fe cf rjmp .-4 ; 0x8fe <__stack+0x49f> + 90a: 5d 9b sbis 0x0b, 5 ; 11 + 90c: fe cf rjmp .-4 ; 0x90a <__stack+0x4ab> UDR = c; - 902: 8c b9 out 0x0c, r24 ; 12 + 90e: 2c b9 out 0x0c, r18 ; 12 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 904: c3 98 cbi 0x18, 3 ; 24 + 910: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 906: bb 9a sbi 0x17, 3 ; 23 + 912: bb 9a sbi 0x17, 3 ; 23 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - 908: 81 91 ld r24, Z+ - 90a: 81 11 cpse r24, r1 - 90c: f6 cf rjmp .-20 ; 0x8fa <__stack+0x49b> + 914: 21 91 ld r18, Z+ + 916: 21 11 cpse r18, r1 + 918: f6 cf rjmp .-20 ; 0x906 <__stack+0x4a7> namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 90e: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 910: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 912: 5d 9b sbis 0x0b, 5 ; 11 - 914: fe cf rjmp .-4 ; 0x912 <__stack+0x4b3> - UDR = c; - 916: 8a e0 ldi r24, 0x0A ; 10 - 918: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 91a: c3 98 cbi 0x18, 3 ; 24 + 91a: c3 9a sbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } @@ -3001,2088 +2775,2544 @@ namespace avrlib { static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } 91c: bb 9a sbi 0x17, 3 ; 23 - #else - //round up by default - __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); - #endif - - __builtin_avr_delay_cycles(__ticks_dc); - 91e: ff ef ldi r31, 0xFF ; 255 - 920: 21 ee ldi r18, 0xE1 ; 225 - 922: 34 e0 ldi r19, 0x04 ; 4 - 924: f1 50 subi r31, 0x01 ; 1 - 926: 20 40 sbci r18, 0x00 ; 0 - 928: 30 40 sbci r19, 0x00 ; 0 - 92a: e1 f7 brne .-8 ; 0x924 <__stack+0x4c5> - 92c: 00 c0 rjmp .+0 ; 0x92e <__stack+0x4cf> - 92e: 00 00 nop -{ - setup(); - int16_t target_temp = 25; - float pwm_value = 0; - while(1) - 930: 54 cd rjmp .-1368 ; 0x3da - if(ausg < 0) - ausg = 0; - if(ausg > 5) - ausg = 5; - if(val < 0) - val = 0; - 932: 70 e0 ldi r23, 0x00 ; 0 - 934: 60 e0 ldi r22, 0x00 ; 0 - 936: 90 e0 ldi r25, 0x00 ; 0 - 938: 80 e0 ldi r24, 0x00 ; 0 - 93a: 04 c0 rjmp .+8 ; 0x944 <__stack+0x4e5> - if(val > 20) - val = 20; - 93c: 70 e0 ldi r23, 0x00 ; 0 - 93e: 60 e0 ldi r22, 0x00 ; 0 - 940: 90 ea ldi r25, 0xA0 ; 160 - 942: 81 e4 ldi r24, 0x41 ; 65 - this->pwm[ausg] = (uint8_t)val; - 944: 46 2f mov r20, r22 - 946: 28 2f mov r18, r24 - 948: 67 2f mov r22, r23 - 94a: 74 2f mov r23, r20 - 94c: 89 2f mov r24, r25 - 94e: 92 2f mov r25, r18 - 950: 0e 94 33 06 call 0xc66 ; 0xc66 <__fixunssfsi> - 954: 60 93 cb 01 sts 0x01CB, r22 - 958: e5 e8 ldi r30, 0x85 ; 133 - 95a: f1 e0 ldi r31, 0x01 ; 1 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 95c: 80 e7 ldi r24, 0x70 ; 112 - 95e: 62 ce rjmp .-828 ; 0x624 <__stack+0x1c5> - -00000960 <__vector_6>: - r.send("\n"); - _delay_ms(100); - } -} - -ISR(TIMER1_COMPA_vect) { - 960: 1f 92 push r1 - 962: 0f 92 push r0 - 964: 0f b6 in r0, 0x3f ; 63 - 966: 0f 92 push r0 - 968: 11 24 eor r1, r1 - 96a: 2f 93 push r18 - 96c: 3f 93 push r19 - 96e: 4f 93 push r20 - 970: 5f 93 push r21 - 972: 6f 93 push r22 - 974: 7f 93 push r23 - 976: 8f 93 push r24 - 978: 9f 93 push r25 - 97a: af 93 push r26 - 97c: bf 93 push r27 - 97e: ef 93 push r30 - 980: ff 93 push r31 - if(ausg > 5) - ausg = 5; - return this->pwm[ausg]; - } - void timer() { - if (this->pct++ >= 20) { - 982: 80 91 ca 01 lds r24, 0x01CA - 986: 84 31 cpi r24, 0x14 ; 20 - 988: 08 f4 brcc .+2 ; 0x98c <__vector_6+0x2c> - 98a: 51 c0 rjmp .+162 ; 0xa2e <__vector_6+0xce> - this->pct=0; - 98c: 10 92 ca 01 sts 0x01CA, r1 - 990: 51 c0 rjmp .+162 ; 0xa34 <__vector_6+0xd4> - } - for(uint8_t i = 0; i < 6; i++) { - if(this->pwm[i] >= this->pct && this->pwm[i] != 0) { - 992: 82 2f mov r24, r18 - 994: 91 91 ld r25, Z+ - 996: 6c 91 ld r22, X - 998: 96 17 cp r25, r22 - 99a: 18 f1 brcs .+70 ; 0x9e2 <__vector_6+0x82> - 99c: 99 23 and r25, r25 - 99e: 09 f1 breq .+66 ; 0x9e2 <__vector_6+0x82> - this->on((1< - 9a6: 66 0f add r22, r22 - 9a8: 77 1f adc r23, r23 - 9aa: 0a 94 dec r0 - 9ac: e2 f7 brpl .-8 ; 0x9a6 <__vector_6+0x46> - 9ae: cb 01 movw r24, r22 - if(ausg & OUT6) { - out6::make_low(); - } - } - void on(uint8_t ausg = 255) { - if(ausg & OUT1) { - 9b0: 60 ff sbrs r22, 0 - 9b2: 02 c0 rjmp .+4 ; 0x9b8 <__vector_6+0x58> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - 9b4: aa 9a sbi 0x15, 2 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - 9b6: a2 9a sbi 0x14, 2 ; 20 - out1::make_high(); - } - if(ausg & OUT2) { - 9b8: 81 ff sbrs r24, 1 - 9ba: 02 c0 rjmp .+4 ; 0x9c0 <__vector_6+0x60> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - 9bc: ab 9a sbi 0x15, 3 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - 9be: a3 9a sbi 0x14, 3 ; 20 - out2::make_high(); - } - if(ausg & OUT3) { - 9c0: 82 ff sbrs r24, 2 - 9c2: 02 c0 rjmp .+4 ; 0x9c8 <__vector_6+0x68> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - 9c4: ac 9a sbi 0x15, 4 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - 9c6: a4 9a sbi 0x14, 4 ; 20 - out3::make_high(); - } - if(ausg & OUT4) { - 9c8: 83 ff sbrs r24, 3 - 9ca: 02 c0 rjmp .+4 ; 0x9d0 <__vector_6+0x70> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - 9cc: ad 9a sbi 0x15, 5 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - 9ce: a5 9a sbi 0x14, 5 ; 20 - out4::make_high(); - } - if(ausg & OUT5) { - 9d0: 84 ff sbrs r24, 4 - 9d2: 02 c0 rjmp .+4 ; 0x9d8 <__vector_6+0x78> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - 9d4: ae 9a sbi 0x15, 6 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - 9d6: a6 9a sbi 0x14, 6 ; 20 - out5::make_high(); - } - if(ausg & OUT6) { - 9d8: 85 ff sbrs r24, 5 - 9da: 22 c0 rjmp .+68 ; 0xa20 <__vector_6+0xc0> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - 9dc: af 9a sbi 0x15, 7 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - 9de: a7 9a sbi 0x14, 7 ; 20 - 9e0: 1f c0 rjmp .+62 ; 0xa20 <__vector_6+0xc0> - } - for(uint8_t i = 0; i < 6; i++) { - if(this->pwm[i] >= this->pct && this->pwm[i] != 0) { - this->on((1<off((1< - 9e6: 66 0f add r22, r22 - 9e8: 77 1f adc r23, r23 - 9ea: 8a 95 dec r24 - 9ec: e2 f7 brpl .-8 ; 0x9e6 <__vector_6+0x86> - 9ee: cb 01 movw r24, r22 - public: - SSR() { - init(); - } - void off(uint8_t ausg = 255) { - if(ausg & OUT1) { - 9f0: 60 ff sbrs r22, 0 - 9f2: 02 c0 rjmp .+4 ; 0x9f8 <__vector_6+0x98> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - 9f4: aa 98 cbi 0x15, 2 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - 9f6: a2 9a sbi 0x14, 2 ; 20 - out1::make_low(); - } - if(ausg & OUT2) { - 9f8: 81 ff sbrs r24, 1 - 9fa: 02 c0 rjmp .+4 ; 0xa00 <__vector_6+0xa0> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - 9fc: ab 98 cbi 0x15, 3 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - 9fe: a3 9a sbi 0x14, 3 ; 20 - out2::make_low(); - } - if(ausg & OUT3) { - a00: 82 ff sbrs r24, 2 - a02: 02 c0 rjmp .+4 ; 0xa08 <__vector_6+0xa8> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - a04: ac 98 cbi 0x15, 4 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - a06: a4 9a sbi 0x14, 4 ; 20 - out3::make_low(); - } - if(ausg & OUT4) { - a08: 83 ff sbrs r24, 3 - a0a: 02 c0 rjmp .+4 ; 0xa10 <__vector_6+0xb0> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - a0c: ad 98 cbi 0x15, 5 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - a0e: a5 9a sbi 0x14, 5 ; 20 - out4::make_low(); - } - if(ausg & OUT5) { - a10: 84 ff sbrs r24, 4 - a12: 02 c0 rjmp .+4 ; 0xa18 <__vector_6+0xb8> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - a14: ae 98 cbi 0x15, 6 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - a16: a6 9a sbi 0x14, 6 ; 20 - out5::make_low(); - } - if(ausg & OUT6) { - a18: 85 ff sbrs r24, 5 - a1a: 02 c0 rjmp .+4 ; 0xa20 <__vector_6+0xc0> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - a1c: af 98 cbi 0x15, 7 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - a1e: a7 9a sbi 0x14, 7 ; 20 - a20: 2f 5f subi r18, 0xFF ; 255 - a22: 3f 4f sbci r19, 0xFF ; 255 - } - void timer() { - if (this->pct++ >= 20) { - this->pct=0; - } - for(uint8_t i = 0; i < 6; i++) { - a24: 26 30 cpi r18, 0x06 ; 6 - a26: 31 05 cpc r19, r1 - a28: 09 f0 breq .+2 ; 0xa2c <__vector_6+0xcc> - a2a: b3 cf rjmp .-154 ; 0x992 <__vector_6+0x32> - a2c: 0c c0 rjmp .+24 ; 0xa46 <__vector_6+0xe6> - if(ausg > 5) - ausg = 5; - return this->pwm[ausg]; - } - void timer() { - if (this->pct++ >= 20) { - a2e: 8f 5f subi r24, 0xFF ; 255 - a30: 80 93 ca 01 sts 0x01CA, r24 - a34: eb ec ldi r30, 0xCB ; 203 - a36: f1 e0 ldi r31, 0x01 ; 1 - a38: 20 e0 ldi r18, 0x00 ; 0 - a3a: 30 e0 ldi r19, 0x00 ; 0 - this->pct=0; - } - for(uint8_t i = 0; i < 6; i++) { - if(this->pwm[i] >= this->pct && this->pwm[i] != 0) { - a3c: aa ec ldi r26, 0xCA ; 202 - a3e: b1 e0 ldi r27, 0x01 ; 1 - this->on((1<off((1< - o.timer(); -} - a46: ff 91 pop r31 - a48: ef 91 pop r30 - a4a: bf 91 pop r27 - a4c: af 91 pop r26 - a4e: 9f 91 pop r25 - a50: 8f 91 pop r24 - a52: 7f 91 pop r23 - a54: 6f 91 pop r22 - a56: 5f 91 pop r21 - a58: 4f 91 pop r20 - a5a: 3f 91 pop r19 - a5c: 2f 91 pop r18 - a5e: 0f 90 pop r0 - a60: 0f be out 0x3f, r0 ; 63 - a62: 0f 90 pop r0 - a64: 1f 90 pop r1 - a66: 18 95 reti - -00000a68 <__vector_1>: - -ISR(INT0_vect) { - a68: 1f 92 push r1 - a6a: 0f 92 push r0 - a6c: 0f b6 in r0, 0x3f ; 63 - a6e: 0f 92 push r0 - a70: 11 24 eor r1, r1 - a72: 8f 93 push r24 - } - void intr() { - GIFR = (1<: -#include "hardware/pin.hpp" - -template -class SSR { - public: - SSR() { - a88: fc 01 movw r30, r24 - a8a: 11 92 st Z+, r1 - a8c: 86 e0 ldi r24, 0x06 ; 6 - a8e: df 01 movw r26, r30 - a90: 1d 92 st X+, r1 - a92: 8a 95 dec r24 - a94: e9 f7 brne .-6 ; 0xa90 <_ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC1Ev+0x8> - a96: a2 9a sbi 0x14, 2 ; 20 - a98: a3 9a sbi 0x14, 3 ; 20 - a9a: a4 9a sbi 0x14, 4 ; 20 - a9c: a5 9a sbi 0x14, 5 ; 20 - a9e: a6 9a sbi 0x14, 6 ; 20 - aa0: a7 9a sbi 0x14, 7 ; 20 -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - aa2: aa 98 cbi 0x15, 2 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - aa4: a2 9a sbi 0x14, 2 ; 20 -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - aa6: ab 98 cbi 0x15, 3 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - aa8: a3 9a sbi 0x14, 3 ; 20 -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - aaa: ac 98 cbi 0x15, 4 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - aac: a4 9a sbi 0x14, 4 ; 20 -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - aae: ad 98 cbi 0x15, 5 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - ab0: a5 9a sbi 0x14, 5 ; 20 -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - ab2: ae 98 cbi 0x15, 6 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - ab4: a6 9a sbi 0x14, 6 ; 20 -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - ab6: af 98 cbi 0x15, 7 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - ab8: a7 9a sbi 0x14, 7 ; 20 - aba: 08 95 ret - -00000abc <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE>: -#define USART_H_ - -template -class Usart { - public: - Usart(ledclass l) { - abc: cf 93 push r28 - abe: df 93 push r29 - ac0: 1f 92 push r1 - ac2: cd b7 in r28, 0x3d ; 61 - ac4: de b7 in r29, 0x3e ; 62 - ac6: 69 83 std Y+1, r22 ; 0x01 - ac8: bc 9a sbi 0x17, 4 ; 23 - aca: bb 9a sbi 0x17, 3 ; 23 - acc: ba 9a sbi 0x17, 2 ; 23 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - ace: c4 98 cbi 0x18, 4 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - ad0: bc 9a sbi 0x17, 4 ; 23 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - ad2: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - ad4: bb 9a sbi 0x17, 3 ; 23 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - ad6: c2 98 cbi 0x18, 2 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - ad8: ba 9a sbi 0x17, 2 ; 23 - ada: 2f ef ldi r18, 0xFF ; 255 - adc: 3f ef ldi r19, 0xFF ; 255 - ade: fc 01 movw r30, r24 - ae0: 32 83 std Z+2, r19 ; 0x02 - ae2: 21 83 std Z+1, r18 ; 0x01 - this->temp = -1; - return t; - } - private: - void init() { - UCSRA = 0; - ae4: 1b b8 out 0x0b, r1 ; 11 - UCSRB = (1<led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - af8: 85 e5 ldi r24, 0x55 ; 85 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - afa: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - afc: bb 9a sbi 0x17, 3 ; 23 UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - afe: 5d 9b sbis 0x0b, 5 ; 11 - b00: fe cf rjmp .-4 ; 0xafe <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE+0x42> + 91e: 5d 9b sbis 0x0b, 5 ; 11 + 920: fe cf rjmp .-4 ; 0x91e <__stack+0x4bf> UDR = c; - b02: 8c b9 out 0x0c, r24 ; 12 + 922: 8b e3 ldi r24, 0x3B ; 59 + 924: 8c b9 out 0x0c, r24 ; 12 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - b04: c3 98 cbi 0x18, 3 ; 24 + 926: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - b06: bb 9a sbi 0x17, 3 ; 23 + 928: bb 9a sbi 0x17, 3 ; 23 + 92a: ea e7 ldi r30, 0x7A ; 122 + 92c: f1 e0 ldi r31, 0x01 ; 1 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - b08: 81 91 ld r24, Z+ - b0a: 81 11 cpse r24, r1 - b0c: f6 cf rjmp .-20 ; 0xafa <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE+0x3e> + 92e: 83 e6 ldi r24, 0x63 ; 99 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 930: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 932: bb 9a sbi 0x17, 3 ; 23 + UBRRH = 0; + UBRRL = (F_CPU / (baudrate * 16L) - 1); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + 934: 5d 9b sbis 0x0b, 5 ; 11 + 936: fe cf rjmp .-4 ; 0x934 <__stack+0x4d5> + UDR = c; + 938: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 93a: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 93c: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + 93e: 81 91 ld r24, Z+ + 940: 81 11 cpse r24, r1 + 942: f6 cf rjmp .-20 ; 0x930 <__stack+0x4d1> + char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); + r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); + r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); + char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); + r.send("c0="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); + r.send("c1="); r.send(dtostrf(t1, 10, 2, cs)); r.send(";"); + 944: 8e 01 movw r16, r28 + 946: 0f 5f subi r16, 0xFF ; 255 + 948: 1f 4f sbci r17, 0xFF ; 255 + 94a: 22 e0 ldi r18, 0x02 ; 2 + 94c: 4a e0 ldi r20, 0x0A ; 10 + 94e: fe a1 ldd r31, Y+38 ; 0x26 + 950: ef a1 ldd r30, Y+39 ; 0x27 + 952: 6f 2f mov r22, r31 + 954: 7e 2f mov r23, r30 + 956: 8d 2d mov r24, r13 + 958: 9c 2d mov r25, r12 + 95a: 0e 94 44 08 call 0x1088 ; 0x1088 + 95e: fc 01 movw r30, r24 + 960: 20 81 ld r18, Z + 962: 22 23 and r18, r18 + 964: 59 f0 breq .+22 ; 0x97c <__stack+0x51d> + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + 966: 31 96 adiw r30, 0x01 ; 1 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 968: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 96a: bb 9a sbi 0x17, 3 ; 23 + UBRRH = 0; + UBRRL = (F_CPU / (baudrate * 16L) - 1); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + 96c: 5d 9b sbis 0x0b, 5 ; 11 + 96e: fe cf rjmp .-4 ; 0x96c <__stack+0x50d> + UDR = c; + 970: 2c b9 out 0x0c, r18 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 972: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 974: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + 976: 21 91 ld r18, Z+ + 978: 21 11 cpse r18, r1 + 97a: f6 cf rjmp .-20 ; 0x968 <__stack+0x509> +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 97c: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 97e: bb 9a sbi 0x17, 3 ; 23 + UBRRH = 0; + UBRRL = (F_CPU / (baudrate * 16L) - 1); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + 980: 5d 9b sbis 0x0b, 5 ; 11 + 982: fe cf rjmp .-4 ; 0x980 <__stack+0x521> + UDR = c; + 984: 8b e3 ldi r24, 0x3B ; 59 + 986: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 988: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 98a: bb 9a sbi 0x17, 3 ; 23 + 98c: ee e7 ldi r30, 0x7E ; 126 + 98e: f1 e0 ldi r31, 0x01 ; 1 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + 990: 88 e6 ldi r24, 0x68 ; 104 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 992: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 994: bb 9a sbi 0x17, 3 ; 23 + UBRRH = 0; + UBRRL = (F_CPU / (baudrate * 16L) - 1); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + 996: 5d 9b sbis 0x0b, 5 ; 11 + 998: fe cf rjmp .-4 ; 0x996 <__stack+0x537> + UDR = c; + 99a: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 99c: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 99e: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + 9a0: 81 91 ld r24, Z+ + 9a2: 81 11 cpse r24, r1 + 9a4: f6 cf rjmp .-20 ; 0x992 <__stack+0x533> + r.send("c0="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); + r.send("c1="); r.send(dtostrf(t1, 10, 2, cs)); r.send(";"); + //temp_ziel_wert + //motor_ziel_wert + r.send((o.isOn(0)==1)?"hon=1;":"hon=0;"); + r.send((o.isOn(1)==1)?"mon=1;":"mon=0;"); + 9a6: 9a 9b sbis 0x13, 2 ; 19 + 9a8: 03 c0 rjmp .+6 ; 0x9b0 <__stack+0x551> + 9aa: e2 e6 ldi r30, 0x62 ; 98 + 9ac: f1 e0 ldi r31, 0x01 ; 1 + 9ae: 02 c0 rjmp .+4 ; 0x9b4 <__stack+0x555> + 9b0: eb e5 ldi r30, 0x5B ; 91 + 9b2: f1 e0 ldi r31, 0x01 ; 1 + 9b4: 80 81 ld r24, Z + 9b6: 88 23 and r24, r24 + 9b8: 59 f0 breq .+22 ; 0x9d0 <__stack+0x571> + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + 9ba: 31 96 adiw r30, 0x01 ; 1 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 9bc: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 9be: bb 9a sbi 0x17, 3 ; 23 + UBRRH = 0; + UBRRL = (F_CPU / (baudrate * 16L) - 1); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + 9c0: 5d 9b sbis 0x0b, 5 ; 11 + 9c2: fe cf rjmp .-4 ; 0x9c0 <__stack+0x561> + UDR = c; + 9c4: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 9c6: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 9c8: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + 9ca: 81 91 ld r24, Z+ + 9cc: 81 11 cpse r24, r1 + 9ce: f6 cf rjmp .-20 ; 0x9bc <__stack+0x55d> +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 9d0: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 9d2: bb 9a sbi 0x17, 3 ; 23 + UBRRH = 0; + UBRRL = (F_CPU / (baudrate * 16L) - 1); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + 9d4: 5d 9b sbis 0x0b, 5 ; 11 + 9d6: fe cf rjmp .-4 ; 0x9d4 <__stack+0x575> + UDR = c; + 9d8: 8a e0 ldi r24, 0x0A ; 10 + 9da: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 9dc: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 9de: bb 9a sbi 0x17, 3 ; 23 + #else + //round up by default + __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); + #endif + + __builtin_avr_delay_cycles(__ticks_dc); + 9e0: ff ef ldi r31, 0xFF ; 255 + 9e2: 21 ee ldi r18, 0xE1 ; 225 + 9e4: 34 e0 ldi r19, 0x04 ; 4 + 9e6: f1 50 subi r31, 0x01 ; 1 + 9e8: 20 40 sbci r18, 0x00 ; 0 + 9ea: 30 40 sbci r19, 0x00 ; 0 + 9ec: e1 f7 brne .-8 ; 0x9e6 <__stack+0x587> + 9ee: 00 c0 rjmp .+0 ; 0x9f0 <__stack+0x591> + 9f0: 00 00 nop +{ + setup(); + int16_t target_temp = 20; + float pwm_value = 0; + while(1) + 9f2: f3 cc rjmp .-1562 ; 0x3da + if(ausg < 0) + ausg = 0; + if(ausg > 5) + ausg = 5; + if(val < 0) + val = 0; + 9f4: 30 e0 ldi r19, 0x00 ; 0 + 9f6: 20 e0 ldi r18, 0x00 ; 0 + 9f8: 90 e0 ldi r25, 0x00 ; 0 + 9fa: 80 e0 ldi r24, 0x00 ; 0 + 9fc: 04 c0 rjmp .+8 ; 0xa06 <__stack+0x5a7> + if(val > 20) + val = 20; + 9fe: 30 e0 ldi r19, 0x00 ; 0 + a00: 20 e0 ldi r18, 0x00 ; 0 + a02: 90 ea ldi r25, 0xA0 ; 160 + a04: 81 e4 ldi r24, 0x41 ; 65 + this->pwm[ausg] = (uint8_t)val; + a06: 48 2f mov r20, r24 + a08: 63 2f mov r22, r19 + a0a: 72 2f mov r23, r18 + a0c: 89 2f mov r24, r25 + a0e: 94 2f mov r25, r20 + a10: 0e 94 f9 06 call 0xdf2 ; 0xdf2 <__fixunssfsi> + a14: 60 93 cb 01 sts 0x01CB, r22 + a18: e5 e8 ldi r30, 0x85 ; 133 + a1a: f1 e0 ldi r31, 0x01 ; 1 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + a1c: 80 e7 ldi r24, 0x70 ; 112 + a1e: 63 ce rjmp .-826 ; 0x6e6 <__stack+0x287> + +00000a20 <__vector_6>: + r.send("\n"); + _delay_ms(100); + } +} + +ISR(TIMER1_COMPA_vect) { + a20: 1f 92 push r1 + a22: 0f 92 push r0 + a24: 0f b6 in r0, 0x3f ; 63 + a26: 0f 92 push r0 + a28: 11 24 eor r1, r1 + a2a: 2f 93 push r18 + a2c: 3f 93 push r19 + a2e: 4f 93 push r20 + a30: 5f 93 push r21 + a32: 6f 93 push r22 + a34: 7f 93 push r23 + a36: 8f 93 push r24 + a38: 9f 93 push r25 + a3a: af 93 push r26 + a3c: bf 93 push r27 + a3e: ef 93 push r30 + a40: ff 93 push r31 + if(ausg > 5) + ausg = 5; + return this->pwm[ausg]; + } + void timer() { + if (this->pct++ >= 20) { + a42: 80 91 ca 01 lds r24, 0x01CA + a46: 84 31 cpi r24, 0x14 ; 20 + a48: 08 f4 brcc .+2 ; 0xa4c <__vector_6+0x2c> + a4a: 51 c0 rjmp .+162 ; 0xaee <__vector_6+0xce> + this->pct=0; + a4c: 10 92 ca 01 sts 0x01CA, r1 + a50: 51 c0 rjmp .+162 ; 0xaf4 <__vector_6+0xd4> + } + for(uint8_t i = 0; i < 6; i++) { + if(this->pwm[i] >= this->pct && this->pwm[i] != 0) { + a52: 82 2f mov r24, r18 + a54: 91 91 ld r25, Z+ + a56: 6c 91 ld r22, X + a58: 96 17 cp r25, r22 + a5a: 18 f1 brcs .+70 ; 0xaa2 <__vector_6+0x82> + a5c: 99 23 and r25, r25 + a5e: 09 f1 breq .+66 ; 0xaa2 <__vector_6+0x82> + this->on((1< + a66: 66 0f add r22, r22 + a68: 77 1f adc r23, r23 + a6a: 0a 94 dec r0 + a6c: e2 f7 brpl .-8 ; 0xa66 <__vector_6+0x46> + a6e: cb 01 movw r24, r22 + if(ausg & OUT6) { + out6::make_low(); + } + } + void on(uint8_t ausg = 255) { + if(ausg & OUT1) { + a70: 60 ff sbrs r22, 0 + a72: 02 c0 rjmp .+4 ; 0xa78 <__vector_6+0x58> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + a74: aa 9a sbi 0x15, 2 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + a76: a2 9a sbi 0x14, 2 ; 20 + out1::make_high(); + } + if(ausg & OUT2) { + a78: 81 ff sbrs r24, 1 + a7a: 02 c0 rjmp .+4 ; 0xa80 <__vector_6+0x60> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + a7c: ab 9a sbi 0x15, 3 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + a7e: a3 9a sbi 0x14, 3 ; 20 + out2::make_high(); + } + if(ausg & OUT3) { + a80: 82 ff sbrs r24, 2 + a82: 02 c0 rjmp .+4 ; 0xa88 <__vector_6+0x68> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + a84: ac 9a sbi 0x15, 4 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + a86: a4 9a sbi 0x14, 4 ; 20 + out3::make_high(); + } + if(ausg & OUT4) { + a88: 83 ff sbrs r24, 3 + a8a: 02 c0 rjmp .+4 ; 0xa90 <__vector_6+0x70> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + a8c: ad 9a sbi 0x15, 5 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + a8e: a5 9a sbi 0x14, 5 ; 20 + out4::make_high(); + } + if(ausg & OUT5) { + a90: 84 ff sbrs r24, 4 + a92: 02 c0 rjmp .+4 ; 0xa98 <__vector_6+0x78> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + a94: ae 9a sbi 0x15, 6 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + a96: a6 9a sbi 0x14, 6 ; 20 + out5::make_high(); + } + if(ausg & OUT6) { + a98: 85 ff sbrs r24, 5 + a9a: 22 c0 rjmp .+68 ; 0xae0 <__vector_6+0xc0> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + a9c: af 9a sbi 0x15, 7 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + a9e: a7 9a sbi 0x14, 7 ; 20 + aa0: 1f c0 rjmp .+62 ; 0xae0 <__vector_6+0xc0> + } + for(uint8_t i = 0; i < 6; i++) { + if(this->pwm[i] >= this->pct && this->pwm[i] != 0) { + this->on((1<off((1< + aa6: 66 0f add r22, r22 + aa8: 77 1f adc r23, r23 + aaa: 8a 95 dec r24 + aac: e2 f7 brpl .-8 ; 0xaa6 <__vector_6+0x86> + aae: cb 01 movw r24, r22 + public: + SSR() { + init(); + } + void off(uint8_t ausg = 255) { + if(ausg & OUT1) { + ab0: 60 ff sbrs r22, 0 + ab2: 02 c0 rjmp .+4 ; 0xab8 <__vector_6+0x98> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + ab4: aa 98 cbi 0x15, 2 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + ab6: a2 9a sbi 0x14, 2 ; 20 + out1::make_low(); + } + if(ausg & OUT2) { + ab8: 81 ff sbrs r24, 1 + aba: 02 c0 rjmp .+4 ; 0xac0 <__vector_6+0xa0> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + abc: ab 98 cbi 0x15, 3 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + abe: a3 9a sbi 0x14, 3 ; 20 + out2::make_low(); + } + if(ausg & OUT3) { + ac0: 82 ff sbrs r24, 2 + ac2: 02 c0 rjmp .+4 ; 0xac8 <__vector_6+0xa8> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + ac4: ac 98 cbi 0x15, 4 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + ac6: a4 9a sbi 0x14, 4 ; 20 + out3::make_low(); + } + if(ausg & OUT4) { + ac8: 83 ff sbrs r24, 3 + aca: 02 c0 rjmp .+4 ; 0xad0 <__vector_6+0xb0> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + acc: ad 98 cbi 0x15, 5 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + ace: a5 9a sbi 0x14, 5 ; 20 + out4::make_low(); + } + if(ausg & OUT5) { + ad0: 84 ff sbrs r24, 4 + ad2: 02 c0 rjmp .+4 ; 0xad8 <__vector_6+0xb8> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + ad4: ae 98 cbi 0x15, 6 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + ad6: a6 9a sbi 0x14, 6 ; 20 + out5::make_low(); + } + if(ausg & OUT6) { + ad8: 85 ff sbrs r24, 5 + ada: 02 c0 rjmp .+4 ; 0xae0 <__vector_6+0xc0> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + adc: af 98 cbi 0x15, 7 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + ade: a7 9a sbi 0x14, 7 ; 20 + ae0: 2f 5f subi r18, 0xFF ; 255 + ae2: 3f 4f sbci r19, 0xFF ; 255 + } + void timer() { + if (this->pct++ >= 20) { + this->pct=0; + } + for(uint8_t i = 0; i < 6; i++) { + ae4: 26 30 cpi r18, 0x06 ; 6 + ae6: 31 05 cpc r19, r1 + ae8: 09 f0 breq .+2 ; 0xaec <__vector_6+0xcc> + aea: b3 cf rjmp .-154 ; 0xa52 <__vector_6+0x32> + aec: 0c c0 rjmp .+24 ; 0xb06 <__vector_6+0xe6> + if(ausg > 5) + ausg = 5; + return this->pwm[ausg]; + } + void timer() { + if (this->pct++ >= 20) { + aee: 8f 5f subi r24, 0xFF ; 255 + af0: 80 93 ca 01 sts 0x01CA, r24 + af4: eb ec ldi r30, 0xCB ; 203 + af6: f1 e0 ldi r31, 0x01 ; 1 + af8: 20 e0 ldi r18, 0x00 ; 0 + afa: 30 e0 ldi r19, 0x00 ; 0 + this->pct=0; + } + for(uint8_t i = 0; i < 6; i++) { + if(this->pwm[i] >= this->pct && this->pwm[i] != 0) { + afc: aa ec ldi r26, 0xCA ; 202 + afe: b1 e0 ldi r27, 0x01 ; 1 + this->on((1<off((1< + o.timer(); +} + b06: ff 91 pop r31 + b08: ef 91 pop r30 + b0a: bf 91 pop r27 + b0c: af 91 pop r26 + b0e: 9f 91 pop r25 + b10: 8f 91 pop r24 + b12: 7f 91 pop r23 + b14: 6f 91 pop r22 + b16: 5f 91 pop r21 + b18: 4f 91 pop r20 + b1a: 3f 91 pop r19 + b1c: 2f 91 pop r18 + b1e: 0f 90 pop r0 + b20: 0f be out 0x3f, r0 ; 63 + b22: 0f 90 pop r0 + b24: 1f 90 pop r1 + b26: 18 95 reti + +00000b28 <__vector_1>: + +ISR(INT0_vect) { + b28: 1f 92 push r1 + b2a: 0f 92 push r0 + b2c: 0f b6 in r0, 0x3f ; 63 + b2e: 0f 92 push r0 + b30: 11 24 eor r1, r1 + b32: 8f 93 push r24 + } + void intr() { + GIFR = (1<: +#include "hardware/pin.hpp" + +template +class SSR { + public: + SSR() { + b44: fc 01 movw r30, r24 + b46: 11 92 st Z+, r1 + b48: 86 e0 ldi r24, 0x06 ; 6 + b4a: df 01 movw r26, r30 + b4c: 1d 92 st X+, r1 + b4e: 8a 95 dec r24 + b50: e9 f7 brne .-6 ; 0xb4c <_ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC1Ev+0x8> + b52: a2 9a sbi 0x14, 2 ; 20 + b54: a3 9a sbi 0x14, 3 ; 20 + b56: a4 9a sbi 0x14, 4 ; 20 + b58: a5 9a sbi 0x14, 5 ; 20 + b5a: a6 9a sbi 0x14, 6 ; 20 + b5c: a7 9a sbi 0x14, 7 ; 20 +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + b5e: aa 98 cbi 0x15, 2 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + b60: a2 9a sbi 0x14, 2 ; 20 +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + b62: ab 98 cbi 0x15, 3 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + b64: a3 9a sbi 0x14, 3 ; 20 +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + b66: ac 98 cbi 0x15, 4 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + b68: a4 9a sbi 0x14, 4 ; 20 +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + b6a: ad 98 cbi 0x15, 5 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + b6c: a5 9a sbi 0x14, 5 ; 20 +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + b6e: ae 98 cbi 0x15, 6 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + b70: a6 9a sbi 0x14, 6 ; 20 +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + b72: af 98 cbi 0x15, 7 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + b74: a7 9a sbi 0x14, 7 ; 20 + b76: 08 95 ret + +00000b78 <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE>: +#define USART_H_ + +template +class Usart { + public: + Usart(ledclass l) { + b78: cf 93 push r28 + b7a: df 93 push r29 + b7c: 1f 92 push r1 + b7e: cd b7 in r28, 0x3d ; 61 + b80: de b7 in r29, 0x3e ; 62 + b82: 69 83 std Y+1, r22 ; 0x01 + b84: bc 9a sbi 0x17, 4 ; 23 + b86: bb 9a sbi 0x17, 3 ; 23 + b88: ba 9a sbi 0x17, 2 ; 23 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + b8a: c4 98 cbi 0x18, 4 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + b8c: bc 9a sbi 0x17, 4 ; 23 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + b8e: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + b90: bb 9a sbi 0x17, 3 ; 23 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + b92: c2 98 cbi 0x18, 2 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + b94: ba 9a sbi 0x17, 2 ; 23 + b96: 2f ef ldi r18, 0xFF ; 255 + b98: 3f ef ldi r19, 0xFF ; 255 + b9a: fc 01 movw r30, r24 + b9c: 32 83 std Z+2, r19 ; 0x02 + b9e: 21 83 std Z+1, r18 ; 0x01 + this->temp = -1; + return t; + } + private: + void init() { + UCSRA = 0; + ba0: 1b b8 out 0x0b, r1 ; 11 + UCSRB = (1<led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + bb4: 85 e5 ldi r24, 0x55 ; 85 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + bb6: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + bb8: bb 9a sbi 0x17, 3 ; 23 + UBRRH = 0; + UBRRL = (F_CPU / (baudrate * 16L) - 1); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + bba: 5d 9b sbis 0x0b, 5 ; 11 + bbc: fe cf rjmp .-4 ; 0xbba <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE+0x42> + UDR = c; + bbe: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + bc0: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + bc2: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + bc4: 81 91 ld r24, Z+ + bc6: 81 11 cpse r24, r1 + bc8: f6 cf rjmp .-20 ; 0xbb6 <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE+0x3e> public: Usart(ledclass l) { init(); this->led = l; send("Uart done!\n"); } - b0e: 0f 90 pop r0 - b10: df 91 pop r29 - b12: cf 91 pop r28 - b14: 08 95 ret + bca: 0f 90 pop r0 + bcc: df 91 pop r29 + bce: cf 91 pop r28 + bd0: 08 95 ret -00000b16 <_ZN6ButtonIN6avrlib5portdELi2EEC1E3LedINS0_5portbELi4ELi3ELi2EE>: +00000bd2 <_ZN6ButtonIN6avrlib5portdELi2EEC1E3LedINS0_5portbELi4ELi3ELi2EE>: template class Button { public: Button(ledclass l) { - b16: cf 93 push r28 - b18: df 93 push r29 - b1a: 1f 92 push r1 - b1c: cd b7 in r28, 0x3d ; 61 - b1e: de b7 in r29, 0x3e ; 62 - b20: 69 83 std Y+1, r22 ; 0x01 - b22: bc 9a sbi 0x17, 4 ; 23 - b24: bb 9a sbi 0x17, 3 ; 23 - b26: ba 9a sbi 0x17, 2 ; 23 + bd2: cf 93 push r28 + bd4: df 93 push r29 + bd6: 1f 92 push r1 + bd8: cd b7 in r28, 0x3d ; 61 + bda: de b7 in r29, 0x3e ; 62 + bdc: 69 83 std Y+1, r22 ; 0x01 + bde: bc 9a sbi 0x17, 4 ; 23 + be0: bb 9a sbi 0x17, 3 ; 23 + be2: ba 9a sbi 0x17, 2 ; 23 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - b28: c4 98 cbi 0x18, 4 ; 24 + be4: c4 98 cbi 0x18, 4 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - b2a: bc 9a sbi 0x17, 4 ; 23 + be6: bc 9a sbi 0x17, 4 ; 23 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - b2c: c3 98 cbi 0x18, 3 ; 24 + be8: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - b2e: bb 9a sbi 0x17, 3 ; 23 + bea: bb 9a sbi 0x17, 3 ; 23 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - b30: c2 98 cbi 0x18, 2 ; 24 + bec: c2 98 cbi 0x18, 2 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - b32: ba 9a sbi 0x17, 2 ; 23 + bee: ba 9a sbi 0x17, 2 ; 23 static uint8_t pin() { return PIND; } static void pin(uint8_t v) { PIND = v; } static uint8_t dir() { return DDRD; } static void dir(uint8_t v) { DDRD = v; } - b34: 8a 98 cbi 0x11, 2 ; 17 + bf0: 8a 98 cbi 0x11, 2 ; 17 namespace avrlib { struct portd { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } - b36: 92 98 cbi 0x12, 2 ; 18 - b38: 92 9a sbi 0x12, 2 ; 18 + bf2: 92 98 cbi 0x12, 2 ; 18 + bf4: 92 9a sbi 0x12, 2 ; 18 init(); this->led = l; } - b3a: 0f 90 pop r0 - b3c: df 91 pop r29 - b3e: cf 91 pop r28 - b40: 08 95 ret + bf6: 0f 90 pop r0 + bf8: df 91 pop r29 + bfa: cf 91 pop r28 + bfc: 08 95 ret -00000b42 <_ZN3LedIN6avrlib5portbELi4ELi3ELi2EE4initEv>: - b42: bc 9a sbi 0x17, 4 ; 23 - b44: bb 9a sbi 0x17, 3 ; 23 - b46: ba 9a sbi 0x17, 2 ; 23 +00000bfe <_ZN3LedIN6avrlib5portbELi4ELi3ELi2EE4initEv>: + bfe: bc 9a sbi 0x17, 4 ; 23 + c00: bb 9a sbi 0x17, 3 ; 23 + c02: ba 9a sbi 0x17, 2 ; 23 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - b48: c4 98 cbi 0x18, 4 ; 24 + c04: c4 98 cbi 0x18, 4 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - b4a: bc 9a sbi 0x17, 4 ; 23 + c06: bc 9a sbi 0x17, 4 ; 23 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - b4c: c3 98 cbi 0x18, 3 ; 24 + c08: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - b4e: bb 9a sbi 0x17, 3 ; 23 + c0a: bb 9a sbi 0x17, 3 ; 23 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - b50: c2 98 cbi 0x18, 2 ; 24 + c0c: c2 98 cbi 0x18, 2 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - b52: ba 9a sbi 0x17, 2 ; 23 - b54: 08 95 ret + c0e: ba 9a sbi 0x17, 2 ; 23 + c10: 08 95 ret -00000b56 <_GLOBAL__sub_I_l>: +00000c12 <_GLOBAL__sub_I_l>: template class Led { public: Led() { init(); - b56: 81 ed ldi r24, 0xD1 ; 209 - b58: 91 e0 ldi r25, 0x01 ; 1 - b5a: 0e 94 a1 05 call 0xb42 ; 0xb42 <_ZN3LedIN6avrlib5portbELi4ELi3ELi2EE4initEv> + c12: 81 ed ldi r24, 0xD1 ; 209 + c14: 91 e0 ldi r25, 0x01 ; 1 + c16: 0e 94 ff 05 call 0xbfe ; 0xbfe <_ZN3LedIN6avrlib5portbELi4ELi3ELi2EE4initEv> #include "peripheral.h" #include ledclass l; ssrclass o; - b5e: 8a ec ldi r24, 0xCA ; 202 - b60: 91 e0 ldi r25, 0x01 ; 1 - b62: 0e 94 44 05 call 0xa88 ; 0xa88 <_ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC1Ev> + c1a: 8a ec ldi r24, 0xCA ; 202 + c1c: 91 e0 ldi r25, 0x01 ; 1 + c1e: 0e 94 a2 05 call 0xb44 ; 0xb44 <_ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC1Ev> usartclass r(l); - b66: 60 e0 ldi r22, 0x00 ; 0 - b68: 87 ec ldi r24, 0xC7 ; 199 - b6a: 91 e0 ldi r25, 0x01 ; 1 - b6c: 0e 94 5e 05 call 0xabc ; 0xabc <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE> + c22: 60 e0 ldi r22, 0x00 ; 0 + c24: 87 ec ldi r24, 0xC7 ; 199 + c26: 91 e0 ldi r25, 0x01 ; 1 + c28: 0e 94 bc 05 call 0xb78 ; 0xb78 <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE> #include template class Adc { public: Adc() { - b70: 80 e3 ldi r24, 0x30 ; 48 - b72: e0 e6 ldi r30, 0x60 ; 96 - b74: f0 e0 ldi r31, 0x00 ; 0 - b76: a7 e9 ldi r26, 0x97 ; 151 - b78: b1 e0 ldi r27, 0x01 ; 1 - b7a: 01 90 ld r0, Z+ - b7c: 0d 92 st X+, r0 - b7e: 8a 95 dec r24 - b80: e1 f7 brne .-8 ; 0xb7a <_GLOBAL__sub_I_l+0x24> - float m=((this->table[pin][0]-this->table[pin][2])/(this->table[pin][1]-this->table[pin][3])); - return (m * (float)v) + (-m * (float)this->table[pin][1]) + this->table[pin][0]; + c2c: 80 e3 ldi r24, 0x30 ; 48 + c2e: e0 e6 ldi r30, 0x60 ; 96 + c30: f0 e0 ldi r31, 0x00 ; 0 + c32: a7 e9 ldi r26, 0x97 ; 151 + c34: b1 e0 ldi r27, 0x01 ; 1 + c36: 01 90 ld r0, Z+ + c38: 0d 92 st X+, r0 + c3a: 8a 95 dec r24 + c3c: e1 f7 brne .-8 ; 0xc36 <_GLOBAL__sub_I_l+0x24> + + return (m * (float)v) + (-m * v1) + c1; } private: void init() { ADCSRA = (1< - b92: 08 95 ret + c44: 60 e0 ldi r22, 0x00 ; 0 + c46: 86 e9 ldi r24, 0x96 ; 150 + c48: 91 e0 ldi r25, 0x01 ; 1 + c4a: 0e 94 e9 05 call 0xbd2 ; 0xbd2 <_ZN6ButtonIN6avrlib5portdELi2EEC1E3LedINS0_5portbELi4ELi3ELi2EE> + c4e: 08 95 ret -00000b94 <__subsf3>: - b94: 50 58 subi r21, 0x80 ; 128 +00000c50 <__subsf3>: + c50: 50 58 subi r21, 0x80 ; 128 -00000b96 <__addsf3>: - b96: bb 27 eor r27, r27 - b98: aa 27 eor r26, r26 - b9a: 0e d0 rcall .+28 ; 0xbb8 <__addsf3x> - b9c: 08 c1 rjmp .+528 ; 0xdae <__fp_round> - b9e: f9 d0 rcall .+498 ; 0xd92 <__fp_pscA> - ba0: 30 f0 brcs .+12 ; 0xbae <__addsf3+0x18> - ba2: fe d0 rcall .+508 ; 0xda0 <__fp_pscB> - ba4: 20 f0 brcs .+8 ; 0xbae <__addsf3+0x18> - ba6: 31 f4 brne .+12 ; 0xbb4 <__addsf3+0x1e> - ba8: 9f 3f cpi r25, 0xFF ; 255 - baa: 11 f4 brne .+4 ; 0xbb0 <__addsf3+0x1a> - bac: 1e f4 brtc .+6 ; 0xbb4 <__addsf3+0x1e> - bae: ee c0 rjmp .+476 ; 0xd8c <__fp_nan> - bb0: 0e f4 brtc .+2 ; 0xbb4 <__addsf3+0x1e> - bb2: e0 95 com r30 - bb4: e7 fb bst r30, 7 - bb6: e4 c0 rjmp .+456 ; 0xd80 <__fp_inf> +00000c52 <__addsf3>: + c52: bb 27 eor r27, r27 + c54: aa 27 eor r26, r26 + c56: 0e d0 rcall .+28 ; 0xc74 <__addsf3x> + c58: 70 c1 rjmp .+736 ; 0xf3a <__fp_round> + c5a: 61 d1 rcall .+706 ; 0xf1e <__fp_pscA> + c5c: 30 f0 brcs .+12 ; 0xc6a <__addsf3+0x18> + c5e: 66 d1 rcall .+716 ; 0xf2c <__fp_pscB> + c60: 20 f0 brcs .+8 ; 0xc6a <__addsf3+0x18> + c62: 31 f4 brne .+12 ; 0xc70 <__addsf3+0x1e> + c64: 9f 3f cpi r25, 0xFF ; 255 + c66: 11 f4 brne .+4 ; 0xc6c <__addsf3+0x1a> + c68: 1e f4 brtc .+6 ; 0xc70 <__addsf3+0x1e> + c6a: 56 c1 rjmp .+684 ; 0xf18 <__fp_nan> + c6c: 0e f4 brtc .+2 ; 0xc70 <__addsf3+0x1e> + c6e: e0 95 com r30 + c70: e7 fb bst r30, 7 + c72: 4c c1 rjmp .+664 ; 0xf0c <__fp_inf> -00000bb8 <__addsf3x>: - bb8: e9 2f mov r30, r25 - bba: 0a d1 rcall .+532 ; 0xdd0 <__fp_split3> - bbc: 80 f3 brcs .-32 ; 0xb9e <__addsf3+0x8> - bbe: ba 17 cp r27, r26 - bc0: 62 07 cpc r22, r18 - bc2: 73 07 cpc r23, r19 - bc4: 84 07 cpc r24, r20 - bc6: 95 07 cpc r25, r21 - bc8: 18 f0 brcs .+6 ; 0xbd0 <__addsf3x+0x18> - bca: 71 f4 brne .+28 ; 0xbe8 <__addsf3x+0x30> - bcc: 9e f5 brtc .+102 ; 0xc34 <__addsf3x+0x7c> - bce: 22 c1 rjmp .+580 ; 0xe14 <__fp_zero> - bd0: 0e f4 brtc .+2 ; 0xbd4 <__addsf3x+0x1c> - bd2: e0 95 com r30 - bd4: 0b 2e mov r0, r27 - bd6: ba 2f mov r27, r26 - bd8: a0 2d mov r26, r0 - bda: 0b 01 movw r0, r22 - bdc: b9 01 movw r22, r18 - bde: 90 01 movw r18, r0 - be0: 0c 01 movw r0, r24 - be2: ca 01 movw r24, r20 - be4: a0 01 movw r20, r0 - be6: 11 24 eor r1, r1 - be8: ff 27 eor r31, r31 - bea: 59 1b sub r21, r25 - bec: 99 f0 breq .+38 ; 0xc14 <__addsf3x+0x5c> - bee: 59 3f cpi r21, 0xF9 ; 249 - bf0: 50 f4 brcc .+20 ; 0xc06 <__addsf3x+0x4e> - bf2: 50 3e cpi r21, 0xE0 ; 224 - bf4: 68 f1 brcs .+90 ; 0xc50 <__addsf3x+0x98> - bf6: 1a 16 cp r1, r26 - bf8: f0 40 sbci r31, 0x00 ; 0 - bfa: a2 2f mov r26, r18 - bfc: 23 2f mov r18, r19 - bfe: 34 2f mov r19, r20 - c00: 44 27 eor r20, r20 - c02: 58 5f subi r21, 0xF8 ; 248 - c04: f3 cf rjmp .-26 ; 0xbec <__addsf3x+0x34> - c06: 46 95 lsr r20 - c08: 37 95 ror r19 - c0a: 27 95 ror r18 - c0c: a7 95 ror r26 - c0e: f0 40 sbci r31, 0x00 ; 0 - c10: 53 95 inc r21 - c12: c9 f7 brne .-14 ; 0xc06 <__addsf3x+0x4e> - c14: 7e f4 brtc .+30 ; 0xc34 <__addsf3x+0x7c> - c16: 1f 16 cp r1, r31 - c18: ba 0b sbc r27, r26 - c1a: 62 0b sbc r22, r18 - c1c: 73 0b sbc r23, r19 - c1e: 84 0b sbc r24, r20 - c20: ba f0 brmi .+46 ; 0xc50 <__addsf3x+0x98> - c22: 91 50 subi r25, 0x01 ; 1 - c24: a1 f0 breq .+40 ; 0xc4e <__addsf3x+0x96> - c26: ff 0f add r31, r31 - c28: bb 1f adc r27, r27 - c2a: 66 1f adc r22, r22 - c2c: 77 1f adc r23, r23 - c2e: 88 1f adc r24, r24 - c30: c2 f7 brpl .-16 ; 0xc22 <__addsf3x+0x6a> - c32: 0e c0 rjmp .+28 ; 0xc50 <__addsf3x+0x98> - c34: ba 0f add r27, r26 - c36: 62 1f adc r22, r18 - c38: 73 1f adc r23, r19 - c3a: 84 1f adc r24, r20 - c3c: 48 f4 brcc .+18 ; 0xc50 <__addsf3x+0x98> - c3e: 87 95 ror r24 - c40: 77 95 ror r23 - c42: 67 95 ror r22 - c44: b7 95 ror r27 - c46: f7 95 ror r31 - c48: 9e 3f cpi r25, 0xFE ; 254 - c4a: 08 f0 brcs .+2 ; 0xc4e <__addsf3x+0x96> - c4c: b3 cf rjmp .-154 ; 0xbb4 <__addsf3+0x1e> - c4e: 93 95 inc r25 - c50: 88 0f add r24, r24 - c52: 08 f0 brcs .+2 ; 0xc56 <__addsf3x+0x9e> - c54: 99 27 eor r25, r25 - c56: ee 0f add r30, r30 - c58: 97 95 ror r25 - c5a: 87 95 ror r24 - c5c: 08 95 ret +00000c74 <__addsf3x>: + c74: e9 2f mov r30, r25 + c76: 72 d1 rcall .+740 ; 0xf5c <__fp_split3> + c78: 80 f3 brcs .-32 ; 0xc5a <__addsf3+0x8> + c7a: ba 17 cp r27, r26 + c7c: 62 07 cpc r22, r18 + c7e: 73 07 cpc r23, r19 + c80: 84 07 cpc r24, r20 + c82: 95 07 cpc r25, r21 + c84: 18 f0 brcs .+6 ; 0xc8c <__addsf3x+0x18> + c86: 71 f4 brne .+28 ; 0xca4 <__addsf3x+0x30> + c88: 9e f5 brtc .+102 ; 0xcf0 <__addsf3x+0x7c> + c8a: 8a c1 rjmp .+788 ; 0xfa0 <__fp_zero> + c8c: 0e f4 brtc .+2 ; 0xc90 <__addsf3x+0x1c> + c8e: e0 95 com r30 + c90: 0b 2e mov r0, r27 + c92: ba 2f mov r27, r26 + c94: a0 2d mov r26, r0 + c96: 0b 01 movw r0, r22 + c98: b9 01 movw r22, r18 + c9a: 90 01 movw r18, r0 + c9c: 0c 01 movw r0, r24 + c9e: ca 01 movw r24, r20 + ca0: a0 01 movw r20, r0 + ca2: 11 24 eor r1, r1 + ca4: ff 27 eor r31, r31 + ca6: 59 1b sub r21, r25 + ca8: 99 f0 breq .+38 ; 0xcd0 <__addsf3x+0x5c> + caa: 59 3f cpi r21, 0xF9 ; 249 + cac: 50 f4 brcc .+20 ; 0xcc2 <__addsf3x+0x4e> + cae: 50 3e cpi r21, 0xE0 ; 224 + cb0: 68 f1 brcs .+90 ; 0xd0c <__addsf3x+0x98> + cb2: 1a 16 cp r1, r26 + cb4: f0 40 sbci r31, 0x00 ; 0 + cb6: a2 2f mov r26, r18 + cb8: 23 2f mov r18, r19 + cba: 34 2f mov r19, r20 + cbc: 44 27 eor r20, r20 + cbe: 58 5f subi r21, 0xF8 ; 248 + cc0: f3 cf rjmp .-26 ; 0xca8 <__addsf3x+0x34> + cc2: 46 95 lsr r20 + cc4: 37 95 ror r19 + cc6: 27 95 ror r18 + cc8: a7 95 ror r26 + cca: f0 40 sbci r31, 0x00 ; 0 + ccc: 53 95 inc r21 + cce: c9 f7 brne .-14 ; 0xcc2 <__addsf3x+0x4e> + cd0: 7e f4 brtc .+30 ; 0xcf0 <__addsf3x+0x7c> + cd2: 1f 16 cp r1, r31 + cd4: ba 0b sbc r27, r26 + cd6: 62 0b sbc r22, r18 + cd8: 73 0b sbc r23, r19 + cda: 84 0b sbc r24, r20 + cdc: ba f0 brmi .+46 ; 0xd0c <__addsf3x+0x98> + cde: 91 50 subi r25, 0x01 ; 1 + ce0: a1 f0 breq .+40 ; 0xd0a <__addsf3x+0x96> + ce2: ff 0f add r31, r31 + ce4: bb 1f adc r27, r27 + ce6: 66 1f adc r22, r22 + ce8: 77 1f adc r23, r23 + cea: 88 1f adc r24, r24 + cec: c2 f7 brpl .-16 ; 0xcde <__addsf3x+0x6a> + cee: 0e c0 rjmp .+28 ; 0xd0c <__addsf3x+0x98> + cf0: ba 0f add r27, r26 + cf2: 62 1f adc r22, r18 + cf4: 73 1f adc r23, r19 + cf6: 84 1f adc r24, r20 + cf8: 48 f4 brcc .+18 ; 0xd0c <__addsf3x+0x98> + cfa: 87 95 ror r24 + cfc: 77 95 ror r23 + cfe: 67 95 ror r22 + d00: b7 95 ror r27 + d02: f7 95 ror r31 + d04: 9e 3f cpi r25, 0xFE ; 254 + d06: 08 f0 brcs .+2 ; 0xd0a <__addsf3x+0x96> + d08: b3 cf rjmp .-154 ; 0xc70 <__addsf3+0x1e> + d0a: 93 95 inc r25 + d0c: 88 0f add r24, r24 + d0e: 08 f0 brcs .+2 ; 0xd12 <__addsf3x+0x9e> + d10: 99 27 eor r25, r25 + d12: ee 0f add r30, r30 + d14: 97 95 ror r25 + d16: 87 95 ror r24 + d18: 08 95 ret -00000c5e <__cmpsf2>: - c5e: 6c d0 rcall .+216 ; 0xd38 <__fp_cmp> - c60: 08 f4 brcc .+2 ; 0xc64 <__cmpsf2+0x6> - c62: 81 e0 ldi r24, 0x01 ; 1 - c64: 08 95 ret +00000d1a <__cmpsf2>: + d1a: d4 d0 rcall .+424 ; 0xec4 <__fp_cmp> + d1c: 08 f4 brcc .+2 ; 0xd20 <__cmpsf2+0x6> + d1e: 81 e0 ldi r24, 0x01 ; 1 + d20: 08 95 ret -00000c66 <__fixunssfsi>: - c66: bc d0 rcall .+376 ; 0xde0 <__fp_splitA> - c68: 88 f0 brcs .+34 ; 0xc8c <__fixunssfsi+0x26> - c6a: 9f 57 subi r25, 0x7F ; 127 - c6c: 90 f0 brcs .+36 ; 0xc92 <__fixunssfsi+0x2c> - c6e: b9 2f mov r27, r25 - c70: 99 27 eor r25, r25 - c72: b7 51 subi r27, 0x17 ; 23 - c74: a0 f0 brcs .+40 ; 0xc9e <__fixunssfsi+0x38> - c76: d1 f0 breq .+52 ; 0xcac <__fixunssfsi+0x46> - c78: 66 0f add r22, r22 - c7a: 77 1f adc r23, r23 - c7c: 88 1f adc r24, r24 - c7e: 99 1f adc r25, r25 - c80: 1a f0 brmi .+6 ; 0xc88 <__fixunssfsi+0x22> - c82: ba 95 dec r27 - c84: c9 f7 brne .-14 ; 0xc78 <__fixunssfsi+0x12> - c86: 12 c0 rjmp .+36 ; 0xcac <__fixunssfsi+0x46> - c88: b1 30 cpi r27, 0x01 ; 1 - c8a: 81 f0 breq .+32 ; 0xcac <__fixunssfsi+0x46> - c8c: c3 d0 rcall .+390 ; 0xe14 <__fp_zero> - c8e: b1 e0 ldi r27, 0x01 ; 1 - c90: 08 95 ret - c92: c0 c0 rjmp .+384 ; 0xe14 <__fp_zero> - c94: 67 2f mov r22, r23 - c96: 78 2f mov r23, r24 - c98: 88 27 eor r24, r24 - c9a: b8 5f subi r27, 0xF8 ; 248 - c9c: 39 f0 breq .+14 ; 0xcac <__fixunssfsi+0x46> - c9e: b9 3f cpi r27, 0xF9 ; 249 - ca0: cc f3 brlt .-14 ; 0xc94 <__fixunssfsi+0x2e> - ca2: 86 95 lsr r24 - ca4: 77 95 ror r23 - ca6: 67 95 ror r22 - ca8: b3 95 inc r27 - caa: d9 f7 brne .-10 ; 0xca2 <__fixunssfsi+0x3c> - cac: 3e f4 brtc .+14 ; 0xcbc <__fixunssfsi+0x56> - cae: 90 95 com r25 - cb0: 80 95 com r24 - cb2: 70 95 com r23 - cb4: 61 95 neg r22 - cb6: 7f 4f sbci r23, 0xFF ; 255 - cb8: 8f 4f sbci r24, 0xFF ; 255 - cba: 9f 4f sbci r25, 0xFF ; 255 - cbc: 08 95 ret +00000d22 <__divsf3>: + d22: 0c d0 rcall .+24 ; 0xd3c <__divsf3x> + d24: 0a c1 rjmp .+532 ; 0xf3a <__fp_round> + d26: 02 d1 rcall .+516 ; 0xf2c <__fp_pscB> + d28: 40 f0 brcs .+16 ; 0xd3a <__divsf3+0x18> + d2a: f9 d0 rcall .+498 ; 0xf1e <__fp_pscA> + d2c: 30 f0 brcs .+12 ; 0xd3a <__divsf3+0x18> + d2e: 21 f4 brne .+8 ; 0xd38 <__divsf3+0x16> + d30: 5f 3f cpi r21, 0xFF ; 255 + d32: 19 f0 breq .+6 ; 0xd3a <__divsf3+0x18> + d34: eb c0 rjmp .+470 ; 0xf0c <__fp_inf> + d36: 51 11 cpse r21, r1 + d38: 34 c1 rjmp .+616 ; 0xfa2 <__fp_szero> + d3a: ee c0 rjmp .+476 ; 0xf18 <__fp_nan> -00000cbe <__floatunsisf>: - cbe: e8 94 clt - cc0: 09 c0 rjmp .+18 ; 0xcd4 <__floatsisf+0x12> +00000d3c <__divsf3x>: + d3c: 0f d1 rcall .+542 ; 0xf5c <__fp_split3> + d3e: 98 f3 brcs .-26 ; 0xd26 <__divsf3+0x4> -00000cc2 <__floatsisf>: - cc2: 97 fb bst r25, 7 - cc4: 3e f4 brtc .+14 ; 0xcd4 <__floatsisf+0x12> - cc6: 90 95 com r25 - cc8: 80 95 com r24 - cca: 70 95 com r23 - ccc: 61 95 neg r22 - cce: 7f 4f sbci r23, 0xFF ; 255 - cd0: 8f 4f sbci r24, 0xFF ; 255 - cd2: 9f 4f sbci r25, 0xFF ; 255 - cd4: 99 23 and r25, r25 - cd6: a9 f0 breq .+42 ; 0xd02 <__floatsisf+0x40> - cd8: f9 2f mov r31, r25 - cda: 96 e9 ldi r25, 0x96 ; 150 - cdc: bb 27 eor r27, r27 - cde: 93 95 inc r25 - ce0: f6 95 lsr r31 - ce2: 87 95 ror r24 - ce4: 77 95 ror r23 - ce6: 67 95 ror r22 - ce8: b7 95 ror r27 - cea: f1 11 cpse r31, r1 - cec: f8 cf rjmp .-16 ; 0xcde <__floatsisf+0x1c> - cee: fa f4 brpl .+62 ; 0xd2e <__floatsisf+0x6c> - cf0: bb 0f add r27, r27 - cf2: 11 f4 brne .+4 ; 0xcf8 <__floatsisf+0x36> - cf4: 60 ff sbrs r22, 0 - cf6: 1b c0 rjmp .+54 ; 0xd2e <__floatsisf+0x6c> - cf8: 6f 5f subi r22, 0xFF ; 255 - cfa: 7f 4f sbci r23, 0xFF ; 255 - cfc: 8f 4f sbci r24, 0xFF ; 255 - cfe: 9f 4f sbci r25, 0xFF ; 255 - d00: 16 c0 rjmp .+44 ; 0xd2e <__floatsisf+0x6c> - d02: 88 23 and r24, r24 - d04: 11 f0 breq .+4 ; 0xd0a <__floatsisf+0x48> - d06: 96 e9 ldi r25, 0x96 ; 150 - d08: 11 c0 rjmp .+34 ; 0xd2c <__floatsisf+0x6a> - d0a: 77 23 and r23, r23 - d0c: 21 f0 breq .+8 ; 0xd16 <__floatsisf+0x54> - d0e: 9e e8 ldi r25, 0x8E ; 142 - d10: 87 2f mov r24, r23 - d12: 76 2f mov r23, r22 - d14: 05 c0 rjmp .+10 ; 0xd20 <__floatsisf+0x5e> - d16: 66 23 and r22, r22 - d18: 71 f0 breq .+28 ; 0xd36 <__floatsisf+0x74> - d1a: 96 e8 ldi r25, 0x86 ; 134 - d1c: 86 2f mov r24, r22 - d1e: 70 e0 ldi r23, 0x00 ; 0 - d20: 60 e0 ldi r22, 0x00 ; 0 - d22: 2a f0 brmi .+10 ; 0xd2e <__floatsisf+0x6c> - d24: 9a 95 dec r25 - d26: 66 0f add r22, r22 - d28: 77 1f adc r23, r23 - d2a: 88 1f adc r24, r24 - d2c: da f7 brpl .-10 ; 0xd24 <__floatsisf+0x62> - d2e: 88 0f add r24, r24 - d30: 96 95 lsr r25 - d32: 87 95 ror r24 - d34: 97 f9 bld r25, 7 - d36: 08 95 ret +00000d40 <__divsf3_pse>: + d40: 99 23 and r25, r25 + d42: c9 f3 breq .-14 ; 0xd36 <__divsf3+0x14> + d44: 55 23 and r21, r21 + d46: b1 f3 breq .-20 ; 0xd34 <__divsf3+0x12> + d48: 95 1b sub r25, r21 + d4a: 55 0b sbc r21, r21 + d4c: bb 27 eor r27, r27 + d4e: aa 27 eor r26, r26 + d50: 62 17 cp r22, r18 + d52: 73 07 cpc r23, r19 + d54: 84 07 cpc r24, r20 + d56: 38 f0 brcs .+14 ; 0xd66 <__divsf3_pse+0x26> + d58: 9f 5f subi r25, 0xFF ; 255 + d5a: 5f 4f sbci r21, 0xFF ; 255 + d5c: 22 0f add r18, r18 + d5e: 33 1f adc r19, r19 + d60: 44 1f adc r20, r20 + d62: aa 1f adc r26, r26 + d64: a9 f3 breq .-22 ; 0xd50 <__divsf3_pse+0x10> + d66: 33 d0 rcall .+102 ; 0xdce <__divsf3_pse+0x8e> + d68: 0e 2e mov r0, r30 + d6a: 3a f0 brmi .+14 ; 0xd7a <__divsf3_pse+0x3a> + d6c: e0 e8 ldi r30, 0x80 ; 128 + d6e: 30 d0 rcall .+96 ; 0xdd0 <__divsf3_pse+0x90> + d70: 91 50 subi r25, 0x01 ; 1 + d72: 50 40 sbci r21, 0x00 ; 0 + d74: e6 95 lsr r30 + d76: 00 1c adc r0, r0 + d78: ca f7 brpl .-14 ; 0xd6c <__divsf3_pse+0x2c> + d7a: 29 d0 rcall .+82 ; 0xdce <__divsf3_pse+0x8e> + d7c: fe 2f mov r31, r30 + d7e: 27 d0 rcall .+78 ; 0xdce <__divsf3_pse+0x8e> + d80: 66 0f add r22, r22 + d82: 77 1f adc r23, r23 + d84: 88 1f adc r24, r24 + d86: bb 1f adc r27, r27 + d88: 26 17 cp r18, r22 + d8a: 37 07 cpc r19, r23 + d8c: 48 07 cpc r20, r24 + d8e: ab 07 cpc r26, r27 + d90: b0 e8 ldi r27, 0x80 ; 128 + d92: 09 f0 breq .+2 ; 0xd96 <__divsf3_pse+0x56> + d94: bb 0b sbc r27, r27 + d96: 80 2d mov r24, r0 + d98: bf 01 movw r22, r30 + d9a: ff 27 eor r31, r31 + d9c: 93 58 subi r25, 0x83 ; 131 + d9e: 5f 4f sbci r21, 0xFF ; 255 + da0: 2a f0 brmi .+10 ; 0xdac <__divsf3_pse+0x6c> + da2: 9e 3f cpi r25, 0xFE ; 254 + da4: 51 05 cpc r21, r1 + da6: 68 f0 brcs .+26 ; 0xdc2 <__divsf3_pse+0x82> + da8: b1 c0 rjmp .+354 ; 0xf0c <__fp_inf> + daa: fb c0 rjmp .+502 ; 0xfa2 <__fp_szero> + dac: 5f 3f cpi r21, 0xFF ; 255 + dae: ec f3 brlt .-6 ; 0xdaa <__divsf3_pse+0x6a> + db0: 98 3e cpi r25, 0xE8 ; 232 + db2: dc f3 brlt .-10 ; 0xdaa <__divsf3_pse+0x6a> + db4: 86 95 lsr r24 + db6: 77 95 ror r23 + db8: 67 95 ror r22 + dba: b7 95 ror r27 + dbc: f7 95 ror r31 + dbe: 9f 5f subi r25, 0xFF ; 255 + dc0: c9 f7 brne .-14 ; 0xdb4 <__divsf3_pse+0x74> + dc2: 88 0f add r24, r24 + dc4: 91 1d adc r25, r1 + dc6: 96 95 lsr r25 + dc8: 87 95 ror r24 + dca: 97 f9 bld r25, 7 + dcc: 08 95 ret + dce: e1 e0 ldi r30, 0x01 ; 1 + dd0: 66 0f add r22, r22 + dd2: 77 1f adc r23, r23 + dd4: 88 1f adc r24, r24 + dd6: bb 1f adc r27, r27 + dd8: 62 17 cp r22, r18 + dda: 73 07 cpc r23, r19 + ddc: 84 07 cpc r24, r20 + dde: ba 07 cpc r27, r26 + de0: 20 f0 brcs .+8 ; 0xdea <__divsf3_pse+0xaa> + de2: 62 1b sub r22, r18 + de4: 73 0b sbc r23, r19 + de6: 84 0b sbc r24, r20 + de8: ba 0b sbc r27, r26 + dea: ee 1f adc r30, r30 + dec: 88 f7 brcc .-30 ; 0xdd0 <__divsf3_pse+0x90> + dee: e0 95 com r30 + df0: 08 95 ret -00000d38 <__fp_cmp>: - d38: 99 0f add r25, r25 - d3a: 00 08 sbc r0, r0 - d3c: 55 0f add r21, r21 - d3e: aa 0b sbc r26, r26 - d40: e0 e8 ldi r30, 0x80 ; 128 - d42: fe ef ldi r31, 0xFE ; 254 - d44: 16 16 cp r1, r22 - d46: 17 06 cpc r1, r23 - d48: e8 07 cpc r30, r24 - d4a: f9 07 cpc r31, r25 - d4c: c0 f0 brcs .+48 ; 0xd7e <__fp_cmp+0x46> - d4e: 12 16 cp r1, r18 - d50: 13 06 cpc r1, r19 - d52: e4 07 cpc r30, r20 - d54: f5 07 cpc r31, r21 - d56: 98 f0 brcs .+38 ; 0xd7e <__fp_cmp+0x46> - d58: 62 1b sub r22, r18 - d5a: 73 0b sbc r23, r19 - d5c: 84 0b sbc r24, r20 - d5e: 95 0b sbc r25, r21 - d60: 39 f4 brne .+14 ; 0xd70 <__fp_cmp+0x38> - d62: 0a 26 eor r0, r26 - d64: 61 f0 breq .+24 ; 0xd7e <__fp_cmp+0x46> - d66: 23 2b or r18, r19 - d68: 24 2b or r18, r20 - d6a: 25 2b or r18, r21 - d6c: 21 f4 brne .+8 ; 0xd76 <__fp_cmp+0x3e> - d6e: 08 95 ret - d70: 0a 26 eor r0, r26 - d72: 09 f4 brne .+2 ; 0xd76 <__fp_cmp+0x3e> - d74: a1 40 sbci r26, 0x01 ; 1 - d76: a6 95 lsr r26 - d78: 8f ef ldi r24, 0xFF ; 255 - d7a: 81 1d adc r24, r1 - d7c: 81 1d adc r24, r1 - d7e: 08 95 ret +00000df2 <__fixunssfsi>: + df2: bc d0 rcall .+376 ; 0xf6c <__fp_splitA> + df4: 88 f0 brcs .+34 ; 0xe18 <__fixunssfsi+0x26> + df6: 9f 57 subi r25, 0x7F ; 127 + df8: 90 f0 brcs .+36 ; 0xe1e <__fixunssfsi+0x2c> + dfa: b9 2f mov r27, r25 + dfc: 99 27 eor r25, r25 + dfe: b7 51 subi r27, 0x17 ; 23 + e00: a0 f0 brcs .+40 ; 0xe2a <__fixunssfsi+0x38> + e02: d1 f0 breq .+52 ; 0xe38 <__fixunssfsi+0x46> + e04: 66 0f add r22, r22 + e06: 77 1f adc r23, r23 + e08: 88 1f adc r24, r24 + e0a: 99 1f adc r25, r25 + e0c: 1a f0 brmi .+6 ; 0xe14 <__fixunssfsi+0x22> + e0e: ba 95 dec r27 + e10: c9 f7 brne .-14 ; 0xe04 <__fixunssfsi+0x12> + e12: 12 c0 rjmp .+36 ; 0xe38 <__fixunssfsi+0x46> + e14: b1 30 cpi r27, 0x01 ; 1 + e16: 81 f0 breq .+32 ; 0xe38 <__fixunssfsi+0x46> + e18: c3 d0 rcall .+390 ; 0xfa0 <__fp_zero> + e1a: b1 e0 ldi r27, 0x01 ; 1 + e1c: 08 95 ret + e1e: c0 c0 rjmp .+384 ; 0xfa0 <__fp_zero> + e20: 67 2f mov r22, r23 + e22: 78 2f mov r23, r24 + e24: 88 27 eor r24, r24 + e26: b8 5f subi r27, 0xF8 ; 248 + e28: 39 f0 breq .+14 ; 0xe38 <__fixunssfsi+0x46> + e2a: b9 3f cpi r27, 0xF9 ; 249 + e2c: cc f3 brlt .-14 ; 0xe20 <__fixunssfsi+0x2e> + e2e: 86 95 lsr r24 + e30: 77 95 ror r23 + e32: 67 95 ror r22 + e34: b3 95 inc r27 + e36: d9 f7 brne .-10 ; 0xe2e <__fixunssfsi+0x3c> + e38: 3e f4 brtc .+14 ; 0xe48 <__fixunssfsi+0x56> + e3a: 90 95 com r25 + e3c: 80 95 com r24 + e3e: 70 95 com r23 + e40: 61 95 neg r22 + e42: 7f 4f sbci r23, 0xFF ; 255 + e44: 8f 4f sbci r24, 0xFF ; 255 + e46: 9f 4f sbci r25, 0xFF ; 255 + e48: 08 95 ret -00000d80 <__fp_inf>: - d80: 97 f9 bld r25, 7 - d82: 9f 67 ori r25, 0x7F ; 127 - d84: 80 e8 ldi r24, 0x80 ; 128 - d86: 70 e0 ldi r23, 0x00 ; 0 - d88: 60 e0 ldi r22, 0x00 ; 0 - d8a: 08 95 ret +00000e4a <__floatunsisf>: + e4a: e8 94 clt + e4c: 09 c0 rjmp .+18 ; 0xe60 <__floatsisf+0x12> -00000d8c <__fp_nan>: - d8c: 9f ef ldi r25, 0xFF ; 255 - d8e: 80 ec ldi r24, 0xC0 ; 192 - d90: 08 95 ret +00000e4e <__floatsisf>: + e4e: 97 fb bst r25, 7 + e50: 3e f4 brtc .+14 ; 0xe60 <__floatsisf+0x12> + e52: 90 95 com r25 + e54: 80 95 com r24 + e56: 70 95 com r23 + e58: 61 95 neg r22 + e5a: 7f 4f sbci r23, 0xFF ; 255 + e5c: 8f 4f sbci r24, 0xFF ; 255 + e5e: 9f 4f sbci r25, 0xFF ; 255 + e60: 99 23 and r25, r25 + e62: a9 f0 breq .+42 ; 0xe8e <__floatsisf+0x40> + e64: f9 2f mov r31, r25 + e66: 96 e9 ldi r25, 0x96 ; 150 + e68: bb 27 eor r27, r27 + e6a: 93 95 inc r25 + e6c: f6 95 lsr r31 + e6e: 87 95 ror r24 + e70: 77 95 ror r23 + e72: 67 95 ror r22 + e74: b7 95 ror r27 + e76: f1 11 cpse r31, r1 + e78: f8 cf rjmp .-16 ; 0xe6a <__floatsisf+0x1c> + e7a: fa f4 brpl .+62 ; 0xeba <__floatsisf+0x6c> + e7c: bb 0f add r27, r27 + e7e: 11 f4 brne .+4 ; 0xe84 <__floatsisf+0x36> + e80: 60 ff sbrs r22, 0 + e82: 1b c0 rjmp .+54 ; 0xeba <__floatsisf+0x6c> + e84: 6f 5f subi r22, 0xFF ; 255 + e86: 7f 4f sbci r23, 0xFF ; 255 + e88: 8f 4f sbci r24, 0xFF ; 255 + e8a: 9f 4f sbci r25, 0xFF ; 255 + e8c: 16 c0 rjmp .+44 ; 0xeba <__floatsisf+0x6c> + e8e: 88 23 and r24, r24 + e90: 11 f0 breq .+4 ; 0xe96 <__floatsisf+0x48> + e92: 96 e9 ldi r25, 0x96 ; 150 + e94: 11 c0 rjmp .+34 ; 0xeb8 <__floatsisf+0x6a> + e96: 77 23 and r23, r23 + e98: 21 f0 breq .+8 ; 0xea2 <__floatsisf+0x54> + e9a: 9e e8 ldi r25, 0x8E ; 142 + e9c: 87 2f mov r24, r23 + e9e: 76 2f mov r23, r22 + ea0: 05 c0 rjmp .+10 ; 0xeac <__floatsisf+0x5e> + ea2: 66 23 and r22, r22 + ea4: 71 f0 breq .+28 ; 0xec2 <__floatsisf+0x74> + ea6: 96 e8 ldi r25, 0x86 ; 134 + ea8: 86 2f mov r24, r22 + eaa: 70 e0 ldi r23, 0x00 ; 0 + eac: 60 e0 ldi r22, 0x00 ; 0 + eae: 2a f0 brmi .+10 ; 0xeba <__floatsisf+0x6c> + eb0: 9a 95 dec r25 + eb2: 66 0f add r22, r22 + eb4: 77 1f adc r23, r23 + eb6: 88 1f adc r24, r24 + eb8: da f7 brpl .-10 ; 0xeb0 <__floatsisf+0x62> + eba: 88 0f add r24, r24 + ebc: 96 95 lsr r25 + ebe: 87 95 ror r24 + ec0: 97 f9 bld r25, 7 + ec2: 08 95 ret -00000d92 <__fp_pscA>: - d92: 00 24 eor r0, r0 - d94: 0a 94 dec r0 - d96: 16 16 cp r1, r22 - d98: 17 06 cpc r1, r23 - d9a: 18 06 cpc r1, r24 - d9c: 09 06 cpc r0, r25 - d9e: 08 95 ret +00000ec4 <__fp_cmp>: + ec4: 99 0f add r25, r25 + ec6: 00 08 sbc r0, r0 + ec8: 55 0f add r21, r21 + eca: aa 0b sbc r26, r26 + ecc: e0 e8 ldi r30, 0x80 ; 128 + ece: fe ef ldi r31, 0xFE ; 254 + ed0: 16 16 cp r1, r22 + ed2: 17 06 cpc r1, r23 + ed4: e8 07 cpc r30, r24 + ed6: f9 07 cpc r31, r25 + ed8: c0 f0 brcs .+48 ; 0xf0a <__fp_cmp+0x46> + eda: 12 16 cp r1, r18 + edc: 13 06 cpc r1, r19 + ede: e4 07 cpc r30, r20 + ee0: f5 07 cpc r31, r21 + ee2: 98 f0 brcs .+38 ; 0xf0a <__fp_cmp+0x46> + ee4: 62 1b sub r22, r18 + ee6: 73 0b sbc r23, r19 + ee8: 84 0b sbc r24, r20 + eea: 95 0b sbc r25, r21 + eec: 39 f4 brne .+14 ; 0xefc <__fp_cmp+0x38> + eee: 0a 26 eor r0, r26 + ef0: 61 f0 breq .+24 ; 0xf0a <__fp_cmp+0x46> + ef2: 23 2b or r18, r19 + ef4: 24 2b or r18, r20 + ef6: 25 2b or r18, r21 + ef8: 21 f4 brne .+8 ; 0xf02 <__fp_cmp+0x3e> + efa: 08 95 ret + efc: 0a 26 eor r0, r26 + efe: 09 f4 brne .+2 ; 0xf02 <__fp_cmp+0x3e> + f00: a1 40 sbci r26, 0x01 ; 1 + f02: a6 95 lsr r26 + f04: 8f ef ldi r24, 0xFF ; 255 + f06: 81 1d adc r24, r1 + f08: 81 1d adc r24, r1 + f0a: 08 95 ret -00000da0 <__fp_pscB>: - da0: 00 24 eor r0, r0 - da2: 0a 94 dec r0 - da4: 12 16 cp r1, r18 - da6: 13 06 cpc r1, r19 - da8: 14 06 cpc r1, r20 - daa: 05 06 cpc r0, r21 - dac: 08 95 ret - -00000dae <__fp_round>: - dae: 09 2e mov r0, r25 - db0: 03 94 inc r0 - db2: 00 0c add r0, r0 - db4: 11 f4 brne .+4 ; 0xdba <__fp_round+0xc> - db6: 88 23 and r24, r24 - db8: 52 f0 brmi .+20 ; 0xdce <__fp_round+0x20> - dba: bb 0f add r27, r27 - dbc: 40 f4 brcc .+16 ; 0xdce <__fp_round+0x20> - dbe: bf 2b or r27, r31 - dc0: 11 f4 brne .+4 ; 0xdc6 <__fp_round+0x18> - dc2: 60 ff sbrs r22, 0 - dc4: 04 c0 rjmp .+8 ; 0xdce <__fp_round+0x20> - dc6: 6f 5f subi r22, 0xFF ; 255 - dc8: 7f 4f sbci r23, 0xFF ; 255 - dca: 8f 4f sbci r24, 0xFF ; 255 - dcc: 9f 4f sbci r25, 0xFF ; 255 - dce: 08 95 ret - -00000dd0 <__fp_split3>: - dd0: 57 fd sbrc r21, 7 - dd2: 90 58 subi r25, 0x80 ; 128 - dd4: 44 0f add r20, r20 - dd6: 55 1f adc r21, r21 - dd8: 59 f0 breq .+22 ; 0xdf0 <__fp_splitA+0x10> - dda: 5f 3f cpi r21, 0xFF ; 255 - ddc: 71 f0 breq .+28 ; 0xdfa <__fp_splitA+0x1a> - dde: 47 95 ror r20 - -00000de0 <__fp_splitA>: - de0: 88 0f add r24, r24 - de2: 97 fb bst r25, 7 - de4: 99 1f adc r25, r25 - de6: 61 f0 breq .+24 ; 0xe00 <__fp_splitA+0x20> - de8: 9f 3f cpi r25, 0xFF ; 255 - dea: 79 f0 breq .+30 ; 0xe0a <__fp_splitA+0x2a> - dec: 87 95 ror r24 - dee: 08 95 ret - df0: 12 16 cp r1, r18 - df2: 13 06 cpc r1, r19 - df4: 14 06 cpc r1, r20 - df6: 55 1f adc r21, r21 - df8: f2 cf rjmp .-28 ; 0xdde <__fp_split3+0xe> - dfa: 46 95 lsr r20 - dfc: f1 df rcall .-30 ; 0xde0 <__fp_splitA> - dfe: 08 c0 rjmp .+16 ; 0xe10 <__fp_splitA+0x30> - e00: 16 16 cp r1, r22 - e02: 17 06 cpc r1, r23 - e04: 18 06 cpc r1, r24 - e06: 99 1f adc r25, r25 - e08: f1 cf rjmp .-30 ; 0xdec <__fp_splitA+0xc> - e0a: 86 95 lsr r24 - e0c: 71 05 cpc r23, r1 - e0e: 61 05 cpc r22, r1 - e10: 08 94 sec - e12: 08 95 ret - -00000e14 <__fp_zero>: - e14: e8 94 clt - -00000e16 <__fp_szero>: - e16: bb 27 eor r27, r27 - e18: 66 27 eor r22, r22 - e1a: 77 27 eor r23, r23 - e1c: cb 01 movw r24, r22 - e1e: 97 f9 bld r25, 7 - e20: 08 95 ret - -00000e22 <__gesf2>: - e22: 8a df rcall .-236 ; 0xd38 <__fp_cmp> - e24: 08 f4 brcc .+2 ; 0xe28 <__gesf2+0x6> - e26: 8f ef ldi r24, 0xFF ; 255 - e28: 08 95 ret - -00000e2a <__mulsf3>: - e2a: 0b d0 rcall .+22 ; 0xe42 <__mulsf3x> - e2c: c0 cf rjmp .-128 ; 0xdae <__fp_round> - e2e: b1 df rcall .-158 ; 0xd92 <__fp_pscA> - e30: 28 f0 brcs .+10 ; 0xe3c <__mulsf3+0x12> - e32: b6 df rcall .-148 ; 0xda0 <__fp_pscB> - e34: 18 f0 brcs .+6 ; 0xe3c <__mulsf3+0x12> - e36: 95 23 and r25, r21 - e38: 09 f0 breq .+2 ; 0xe3c <__mulsf3+0x12> - e3a: a2 cf rjmp .-188 ; 0xd80 <__fp_inf> - e3c: a7 cf rjmp .-178 ; 0xd8c <__fp_nan> - e3e: 11 24 eor r1, r1 - e40: ea cf rjmp .-44 ; 0xe16 <__fp_szero> - -00000e42 <__mulsf3x>: - e42: c6 df rcall .-116 ; 0xdd0 <__fp_split3> - e44: a0 f3 brcs .-24 ; 0xe2e <__mulsf3+0x4> - -00000e46 <__mulsf3_pse>: - e46: 95 9f mul r25, r21 - e48: d1 f3 breq .-12 ; 0xe3e <__mulsf3+0x14> - e4a: 95 0f add r25, r21 - e4c: 50 e0 ldi r21, 0x00 ; 0 - e4e: 55 1f adc r21, r21 - e50: 62 9f mul r22, r18 - e52: f0 01 movw r30, r0 - e54: 72 9f mul r23, r18 - e56: bb 27 eor r27, r27 - e58: f0 0d add r31, r0 - e5a: b1 1d adc r27, r1 - e5c: 63 9f mul r22, r19 - e5e: aa 27 eor r26, r26 - e60: f0 0d add r31, r0 - e62: b1 1d adc r27, r1 - e64: aa 1f adc r26, r26 - e66: 64 9f mul r22, r20 - e68: 66 27 eor r22, r22 - e6a: b0 0d add r27, r0 - e6c: a1 1d adc r26, r1 - e6e: 66 1f adc r22, r22 - e70: 82 9f mul r24, r18 - e72: 22 27 eor r18, r18 - e74: b0 0d add r27, r0 - e76: a1 1d adc r26, r1 - e78: 62 1f adc r22, r18 - e7a: 73 9f mul r23, r19 - e7c: b0 0d add r27, r0 - e7e: a1 1d adc r26, r1 - e80: 62 1f adc r22, r18 - e82: 83 9f mul r24, r19 - e84: a0 0d add r26, r0 - e86: 61 1d adc r22, r1 - e88: 22 1f adc r18, r18 - e8a: 74 9f mul r23, r20 - e8c: 33 27 eor r19, r19 - e8e: a0 0d add r26, r0 - e90: 61 1d adc r22, r1 - e92: 23 1f adc r18, r19 - e94: 84 9f mul r24, r20 - e96: 60 0d add r22, r0 - e98: 21 1d adc r18, r1 - e9a: 82 2f mov r24, r18 - e9c: 76 2f mov r23, r22 - e9e: 6a 2f mov r22, r26 - ea0: 11 24 eor r1, r1 - ea2: 9f 57 subi r25, 0x7F ; 127 - ea4: 50 40 sbci r21, 0x00 ; 0 - ea6: 8a f0 brmi .+34 ; 0xeca <__mulsf3_pse+0x84> - ea8: e1 f0 breq .+56 ; 0xee2 <__mulsf3_pse+0x9c> - eaa: 88 23 and r24, r24 - eac: 4a f0 brmi .+18 ; 0xec0 <__mulsf3_pse+0x7a> - eae: ee 0f add r30, r30 - eb0: ff 1f adc r31, r31 - eb2: bb 1f adc r27, r27 - eb4: 66 1f adc r22, r22 - eb6: 77 1f adc r23, r23 - eb8: 88 1f adc r24, r24 - eba: 91 50 subi r25, 0x01 ; 1 - ebc: 50 40 sbci r21, 0x00 ; 0 - ebe: a9 f7 brne .-22 ; 0xeaa <__mulsf3_pse+0x64> - ec0: 9e 3f cpi r25, 0xFE ; 254 - ec2: 51 05 cpc r21, r1 - ec4: 70 f0 brcs .+28 ; 0xee2 <__mulsf3_pse+0x9c> - ec6: 5c cf rjmp .-328 ; 0xd80 <__fp_inf> - ec8: a6 cf rjmp .-180 ; 0xe16 <__fp_szero> - eca: 5f 3f cpi r21, 0xFF ; 255 - ecc: ec f3 brlt .-6 ; 0xec8 <__mulsf3_pse+0x82> - ece: 98 3e cpi r25, 0xE8 ; 232 - ed0: dc f3 brlt .-10 ; 0xec8 <__mulsf3_pse+0x82> - ed2: 86 95 lsr r24 - ed4: 77 95 ror r23 - ed6: 67 95 ror r22 - ed8: b7 95 ror r27 - eda: f7 95 ror r31 - edc: e7 95 ror r30 - ede: 9f 5f subi r25, 0xFF ; 255 - ee0: c1 f7 brne .-16 ; 0xed2 <__mulsf3_pse+0x8c> - ee2: fe 2b or r31, r30 - ee4: 88 0f add r24, r24 - ee6: 91 1d adc r25, r1 - ee8: 96 95 lsr r25 - eea: 87 95 ror r24 - eec: 97 f9 bld r25, 7 - eee: 08 95 ret - -00000ef0 <__udivmodhi4>: - ef0: aa 1b sub r26, r26 - ef2: bb 1b sub r27, r27 - ef4: 51 e1 ldi r21, 0x11 ; 17 - ef6: 07 c0 rjmp .+14 ; 0xf06 <__udivmodhi4_ep> - -00000ef8 <__udivmodhi4_loop>: - ef8: aa 1f adc r26, r26 - efa: bb 1f adc r27, r27 - efc: a6 17 cp r26, r22 - efe: b7 07 cpc r27, r23 - f00: 10 f0 brcs .+4 ; 0xf06 <__udivmodhi4_ep> - f02: a6 1b sub r26, r22 - f04: b7 0b sbc r27, r23 - -00000f06 <__udivmodhi4_ep>: - f06: 88 1f adc r24, r24 - f08: 99 1f adc r25, r25 - f0a: 5a 95 dec r21 - f0c: a9 f7 brne .-22 ; 0xef8 <__udivmodhi4_loop> - f0e: 80 95 com r24 - f10: 90 95 com r25 - f12: bc 01 movw r22, r24 - f14: cd 01 movw r24, r26 +00000f0c <__fp_inf>: + f0c: 97 f9 bld r25, 7 + f0e: 9f 67 ori r25, 0x7F ; 127 + f10: 80 e8 ldi r24, 0x80 ; 128 + f12: 70 e0 ldi r23, 0x00 ; 0 + f14: 60 e0 ldi r22, 0x00 ; 0 f16: 08 95 ret -00000f18 <__tablejump2__>: - f18: ee 0f add r30, r30 - f1a: ff 1f adc r31, r31 +00000f18 <__fp_nan>: + f18: 9f ef ldi r25, 0xFF ; 255 + f1a: 80 ec ldi r24, 0xC0 ; 192 + f1c: 08 95 ret -00000f1c <__tablejump__>: - f1c: 05 90 lpm r0, Z+ - f1e: f4 91 lpm r31, Z - f20: e0 2d mov r30, r0 - f22: 09 94 ijmp +00000f1e <__fp_pscA>: + f1e: 00 24 eor r0, r0 + f20: 0a 94 dec r0 + f22: 16 16 cp r1, r22 + f24: 17 06 cpc r1, r23 + f26: 18 06 cpc r1, r24 + f28: 09 06 cpc r0, r25 + f2a: 08 95 ret -00000f24 : - f24: ef 92 push r14 - f26: 0f 93 push r16 - f28: 1f 93 push r17 - f2a: cf 93 push r28 - f2c: c0 2f mov r28, r16 - f2e: 47 ff sbrs r20, 7 - f30: 02 c0 rjmp .+4 ; 0xf36 - f32: 34 e1 ldi r19, 0x14 ; 20 - f34: 01 c0 rjmp .+2 ; 0xf38 - f36: 34 e0 ldi r19, 0x04 ; 4 - f38: e4 2f mov r30, r20 - f3a: ff 27 eor r31, r31 - f3c: e7 fd sbrc r30, 7 - f3e: f0 95 com r31 - f40: f7 ff sbrs r31, 7 - f42: 03 c0 rjmp .+6 ; 0xf4a - f44: f1 95 neg r31 - f46: e1 95 neg r30 - f48: f1 09 sbc r31, r1 - f4a: e3 2e mov r14, r19 - f4c: 02 2f mov r16, r18 - f4e: 2e 2f mov r18, r30 - f50: 4c 2f mov r20, r28 - f52: 51 2f mov r21, r17 - f54: 0e 94 c9 07 call 0xf92 ; 0xf92 - f58: 8c 2f mov r24, r28 - f5a: 91 2f mov r25, r17 - f5c: cf 91 pop r28 - f5e: 1f 91 pop r17 - f60: 0f 91 pop r16 - f62: ef 90 pop r14 - f64: 08 95 ret +00000f2c <__fp_pscB>: + f2c: 00 24 eor r0, r0 + f2e: 0a 94 dec r0 + f30: 12 16 cp r1, r18 + f32: 13 06 cpc r1, r19 + f34: 14 06 cpc r1, r20 + f36: 05 06 cpc r0, r21 + f38: 08 95 ret -00000f66 : - f66: fb 01 movw r30, r22 - f68: 9f 01 movw r18, r30 - f6a: 42 30 cpi r20, 0x02 ; 2 - f6c: 74 f0 brlt .+28 ; 0xf8a - f6e: 45 32 cpi r20, 0x25 ; 37 - f70: 64 f4 brge .+24 ; 0xf8a - f72: 64 2f mov r22, r20 - f74: 77 27 eor r23, r23 - f76: 0e 94 78 07 call 0xef0 ; 0xef0 <__udivmodhi4> - f7a: 80 5d subi r24, 0xD0 ; 208 - f7c: 8a 33 cpi r24, 0x3A ; 58 - f7e: 0c f0 brlt .+2 ; 0xf82 - f80: 89 5d subi r24, 0xD9 ; 217 - f82: 81 93 st Z+, r24 - f84: cb 01 movw r24, r22 - f86: 00 97 sbiw r24, 0x00 ; 0 - f88: a1 f7 brne .-24 ; 0xf72 - f8a: 10 82 st Z, r1 - f8c: c9 01 movw r24, r18 - f8e: 0c 94 1e 0a jmp 0x143c ; 0x143c +00000f3a <__fp_round>: + f3a: 09 2e mov r0, r25 + f3c: 03 94 inc r0 + f3e: 00 0c add r0, r0 + f40: 11 f4 brne .+4 ; 0xf46 <__fp_round+0xc> + f42: 88 23 and r24, r24 + f44: 52 f0 brmi .+20 ; 0xf5a <__fp_round+0x20> + f46: bb 0f add r27, r27 + f48: 40 f4 brcc .+16 ; 0xf5a <__fp_round+0x20> + f4a: bf 2b or r27, r31 + f4c: 11 f4 brne .+4 ; 0xf52 <__fp_round+0x18> + f4e: 60 ff sbrs r22, 0 + f50: 04 c0 rjmp .+8 ; 0xf5a <__fp_round+0x20> + f52: 6f 5f subi r22, 0xFF ; 255 + f54: 7f 4f sbci r23, 0xFF ; 255 + f56: 8f 4f sbci r24, 0xFF ; 255 + f58: 9f 4f sbci r25, 0xFF ; 255 + f5a: 08 95 ret -00000f92 : - f92: 6f 92 push r6 - f94: 7f 92 push r7 - f96: 9f 92 push r9 - f98: af 92 push r10 - f9a: bf 92 push r11 - f9c: cf 92 push r12 - f9e: df 92 push r13 - fa0: ef 92 push r14 - fa2: ff 92 push r15 - fa4: 0f 93 push r16 - fa6: 1f 93 push r17 - fa8: cf 93 push r28 - faa: df 93 push r29 - fac: cd b7 in r28, 0x3d ; 61 - fae: de b7 in r29, 0x3e ; 62 - fb0: 29 97 sbiw r28, 0x09 ; 9 - fb2: 0f b6 in r0, 0x3f ; 63 - fb4: f8 94 cli - fb6: de bf out 0x3e, r29 ; 62 - fb8: 0f be out 0x3f, r0 ; 63 - fba: cd bf out 0x3d, r28 ; 61 - fbc: 6a 01 movw r12, r20 - fbe: b2 2e mov r11, r18 - fc0: 10 2f mov r17, r16 - fc2: 0c 33 cpi r16, 0x3C ; 60 - fc4: 18 f4 brcc .+6 ; 0xfcc - fc6: f0 2e mov r15, r16 - fc8: f3 94 inc r15 - fca: 02 c0 rjmp .+4 ; 0xfd0 - fcc: 5c e3 ldi r21, 0x3C ; 60 - fce: f5 2e mov r15, r21 - fd0: 0f 2d mov r16, r15 - fd2: 27 e0 ldi r18, 0x07 ; 7 - fd4: ae 01 movw r20, r28 - fd6: 4f 5f subi r20, 0xFF ; 255 - fd8: 5f 4f sbci r21, 0xFF ; 255 - fda: 0e 94 46 09 call 0x128c ; 0x128c <__ftoa_engine> - fde: 79 81 ldd r23, Y+1 ; 0x01 - fe0: 27 2f mov r18, r23 - fe2: 29 70 andi r18, 0x09 ; 9 - fe4: 21 30 cpi r18, 0x01 ; 1 - fe6: 31 f0 breq .+12 ; 0xff4 - fe8: e1 fc sbrc r14, 1 - fea: 06 c0 rjmp .+12 ; 0xff8 - fec: e0 fe sbrs r14, 0 - fee: 06 c0 rjmp .+12 ; 0xffc - ff0: 60 e2 ldi r22, 0x20 ; 32 - ff2: 05 c0 rjmp .+10 ; 0xffe - ff4: 6d e2 ldi r22, 0x2D ; 45 - ff6: 03 c0 rjmp .+6 ; 0xffe - ff8: 6b e2 ldi r22, 0x2B ; 43 - ffa: 01 c0 rjmp .+2 ; 0xffe - ffc: 60 e0 ldi r22, 0x00 ; 0 - ffe: 73 ff sbrs r23, 3 - 1000: 3d c0 rjmp .+122 ; 0x107c - 1002: 66 23 and r22, r22 - 1004: 11 f0 breq .+4 ; 0x100a - 1006: 84 e0 ldi r24, 0x04 ; 4 - 1008: 01 c0 rjmp .+2 ; 0x100c - 100a: 83 e0 ldi r24, 0x03 ; 3 - 100c: 8b 15 cp r24, r11 - 100e: 10 f4 brcc .+4 ; 0x1014 - 1010: b8 1a sub r11, r24 - 1012: 01 c0 rjmp .+2 ; 0x1016 - 1014: b1 2c mov r11, r1 - 1016: e4 fc sbrc r14, 4 - 1018: 0b c0 rjmp .+22 ; 0x1030 - 101a: 8b 2d mov r24, r11 - 101c: f6 01 movw r30, r12 - 101e: 90 e2 ldi r25, 0x20 ; 32 - 1020: 02 c0 rjmp .+4 ; 0x1026 - 1022: 91 93 st Z+, r25 - 1024: 81 50 subi r24, 0x01 ; 1 - 1026: 81 11 cpse r24, r1 - 1028: fc cf rjmp .-8 ; 0x1022 - 102a: cb 0c add r12, r11 - 102c: d1 1c adc r13, r1 - 102e: b1 2c mov r11, r1 - 1030: 66 23 and r22, r22 - 1032: 19 f0 breq .+6 ; 0x103a - 1034: d6 01 movw r26, r12 - 1036: 6d 93 st X+, r22 - 1038: 6d 01 movw r12, r26 - 103a: e2 fe sbrs r14, 2 - 103c: 0a c0 rjmp .+20 ; 0x1052 - 103e: 8e e4 ldi r24, 0x4E ; 78 - 1040: f6 01 movw r30, r12 - 1042: 80 83 st Z, r24 - 1044: 91 e4 ldi r25, 0x41 ; 65 - 1046: 91 83 std Z+1, r25 ; 0x01 - 1048: 82 83 std Z+2, r24 ; 0x02 - 104a: f3 e0 ldi r31, 0x03 ; 3 - 104c: cf 0e add r12, r31 - 104e: d1 1c adc r13, r1 - 1050: 0c c0 rjmp .+24 ; 0x106a - 1052: 8e e6 ldi r24, 0x6E ; 110 - 1054: d6 01 movw r26, r12 - 1056: 8c 93 st X, r24 - 1058: 91 e6 ldi r25, 0x61 ; 97 - 105a: 11 96 adiw r26, 0x01 ; 1 - 105c: 9c 93 st X, r25 - 105e: 11 97 sbiw r26, 0x01 ; 1 - 1060: 12 96 adiw r26, 0x02 ; 2 - 1062: 8c 93 st X, r24 - 1064: b3 e0 ldi r27, 0x03 ; 3 - 1066: cb 0e add r12, r27 - 1068: d1 1c adc r13, r1 - 106a: 8b 2d mov r24, r11 - 106c: f6 01 movw r30, r12 - 106e: 90 e2 ldi r25, 0x20 ; 32 - 1070: 02 c0 rjmp .+4 ; 0x1076 - 1072: 91 93 st Z+, r25 - 1074: 81 50 subi r24, 0x01 ; 1 - 1076: 81 11 cpse r24, r1 - 1078: fc cf rjmp .-8 ; 0x1072 - 107a: 40 c0 rjmp .+128 ; 0x10fc - 107c: 72 ff sbrs r23, 2 - 107e: 45 c0 rjmp .+138 ; 0x110a - 1080: 66 23 and r22, r22 - 1082: 11 f0 breq .+4 ; 0x1088 - 1084: 84 e0 ldi r24, 0x04 ; 4 - 1086: 01 c0 rjmp .+2 ; 0x108a - 1088: 83 e0 ldi r24, 0x03 ; 3 - 108a: 8b 15 cp r24, r11 - 108c: 10 f4 brcc .+4 ; 0x1092 - 108e: b8 1a sub r11, r24 - 1090: 01 c0 rjmp .+2 ; 0x1094 - 1092: b1 2c mov r11, r1 - 1094: e4 fc sbrc r14, 4 - 1096: 0b c0 rjmp .+22 ; 0x10ae - 1098: 8b 2d mov r24, r11 - 109a: f6 01 movw r30, r12 - 109c: 90 e2 ldi r25, 0x20 ; 32 - 109e: 02 c0 rjmp .+4 ; 0x10a4 - 10a0: 91 93 st Z+, r25 - 10a2: 81 50 subi r24, 0x01 ; 1 - 10a4: 81 11 cpse r24, r1 - 10a6: fc cf rjmp .-8 ; 0x10a0 - 10a8: cb 0c add r12, r11 - 10aa: d1 1c adc r13, r1 - 10ac: b1 2c mov r11, r1 - 10ae: 66 23 and r22, r22 - 10b0: 19 f0 breq .+6 ; 0x10b8 - 10b2: f6 01 movw r30, r12 - 10b4: 61 93 st Z+, r22 - 10b6: 6f 01 movw r12, r30 - 10b8: e2 fe sbrs r14, 2 - 10ba: 0e c0 rjmp .+28 ; 0x10d8 - 10bc: 89 e4 ldi r24, 0x49 ; 73 - 10be: d6 01 movw r26, r12 - 10c0: 8c 93 st X, r24 - 10c2: 8e e4 ldi r24, 0x4E ; 78 - 10c4: 11 96 adiw r26, 0x01 ; 1 - 10c6: 8c 93 st X, r24 - 10c8: 11 97 sbiw r26, 0x01 ; 1 - 10ca: 86 e4 ldi r24, 0x46 ; 70 - 10cc: 12 96 adiw r26, 0x02 ; 2 - 10ce: 8c 93 st X, r24 - 10d0: b3 e0 ldi r27, 0x03 ; 3 - 10d2: cb 0e add r12, r27 - 10d4: d1 1c adc r13, r1 - 10d6: 0a c0 rjmp .+20 ; 0x10ec - 10d8: 89 e6 ldi r24, 0x69 ; 105 - 10da: f6 01 movw r30, r12 - 10dc: 80 83 st Z, r24 - 10de: 8e e6 ldi r24, 0x6E ; 110 - 10e0: 81 83 std Z+1, r24 ; 0x01 - 10e2: 86 e6 ldi r24, 0x66 ; 102 - 10e4: 82 83 std Z+2, r24 ; 0x02 - 10e6: f3 e0 ldi r31, 0x03 ; 3 - 10e8: cf 0e add r12, r31 - 10ea: d1 1c adc r13, r1 - 10ec: 8b 2d mov r24, r11 - 10ee: f6 01 movw r30, r12 - 10f0: 90 e2 ldi r25, 0x20 ; 32 - 10f2: 02 c0 rjmp .+4 ; 0x10f8 - 10f4: 91 93 st Z+, r25 - 10f6: 81 50 subi r24, 0x01 ; 1 - 10f8: 81 11 cpse r24, r1 - 10fa: fc cf rjmp .-8 ; 0x10f4 - 10fc: f6 01 movw r30, r12 - 10fe: eb 0d add r30, r11 - 1100: f1 1d adc r31, r1 - 1102: 10 82 st Z, r1 - 1104: 2e ef ldi r18, 0xFE ; 254 - 1106: 3f ef ldi r19, 0xFF ; 255 - 1108: ac c0 rjmp .+344 ; 0x1262 - 110a: a1 e0 ldi r26, 0x01 ; 1 - 110c: 61 11 cpse r22, r1 - 110e: 01 c0 rjmp .+2 ; 0x1112 - 1110: a0 e0 ldi r26, 0x00 ; 0 - 1112: 4a 2f mov r20, r26 - 1114: 50 e0 ldi r21, 0x00 ; 0 - 1116: 18 16 cp r1, r24 - 1118: 19 06 cpc r1, r25 - 111a: 24 f4 brge .+8 ; 0x1124 - 111c: 9c 01 movw r18, r24 - 111e: 2f 5f subi r18, 0xFF ; 255 - 1120: 3f 4f sbci r19, 0xFF ; 255 - 1122: 02 c0 rjmp .+4 ; 0x1128 - 1124: 21 e0 ldi r18, 0x01 ; 1 - 1126: 30 e0 ldi r19, 0x00 ; 0 - 1128: 24 0f add r18, r20 - 112a: 35 1f adc r19, r21 - 112c: 11 23 and r17, r17 - 112e: 29 f0 breq .+10 ; 0x113a - 1130: 41 2f mov r20, r17 - 1132: 50 e0 ldi r21, 0x00 ; 0 - 1134: 4f 5f subi r20, 0xFF ; 255 - 1136: 5f 4f sbci r21, 0xFF ; 255 - 1138: 02 c0 rjmp .+4 ; 0x113e - 113a: 40 e0 ldi r20, 0x00 ; 0 - 113c: 50 e0 ldi r21, 0x00 ; 0 - 113e: 42 0f add r20, r18 - 1140: 53 1f adc r21, r19 - 1142: 2b 2d mov r18, r11 - 1144: 30 e0 ldi r19, 0x00 ; 0 - 1146: 42 17 cp r20, r18 - 1148: 53 07 cpc r21, r19 - 114a: 14 f4 brge .+4 ; 0x1150 - 114c: b4 1a sub r11, r20 - 114e: 01 c0 rjmp .+2 ; 0x1152 - 1150: b1 2c mov r11, r1 - 1152: 3e 2d mov r19, r14 - 1154: 30 71 andi r19, 0x10 ; 16 - 1156: e4 fc sbrc r14, 4 - 1158: 0d c0 rjmp .+26 ; 0x1174 - 115a: e3 fc sbrc r14, 3 - 115c: 0b c0 rjmp .+22 ; 0x1174 - 115e: 2b 2d mov r18, r11 - 1160: f6 01 movw r30, r12 - 1162: 40 e2 ldi r20, 0x20 ; 32 - 1164: 02 c0 rjmp .+4 ; 0x116a - 1166: 41 93 st Z+, r20 - 1168: 21 50 subi r18, 0x01 ; 1 - 116a: 21 11 cpse r18, r1 - 116c: fc cf rjmp .-8 ; 0x1166 - 116e: cb 0c add r12, r11 - 1170: d1 1c adc r13, r1 - 1172: b1 2c mov r11, r1 - 1174: aa 23 and r26, r26 - 1176: 19 f0 breq .+6 ; 0x117e - 1178: d6 01 movw r26, r12 - 117a: 6d 93 st X+, r22 - 117c: 6d 01 movw r12, r26 - 117e: 31 11 cpse r19, r1 - 1180: 0b c0 rjmp .+22 ; 0x1198 - 1182: 2b 2d mov r18, r11 - 1184: f6 01 movw r30, r12 - 1186: 30 e3 ldi r19, 0x30 ; 48 - 1188: 02 c0 rjmp .+4 ; 0x118e - 118a: 31 93 st Z+, r19 - 118c: 21 50 subi r18, 0x01 ; 1 - 118e: 21 11 cpse r18, r1 - 1190: fc cf rjmp .-8 ; 0x118a - 1192: cb 0c add r12, r11 - 1194: d1 1c adc r13, r1 - 1196: b1 2c mov r11, r1 - 1198: f8 0e add r15, r24 - 119a: 0a 81 ldd r16, Y+2 ; 0x02 - 119c: 40 e1 ldi r20, 0x10 ; 16 - 119e: a4 2e mov r10, r20 - 11a0: a7 22 and r10, r23 - 11a2: 74 ff sbrs r23, 4 - 11a4: 03 c0 rjmp .+6 ; 0x11ac - 11a6: 01 33 cpi r16, 0x31 ; 49 - 11a8: 09 f4 brne .+2 ; 0x11ac - 11aa: fa 94 dec r15 - 11ac: 1f 14 cp r1, r15 - 11ae: 2c f4 brge .+10 ; 0x11ba - 11b0: 2f 2d mov r18, r15 - 11b2: 29 30 cpi r18, 0x09 ; 9 - 11b4: 18 f0 brcs .+6 ; 0x11bc - 11b6: 28 e0 ldi r18, 0x08 ; 8 - 11b8: 01 c0 rjmp .+2 ; 0x11bc - 11ba: 21 e0 ldi r18, 0x01 ; 1 - 11bc: ac 01 movw r20, r24 - 11be: 97 ff sbrs r25, 7 - 11c0: 02 c0 rjmp .+4 ; 0x11c6 - 11c2: 40 e0 ldi r20, 0x00 ; 0 - 11c4: 50 e0 ldi r21, 0x00 ; 0 - 11c6: 60 e0 ldi r22, 0x00 ; 0 - 11c8: 70 e0 ldi r23, 0x00 ; 0 - 11ca: 3e e2 ldi r19, 0x2E ; 46 - 11cc: 93 2e mov r9, r19 - 11ce: fc 01 movw r30, r24 - 11d0: e2 1b sub r30, r18 - 11d2: f1 09 sbc r31, r1 - 11d4: 9f 01 movw r18, r30 - 11d6: dc 01 movw r26, r24 - 11d8: a4 1b sub r26, r20 - 11da: b5 0b sbc r27, r21 - 11dc: fe 01 movw r30, r28 - 11de: 31 96 adiw r30, 0x01 ; 1 - 11e0: ea 0f add r30, r26 - 11e2: fb 1f adc r31, r27 - 11e4: a1 2f mov r26, r17 - 11e6: b0 e0 ldi r27, 0x00 ; 0 - 11e8: 66 24 eor r6, r6 - 11ea: 77 24 eor r7, r7 - 11ec: 6a 1a sub r6, r26 - 11ee: 7b 0a sbc r7, r27 - 11f0: 4f 3f cpi r20, 0xFF ; 255 - 11f2: 1f ef ldi r17, 0xFF ; 255 - 11f4: 51 07 cpc r21, r17 - 11f6: 19 f4 brne .+6 ; 0x11fe - 11f8: d6 01 movw r26, r12 - 11fa: 9d 92 st X+, r9 - 11fc: 6d 01 movw r12, r26 - 11fe: 84 17 cp r24, r20 - 1200: 95 07 cpc r25, r21 - 1202: 54 f0 brlt .+20 ; 0x1218 - 1204: 24 17 cp r18, r20 - 1206: 35 07 cpc r19, r21 - 1208: 3c f4 brge .+14 ; 0x1218 - 120a: 7f 01 movw r14, r30 - 120c: e6 0e add r14, r22 - 120e: f7 1e adc r15, r23 - 1210: d7 01 movw r26, r14 - 1212: 11 96 adiw r26, 0x01 ; 1 - 1214: 1c 91 ld r17, X - 1216: 01 c0 rjmp .+2 ; 0x121a - 1218: 10 e3 ldi r17, 0x30 ; 48 - 121a: 41 50 subi r20, 0x01 ; 1 - 121c: 51 09 sbc r21, r1 - 121e: 6f 5f subi r22, 0xFF ; 255 - 1220: 7f 4f sbci r23, 0xFF ; 255 - 1222: 46 15 cp r20, r6 - 1224: 57 05 cpc r21, r7 - 1226: 24 f0 brlt .+8 ; 0x1230 - 1228: d6 01 movw r26, r12 - 122a: 1d 93 st X+, r17 - 122c: 6d 01 movw r12, r26 - 122e: e0 cf rjmp .-64 ; 0x11f0 - 1230: 48 17 cp r20, r24 - 1232: 59 07 cpc r21, r25 - 1234: 39 f4 brne .+14 ; 0x1244 - 1236: 06 33 cpi r16, 0x36 ; 54 - 1238: 20 f4 brcc .+8 ; 0x1242 - 123a: 05 33 cpi r16, 0x35 ; 53 - 123c: 19 f4 brne .+6 ; 0x1244 - 123e: a1 10 cpse r10, r1 - 1240: 01 c0 rjmp .+2 ; 0x1244 - 1242: 11 e3 ldi r17, 0x31 ; 49 - 1244: f6 01 movw r30, r12 - 1246: 11 93 st Z+, r17 - 1248: 8b 2d mov r24, r11 - 124a: df 01 movw r26, r30 - 124c: 90 e2 ldi r25, 0x20 ; 32 - 124e: 02 c0 rjmp .+4 ; 0x1254 - 1250: 9d 93 st X+, r25 - 1252: 81 50 subi r24, 0x01 ; 1 - 1254: 81 11 cpse r24, r1 - 1256: fc cf rjmp .-8 ; 0x1250 - 1258: eb 0d add r30, r11 - 125a: f1 1d adc r31, r1 - 125c: 10 82 st Z, r1 - 125e: 20 e0 ldi r18, 0x00 ; 0 - 1260: 30 e0 ldi r19, 0x00 ; 0 - 1262: c9 01 movw r24, r18 - 1264: 29 96 adiw r28, 0x09 ; 9 - 1266: 0f b6 in r0, 0x3f ; 63 - 1268: f8 94 cli - 126a: de bf out 0x3e, r29 ; 62 - 126c: 0f be out 0x3f, r0 ; 63 - 126e: cd bf out 0x3d, r28 ; 61 - 1270: df 91 pop r29 - 1272: cf 91 pop r28 - 1274: 1f 91 pop r17 - 1276: 0f 91 pop r16 - 1278: ff 90 pop r15 - 127a: ef 90 pop r14 - 127c: df 90 pop r13 - 127e: cf 90 pop r12 - 1280: bf 90 pop r11 - 1282: af 90 pop r10 - 1284: 9f 90 pop r9 - 1286: 7f 90 pop r7 - 1288: 6f 90 pop r6 - 128a: 08 95 ret +00000f5c <__fp_split3>: + f5c: 57 fd sbrc r21, 7 + f5e: 90 58 subi r25, 0x80 ; 128 + f60: 44 0f add r20, r20 + f62: 55 1f adc r21, r21 + f64: 59 f0 breq .+22 ; 0xf7c <__fp_splitA+0x10> + f66: 5f 3f cpi r21, 0xFF ; 255 + f68: 71 f0 breq .+28 ; 0xf86 <__fp_splitA+0x1a> + f6a: 47 95 ror r20 -0000128c <__ftoa_engine>: - 128c: 28 30 cpi r18, 0x08 ; 8 - 128e: 08 f0 brcs .+2 ; 0x1292 <__ftoa_engine+0x6> - 1290: 27 e0 ldi r18, 0x07 ; 7 - 1292: 33 27 eor r19, r19 - 1294: da 01 movw r26, r20 - 1296: 99 0f add r25, r25 - 1298: 31 1d adc r19, r1 - 129a: 87 fd sbrc r24, 7 - 129c: 91 60 ori r25, 0x01 ; 1 - 129e: 00 96 adiw r24, 0x00 ; 0 - 12a0: 61 05 cpc r22, r1 - 12a2: 71 05 cpc r23, r1 - 12a4: 39 f4 brne .+14 ; 0x12b4 <__ftoa_engine+0x28> - 12a6: 32 60 ori r19, 0x02 ; 2 - 12a8: 2e 5f subi r18, 0xFE ; 254 - 12aa: 3d 93 st X+, r19 - 12ac: 30 e3 ldi r19, 0x30 ; 48 - 12ae: 2a 95 dec r18 - 12b0: e1 f7 brne .-8 ; 0x12aa <__ftoa_engine+0x1e> - 12b2: 08 95 ret - 12b4: 9f 3f cpi r25, 0xFF ; 255 - 12b6: 30 f0 brcs .+12 ; 0x12c4 <__ftoa_engine+0x38> - 12b8: 80 38 cpi r24, 0x80 ; 128 - 12ba: 71 05 cpc r23, r1 - 12bc: 61 05 cpc r22, r1 - 12be: 09 f0 breq .+2 ; 0x12c2 <__ftoa_engine+0x36> - 12c0: 3c 5f subi r19, 0xFC ; 252 - 12c2: 3c 5f subi r19, 0xFC ; 252 - 12c4: 3d 93 st X+, r19 - 12c6: 91 30 cpi r25, 0x01 ; 1 - 12c8: 08 f0 brcs .+2 ; 0x12cc <__ftoa_engine+0x40> - 12ca: 80 68 ori r24, 0x80 ; 128 - 12cc: 91 1d adc r25, r1 - 12ce: df 93 push r29 - 12d0: cf 93 push r28 - 12d2: 1f 93 push r17 - 12d4: 0f 93 push r16 - 12d6: ff 92 push r15 - 12d8: ef 92 push r14 - 12da: 19 2f mov r17, r25 - 12dc: 98 7f andi r25, 0xF8 ; 248 - 12de: 96 95 lsr r25 - 12e0: e9 2f mov r30, r25 - 12e2: 96 95 lsr r25 - 12e4: 96 95 lsr r25 - 12e6: e9 0f add r30, r25 - 12e8: ff 27 eor r31, r31 - 12ea: e2 55 subi r30, 0x52 ; 82 - 12ec: ff 4f sbci r31, 0xFF ; 255 - 12ee: 99 27 eor r25, r25 - 12f0: 33 27 eor r19, r19 - 12f2: ee 24 eor r14, r14 - 12f4: ff 24 eor r15, r15 - 12f6: a7 01 movw r20, r14 - 12f8: e7 01 movw r28, r14 - 12fa: 05 90 lpm r0, Z+ - 12fc: 08 94 sec - 12fe: 07 94 ror r0 - 1300: 28 f4 brcc .+10 ; 0x130c <__ftoa_engine+0x80> - 1302: 36 0f add r19, r22 - 1304: e7 1e adc r14, r23 - 1306: f8 1e adc r15, r24 - 1308: 49 1f adc r20, r25 - 130a: 51 1d adc r21, r1 - 130c: 66 0f add r22, r22 - 130e: 77 1f adc r23, r23 - 1310: 88 1f adc r24, r24 - 1312: 99 1f adc r25, r25 - 1314: 06 94 lsr r0 - 1316: a1 f7 brne .-24 ; 0x1300 <__ftoa_engine+0x74> - 1318: 05 90 lpm r0, Z+ - 131a: 07 94 ror r0 - 131c: 28 f4 brcc .+10 ; 0x1328 <__ftoa_engine+0x9c> - 131e: e7 0e add r14, r23 - 1320: f8 1e adc r15, r24 - 1322: 49 1f adc r20, r25 - 1324: 56 1f adc r21, r22 - 1326: c1 1d adc r28, r1 - 1328: 77 0f add r23, r23 - 132a: 88 1f adc r24, r24 - 132c: 99 1f adc r25, r25 - 132e: 66 1f adc r22, r22 - 1330: 06 94 lsr r0 - 1332: a1 f7 brne .-24 ; 0x131c <__ftoa_engine+0x90> - 1334: 05 90 lpm r0, Z+ - 1336: 07 94 ror r0 - 1338: 28 f4 brcc .+10 ; 0x1344 <__ftoa_engine+0xb8> - 133a: f8 0e add r15, r24 - 133c: 49 1f adc r20, r25 - 133e: 56 1f adc r21, r22 - 1340: c7 1f adc r28, r23 - 1342: d1 1d adc r29, r1 - 1344: 88 0f add r24, r24 - 1346: 99 1f adc r25, r25 - 1348: 66 1f adc r22, r22 - 134a: 77 1f adc r23, r23 - 134c: 06 94 lsr r0 - 134e: a1 f7 brne .-24 ; 0x1338 <__ftoa_engine+0xac> - 1350: 05 90 lpm r0, Z+ - 1352: 07 94 ror r0 - 1354: 20 f4 brcc .+8 ; 0x135e <__ftoa_engine+0xd2> - 1356: 49 0f add r20, r25 - 1358: 56 1f adc r21, r22 - 135a: c7 1f adc r28, r23 - 135c: d8 1f adc r29, r24 - 135e: 99 0f add r25, r25 - 1360: 66 1f adc r22, r22 - 1362: 77 1f adc r23, r23 - 1364: 88 1f adc r24, r24 - 1366: 06 94 lsr r0 - 1368: a9 f7 brne .-22 ; 0x1354 <__ftoa_engine+0xc8> - 136a: 84 91 lpm r24, Z - 136c: 10 95 com r17 - 136e: 17 70 andi r17, 0x07 ; 7 - 1370: 41 f0 breq .+16 ; 0x1382 <__ftoa_engine+0xf6> - 1372: d6 95 lsr r29 - 1374: c7 95 ror r28 - 1376: 57 95 ror r21 - 1378: 47 95 ror r20 - 137a: f7 94 ror r15 - 137c: e7 94 ror r14 - 137e: 1a 95 dec r17 - 1380: c1 f7 brne .-16 ; 0x1372 <__ftoa_engine+0xe6> - 1382: e4 e5 ldi r30, 0x54 ; 84 - 1384: f0 e0 ldi r31, 0x00 ; 0 - 1386: 68 94 set - 1388: 15 90 lpm r1, Z+ - 138a: 15 91 lpm r17, Z+ - 138c: 35 91 lpm r19, Z+ - 138e: 65 91 lpm r22, Z+ - 1390: 95 91 lpm r25, Z+ - 1392: 05 90 lpm r0, Z+ - 1394: 7f e2 ldi r23, 0x2F ; 47 - 1396: 73 95 inc r23 - 1398: e1 18 sub r14, r1 - 139a: f1 0a sbc r15, r17 - 139c: 43 0b sbc r20, r19 - 139e: 56 0b sbc r21, r22 - 13a0: c9 0b sbc r28, r25 - 13a2: d0 09 sbc r29, r0 - 13a4: c0 f7 brcc .-16 ; 0x1396 <__ftoa_engine+0x10a> - 13a6: e1 0c add r14, r1 - 13a8: f1 1e adc r15, r17 - 13aa: 43 1f adc r20, r19 - 13ac: 56 1f adc r21, r22 - 13ae: c9 1f adc r28, r25 - 13b0: d0 1d adc r29, r0 - 13b2: 7e f4 brtc .+30 ; 0x13d2 <__ftoa_engine+0x146> - 13b4: 70 33 cpi r23, 0x30 ; 48 - 13b6: 11 f4 brne .+4 ; 0x13bc <__ftoa_engine+0x130> - 13b8: 8a 95 dec r24 - 13ba: e6 cf rjmp .-52 ; 0x1388 <__ftoa_engine+0xfc> - 13bc: e8 94 clt - 13be: 01 50 subi r16, 0x01 ; 1 - 13c0: 30 f0 brcs .+12 ; 0x13ce <__ftoa_engine+0x142> - 13c2: 08 0f add r16, r24 - 13c4: 0a f4 brpl .+2 ; 0x13c8 <__ftoa_engine+0x13c> - 13c6: 00 27 eor r16, r16 - 13c8: 02 17 cp r16, r18 - 13ca: 08 f4 brcc .+2 ; 0x13ce <__ftoa_engine+0x142> - 13cc: 20 2f mov r18, r16 - 13ce: 23 95 inc r18 - 13d0: 02 2f mov r16, r18 - 13d2: 7a 33 cpi r23, 0x3A ; 58 - 13d4: 28 f0 brcs .+10 ; 0x13e0 <__ftoa_engine+0x154> - 13d6: 79 e3 ldi r23, 0x39 ; 57 - 13d8: 7d 93 st X+, r23 - 13da: 2a 95 dec r18 - 13dc: e9 f7 brne .-6 ; 0x13d8 <__ftoa_engine+0x14c> - 13de: 10 c0 rjmp .+32 ; 0x1400 <__ftoa_engine+0x174> - 13e0: 7d 93 st X+, r23 - 13e2: 2a 95 dec r18 - 13e4: 89 f6 brne .-94 ; 0x1388 <__ftoa_engine+0xfc> - 13e6: 06 94 lsr r0 - 13e8: 97 95 ror r25 - 13ea: 67 95 ror r22 - 13ec: 37 95 ror r19 - 13ee: 17 95 ror r17 - 13f0: 17 94 ror r1 - 13f2: e1 18 sub r14, r1 - 13f4: f1 0a sbc r15, r17 - 13f6: 43 0b sbc r20, r19 - 13f8: 56 0b sbc r21, r22 - 13fa: c9 0b sbc r28, r25 - 13fc: d0 09 sbc r29, r0 - 13fe: 98 f0 brcs .+38 ; 0x1426 <__ftoa_engine+0x19a> - 1400: 23 95 inc r18 - 1402: 7e 91 ld r23, -X - 1404: 73 95 inc r23 - 1406: 7a 33 cpi r23, 0x3A ; 58 - 1408: 08 f0 brcs .+2 ; 0x140c <__ftoa_engine+0x180> - 140a: 70 e3 ldi r23, 0x30 ; 48 - 140c: 7c 93 st X, r23 - 140e: 20 13 cpse r18, r16 - 1410: b8 f7 brcc .-18 ; 0x1400 <__ftoa_engine+0x174> - 1412: 7e 91 ld r23, -X - 1414: 70 61 ori r23, 0x10 ; 16 - 1416: 7d 93 st X+, r23 - 1418: 30 f0 brcs .+12 ; 0x1426 <__ftoa_engine+0x19a> - 141a: 83 95 inc r24 - 141c: 71 e3 ldi r23, 0x31 ; 49 - 141e: 7d 93 st X+, r23 - 1420: 70 e3 ldi r23, 0x30 ; 48 - 1422: 2a 95 dec r18 - 1424: e1 f7 brne .-8 ; 0x141e <__ftoa_engine+0x192> - 1426: 11 24 eor r1, r1 - 1428: ef 90 pop r14 - 142a: ff 90 pop r15 - 142c: 0f 91 pop r16 - 142e: 1f 91 pop r17 - 1430: cf 91 pop r28 - 1432: df 91 pop r29 - 1434: 99 27 eor r25, r25 - 1436: 87 fd sbrc r24, 7 - 1438: 90 95 com r25 - 143a: 08 95 ret +00000f6c <__fp_splitA>: + f6c: 88 0f add r24, r24 + f6e: 97 fb bst r25, 7 + f70: 99 1f adc r25, r25 + f72: 61 f0 breq .+24 ; 0xf8c <__fp_splitA+0x20> + f74: 9f 3f cpi r25, 0xFF ; 255 + f76: 79 f0 breq .+30 ; 0xf96 <__fp_splitA+0x2a> + f78: 87 95 ror r24 + f7a: 08 95 ret + f7c: 12 16 cp r1, r18 + f7e: 13 06 cpc r1, r19 + f80: 14 06 cpc r1, r20 + f82: 55 1f adc r21, r21 + f84: f2 cf rjmp .-28 ; 0xf6a <__fp_split3+0xe> + f86: 46 95 lsr r20 + f88: f1 df rcall .-30 ; 0xf6c <__fp_splitA> + f8a: 08 c0 rjmp .+16 ; 0xf9c <__fp_splitA+0x30> + f8c: 16 16 cp r1, r22 + f8e: 17 06 cpc r1, r23 + f90: 18 06 cpc r1, r24 + f92: 99 1f adc r25, r25 + f94: f1 cf rjmp .-30 ; 0xf78 <__fp_splitA+0xc> + f96: 86 95 lsr r24 + f98: 71 05 cpc r23, r1 + f9a: 61 05 cpc r22, r1 + f9c: 08 94 sec + f9e: 08 95 ret -0000143c : - 143c: dc 01 movw r26, r24 - 143e: fc 01 movw r30, r24 - 1440: 67 2f mov r22, r23 - 1442: 71 91 ld r23, Z+ - 1444: 77 23 and r23, r23 - 1446: e1 f7 brne .-8 ; 0x1440 - 1448: 32 97 sbiw r30, 0x02 ; 2 - 144a: 04 c0 rjmp .+8 ; 0x1454 - 144c: 7c 91 ld r23, X - 144e: 6d 93 st X+, r22 - 1450: 70 83 st Z, r23 - 1452: 62 91 ld r22, -Z - 1454: ae 17 cp r26, r30 - 1456: bf 07 cpc r27, r31 - 1458: c8 f3 brcs .-14 ; 0x144c - 145a: 08 95 ret +00000fa0 <__fp_zero>: + fa0: e8 94 clt -0000145c <_exit>: - 145c: f8 94 cli +00000fa2 <__fp_szero>: + fa2: bb 27 eor r27, r27 + fa4: 66 27 eor r22, r22 + fa6: 77 27 eor r23, r23 + fa8: cb 01 movw r24, r22 + faa: 97 f9 bld r25, 7 + fac: 08 95 ret -0000145e <__stop_program>: - 145e: ff cf rjmp .-2 ; 0x145e <__stop_program> +00000fae <__gesf2>: + fae: 8a df rcall .-236 ; 0xec4 <__fp_cmp> + fb0: 08 f4 brcc .+2 ; 0xfb4 <__gesf2+0x6> + fb2: 8f ef ldi r24, 0xFF ; 255 + fb4: 08 95 ret + +00000fb6 <__mulsf3>: + fb6: 0b d0 rcall .+22 ; 0xfce <__mulsf3x> + fb8: c0 cf rjmp .-128 ; 0xf3a <__fp_round> + fba: b1 df rcall .-158 ; 0xf1e <__fp_pscA> + fbc: 28 f0 brcs .+10 ; 0xfc8 <__mulsf3+0x12> + fbe: b6 df rcall .-148 ; 0xf2c <__fp_pscB> + fc0: 18 f0 brcs .+6 ; 0xfc8 <__mulsf3+0x12> + fc2: 95 23 and r25, r21 + fc4: 09 f0 breq .+2 ; 0xfc8 <__mulsf3+0x12> + fc6: a2 cf rjmp .-188 ; 0xf0c <__fp_inf> + fc8: a7 cf rjmp .-178 ; 0xf18 <__fp_nan> + fca: 11 24 eor r1, r1 + fcc: ea cf rjmp .-44 ; 0xfa2 <__fp_szero> + +00000fce <__mulsf3x>: + fce: c6 df rcall .-116 ; 0xf5c <__fp_split3> + fd0: a0 f3 brcs .-24 ; 0xfba <__mulsf3+0x4> + +00000fd2 <__mulsf3_pse>: + fd2: 95 9f mul r25, r21 + fd4: d1 f3 breq .-12 ; 0xfca <__mulsf3+0x14> + fd6: 95 0f add r25, r21 + fd8: 50 e0 ldi r21, 0x00 ; 0 + fda: 55 1f adc r21, r21 + fdc: 62 9f mul r22, r18 + fde: f0 01 movw r30, r0 + fe0: 72 9f mul r23, r18 + fe2: bb 27 eor r27, r27 + fe4: f0 0d add r31, r0 + fe6: b1 1d adc r27, r1 + fe8: 63 9f mul r22, r19 + fea: aa 27 eor r26, r26 + fec: f0 0d add r31, r0 + fee: b1 1d adc r27, r1 + ff0: aa 1f adc r26, r26 + ff2: 64 9f mul r22, r20 + ff4: 66 27 eor r22, r22 + ff6: b0 0d add r27, r0 + ff8: a1 1d adc r26, r1 + ffa: 66 1f adc r22, r22 + ffc: 82 9f mul r24, r18 + ffe: 22 27 eor r18, r18 + 1000: b0 0d add r27, r0 + 1002: a1 1d adc r26, r1 + 1004: 62 1f adc r22, r18 + 1006: 73 9f mul r23, r19 + 1008: b0 0d add r27, r0 + 100a: a1 1d adc r26, r1 + 100c: 62 1f adc r22, r18 + 100e: 83 9f mul r24, r19 + 1010: a0 0d add r26, r0 + 1012: 61 1d adc r22, r1 + 1014: 22 1f adc r18, r18 + 1016: 74 9f mul r23, r20 + 1018: 33 27 eor r19, r19 + 101a: a0 0d add r26, r0 + 101c: 61 1d adc r22, r1 + 101e: 23 1f adc r18, r19 + 1020: 84 9f mul r24, r20 + 1022: 60 0d add r22, r0 + 1024: 21 1d adc r18, r1 + 1026: 82 2f mov r24, r18 + 1028: 76 2f mov r23, r22 + 102a: 6a 2f mov r22, r26 + 102c: 11 24 eor r1, r1 + 102e: 9f 57 subi r25, 0x7F ; 127 + 1030: 50 40 sbci r21, 0x00 ; 0 + 1032: 8a f0 brmi .+34 ; 0x1056 <__mulsf3_pse+0x84> + 1034: e1 f0 breq .+56 ; 0x106e <__mulsf3_pse+0x9c> + 1036: 88 23 and r24, r24 + 1038: 4a f0 brmi .+18 ; 0x104c <__mulsf3_pse+0x7a> + 103a: ee 0f add r30, r30 + 103c: ff 1f adc r31, r31 + 103e: bb 1f adc r27, r27 + 1040: 66 1f adc r22, r22 + 1042: 77 1f adc r23, r23 + 1044: 88 1f adc r24, r24 + 1046: 91 50 subi r25, 0x01 ; 1 + 1048: 50 40 sbci r21, 0x00 ; 0 + 104a: a9 f7 brne .-22 ; 0x1036 <__mulsf3_pse+0x64> + 104c: 9e 3f cpi r25, 0xFE ; 254 + 104e: 51 05 cpc r21, r1 + 1050: 70 f0 brcs .+28 ; 0x106e <__mulsf3_pse+0x9c> + 1052: 5c cf rjmp .-328 ; 0xf0c <__fp_inf> + 1054: a6 cf rjmp .-180 ; 0xfa2 <__fp_szero> + 1056: 5f 3f cpi r21, 0xFF ; 255 + 1058: ec f3 brlt .-6 ; 0x1054 <__mulsf3_pse+0x82> + 105a: 98 3e cpi r25, 0xE8 ; 232 + 105c: dc f3 brlt .-10 ; 0x1054 <__mulsf3_pse+0x82> + 105e: 86 95 lsr r24 + 1060: 77 95 ror r23 + 1062: 67 95 ror r22 + 1064: b7 95 ror r27 + 1066: f7 95 ror r31 + 1068: e7 95 ror r30 + 106a: 9f 5f subi r25, 0xFF ; 255 + 106c: c1 f7 brne .-16 ; 0x105e <__mulsf3_pse+0x8c> + 106e: fe 2b or r31, r30 + 1070: 88 0f add r24, r24 + 1072: 91 1d adc r25, r1 + 1074: 96 95 lsr r25 + 1076: 87 95 ror r24 + 1078: 97 f9 bld r25, 7 + 107a: 08 95 ret + +0000107c <__tablejump2__>: + 107c: ee 0f add r30, r30 + 107e: ff 1f adc r31, r31 + +00001080 <__tablejump__>: + 1080: 05 90 lpm r0, Z+ + 1082: f4 91 lpm r31, Z + 1084: e0 2d mov r30, r0 + 1086: 09 94 ijmp + +00001088 : + 1088: ef 92 push r14 + 108a: 0f 93 push r16 + 108c: 1f 93 push r17 + 108e: cf 93 push r28 + 1090: c0 2f mov r28, r16 + 1092: 47 ff sbrs r20, 7 + 1094: 02 c0 rjmp .+4 ; 0x109a + 1096: 34 e1 ldi r19, 0x14 ; 20 + 1098: 01 c0 rjmp .+2 ; 0x109c + 109a: 34 e0 ldi r19, 0x04 ; 4 + 109c: e4 2f mov r30, r20 + 109e: ff 27 eor r31, r31 + 10a0: e7 fd sbrc r30, 7 + 10a2: f0 95 com r31 + 10a4: f7 ff sbrs r31, 7 + 10a6: 03 c0 rjmp .+6 ; 0x10ae + 10a8: f1 95 neg r31 + 10aa: e1 95 neg r30 + 10ac: f1 09 sbc r31, r1 + 10ae: e3 2e mov r14, r19 + 10b0: 02 2f mov r16, r18 + 10b2: 2e 2f mov r18, r30 + 10b4: 4c 2f mov r20, r28 + 10b6: 51 2f mov r21, r17 + 10b8: 0e 94 7b 08 call 0x10f6 ; 0x10f6 + 10bc: 8c 2f mov r24, r28 + 10be: 91 2f mov r25, r17 + 10c0: cf 91 pop r28 + 10c2: 1f 91 pop r17 + 10c4: 0f 91 pop r16 + 10c6: ef 90 pop r14 + 10c8: 08 95 ret + +000010ca : + 10ca: fb 01 movw r30, r22 + 10cc: 9f 01 movw r18, r30 + 10ce: 42 30 cpi r20, 0x02 ; 2 + 10d0: 74 f0 brlt .+28 ; 0x10ee + 10d2: 45 32 cpi r20, 0x25 ; 37 + 10d4: 64 f4 brge .+24 ; 0x10ee + 10d6: 64 2f mov r22, r20 + 10d8: 77 27 eor r23, r23 + 10da: 0e 94 e0 0a call 0x15c0 ; 0x15c0 <__udivmodhi4> + 10de: 80 5d subi r24, 0xD0 ; 208 + 10e0: 8a 33 cpi r24, 0x3A ; 58 + 10e2: 0c f0 brlt .+2 ; 0x10e6 + 10e4: 89 5d subi r24, 0xD9 ; 217 + 10e6: 81 93 st Z+, r24 + 10e8: cb 01 movw r24, r22 + 10ea: 00 97 sbiw r24, 0x00 ; 0 + 10ec: a1 f7 brne .-24 ; 0x10d6 + 10ee: 10 82 st Z, r1 + 10f0: c9 01 movw r24, r18 + 10f2: 0c 94 d0 0a jmp 0x15a0 ; 0x15a0 + +000010f6 : + 10f6: 6f 92 push r6 + 10f8: 7f 92 push r7 + 10fa: 9f 92 push r9 + 10fc: af 92 push r10 + 10fe: bf 92 push r11 + 1100: cf 92 push r12 + 1102: df 92 push r13 + 1104: ef 92 push r14 + 1106: ff 92 push r15 + 1108: 0f 93 push r16 + 110a: 1f 93 push r17 + 110c: cf 93 push r28 + 110e: df 93 push r29 + 1110: cd b7 in r28, 0x3d ; 61 + 1112: de b7 in r29, 0x3e ; 62 + 1114: 29 97 sbiw r28, 0x09 ; 9 + 1116: 0f b6 in r0, 0x3f ; 63 + 1118: f8 94 cli + 111a: de bf out 0x3e, r29 ; 62 + 111c: 0f be out 0x3f, r0 ; 63 + 111e: cd bf out 0x3d, r28 ; 61 + 1120: 6a 01 movw r12, r20 + 1122: b2 2e mov r11, r18 + 1124: 10 2f mov r17, r16 + 1126: 0c 33 cpi r16, 0x3C ; 60 + 1128: 18 f4 brcc .+6 ; 0x1130 + 112a: f0 2e mov r15, r16 + 112c: f3 94 inc r15 + 112e: 02 c0 rjmp .+4 ; 0x1134 + 1130: 5c e3 ldi r21, 0x3C ; 60 + 1132: f5 2e mov r15, r21 + 1134: 0f 2d mov r16, r15 + 1136: 27 e0 ldi r18, 0x07 ; 7 + 1138: ae 01 movw r20, r28 + 113a: 4f 5f subi r20, 0xFF ; 255 + 113c: 5f 4f sbci r21, 0xFF ; 255 + 113e: 0e 94 f8 09 call 0x13f0 ; 0x13f0 <__ftoa_engine> + 1142: 79 81 ldd r23, Y+1 ; 0x01 + 1144: 27 2f mov r18, r23 + 1146: 29 70 andi r18, 0x09 ; 9 + 1148: 21 30 cpi r18, 0x01 ; 1 + 114a: 31 f0 breq .+12 ; 0x1158 + 114c: e1 fc sbrc r14, 1 + 114e: 06 c0 rjmp .+12 ; 0x115c + 1150: e0 fe sbrs r14, 0 + 1152: 06 c0 rjmp .+12 ; 0x1160 + 1154: 60 e2 ldi r22, 0x20 ; 32 + 1156: 05 c0 rjmp .+10 ; 0x1162 + 1158: 6d e2 ldi r22, 0x2D ; 45 + 115a: 03 c0 rjmp .+6 ; 0x1162 + 115c: 6b e2 ldi r22, 0x2B ; 43 + 115e: 01 c0 rjmp .+2 ; 0x1162 + 1160: 60 e0 ldi r22, 0x00 ; 0 + 1162: 73 ff sbrs r23, 3 + 1164: 3d c0 rjmp .+122 ; 0x11e0 + 1166: 66 23 and r22, r22 + 1168: 11 f0 breq .+4 ; 0x116e + 116a: 84 e0 ldi r24, 0x04 ; 4 + 116c: 01 c0 rjmp .+2 ; 0x1170 + 116e: 83 e0 ldi r24, 0x03 ; 3 + 1170: 8b 15 cp r24, r11 + 1172: 10 f4 brcc .+4 ; 0x1178 + 1174: b8 1a sub r11, r24 + 1176: 01 c0 rjmp .+2 ; 0x117a + 1178: b1 2c mov r11, r1 + 117a: e4 fc sbrc r14, 4 + 117c: 0b c0 rjmp .+22 ; 0x1194 + 117e: 8b 2d mov r24, r11 + 1180: f6 01 movw r30, r12 + 1182: 90 e2 ldi r25, 0x20 ; 32 + 1184: 02 c0 rjmp .+4 ; 0x118a + 1186: 91 93 st Z+, r25 + 1188: 81 50 subi r24, 0x01 ; 1 + 118a: 81 11 cpse r24, r1 + 118c: fc cf rjmp .-8 ; 0x1186 + 118e: cb 0c add r12, r11 + 1190: d1 1c adc r13, r1 + 1192: b1 2c mov r11, r1 + 1194: 66 23 and r22, r22 + 1196: 19 f0 breq .+6 ; 0x119e + 1198: d6 01 movw r26, r12 + 119a: 6d 93 st X+, r22 + 119c: 6d 01 movw r12, r26 + 119e: e2 fe sbrs r14, 2 + 11a0: 0a c0 rjmp .+20 ; 0x11b6 + 11a2: 8e e4 ldi r24, 0x4E ; 78 + 11a4: f6 01 movw r30, r12 + 11a6: 80 83 st Z, r24 + 11a8: 91 e4 ldi r25, 0x41 ; 65 + 11aa: 91 83 std Z+1, r25 ; 0x01 + 11ac: 82 83 std Z+2, r24 ; 0x02 + 11ae: f3 e0 ldi r31, 0x03 ; 3 + 11b0: cf 0e add r12, r31 + 11b2: d1 1c adc r13, r1 + 11b4: 0c c0 rjmp .+24 ; 0x11ce + 11b6: 8e e6 ldi r24, 0x6E ; 110 + 11b8: d6 01 movw r26, r12 + 11ba: 8c 93 st X, r24 + 11bc: 91 e6 ldi r25, 0x61 ; 97 + 11be: 11 96 adiw r26, 0x01 ; 1 + 11c0: 9c 93 st X, r25 + 11c2: 11 97 sbiw r26, 0x01 ; 1 + 11c4: 12 96 adiw r26, 0x02 ; 2 + 11c6: 8c 93 st X, r24 + 11c8: b3 e0 ldi r27, 0x03 ; 3 + 11ca: cb 0e add r12, r27 + 11cc: d1 1c adc r13, r1 + 11ce: 8b 2d mov r24, r11 + 11d0: f6 01 movw r30, r12 + 11d2: 90 e2 ldi r25, 0x20 ; 32 + 11d4: 02 c0 rjmp .+4 ; 0x11da + 11d6: 91 93 st Z+, r25 + 11d8: 81 50 subi r24, 0x01 ; 1 + 11da: 81 11 cpse r24, r1 + 11dc: fc cf rjmp .-8 ; 0x11d6 + 11de: 40 c0 rjmp .+128 ; 0x1260 + 11e0: 72 ff sbrs r23, 2 + 11e2: 45 c0 rjmp .+138 ; 0x126e + 11e4: 66 23 and r22, r22 + 11e6: 11 f0 breq .+4 ; 0x11ec + 11e8: 84 e0 ldi r24, 0x04 ; 4 + 11ea: 01 c0 rjmp .+2 ; 0x11ee + 11ec: 83 e0 ldi r24, 0x03 ; 3 + 11ee: 8b 15 cp r24, r11 + 11f0: 10 f4 brcc .+4 ; 0x11f6 + 11f2: b8 1a sub r11, r24 + 11f4: 01 c0 rjmp .+2 ; 0x11f8 + 11f6: b1 2c mov r11, r1 + 11f8: e4 fc sbrc r14, 4 + 11fa: 0b c0 rjmp .+22 ; 0x1212 + 11fc: 8b 2d mov r24, r11 + 11fe: f6 01 movw r30, r12 + 1200: 90 e2 ldi r25, 0x20 ; 32 + 1202: 02 c0 rjmp .+4 ; 0x1208 + 1204: 91 93 st Z+, r25 + 1206: 81 50 subi r24, 0x01 ; 1 + 1208: 81 11 cpse r24, r1 + 120a: fc cf rjmp .-8 ; 0x1204 + 120c: cb 0c add r12, r11 + 120e: d1 1c adc r13, r1 + 1210: b1 2c mov r11, r1 + 1212: 66 23 and r22, r22 + 1214: 19 f0 breq .+6 ; 0x121c + 1216: f6 01 movw r30, r12 + 1218: 61 93 st Z+, r22 + 121a: 6f 01 movw r12, r30 + 121c: e2 fe sbrs r14, 2 + 121e: 0e c0 rjmp .+28 ; 0x123c + 1220: 89 e4 ldi r24, 0x49 ; 73 + 1222: d6 01 movw r26, r12 + 1224: 8c 93 st X, r24 + 1226: 8e e4 ldi r24, 0x4E ; 78 + 1228: 11 96 adiw r26, 0x01 ; 1 + 122a: 8c 93 st X, r24 + 122c: 11 97 sbiw r26, 0x01 ; 1 + 122e: 86 e4 ldi r24, 0x46 ; 70 + 1230: 12 96 adiw r26, 0x02 ; 2 + 1232: 8c 93 st X, r24 + 1234: b3 e0 ldi r27, 0x03 ; 3 + 1236: cb 0e add r12, r27 + 1238: d1 1c adc r13, r1 + 123a: 0a c0 rjmp .+20 ; 0x1250 + 123c: 89 e6 ldi r24, 0x69 ; 105 + 123e: f6 01 movw r30, r12 + 1240: 80 83 st Z, r24 + 1242: 8e e6 ldi r24, 0x6E ; 110 + 1244: 81 83 std Z+1, r24 ; 0x01 + 1246: 86 e6 ldi r24, 0x66 ; 102 + 1248: 82 83 std Z+2, r24 ; 0x02 + 124a: f3 e0 ldi r31, 0x03 ; 3 + 124c: cf 0e add r12, r31 + 124e: d1 1c adc r13, r1 + 1250: 8b 2d mov r24, r11 + 1252: f6 01 movw r30, r12 + 1254: 90 e2 ldi r25, 0x20 ; 32 + 1256: 02 c0 rjmp .+4 ; 0x125c + 1258: 91 93 st Z+, r25 + 125a: 81 50 subi r24, 0x01 ; 1 + 125c: 81 11 cpse r24, r1 + 125e: fc cf rjmp .-8 ; 0x1258 + 1260: f6 01 movw r30, r12 + 1262: eb 0d add r30, r11 + 1264: f1 1d adc r31, r1 + 1266: 10 82 st Z, r1 + 1268: 2e ef ldi r18, 0xFE ; 254 + 126a: 3f ef ldi r19, 0xFF ; 255 + 126c: ac c0 rjmp .+344 ; 0x13c6 + 126e: a1 e0 ldi r26, 0x01 ; 1 + 1270: 61 11 cpse r22, r1 + 1272: 01 c0 rjmp .+2 ; 0x1276 + 1274: a0 e0 ldi r26, 0x00 ; 0 + 1276: 4a 2f mov r20, r26 + 1278: 50 e0 ldi r21, 0x00 ; 0 + 127a: 18 16 cp r1, r24 + 127c: 19 06 cpc r1, r25 + 127e: 24 f4 brge .+8 ; 0x1288 + 1280: 9c 01 movw r18, r24 + 1282: 2f 5f subi r18, 0xFF ; 255 + 1284: 3f 4f sbci r19, 0xFF ; 255 + 1286: 02 c0 rjmp .+4 ; 0x128c + 1288: 21 e0 ldi r18, 0x01 ; 1 + 128a: 30 e0 ldi r19, 0x00 ; 0 + 128c: 24 0f add r18, r20 + 128e: 35 1f adc r19, r21 + 1290: 11 23 and r17, r17 + 1292: 29 f0 breq .+10 ; 0x129e + 1294: 41 2f mov r20, r17 + 1296: 50 e0 ldi r21, 0x00 ; 0 + 1298: 4f 5f subi r20, 0xFF ; 255 + 129a: 5f 4f sbci r21, 0xFF ; 255 + 129c: 02 c0 rjmp .+4 ; 0x12a2 + 129e: 40 e0 ldi r20, 0x00 ; 0 + 12a0: 50 e0 ldi r21, 0x00 ; 0 + 12a2: 42 0f add r20, r18 + 12a4: 53 1f adc r21, r19 + 12a6: 2b 2d mov r18, r11 + 12a8: 30 e0 ldi r19, 0x00 ; 0 + 12aa: 42 17 cp r20, r18 + 12ac: 53 07 cpc r21, r19 + 12ae: 14 f4 brge .+4 ; 0x12b4 + 12b0: b4 1a sub r11, r20 + 12b2: 01 c0 rjmp .+2 ; 0x12b6 + 12b4: b1 2c mov r11, r1 + 12b6: 3e 2d mov r19, r14 + 12b8: 30 71 andi r19, 0x10 ; 16 + 12ba: e4 fc sbrc r14, 4 + 12bc: 0d c0 rjmp .+26 ; 0x12d8 + 12be: e3 fc sbrc r14, 3 + 12c0: 0b c0 rjmp .+22 ; 0x12d8 + 12c2: 2b 2d mov r18, r11 + 12c4: f6 01 movw r30, r12 + 12c6: 40 e2 ldi r20, 0x20 ; 32 + 12c8: 02 c0 rjmp .+4 ; 0x12ce + 12ca: 41 93 st Z+, r20 + 12cc: 21 50 subi r18, 0x01 ; 1 + 12ce: 21 11 cpse r18, r1 + 12d0: fc cf rjmp .-8 ; 0x12ca + 12d2: cb 0c add r12, r11 + 12d4: d1 1c adc r13, r1 + 12d6: b1 2c mov r11, r1 + 12d8: aa 23 and r26, r26 + 12da: 19 f0 breq .+6 ; 0x12e2 + 12dc: d6 01 movw r26, r12 + 12de: 6d 93 st X+, r22 + 12e0: 6d 01 movw r12, r26 + 12e2: 31 11 cpse r19, r1 + 12e4: 0b c0 rjmp .+22 ; 0x12fc + 12e6: 2b 2d mov r18, r11 + 12e8: f6 01 movw r30, r12 + 12ea: 30 e3 ldi r19, 0x30 ; 48 + 12ec: 02 c0 rjmp .+4 ; 0x12f2 + 12ee: 31 93 st Z+, r19 + 12f0: 21 50 subi r18, 0x01 ; 1 + 12f2: 21 11 cpse r18, r1 + 12f4: fc cf rjmp .-8 ; 0x12ee + 12f6: cb 0c add r12, r11 + 12f8: d1 1c adc r13, r1 + 12fa: b1 2c mov r11, r1 + 12fc: f8 0e add r15, r24 + 12fe: 0a 81 ldd r16, Y+2 ; 0x02 + 1300: 40 e1 ldi r20, 0x10 ; 16 + 1302: a4 2e mov r10, r20 + 1304: a7 22 and r10, r23 + 1306: 74 ff sbrs r23, 4 + 1308: 03 c0 rjmp .+6 ; 0x1310 + 130a: 01 33 cpi r16, 0x31 ; 49 + 130c: 09 f4 brne .+2 ; 0x1310 + 130e: fa 94 dec r15 + 1310: 1f 14 cp r1, r15 + 1312: 2c f4 brge .+10 ; 0x131e + 1314: 2f 2d mov r18, r15 + 1316: 29 30 cpi r18, 0x09 ; 9 + 1318: 18 f0 brcs .+6 ; 0x1320 + 131a: 28 e0 ldi r18, 0x08 ; 8 + 131c: 01 c0 rjmp .+2 ; 0x1320 + 131e: 21 e0 ldi r18, 0x01 ; 1 + 1320: ac 01 movw r20, r24 + 1322: 97 ff sbrs r25, 7 + 1324: 02 c0 rjmp .+4 ; 0x132a + 1326: 40 e0 ldi r20, 0x00 ; 0 + 1328: 50 e0 ldi r21, 0x00 ; 0 + 132a: 60 e0 ldi r22, 0x00 ; 0 + 132c: 70 e0 ldi r23, 0x00 ; 0 + 132e: 3e e2 ldi r19, 0x2E ; 46 + 1330: 93 2e mov r9, r19 + 1332: fc 01 movw r30, r24 + 1334: e2 1b sub r30, r18 + 1336: f1 09 sbc r31, r1 + 1338: 9f 01 movw r18, r30 + 133a: dc 01 movw r26, r24 + 133c: a4 1b sub r26, r20 + 133e: b5 0b sbc r27, r21 + 1340: fe 01 movw r30, r28 + 1342: 31 96 adiw r30, 0x01 ; 1 + 1344: ea 0f add r30, r26 + 1346: fb 1f adc r31, r27 + 1348: a1 2f mov r26, r17 + 134a: b0 e0 ldi r27, 0x00 ; 0 + 134c: 66 24 eor r6, r6 + 134e: 77 24 eor r7, r7 + 1350: 6a 1a sub r6, r26 + 1352: 7b 0a sbc r7, r27 + 1354: 4f 3f cpi r20, 0xFF ; 255 + 1356: 1f ef ldi r17, 0xFF ; 255 + 1358: 51 07 cpc r21, r17 + 135a: 19 f4 brne .+6 ; 0x1362 + 135c: d6 01 movw r26, r12 + 135e: 9d 92 st X+, r9 + 1360: 6d 01 movw r12, r26 + 1362: 84 17 cp r24, r20 + 1364: 95 07 cpc r25, r21 + 1366: 54 f0 brlt .+20 ; 0x137c + 1368: 24 17 cp r18, r20 + 136a: 35 07 cpc r19, r21 + 136c: 3c f4 brge .+14 ; 0x137c + 136e: 7f 01 movw r14, r30 + 1370: e6 0e add r14, r22 + 1372: f7 1e adc r15, r23 + 1374: d7 01 movw r26, r14 + 1376: 11 96 adiw r26, 0x01 ; 1 + 1378: 1c 91 ld r17, X + 137a: 01 c0 rjmp .+2 ; 0x137e + 137c: 10 e3 ldi r17, 0x30 ; 48 + 137e: 41 50 subi r20, 0x01 ; 1 + 1380: 51 09 sbc r21, r1 + 1382: 6f 5f subi r22, 0xFF ; 255 + 1384: 7f 4f sbci r23, 0xFF ; 255 + 1386: 46 15 cp r20, r6 + 1388: 57 05 cpc r21, r7 + 138a: 24 f0 brlt .+8 ; 0x1394 + 138c: d6 01 movw r26, r12 + 138e: 1d 93 st X+, r17 + 1390: 6d 01 movw r12, r26 + 1392: e0 cf rjmp .-64 ; 0x1354 + 1394: 48 17 cp r20, r24 + 1396: 59 07 cpc r21, r25 + 1398: 39 f4 brne .+14 ; 0x13a8 + 139a: 06 33 cpi r16, 0x36 ; 54 + 139c: 20 f4 brcc .+8 ; 0x13a6 + 139e: 05 33 cpi r16, 0x35 ; 53 + 13a0: 19 f4 brne .+6 ; 0x13a8 + 13a2: a1 10 cpse r10, r1 + 13a4: 01 c0 rjmp .+2 ; 0x13a8 + 13a6: 11 e3 ldi r17, 0x31 ; 49 + 13a8: f6 01 movw r30, r12 + 13aa: 11 93 st Z+, r17 + 13ac: 8b 2d mov r24, r11 + 13ae: df 01 movw r26, r30 + 13b0: 90 e2 ldi r25, 0x20 ; 32 + 13b2: 02 c0 rjmp .+4 ; 0x13b8 + 13b4: 9d 93 st X+, r25 + 13b6: 81 50 subi r24, 0x01 ; 1 + 13b8: 81 11 cpse r24, r1 + 13ba: fc cf rjmp .-8 ; 0x13b4 + 13bc: eb 0d add r30, r11 + 13be: f1 1d adc r31, r1 + 13c0: 10 82 st Z, r1 + 13c2: 20 e0 ldi r18, 0x00 ; 0 + 13c4: 30 e0 ldi r19, 0x00 ; 0 + 13c6: c9 01 movw r24, r18 + 13c8: 29 96 adiw r28, 0x09 ; 9 + 13ca: 0f b6 in r0, 0x3f ; 63 + 13cc: f8 94 cli + 13ce: de bf out 0x3e, r29 ; 62 + 13d0: 0f be out 0x3f, r0 ; 63 + 13d2: cd bf out 0x3d, r28 ; 61 + 13d4: df 91 pop r29 + 13d6: cf 91 pop r28 + 13d8: 1f 91 pop r17 + 13da: 0f 91 pop r16 + 13dc: ff 90 pop r15 + 13de: ef 90 pop r14 + 13e0: df 90 pop r13 + 13e2: cf 90 pop r12 + 13e4: bf 90 pop r11 + 13e6: af 90 pop r10 + 13e8: 9f 90 pop r9 + 13ea: 7f 90 pop r7 + 13ec: 6f 90 pop r6 + 13ee: 08 95 ret + +000013f0 <__ftoa_engine>: + 13f0: 28 30 cpi r18, 0x08 ; 8 + 13f2: 08 f0 brcs .+2 ; 0x13f6 <__ftoa_engine+0x6> + 13f4: 27 e0 ldi r18, 0x07 ; 7 + 13f6: 33 27 eor r19, r19 + 13f8: da 01 movw r26, r20 + 13fa: 99 0f add r25, r25 + 13fc: 31 1d adc r19, r1 + 13fe: 87 fd sbrc r24, 7 + 1400: 91 60 ori r25, 0x01 ; 1 + 1402: 00 96 adiw r24, 0x00 ; 0 + 1404: 61 05 cpc r22, r1 + 1406: 71 05 cpc r23, r1 + 1408: 39 f4 brne .+14 ; 0x1418 <__ftoa_engine+0x28> + 140a: 32 60 ori r19, 0x02 ; 2 + 140c: 2e 5f subi r18, 0xFE ; 254 + 140e: 3d 93 st X+, r19 + 1410: 30 e3 ldi r19, 0x30 ; 48 + 1412: 2a 95 dec r18 + 1414: e1 f7 brne .-8 ; 0x140e <__ftoa_engine+0x1e> + 1416: 08 95 ret + 1418: 9f 3f cpi r25, 0xFF ; 255 + 141a: 30 f0 brcs .+12 ; 0x1428 <__ftoa_engine+0x38> + 141c: 80 38 cpi r24, 0x80 ; 128 + 141e: 71 05 cpc r23, r1 + 1420: 61 05 cpc r22, r1 + 1422: 09 f0 breq .+2 ; 0x1426 <__ftoa_engine+0x36> + 1424: 3c 5f subi r19, 0xFC ; 252 + 1426: 3c 5f subi r19, 0xFC ; 252 + 1428: 3d 93 st X+, r19 + 142a: 91 30 cpi r25, 0x01 ; 1 + 142c: 08 f0 brcs .+2 ; 0x1430 <__ftoa_engine+0x40> + 142e: 80 68 ori r24, 0x80 ; 128 + 1430: 91 1d adc r25, r1 + 1432: df 93 push r29 + 1434: cf 93 push r28 + 1436: 1f 93 push r17 + 1438: 0f 93 push r16 + 143a: ff 92 push r15 + 143c: ef 92 push r14 + 143e: 19 2f mov r17, r25 + 1440: 98 7f andi r25, 0xF8 ; 248 + 1442: 96 95 lsr r25 + 1444: e9 2f mov r30, r25 + 1446: 96 95 lsr r25 + 1448: 96 95 lsr r25 + 144a: e9 0f add r30, r25 + 144c: ff 27 eor r31, r31 + 144e: e2 55 subi r30, 0x52 ; 82 + 1450: ff 4f sbci r31, 0xFF ; 255 + 1452: 99 27 eor r25, r25 + 1454: 33 27 eor r19, r19 + 1456: ee 24 eor r14, r14 + 1458: ff 24 eor r15, r15 + 145a: a7 01 movw r20, r14 + 145c: e7 01 movw r28, r14 + 145e: 05 90 lpm r0, Z+ + 1460: 08 94 sec + 1462: 07 94 ror r0 + 1464: 28 f4 brcc .+10 ; 0x1470 <__ftoa_engine+0x80> + 1466: 36 0f add r19, r22 + 1468: e7 1e adc r14, r23 + 146a: f8 1e adc r15, r24 + 146c: 49 1f adc r20, r25 + 146e: 51 1d adc r21, r1 + 1470: 66 0f add r22, r22 + 1472: 77 1f adc r23, r23 + 1474: 88 1f adc r24, r24 + 1476: 99 1f adc r25, r25 + 1478: 06 94 lsr r0 + 147a: a1 f7 brne .-24 ; 0x1464 <__ftoa_engine+0x74> + 147c: 05 90 lpm r0, Z+ + 147e: 07 94 ror r0 + 1480: 28 f4 brcc .+10 ; 0x148c <__ftoa_engine+0x9c> + 1482: e7 0e add r14, r23 + 1484: f8 1e adc r15, r24 + 1486: 49 1f adc r20, r25 + 1488: 56 1f adc r21, r22 + 148a: c1 1d adc r28, r1 + 148c: 77 0f add r23, r23 + 148e: 88 1f adc r24, r24 + 1490: 99 1f adc r25, r25 + 1492: 66 1f adc r22, r22 + 1494: 06 94 lsr r0 + 1496: a1 f7 brne .-24 ; 0x1480 <__ftoa_engine+0x90> + 1498: 05 90 lpm r0, Z+ + 149a: 07 94 ror r0 + 149c: 28 f4 brcc .+10 ; 0x14a8 <__ftoa_engine+0xb8> + 149e: f8 0e add r15, r24 + 14a0: 49 1f adc r20, r25 + 14a2: 56 1f adc r21, r22 + 14a4: c7 1f adc r28, r23 + 14a6: d1 1d adc r29, r1 + 14a8: 88 0f add r24, r24 + 14aa: 99 1f adc r25, r25 + 14ac: 66 1f adc r22, r22 + 14ae: 77 1f adc r23, r23 + 14b0: 06 94 lsr r0 + 14b2: a1 f7 brne .-24 ; 0x149c <__ftoa_engine+0xac> + 14b4: 05 90 lpm r0, Z+ + 14b6: 07 94 ror r0 + 14b8: 20 f4 brcc .+8 ; 0x14c2 <__ftoa_engine+0xd2> + 14ba: 49 0f add r20, r25 + 14bc: 56 1f adc r21, r22 + 14be: c7 1f adc r28, r23 + 14c0: d8 1f adc r29, r24 + 14c2: 99 0f add r25, r25 + 14c4: 66 1f adc r22, r22 + 14c6: 77 1f adc r23, r23 + 14c8: 88 1f adc r24, r24 + 14ca: 06 94 lsr r0 + 14cc: a9 f7 brne .-22 ; 0x14b8 <__ftoa_engine+0xc8> + 14ce: 84 91 lpm r24, Z + 14d0: 10 95 com r17 + 14d2: 17 70 andi r17, 0x07 ; 7 + 14d4: 41 f0 breq .+16 ; 0x14e6 <__ftoa_engine+0xf6> + 14d6: d6 95 lsr r29 + 14d8: c7 95 ror r28 + 14da: 57 95 ror r21 + 14dc: 47 95 ror r20 + 14de: f7 94 ror r15 + 14e0: e7 94 ror r14 + 14e2: 1a 95 dec r17 + 14e4: c1 f7 brne .-16 ; 0x14d6 <__ftoa_engine+0xe6> + 14e6: e4 e5 ldi r30, 0x54 ; 84 + 14e8: f0 e0 ldi r31, 0x00 ; 0 + 14ea: 68 94 set + 14ec: 15 90 lpm r1, Z+ + 14ee: 15 91 lpm r17, Z+ + 14f0: 35 91 lpm r19, Z+ + 14f2: 65 91 lpm r22, Z+ + 14f4: 95 91 lpm r25, Z+ + 14f6: 05 90 lpm r0, Z+ + 14f8: 7f e2 ldi r23, 0x2F ; 47 + 14fa: 73 95 inc r23 + 14fc: e1 18 sub r14, r1 + 14fe: f1 0a sbc r15, r17 + 1500: 43 0b sbc r20, r19 + 1502: 56 0b sbc r21, r22 + 1504: c9 0b sbc r28, r25 + 1506: d0 09 sbc r29, r0 + 1508: c0 f7 brcc .-16 ; 0x14fa <__ftoa_engine+0x10a> + 150a: e1 0c add r14, r1 + 150c: f1 1e adc r15, r17 + 150e: 43 1f adc r20, r19 + 1510: 56 1f adc r21, r22 + 1512: c9 1f adc r28, r25 + 1514: d0 1d adc r29, r0 + 1516: 7e f4 brtc .+30 ; 0x1536 <__ftoa_engine+0x146> + 1518: 70 33 cpi r23, 0x30 ; 48 + 151a: 11 f4 brne .+4 ; 0x1520 <__ftoa_engine+0x130> + 151c: 8a 95 dec r24 + 151e: e6 cf rjmp .-52 ; 0x14ec <__ftoa_engine+0xfc> + 1520: e8 94 clt + 1522: 01 50 subi r16, 0x01 ; 1 + 1524: 30 f0 brcs .+12 ; 0x1532 <__ftoa_engine+0x142> + 1526: 08 0f add r16, r24 + 1528: 0a f4 brpl .+2 ; 0x152c <__ftoa_engine+0x13c> + 152a: 00 27 eor r16, r16 + 152c: 02 17 cp r16, r18 + 152e: 08 f4 brcc .+2 ; 0x1532 <__ftoa_engine+0x142> + 1530: 20 2f mov r18, r16 + 1532: 23 95 inc r18 + 1534: 02 2f mov r16, r18 + 1536: 7a 33 cpi r23, 0x3A ; 58 + 1538: 28 f0 brcs .+10 ; 0x1544 <__ftoa_engine+0x154> + 153a: 79 e3 ldi r23, 0x39 ; 57 + 153c: 7d 93 st X+, r23 + 153e: 2a 95 dec r18 + 1540: e9 f7 brne .-6 ; 0x153c <__ftoa_engine+0x14c> + 1542: 10 c0 rjmp .+32 ; 0x1564 <__ftoa_engine+0x174> + 1544: 7d 93 st X+, r23 + 1546: 2a 95 dec r18 + 1548: 89 f6 brne .-94 ; 0x14ec <__ftoa_engine+0xfc> + 154a: 06 94 lsr r0 + 154c: 97 95 ror r25 + 154e: 67 95 ror r22 + 1550: 37 95 ror r19 + 1552: 17 95 ror r17 + 1554: 17 94 ror r1 + 1556: e1 18 sub r14, r1 + 1558: f1 0a sbc r15, r17 + 155a: 43 0b sbc r20, r19 + 155c: 56 0b sbc r21, r22 + 155e: c9 0b sbc r28, r25 + 1560: d0 09 sbc r29, r0 + 1562: 98 f0 brcs .+38 ; 0x158a <__ftoa_engine+0x19a> + 1564: 23 95 inc r18 + 1566: 7e 91 ld r23, -X + 1568: 73 95 inc r23 + 156a: 7a 33 cpi r23, 0x3A ; 58 + 156c: 08 f0 brcs .+2 ; 0x1570 <__ftoa_engine+0x180> + 156e: 70 e3 ldi r23, 0x30 ; 48 + 1570: 7c 93 st X, r23 + 1572: 20 13 cpse r18, r16 + 1574: b8 f7 brcc .-18 ; 0x1564 <__ftoa_engine+0x174> + 1576: 7e 91 ld r23, -X + 1578: 70 61 ori r23, 0x10 ; 16 + 157a: 7d 93 st X+, r23 + 157c: 30 f0 brcs .+12 ; 0x158a <__ftoa_engine+0x19a> + 157e: 83 95 inc r24 + 1580: 71 e3 ldi r23, 0x31 ; 49 + 1582: 7d 93 st X+, r23 + 1584: 70 e3 ldi r23, 0x30 ; 48 + 1586: 2a 95 dec r18 + 1588: e1 f7 brne .-8 ; 0x1582 <__ftoa_engine+0x192> + 158a: 11 24 eor r1, r1 + 158c: ef 90 pop r14 + 158e: ff 90 pop r15 + 1590: 0f 91 pop r16 + 1592: 1f 91 pop r17 + 1594: cf 91 pop r28 + 1596: df 91 pop r29 + 1598: 99 27 eor r25, r25 + 159a: 87 fd sbrc r24, 7 + 159c: 90 95 com r25 + 159e: 08 95 ret + +000015a0 : + 15a0: dc 01 movw r26, r24 + 15a2: fc 01 movw r30, r24 + 15a4: 67 2f mov r22, r23 + 15a6: 71 91 ld r23, Z+ + 15a8: 77 23 and r23, r23 + 15aa: e1 f7 brne .-8 ; 0x15a4 + 15ac: 32 97 sbiw r30, 0x02 ; 2 + 15ae: 04 c0 rjmp .+8 ; 0x15b8 + 15b0: 7c 91 ld r23, X + 15b2: 6d 93 st X+, r22 + 15b4: 70 83 st Z, r23 + 15b6: 62 91 ld r22, -Z + 15b8: ae 17 cp r26, r30 + 15ba: bf 07 cpc r27, r31 + 15bc: c8 f3 brcs .-14 ; 0x15b0 + 15be: 08 95 ret + +000015c0 <__udivmodhi4>: + 15c0: aa 1b sub r26, r26 + 15c2: bb 1b sub r27, r27 + 15c4: 51 e1 ldi r21, 0x11 ; 17 + 15c6: 07 c0 rjmp .+14 ; 0x15d6 <__udivmodhi4_ep> + +000015c8 <__udivmodhi4_loop>: + 15c8: aa 1f adc r26, r26 + 15ca: bb 1f adc r27, r27 + 15cc: a6 17 cp r26, r22 + 15ce: b7 07 cpc r27, r23 + 15d0: 10 f0 brcs .+4 ; 0x15d6 <__udivmodhi4_ep> + 15d2: a6 1b sub r26, r22 + 15d4: b7 0b sbc r27, r23 + +000015d6 <__udivmodhi4_ep>: + 15d6: 88 1f adc r24, r24 + 15d8: 99 1f adc r25, r25 + 15da: 5a 95 dec r21 + 15dc: a9 f7 brne .-22 ; 0x15c8 <__udivmodhi4_loop> + 15de: 80 95 com r24 + 15e0: 90 95 com r25 + 15e2: bc 01 movw r22, r24 + 15e4: cd 01 movw r24, r26 + 15e6: 08 95 ret + +000015e8 <_exit>: + 15e8: f8 94 cli + +000015ea <__stop_program>: + 15ea: ff cf rjmp .-2 ; 0x15ea <__stop_program> diff --git a/USBLaminator/USBLaminator/Debug/USBLaminator.map b/USBLaminator/USBLaminator/Debug/USBLaminator.map index 45ee1b5..c9aa419 100644 --- a/USBLaminator/USBLaminator/Debug/USBLaminator.map +++ b/USBLaminator/USBLaminator/Debug/USBLaminator.map @@ -6,6 +6,10 @@ c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu- c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) (__addsf3x) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) USBLaminator.o (__ltsf2) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3.o) + USBLaminator.o (__divsf3) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) + c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3.o) (__divsf3x) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) USBLaminator.o (__fixunssfsi) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) @@ -32,8 +36,6 @@ c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu- USBLaminator.o (__mulsf3) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) (__mulsf3x) -c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - USBLaminator.o (__udivmodhi4) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm16a.o (exit) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o) @@ -54,6 +56,8 @@ c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu- c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) (__ftoa_engine) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(strrev.o) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(utoa.o) (strrev) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(utoa.o) (__udivmodhi4) Discarded input sections @@ -69,6 +73,10 @@ Discarded input sections .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) @@ -95,17 +103,6 @@ Discarded input sections .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.mul - 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.prologue - 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.builtins - 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.fmul - 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) .text.libgcc.mul @@ -180,6 +177,17 @@ Discarded input sections .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(ftoa_engine.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(strrev.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(strrev.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc.mul + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc.prologue + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc.builtins + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc.fmul + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) Memory Configuration @@ -296,7 +304,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .rela.plt *(.rela.plt) -.text 0x00000000 0x1460 +.text 0x00000000 0x15ec *(.vectors) .vectors 0x00000000 0x54 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm16a.o 0x00000000 __vector_default @@ -380,115 +388,122 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .text._Z5setupv 0x000001a4 0x216 USBLaminator.o 0x000001a4 _Z5setupv - .text.main 0x000003ba 0x5a6 USBLaminator.o + .text.main 0x000003ba 0x666 USBLaminator.o 0x000003ba main .text.__vector_6 - 0x00000960 0x108 USBLaminator.o - 0x00000960 __vector_6 + 0x00000a20 0x108 USBLaminator.o + 0x00000a20 __vector_6 .text.__vector_1 - 0x00000a68 0x20 USBLaminator.o - 0x00000a68 __vector_1 + 0x00000b28 0x1c USBLaminator.o + 0x00000b28 __vector_1 .text._ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC2Ev - 0x00000a88 0x34 USBLaminator.o - 0x00000a88 _ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC2Ev - 0x00000a88 _ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC1Ev + 0x00000b44 0x34 USBLaminator.o + 0x00000b44 _ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC2Ev + 0x00000b44 _ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC1Ev .text._ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC2E3LedINS0_5portbELi4ELi3ELi2EE - 0x00000abc 0x5a USBLaminator.o - 0x00000abc _ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE - 0x00000abc _ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC2E3LedINS0_5portbELi4ELi3ELi2EE + 0x00000b78 0x5a USBLaminator.o + 0x00000b78 _ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE + 0x00000b78 _ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC2E3LedINS0_5portbELi4ELi3ELi2EE .text._ZN6ButtonIN6avrlib5portdELi2EEC2E3LedINS0_5portbELi4ELi3ELi2EE - 0x00000b16 0x2c USBLaminator.o - 0x00000b16 _ZN6ButtonIN6avrlib5portdELi2EEC1E3LedINS0_5portbELi4ELi3ELi2EE - 0x00000b16 _ZN6ButtonIN6avrlib5portdELi2EEC2E3LedINS0_5portbELi4ELi3ELi2EE + 0x00000bd2 0x2c USBLaminator.o + 0x00000bd2 _ZN6ButtonIN6avrlib5portdELi2EEC1E3LedINS0_5portbELi4ELi3ELi2EE + 0x00000bd2 _ZN6ButtonIN6avrlib5portdELi2EEC2E3LedINS0_5portbELi4ELi3ELi2EE .text._ZN3LedIN6avrlib5portbELi4ELi3ELi2EE4initEv - 0x00000b42 0x14 USBLaminator.o - 0x00000b42 _ZN3LedIN6avrlib5portbELi4ELi3ELi2EE4initEv + 0x00000bfe 0x14 USBLaminator.o + 0x00000bfe _ZN3LedIN6avrlib5portbELi4ELi3ELi2EE4initEv .text._GLOBAL__sub_I_l - 0x00000b56 0x3e USBLaminator.o + 0x00000c12 0x3e USBLaminator.o .text.avr-libc.fplib - 0x00000b94 0xa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) - 0x00000b94 __subsf3 - 0x00000b96 __addsf3 + 0x00000c50 0xa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) + 0x00000c50 __subsf3 + 0x00000c52 __addsf3 .text.avr-libc.fplib - 0x00000b9e 0xc0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) - 0x00000bb8 __addsf3x + 0x00000c5a 0xc0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) + 0x00000c74 __addsf3x .text.avr-libc.fplib - 0x00000c5e 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) - 0x00000c5e __nesf2 - 0x00000c5e __eqsf2 - 0x00000c5e __cmpsf2 - 0x00000c5e __ltsf2 - 0x00000c5e __lesf2 + 0x00000d1a 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) + 0x00000d1a __nesf2 + 0x00000d1a __eqsf2 + 0x00000d1a __cmpsf2 + 0x00000d1a __ltsf2 + 0x00000d1a __lesf2 .text.avr-libc.fplib - 0x00000c66 0x58 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) - 0x00000c66 __fixunssfsi + 0x00000d22 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3.o) + 0x00000d22 __divsf3 .text.avr-libc.fplib - 0x00000cbe 0x7a c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) - 0x00000cbe __floatunsisf - 0x00000cc2 __floatsisf + 0x00000d26 0xcc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) + 0x00000d3c __divsf3x + 0x00000d40 __divsf3_pse .text.avr-libc.fplib - 0x00000d38 0x48 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) - 0x00000d38 __fp_cmp + 0x00000df2 0x58 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) + 0x00000df2 __fixunssfsi .text.avr-libc.fplib - 0x00000d80 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_inf.o) - 0x00000d80 __fp_inf + 0x00000e4a 0x7a c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) + 0x00000e4a __floatunsisf + 0x00000e4e __floatsisf .text.avr-libc.fplib - 0x00000d8c 0x6 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) - 0x00000d8c __fp_nan + 0x00000ec4 0x48 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) + 0x00000ec4 __fp_cmp .text.avr-libc.fplib - 0x00000d92 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o) - 0x00000d92 __fp_pscA + 0x00000f0c 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_inf.o) + 0x00000f0c __fp_inf .text.avr-libc.fplib - 0x00000da0 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o) - 0x00000da0 __fp_pscB + 0x00000f18 0x6 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) + 0x00000f18 __fp_nan .text.avr-libc.fplib - 0x00000dae 0x22 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_round.o) - 0x00000dae __fp_round + 0x00000f1e 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o) + 0x00000f1e __fp_pscA .text.avr-libc.fplib - 0x00000dd0 0x44 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_split3.o) - 0x00000dd0 __fp_split3 - 0x00000de0 __fp_splitA + 0x00000f2c 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o) + 0x00000f2c __fp_pscB .text.avr-libc.fplib - 0x00000e14 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) - 0x00000e14 __fp_zero - 0x00000e16 __fp_szero + 0x00000f3a 0x22 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_round.o) + 0x00000f3a __fp_round .text.avr-libc.fplib - 0x00000e22 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(gesf2.o) - 0x00000e22 __gesf2 - 0x00000e22 __gtsf2 + 0x00000f5c 0x44 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_split3.o) + 0x00000f5c __fp_split3 + 0x00000f6c __fp_splitA .text.avr-libc.fplib - 0x00000e2a 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) - 0x00000e2a __mulsf3 + 0x00000fa0 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) + 0x00000fa0 __fp_zero + 0x00000fa2 __fp_szero .text.avr-libc.fplib - 0x00000e2e 0xc2 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) - 0x00000e42 __mulsf3x - 0x00000e46 __mulsf3_pse + 0x00000fae 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(gesf2.o) + 0x00000fae __gesf2 + 0x00000fae __gtsf2 + .text.avr-libc.fplib + 0x00000fb6 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) + 0x00000fb6 __mulsf3 + .text.avr-libc.fplib + 0x00000fba 0xc2 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) + 0x00000fce __mulsf3x + 0x00000fd2 __mulsf3_pse + .text.libgcc 0x0000107c 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o) + 0x0000107c __tablejump2__ + 0x00001080 __tablejump__ + .text.avr-libc + 0x00001088 0x42 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) + 0x00001088 dtostrf + .text.avr-libc + 0x000010ca 0x2c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(utoa.o) + 0x000010ca utoa + .text.avr-libc + 0x000010f6 0x2fa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) + 0x000010f6 dtoa_prf + .text.avr-libc + 0x000013f0 0x1b0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(ftoa_engine.o) + 0x000013f0 __ftoa_engine + .text.avr-libc + 0x000015a0 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(strrev.o) + 0x000015a0 strrev .text.libgcc.div - 0x00000ef0 0x28 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - 0x00000ef0 __udivmodhi4 - .text.libgcc 0x00000f18 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o) - 0x00000f18 __tablejump2__ - 0x00000f1c __tablejump__ - .text.avr-libc - 0x00000f24 0x42 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) - 0x00000f24 dtostrf - .text.avr-libc - 0x00000f66 0x2c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(utoa.o) - 0x00000f66 utoa - .text.avr-libc - 0x00000f92 0x2fa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) - 0x00000f92 dtoa_prf - .text.avr-libc - 0x0000128c 0x1b0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(ftoa_engine.o) - 0x0000128c __ftoa_engine - .text.avr-libc - 0x0000143c 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(strrev.o) - 0x0000143c strrev - 0x0000145c . = ALIGN (0x2) + 0x000015c0 0x28 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + 0x000015c0 __udivmodhi4 + 0x000015e8 . = ALIGN (0x2) *(.fini9) - .fini9 0x0000145c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) - 0x0000145c _exit - 0x0000145c exit + .fini9 0x000015e8 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) + 0x000015e8 _exit + 0x000015e8 exit *(.fini9) *(.fini8) *(.fini8) @@ -507,11 +522,11 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 *(.fini1) *(.fini1) *(.fini0) - .fini0 0x0000145c 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) + .fini0 0x000015e8 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) *(.fini0) - 0x00001460 _etext = . + 0x000015ec _etext = . -.data 0x00800060 0x136 load address 0x00001460 +.data 0x00800060 0x136 load address 0x000015ec 0x00800060 PROVIDE (__data_start, .) *(.data) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm16a.o @@ -519,6 +534,8 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) + .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3.o) + .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) @@ -532,7 +549,6 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(gesf2.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) - .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o) @@ -543,6 +559,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(ftoa_engine.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(strrev.o) + .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) *(.data*) *(.rodata) .rodata 0x00800060 0x30 USBLaminator.o @@ -567,8 +584,8 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 *(.bss*) *(COMMON) 0x008001d2 PROVIDE (__bss_end, .) - 0x00001460 __data_load_start = LOADADDR (.data) - 0x00001596 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x000015ec __data_load_start = LOADADDR (.data) + 0x00001722 __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x008001d2 0x0 0x008001d2 PROVIDE (__noinit_start, .) @@ -596,7 +613,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .user_signatures *(.user_signatures*) -.stab 0x00000000 0x2ac0 +.stab 0x00000000 0x3018 *(.stab) .stab 0x00000000 0x6cc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm16a.o .stab 0x000006cc 0x78 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) @@ -605,42 +622,46 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 0x4c8 (size before relaxing) .stab 0x00000c00 0x90 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) 0x9c (size before relaxing) - .stab 0x00000c90 0x240 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) - 0x24c (size before relaxing) - .stab 0x00000ed0 0x318 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) - 0x324 (size before relaxing) - .stab 0x000011e8 0x1e0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) - 0x1ec (size before relaxing) - .stab 0x000013c8 0x78 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_inf.o) - 0x84 (size before relaxing) - .stab 0x00001440 0x54 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) - 0x60 (size before relaxing) - .stab 0x00001494 0x84 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o) - 0x90 (size before relaxing) - .stab 0x00001518 0x84 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o) - 0x90 (size before relaxing) - .stab 0x0000159c 0xfc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_round.o) - 0x108 (size before relaxing) - .stab 0x00001698 0x1d4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_split3.o) - 0x1e0 (size before relaxing) - .stab 0x0000186c 0x90 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) - 0x9c (size before relaxing) - .stab 0x000018fc 0x6c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(gesf2.o) - 0x78 (size before relaxing) - .stab 0x00001968 0x48 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) + .stab 0x00000c90 0x48 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3.o) 0x54 (size before relaxing) - .stab 0x000019b0 0x4d4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) + .stab 0x00000cd8 0x510 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) + 0x51c (size before relaxing) + .stab 0x000011e8 0x240 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) + 0x24c (size before relaxing) + .stab 0x00001428 0x318 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) + 0x324 (size before relaxing) + .stab 0x00001740 0x1e0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) + 0x1ec (size before relaxing) + .stab 0x00001920 0x78 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_inf.o) + 0x84 (size before relaxing) + .stab 0x00001998 0x54 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) + 0x60 (size before relaxing) + .stab 0x000019ec 0x84 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o) + 0x90 (size before relaxing) + .stab 0x00001a70 0x84 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o) + 0x90 (size before relaxing) + .stab 0x00001af4 0xfc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_round.o) + 0x108 (size before relaxing) + .stab 0x00001bf0 0x1d4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_split3.o) + 0x1e0 (size before relaxing) + .stab 0x00001dc4 0x90 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) + 0x9c (size before relaxing) + .stab 0x00001e54 0x6c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(gesf2.o) + 0x78 (size before relaxing) + .stab 0x00001ec0 0x48 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) + 0x54 (size before relaxing) + .stab 0x00001f08 0x4d4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) 0x4e0 (size before relaxing) - .stab 0x00001e84 0x12c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(utoa.o) + .stab 0x000023dc 0x12c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(utoa.o) 0x138 (size before relaxing) - .stab 0x00001fb0 0xa38 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(ftoa_engine.o) + .stab 0x00002508 0xa38 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(ftoa_engine.o) 0xa44 (size before relaxing) - .stab 0x000029e8 0xd8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(strrev.o) + .stab 0x00002f40 0xd8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(strrev.o) 0xe4 (size before relaxing) -.stabstr 0x00000000 0x798 +.stabstr 0x00000000 0x855 *(.stabstr) - .stabstr 0x00000000 0x798 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm16a.o + .stabstr 0x00000000 0x855 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm16a.o .stab.excl *(.stab.excl) @@ -685,11 +706,11 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0x74a7 +.debug_info 0x00000000 0x756b *(.debug_info) - .debug_info 0x00000000 0x71f6 USBLaminator.o - .debug_info 0x000071f6 0x121 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) - .debug_info 0x00007317 0x190 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) + .debug_info 0x00000000 0x72ba USBLaminator.o + .debug_info 0x000072ba 0x121 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) + .debug_info 0x000073db 0x190 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) *(.gnu.linkonce.wi.*) .debug_abbrev 0x00000000 0x659 @@ -698,11 +719,11 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .debug_abbrev 0x000004c0 0xad c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) .debug_abbrev 0x0000056d 0xec c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) -.debug_line 0x00000000 0xb6d +.debug_line 0x00000000 0xb99 *(.debug_line) - .debug_line 0x00000000 0x887 USBLaminator.o - .debug_line 0x00000887 0x96 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) - .debug_line 0x0000091d 0x250 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) + .debug_line 0x00000000 0x8b3 USBLaminator.o + .debug_line 0x000008b3 0x96 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) + .debug_line 0x00000949 0x250 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) .debug_frame 0x00000000 0x1d8 *(.debug_frame) @@ -710,20 +731,20 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .debug_frame 0x00000134 0x38 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) .debug_frame 0x0000016c 0x6c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) -.debug_str 0x00000000 0x1908 +.debug_str 0x00000000 0x1945 *(.debug_str) - .debug_str 0x00000000 0x181d USBLaminator.o - 0x1885 (size before relaxing) - .debug_str 0x0000181d 0x7b c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) + .debug_str 0x00000000 0x185a USBLaminator.o + 0x18c2 (size before relaxing) + .debug_str 0x0000185a 0x7b c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) 0xfc (size before relaxing) - .debug_str 0x00001898 0x70 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) + .debug_str 0x000018d5 0x70 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) 0x118 (size before relaxing) -.debug_loc 0x00000000 0x18cf +.debug_loc 0x00000000 0x1a95 *(.debug_loc) - .debug_loc 0x00000000 0x12b3 USBLaminator.o - .debug_loc 0x000012b3 0x108 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) - .debug_loc 0x000013bb 0x514 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) + .debug_loc 0x00000000 0x1479 USBLaminator.o + .debug_loc 0x00001479 0x108 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) + .debug_loc 0x00001581 0x514 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) .debug_macinfo *(.debug_macinfo) diff --git a/USBLaminator/USBLaminator/Debug/USBLaminator.srec b/USBLaminator/USBLaminator/Debug/USBLaminator.srec index 2a66e2a..28c2bf0 100644 --- a/USBLaminator/USBLaminator/Debug/USBLaminator.srec +++ b/USBLaminator/USBLaminator/Debug/USBLaminator.srec @@ -1,6 +1,6 @@ S01400005553424C616D696E61746F722E737265637F -S11300000C94A8000C9434050C94D0000C94D000EB -S11300100C94D0000C94D0000C94B0040C94D00038 +S11300000C94A8000C9494050C94D0000C94D0008B +S11300100C94D0000C94D0000C9410050C94D000D7 S11300200C94D0000C94D0000C94D0000C94D0000C S11300300C94D0000C94D0000C94D0000C94D000FC S11300400C94D0000C94D0000C94D0000C94D000EC @@ -19,12 +19,12 @@ S1130100902E0300943577050080841E080000209B S11301104E0A000000C80C333333330F986E128339 S11301201141EF8D2114893BE65516CFFEE6DB180D S1130130D1844B381BF77C1D901DA4BBE4242032D2 -S113014084725E228100C9F124ECA1E53D27AB0550 +S113014084725E228100C9F124ECA1E53D270906F1 S113015011241FBECFE5D4E0DEBFCDBF11E0A0E681 -S1130160B0E0E0E6F4E102C005900D92A639B107D3 +S1130160B0E0ECEEF5E102C005900D92A639B107BE S1130170D9F721E0A6E9B1E001C01D92A23DB20782 S1130180E1F711E0C0E5D1E004C02297FE010E942E -S11301908E07CE34D107C9F70E94DD010C942E0AD4 +S11301904008CE34D107C9F70E94DD010C94F40A5B S11301A00C940000CF93C49ABC9AAA98A29AAB98D4 S11301B0A39AAC98A49AAD98A59AAE98A69AAF982B S11301C0A79AE1E9F0E083E2C39ABB9A5D9BFECF74 @@ -59,290 +59,315 @@ S11303808111F6CFC29ABA9A16C0C498BC9AC39A7D S1130390BB9AEFE3F1E083E2C9CF379A2FEF81EE06 S11303A094E0215080409040E1F700C00000ECE46C S11303B0F1E083E2C6CFCF910895CF93DF93CDB719 -S11303C0DEB7A9970FB6F894DEBF0FBECDBF0E946B -S11303D0D20029E130E039A728A787B1887F87B9FF +S11303C0DEB7AB970FB6F894DEBF0FBECDBF0E9469 +S11303D0D20024E130E039A728A787B1887F87B904 S11303E087B187B935E33A95F1F70000369A349B23 S11303F0FECFA4B0B5B087B1887F87B9389A85E3BA S11304008A95F1F70000369A349BFECF84B095B0FC -S1130410E7E9F1E020803180E9E9F1E00081118130 -S1130420EBE9F1E0808191819101281B390BC9012D -S1130430EDE9F1E020813181B801621B730B0E9468 -S1130440780780E090E00E945F06C62ED72EE82E43 -S1130450F92E462E572E682E792EB50180E090E0B5 -S11304600E945F069B01AC016C2D7D2D8E2D9F2D6E -S11304700E9415076B017C0177FA709477F87094E9 -S1130480B80180E090E00E945F069B01AC01C301CB -S1130490B2010E9415079B01AC01C701B6010E947D -S11304A0CB056B017C01B10180E090E00E945F0606 -S11304B09B01AC01C701B6010E94CB056AA37BA3D3 -S11304C08CA39DA3EFE9F1E020803180E1EAF1E023 -S11304D000811181E3EAF1E0808191819101281B7F -S11304E0390BC901E5EAF1E020813181B801621BD1 -S11304F0730B0E94780780E090E00E945F06C62E8E -S1130500D72EE82EF92E462E572E682E792EB401BA -S113051080E090E00E945F069B01AC016C2D7D2D74 -S11305208E2D9F2D0E9415076B017C0177FA709424 -S113053077F87094B80180E090E00E945F069B0118 -S1130540AC01C301B2010E9415079B01AC01C701B4 -S1130550B6010E94CB056B017C01B10180E090E003 -S11305600E945F069B01AC01C701B6010E94CB0546 -S11305706EA37FA3D82EC92E762F6FA1272F362FD7 -S11305804D2D5C2DBAA1ABA1FCA1EDA16B2F7A2F4F -S11305908F2F9E2F0E94CB0520E030E040E05FE3E8 -S11305A00E941507762E672E582E492EE8ECF1E0AE -S11305B0808191812FEF3FEF318320838F3F3FEF85 -S11305C0930711F099A788A768A579A56B5F7F4F5A -S11305D0882777FD8095982F0E946106272D362D58 -S11305E0452D542D0E94CA05F62EE72E382E292EAD -S11305F020E030E0A9010E942F0688230CF499C161 -S113060020E030E040EA51E46F2D7E2D832D922DC1 -S11306100E94110718160CF491C17F2D6E2D932D95 -S1130620822D90C1C39ABB9A5D9BFECF8CB9C398AF -S1130630BB9A81918111F6CF8E01095E1F4F22E092 -S11306404AE06F2D7E2D832D922D0E949207FC018E -S11306502081222359F03196C39ABB9A5D9BFECF29 -S11306602CB9C398BB9A21912111F6CFC39ABB9A96 -S11306705D9BFECF8BE38CB9C398BB9A0F2EFAE631 -S1130680EF2EF1E0FF2EF02DF70183E6C39ABB9A1B -S11306905D9BFECF8CB9C398BB9A81918111F6CF33 -S11306A0B4016A0D7B1D80E090E00E945F0620E0AB -S11306B030E040E05FE30E9415078E01045F1F4FA6 -S11306C022E04AE00E949207FC012081222359F093 -S11306D03196C39ABB9A5D9BFECF2CB9C398BB9A43 -S11306E021912111F6CFC39ABB9A5D9BFECF8BE378 -S11306F08CB9C398BB9AEEE6F1E086E7C39ABB9A3D -S11307005D9BFECF8CB9C398BB9A81918111F6CFC2 -S11307104AE050E0BE01645F7F4FC5010E94B30709 -S1130720FC012081222359F03196C39ABB9A5D9B28 -S1130730FECF2CB9C398BB9A21912111F6CFC39A4D -S1130740BB9A5D9BFECF8BE38CB9C398BB9AE2E75F -S1130750F1E086E7C39ABB9A5D9BFECF8CB9C39840 -S1130760BB9A81918111F6CF4AE050E0BE01645FEB -S11307707F4FC4010E94B307FC012081222359F05A -S11307803196C39ABB9A5D9BFECF2CB9C398BB9A92 -S113079021912111F6CFC39ABB9A5D9BFECF8BE3C7 -S11307A08CB9C398BB9A83E6F701C39ABB9A5D9B45 -S11307B0FECF8CB9C398BB9A81918111F6CF8E017B -S11307C00F5F1F4F22E04AE0672D762D852D942D73 -S11307D00E949207FC012081222359F03196C39A8A -S11307E0BB9A5D9BFECF2CB9C398BB9A2191211172 -S11307F0F6CFC39ABB9A5D9BFECF8BE38CB9C398AB -S1130800BB9AE6E7F1E083E6C39ABB9A5D9BFECF11 -S11308108CB9C398BB9A81918111F6CF8E010F5F79 -S11308201F4F22E04AE0FAA1EBA15CA13DA16F2F8A -S11308307E2F852F932F0E949207FC012081222373 +S113041099EEA91693E0B90668F4E9EE8E16E3E0C6 +S11304209E0640F4F5E0AF16B10420F025E08216F4 +S1130430910478F4C49ABC9A1092CC011092CD0124 +S11304401092CE011092CF011092D0011092D101DE +S1130450FFCFE7E9F1E06081718180E090E00E94E4 +S113046025076AA37BA38CA39DA3E9E9F1E060813E +S1130470718180E090E00E942507262E372E082FF8 +S1130480192FEBE9F1E06081718180E090E00E9436 +S113049025079B01AC01BAA1ABA1FCA1EDA16B2F77 +S11304A07A2F8F2F9E2F0E9428066B017C01EDE985 +S11304B0F1E06081718180E090E00E9425079B015A +S11304C0AC01622D732D802F912F0E9428069B0171 +S11304D0AC01C701B6010E949106D62EC72EE82EA4 +S11304E0F92E462E572E682E792EB50180E090E025 +S11304F00E9425079B01AC016D2D7C2D8E2D9F2D17 +S11305000E94DB076B017C01A30192015058622D0C +S1130510732D802F912F0E94DB079B01AC01C70133 +S1130520B6010E9429069B01AC01BAA1ABA1FCA1B2 +S1130530EDA16B2F7A2F8F2F9E2F0E9429066AA37D +S11305407BA38CA39DA3EFE9F1E06081718180E03E +S113055090E00E9425076EA37FA38AA79BA7E1EAE8 +S1130560F1E06081718180E090E00E942507262EF1 +S1130570372E082F192FE3EAF1E06081718180E0C2 +S113058090E00E9425079B01AC01BEA1AFA1FAA592 +S1130590EBA56B2F7A2F8F2F9E2F0E9428066B01BD +S11305A07C01E5EAF1E06081718180E090E00E94E5 +S11305B025079B01AC01622D732D802F912F0E9482 +S11305C028069B01AC01C701B6010E949106D62EF4 +S11305D0C72EE82EF92E462E572E682E792EB401FA +S11305E080E090E00E9425079B01AC016D2D7C2DDD +S11305F08E2D9F2D0E94DB076B017C01A3019201CC +S11306005058622D732D802F912F0E94DB079B0180 +S1130610AC01C701B6010E9429069B01AC01BEA131 +S1130620AFA1FAA5EBA56B2F7A2F8F2F9E2F0E94D7 +S113063029066EA37FA3D82EC92E762F6FA1272F4C +S1130640362F4D2D5C2DBAA1ABA1FCA1EDA16B2FD2 +S11306507A2F8F2F9E2F0E94290620E030E040E061 +S11306605FE30E94DB07762E672E582E492EE8ECB6 +S1130670F1E0808191812FEF3FEF318320838F3F21 +S11306803FEF930711F099A788A768A579A56B5F39 +S11306907F4F882777FD8095982F0E942707272D65 +S11306A0362D452D542D0E942806F62EE72E382E81 +S11306B0292E20E030E0A9010E948D0688230CF445 +S11306C099C120E030E040EA51E46F2D7E2D832D66 +S11306D0922D0E94D70718160CF491C13F2D2E2D90 +S11306E0932D822D90C1C39ABB9A5D9BFECF8CB98A +S11306F0C398BB9A81918111F6CF8E01095E1F4F79 +S113070022E04AE06F2D7E2D832D922D0E94440815 +S1130710FC012081222359F03196C39ABB9A5D9B38 +S1130720FECF2CB9C398BB9A21912111F6CFC39A5D +S1130730BB9A5D9BFECF8BE38CB9C398BB9A0F2EFB +S1130740FAE6EF2EF1E0FF2EF02DF70183E6C39ACF +S1130750BB9A5D9BFECF8CB9C398BB9A81918111E2 +S1130760F6CFB4016A0D7B1D80E090E00E9425075E +S113077020E030E040E05FE30E94DB078E01045F8D +S11307801F4F22E04AE00E944408FC0120812223FA +S113079059F03196C39ABB9A5D9BFECF2CB9C3988E +S11307A0BB9A21912111F6CFC39ABB9A5D9BFECFD0 +S11307B08BE38CB9C398BB9AEEE6F1E086E7C39A63 +S11307C0BB9A5D9BFECF8CB9C398BB9A8191811172 +S11307D0F6CF4AE050E0BE01645F7F4FC5010E943E +S11307E06508FC012081222359F03196C39ABB9AF3 +S11307F05D9BFECF2CB9C398BB9A21912111F6CFF2 +S1130800C39ABB9A5D9BFECF8BE38CB9C398BB9A0A +S1130810E2E7F1E086E7C39ABB9A5D9BFECF8CB911 +S1130820C398BB9A81918111F6CF4AE050E0BE0192 +S1130830645F7F4FC4010E946508FC01208122236C S113084059F03196C39ABB9A5D9BFECF2CB9C398DD S1130850BB9A21912111F6CFC39ABB9A5D9BFECF1F -S11308608BE38CB9C398BB9AEAE7F1E083E6C39AB9 -S1130870BB9A5D9BFECF8CB9C398BB9A81918111C1 -S1130880F6CF8E010F5F1F4F22E04AE0FEA1EFA1D9 -S11308906F2F7E2F8D2D9C2D0E949207FC012081AD -S11308A0222359F03196C39ABB9A5D9BFECF2CB993 -S11308B0C398BB9A21912111F6CFC39ABB9A5D9B31 -S11308C0FECF8BE38CB9C398BB9AEEE7F1E088E6E0 -S11308D0C39ABB9A5D9BFECF8CB9C398BB9A819196 -S11308E08111F6CF9A9B03C0E2E6F1E002C0EBE58A -S11308F0F1E08081882359F03196C39ABB9A5D9BBD -S1130900FECF8CB9C398BB9A81918111F6CFC39A5B -S1130910BB9A5D9BFECF8AE08CB9C398BB9AFFEF6C -S113092021EE34E0F15020403040E1F700C00000F7 -S113093054CD70E060E090E080E004C070E060E0DE -S113094090EA81E4462F282F672F742F892F922F46 -S11309500E9433066093CB01E5E8F1E080E762CEC4 -S11309601F920F920FB60F9211242F933F934F9320 -S11309705F936F937F938F939F93AF93BF93EF9303 -S1130980FF938091CA01843108F451C01092CA01C6 -S113099051C0822F91916C91961718F1992309F106 -S11309A0BA01022E02C0660F771F0A94E2F7CB0148 -S11309B060FF02C0AA9AA29A81FF02C0AB9AA39ACE -S11309C082FF02C0AC9AA49A83FF02C0AD9AA59A92 -S11309D084FF02C0AE9AA69A85FF22C0AF9AA79A56 -S11309E01FC0BA0102C0660F771F8A95E2F7CB01D8 -S11309F060FF02C0AA98A29A81FF02C0AB98A39A92 -S1130A0082FF02C0AC98A49A83FF02C0AD98A59A55 -S1130A1084FF02C0AE98A69A85FF02C0AF98A79A39 -S1130A202F5F3F4F2630310509F0B3CF0CC08F5FE5 -S1130A308093CA01EBECF1E020E030E0AAECB1E0F5 -S1130A4041E050E0A6CFFF91EF91BF91AF919F910C -S1130A508F917F916F915F914F913F912F910F9063 -S1130A600FBE0F901F9018951F920F920FB60F9202 -S1130A7011248F9380E48ABFC49ABC9A8F910F90FB -S1130A800FBE0F901F901895FC01119286E0DF01B4 -S1130A901D928A95E9F7A29AA39AA49AA59AA69A6E -S1130AA0A79AAA98A29AAB98A39AAC98A49AAD983C -S1130AB0A59AAE98A69AAF98A79A0895CF93DF9374 -S1130AC01F92CDB7DEB76983BC9ABB9ABA9AC49811 -S1130AD0BC9AC398BB9AC298BA9A2FEF3FEFFC0115 -S1130AE0328321831BB888E08AB986EA80BD10BCB2 -S1130AF089E189B9EAE8F1E085E5C39ABB9A5D9B8F -S1130B00FECF8CB9C398BB9A81918111F6CF0F9017 -S1130B10DF91CF910895CF93DF931F92CDB7DEB7C6 -S1130B206983BC9ABB9ABA9AC498BC9AC398BB9A74 -S1130B30C298BA9A8A989298929A0F90DF91CF911C -S1130B400895BC9ABB9ABA9AC498BC9AC398BB9AA3 -S1130B50C298BA9A089581ED91E00E94A1058AECA9 -S1130B6091E00E94440560E087EC91E00E945E05FC -S1130B7080E3E0E6F0E0A7E9B1E001900D928A9508 -S1130B80E1F784E086B917B860E086E991E00E9455 -S1130B908B0508955058BB27AA270ED008C1F9D059 -S1130BA030F0FED020F031F49F3F11F41EF4EEC07B -S1130BB00EF4E095E7FBE4C0E92F0AD180F3BA17FD -S1130BC0620773078407950718F071F49EF522C134 -S1130BD00EF4E0950B2EBA2FA02D0B01B901900154 -S1130BE00C01CA01A0011124FF27591B99F0593F98 -S1130BF050F4503E68F11A16F040A22F232F342FE0 -S1130C004427585FF3CF469537952795A795F0402D -S1130C105395C9F77EF41F16BA0B620B730B840B42 -S1130C20BAF09150A1F0FF0FBB1F661F771F881FFA -S1130C30C2F70EC0BA0F621F731F841F48F4879552 -S1130C4077956795B795F7959E3F08F0B3CF939541 -S1130C50880F08F09927EE0F9795879508956CD023 -S1130C6008F481E00895BCD088F09F5790F0B92F24 -S1130C709927B751A0F0D1F0660F771F881F991FED -S1130C801AF0BA95C9F712C0B13081F0C3D0B1E0FF -S1130C900895C0C0672F782F8827B85F39F0B93F0F -S1130CA0CCF3869577956795B395D9F73EF49095EF -S1130CB08095709561957F4F8F4F9F4F0895E8946D -S1130CC009C097FB3EF490958095709561957F4F90 -S1130CD08F4F9F4F9923A9F0F92F96E9BB2793953E -S1130CE0F695879577956795B795F111F8CFFAF44E -S1130CF0BB0F11F460FF1BC06F5F7F4F8F4F9F4F7F -S1130D0016C0882311F096E911C0772321F09EE8DC -S1130D10872F762F05C0662371F096E8862F70E042 -S1130D2060E02AF09A95660F771F881FDAF7880F1C -S1130D309695879597F90895990F0008550FAA0B72 -S1130D40E0E8FEEF16161706E807F907C0F01216DA -S1130D501306E407F50798F0621B730B840B950BDD -S1130D6039F40A2661F0232B242B252B21F4089532 -S1130D700A2609F4A140A6958FEF811D811D0895CF -S1130D8097F99F6780E870E060E008959FEF80EC3A -S1130D90089500240A9416161706180609060895DD -S1130DA000240A9412161306140605060895092E43 -S1130DB00394000C11F4882352F0BB0F40F4BF2BB2 -S1130DC011F460FF04C06F5F7F4F8F4F9F4F0895F2 -S1130DD057FD9058440F551F59F05F3F71F04795E8 -S1130DE0880F97FB991F61F09F3F79F087950895CD -S1130DF0121613061406551FF2CF4695F1DF08C0EC -S1130E00161617061806991FF1CF86957105610508 -S1130E1008940895E894BB2766277727CB0197F9B0 -S1130E2008958ADF08F48FEF08950BD0C0CFB1DFA7 -S1130E3028F0B6DF18F0952309F0A2CFA7CF11242C -S1130E40EACFC6DFA0F3959FD1F3950F50E0551F6D -S1130E50629FF001729FBB27F00DB11D639FAA270B -S1130E60F00DB11DAA1F649F6627B00DA11D661F5A -S1130E70829F2227B00DA11D621F739FB00DA11D7B -S1130E80621F839FA00D611D221F749F3327A00D35 -S1130E90611D231F849F600D211D822F762F6A2FD1 -S1130EA011249F5750408AF0E1F088234AF0EE0F56 -S1130EB0FF1FBB1F661F771F881F91505040A9F763 -S1130EC09E3F510570F05CCFA6CF5F3FECF3983E98 -S1130ED0DCF3869577956795B795F795E7959F5FCA -S1130EE0C1F7FE2B880F911D9695879597F9089564 -S1130EF0AA1BBB1B51E107C0AA1FBB1FA617B7073C -S1130F0010F0A61BB70B881F991F5A95A9F7809557 -S1130F109095BC01CD010895EE0FFF1F0590F4914B -S1130F20E02D0994EF920F931F93CF93C02F47FFA7 -S1130F3002C034E101C034E0E42FFF27E7FDF0955F -S1130F40F7FF03C0F195E195F109E32E022F2E2F4F -S1130F504C2F512F0E94C9078C2F912FCF911F9195 -S1130F600F91EF900895FB019F01423074F04532D8 -S1130F7064F4642F77270E947807805D8A330CF02D -S1130F80895D8193CB010097A1F71082C9010C946C -S1130F901E0A6F927F929F92AF92BF92CF92DF927E -S1130FA0EF92FF920F931F93CF93DF93CDB7DEB7EA -S1130FB029970FB6F894DEBF0FBECDBF6A01B22EDB -S1130FC0102F0C3318F4F02EF39402C05CE3F52ECA -S1130FD00F2D27E0AE014F5F5F4F0E9446097981D4 -S1130FE0272F2970213031F0E1FC06C0E0FE06C055 -S1130FF060E205C06DE203C06BE201C060E073FF14 -S11310003DC0662311F084E001C083E08B1510F429 -S1131010B81A01C0B12CE4FC0BC08B2DF60190E290 -S113102002C0919381508111FCCFCB0CD11CB12C07 -S1131030662319F0D6016D936D01E2FE0AC08EE4B9 -S1131040F601808391E491838283F3E0CF0ED11C77 -S11310500CC08EE6D6018C9391E611969C93119761 -S113106012968C93B3E0CB0ED11C8B2DF60190E23B -S113107002C0919381508111FCCF40C072FF45C0E2 -S1131080662311F084E001C083E08B1510F4B81AD4 -S113109001C0B12CE4FC0BC08B2DF60190E202C020 -S11310A0919381508111FCCFCB0CD11CB12C6623C0 -S11310B019F0F60161936F01E2FE0EC089E4D601D6 -S11310C08C938EE411968C93119786E412968C93EC -S11310D0B3E0CB0ED11C0AC089E6F60180838EE60C -S11310E0818386E68283F3E0CF0ED11C8B2DF6013B -S11310F090E202C0919381508111FCCFF601EB0D77 -S1131100F11D10822EEF3FEFACC0A1E0611101C0D0 -S1131110A0E04A2F50E01816190624F49C012F5F12 -S11311203F4F02C021E030E0240F351F112329F086 -S1131130412F50E04F5F5F4F02C040E050E0420F4C -S1131140531F2B2D30E04217530714F4B41A01C077 -S1131150B12C3E2D3071E4FC0DC0E3FC0BC02B2DF3 -S1131160F60140E202C0419321502111FCCFCB0C87 -S1131170D11CB12CAA2319F0D6016D936D01311144 -S11311800BC02B2DF60130E302C031932150211105 -S1131190FCCFCB0CD11CB12CF80E0A8140E1A42E5B -S11311A0A72274FF03C0013309F4FA941F142CF42A -S11311B02F2D293018F028E001C021E0AC0197FF61 -S11311C002C040E050E060E070E03EE2932EFC019B -S11311D0E21BF1099F01DC01A41BB50BFE01319652 -S11311E0EA0FFB1FA12FB0E0662477246A1A7B0A5A -S11311F04F3F1FEF510719F4D6019D926D018417DB -S1131200950754F0241735073CF47F01E60EF71ECA -S1131210D70111961C9101C010E3415051096F5F31 -S11312207F4F4615570524F0D6011D936D01E0CF7D -S11312304817590739F4063320F4053319F4A1107B -S113124001C011E3F60111938B2DDF0190E202C07E -S11312509D9381508111FCCFEB0DF11D108220E094 -S113126030E0C90129960FB6F894DEBF0FBECDBF9A -S1131270DF91CF911F910F91FF90EF90DF90CF906E -S1131280BF90AF909F907F906F900895283008F0A2 -S113129027E03327DA01990F311D87FD916000960D -S11312A06105710539F432602E5F3D9330E32A9570 -S11312B0E1F708959F3F30F080387105610509F02A -S11312C03C5F3C5F3D93913008F08068911DDF9353 -S11312D0CF931F930F93FF92EF92192F987F9695B8 -S11312E0E92F96959695E90FFF27E255FF4F992729 -S11312F03327EE24FF24A701E701059008940794FF -S113130028F4360FE71EF81E491F511D660F771F7C -S1131310881F991F0694A1F70590079428F4E70EF7 -S1131320F81E491F561FC11D770F881F991F661F7E -S11313300694A1F70590079428F4F80E491F561F48 -S1131340C71FD11D880F991F661F771F0694A1F729 -S11313500590079420F4490F561FC71FD81F990FF3 -S1131360661F771F881F0694A9F78491109517703C -S113137041F0D695C79557954795F794E7941A95F4 -S1131380C1F7E4E5F0E06894159015913591659105 -S1131390959105907FE27395E118F10A430B560B82 -S11313A0C90BD009C0F7E10CF11E431F561FC91F1A -S11313B0D01D7EF4703311F48A95E6CFE894015081 -S11313C030F0080F0AF40027021708F4202F2395A1 -S11313D0022F7A3328F079E37D932A95E9F710C038 -S11313E07D932A9589F60694979567953795179571 -S11313F01794E118F10A430B560BC90BD00998F066 -S113140023957E9173957A3308F070E37C932013CF -S1131410B8F77E9170617D9330F0839571E37D938D -S113142070E32A95E1F71124EF90FF900F911F913B -S1131430CF91DF91992787FD90950895DC01FC01F8 -S1131440672F71917723E1F7329704C07C916D93F4 -S113145070836291AE17BF07C8F30895F894FFCF65 -S11314601A009000B40054001A009000B400540014 -S11314700000000000000000000000000000000068 -S11314800000000000000000000000000000000058 -S11314902323232320426567696E20426F6F74758E -S11314A070202323232323232323232323232323BE -S11314B023232323232323232323232323232323F8 -S11314C023232323232323232323230A00232054F6 -S11314D0657374204F75747075740A002320536506 -S11314E07475702054696D65720A002323204F754A -S11314F07470757420496E697420446F6E65210A96 -S1131500002323232320456E6420426F6F7475707B -S1131510202323232323232323232323232323239A -S11315202323232323232323232323232323232387 -S11315302323232323232323232323230A002320B6 -S11315405365747570204144430A00232053657425 -S1131550757020427574746F6E0A006D6F6E3D3045 -S11315603B006D6F6E3D313B00636D3D0076303D59 -S11315700076313D0063313D0063323D00686F6E9B -S11315803D303B0070776D3D005561727420646F8F -S10915906E65210A000053 +S11308608BE38CB9C398BB9A83E6F701C39ABB9A0E +S11308705D9BFECF8CB9C398BB9A81918111F6CF51 +S11308808E010F5F1F4F22E04AE0672D762D852DE4 +S1130890942D0E944408FC012081222359F03196B2 +S11308A0C39ABB9A5D9BFECF2CB9C398BB9A219186 +S11308B02111F6CFC39ABB9A5D9BFECF8BE38CB913 +S11308C0C398BB9AE6E7F1E083E6C39ABB9A5D9BC3 +S11308D0FECF8CB9C398BB9A81918111F6CF8E015A +S11308E00F5F1F4F22E04AE0FAA1EBA15CA13DA1FA +S11308F06F2F7E2F852F932F0E944408FC012081A7 +S1130900222359F03196C39ABB9A5D9BFECF2CB932 +S1130910C398BB9A21912111F6CFC39ABB9A5D9BD0 +S1130920FECF8BE38CB9C398BB9AEAE7F1E083E688 +S1130930C39ABB9A5D9BFECF8CB9C398BB9A819135 +S11309408111F6CF8E010F5F1F4F22E04AE0FEA116 +S1130950EFA16F2F7E2F8D2D9C2D0E944408FC014A +S11309602081222359F03196C39ABB9A5D9BFECF16 +S11309702CB9C398BB9A21912111F6CFC39ABB9A83 +S11309805D9BFECF8BE38CB9C398BB9AEEE7F1E095 +S113099088E6C39ABB9A5D9BFECF8CB9C398BB9A79 +S11309A081918111F6CF9A9B03C0E2E6F1E002C087 +S11309B0EBE5F1E08081882359F03196C39ABB9A24 +S11309C05D9BFECF8CB9C398BB9A81918111F6CF00 +S11309D0C39ABB9A5D9BFECF8AE08CB9C398BB9A3D +S11309E0FFEF21EE34E0F15020403040E1F700C049 +S11309F00000F3CC30E020E090E080E004C030E080 +S1130A0020E090EA81E4482F632F722F892F942FDE +S1130A100E94F9066093CB01E5E8F1E080E763CE3C +S1130A201F920F920FB60F9211242F933F934F935F +S1130A305F936F937F938F939F93AF93BF93EF9342 +S1130A40FF938091CA01843108F451C01092CA0105 +S1130A5051C0822F91916C91961718F1992309F145 +S1130A60BA01022E02C0660F771F0A94E2F7CB0187 +S1130A7060FF02C0AA9AA29A81FF02C0AB9AA39A0D +S1130A8082FF02C0AC9AA49A83FF02C0AD9AA59AD1 +S1130A9084FF02C0AE9AA69A85FF22C0AF9AA79A95 +S1130AA01FC0BA0102C0660F771F8A95E2F7CB0117 +S1130AB060FF02C0AA98A29A81FF02C0AB98A39AD1 +S1130AC082FF02C0AC98A49A83FF02C0AD98A59A95 +S1130AD084FF02C0AE98A69A85FF02C0AF98A79A79 +S1130AE02F5F3F4F2630310509F0B3CF0CC08F5F25 +S1130AF08093CA01EBECF1E020E030E0AAECB1E035 +S1130B0041E050E0A6CFFF91EF91BF91AF919F914B +S1130B108F917F916F915F914F913F912F910F90A2 +S1130B200FBE0F901F9018951F920F920FB60F9241 +S1130B3011248F9380E48ABF8F910F900FBE0F9082 +S1130B401F901895FC01119286E0DF011D928A9591 +S1130B50E9F7A29AA39AA49AA59AA69AA79AAA98F8 +S1130B60A29AAB98A39AAC98A49AAD98A59AAE9879 +S1130B70A69AAF98A79A0895CF93DF931F92CDB703 +S1130B80DEB76983BC9ABB9ABA9AC498BC9AC398D4 +S1130B90BB9AC298BA9A2FEF3FEFFC0132832183AC +S1130BA01BB888E08AB986EA80BD10BC89E189B99E +S1130BB0EAE8F1E085E5C39ABB9A5D9BFECF8CB968 +S1130BC0C398BB9A81918111F6CF0F90DF91CF9199 +S1130BD00895CF93DF931F92CDB7DEB76983BC9A94 +S1130BE0BB9ABA9AC498BC9AC398BB9AC298BA9A48 +S1130BF08A989298929A0F90DF91CF910895BC9A17 +S1130C00BB9ABA9AC498BC9AC398BB9AC298BA9A27 +S1130C10089581ED91E00E94FF058AEC91E00E9425 +S1130C20A20560E087EC91E00E94BC0580E3E0E669 +S1130C30F0E0A7E9B1E001900D928A95E1F784E034 +S1130C4086B917B860E086E991E00E94E905089545 +S1130C505058BB27AA270ED070C161D130F066D19D +S1130C6020F031F49F3F11F41EF456C10EF4E095C8 +S1130C70E7FB4CC1E92F72D180F3BA1762077307FF +S1130C808407950718F071F49EF58AC10EF4E09577 +S1130C900B2EBA2FA02D0B01B90190010C01CA0132 +S1130CA0A0011124FF27591B99F0593F50F4503EDD +S1130CB068F11A16F040A22F232F342F4427585FCF +S1130CC0F3CF469537952795A795F0405395C9F7E7 +S1130CD07EF41F16BA0B620B730B840BBAF091509F +S1130CE0A1F0FF0FBB1F661F771F881FC2F70EC03E +S1130CF0BA0F621F731F841F48F487957795679511 +S1130D00B795F7959E3F08F0B3CF9395880F08F0F9 +S1130D109927EE0F979587950895D4D008F481E02C +S1130D2008950CD00AC102D140F0F9D030F021F47A +S1130D305F3F19F0EBC0511134C1EEC00FD198F3ED +S1130D409923C9F35523B1F3951B550BBB27AA2748 +S1130D5062177307840738F09F5F5F4F220F331FBA +S1130D60441FAA1FA9F333D00E2E3AF0E0E830D086 +S1130D7091505040E695001CCAF729D0FE2F27D089 +S1130D80660F771F881FBB1F261737074807AB0757 +S1130D90B0E809F0BB0B802DBF01FF2793585F4FCC +S1130DA02AF09E3F510568F0B1C0FBC05F3FECF3F1 +S1130DB0983EDCF3869577956795B795F7959F5F91 +S1130DC0C9F7880F911D9695879597F90895E1E0E5 +S1130DD0660F771F881FBB1F621773078407BA0744 +S1130DE020F0621B730B840BBA0BEE1F88F7E0959F +S1130DF00895BCD088F09F5790F0B92F9927B75128 +S1130E00A0F0D1F0660F771F881F991F1AF0BA95CA +S1130E10C9F712C0B13081F0C3D0B1E00895C0C0A9 +S1130E20672F782F8827B85F39F0B93FCCF38695C0 +S1130E3077956795B395D9F73EF49095809570951D +S1130E4061957F4F8F4F9F4F0895E89409C097FB9A +S1130E503EF490958095709561957F4F8F4F9F4F8D +S1130E609923A9F0F92F96E9BB279395F6958795D1 +S1130E7077956795B795F111F8CFFAF4BB0F11F494 +S1130E8060FF1BC06F5F7F4F8F4F9F4F16C088233B +S1130E9011F096E911C0772321F09EE8872F762F71 +S1130EA005C0662371F096E8862F70E060E02AF0B2 +S1130EB09A95660F771F881FDAF7880F969587959E +S1130EC097F90895990F0008550FAA0BE0E8FEEF73 +S1130ED016161706E807F907C0F012161306E407FA +S1130EE0F50798F0621B730B840B950B39F40A26F3 +S1130EF061F0232B242B252B21F408950A2609F4D1 +S1130F00A140A6958FEF811D811D089597F99F67D4 +S1130F1080E870E060E008959FEF80EC089500247D +S1130F200A941616170618060906089500240A944A +S1130F3012161306140605060895092E0394000CD0 +S1130F4011F4882352F0BB0F40F4BF2B11F460FF5F +S1130F5004C06F5F7F4F8F4F9F4F089557FD905888 +S1130F60440F551F59F05F3F71F04795880F97FB69 +S1130F70991F61F09F3F79F0879508951216130623 +S1130F801406551FF2CF4695F1DF08C01616170652 +S1130F901806991FF1CF8695710561050894089587 +S1130FA0E894BB2766277727CB0197F908958ADF52 +S1130FB008F48FEF08950BD0C0CFB1DF28F0B6DF6F +S1130FC018F0952309F0A2CFA7CF1124EACFC6DFEA +S1130FD0A0F3959FD1F3950F50E0551F629FF00148 +S1130FE0729FBB27F00DB11D639FAA27F00DB11DA1 +S1130FF0AA1F649F6627B00DA11D661F829F22272A +S1131000B00DA11D621F739FB00DA11D621F839FB0 +S1131010A00D611D221F749F3327A00D611D231F86 +S1131020849F600D211D822F762F6A2F11249F57D4 +S113103050408AF0E1F088234AF0EE0FFF1FBB1FF7 +S1131040661F771F881F91505040A9F79E3F510596 +S113105070F05CCFA6CF5F3FECF3983EDCF386954F +S113106077956795B795F795E7959F5FC1F7FE2B41 +S1131070880F911D9695879597F90895EE0FFF1F98 +S11310800590F491E02D0994EF920F931F93CF9361 +S1131090C02F47FF02C034E101C034E0E42FFF2732 +S11310A0E7FDF095F7FF03C0F195E195F109E32E13 +S11310B0022F2E2F4C2F512F0E947B088C2F912F03 +S11310C0CF911F910F91EF900895FB019F01423042 +S11310D074F0453264F4642F77270E94E00A805D3F +S11310E08A330CF0895D8193CB010097A1F71082BC +S11310F0C9010C94D00A6F927F929F92AF92BF92D3 +S1131100CF92DF92EF92FF920F931F93CF93DF93CF +S1131110CDB7DEB729970FB6F894DEBF0FBECDBFAB +S11311206A01B22E102F0C3318F4F02EF39402C07F +S11311305CE3F52E0F2D27E0AE014F5F5F4F0E9459 +S1131140F8097981272F2970213031F0E1FC06C09C +S1131150E0FE06C060E205C06DE203C06BE201C0C0 +S113116060E073FF3DC0662311F084E001C083E0BA +S11311708B1510F4B81A01C0B12CE4FC0BC08B2DF4 +S1131180F60190E202C0919381508111FCCFCB0C07 +S1131190D11CB12C662319F0D6016D936D01E2FECA +S11311A00AC08EE4F601808391E491838283F3E0A4 +S11311B0CF0ED11C0CC08EE6D6018C9391E611960D +S11311C09C93119712968C93B3E0CB0ED11C8B2D6C +S11311D0F60190E202C0919381508111FCCF40C08E +S11311E072FF45C0662311F084E001C083E08B15D3 +S11311F010F4B81A01C0B12CE4FC0BC08B2DF6011D +S113120090E202C0919381508111FCCFCB0CD11C90 +S1131210B12C662319F0F60161936F01E2FE0EC052 +S113122089E4D6018C938EE411968C93119786E40D +S113123012968C93B3E0CB0ED11C0AC089E6F6015A +S113124080838EE6818386E68283F3E0CF0ED11C11 +S11312508B2DF60190E202C0919381508111FCCF55 +S1131260F601EB0DF11D10822EEF3FEFACC0A1E0B3 +S1131270611101C0A0E04A2F50E01816190624F4A9 +S11312809C012F5F3F4F02C021E030E0240F351F47 +S1131290112329F0412F50E04F5F5F4F02C040E01F +S11312A050E0420F531F2B2D30E04217530714F424 +S11312B0B41A01C0B12C3E2D3071E4FC0DC0E3FC26 +S11312C00BC02B2DF60140E202C0419321502111A5 +S11312D0FCCFCB0CD11CB12CAA2319F0D6016D93F1 +S11312E06D0131110BC02B2DF60130E302C0319397 +S11312F021502111FCCFCB0CD11CB12CF80E0A814A +S113130040E1A42EA72274FF03C0013309F4FA9428 +S11313101F142CF42F2D293018F028E001C021E0EF +S1131320AC0197FF02C040E050E060E070E03EE2B4 +S1131330932EFC01E21BF1099F01DC01A41BB50BF8 +S1131340FE013196EA0FFB1FA12FB0E0662477243B +S11313506A1A7B0A4F3F1FEF510719F4D6019D9279 +S11313606D018417950754F0241735073CF47F0169 +S1131370E60EF71ED70111961C9101C010E34150EF +S113138051096F5F7F4F4615570524F0D6011D9311 +S11313906D01E0CF4817590739F4063320F40533BB +S11313A019F4A11001C011E3F60111938B2DDF0193 +S11313B090E202C09D9381508111FCCFEB0DF11D91 +S11313C0108220E030E0C90129960FB6F894DEBF00 +S11313D00FBECDBFDF91CF911F910F91FF90EF9082 +S11313E0DF90CF90BF90AF909F907F906F900895C3 +S11313F0283008F027E03327DA01990F311D87FDE3 +S1131400916000966105710539F432602E5F3D9359 +S113141030E32A95E1F708959F3F30F08038710555 +S1131420610509F03C5F3C5F3D93913008F08068B2 +S1131430911DDF93CF931F930F93FF92EF92192F78 +S1131440987F9695E92F96959695E90FFF27E25593 +S1131450FF4F99273327EE24FF24A701E7010590C6 +S11314600894079428F4360FE71EF81E491F511DEF +S1131470660F771F881F991F0694A1F7059007949C +S113148028F4E70EF81E491F561FC11D770F881F49 +S1131490991F661F0694A1F70590079428F4F80E87 +S11314A0491F561FC71FD11D880F991F661F771F1D +S11314B00694A1F70590079420F4490F561FC71FFF +S11314C0D81F990F661F771F881F0694A9F7849168 +S11314D01095177041F0D695C79557954795F79491 +S11314E0E7941A95C1F7E4E5F0E068941590159136 +S11314F035916591959105907FE27395E118F10A14 +S1131500430B560BC90BD009C0F7E10CF11E431F66 +S1131510561FC91FD01D7EF4703311F48A95E6CF8F +S1131520E894015030F0080F0AF40027021708F479 +S1131530202F2395022F7A3328F079E37D932A957F +S1131540E9F710C07D932A9589F6069497956795D7 +S1131550379517951794E118F10A430B560BC90BED +S1131560D00998F023957E9173957A3308F070E34F +S11315707C932013B8F77E9170617D9330F083954E +S113158071E37D9370E32A95E1F71124EF90FF90C6 +S11315900F911F91CF91DF91992787FD9095089521 +S11315A0DC01FC01672F71917723E1F7329704C0C6 +S11315B07C916D9370836291AE17BF07C8F3089551 +S11315C0AA1BBB1B51E107C0AA1FBB1FA617B70765 +S11315D010F0A61BB70B881F991F5A95A9F7809581 +S10F15E09095BC01CD010895F894FFCF54 +S11315EC1F00FC01C80080011F00F801C800700135 +S11315FC00000000000000000000000000000000DB +S113160C00000000000000000000000000000000CA +S113161C2323232320426567696E20426F6F747500 +S113162C7020232323232323232323232323232330 +S113163C232323232323232323232323232323236A +S113164C23232323232323232323230A0023205468 +S113165C657374204F75747075740A002320536578 +S113166C7475702054696D65720A002323204F75BC +S113167C7470757420496E697420446F6E65210A08 +S113168C002323232320456E6420426F6F747570EE +S113169C202323232323232323232323232323230D +S11316AC23232323232323232323232323232323FA +S11316BC2323232323232323232323230A00232029 +S11316CC5365747570204144430A00232053657498 +S11316DC757020427574746F6E0A006D6F6E3D30B8 +S11316EC3B006D6F6E3D313B00636D3D0076303DCC +S11316FC0076313D0063303D0063313D00686F6E10 +S113170C3D303B0070776D3D005561727420646F01 +S109171C6E65210A0000C5 S9030000FC diff --git a/USBLaminator/USBLaminator/USBLaminator.cpp b/USBLaminator/USBLaminator/USBLaminator.cpp index 52859a9..962b249 100644 --- a/USBLaminator/USBLaminator/USBLaminator.cpp +++ b/USBLaminator/USBLaminator/USBLaminator.cpp @@ -38,12 +38,17 @@ void setup() int main(void) { setup(); - int16_t target_temp = 25; + int16_t target_temp = 20; float pwm_value = 0; while(1) { uint16_t v0 = a.get(0); uint16_t v1 = a.get(1); + if(v0 > 1000 || v1 > 1000 || v0 < 5 || v1 < 5) { + l.on(l.RED); + o.stop(); + while(true) {}; + } float t0 = a.convert(v0, 0); float t1 = a.convert(v1, 1); float tm = (t0+t1)/2; @@ -58,8 +63,8 @@ int main(void) r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); - r.send("c1="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); - r.send("c2="); r.send(dtostrf(t1, 10, 2, cs)); r.send(";"); + r.send("c0="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); + r.send("c1="); r.send(dtostrf(t1, 10, 2, cs)); r.send(";"); //temp_ziel_wert //motor_ziel_wert r.send((o.isOn(0)==1)?"hon=1;":"hon=0;"); diff --git a/USBLaminator/USBLaminator/io/ADC.hpp b/USBLaminator/USBLaminator/io/ADC.hpp index fe895a1..fe4a576 100644 --- a/USBLaminator/USBLaminator/io/ADC.hpp +++ b/USBLaminator/USBLaminator/io/ADC.hpp @@ -32,8 +32,14 @@ class Adc { return ADCW; } float convert(uint16_t v, uint8_t pin) { - float m=((this->table[pin][0]-this->table[pin][2])/(this->table[pin][1]-this->table[pin][3])); - return (m * (float)v) + (-m * (float)this->table[pin][1]) + this->table[pin][0]; + float c1 = this->table[pin][0]; + float v1 = this->table[pin][1]; + + float c2 = this->table[pin][2]; + float v2 = this->table[pin][3]; + float m = ((c1 - c2) / (v1 - v2)); + + return (m * (float)v) + (-m * v1) + c1; } private: void init() { @@ -45,8 +51,8 @@ class Adc { } } const uint16_t table[6][4] = { - {26, 144, 180, 84}, //ADC-Wert=144 @ 26°C, 84 @ 180°C - {26, 144, 180, 84}, //ADC-Wert=144 @ 26°C, 84 @ 180°C + {31, 508, 200, 384}, //ADC-Wert=520 @ 31°C, 84 @ 180°C + {31, 504, 200, 368}, //ADC-Wert=144 @ 26°C, 84 @ 180°C {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, diff --git a/USBLaminator/USBLaminator/io/SSR.hpp b/USBLaminator/USBLaminator/io/SSR.hpp index 92d48a0..f291cb5 100644 --- a/USBLaminator/USBLaminator/io/SSR.hpp +++ b/USBLaminator/USBLaminator/io/SSR.hpp @@ -169,6 +169,9 @@ class SSR { } //out1::toggle(); } + void stop() { + pwm[0] = 0; pwm[1] = 0; pwm[2] = 0; pwm[3] = 0; pwm[4] = 0; pwm[5] = 0; pwm[6] = 0; + } static const uint8_t OUT1 = (1<<0); static const uint8_t OUT2 = (1<<1); static const uint8_t OUT3 = (1<<2); diff --git a/USBLaminator/USBLaminator/io/button.hpp b/USBLaminator/USBLaminator/io/button.hpp index 6311030..f10944c 100644 --- a/USBLaminator/USBLaminator/io/button.hpp +++ b/USBLaminator/USBLaminator/io/button.hpp @@ -26,7 +26,7 @@ class Button { } void intr() { GIFR = (1<