diff --git a/Microcontrollers/.vs/Microcontrollers/v14/.atsuo b/Microcontrollers/.vs/Microcontrollers/v14/.atsuo index f218ffd..1989831 100644 Binary files a/Microcontrollers/.vs/Microcontrollers/v14/.atsuo and b/Microcontrollers/.vs/Microcontrollers/v14/.atsuo differ diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.elf b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.elf index 154c743..6ba9eb7 100644 Binary files a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.elf and b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.elf differ diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.hex b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.hex index 886889b..0036bf2 100644 --- a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.hex +++ b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.hex @@ -1,16 +1,16 @@ -:1000000045C0000049C100005EC000005CC00000A7 +:1000000045C0000060C000005EC0000063C1000089 :100010005AC0000058C0000056C0000054C0000084 -:1000200052C0000092C100004EC000004CC0000051 +:1000200052C00000BFC100004EC000004CC0000024 :100030004AC0000048C0000046C0000044C00000A4 :1000400042C0000040C000003EC000003CC00000B4 :100050003AC0000038C0000036C0000034C00000C4 :1000600032C0000030C000002EC000002CC00000D4 :100070002AC0000028C0000026C0000024C00000E4 :1000800022C0000020C000001EC0000011241FBEBE -:10009000CFEFD0E1DEBFCDBF11E0A0E0B1E0EEEDEB -:1000A000FAE000E00BBF02C007900D92A631B10745 -:1000B000D9F721E0A6E1B1E001C01D92A232B2075A -:1000C000E1F711D10AC59CCF9BB321E030E002C01B +:10009000CFEFD0E1DEBFCDBF11E0A0E0B1E0E2E301 +:1000A000FDE000E00BBF02C007900D92A033B10746 +:1000B000D9F721E0A0E3B1E001C01D92AC33B20753 +:1000C000E1F72FD134C69CCF9BB321E030E002C0D2 :1000D000220F331F8A95E2F7292B2BBB08959BB380 :1000E00021E030E002C0220F331F8A95E2F720950D :1000F00029232BBB089586E090E0E6DF83EC99E0AE @@ -26,152 +26,191 @@ :1001900015BAB1DF80EF85BBAEDF15BAACDF80E604 :1001A00085BBA9DF82E0CADFA6DFCF910895CF9398 :1001B000DF93EC0102C0B2DF219688818111FBCF71 -:1001C000DF91CF910895AF92BF92CF92DF92EF92DD -:1001D000FF920F931F93CF93DF93CDB7DEB7D82E47 -:1001E000C92EADB6BEB69F938F930F2EF2E1EF2EC0 -:1001F000F1E0FF2EF02DFF92EF921F921F921F92BF -:100200001F9282D101962DB73EB7285F3F4F0FB6A0 -:10021000F8943EBF0FBE2DBF281B390B0FB6F894C4 -:100220003EBF0FBE2DBF0DB71EB70F5F1F4FCF9242 -:10023000DF92FF92EF929F938F931F930F9364D15E -:10024000802F912FB4DF8DB79EB708960FB6F89424 -:100250009EBF0FBE8DBF0FB6F894BEBE0FBEADBE23 -:10026000DF91CF911F910F91FF90EF90DF90CF9092 -:10027000BF90AF90089520910001222351F0019783 -:10028000439738F4D1D01092000161E080E092E011 -:10029000BEC0089504C108951F920F920FB60F9229 -:1002A00011240BB60F922F933F934F935F936F934D -:1002B0007F938F939F93AF93BF93EF93FF93FCD064 -:1002C000FF91EF91BF91AF919F918F917F916F912E -:1002D0005F914F913F912F910F900BBE0F900FBEEA -:1002E0000F901F901895CCD044DFA0D08AE491E005 -:1002F00027D08BE391E0FED087EA91E60197F1F7F2 -:1003000000C000002BDF60E088E592E080D026DFAF -:10031000F6D059DF84E690E0A4D0F9CF90911D018A -:10032000911107C0E82FF0E0EF5FFE4F808183B9A5 -:100330000895E82FF0E0E75FFE4F808183B90895CC -:1003400090931F0180931E0108951F920F920FB684 -:100350000F9211240BB60F922F933F934F935F93FD -:100360006F937F938F939F93AF93BF93EF93FF937D -:1003700014BC80911601D2DF80911601873020F4E1 -:100380008F5F8093160130C0109216018091170183 -:1003900090911801009799F480911D01811104C07A -:1003A00081E080931D0102C010921D01809119010E -:1003B00090911A01909318018093170115C09C0128 -:1003C0002F713327232B39F4E0911E01F0911F0187 -:1003D000309709F0099580911701909118010197C4 -:1003E0009093180180931701FF91EF91BF91AF9106 -:1003F0009F918F917F916F915F914F913F912F913D -:100400000F900BBE0F900FBE0F901F9018959093FA -:1004100018018093170190931A018093190160933A -:100420001D018CE085BD089515BC08958FEF82B93C -:100430008093640081E08093650013B886E983BDF2 -:1004400080E887BF7894089520E030E006C043E05C -:100450004A95F1F700002F5F3F4F28173907B8F38F -:10046000089520E030E008C0E3ECF9E03197F1F7BF -:1004700000C000002F5F3F4F28173907A8F30895E9 -:100480008FEF8093640011BA83E080936A0089B78C -:10049000816089BF1FBC8CE08EBD78940895CF9396 -:1004A000DF93C5E6D0E018828AE090E0CDDF81E0FE -:1004B0008883DF91CF91089580911101813041F4BB -:1004C00082E080936A001DBC1CBC1092110108954B -:1004D00083E080936A008CB59DB590931C01809356 -:1004E0001B01E0912001F0912101099581E08093A9 -:1004F0001101089590932101809320010895809126 -:100500001B0190911C0108950F931F93CF93DF93CC -:10051000CDB7DEB72E970FB6F894DEBF0FBECDBFB6 -:100520000D891E898F89988D26E02C831A83098373 -:1005300097FF02C080E090E801979E838D83AE0113 -:10054000455E5F4F698D7A8DCE01019619D04D8140 -:100550005E8157FD0AC02F813885421753070CF47E -:100560009A01F801E20FF31F10822E960FB6F8944D -:10057000DEBF0FBECDBFDF91CF911F910F910895C8 -:100580002F923F924F925F926F927F928F929F92A3 -:10059000AF92BF92CF92DF92EF92FF920F931F9391 -:1005A000CF93DF93CDB7DEB72B970FB6F894DEBFAE -:1005B0000FBECDBF6C017B018A01FC011782168240 -:1005C000838181FFBFC1CE0101963C01F601938179 -:1005D000F70193FD859193FF81917F01882309F4B1 -:1005E000ADC1853239F493FD859193FF81917F01EF -:1005F000853221F4B60190E0D6D1E8CF912C212CA0 -:10060000312CFFE1F315D8F08B3279F038F48032D9 -:1006100079F08332A1F4232D20611DC08D3261F069 -:10062000803369F4232D216016C0832D8260382E1B -:10063000E32DE4603E2E2AC0F32DF8601DC037FC88 -:100640002DC020ED280F2A3040F08E32B9F436FC50 -:1006500075C1232D2064322E19C036FE06C08AE0F3 -:10066000989E200D1124922E11C0EAE02E9E200D9E -:100670001124222EF32DF0623F2E08C08C3621F477 -:10068000832D8068382E02C0883641F4F70193FD2F -:10069000859193FF81917F018111B3CF982F9F7D29 -:1006A0009554933028F40C5F1F4F9FE399830DC03E -:1006B000833631F0833771F0833509F055C020C09F -:1006C000F801808189830E5F1F4F88248394912CC9 -:1006D000530112C02801F2E04F0E511CF801A08016 -:1006E000B18036FE03C0692D70E002C06FEF7FEF6E -:1006F000C5014ED14C018201F32DFF773F2E15C06D -:10070000280122E0420E511CF801A080B18036FE83 -:1007100003C0692D70E002C06FEF7FEFC5012DD1DE -:100720004C01F32DF0683F2E820133FC19C0822D5D -:1007300090E088169906A0F4B60180E290E033D1EB -:100740002A94F5CFF50137FC859137FE81915F0141 -:10075000B60190E028D121102A9421E0821A910854 -:100760008114910479F7E1C0843611F0893639F5A6 -:10077000F80137FE07C060817181828193810C5F2F -:100780001F4F08C060817181072E000C880B990BE8 -:100790000E5F1F4FF32DFF763F2E97FF09C09095F8 -:1007A0008095709561957F4F8F4F9F4FF0683F2EDA -:1007B0002AE030E0A30133D1882E861844C0853763 -:1007C00031F4232D2F7EB22E2AE030E025C0932D68 -:1007D000997FB92E8F36C1F018F4883579F0AEC004 -:1007E000803719F0883721F0A9C0E92FE061BE2ECB -:1007F000B4FE0DC0FB2DF460BF2E09C034FE0AC04C -:10080000292F2660B22E06C028E030E005C020E186 -:1008100030E002C020E132E0F801B7FE07C060819D -:100820007181828193810C5F1F4F06C0608171814D -:1008300080E090E00E5F1F4FA301F1D0882E861854 -:10084000FB2DFF773F2E36FE0DC0232D2E7FA22ECF -:10085000891458F434FE0BC032FC09C0832D8E7EFF -:10086000A82E05C0B82CA32C03C0B82C01C0B92CED -:10087000A4FE0FC0FE01E80DF11D8081803321F43C -:100880009A2D997EA92E09C0A2FE06C0B394B394F6 -:1008900004C08A2D867809F0B394A3FC10C0A0FE92 -:1008A00006C0B21480F4280C922C9B180DC0B21410 -:1008B00058F4B60180E290E076D0B394F8CFB21449 -:1008C00018F42B1802C0982C212CA4FE0FC0B601DE -:1008D00080E390E068D0A2FE16C0A1FC03C088E7C8 -:1008E00090E002C088E590E0B6010CC08A2D8678C1 -:1008F00051F0A1FE02C08BE201C080E2A7FC8DE2B4 -:10090000B60190E050D0891430F4B60180E390E055 -:100910004AD09A94F8CF8A94F301E80DF11D8081B2 -:10092000B60190E040D08110F6CF222009F44ECEDF -:10093000B60180E290E037D02A94F7CFF6018681A5 -:10094000978102C08FEF9FEF2B960FB6F894DEBF12 -:100950000FBECDBFDF91CF911F910F91FF90EF9010 -:10096000DF90CF90BF90AF909F908F907F906F90CF -:100970005F904F903F902F900895FC01059061503B -:1009800070400110D8F7809590958E0F9F1F0895A5 -:10099000FC016150704001900110D8F7809590954E -:1009A0008E0F9F1F08950F931F93CF93DF93FB012B -:1009B000238121FD03C08FEF9FEF2CC022FF16C0C3 -:1009C00046815781248135814217530744F4A08121 -:1009D000B1819D012F5F3F4F318320838C9326810E -:1009E00037812F5F3F4F3783268314C08B01EC0183 -:1009F000FB010084F185E02D0995892BE1F6D801F2 -:100A000016968D919C911797019617969C938E93AD -:100A10001697CE01DF91CF911F910F910895FA01A2 -:100A2000AA27283051F1203181F1E8946F936E7F2D -:100A30006E5F7F4F8F4F9F4FAF4FB1E03ED0B4E01E -:100A40003CD0670F781F891F9A1FA11D680F791F5F -:100A50008A1F911DA11D6A0F711D811D911DA11D70 -:100A600020D009F468943F912AE0269F1124301980 -:100A7000305D3193DEF6CF010895462F4770405D1B -:100A80004193B3E00FD0C9F7F6CF462F4F70405DCA -:100A90004A3318F0495D31FD4052419302D0A9F725 -:100AA000EACFB4E0A6959795879577956795BA951F -:100AB000C9F700976105710508959B01AC010A2EE5 -:100AC00006945795479537952795BA95C9F7620FBC -:0E0AD000731F841F951FA01D0895F894FFCF7B -:100ADE0001080C0406020301090901030206040CB5 -:060AEE0008012564000070 +:1001C000DF91CF9108954F925F926F927F928F92BD +:1001D0009F92AF92BF92CF92DF92EF92FF920F93D6 +:1001E0001F93CF93DF93CDB7DEB7D82EC92E942EB1 +:1001F000852E762E672E522E432EADB6BEB63F9379 +:100200002F937F936F935F934F939F938F930F2EB3 +:10021000F5E1EF2EF1E0FF2EF02DFF92EF921F920D +:100220001F921F921F929AD201962DB73EB7225F5E +:100230003F4F0FB6F8943EBF0FBE2DBF281B390BA2 +:100240000FB6F8943EBF0FBE2DBF0DB71EB70F5FA0 +:100250001F4F4F925F926F927F928F929F92CF9299 +:10026000DF92FF92EF929F938F931F930F9376D21B +:10027000802F912F9CDF8DB79EB70E960FB6F89406 +:100280009EBF0FBE8DBF0FB6F894BEBE0FBEADBEF3 +:10029000DF91CF911F910F91FF90EF90DF90CF9062 +:1002A000BF90AF909F908F907F906F905F904F9096 +:1002B000089520910001222351F00197439738F4CB +:1002C000E0D01092000161E080E092E0CDC008959E +:1002D00013C108951F920F920FB60F9211240BB6FF +:1002E0000F922F933F934F935F936F937F938F93CF +:1002F0009F93AF93BF93EF93FF930BD1FF91EF9138 +:10030000BF91AF919F918F917F916F915F914F912D +:100310003F912F910F900BBE0F900FBE0F901F902B +:100320001895DBD026DFAFD088E691E036D089E59E +:1003300091E00DD187EA91E60197F1F700C0000046 +:100340000DDF60E088E592E08FD008DF05D1BC01C9 +:1003500080E090E075D120E030E04AE754E408D135 +:10036000AB01BC0121E231E084E291E02CDF84E6C4 +:1003700090E0A4D0EACF90913701911107C0E82F07 +:10038000F0E0EF5FFE4F808183B90895E82FF0E041 +:10039000E75FFE4F808183B9089590933901809380 +:1003A000380108951F920F920FB60F9211240BB6C9 +:1003B0000F922F933F934F935F936F937F938F93FE +:1003C0009F93AF93BF93EF93FF9314BC8091300141 +:1003D000D2DF80913001873020F48F5F809330012D +:1003E00030C010923001809131019091320100971C +:1003F00099F480913701811104C081E08093370125 +:1004000002C0109237018091330190913401909392 +:1004100032018093310115C09C012F713327232BAA +:1004200039F4E0913801F0913901309709F00995DC +:100430008091310190913201019790933201809324 +:100440003101FF91EF91BF91AF919F918F917F917A +:100450006F915F914F913F912F910F900BBE0F9035 +:100460000FBE0F901F901895909332018093310129 +:100470009093340180933301609337018CE085BD04 +:10048000089515BC08958FEF82B98093640081E0D0 +:100490008093650013B886E983BD80E887BF7894B0 +:1004A000089520E030E006C043E04A95F1F70000EF +:1004B0002F5F3F4F28173907B8F3089520E030E049 +:1004C00008C0E3ECF9E03197F1F700C000002F5FBE +:1004D0003F4F28173907A8F308958FEF80936400E2 +:1004E00011BA80E380936A0089B7846089BF1FBC1A +:1004F0008CE08EBD78940895CF93DF93C5E6D0E06D +:1005000018828AE090E0CDDF81E08883DF91CF918F +:10051000089580911101813041F480E280936A0056 +:100520001DBC1CBC10921101089580E380936A00E9 +:100530008CB59DB59093360180933501E0913A01D9 +:10054000F0913B01099581E080931101089590930A +:100550003B0180933A0108958091350190913601D5 +:100560002AEAAC01249FC001259F900D1124089513 +:100570000CD0BAC0B2D040F0A9D030F021F45F3F27 +:1005800019F09BC05111E4C09EC0BFD098F39923CD +:10059000C9F35523B1F3951B550BBB27AA27621747 +:1005A0007307840738F09F5F5F4F220F331F441F8C +:1005B000AA1FA9F333D00E2E3AF0E0E830D09150C4 +:1005C0005040E695001CCAF729D0FE2F27D0660FB1 +:1005D000771F881FBB1F261737074807AB07B0E8F0 +:1005E00009F0BB0B802DBF01FF2793585F4F2AF006 +:1005F0009E3F510568F061C0ABC05F3FECF3983E91 +:10060000DCF3869577956795B795F7959F5FC9F762 +:10061000880F911D9695879597F90895E1E0660FEB +:10062000771F881FBB1F621773078407BA0720F064 +:10063000621B730B840BBA0BEE1F88F7E0950895CD +:10064000E89409C097FB3EF490958095709561956C +:100650007F4F8F4F9F4F9923A9F0F92F96E9BB2722 +:100660009395F695879577956795B795F111F8CF9E +:10067000FAF4BB0F11F460FF1BC06F5F7F4F8F4F09 +:100680009F4F16C0882311F096E911C0772321F0FF +:100690009EE8872F762F05C0662371F096E8862F97 +:1006A00070E060E02AF09A95660F771F881FDAF7EE +:1006B000880F9695879597F9089597F99F6780E831 +:1006C00070E060E008959FEF80EC089500240A94A4 +:1006D0001616170618060906089500240A9412161D +:1006E0001306140605060895092E0394000C11F450 +:1006F000882352F0BB0F40F4BF2B11F460FF04C0FD +:100700006F5F7F4F8F4F9F4F089557FD9058440F55 +:10071000551F59F05F3F71F04795880F97FB991F60 +:1007200061F09F3F79F0879508951216130614061D +:10073000551FF2CF4695F1DF08C0161617061806AA +:10074000991FF1CF86957105610508940895E89485 +:10075000BB2766277727CB0197F908950F931F933F +:10076000CF93DF93CDB7DEB72E970FB6F894DEBFE9 +:100770000FBECDBF0D891E898F89988D26E02C83F1 +:100780001A83098397FF02C080E090E801979E8357 +:100790008D83AE01455E5F4F698D7A8DCE010196E6 +:1007A00019D04D815E8157FD0AC02F8138854217CF +:1007B00053070CF49A01F801E20FF31F10822E96F2 +:1007C0000FB6F894DEBF0FBECDBFDF91CF911F9162 +:1007D0000F9108952F923F924F925F926F927F9266 +:1007E0008F929F92AF92BF92CF92DF92EF92FF9241 +:1007F0000F931F93CF93DF93CDB7DEB72B970FB631 +:10080000F894DEBF0FBECDBF6C017B018A01FC01F5 +:1008100017821682838181FFBFC1CE0101963C0100 +:10082000F6019381F70193FD859193FF81917F01FB +:10083000882309F4ADC1853239F493FD859193FF86 +:1008400081917F01853221F4B60190E0D6D1E8CFC5 +:10085000912C212C312CFFE1F315D8F08B3279F05B +:1008600038F4803279F08332A1F4232D20611DC049 +:100870008D3261F0803369F4232D216016C0832D01 +:100880008260382EE32DE4603E2E2AC0F32DF860FE +:100890001DC037FC2DC020ED280F2A3040F08E32CD +:1008A000B9F436FC75C1232D2064322E19C036FEF2 +:1008B00006C08AE0989E200D1124922E11C0EAE015 +:1008C0002E9E200D1124222EF32DF0623F2E08C003 +:1008D0008C3621F4832D8068382E02C0883641F48E +:1008E000F70193FD859193FF81917F018111B3CF32 +:1008F000982F9F7D9554933028F40C5F1F4F9FE3F2 +:1009000099830DC0833631F0833771F0833509F058 +:1009100055C020C0F801808189830E5F1F4F882455 +:100920008394912C530112C02801F2E04F0E511C08 +:10093000F801A080B18036FE03C0692D70E002C0CE +:100940006FEF7FEFC5014ED14C018201F32DFF7790 +:100950003F2E15C0280122E0420E511CF801A08054 +:10096000B18036FE03C0692D70E002C06FEF7FEFEB +:10097000C5012DD14C01F32DF0683F2E820133FCCF +:1009800019C0822D90E088169906A0F4B60180E285 +:1009900090E033D12A94F5CFF50137FC859137FEED +:1009A00081915F01B60190E028D121102A9421E0C5 +:1009B000821A91088114910479F7E1C0843611F00C +:1009C000893639F5F80137FE07C06081718182816F +:1009D00093810C5F1F4F08C060817181072E000C4E +:1009E000880B990B0E5F1F4FF32DFF763F2E97FF5D +:1009F00009C090958095709561957F4F8F4F9F4F5F +:100A0000F0683F2E2AE030E0A30133D1882E86180B +:100A100044C0853731F4232D2F7EB22E2AE030E0FA +:100A200025C0932D997FB92E8F36C1F018F48835E3 +:100A300079F0AEC0803719F0883721F0A9C0E92FCE +:100A4000E061BE2EB4FE0DC0FB2DF460BF2E09C0C8 +:100A500034FE0AC0292F2660B22E06C028E030E0FE +:100A600005C020E130E002C020E132E0F801B7FE2D +:100A700007C060817181828193810C5F1F4F06C026 +:100A80006081718180E090E00E5F1F4FA301F1D083 +:100A9000882E8618FB2DFF773F2E36FE0DC0232DA6 +:100AA0002E7FA22E891458F434FE0BC032FC09C0EC +:100AB000832D8E7EA82E05C0B82CA32C03C0B82C85 +:100AC00001C0B92CA4FE0FC0FE01E80DF11D80810C +:100AD000803321F49A2D997EA92E09C0A2FE06C06A +:100AE000B394B39404C08A2D867809F0B394A3FC20 +:100AF00010C0A0FE06C0B21480F4280C922C9B18E3 +:100B00000DC0B21458F4B60180E290E076D0B394F0 +:100B1000F8CFB21418F42B1802C0982C212CA4FE84 +:100B20000FC0B60180E390E068D0A2FE16C0A1FC21 +:100B300003C088E790E002C088E590E0B6010CC0F1 +:100B40008A2D867851F0A1FE02C08BE201C080E2BE +:100B5000A7FC8DE2B60190E050D0891430F4B601C4 +:100B600080E390E04AD09A94F8CF8A94F301E80D9C +:100B7000F11D8081B60190E040D08110F6CF222097 +:100B800009F44ECEB60180E290E037D02A94F7CF38 +:100B9000F6018681978102C08FEF9FEF2B960FB6EB +:100BA000F894DEBF0FBECDBFDF91CF911F910F91A3 +:100BB000FF90EF90DF90CF90BF90AF909F908F907D +:100BC0007F906F905F904F903F902F900895FC0121 +:100BD0000590615070400110D8F7809590958E0F68 +:100BE0009F1F0895FC016150704001900110D8F7DB +:100BF000809590958E0F9F1F08950F931F93CF930D +:100C0000DF93FB01238121FD03C08FEF9FEF2CC0F9 +:100C100022FF16C046815781248135814217530730 +:100C200044F4A081B1819D012F5F3F4F3183208328 +:100C30008C93268137812F5F3F4F3783268314C0E3 +:100C40008B01EC01FB010084F185E02D0995892BD6 +:100C5000E1F6D80116968D919C91179701961796FB +:100C60009C938E931697CE01DF91CF911F910F9198 +:100C70000895FA01AA27283051F1203181F1E89432 +:100C80006F936E7F6E5F7F4F8F4F9F4FAF4FB1E07F +:100C90003ED0B4E03CD0670F781F891F9A1FA11D7A +:100CA000680F791F8A1F911DA11D6A0F711D811D7B +:100CB000911DA11D20D009F468943F912AE0269F40 +:100CC00011243019305D3193DEF6CF010895462F9F +:100CD0004770405D4193B3E00FD0C9F7F6CF462F80 +:100CE0004F70405D4A3318F0495D31FD40524193E9 +:100CF00002D0A9F7EACFB4E0A695979587957795A6 +:100D00006795BA95C9F700976105710508959B012C +:100D1000AC010A2E06945795479537952795BA95B5 +:100D2000C9F7620F731F841F951FA01D0895F894C3 +:020D3000FFCFF3 +:100D320001080C0406020301090901030206040C5E +:100D4200080125640025733A20252E336620257379 +:100D520000636D0064697374616E63653A2000001C :00000001FF diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.lss b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.lss index d3ddaec..c87106b 100644 --- a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.lss +++ b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.lss @@ -3,31 +3,31 @@ Eindopdracht.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .data 00000016 00800100 00000ade 00000b72 2**0 + 0 .data 00000030 00800100 00000d32 00000dc6 2**0 CONTENTS, ALLOC, LOAD, DATA - 1 .text 00000ade 00000000 00000000 00000094 2**1 + 1 .text 00000d32 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .bss 0000000c 00800116 00800116 00000b88 2**0 + 2 .bss 0000000c 00800130 00800130 00000df6 2**0 ALLOC - 3 .comment 0000005c 00000000 00000000 00000b88 2**0 + 3 .comment 0000005c 00000000 00000000 00000df6 2**0 CONTENTS, READONLY - 4 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 00000be4 2**2 + 4 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 00000e54 2**2 CONTENTS, READONLY - 5 .debug_aranges 00000148 00000000 00000000 00000c20 2**0 + 5 .debug_aranges 00000150 00000000 00000000 00000e90 2**0 CONTENTS, READONLY, DEBUGGING - 6 .debug_info 000014e2 00000000 00000000 00000d68 2**0 + 6 .debug_info 000015be 00000000 00000000 00000fe0 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_abbrev 00000d38 00000000 00000000 0000224a 2**0 + 7 .debug_abbrev 00000d47 00000000 00000000 0000259e 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_line 00000aaa 00000000 00000000 00002f82 2**0 + 8 .debug_line 00000aef 00000000 00000000 000032e5 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_frame 00000318 00000000 00000000 00003a2c 2**2 + 9 .debug_frame 0000037c 00000000 00000000 00003dd4 2**2 CONTENTS, READONLY, DEBUGGING - 10 .debug_str 00000754 00000000 00000000 00003d44 2**0 + 10 .debug_str 000007c1 00000000 00000000 00004150 2**0 CONTENTS, READONLY, DEBUGGING - 11 .debug_loc 0000068c 00000000 00000000 00004498 2**0 + 11 .debug_loc 0000084f 00000000 00000000 00004911 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_ranges 00000108 00000000 00000000 00004b24 2**0 + 12 .debug_ranges 00000110 00000000 00000000 00005160 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -35,11 +35,11 @@ Disassembly of section .text: 00000000 <__vectors>: 0: 45 c0 rjmp .+138 ; 0x8c <__ctors_end> 2: 00 00 nop - 4: 49 c1 rjmp .+658 ; 0x298 <__vector_1> + 4: 60 c0 rjmp .+192 ; 0xc6 <__bad_interrupt> 6: 00 00 nop 8: 5e c0 rjmp .+188 ; 0xc6 <__bad_interrupt> a: 00 00 nop - c: 5c c0 rjmp .+184 ; 0xc6 <__bad_interrupt> + c: 63 c1 rjmp .+710 ; 0x2d4 <__vector_3> e: 00 00 nop 10: 5a c0 rjmp .+180 ; 0xc6 <__bad_interrupt> 12: 00 00 nop @@ -51,7 +51,7 @@ Disassembly of section .text: 1e: 00 00 nop 20: 52 c0 rjmp .+164 ; 0xc6 <__bad_interrupt> 22: 00 00 nop - 24: 92 c1 rjmp .+804 ; 0x34a <__vector_9> + 24: bf c1 rjmp .+894 ; 0x3a4 <__vector_9> 26: 00 00 nop 28: 4e c0 rjmp .+156 ; 0xc6 <__bad_interrupt> 2a: 00 00 nop @@ -116,20 +116,20 @@ Disassembly of section .text: 98: 11 e0 ldi r17, 0x01 ; 1 9a: a0 e0 ldi r26, 0x00 ; 0 9c: b1 e0 ldi r27, 0x01 ; 1 - 9e: ee ed ldi r30, 0xDE ; 222 - a0: fa e0 ldi r31, 0x0A ; 10 + 9e: e2 e3 ldi r30, 0x32 ; 50 + a0: fd e0 ldi r31, 0x0D ; 13 a2: 00 e0 ldi r16, 0x00 ; 0 a4: 0b bf out 0x3b, r16 ; 59 a6: 02 c0 rjmp .+4 ; 0xac <__do_copy_data+0x14> a8: 07 90 elpm r0, Z+ aa: 0d 92 st X+, r0 - ac: a6 31 cpi r26, 0x16 ; 22 + ac: a0 33 cpi r26, 0x30 ; 48 ae: b1 07 cpc r27, r17 b0: d9 f7 brne .-10 ; 0xa8 <__do_copy_data+0x10> 000000b2 <__do_clear_bss>: b2: 21 e0 ldi r18, 0x01 ; 1 - b4: a6 e1 ldi r26, 0x16 ; 22 + b4: a0 e3 ldi r26, 0x30 ; 48 b6: b1 e0 ldi r27, 0x01 ; 1 b8: 01 c0 rjmp .+2 ; 0xbc <.do_clear_bss_start> @@ -137,22 +137,22 @@ Disassembly of section .text: ba: 1d 92 st X+, r1 000000bc <.do_clear_bss_start>: - bc: a2 32 cpi r26, 0x22 ; 34 + bc: ac 33 cpi r26, 0x3C ; 60 be: b2 07 cpc r27, r18 c0: e1 f7 brne .-8 ; 0xba <.do_clear_bss_loop> - c2: 11 d1 rcall .+546 ; 0x2e6
- c4: 0a c5 rjmp .+2580 ; 0xada <_exit> + c2: 2f d1 rcall .+606 ; 0x322
+ c4: 34 c6 rjmp .+3176 ; 0xd2e <_exit> 000000c6 <__bad_interrupt>: c6: 9c cf rjmp .-200 ; 0x0 <__vectors> 000000c8 : - } +{ + int length = snprintf(NULL, 0, "%d", number); + char str[length + 1]; + snprintf(str, length + 1, "%d", number); + lcd_write_string(str); } - -void lcd_move_right(void){ - - lcd_write_command(0x1E); c8: 9b b3 in r25, 0x1b ; 27 ca: 21 e0 ldi r18, 0x01 ; 1 cc: 30 e0 ldi r19, 0x00 ; 0 @@ -295,1412 +295,1663 @@ void lcd_move_right(void){ 1c2: cf 91 pop r28 1c4: 08 95 ret -000001c6 : -} +000001c6 : -void lcd_write_int(int number) +void lcd_write_double(char prefix[], double number, char suffix[]) { - 1c6: af 92 push r10 - 1c8: bf 92 push r11 - 1ca: cf 92 push r12 - 1cc: df 92 push r13 - 1ce: ef 92 push r14 - 1d0: ff 92 push r15 - 1d2: 0f 93 push r16 - 1d4: 1f 93 push r17 - 1d6: cf 93 push r28 - 1d8: df 93 push r29 - 1da: cd b7 in r28, 0x3d ; 61 - 1dc: de b7 in r29, 0x3e ; 62 - 1de: d8 2e mov r13, r24 - 1e0: c9 2e mov r12, r25 - int length = snprintf(NULL, 0, "%d", number); + 1c6: 4f 92 push r4 + 1c8: 5f 92 push r5 + 1ca: 6f 92 push r6 + 1cc: 7f 92 push r7 + 1ce: 8f 92 push r8 + 1d0: 9f 92 push r9 + 1d2: af 92 push r10 + 1d4: bf 92 push r11 + 1d6: cf 92 push r12 + 1d8: df 92 push r13 + 1da: ef 92 push r14 + 1dc: ff 92 push r15 + 1de: 0f 93 push r16 + 1e0: 1f 93 push r17 + 1e2: cf 93 push r28 + 1e4: df 93 push r29 + 1e6: cd b7 in r28, 0x3d ; 61 + 1e8: de b7 in r29, 0x3e ; 62 + 1ea: d8 2e mov r13, r24 + 1ec: c9 2e mov r12, r25 + 1ee: 94 2e mov r9, r20 + 1f0: 85 2e mov r8, r21 + 1f2: 76 2e mov r7, r22 + 1f4: 67 2e mov r6, r23 + 1f6: 52 2e mov r5, r18 + 1f8: 43 2e mov r4, r19 + int length = snprintf(NULL, 0, "%s: %.3f %s", prefix, number, suffix); char str[length + 1]; - snprintf(str, length + 1, "%d", number); + snprintf(str, length + 1, "%s: %.3f %s", prefix, number, suffix); lcd_write_string(str); } - 1e2: ad b6 in r10, 0x3d ; 61 - 1e4: be b6 in r11, 0x3e ; 62 - lcd_write_command(0x1E); -} - -void lcd_write_int(int number) -{ - int length = snprintf(NULL, 0, "%d", number); - 1e6: 9f 93 push r25 - 1e8: 8f 93 push r24 - 1ea: 0f 2e mov r0, r31 - 1ec: f2 e1 ldi r31, 0x12 ; 18 - 1ee: ef 2e mov r14, r31 - 1f0: f1 e0 ldi r31, 0x01 ; 1 - 1f2: ff 2e mov r15, r31 - 1f4: f0 2d mov r31, r0 - 1f6: ff 92 push r15 - 1f8: ef 92 push r14 - 1fa: 1f 92 push r1 - 1fc: 1f 92 push r1 - 1fe: 1f 92 push r1 - 200: 1f 92 push r1 - 202: 82 d1 rcall .+772 ; 0x508 - char str[length + 1]; - 204: 01 96 adiw r24, 0x01 ; 1 - 206: 2d b7 in r18, 0x3d ; 61 - 208: 3e b7 in r19, 0x3e ; 62 - 20a: 28 5f subi r18, 0xF8 ; 248 - 20c: 3f 4f sbci r19, 0xFF ; 255 - 20e: 0f b6 in r0, 0x3f ; 63 - 210: f8 94 cli - 212: 3e bf out 0x3e, r19 ; 62 - 214: 0f be out 0x3f, r0 ; 63 - 216: 2d bf out 0x3d, r18 ; 61 - 218: 28 1b sub r18, r24 - 21a: 39 0b sbc r19, r25 - 21c: 0f b6 in r0, 0x3f ; 63 - 21e: f8 94 cli - 220: 3e bf out 0x3e, r19 ; 62 - 222: 0f be out 0x3f, r0 ; 63 - 224: 2d bf out 0x3d, r18 ; 61 - 226: 0d b7 in r16, 0x3d ; 61 - 228: 1e b7 in r17, 0x3e ; 62 - 22a: 0f 5f subi r16, 0xFF ; 255 - 22c: 1f 4f sbci r17, 0xFF ; 255 - snprintf(str, length + 1, "%d", number); - 22e: cf 92 push r12 - 230: df 92 push r13 - 232: ff 92 push r15 - 234: ef 92 push r14 - 236: 9f 93 push r25 - 238: 8f 93 push r24 - 23a: 1f 93 push r17 - 23c: 0f 93 push r16 - 23e: 64 d1 rcall .+712 ; 0x508 + 1fa: ad b6 in r10, 0x3d ; 61 + 1fc: be b6 in r11, 0x3e ; 62 lcd_write_string(str); - 240: 80 2f mov r24, r16 - 242: 91 2f mov r25, r17 - 244: b4 df rcall .-152 ; 0x1ae } - 246: 8d b7 in r24, 0x3d ; 61 - 248: 9e b7 in r25, 0x3e ; 62 - 24a: 08 96 adiw r24, 0x08 ; 8 - 24c: 0f b6 in r0, 0x3f ; 63 - 24e: f8 94 cli - 250: 9e bf out 0x3e, r25 ; 62 - 252: 0f be out 0x3f, r0 ; 63 - 254: 8d bf out 0x3d, r24 ; 61 - 256: 0f b6 in r0, 0x3f ; 63 - 258: f8 94 cli - 25a: be be out 0x3e, r11 ; 62 - 25c: 0f be out 0x3f, r0 ; 63 - 25e: ad be out 0x3d, r10 ; 61 - 260: df 91 pop r29 - 262: cf 91 pop r28 - 264: 1f 91 pop r17 - 266: 0f 91 pop r16 - 268: ff 90 pop r15 - 26a: ef 90 pop r14 - 26c: df 90 pop r13 - 26e: cf 90 pop r12 - 270: bf 90 pop r11 - 272: af 90 pop r10 - 274: 08 95 ret -00000276 : +void lcd_write_double(char prefix[], double number, char suffix[]) +{ + int length = snprintf(NULL, 0, "%s: %.3f %s", prefix, number, suffix); + 1fe: 3f 93 push r19 + 200: 2f 93 push r18 + 202: 7f 93 push r23 + 204: 6f 93 push r22 + 206: 5f 93 push r21 + 208: 4f 93 push r20 + 20a: 9f 93 push r25 + 20c: 8f 93 push r24 + 20e: 0f 2e mov r0, r31 + 210: f5 e1 ldi r31, 0x15 ; 21 + 212: ef 2e mov r14, r31 + 214: f1 e0 ldi r31, 0x01 ; 1 + 216: ff 2e mov r15, r31 + 218: f0 2d mov r31, r0 + 21a: ff 92 push r15 + 21c: ef 92 push r14 + 21e: 1f 92 push r1 + 220: 1f 92 push r1 + 222: 1f 92 push r1 + 224: 1f 92 push r1 + 226: 9a d2 rcall .+1332 ; 0x75c + char str[length + 1]; + 228: 01 96 adiw r24, 0x01 ; 1 + 22a: 2d b7 in r18, 0x3d ; 61 + 22c: 3e b7 in r19, 0x3e ; 62 + 22e: 22 5f subi r18, 0xF2 ; 242 + 230: 3f 4f sbci r19, 0xFF ; 255 + 232: 0f b6 in r0, 0x3f ; 63 + 234: f8 94 cli + 236: 3e bf out 0x3e, r19 ; 62 + 238: 0f be out 0x3f, r0 ; 63 + 23a: 2d bf out 0x3d, r18 ; 61 + 23c: 28 1b sub r18, r24 + 23e: 39 0b sbc r19, r25 + 240: 0f b6 in r0, 0x3f ; 63 + 242: f8 94 cli + 244: 3e bf out 0x3e, r19 ; 62 + 246: 0f be out 0x3f, r0 ; 63 + 248: 2d bf out 0x3d, r18 ; 61 + 24a: 0d b7 in r16, 0x3d ; 61 + 24c: 1e b7 in r17, 0x3e ; 62 + 24e: 0f 5f subi r16, 0xFF ; 255 + 250: 1f 4f sbci r17, 0xFF ; 255 + snprintf(str, length + 1, "%s: %.3f %s", prefix, number, suffix); + 252: 4f 92 push r4 + 254: 5f 92 push r5 + 256: 6f 92 push r6 + 258: 7f 92 push r7 + 25a: 8f 92 push r8 + 25c: 9f 92 push r9 + 25e: cf 92 push r12 + 260: df 92 push r13 + 262: ff 92 push r15 + 264: ef 92 push r14 + 266: 9f 93 push r25 + 268: 8f 93 push r24 + 26a: 1f 93 push r17 + 26c: 0f 93 push r16 + 26e: 76 d2 rcall .+1260 ; 0x75c + lcd_write_string(str); + 270: 80 2f mov r24, r16 + 272: 91 2f mov r25, r17 + 274: 9c df rcall .-200 ; 0x1ae +} + 276: 8d b7 in r24, 0x3d ; 61 + 278: 9e b7 in r25, 0x3e ; 62 + 27a: 0e 96 adiw r24, 0x0e ; 14 + 27c: 0f b6 in r0, 0x3f ; 63 + 27e: f8 94 cli + 280: 9e bf out 0x3e, r25 ; 62 + 282: 0f be out 0x3f, r0 ; 63 + 284: 8d bf out 0x3d, r24 ; 61 + 286: 0f b6 in r0, 0x3f ; 63 + 288: f8 94 cli + 28a: be be out 0x3e, r11 ; 62 + 28c: 0f be out 0x3f, r0 ; 63 + 28e: ad be out 0x3d, r10 ; 61 + 290: df 91 pop r29 + 292: cf 91 pop r28 + 294: 1f 91 pop r17 + 296: 0f 91 pop r16 + 298: ff 90 pop r15 + 29a: ef 90 pop r14 + 29c: df 90 pop r13 + 29e: cf 90 pop r12 + 2a0: bf 90 pop r11 + 2a2: af 90 pop r10 + 2a4: 9f 90 pop r9 + 2a6: 8f 90 pop r8 + 2a8: 7f 90 pop r7 + 2aa: 6f 90 pop r6 + 2ac: 5f 90 pop r5 + 2ae: 4f 90 pop r4 + 2b0: 08 95 ret + +000002b2 : static void snap_event_trigger(uint8_t rotation){ ultrasonic_send_pulse(); } static void ultrasoon_value_set_event(uint16_t value){ if(initialising){ - 276: 20 91 00 01 lds r18, 0x0100 ; 0x800100 <__DATA_REGION_ORIGIN__> - 27a: 22 23 and r18, r18 - 27c: 51 f0 breq .+20 ; 0x292 + 2b2: 20 91 00 01 lds r18, 0x0100 ; 0x800100 <__DATA_REGION_ORIGIN__> + 2b6: 22 23 and r18, r18 + 2b8: 51 f0 breq .+20 ; 0x2ce if(value > 0 && value < 20){ - 27e: 01 97 sbiw r24, 0x01 ; 1 - 280: 43 97 sbiw r24, 0x13 ; 19 - 282: 38 f4 brcc .+14 ; 0x292 + 2ba: 01 97 sbiw r24, 0x01 ; 1 + 2bc: 43 97 sbiw r24, 0x13 ; 19 + 2be: 38 f4 brcc .+14 ; 0x2ce stepper_rotate_stop(); - 284: d1 d0 rcall .+418 ; 0x428 + 2c0: e0 d0 rcall .+448 ; 0x482 initialising = false; - 286: 10 92 00 01 sts 0x0100, r1 ; 0x800100 <__DATA_REGION_ORIGIN__> + 2c2: 10 92 00 01 sts 0x0100, r1 ; 0x800100 <__DATA_REGION_ORIGIN__> stepper_rotate_angle(512, CounterClockWise); - 28a: 61 e0 ldi r22, 0x01 ; 1 - 28c: 80 e0 ldi r24, 0x00 ; 0 - 28e: 92 e0 ldi r25, 0x02 ; 2 - 290: be c0 rjmp .+380 ; 0x40e - 292: 08 95 ret + 2c6: 61 e0 ldi r22, 0x01 ; 1 + 2c8: 80 e0 ldi r24, 0x00 ; 0 + 2ca: 92 e0 ldi r25, 0x02 ; 2 + 2cc: cd c0 rjmp .+410 ; 0x468 + 2ce: 08 95 ret -00000294 : +000002d0 : { ultrasonic_handle_interrupt(); } static void snap_event_trigger(uint8_t rotation){ ultrasonic_send_pulse(); - 294: 04 c1 rjmp .+520 ; 0x49e - 296: 08 95 ret + 2d0: 13 c1 rjmp .+550 ; 0x4f8 + 2d2: 08 95 ret -00000298 <__vector_1>: +000002d4 <__vector_3>: #include "stepper_driver.h" bool initialising = true; -ISR(INT0_vect) +ISR(INT2_vect) { - 298: 1f 92 push r1 - 29a: 0f 92 push r0 - 29c: 0f b6 in r0, 0x3f ; 63 - 29e: 0f 92 push r0 - 2a0: 11 24 eor r1, r1 - 2a2: 0b b6 in r0, 0x3b ; 59 - 2a4: 0f 92 push r0 - 2a6: 2f 93 push r18 - 2a8: 3f 93 push r19 - 2aa: 4f 93 push r20 - 2ac: 5f 93 push r21 - 2ae: 6f 93 push r22 - 2b0: 7f 93 push r23 - 2b2: 8f 93 push r24 - 2b4: 9f 93 push r25 - 2b6: af 93 push r26 - 2b8: bf 93 push r27 - 2ba: ef 93 push r30 - 2bc: ff 93 push r31 + 2d4: 1f 92 push r1 + 2d6: 0f 92 push r0 + 2d8: 0f b6 in r0, 0x3f ; 63 + 2da: 0f 92 push r0 + 2dc: 11 24 eor r1, r1 + 2de: 0b b6 in r0, 0x3b ; 59 + 2e0: 0f 92 push r0 + 2e2: 2f 93 push r18 + 2e4: 3f 93 push r19 + 2e6: 4f 93 push r20 + 2e8: 5f 93 push r21 + 2ea: 6f 93 push r22 + 2ec: 7f 93 push r23 + 2ee: 8f 93 push r24 + 2f0: 9f 93 push r25 + 2f2: af 93 push r26 + 2f4: bf 93 push r27 + 2f6: ef 93 push r30 + 2f8: ff 93 push r31 ultrasonic_handle_interrupt(); - 2be: fc d0 rcall .+504 ; 0x4b8 + 2fa: 0b d1 rcall .+534 ; 0x512 } - 2c0: ff 91 pop r31 - 2c2: ef 91 pop r30 - 2c4: bf 91 pop r27 - 2c6: af 91 pop r26 - 2c8: 9f 91 pop r25 - 2ca: 8f 91 pop r24 - 2cc: 7f 91 pop r23 - 2ce: 6f 91 pop r22 - 2d0: 5f 91 pop r21 - 2d2: 4f 91 pop r20 - 2d4: 3f 91 pop r19 - 2d6: 2f 91 pop r18 - 2d8: 0f 90 pop r0 - 2da: 0b be out 0x3b, r0 ; 59 - 2dc: 0f 90 pop r0 - 2de: 0f be out 0x3f, r0 ; 63 - 2e0: 0f 90 pop r0 - 2e2: 1f 90 pop r1 - 2e4: 18 95 reti + 2fc: ff 91 pop r31 + 2fe: ef 91 pop r30 + 300: bf 91 pop r27 + 302: af 91 pop r26 + 304: 9f 91 pop r25 + 306: 8f 91 pop r24 + 308: 7f 91 pop r23 + 30a: 6f 91 pop r22 + 30c: 5f 91 pop r21 + 30e: 4f 91 pop r20 + 310: 3f 91 pop r19 + 312: 2f 91 pop r18 + 314: 0f 90 pop r0 + 316: 0b be out 0x3b, r0 ; 59 + 318: 0f 90 pop r0 + 31a: 0f be out 0x3f, r0 ; 63 + 31c: 0f 90 pop r0 + 31e: 1f 90 pop r1 + 320: 18 95 reti -000002e6
: +00000322
: } int main(void) { /* Replace with your application code */ ultrasonic_init(); - 2e6: cc d0 rcall .+408 ; 0x480 + 322: db d0 rcall .+438 ; 0x4da init_4bits_mode(); - 2e8: 44 df rcall .-376 ; 0x172 + 324: 26 df rcall .-436 ; 0x172 init_stepper_driver(); - 2ea: a0 d0 rcall .+320 ; 0x42c + 326: af d0 rcall .+350 ; 0x486 set_snap_event(&snap_event_trigger); - 2ec: 8a e4 ldi r24, 0x4A ; 74 - 2ee: 91 e0 ldi r25, 0x01 ; 1 - 2f0: 27 d0 rcall .+78 ; 0x340 + 328: 88 e6 ldi r24, 0x68 ; 104 + 32a: 91 e0 ldi r25, 0x01 ; 1 + 32c: 36 d0 rcall .+108 ; 0x39a set_value_trigger_event(&ultrasoon_value_set_event); - 2f2: 8b e3 ldi r24, 0x3B ; 59 - 2f4: 91 e0 ldi r25, 0x01 ; 1 - 2f6: fe d0 rcall .+508 ; 0x4f4 - 2f8: 87 ea ldi r24, 0xA7 ; 167 + 32e: 89 e5 ldi r24, 0x59 ; 89 + 330: 91 e0 ldi r25, 0x01 ; 1 + 332: 0d d1 rcall .+538 ; 0x54e + 334: 87 ea ldi r24, 0xA7 ; 167 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 2fa: 91 e6 ldi r25, 0x61 ; 97 - 2fc: 01 97 sbiw r24, 0x01 ; 1 - 2fe: f1 f7 brne .-4 ; 0x2fc - 300: 00 c0 rjmp .+0 ; 0x302 - 302: 00 00 nop + 336: 91 e6 ldi r25, 0x61 ; 97 + 338: 01 97 sbiw r24, 0x01 ; 1 + 33a: f1 f7 brne .-4 ; 0x338 + 33c: 00 c0 rjmp .+0 ; 0x33e + 33e: 00 00 nop _delay_ms(10); lcd_clear(); - 304: 2b df rcall .-426 ; 0x15c + 340: 0d df rcall .-486 ; 0x15c stepper_rotate_angle(600, ClockWise); - 306: 60 e0 ldi r22, 0x00 ; 0 - 308: 88 e5 ldi r24, 0x58 ; 88 - 30a: 92 e0 ldi r25, 0x02 ; 2 + 342: 60 e0 ldi r22, 0x00 ; 0 + 344: 88 e5 ldi r24, 0x58 ; 88 + 346: 92 e0 ldi r25, 0x02 ; 2 + 348: 8f d0 rcall .+286 ; 0x468 while (1) { - // TODO change to use the stepper motor - //ultrasonic_send_pulse(); lcd_clear(); - 30c: 80 d0 rcall .+256 ; 0x40e - 30e: 26 df rcall .-436 ; 0x15c - lcd_write_int(ultrasonic_get_timer_dist()); - 310: f6 d0 rcall .+492 ; 0x4fe - 312: 59 df rcall .-334 ; 0x1c6 - 314: 84 e6 ldi r24, 0x64 ; 100 - 316: 90 e0 ldi r25, 0x00 ; 0 + 34a: 08 df rcall .-496 ; 0x15c + 34c: 05 d1 rcall .+522 ; 0x558 + double res = ultrasonic_get_timer_dist()/1000.0; + 34e: bc 01 movw r22, r24 + 350: 80 e0 ldi r24, 0x00 ; 0 + 352: 90 e0 ldi r25, 0x00 ; 0 + 354: 75 d1 rcall .+746 ; 0x640 <__floatunsisf> + 356: 20 e0 ldi r18, 0x00 ; 0 + 358: 30 e0 ldi r19, 0x00 ; 0 + 35a: 4a e7 ldi r20, 0x7A ; 122 + 35c: 54 e4 ldi r21, 0x44 ; 68 + 35e: 08 d1 rcall .+528 ; 0x570 <__divsf3> + 360: ab 01 movw r20, r22 + 362: bc 01 movw r22, r24 + 364: 21 e2 ldi r18, 0x21 ; 33 + lcd_write_double("distance: ",res,"cm"); + 366: 31 e0 ldi r19, 0x01 ; 1 + 368: 84 e2 ldi r24, 0x24 ; 36 + 36a: 91 e0 ldi r25, 0x01 ; 1 + 36c: 2c df rcall .-424 ; 0x1c6 + 36e: 84 e6 ldi r24, 0x64 ; 100 + 370: 90 e0 ldi r25, 0x00 ; 0 wait_ms(100); - 318: a4 d0 rcall .+328 ; 0x462 - 31a: f9 cf rjmp .-14 ; 0x30e + 372: a4 d0 rcall .+328 ; 0x4bc + 374: ea cf rjmp .-44 ; 0x34a -0000031c : +00000376 : + 376: 90 91 37 01 lds r25, 0x0137 ; 0x800137 + 37a: 91 11 cpse r25, r1 + 37c: 07 c0 rjmp .+14 ; 0x38c + 37e: e8 2f mov r30, r24 + 380: f0 e0 ldi r31, 0x00 ; 0 + 382: ef 5f subi r30, 0xFF ; 255 + 384: fe 4f sbci r31, 0xFE ; 254 + 386: 80 81 ld r24, Z + 388: 83 b9 out 0x03, r24 ; 3 + 38a: 08 95 ret + 38c: e8 2f mov r30, r24 + 38e: f0 e0 ldi r31, 0x00 ; 0 + 390: e7 5f subi r30, 0xF7 ; 247 + 392: fe 4f sbci r31, 0xFE ; 254 + 394: 80 81 ld r24, Z + 396: 83 b9 out 0x03, r24 ; 3 + 398: 08 95 ret -void stepper_rotate_full_rotation_CW(); -void stepper_rotate_full_rotation_CCW(); +0000039a : + 39a: 90 93 39 01 sts 0x0139, r25 ; 0x800139 + 39e: 80 93 38 01 sts 0x0138, r24 ; 0x800138 + 3a2: 08 95 ret -void set_stepper_state(uint8_t count){ - if(rotation == ClockWise){ - 31c: 90 91 1d 01 lds r25, 0x011D ; 0x80011d - 320: 91 11 cpse r25, r1 - 322: 07 c0 rjmp .+14 ; 0x332 - PORTE = CW[count]; - 324: e8 2f mov r30, r24 - 326: f0 e0 ldi r31, 0x00 ; 0 - 328: ef 5f subi r30, 0xFF ; 255 - 32a: fe 4f sbci r31, 0xFE ; 254 - 32c: 80 81 ld r24, Z - 32e: 83 b9 out 0x03, r24 ; 3 - 330: 08 95 ret - } else { - PORTE = CCW[count]; - 332: e8 2f mov r30, r24 - 334: f0 e0 ldi r31, 0x00 ; 0 - 336: e7 5f subi r30, 0xF7 ; 247 - 338: fe 4f sbci r31, 0xFE ; 254 - 33a: 80 81 ld r24, Z - 33c: 83 b9 out 0x03, r24 ; 3 - 33e: 08 95 ret +000003a4 <__vector_9>: + 3a4: 1f 92 push r1 + 3a6: 0f 92 push r0 + 3a8: 0f b6 in r0, 0x3f ; 63 + 3aa: 0f 92 push r0 + 3ac: 11 24 eor r1, r1 + 3ae: 0b b6 in r0, 0x3b ; 59 + 3b0: 0f 92 push r0 + 3b2: 2f 93 push r18 + 3b4: 3f 93 push r19 + 3b6: 4f 93 push r20 + 3b8: 5f 93 push r21 + 3ba: 6f 93 push r22 + 3bc: 7f 93 push r23 + 3be: 8f 93 push r24 + 3c0: 9f 93 push r25 + 3c2: af 93 push r26 + 3c4: bf 93 push r27 + 3c6: ef 93 push r30 + 3c8: ff 93 push r31 + 3ca: 14 bc out 0x24, r1 ; 36 + 3cc: 80 91 30 01 lds r24, 0x0130 ; 0x800130 <__data_end> + 3d0: d2 df rcall .-92 ; 0x376 + 3d2: 80 91 30 01 lds r24, 0x0130 ; 0x800130 <__data_end> + 3d6: 87 30 cpi r24, 0x07 ; 7 + 3d8: 20 f4 brcc .+8 ; 0x3e2 <__vector_9+0x3e> + 3da: 8f 5f subi r24, 0xFF ; 255 + 3dc: 80 93 30 01 sts 0x0130, r24 ; 0x800130 <__data_end> + 3e0: 30 c0 rjmp .+96 ; 0x442 <__LOCK_REGION_LENGTH__+0x42> + 3e2: 10 92 30 01 sts 0x0130, r1 ; 0x800130 <__data_end> + 3e6: 80 91 31 01 lds r24, 0x0131 ; 0x800131 + 3ea: 90 91 32 01 lds r25, 0x0132 ; 0x800132 + 3ee: 00 97 sbiw r24, 0x00 ; 0 + 3f0: 99 f4 brne .+38 ; 0x418 <__LOCK_REGION_LENGTH__+0x18> + 3f2: 80 91 37 01 lds r24, 0x0137 ; 0x800137 + 3f6: 81 11 cpse r24, r1 + 3f8: 04 c0 rjmp .+8 ; 0x402 <__LOCK_REGION_LENGTH__+0x2> + 3fa: 81 e0 ldi r24, 0x01 ; 1 + 3fc: 80 93 37 01 sts 0x0137, r24 ; 0x800137 + 400: 02 c0 rjmp .+4 ; 0x406 <__LOCK_REGION_LENGTH__+0x6> + 402: 10 92 37 01 sts 0x0137, r1 ; 0x800137 + 406: 80 91 33 01 lds r24, 0x0133 ; 0x800133 + 40a: 90 91 34 01 lds r25, 0x0134 ; 0x800134 + 40e: 90 93 32 01 sts 0x0132, r25 ; 0x800132 + 412: 80 93 31 01 sts 0x0131, r24 ; 0x800131 + 416: 15 c0 rjmp .+42 ; 0x442 <__LOCK_REGION_LENGTH__+0x42> + 418: 9c 01 movw r18, r24 + 41a: 2f 71 andi r18, 0x1F ; 31 + 41c: 33 27 eor r19, r19 + 41e: 23 2b or r18, r19 + 420: 39 f4 brne .+14 ; 0x430 <__LOCK_REGION_LENGTH__+0x30> + 422: e0 91 38 01 lds r30, 0x0138 ; 0x800138 + 426: f0 91 39 01 lds r31, 0x0139 ; 0x800139 + 42a: 30 97 sbiw r30, 0x00 ; 0 + 42c: 09 f0 breq .+2 ; 0x430 <__LOCK_REGION_LENGTH__+0x30> + 42e: 09 95 icall + 430: 80 91 31 01 lds r24, 0x0131 ; 0x800131 + 434: 90 91 32 01 lds r25, 0x0132 ; 0x800132 + 438: 01 97 sbiw r24, 0x01 ; 1 + 43a: 90 93 32 01 sts 0x0132, r25 ; 0x800132 + 43e: 80 93 31 01 sts 0x0131, r24 ; 0x800131 + 442: ff 91 pop r31 + 444: ef 91 pop r30 + 446: bf 91 pop r27 + 448: af 91 pop r26 + 44a: 9f 91 pop r25 + 44c: 8f 91 pop r24 + 44e: 7f 91 pop r23 + 450: 6f 91 pop r22 + 452: 5f 91 pop r21 + 454: 4f 91 pop r20 + 456: 3f 91 pop r19 + 458: 2f 91 pop r18 + 45a: 0f 90 pop r0 + 45c: 0b be out 0x3b, r0 ; 59 + 45e: 0f 90 pop r0 + 460: 0f be out 0x3f, r0 ; 63 + 462: 0f 90 pop r0 + 464: 1f 90 pop r1 + 466: 18 95 reti -00000340 : -} +00000468 : + 468: 90 93 32 01 sts 0x0132, r25 ; 0x800132 + 46c: 80 93 31 01 sts 0x0131, r24 ; 0x800131 + 470: 90 93 34 01 sts 0x0134, r25 ; 0x800134 + 474: 80 93 33 01 sts 0x0133, r24 ; 0x800133 + 478: 60 93 37 01 sts 0x0137, r22 ; 0x800137 + 47c: 8c e0 ldi r24, 0x0C ; 12 + 47e: 85 bd out 0x25, r24 ; 37 + 480: 08 95 ret -void (*snap_event)(uint8_t); +00000482 : + 482: 15 bc out 0x25, r1 ; 37 + 484: 08 95 ret -void set_snap_event(void (*snap_event_p)(uint8_t)){ - snap_event = snap_event_p; - 340: 90 93 1f 01 sts 0x011F, r25 ; 0x80011f - 344: 80 93 1e 01 sts 0x011E, r24 ; 0x80011e - 348: 08 95 ret +00000486 : + 486: 8f ef ldi r24, 0xFF ; 255 + 488: 82 b9 out 0x02, r24 ; 2 + 48a: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064> + 48e: 81 e0 ldi r24, 0x01 ; 1 + 490: 80 93 65 00 sts 0x0065, r24 ; 0x800065 <__TEXT_REGION_LENGTH__+0x7e0065> + 494: 13 b8 out 0x03, r1 ; 3 + 496: 86 e9 ldi r24, 0x96 ; 150 + 498: 83 bd out 0x23, r24 ; 35 + 49a: 80 e8 ldi r24, 0x80 ; 128 + 49c: 87 bf out 0x37, r24 ; 55 + 49e: 78 94 sei + 4a0: 08 95 ret -0000034a <__vector_9>: -} - -uint16_t steps_each_turn = 0; -uint16_t steps_to_do = 0; -uint8_t stepper_state = 0; -ISR( TIMER2_COMP_vect ){ - 34a: 1f 92 push r1 - 34c: 0f 92 push r0 - 34e: 0f b6 in r0, 0x3f ; 63 - 350: 0f 92 push r0 - 352: 11 24 eor r1, r1 - 354: 0b b6 in r0, 0x3b ; 59 - 356: 0f 92 push r0 - 358: 2f 93 push r18 - 35a: 3f 93 push r19 - 35c: 4f 93 push r20 - 35e: 5f 93 push r21 - 360: 6f 93 push r22 - 362: 7f 93 push r23 - 364: 8f 93 push r24 - 366: 9f 93 push r25 - 368: af 93 push r26 - 36a: bf 93 push r27 - 36c: ef 93 push r30 - 36e: ff 93 push r31 - TCNT2 = 0; - 370: 14 bc out 0x24, r1 ; 36 - - set_stepper_state(stepper_state); - 372: 80 91 16 01 lds r24, 0x0116 ; 0x800116 <__data_end> - 376: d2 df rcall .-92 ; 0x31c - - if(stepper_state < 7){ - 378: 80 91 16 01 lds r24, 0x0116 ; 0x800116 <__data_end> - 37c: 87 30 cpi r24, 0x07 ; 7 - 37e: 20 f4 brcc .+8 ; 0x388 <__vector_9+0x3e> - stepper_state++; - 380: 8f 5f subi r24, 0xFF ; 255 - 382: 80 93 16 01 sts 0x0116, r24 ; 0x800116 <__data_end> - 386: 30 c0 rjmp .+96 ; 0x3e8 <__vector_9+0x9e> - } else { - //OCR2 = ADCH; - stepper_state = 0; - 388: 10 92 16 01 sts 0x0116, r1 ; 0x800116 <__data_end> - - if(steps_to_do == 0){ - 38c: 80 91 17 01 lds r24, 0x0117 ; 0x800117 - 390: 90 91 18 01 lds r25, 0x0118 ; 0x800118 - 394: 00 97 sbiw r24, 0x00 ; 0 - 396: 99 f4 brne .+38 ; 0x3be <__vector_9+0x74> - - if(rotation == ClockWise){ - 398: 80 91 1d 01 lds r24, 0x011D ; 0x80011d - 39c: 81 11 cpse r24, r1 - 39e: 04 c0 rjmp .+8 ; 0x3a8 <__vector_9+0x5e> - rotation = CounterClockWise; - 3a0: 81 e0 ldi r24, 0x01 ; 1 - 3a2: 80 93 1d 01 sts 0x011D, r24 ; 0x80011d - 3a6: 02 c0 rjmp .+4 ; 0x3ac <__vector_9+0x62> - } else { - rotation = ClockWise; - 3a8: 10 92 1d 01 sts 0x011D, r1 ; 0x80011d - } - - steps_to_do = steps_each_turn; - 3ac: 80 91 19 01 lds r24, 0x0119 ; 0x800119 - 3b0: 90 91 1a 01 lds r25, 0x011A ; 0x80011a - 3b4: 90 93 18 01 sts 0x0118, r25 ; 0x800118 - 3b8: 80 93 17 01 sts 0x0117, r24 ; 0x800117 - 3bc: 15 c0 rjmp .+42 ; 0x3e8 <__vector_9+0x9e> - - } else { - - if(steps_to_do % 32 == 0){ - 3be: 9c 01 movw r18, r24 - 3c0: 2f 71 andi r18, 0x1F ; 31 - 3c2: 33 27 eor r19, r19 - 3c4: 23 2b or r18, r19 - 3c6: 39 f4 brne .+14 ; 0x3d6 <__vector_9+0x8c> - - if(snap_event != NULL) - 3c8: e0 91 1e 01 lds r30, 0x011E ; 0x80011e - 3cc: f0 91 1f 01 lds r31, 0x011F ; 0x80011f - 3d0: 30 97 sbiw r30, 0x00 ; 0 - 3d2: 09 f0 breq .+2 ; 0x3d6 <__vector_9+0x8c> - snap_event(steps_to_do); - 3d4: 09 95 icall - } - - steps_to_do--; - 3d6: 80 91 17 01 lds r24, 0x0117 ; 0x800117 - 3da: 90 91 18 01 lds r25, 0x0118 ; 0x800118 - 3de: 01 97 sbiw r24, 0x01 ; 1 - 3e0: 90 93 18 01 sts 0x0118, r25 ; 0x800118 - 3e4: 80 93 17 01 sts 0x0117, r24 ; 0x800117 - } - } -} - 3e8: ff 91 pop r31 - 3ea: ef 91 pop r30 - 3ec: bf 91 pop r27 - 3ee: af 91 pop r26 - 3f0: 9f 91 pop r25 - 3f2: 8f 91 pop r24 - 3f4: 7f 91 pop r23 - 3f6: 6f 91 pop r22 - 3f8: 5f 91 pop r21 - 3fa: 4f 91 pop r20 - 3fc: 3f 91 pop r19 - 3fe: 2f 91 pop r18 - 400: 0f 90 pop r0 - 402: 0b be out 0x3b, r0 ; 59 - 404: 0f 90 pop r0 - 406: 0f be out 0x3f, r0 ; 63 - 408: 0f 90 pop r0 - 40a: 1f 90 pop r1 - 40c: 18 95 reti - -0000040e : - -void stepper_rotate_angle(uint16_t steps, enum rotation_wise rot){ - steps_to_do = steps; - 40e: 90 93 18 01 sts 0x0118, r25 ; 0x800118 - 412: 80 93 17 01 sts 0x0117, r24 ; 0x800117 - steps_each_turn = steps; - 416: 90 93 1a 01 sts 0x011A, r25 ; 0x80011a - 41a: 80 93 19 01 sts 0x0119, r24 ; 0x800119 - rotation = rot; - 41e: 60 93 1d 01 sts 0x011D, r22 ; 0x80011d - TCCR2 = 0b00001100; - 422: 8c e0 ldi r24, 0x0C ; 12 - 424: 85 bd out 0x25, r24 ; 37 - 426: 08 95 ret - -00000428 : -} - -void stepper_rotate_stop(){ - TCCR2 = 0b00000000; - 428: 15 bc out 0x25, r1 ; 37 - 42a: 08 95 ret - -0000042c : -} - -void init_stepper_driver(){ - DDRE = 0xff; - 42c: 8f ef ldi r24, 0xFF ; 255 - 42e: 82 b9 out 0x02, r24 ; 2 - DDRG = 0xff; - 430: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064> - PORTG = 0x01; - 434: 81 e0 ldi r24, 0x01 ; 1 - 436: 80 93 65 00 sts 0x0065, r24 ; 0x800065 <__TEXT_REGION_LENGTH__+0x7e0065> - PORTE = 0x00; - 43a: 13 b8 out 0x03, r1 ; 3 - OCR2 = 150; - 43c: 86 e9 ldi r24, 0x96 ; 150 - 43e: 83 bd out 0x23, r24 ; 35 - TIMSK = BIT(7); - 440: 80 e8 ldi r24, 0x80 ; 128 - 442: 87 bf out 0x37, r24 ; 55 - sei(); - 444: 78 94 sei - 446: 08 95 ret - -00000448 : +000004a2 : void (*value_set_event)(uint16_t); void wait_us(unsigned int us) { for(int i = 0; i < us; i++) - 448: 20 e0 ldi r18, 0x00 ; 0 - 44a: 30 e0 ldi r19, 0x00 ; 0 - 44c: 06 c0 rjmp .+12 ; 0x45a + 4a2: 20 e0 ldi r18, 0x00 ; 0 + 4a4: 30 e0 ldi r19, 0x00 ; 0 + 4a6: 06 c0 rjmp .+12 ; 0x4b4 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 44e: 43 e0 ldi r20, 0x03 ; 3 - 450: 4a 95 dec r20 - 452: f1 f7 brne .-4 ; 0x450 - 454: 00 00 nop - 456: 2f 5f subi r18, 0xFF ; 255 - 458: 3f 4f sbci r19, 0xFF ; 255 - 45a: 28 17 cp r18, r24 - 45c: 39 07 cpc r19, r25 - 45e: b8 f3 brcs .-18 ; 0x44e + 4a8: 43 e0 ldi r20, 0x03 ; 3 + 4aa: 4a 95 dec r20 + 4ac: f1 f7 brne .-4 ; 0x4aa + 4ae: 00 00 nop + 4b0: 2f 5f subi r18, 0xFF ; 255 + 4b2: 3f 4f sbci r19, 0xFF ; 255 + 4b4: 28 17 cp r18, r24 + 4b6: 39 07 cpc r19, r25 + 4b8: b8 f3 brcs .-18 ; 0x4a8 { _delay_us(1); } } - 460: 08 95 ret + 4ba: 08 95 ret -00000462 : +000004bc : void wait_ms(unsigned int ms) { for(int i = 0; i < ms; i++) - 462: 20 e0 ldi r18, 0x00 ; 0 - 464: 30 e0 ldi r19, 0x00 ; 0 - 466: 08 c0 rjmp .+16 ; 0x478 + 4bc: 20 e0 ldi r18, 0x00 ; 0 + 4be: 30 e0 ldi r19, 0x00 ; 0 + 4c0: 08 c0 rjmp .+16 ; 0x4d2 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 468: e3 ec ldi r30, 0xC3 ; 195 - 46a: f9 e0 ldi r31, 0x09 ; 9 - 46c: 31 97 sbiw r30, 0x01 ; 1 - 46e: f1 f7 brne .-4 ; 0x46c - 470: 00 c0 rjmp .+0 ; 0x472 - 472: 00 00 nop - 474: 2f 5f subi r18, 0xFF ; 255 - 476: 3f 4f sbci r19, 0xFF ; 255 - 478: 28 17 cp r18, r24 - 47a: 39 07 cpc r19, r25 - 47c: a8 f3 brcs .-22 ; 0x468 + 4c2: e3 ec ldi r30, 0xC3 ; 195 + 4c4: f9 e0 ldi r31, 0x09 ; 9 + 4c6: 31 97 sbiw r30, 0x01 ; 1 + 4c8: f1 f7 brne .-4 ; 0x4c6 + 4ca: 00 c0 rjmp .+0 ; 0x4cc + 4cc: 00 00 nop + 4ce: 2f 5f subi r18, 0xFF ; 255 + 4d0: 3f 4f sbci r19, 0xFF ; 255 + 4d2: 28 17 cp r18, r24 + 4d4: 39 07 cpc r19, r25 + 4d6: a8 f3 brcs .-22 ; 0x4c2 { _delay_ms(1); } } - 47e: 08 95 ret + 4d8: 08 95 ret -00000480 : +000004da : void ultrasonic_init() { DDRG = 0xFF; // port g all output. pin 0 is trig, the rest is for debug - 480: 8f ef ldi r24, 0xFF ; 255 - 482: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064> + 4da: 8f ef ldi r24, 0xFF ; 255 + 4dc: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064> DDRD = 0x00; // port D pin 0 on input. 0 is echo and also interrupt - 486: 11 ba out 0x11, r1 ; 17 + 4e0: 11 ba out 0x11, r1 ; 17 - EICRA = 0x03; // interrupt PORTD on pin 0, rising edge - 488: 83 e0 ldi r24, 0x03 ; 3 - 48a: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> + EICRA = 0x30; // interrupt PORTD on pin 2, rising edge + 4e2: 80 e3 ldi r24, 0x30 ; 48 + 4e4: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> - EIMSK |= 0x01; // enable interrupt on pin 0 (INT0) - 48e: 89 b7 in r24, 0x39 ; 57 - 490: 81 60 ori r24, 0x01 ; 1 - 492: 89 bf out 0x39, r24 ; 57 + EIMSK |= 0x04; // enable interrupt on pin 2 (INT2) + 4e8: 89 b7 in r24, 0x39 ; 57 + 4ea: 84 60 ori r24, 0x04 ; 4 + 4ec: 89 bf out 0x39, r24 ; 57 TCCR1A = 0b00000000; // initialize timer1, prescaler=256 - 494: 1f bc out 0x2f, r1 ; 47 + 4ee: 1f bc out 0x2f, r1 ; 47 TCCR1B = 0b00001100; // CTC compare A, RUN - 496: 8c e0 ldi r24, 0x0C ; 12 - 498: 8e bd out 0x2e, r24 ; 46 + 4f0: 8c e0 ldi r24, 0x0C ; 12 + 4f2: 8e bd out 0x2e, r24 ; 46 sei(); // turn on interrupt system - 49a: 78 94 sei - 49c: 08 95 ret + 4f4: 78 94 sei + 4f6: 08 95 ret -0000049e : +000004f8 : } void ultrasonic_send_pulse() { - 49e: cf 93 push r28 - 4a0: df 93 push r29 + 4f8: cf 93 push r28 + 4fa: df 93 push r29 PORTG = 0x00; // 10 us low pulse - 4a2: c5 e6 ldi r28, 0x65 ; 101 - 4a4: d0 e0 ldi r29, 0x00 ; 0 - 4a6: 18 82 st Y, r1 + 4fc: c5 e6 ldi r28, 0x65 ; 101 + 4fe: d0 e0 ldi r29, 0x00 ; 0 + 500: 18 82 st Y, r1 wait_us(10); - 4a8: 8a e0 ldi r24, 0x0A ; 10 - 4aa: 90 e0 ldi r25, 0x00 ; 0 - 4ac: cd df rcall .-102 ; 0x448 + 502: 8a e0 ldi r24, 0x0A ; 10 + 504: 90 e0 ldi r25, 0x00 ; 0 + 506: cd df rcall .-102 ; 0x4a2 PORTG = 0x01; - 4ae: 81 e0 ldi r24, 0x01 ; 1 - 4b0: 88 83 st Y, r24 + 508: 81 e0 ldi r24, 0x01 ; 1 + 50a: 88 83 st Y, r24 } - 4b2: df 91 pop r29 - 4b4: cf 91 pop r28 - 4b6: 08 95 ret + 50c: df 91 pop r29 + 50e: cf 91 pop r28 + 510: 08 95 ret -000004b8 : +00000512 : void ultrasonic_handle_interrupt() { // if the interrupt was generated on a rising edge (start sending echo) if (int_stat == INTERRUPT_RISING) - 4b8: 80 91 11 01 lds r24, 0x0111 ; 0x800111 - 4bc: 81 30 cpi r24, 0x01 ; 1 - 4be: 41 f4 brne .+16 ; 0x4d0 + 512: 80 91 11 01 lds r24, 0x0111 ; 0x800111 + 516: 81 30 cpi r24, 0x01 ; 1 + 518: 41 f4 brne .+16 ; 0x52a { // set interrupt pin 0 on PORTD to falling edge - EICRA = 0x02; - 4c0: 82 e0 ldi r24, 0x02 ; 2 - 4c2: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> + EICRA = 0x20; + 51a: 80 e2 ldi r24, 0x20 ; 32 + 51c: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> // reset the time in timer1 TCNT1 = 0x00; - 4c6: 1d bc out 0x2d, r1 ; 45 - 4c8: 1c bc out 0x2c, r1 ; 44 + 520: 1d bc out 0x2d, r1 ; 45 + 522: 1c bc out 0x2c, r1 ; 44 // set interrupt status int_stat = INTERRUPT_FALLING; - 4ca: 10 92 11 01 sts 0x0111, r1 ; 0x800111 - 4ce: 08 95 ret + 524: 10 92 11 01 sts 0x0111, r1 ; 0x800111 + 528: 08 95 ret } else // else if it was generated on a falling edge (end sending echo) { // set interrupt pin 0 on PORTD to rising edge - EICRA = 0x03; - 4d0: 83 e0 ldi r24, 0x03 ; 3 - 4d2: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> + EICRA = 0x30; // interrupt PORTD on pin 2, rising edge + 52a: 80 e3 ldi r24, 0x30 ; 48 + 52c: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> // read timer1 into time_dist timer_dist = TCNT1; - 4d6: 8c b5 in r24, 0x2c ; 44 - 4d8: 9d b5 in r25, 0x2d ; 45 - 4da: 90 93 1c 01 sts 0x011C, r25 ; 0x80011c - 4de: 80 93 1b 01 sts 0x011B, r24 ; 0x80011b + 530: 8c b5 in r24, 0x2c ; 44 + 532: 9d b5 in r25, 0x2d ; 45 + 534: 90 93 36 01 sts 0x0136, r25 ; 0x800136 + 538: 80 93 35 01 sts 0x0135, r24 ; 0x800135 //EVENT value_set_event(timer_dist); - 4e2: e0 91 20 01 lds r30, 0x0120 ; 0x800120 - 4e6: f0 91 21 01 lds r31, 0x0121 ; 0x800121 - 4ea: 09 95 icall + 53c: e0 91 3a 01 lds r30, 0x013A ; 0x80013a + 540: f0 91 3b 01 lds r31, 0x013B ; 0x80013b + 544: 09 95 icall // set interrupt status int_stat = INTERRUPT_RISING; - 4ec: 81 e0 ldi r24, 0x01 ; 1 - 4ee: 80 93 11 01 sts 0x0111, r24 ; 0x800111 - 4f2: 08 95 ret + 546: 81 e0 ldi r24, 0x01 ; 1 + 548: 80 93 11 01 sts 0x0111, r24 ; 0x800111 + 54c: 08 95 ret -000004f4 : +0000054e : } } void set_value_trigger_event(void (*value_set_event_p)(uint16_t)){ // event that is triggered when a value is set. value_set_event = value_set_event_p; - 4f4: 90 93 21 01 sts 0x0121, r25 ; 0x800121 - 4f8: 80 93 20 01 sts 0x0120, r24 ; 0x800120 - 4fc: 08 95 ret + 54e: 90 93 3b 01 sts 0x013B, r25 ; 0x80013b + 552: 80 93 3a 01 sts 0x013A, r24 ; 0x80013a + 556: 08 95 ret -000004fe : +00000558 : } uint16_t ultrasonic_get_timer_dist() { - return timer_dist; + return timer_dist * (340 / 2); + 558: 80 91 35 01 lds r24, 0x0135 ; 0x800135 + 55c: 90 91 36 01 lds r25, 0x0136 ; 0x800136 } - 4fe: 80 91 1b 01 lds r24, 0x011B ; 0x80011b - 502: 90 91 1c 01 lds r25, 0x011C ; 0x80011c - 506: 08 95 ret + 560: 2a ea ldi r18, 0xAA ; 170 + 562: ac 01 movw r20, r24 + 564: 24 9f mul r18, r20 + 566: c0 01 movw r24, r0 + 568: 25 9f mul r18, r21 + 56a: 90 0d add r25, r0 + 56c: 11 24 eor r1, r1 + 56e: 08 95 ret -00000508 : - 508: 0f 93 push r16 - 50a: 1f 93 push r17 - 50c: cf 93 push r28 - 50e: df 93 push r29 - 510: cd b7 in r28, 0x3d ; 61 - 512: de b7 in r29, 0x3e ; 62 - 514: 2e 97 sbiw r28, 0x0e ; 14 - 516: 0f b6 in r0, 0x3f ; 63 - 518: f8 94 cli - 51a: de bf out 0x3e, r29 ; 62 - 51c: 0f be out 0x3f, r0 ; 63 - 51e: cd bf out 0x3d, r28 ; 61 - 520: 0d 89 ldd r16, Y+21 ; 0x15 - 522: 1e 89 ldd r17, Y+22 ; 0x16 - 524: 8f 89 ldd r24, Y+23 ; 0x17 - 526: 98 8d ldd r25, Y+24 ; 0x18 - 528: 26 e0 ldi r18, 0x06 ; 6 - 52a: 2c 83 std Y+4, r18 ; 0x04 - 52c: 1a 83 std Y+2, r17 ; 0x02 - 52e: 09 83 std Y+1, r16 ; 0x01 - 530: 97 ff sbrs r25, 7 - 532: 02 c0 rjmp .+4 ; 0x538 - 534: 80 e0 ldi r24, 0x00 ; 0 - 536: 90 e8 ldi r25, 0x80 ; 128 - 538: 01 97 sbiw r24, 0x01 ; 1 - 53a: 9e 83 std Y+6, r25 ; 0x06 - 53c: 8d 83 std Y+5, r24 ; 0x05 - 53e: ae 01 movw r20, r28 - 540: 45 5e subi r20, 0xE5 ; 229 - 542: 5f 4f sbci r21, 0xFF ; 255 - 544: 69 8d ldd r22, Y+25 ; 0x19 - 546: 7a 8d ldd r23, Y+26 ; 0x1a - 548: ce 01 movw r24, r28 - 54a: 01 96 adiw r24, 0x01 ; 1 - 54c: 19 d0 rcall .+50 ; 0x580 - 54e: 4d 81 ldd r20, Y+5 ; 0x05 - 550: 5e 81 ldd r21, Y+6 ; 0x06 - 552: 57 fd sbrc r21, 7 - 554: 0a c0 rjmp .+20 ; 0x56a - 556: 2f 81 ldd r18, Y+7 ; 0x07 - 558: 38 85 ldd r19, Y+8 ; 0x08 - 55a: 42 17 cp r20, r18 - 55c: 53 07 cpc r21, r19 - 55e: 0c f4 brge .+2 ; 0x562 - 560: 9a 01 movw r18, r20 - 562: f8 01 movw r30, r16 - 564: e2 0f add r30, r18 - 566: f3 1f adc r31, r19 - 568: 10 82 st Z, r1 - 56a: 2e 96 adiw r28, 0x0e ; 14 - 56c: 0f b6 in r0, 0x3f ; 63 - 56e: f8 94 cli - 570: de bf out 0x3e, r29 ; 62 - 572: 0f be out 0x3f, r0 ; 63 - 574: cd bf out 0x3d, r28 ; 61 - 576: df 91 pop r29 - 578: cf 91 pop r28 - 57a: 1f 91 pop r17 - 57c: 0f 91 pop r16 - 57e: 08 95 ret +00000570 <__divsf3>: + 570: 0c d0 rcall .+24 ; 0x58a <__divsf3x> + 572: ba c0 rjmp .+372 ; 0x6e8 <__fp_round> + 574: b2 d0 rcall .+356 ; 0x6da <__fp_pscB> + 576: 40 f0 brcs .+16 ; 0x588 <__divsf3+0x18> + 578: a9 d0 rcall .+338 ; 0x6cc <__fp_pscA> + 57a: 30 f0 brcs .+12 ; 0x588 <__divsf3+0x18> + 57c: 21 f4 brne .+8 ; 0x586 <__divsf3+0x16> + 57e: 5f 3f cpi r21, 0xFF ; 255 + 580: 19 f0 breq .+6 ; 0x588 <__divsf3+0x18> + 582: 9b c0 rjmp .+310 ; 0x6ba <__fp_inf> + 584: 51 11 cpse r21, r1 + 586: e4 c0 rjmp .+456 ; 0x750 <__fp_szero> + 588: 9e c0 rjmp .+316 ; 0x6c6 <__fp_nan> -00000580 : - 580: 2f 92 push r2 - 582: 3f 92 push r3 - 584: 4f 92 push r4 - 586: 5f 92 push r5 - 588: 6f 92 push r6 - 58a: 7f 92 push r7 - 58c: 8f 92 push r8 - 58e: 9f 92 push r9 - 590: af 92 push r10 - 592: bf 92 push r11 - 594: cf 92 push r12 - 596: df 92 push r13 - 598: ef 92 push r14 - 59a: ff 92 push r15 - 59c: 0f 93 push r16 - 59e: 1f 93 push r17 - 5a0: cf 93 push r28 - 5a2: df 93 push r29 - 5a4: cd b7 in r28, 0x3d ; 61 - 5a6: de b7 in r29, 0x3e ; 62 - 5a8: 2b 97 sbiw r28, 0x0b ; 11 - 5aa: 0f b6 in r0, 0x3f ; 63 - 5ac: f8 94 cli - 5ae: de bf out 0x3e, r29 ; 62 - 5b0: 0f be out 0x3f, r0 ; 63 - 5b2: cd bf out 0x3d, r28 ; 61 - 5b4: 6c 01 movw r12, r24 - 5b6: 7b 01 movw r14, r22 - 5b8: 8a 01 movw r16, r20 - 5ba: fc 01 movw r30, r24 - 5bc: 17 82 std Z+7, r1 ; 0x07 - 5be: 16 82 std Z+6, r1 ; 0x06 - 5c0: 83 81 ldd r24, Z+3 ; 0x03 - 5c2: 81 ff sbrs r24, 1 - 5c4: bf c1 rjmp .+894 ; 0x944 - 5c6: ce 01 movw r24, r28 - 5c8: 01 96 adiw r24, 0x01 ; 1 - 5ca: 3c 01 movw r6, r24 - 5cc: f6 01 movw r30, r12 - 5ce: 93 81 ldd r25, Z+3 ; 0x03 - 5d0: f7 01 movw r30, r14 - 5d2: 93 fd sbrc r25, 3 - 5d4: 85 91 lpm r24, Z+ - 5d6: 93 ff sbrs r25, 3 - 5d8: 81 91 ld r24, Z+ - 5da: 7f 01 movw r14, r30 - 5dc: 88 23 and r24, r24 - 5de: 09 f4 brne .+2 ; 0x5e2 - 5e0: ad c1 rjmp .+858 ; 0x93c - 5e2: 85 32 cpi r24, 0x25 ; 37 - 5e4: 39 f4 brne .+14 ; 0x5f4 - 5e6: 93 fd sbrc r25, 3 - 5e8: 85 91 lpm r24, Z+ - 5ea: 93 ff sbrs r25, 3 - 5ec: 81 91 ld r24, Z+ - 5ee: 7f 01 movw r14, r30 - 5f0: 85 32 cpi r24, 0x25 ; 37 - 5f2: 21 f4 brne .+8 ; 0x5fc - 5f4: b6 01 movw r22, r12 - 5f6: 90 e0 ldi r25, 0x00 ; 0 - 5f8: d6 d1 rcall .+940 ; 0x9a6 - 5fa: e8 cf rjmp .-48 ; 0x5cc - 5fc: 91 2c mov r9, r1 - 5fe: 21 2c mov r2, r1 - 600: 31 2c mov r3, r1 - 602: ff e1 ldi r31, 0x1F ; 31 - 604: f3 15 cp r31, r3 - 606: d8 f0 brcs .+54 ; 0x63e - 608: 8b 32 cpi r24, 0x2B ; 43 - 60a: 79 f0 breq .+30 ; 0x62a - 60c: 38 f4 brcc .+14 ; 0x61c - 60e: 80 32 cpi r24, 0x20 ; 32 - 610: 79 f0 breq .+30 ; 0x630 - 612: 83 32 cpi r24, 0x23 ; 35 - 614: a1 f4 brne .+40 ; 0x63e - 616: 23 2d mov r18, r3 - 618: 20 61 ori r18, 0x10 ; 16 - 61a: 1d c0 rjmp .+58 ; 0x656 - 61c: 8d 32 cpi r24, 0x2D ; 45 - 61e: 61 f0 breq .+24 ; 0x638 - 620: 80 33 cpi r24, 0x30 ; 48 - 622: 69 f4 brne .+26 ; 0x63e - 624: 23 2d mov r18, r3 - 626: 21 60 ori r18, 0x01 ; 1 - 628: 16 c0 rjmp .+44 ; 0x656 - 62a: 83 2d mov r24, r3 - 62c: 82 60 ori r24, 0x02 ; 2 - 62e: 38 2e mov r3, r24 - 630: e3 2d mov r30, r3 - 632: e4 60 ori r30, 0x04 ; 4 - 634: 3e 2e mov r3, r30 - 636: 2a c0 rjmp .+84 ; 0x68c - 638: f3 2d mov r31, r3 - 63a: f8 60 ori r31, 0x08 ; 8 - 63c: 1d c0 rjmp .+58 ; 0x678 - 63e: 37 fc sbrc r3, 7 - 640: 2d c0 rjmp .+90 ; 0x69c - 642: 20 ed ldi r18, 0xD0 ; 208 - 644: 28 0f add r18, r24 - 646: 2a 30 cpi r18, 0x0A ; 10 - 648: 40 f0 brcs .+16 ; 0x65a - 64a: 8e 32 cpi r24, 0x2E ; 46 - 64c: b9 f4 brne .+46 ; 0x67c - 64e: 36 fc sbrc r3, 6 - 650: 75 c1 rjmp .+746 ; 0x93c - 652: 23 2d mov r18, r3 - 654: 20 64 ori r18, 0x40 ; 64 - 656: 32 2e mov r3, r18 - 658: 19 c0 rjmp .+50 ; 0x68c - 65a: 36 fe sbrs r3, 6 - 65c: 06 c0 rjmp .+12 ; 0x66a - 65e: 8a e0 ldi r24, 0x0A ; 10 - 660: 98 9e mul r9, r24 - 662: 20 0d add r18, r0 - 664: 11 24 eor r1, r1 - 666: 92 2e mov r9, r18 - 668: 11 c0 rjmp .+34 ; 0x68c - 66a: ea e0 ldi r30, 0x0A ; 10 - 66c: 2e 9e mul r2, r30 - 66e: 20 0d add r18, r0 - 670: 11 24 eor r1, r1 - 672: 22 2e mov r2, r18 - 674: f3 2d mov r31, r3 - 676: f0 62 ori r31, 0x20 ; 32 - 678: 3f 2e mov r3, r31 - 67a: 08 c0 rjmp .+16 ; 0x68c - 67c: 8c 36 cpi r24, 0x6C ; 108 - 67e: 21 f4 brne .+8 ; 0x688 - 680: 83 2d mov r24, r3 - 682: 80 68 ori r24, 0x80 ; 128 - 684: 38 2e mov r3, r24 - 686: 02 c0 rjmp .+4 ; 0x68c - 688: 88 36 cpi r24, 0x68 ; 104 - 68a: 41 f4 brne .+16 ; 0x69c - 68c: f7 01 movw r30, r14 - 68e: 93 fd sbrc r25, 3 - 690: 85 91 lpm r24, Z+ - 692: 93 ff sbrs r25, 3 - 694: 81 91 ld r24, Z+ - 696: 7f 01 movw r14, r30 - 698: 81 11 cpse r24, r1 - 69a: b3 cf rjmp .-154 ; 0x602 - 69c: 98 2f mov r25, r24 - 69e: 9f 7d andi r25, 0xDF ; 223 - 6a0: 95 54 subi r25, 0x45 ; 69 - 6a2: 93 30 cpi r25, 0x03 ; 3 - 6a4: 28 f4 brcc .+10 ; 0x6b0 - 6a6: 0c 5f subi r16, 0xFC ; 252 - 6a8: 1f 4f sbci r17, 0xFF ; 255 - 6aa: 9f e3 ldi r25, 0x3F ; 63 - 6ac: 99 83 std Y+1, r25 ; 0x01 - 6ae: 0d c0 rjmp .+26 ; 0x6ca - 6b0: 83 36 cpi r24, 0x63 ; 99 - 6b2: 31 f0 breq .+12 ; 0x6c0 - 6b4: 83 37 cpi r24, 0x73 ; 115 - 6b6: 71 f0 breq .+28 ; 0x6d4 - 6b8: 83 35 cpi r24, 0x53 ; 83 - 6ba: 09 f0 breq .+2 ; 0x6be - 6bc: 55 c0 rjmp .+170 ; 0x768 - 6be: 20 c0 rjmp .+64 ; 0x700 - 6c0: f8 01 movw r30, r16 - 6c2: 80 81 ld r24, Z - 6c4: 89 83 std Y+1, r24 ; 0x01 - 6c6: 0e 5f subi r16, 0xFE ; 254 - 6c8: 1f 4f sbci r17, 0xFF ; 255 - 6ca: 88 24 eor r8, r8 - 6cc: 83 94 inc r8 - 6ce: 91 2c mov r9, r1 - 6d0: 53 01 movw r10, r6 - 6d2: 12 c0 rjmp .+36 ; 0x6f8 - 6d4: 28 01 movw r4, r16 - 6d6: f2 e0 ldi r31, 0x02 ; 2 - 6d8: 4f 0e add r4, r31 - 6da: 51 1c adc r5, r1 - 6dc: f8 01 movw r30, r16 - 6de: a0 80 ld r10, Z - 6e0: b1 80 ldd r11, Z+1 ; 0x01 - 6e2: 36 fe sbrs r3, 6 - 6e4: 03 c0 rjmp .+6 ; 0x6ec - 6e6: 69 2d mov r22, r9 - 6e8: 70 e0 ldi r23, 0x00 ; 0 - 6ea: 02 c0 rjmp .+4 ; 0x6f0 - 6ec: 6f ef ldi r22, 0xFF ; 255 - 6ee: 7f ef ldi r23, 0xFF ; 255 - 6f0: c5 01 movw r24, r10 - 6f2: 4e d1 rcall .+668 ; 0x990 - 6f4: 4c 01 movw r8, r24 - 6f6: 82 01 movw r16, r4 - 6f8: f3 2d mov r31, r3 - 6fa: ff 77 andi r31, 0x7F ; 127 - 6fc: 3f 2e mov r3, r31 - 6fe: 15 c0 rjmp .+42 ; 0x72a - 700: 28 01 movw r4, r16 - 702: 22 e0 ldi r18, 0x02 ; 2 - 704: 42 0e add r4, r18 - 706: 51 1c adc r5, r1 - 708: f8 01 movw r30, r16 - 70a: a0 80 ld r10, Z - 70c: b1 80 ldd r11, Z+1 ; 0x01 - 70e: 36 fe sbrs r3, 6 - 710: 03 c0 rjmp .+6 ; 0x718 - 712: 69 2d mov r22, r9 - 714: 70 e0 ldi r23, 0x00 ; 0 - 716: 02 c0 rjmp .+4 ; 0x71c - 718: 6f ef ldi r22, 0xFF ; 255 - 71a: 7f ef ldi r23, 0xFF ; 255 - 71c: c5 01 movw r24, r10 - 71e: 2d d1 rcall .+602 ; 0x97a - 720: 4c 01 movw r8, r24 - 722: f3 2d mov r31, r3 - 724: f0 68 ori r31, 0x80 ; 128 - 726: 3f 2e mov r3, r31 - 728: 82 01 movw r16, r4 - 72a: 33 fc sbrc r3, 3 - 72c: 19 c0 rjmp .+50 ; 0x760 - 72e: 82 2d mov r24, r2 - 730: 90 e0 ldi r25, 0x00 ; 0 - 732: 88 16 cp r8, r24 - 734: 99 06 cpc r9, r25 - 736: a0 f4 brcc .+40 ; 0x760 - 738: b6 01 movw r22, r12 - 73a: 80 e2 ldi r24, 0x20 ; 32 - 73c: 90 e0 ldi r25, 0x00 ; 0 - 73e: 33 d1 rcall .+614 ; 0x9a6 - 740: 2a 94 dec r2 - 742: f5 cf rjmp .-22 ; 0x72e - 744: f5 01 movw r30, r10 - 746: 37 fc sbrc r3, 7 - 748: 85 91 lpm r24, Z+ - 74a: 37 fe sbrs r3, 7 - 74c: 81 91 ld r24, Z+ - 74e: 5f 01 movw r10, r30 - 750: b6 01 movw r22, r12 - 752: 90 e0 ldi r25, 0x00 ; 0 - 754: 28 d1 rcall .+592 ; 0x9a6 - 756: 21 10 cpse r2, r1 - 758: 2a 94 dec r2 - 75a: 21 e0 ldi r18, 0x01 ; 1 - 75c: 82 1a sub r8, r18 - 75e: 91 08 sbc r9, r1 - 760: 81 14 cp r8, r1 - 762: 91 04 cpc r9, r1 - 764: 79 f7 brne .-34 ; 0x744 - 766: e1 c0 rjmp .+450 ; 0x92a - 768: 84 36 cpi r24, 0x64 ; 100 - 76a: 11 f0 breq .+4 ; 0x770 - 76c: 89 36 cpi r24, 0x69 ; 105 - 76e: 39 f5 brne .+78 ; 0x7be - 770: f8 01 movw r30, r16 - 772: 37 fe sbrs r3, 7 - 774: 07 c0 rjmp .+14 ; 0x784 - 776: 60 81 ld r22, Z - 778: 71 81 ldd r23, Z+1 ; 0x01 - 77a: 82 81 ldd r24, Z+2 ; 0x02 - 77c: 93 81 ldd r25, Z+3 ; 0x03 - 77e: 0c 5f subi r16, 0xFC ; 252 - 780: 1f 4f sbci r17, 0xFF ; 255 - 782: 08 c0 rjmp .+16 ; 0x794 - 784: 60 81 ld r22, Z - 786: 71 81 ldd r23, Z+1 ; 0x01 - 788: 07 2e mov r0, r23 - 78a: 00 0c add r0, r0 - 78c: 88 0b sbc r24, r24 - 78e: 99 0b sbc r25, r25 - 790: 0e 5f subi r16, 0xFE ; 254 - 792: 1f 4f sbci r17, 0xFF ; 255 - 794: f3 2d mov r31, r3 - 796: ff 76 andi r31, 0x6F ; 111 - 798: 3f 2e mov r3, r31 - 79a: 97 ff sbrs r25, 7 - 79c: 09 c0 rjmp .+18 ; 0x7b0 - 79e: 90 95 com r25 - 7a0: 80 95 com r24 - 7a2: 70 95 com r23 - 7a4: 61 95 neg r22 - 7a6: 7f 4f sbci r23, 0xFF ; 255 - 7a8: 8f 4f sbci r24, 0xFF ; 255 - 7aa: 9f 4f sbci r25, 0xFF ; 255 - 7ac: f0 68 ori r31, 0x80 ; 128 - 7ae: 3f 2e mov r3, r31 - 7b0: 2a e0 ldi r18, 0x0A ; 10 - 7b2: 30 e0 ldi r19, 0x00 ; 0 - 7b4: a3 01 movw r20, r6 - 7b6: 33 d1 rcall .+614 ; 0xa1e <__ultoa_invert> - 7b8: 88 2e mov r8, r24 - 7ba: 86 18 sub r8, r6 - 7bc: 44 c0 rjmp .+136 ; 0x846 - 7be: 85 37 cpi r24, 0x75 ; 117 - 7c0: 31 f4 brne .+12 ; 0x7ce - 7c2: 23 2d mov r18, r3 - 7c4: 2f 7e andi r18, 0xEF ; 239 - 7c6: b2 2e mov r11, r18 - 7c8: 2a e0 ldi r18, 0x0A ; 10 - 7ca: 30 e0 ldi r19, 0x00 ; 0 - 7cc: 25 c0 rjmp .+74 ; 0x818 - 7ce: 93 2d mov r25, r3 - 7d0: 99 7f andi r25, 0xF9 ; 249 - 7d2: b9 2e mov r11, r25 - 7d4: 8f 36 cpi r24, 0x6F ; 111 - 7d6: c1 f0 breq .+48 ; 0x808 - 7d8: 18 f4 brcc .+6 ; 0x7e0 - 7da: 88 35 cpi r24, 0x58 ; 88 - 7dc: 79 f0 breq .+30 ; 0x7fc - 7de: ae c0 rjmp .+348 ; 0x93c - 7e0: 80 37 cpi r24, 0x70 ; 112 - 7e2: 19 f0 breq .+6 ; 0x7ea - 7e4: 88 37 cpi r24, 0x78 ; 120 - 7e6: 21 f0 breq .+8 ; 0x7f0 - 7e8: a9 c0 rjmp .+338 ; 0x93c - 7ea: e9 2f mov r30, r25 - 7ec: e0 61 ori r30, 0x10 ; 16 - 7ee: be 2e mov r11, r30 - 7f0: b4 fe sbrs r11, 4 - 7f2: 0d c0 rjmp .+26 ; 0x80e - 7f4: fb 2d mov r31, r11 - 7f6: f4 60 ori r31, 0x04 ; 4 - 7f8: bf 2e mov r11, r31 - 7fa: 09 c0 rjmp .+18 ; 0x80e - 7fc: 34 fe sbrs r3, 4 - 7fe: 0a c0 rjmp .+20 ; 0x814 - 800: 29 2f mov r18, r25 - 802: 26 60 ori r18, 0x06 ; 6 - 804: b2 2e mov r11, r18 - 806: 06 c0 rjmp .+12 ; 0x814 - 808: 28 e0 ldi r18, 0x08 ; 8 - 80a: 30 e0 ldi r19, 0x00 ; 0 - 80c: 05 c0 rjmp .+10 ; 0x818 - 80e: 20 e1 ldi r18, 0x10 ; 16 - 810: 30 e0 ldi r19, 0x00 ; 0 - 812: 02 c0 rjmp .+4 ; 0x818 - 814: 20 e1 ldi r18, 0x10 ; 16 - 816: 32 e0 ldi r19, 0x02 ; 2 - 818: f8 01 movw r30, r16 - 81a: b7 fe sbrs r11, 7 - 81c: 07 c0 rjmp .+14 ; 0x82c - 81e: 60 81 ld r22, Z - 820: 71 81 ldd r23, Z+1 ; 0x01 - 822: 82 81 ldd r24, Z+2 ; 0x02 - 824: 93 81 ldd r25, Z+3 ; 0x03 - 826: 0c 5f subi r16, 0xFC ; 252 - 828: 1f 4f sbci r17, 0xFF ; 255 - 82a: 06 c0 rjmp .+12 ; 0x838 - 82c: 60 81 ld r22, Z - 82e: 71 81 ldd r23, Z+1 ; 0x01 - 830: 80 e0 ldi r24, 0x00 ; 0 - 832: 90 e0 ldi r25, 0x00 ; 0 - 834: 0e 5f subi r16, 0xFE ; 254 - 836: 1f 4f sbci r17, 0xFF ; 255 - 838: a3 01 movw r20, r6 - 83a: f1 d0 rcall .+482 ; 0xa1e <__ultoa_invert> - 83c: 88 2e mov r8, r24 - 83e: 86 18 sub r8, r6 - 840: fb 2d mov r31, r11 - 842: ff 77 andi r31, 0x7F ; 127 - 844: 3f 2e mov r3, r31 - 846: 36 fe sbrs r3, 6 - 848: 0d c0 rjmp .+26 ; 0x864 - 84a: 23 2d mov r18, r3 - 84c: 2e 7f andi r18, 0xFE ; 254 - 84e: a2 2e mov r10, r18 - 850: 89 14 cp r8, r9 - 852: 58 f4 brcc .+22 ; 0x86a - 854: 34 fe sbrs r3, 4 - 856: 0b c0 rjmp .+22 ; 0x86e - 858: 32 fc sbrc r3, 2 - 85a: 09 c0 rjmp .+18 ; 0x86e - 85c: 83 2d mov r24, r3 - 85e: 8e 7e andi r24, 0xEE ; 238 - 860: a8 2e mov r10, r24 - 862: 05 c0 rjmp .+10 ; 0x86e - 864: b8 2c mov r11, r8 - 866: a3 2c mov r10, r3 - 868: 03 c0 rjmp .+6 ; 0x870 - 86a: b8 2c mov r11, r8 - 86c: 01 c0 rjmp .+2 ; 0x870 - 86e: b9 2c mov r11, r9 - 870: a4 fe sbrs r10, 4 - 872: 0f c0 rjmp .+30 ; 0x892 - 874: fe 01 movw r30, r28 - 876: e8 0d add r30, r8 - 878: f1 1d adc r31, r1 - 87a: 80 81 ld r24, Z - 87c: 80 33 cpi r24, 0x30 ; 48 - 87e: 21 f4 brne .+8 ; 0x888 - 880: 9a 2d mov r25, r10 - 882: 99 7e andi r25, 0xE9 ; 233 - 884: a9 2e mov r10, r25 - 886: 09 c0 rjmp .+18 ; 0x89a - 888: a2 fe sbrs r10, 2 - 88a: 06 c0 rjmp .+12 ; 0x898 - 88c: b3 94 inc r11 - 88e: b3 94 inc r11 - 890: 04 c0 rjmp .+8 ; 0x89a - 892: 8a 2d mov r24, r10 - 894: 86 78 andi r24, 0x86 ; 134 - 896: 09 f0 breq .+2 ; 0x89a - 898: b3 94 inc r11 - 89a: a3 fc sbrc r10, 3 - 89c: 10 c0 rjmp .+32 ; 0x8be - 89e: a0 fe sbrs r10, 0 - 8a0: 06 c0 rjmp .+12 ; 0x8ae - 8a2: b2 14 cp r11, r2 - 8a4: 80 f4 brcc .+32 ; 0x8c6 - 8a6: 28 0c add r2, r8 - 8a8: 92 2c mov r9, r2 - 8aa: 9b 18 sub r9, r11 - 8ac: 0d c0 rjmp .+26 ; 0x8c8 - 8ae: b2 14 cp r11, r2 - 8b0: 58 f4 brcc .+22 ; 0x8c8 - 8b2: b6 01 movw r22, r12 - 8b4: 80 e2 ldi r24, 0x20 ; 32 - 8b6: 90 e0 ldi r25, 0x00 ; 0 - 8b8: 76 d0 rcall .+236 ; 0x9a6 - 8ba: b3 94 inc r11 - 8bc: f8 cf rjmp .-16 ; 0x8ae - 8be: b2 14 cp r11, r2 - 8c0: 18 f4 brcc .+6 ; 0x8c8 - 8c2: 2b 18 sub r2, r11 - 8c4: 02 c0 rjmp .+4 ; 0x8ca - 8c6: 98 2c mov r9, r8 - 8c8: 21 2c mov r2, r1 - 8ca: a4 fe sbrs r10, 4 - 8cc: 0f c0 rjmp .+30 ; 0x8ec - 8ce: b6 01 movw r22, r12 - 8d0: 80 e3 ldi r24, 0x30 ; 48 - 8d2: 90 e0 ldi r25, 0x00 ; 0 - 8d4: 68 d0 rcall .+208 ; 0x9a6 - 8d6: a2 fe sbrs r10, 2 - 8d8: 16 c0 rjmp .+44 ; 0x906 - 8da: a1 fc sbrc r10, 1 - 8dc: 03 c0 rjmp .+6 ; 0x8e4 - 8de: 88 e7 ldi r24, 0x78 ; 120 - 8e0: 90 e0 ldi r25, 0x00 ; 0 - 8e2: 02 c0 rjmp .+4 ; 0x8e8 - 8e4: 88 e5 ldi r24, 0x58 ; 88 - 8e6: 90 e0 ldi r25, 0x00 ; 0 - 8e8: b6 01 movw r22, r12 - 8ea: 0c c0 rjmp .+24 ; 0x904 - 8ec: 8a 2d mov r24, r10 - 8ee: 86 78 andi r24, 0x86 ; 134 - 8f0: 51 f0 breq .+20 ; 0x906 - 8f2: a1 fe sbrs r10, 1 - 8f4: 02 c0 rjmp .+4 ; 0x8fa - 8f6: 8b e2 ldi r24, 0x2B ; 43 - 8f8: 01 c0 rjmp .+2 ; 0x8fc - 8fa: 80 e2 ldi r24, 0x20 ; 32 - 8fc: a7 fc sbrc r10, 7 - 8fe: 8d e2 ldi r24, 0x2D ; 45 - 900: b6 01 movw r22, r12 - 902: 90 e0 ldi r25, 0x00 ; 0 - 904: 50 d0 rcall .+160 ; 0x9a6 - 906: 89 14 cp r8, r9 - 908: 30 f4 brcc .+12 ; 0x916 - 90a: b6 01 movw r22, r12 - 90c: 80 e3 ldi r24, 0x30 ; 48 - 90e: 90 e0 ldi r25, 0x00 ; 0 - 910: 4a d0 rcall .+148 ; 0x9a6 - 912: 9a 94 dec r9 - 914: f8 cf rjmp .-16 ; 0x906 - 916: 8a 94 dec r8 - 918: f3 01 movw r30, r6 - 91a: e8 0d add r30, r8 - 91c: f1 1d adc r31, r1 - 91e: 80 81 ld r24, Z - 920: b6 01 movw r22, r12 - 922: 90 e0 ldi r25, 0x00 ; 0 - 924: 40 d0 rcall .+128 ; 0x9a6 - 926: 81 10 cpse r8, r1 - 928: f6 cf rjmp .-20 ; 0x916 - 92a: 22 20 and r2, r2 - 92c: 09 f4 brne .+2 ; 0x930 - 92e: 4e ce rjmp .-868 ; 0x5cc - 930: b6 01 movw r22, r12 - 932: 80 e2 ldi r24, 0x20 ; 32 - 934: 90 e0 ldi r25, 0x00 ; 0 - 936: 37 d0 rcall .+110 ; 0x9a6 - 938: 2a 94 dec r2 - 93a: f7 cf rjmp .-18 ; 0x92a - 93c: f6 01 movw r30, r12 - 93e: 86 81 ldd r24, Z+6 ; 0x06 - 940: 97 81 ldd r25, Z+7 ; 0x07 - 942: 02 c0 rjmp .+4 ; 0x948 - 944: 8f ef ldi r24, 0xFF ; 255 - 946: 9f ef ldi r25, 0xFF ; 255 - 948: 2b 96 adiw r28, 0x0b ; 11 - 94a: 0f b6 in r0, 0x3f ; 63 - 94c: f8 94 cli - 94e: de bf out 0x3e, r29 ; 62 - 950: 0f be out 0x3f, r0 ; 63 - 952: cd bf out 0x3d, r28 ; 61 - 954: df 91 pop r29 - 956: cf 91 pop r28 - 958: 1f 91 pop r17 - 95a: 0f 91 pop r16 - 95c: ff 90 pop r15 - 95e: ef 90 pop r14 - 960: df 90 pop r13 - 962: cf 90 pop r12 - 964: bf 90 pop r11 - 966: af 90 pop r10 - 968: 9f 90 pop r9 - 96a: 8f 90 pop r8 - 96c: 7f 90 pop r7 - 96e: 6f 90 pop r6 - 970: 5f 90 pop r5 - 972: 4f 90 pop r4 - 974: 3f 90 pop r3 - 976: 2f 90 pop r2 - 978: 08 95 ret +0000058a <__divsf3x>: + 58a: bf d0 rcall .+382 ; 0x70a <__fp_split3> + 58c: 98 f3 brcs .-26 ; 0x574 <__divsf3+0x4> -0000097a : - 97a: fc 01 movw r30, r24 - 97c: 05 90 lpm r0, Z+ - 97e: 61 50 subi r22, 0x01 ; 1 - 980: 70 40 sbci r23, 0x00 ; 0 - 982: 01 10 cpse r0, r1 - 984: d8 f7 brcc .-10 ; 0x97c - 986: 80 95 com r24 - 988: 90 95 com r25 - 98a: 8e 0f add r24, r30 - 98c: 9f 1f adc r25, r31 - 98e: 08 95 ret +0000058e <__divsf3_pse>: + 58e: 99 23 and r25, r25 + 590: c9 f3 breq .-14 ; 0x584 <__divsf3+0x14> + 592: 55 23 and r21, r21 + 594: b1 f3 breq .-20 ; 0x582 <__divsf3+0x12> + 596: 95 1b sub r25, r21 + 598: 55 0b sbc r21, r21 + 59a: bb 27 eor r27, r27 + 59c: aa 27 eor r26, r26 + 59e: 62 17 cp r22, r18 + 5a0: 73 07 cpc r23, r19 + 5a2: 84 07 cpc r24, r20 + 5a4: 38 f0 brcs .+14 ; 0x5b4 <__divsf3_pse+0x26> + 5a6: 9f 5f subi r25, 0xFF ; 255 + 5a8: 5f 4f sbci r21, 0xFF ; 255 + 5aa: 22 0f add r18, r18 + 5ac: 33 1f adc r19, r19 + 5ae: 44 1f adc r20, r20 + 5b0: aa 1f adc r26, r26 + 5b2: a9 f3 breq .-22 ; 0x59e <__divsf3_pse+0x10> + 5b4: 33 d0 rcall .+102 ; 0x61c <__divsf3_pse+0x8e> + 5b6: 0e 2e mov r0, r30 + 5b8: 3a f0 brmi .+14 ; 0x5c8 <__divsf3_pse+0x3a> + 5ba: e0 e8 ldi r30, 0x80 ; 128 + 5bc: 30 d0 rcall .+96 ; 0x61e <__divsf3_pse+0x90> + 5be: 91 50 subi r25, 0x01 ; 1 + 5c0: 50 40 sbci r21, 0x00 ; 0 + 5c2: e6 95 lsr r30 + 5c4: 00 1c adc r0, r0 + 5c6: ca f7 brpl .-14 ; 0x5ba <__divsf3_pse+0x2c> + 5c8: 29 d0 rcall .+82 ; 0x61c <__divsf3_pse+0x8e> + 5ca: fe 2f mov r31, r30 + 5cc: 27 d0 rcall .+78 ; 0x61c <__divsf3_pse+0x8e> + 5ce: 66 0f add r22, r22 + 5d0: 77 1f adc r23, r23 + 5d2: 88 1f adc r24, r24 + 5d4: bb 1f adc r27, r27 + 5d6: 26 17 cp r18, r22 + 5d8: 37 07 cpc r19, r23 + 5da: 48 07 cpc r20, r24 + 5dc: ab 07 cpc r26, r27 + 5de: b0 e8 ldi r27, 0x80 ; 128 + 5e0: 09 f0 breq .+2 ; 0x5e4 <__divsf3_pse+0x56> + 5e2: bb 0b sbc r27, r27 + 5e4: 80 2d mov r24, r0 + 5e6: bf 01 movw r22, r30 + 5e8: ff 27 eor r31, r31 + 5ea: 93 58 subi r25, 0x83 ; 131 + 5ec: 5f 4f sbci r21, 0xFF ; 255 + 5ee: 2a f0 brmi .+10 ; 0x5fa <__divsf3_pse+0x6c> + 5f0: 9e 3f cpi r25, 0xFE ; 254 + 5f2: 51 05 cpc r21, r1 + 5f4: 68 f0 brcs .+26 ; 0x610 <__divsf3_pse+0x82> + 5f6: 61 c0 rjmp .+194 ; 0x6ba <__fp_inf> + 5f8: ab c0 rjmp .+342 ; 0x750 <__fp_szero> + 5fa: 5f 3f cpi r21, 0xFF ; 255 + 5fc: ec f3 brlt .-6 ; 0x5f8 <__divsf3_pse+0x6a> + 5fe: 98 3e cpi r25, 0xE8 ; 232 + 600: dc f3 brlt .-10 ; 0x5f8 <__divsf3_pse+0x6a> + 602: 86 95 lsr r24 + 604: 77 95 ror r23 + 606: 67 95 ror r22 + 608: b7 95 ror r27 + 60a: f7 95 ror r31 + 60c: 9f 5f subi r25, 0xFF ; 255 + 60e: c9 f7 brne .-14 ; 0x602 <__divsf3_pse+0x74> + 610: 88 0f add r24, r24 + 612: 91 1d adc r25, r1 + 614: 96 95 lsr r25 + 616: 87 95 ror r24 + 618: 97 f9 bld r25, 7 + 61a: 08 95 ret + 61c: e1 e0 ldi r30, 0x01 ; 1 + 61e: 66 0f add r22, r22 + 620: 77 1f adc r23, r23 + 622: 88 1f adc r24, r24 + 624: bb 1f adc r27, r27 + 626: 62 17 cp r22, r18 + 628: 73 07 cpc r23, r19 + 62a: 84 07 cpc r24, r20 + 62c: ba 07 cpc r27, r26 + 62e: 20 f0 brcs .+8 ; 0x638 <__divsf3_pse+0xaa> + 630: 62 1b sub r22, r18 + 632: 73 0b sbc r23, r19 + 634: 84 0b sbc r24, r20 + 636: ba 0b sbc r27, r26 + 638: ee 1f adc r30, r30 + 63a: 88 f7 brcc .-30 ; 0x61e <__divsf3_pse+0x90> + 63c: e0 95 com r30 + 63e: 08 95 ret -00000990 : - 990: fc 01 movw r30, r24 - 992: 61 50 subi r22, 0x01 ; 1 - 994: 70 40 sbci r23, 0x00 ; 0 - 996: 01 90 ld r0, Z+ - 998: 01 10 cpse r0, r1 - 99a: d8 f7 brcc .-10 ; 0x992 - 99c: 80 95 com r24 - 99e: 90 95 com r25 - 9a0: 8e 0f add r24, r30 - 9a2: 9f 1f adc r25, r31 - 9a4: 08 95 ret +00000640 <__floatunsisf>: + 640: e8 94 clt + 642: 09 c0 rjmp .+18 ; 0x656 <__floatsisf+0x12> -000009a6 : - 9a6: 0f 93 push r16 - 9a8: 1f 93 push r17 - 9aa: cf 93 push r28 - 9ac: df 93 push r29 - 9ae: fb 01 movw r30, r22 - 9b0: 23 81 ldd r18, Z+3 ; 0x03 - 9b2: 21 fd sbrc r18, 1 - 9b4: 03 c0 rjmp .+6 ; 0x9bc - 9b6: 8f ef ldi r24, 0xFF ; 255 - 9b8: 9f ef ldi r25, 0xFF ; 255 - 9ba: 2c c0 rjmp .+88 ; 0xa14 - 9bc: 22 ff sbrs r18, 2 - 9be: 16 c0 rjmp .+44 ; 0x9ec - 9c0: 46 81 ldd r20, Z+6 ; 0x06 - 9c2: 57 81 ldd r21, Z+7 ; 0x07 - 9c4: 24 81 ldd r18, Z+4 ; 0x04 - 9c6: 35 81 ldd r19, Z+5 ; 0x05 - 9c8: 42 17 cp r20, r18 - 9ca: 53 07 cpc r21, r19 - 9cc: 44 f4 brge .+16 ; 0x9de - 9ce: a0 81 ld r26, Z - 9d0: b1 81 ldd r27, Z+1 ; 0x01 - 9d2: 9d 01 movw r18, r26 - 9d4: 2f 5f subi r18, 0xFF ; 255 - 9d6: 3f 4f sbci r19, 0xFF ; 255 - 9d8: 31 83 std Z+1, r19 ; 0x01 - 9da: 20 83 st Z, r18 - 9dc: 8c 93 st X, r24 - 9de: 26 81 ldd r18, Z+6 ; 0x06 - 9e0: 37 81 ldd r19, Z+7 ; 0x07 - 9e2: 2f 5f subi r18, 0xFF ; 255 - 9e4: 3f 4f sbci r19, 0xFF ; 255 - 9e6: 37 83 std Z+7, r19 ; 0x07 - 9e8: 26 83 std Z+6, r18 ; 0x06 - 9ea: 14 c0 rjmp .+40 ; 0xa14 - 9ec: 8b 01 movw r16, r22 - 9ee: ec 01 movw r28, r24 - 9f0: fb 01 movw r30, r22 - 9f2: 00 84 ldd r0, Z+8 ; 0x08 - 9f4: f1 85 ldd r31, Z+9 ; 0x09 - 9f6: e0 2d mov r30, r0 - 9f8: 09 95 icall - 9fa: 89 2b or r24, r25 - 9fc: e1 f6 brne .-72 ; 0x9b6 - 9fe: d8 01 movw r26, r16 - a00: 16 96 adiw r26, 0x06 ; 6 - a02: 8d 91 ld r24, X+ - a04: 9c 91 ld r25, X - a06: 17 97 sbiw r26, 0x07 ; 7 - a08: 01 96 adiw r24, 0x01 ; 1 - a0a: 17 96 adiw r26, 0x07 ; 7 - a0c: 9c 93 st X, r25 - a0e: 8e 93 st -X, r24 - a10: 16 97 sbiw r26, 0x06 ; 6 - a12: ce 01 movw r24, r28 - a14: df 91 pop r29 - a16: cf 91 pop r28 - a18: 1f 91 pop r17 - a1a: 0f 91 pop r16 - a1c: 08 95 ret +00000644 <__floatsisf>: + 644: 97 fb bst r25, 7 + 646: 3e f4 brtc .+14 ; 0x656 <__floatsisf+0x12> + 648: 90 95 com r25 + 64a: 80 95 com r24 + 64c: 70 95 com r23 + 64e: 61 95 neg r22 + 650: 7f 4f sbci r23, 0xFF ; 255 + 652: 8f 4f sbci r24, 0xFF ; 255 + 654: 9f 4f sbci r25, 0xFF ; 255 + 656: 99 23 and r25, r25 + 658: a9 f0 breq .+42 ; 0x684 <__floatsisf+0x40> + 65a: f9 2f mov r31, r25 + 65c: 96 e9 ldi r25, 0x96 ; 150 + 65e: bb 27 eor r27, r27 + 660: 93 95 inc r25 + 662: f6 95 lsr r31 + 664: 87 95 ror r24 + 666: 77 95 ror r23 + 668: 67 95 ror r22 + 66a: b7 95 ror r27 + 66c: f1 11 cpse r31, r1 + 66e: f8 cf rjmp .-16 ; 0x660 <__floatsisf+0x1c> + 670: fa f4 brpl .+62 ; 0x6b0 <__floatsisf+0x6c> + 672: bb 0f add r27, r27 + 674: 11 f4 brne .+4 ; 0x67a <__floatsisf+0x36> + 676: 60 ff sbrs r22, 0 + 678: 1b c0 rjmp .+54 ; 0x6b0 <__floatsisf+0x6c> + 67a: 6f 5f subi r22, 0xFF ; 255 + 67c: 7f 4f sbci r23, 0xFF ; 255 + 67e: 8f 4f sbci r24, 0xFF ; 255 + 680: 9f 4f sbci r25, 0xFF ; 255 + 682: 16 c0 rjmp .+44 ; 0x6b0 <__floatsisf+0x6c> + 684: 88 23 and r24, r24 + 686: 11 f0 breq .+4 ; 0x68c <__floatsisf+0x48> + 688: 96 e9 ldi r25, 0x96 ; 150 + 68a: 11 c0 rjmp .+34 ; 0x6ae <__floatsisf+0x6a> + 68c: 77 23 and r23, r23 + 68e: 21 f0 breq .+8 ; 0x698 <__floatsisf+0x54> + 690: 9e e8 ldi r25, 0x8E ; 142 + 692: 87 2f mov r24, r23 + 694: 76 2f mov r23, r22 + 696: 05 c0 rjmp .+10 ; 0x6a2 <__floatsisf+0x5e> + 698: 66 23 and r22, r22 + 69a: 71 f0 breq .+28 ; 0x6b8 <__floatsisf+0x74> + 69c: 96 e8 ldi r25, 0x86 ; 134 + 69e: 86 2f mov r24, r22 + 6a0: 70 e0 ldi r23, 0x00 ; 0 + 6a2: 60 e0 ldi r22, 0x00 ; 0 + 6a4: 2a f0 brmi .+10 ; 0x6b0 <__floatsisf+0x6c> + 6a6: 9a 95 dec r25 + 6a8: 66 0f add r22, r22 + 6aa: 77 1f adc r23, r23 + 6ac: 88 1f adc r24, r24 + 6ae: da f7 brpl .-10 ; 0x6a6 <__floatsisf+0x62> + 6b0: 88 0f add r24, r24 + 6b2: 96 95 lsr r25 + 6b4: 87 95 ror r24 + 6b6: 97 f9 bld r25, 7 + 6b8: 08 95 ret -00000a1e <__ultoa_invert>: - a1e: fa 01 movw r30, r20 - a20: aa 27 eor r26, r26 - a22: 28 30 cpi r18, 0x08 ; 8 - a24: 51 f1 breq .+84 ; 0xa7a <__ultoa_invert+0x5c> - a26: 20 31 cpi r18, 0x10 ; 16 - a28: 81 f1 breq .+96 ; 0xa8a <__ultoa_invert+0x6c> - a2a: e8 94 clt - a2c: 6f 93 push r22 - a2e: 6e 7f andi r22, 0xFE ; 254 - a30: 6e 5f subi r22, 0xFE ; 254 - a32: 7f 4f sbci r23, 0xFF ; 255 - a34: 8f 4f sbci r24, 0xFF ; 255 - a36: 9f 4f sbci r25, 0xFF ; 255 - a38: af 4f sbci r26, 0xFF ; 255 - a3a: b1 e0 ldi r27, 0x01 ; 1 - a3c: 3e d0 rcall .+124 ; 0xaba <__ultoa_invert+0x9c> - a3e: b4 e0 ldi r27, 0x04 ; 4 - a40: 3c d0 rcall .+120 ; 0xaba <__ultoa_invert+0x9c> - a42: 67 0f add r22, r23 - a44: 78 1f adc r23, r24 - a46: 89 1f adc r24, r25 - a48: 9a 1f adc r25, r26 - a4a: a1 1d adc r26, r1 - a4c: 68 0f add r22, r24 - a4e: 79 1f adc r23, r25 - a50: 8a 1f adc r24, r26 - a52: 91 1d adc r25, r1 - a54: a1 1d adc r26, r1 - a56: 6a 0f add r22, r26 - a58: 71 1d adc r23, r1 - a5a: 81 1d adc r24, r1 - a5c: 91 1d adc r25, r1 - a5e: a1 1d adc r26, r1 - a60: 20 d0 rcall .+64 ; 0xaa2 <__ultoa_invert+0x84> - a62: 09 f4 brne .+2 ; 0xa66 <__ultoa_invert+0x48> - a64: 68 94 set - a66: 3f 91 pop r19 - a68: 2a e0 ldi r18, 0x0A ; 10 - a6a: 26 9f mul r18, r22 - a6c: 11 24 eor r1, r1 - a6e: 30 19 sub r19, r0 - a70: 30 5d subi r19, 0xD0 ; 208 - a72: 31 93 st Z+, r19 - a74: de f6 brtc .-74 ; 0xa2c <__ultoa_invert+0xe> - a76: cf 01 movw r24, r30 - a78: 08 95 ret - a7a: 46 2f mov r20, r22 - a7c: 47 70 andi r20, 0x07 ; 7 - a7e: 40 5d subi r20, 0xD0 ; 208 - a80: 41 93 st Z+, r20 - a82: b3 e0 ldi r27, 0x03 ; 3 - a84: 0f d0 rcall .+30 ; 0xaa4 <__ultoa_invert+0x86> - a86: c9 f7 brne .-14 ; 0xa7a <__ultoa_invert+0x5c> - a88: f6 cf rjmp .-20 ; 0xa76 <__ultoa_invert+0x58> - a8a: 46 2f mov r20, r22 - a8c: 4f 70 andi r20, 0x0F ; 15 - a8e: 40 5d subi r20, 0xD0 ; 208 - a90: 4a 33 cpi r20, 0x3A ; 58 - a92: 18 f0 brcs .+6 ; 0xa9a <__ultoa_invert+0x7c> - a94: 49 5d subi r20, 0xD9 ; 217 - a96: 31 fd sbrc r19, 1 - a98: 40 52 subi r20, 0x20 ; 32 - a9a: 41 93 st Z+, r20 - a9c: 02 d0 rcall .+4 ; 0xaa2 <__ultoa_invert+0x84> - a9e: a9 f7 brne .-22 ; 0xa8a <__ultoa_invert+0x6c> - aa0: ea cf rjmp .-44 ; 0xa76 <__ultoa_invert+0x58> - aa2: b4 e0 ldi r27, 0x04 ; 4 - aa4: a6 95 lsr r26 - aa6: 97 95 ror r25 - aa8: 87 95 ror r24 - aaa: 77 95 ror r23 - aac: 67 95 ror r22 - aae: ba 95 dec r27 - ab0: c9 f7 brne .-14 ; 0xaa4 <__ultoa_invert+0x86> - ab2: 00 97 sbiw r24, 0x00 ; 0 - ab4: 61 05 cpc r22, r1 - ab6: 71 05 cpc r23, r1 - ab8: 08 95 ret - aba: 9b 01 movw r18, r22 - abc: ac 01 movw r20, r24 - abe: 0a 2e mov r0, r26 - ac0: 06 94 lsr r0 - ac2: 57 95 ror r21 - ac4: 47 95 ror r20 - ac6: 37 95 ror r19 - ac8: 27 95 ror r18 - aca: ba 95 dec r27 - acc: c9 f7 brne .-14 ; 0xac0 <__ultoa_invert+0xa2> - ace: 62 0f add r22, r18 - ad0: 73 1f adc r23, r19 - ad2: 84 1f adc r24, r20 - ad4: 95 1f adc r25, r21 - ad6: a0 1d adc r26, r0 - ad8: 08 95 ret +000006ba <__fp_inf>: + 6ba: 97 f9 bld r25, 7 + 6bc: 9f 67 ori r25, 0x7F ; 127 + 6be: 80 e8 ldi r24, 0x80 ; 128 + 6c0: 70 e0 ldi r23, 0x00 ; 0 + 6c2: 60 e0 ldi r22, 0x00 ; 0 + 6c4: 08 95 ret -00000ada <_exit>: - ada: f8 94 cli +000006c6 <__fp_nan>: + 6c6: 9f ef ldi r25, 0xFF ; 255 + 6c8: 80 ec ldi r24, 0xC0 ; 192 + 6ca: 08 95 ret -00000adc <__stop_program>: - adc: ff cf rjmp .-2 ; 0xadc <__stop_program> +000006cc <__fp_pscA>: + 6cc: 00 24 eor r0, r0 + 6ce: 0a 94 dec r0 + 6d0: 16 16 cp r1, r22 + 6d2: 17 06 cpc r1, r23 + 6d4: 18 06 cpc r1, r24 + 6d6: 09 06 cpc r0, r25 + 6d8: 08 95 ret + +000006da <__fp_pscB>: + 6da: 00 24 eor r0, r0 + 6dc: 0a 94 dec r0 + 6de: 12 16 cp r1, r18 + 6e0: 13 06 cpc r1, r19 + 6e2: 14 06 cpc r1, r20 + 6e4: 05 06 cpc r0, r21 + 6e6: 08 95 ret + +000006e8 <__fp_round>: + 6e8: 09 2e mov r0, r25 + 6ea: 03 94 inc r0 + 6ec: 00 0c add r0, r0 + 6ee: 11 f4 brne .+4 ; 0x6f4 <__fp_round+0xc> + 6f0: 88 23 and r24, r24 + 6f2: 52 f0 brmi .+20 ; 0x708 <__fp_round+0x20> + 6f4: bb 0f add r27, r27 + 6f6: 40 f4 brcc .+16 ; 0x708 <__fp_round+0x20> + 6f8: bf 2b or r27, r31 + 6fa: 11 f4 brne .+4 ; 0x700 <__fp_round+0x18> + 6fc: 60 ff sbrs r22, 0 + 6fe: 04 c0 rjmp .+8 ; 0x708 <__fp_round+0x20> + 700: 6f 5f subi r22, 0xFF ; 255 + 702: 7f 4f sbci r23, 0xFF ; 255 + 704: 8f 4f sbci r24, 0xFF ; 255 + 706: 9f 4f sbci r25, 0xFF ; 255 + 708: 08 95 ret + +0000070a <__fp_split3>: + 70a: 57 fd sbrc r21, 7 + 70c: 90 58 subi r25, 0x80 ; 128 + 70e: 44 0f add r20, r20 + 710: 55 1f adc r21, r21 + 712: 59 f0 breq .+22 ; 0x72a <__fp_splitA+0x10> + 714: 5f 3f cpi r21, 0xFF ; 255 + 716: 71 f0 breq .+28 ; 0x734 <__fp_splitA+0x1a> + 718: 47 95 ror r20 + +0000071a <__fp_splitA>: + 71a: 88 0f add r24, r24 + 71c: 97 fb bst r25, 7 + 71e: 99 1f adc r25, r25 + 720: 61 f0 breq .+24 ; 0x73a <__fp_splitA+0x20> + 722: 9f 3f cpi r25, 0xFF ; 255 + 724: 79 f0 breq .+30 ; 0x744 <__fp_splitA+0x2a> + 726: 87 95 ror r24 + 728: 08 95 ret + 72a: 12 16 cp r1, r18 + 72c: 13 06 cpc r1, r19 + 72e: 14 06 cpc r1, r20 + 730: 55 1f adc r21, r21 + 732: f2 cf rjmp .-28 ; 0x718 <__fp_split3+0xe> + 734: 46 95 lsr r20 + 736: f1 df rcall .-30 ; 0x71a <__fp_splitA> + 738: 08 c0 rjmp .+16 ; 0x74a <__fp_splitA+0x30> + 73a: 16 16 cp r1, r22 + 73c: 17 06 cpc r1, r23 + 73e: 18 06 cpc r1, r24 + 740: 99 1f adc r25, r25 + 742: f1 cf rjmp .-30 ; 0x726 <__fp_splitA+0xc> + 744: 86 95 lsr r24 + 746: 71 05 cpc r23, r1 + 748: 61 05 cpc r22, r1 + 74a: 08 94 sec + 74c: 08 95 ret + +0000074e <__fp_zero>: + 74e: e8 94 clt + +00000750 <__fp_szero>: + 750: bb 27 eor r27, r27 + 752: 66 27 eor r22, r22 + 754: 77 27 eor r23, r23 + 756: cb 01 movw r24, r22 + 758: 97 f9 bld r25, 7 + 75a: 08 95 ret + +0000075c : + 75c: 0f 93 push r16 + 75e: 1f 93 push r17 + 760: cf 93 push r28 + 762: df 93 push r29 + 764: cd b7 in r28, 0x3d ; 61 + 766: de b7 in r29, 0x3e ; 62 + 768: 2e 97 sbiw r28, 0x0e ; 14 + 76a: 0f b6 in r0, 0x3f ; 63 + 76c: f8 94 cli + 76e: de bf out 0x3e, r29 ; 62 + 770: 0f be out 0x3f, r0 ; 63 + 772: cd bf out 0x3d, r28 ; 61 + 774: 0d 89 ldd r16, Y+21 ; 0x15 + 776: 1e 89 ldd r17, Y+22 ; 0x16 + 778: 8f 89 ldd r24, Y+23 ; 0x17 + 77a: 98 8d ldd r25, Y+24 ; 0x18 + 77c: 26 e0 ldi r18, 0x06 ; 6 + 77e: 2c 83 std Y+4, r18 ; 0x04 + 780: 1a 83 std Y+2, r17 ; 0x02 + 782: 09 83 std Y+1, r16 ; 0x01 + 784: 97 ff sbrs r25, 7 + 786: 02 c0 rjmp .+4 ; 0x78c + 788: 80 e0 ldi r24, 0x00 ; 0 + 78a: 90 e8 ldi r25, 0x80 ; 128 + 78c: 01 97 sbiw r24, 0x01 ; 1 + 78e: 9e 83 std Y+6, r25 ; 0x06 + 790: 8d 83 std Y+5, r24 ; 0x05 + 792: ae 01 movw r20, r28 + 794: 45 5e subi r20, 0xE5 ; 229 + 796: 5f 4f sbci r21, 0xFF ; 255 + 798: 69 8d ldd r22, Y+25 ; 0x19 + 79a: 7a 8d ldd r23, Y+26 ; 0x1a + 79c: ce 01 movw r24, r28 + 79e: 01 96 adiw r24, 0x01 ; 1 + 7a0: 19 d0 rcall .+50 ; 0x7d4 + 7a2: 4d 81 ldd r20, Y+5 ; 0x05 + 7a4: 5e 81 ldd r21, Y+6 ; 0x06 + 7a6: 57 fd sbrc r21, 7 + 7a8: 0a c0 rjmp .+20 ; 0x7be + 7aa: 2f 81 ldd r18, Y+7 ; 0x07 + 7ac: 38 85 ldd r19, Y+8 ; 0x08 + 7ae: 42 17 cp r20, r18 + 7b0: 53 07 cpc r21, r19 + 7b2: 0c f4 brge .+2 ; 0x7b6 + 7b4: 9a 01 movw r18, r20 + 7b6: f8 01 movw r30, r16 + 7b8: e2 0f add r30, r18 + 7ba: f3 1f adc r31, r19 + 7bc: 10 82 st Z, r1 + 7be: 2e 96 adiw r28, 0x0e ; 14 + 7c0: 0f b6 in r0, 0x3f ; 63 + 7c2: f8 94 cli + 7c4: de bf out 0x3e, r29 ; 62 + 7c6: 0f be out 0x3f, r0 ; 63 + 7c8: cd bf out 0x3d, r28 ; 61 + 7ca: df 91 pop r29 + 7cc: cf 91 pop r28 + 7ce: 1f 91 pop r17 + 7d0: 0f 91 pop r16 + 7d2: 08 95 ret + +000007d4 : + 7d4: 2f 92 push r2 + 7d6: 3f 92 push r3 + 7d8: 4f 92 push r4 + 7da: 5f 92 push r5 + 7dc: 6f 92 push r6 + 7de: 7f 92 push r7 + 7e0: 8f 92 push r8 + 7e2: 9f 92 push r9 + 7e4: af 92 push r10 + 7e6: bf 92 push r11 + 7e8: cf 92 push r12 + 7ea: df 92 push r13 + 7ec: ef 92 push r14 + 7ee: ff 92 push r15 + 7f0: 0f 93 push r16 + 7f2: 1f 93 push r17 + 7f4: cf 93 push r28 + 7f6: df 93 push r29 + 7f8: cd b7 in r28, 0x3d ; 61 + 7fa: de b7 in r29, 0x3e ; 62 + 7fc: 2b 97 sbiw r28, 0x0b ; 11 + 7fe: 0f b6 in r0, 0x3f ; 63 + 800: f8 94 cli + 802: de bf out 0x3e, r29 ; 62 + 804: 0f be out 0x3f, r0 ; 63 + 806: cd bf out 0x3d, r28 ; 61 + 808: 6c 01 movw r12, r24 + 80a: 7b 01 movw r14, r22 + 80c: 8a 01 movw r16, r20 + 80e: fc 01 movw r30, r24 + 810: 17 82 std Z+7, r1 ; 0x07 + 812: 16 82 std Z+6, r1 ; 0x06 + 814: 83 81 ldd r24, Z+3 ; 0x03 + 816: 81 ff sbrs r24, 1 + 818: bf c1 rjmp .+894 ; 0xb98 + 81a: ce 01 movw r24, r28 + 81c: 01 96 adiw r24, 0x01 ; 1 + 81e: 3c 01 movw r6, r24 + 820: f6 01 movw r30, r12 + 822: 93 81 ldd r25, Z+3 ; 0x03 + 824: f7 01 movw r30, r14 + 826: 93 fd sbrc r25, 3 + 828: 85 91 lpm r24, Z+ + 82a: 93 ff sbrs r25, 3 + 82c: 81 91 ld r24, Z+ + 82e: 7f 01 movw r14, r30 + 830: 88 23 and r24, r24 + 832: 09 f4 brne .+2 ; 0x836 + 834: ad c1 rjmp .+858 ; 0xb90 + 836: 85 32 cpi r24, 0x25 ; 37 + 838: 39 f4 brne .+14 ; 0x848 + 83a: 93 fd sbrc r25, 3 + 83c: 85 91 lpm r24, Z+ + 83e: 93 ff sbrs r25, 3 + 840: 81 91 ld r24, Z+ + 842: 7f 01 movw r14, r30 + 844: 85 32 cpi r24, 0x25 ; 37 + 846: 21 f4 brne .+8 ; 0x850 + 848: b6 01 movw r22, r12 + 84a: 90 e0 ldi r25, 0x00 ; 0 + 84c: d6 d1 rcall .+940 ; 0xbfa + 84e: e8 cf rjmp .-48 ; 0x820 + 850: 91 2c mov r9, r1 + 852: 21 2c mov r2, r1 + 854: 31 2c mov r3, r1 + 856: ff e1 ldi r31, 0x1F ; 31 + 858: f3 15 cp r31, r3 + 85a: d8 f0 brcs .+54 ; 0x892 + 85c: 8b 32 cpi r24, 0x2B ; 43 + 85e: 79 f0 breq .+30 ; 0x87e + 860: 38 f4 brcc .+14 ; 0x870 + 862: 80 32 cpi r24, 0x20 ; 32 + 864: 79 f0 breq .+30 ; 0x884 + 866: 83 32 cpi r24, 0x23 ; 35 + 868: a1 f4 brne .+40 ; 0x892 + 86a: 23 2d mov r18, r3 + 86c: 20 61 ori r18, 0x10 ; 16 + 86e: 1d c0 rjmp .+58 ; 0x8aa + 870: 8d 32 cpi r24, 0x2D ; 45 + 872: 61 f0 breq .+24 ; 0x88c + 874: 80 33 cpi r24, 0x30 ; 48 + 876: 69 f4 brne .+26 ; 0x892 + 878: 23 2d mov r18, r3 + 87a: 21 60 ori r18, 0x01 ; 1 + 87c: 16 c0 rjmp .+44 ; 0x8aa + 87e: 83 2d mov r24, r3 + 880: 82 60 ori r24, 0x02 ; 2 + 882: 38 2e mov r3, r24 + 884: e3 2d mov r30, r3 + 886: e4 60 ori r30, 0x04 ; 4 + 888: 3e 2e mov r3, r30 + 88a: 2a c0 rjmp .+84 ; 0x8e0 + 88c: f3 2d mov r31, r3 + 88e: f8 60 ori r31, 0x08 ; 8 + 890: 1d c0 rjmp .+58 ; 0x8cc + 892: 37 fc sbrc r3, 7 + 894: 2d c0 rjmp .+90 ; 0x8f0 + 896: 20 ed ldi r18, 0xD0 ; 208 + 898: 28 0f add r18, r24 + 89a: 2a 30 cpi r18, 0x0A ; 10 + 89c: 40 f0 brcs .+16 ; 0x8ae + 89e: 8e 32 cpi r24, 0x2E ; 46 + 8a0: b9 f4 brne .+46 ; 0x8d0 + 8a2: 36 fc sbrc r3, 6 + 8a4: 75 c1 rjmp .+746 ; 0xb90 + 8a6: 23 2d mov r18, r3 + 8a8: 20 64 ori r18, 0x40 ; 64 + 8aa: 32 2e mov r3, r18 + 8ac: 19 c0 rjmp .+50 ; 0x8e0 + 8ae: 36 fe sbrs r3, 6 + 8b0: 06 c0 rjmp .+12 ; 0x8be + 8b2: 8a e0 ldi r24, 0x0A ; 10 + 8b4: 98 9e mul r9, r24 + 8b6: 20 0d add r18, r0 + 8b8: 11 24 eor r1, r1 + 8ba: 92 2e mov r9, r18 + 8bc: 11 c0 rjmp .+34 ; 0x8e0 + 8be: ea e0 ldi r30, 0x0A ; 10 + 8c0: 2e 9e mul r2, r30 + 8c2: 20 0d add r18, r0 + 8c4: 11 24 eor r1, r1 + 8c6: 22 2e mov r2, r18 + 8c8: f3 2d mov r31, r3 + 8ca: f0 62 ori r31, 0x20 ; 32 + 8cc: 3f 2e mov r3, r31 + 8ce: 08 c0 rjmp .+16 ; 0x8e0 + 8d0: 8c 36 cpi r24, 0x6C ; 108 + 8d2: 21 f4 brne .+8 ; 0x8dc + 8d4: 83 2d mov r24, r3 + 8d6: 80 68 ori r24, 0x80 ; 128 + 8d8: 38 2e mov r3, r24 + 8da: 02 c0 rjmp .+4 ; 0x8e0 + 8dc: 88 36 cpi r24, 0x68 ; 104 + 8de: 41 f4 brne .+16 ; 0x8f0 + 8e0: f7 01 movw r30, r14 + 8e2: 93 fd sbrc r25, 3 + 8e4: 85 91 lpm r24, Z+ + 8e6: 93 ff sbrs r25, 3 + 8e8: 81 91 ld r24, Z+ + 8ea: 7f 01 movw r14, r30 + 8ec: 81 11 cpse r24, r1 + 8ee: b3 cf rjmp .-154 ; 0x856 + 8f0: 98 2f mov r25, r24 + 8f2: 9f 7d andi r25, 0xDF ; 223 + 8f4: 95 54 subi r25, 0x45 ; 69 + 8f6: 93 30 cpi r25, 0x03 ; 3 + 8f8: 28 f4 brcc .+10 ; 0x904 + 8fa: 0c 5f subi r16, 0xFC ; 252 + 8fc: 1f 4f sbci r17, 0xFF ; 255 + 8fe: 9f e3 ldi r25, 0x3F ; 63 + 900: 99 83 std Y+1, r25 ; 0x01 + 902: 0d c0 rjmp .+26 ; 0x91e + 904: 83 36 cpi r24, 0x63 ; 99 + 906: 31 f0 breq .+12 ; 0x914 + 908: 83 37 cpi r24, 0x73 ; 115 + 90a: 71 f0 breq .+28 ; 0x928 + 90c: 83 35 cpi r24, 0x53 ; 83 + 90e: 09 f0 breq .+2 ; 0x912 + 910: 55 c0 rjmp .+170 ; 0x9bc + 912: 20 c0 rjmp .+64 ; 0x954 + 914: f8 01 movw r30, r16 + 916: 80 81 ld r24, Z + 918: 89 83 std Y+1, r24 ; 0x01 + 91a: 0e 5f subi r16, 0xFE ; 254 + 91c: 1f 4f sbci r17, 0xFF ; 255 + 91e: 88 24 eor r8, r8 + 920: 83 94 inc r8 + 922: 91 2c mov r9, r1 + 924: 53 01 movw r10, r6 + 926: 12 c0 rjmp .+36 ; 0x94c + 928: 28 01 movw r4, r16 + 92a: f2 e0 ldi r31, 0x02 ; 2 + 92c: 4f 0e add r4, r31 + 92e: 51 1c adc r5, r1 + 930: f8 01 movw r30, r16 + 932: a0 80 ld r10, Z + 934: b1 80 ldd r11, Z+1 ; 0x01 + 936: 36 fe sbrs r3, 6 + 938: 03 c0 rjmp .+6 ; 0x940 + 93a: 69 2d mov r22, r9 + 93c: 70 e0 ldi r23, 0x00 ; 0 + 93e: 02 c0 rjmp .+4 ; 0x944 + 940: 6f ef ldi r22, 0xFF ; 255 + 942: 7f ef ldi r23, 0xFF ; 255 + 944: c5 01 movw r24, r10 + 946: 4e d1 rcall .+668 ; 0xbe4 + 948: 4c 01 movw r8, r24 + 94a: 82 01 movw r16, r4 + 94c: f3 2d mov r31, r3 + 94e: ff 77 andi r31, 0x7F ; 127 + 950: 3f 2e mov r3, r31 + 952: 15 c0 rjmp .+42 ; 0x97e + 954: 28 01 movw r4, r16 + 956: 22 e0 ldi r18, 0x02 ; 2 + 958: 42 0e add r4, r18 + 95a: 51 1c adc r5, r1 + 95c: f8 01 movw r30, r16 + 95e: a0 80 ld r10, Z + 960: b1 80 ldd r11, Z+1 ; 0x01 + 962: 36 fe sbrs r3, 6 + 964: 03 c0 rjmp .+6 ; 0x96c + 966: 69 2d mov r22, r9 + 968: 70 e0 ldi r23, 0x00 ; 0 + 96a: 02 c0 rjmp .+4 ; 0x970 + 96c: 6f ef ldi r22, 0xFF ; 255 + 96e: 7f ef ldi r23, 0xFF ; 255 + 970: c5 01 movw r24, r10 + 972: 2d d1 rcall .+602 ; 0xbce + 974: 4c 01 movw r8, r24 + 976: f3 2d mov r31, r3 + 978: f0 68 ori r31, 0x80 ; 128 + 97a: 3f 2e mov r3, r31 + 97c: 82 01 movw r16, r4 + 97e: 33 fc sbrc r3, 3 + 980: 19 c0 rjmp .+50 ; 0x9b4 + 982: 82 2d mov r24, r2 + 984: 90 e0 ldi r25, 0x00 ; 0 + 986: 88 16 cp r8, r24 + 988: 99 06 cpc r9, r25 + 98a: a0 f4 brcc .+40 ; 0x9b4 + 98c: b6 01 movw r22, r12 + 98e: 80 e2 ldi r24, 0x20 ; 32 + 990: 90 e0 ldi r25, 0x00 ; 0 + 992: 33 d1 rcall .+614 ; 0xbfa + 994: 2a 94 dec r2 + 996: f5 cf rjmp .-22 ; 0x982 + 998: f5 01 movw r30, r10 + 99a: 37 fc sbrc r3, 7 + 99c: 85 91 lpm r24, Z+ + 99e: 37 fe sbrs r3, 7 + 9a0: 81 91 ld r24, Z+ + 9a2: 5f 01 movw r10, r30 + 9a4: b6 01 movw r22, r12 + 9a6: 90 e0 ldi r25, 0x00 ; 0 + 9a8: 28 d1 rcall .+592 ; 0xbfa + 9aa: 21 10 cpse r2, r1 + 9ac: 2a 94 dec r2 + 9ae: 21 e0 ldi r18, 0x01 ; 1 + 9b0: 82 1a sub r8, r18 + 9b2: 91 08 sbc r9, r1 + 9b4: 81 14 cp r8, r1 + 9b6: 91 04 cpc r9, r1 + 9b8: 79 f7 brne .-34 ; 0x998 + 9ba: e1 c0 rjmp .+450 ; 0xb7e + 9bc: 84 36 cpi r24, 0x64 ; 100 + 9be: 11 f0 breq .+4 ; 0x9c4 + 9c0: 89 36 cpi r24, 0x69 ; 105 + 9c2: 39 f5 brne .+78 ; 0xa12 + 9c4: f8 01 movw r30, r16 + 9c6: 37 fe sbrs r3, 7 + 9c8: 07 c0 rjmp .+14 ; 0x9d8 + 9ca: 60 81 ld r22, Z + 9cc: 71 81 ldd r23, Z+1 ; 0x01 + 9ce: 82 81 ldd r24, Z+2 ; 0x02 + 9d0: 93 81 ldd r25, Z+3 ; 0x03 + 9d2: 0c 5f subi r16, 0xFC ; 252 + 9d4: 1f 4f sbci r17, 0xFF ; 255 + 9d6: 08 c0 rjmp .+16 ; 0x9e8 + 9d8: 60 81 ld r22, Z + 9da: 71 81 ldd r23, Z+1 ; 0x01 + 9dc: 07 2e mov r0, r23 + 9de: 00 0c add r0, r0 + 9e0: 88 0b sbc r24, r24 + 9e2: 99 0b sbc r25, r25 + 9e4: 0e 5f subi r16, 0xFE ; 254 + 9e6: 1f 4f sbci r17, 0xFF ; 255 + 9e8: f3 2d mov r31, r3 + 9ea: ff 76 andi r31, 0x6F ; 111 + 9ec: 3f 2e mov r3, r31 + 9ee: 97 ff sbrs r25, 7 + 9f0: 09 c0 rjmp .+18 ; 0xa04 + 9f2: 90 95 com r25 + 9f4: 80 95 com r24 + 9f6: 70 95 com r23 + 9f8: 61 95 neg r22 + 9fa: 7f 4f sbci r23, 0xFF ; 255 + 9fc: 8f 4f sbci r24, 0xFF ; 255 + 9fe: 9f 4f sbci r25, 0xFF ; 255 + a00: f0 68 ori r31, 0x80 ; 128 + a02: 3f 2e mov r3, r31 + a04: 2a e0 ldi r18, 0x0A ; 10 + a06: 30 e0 ldi r19, 0x00 ; 0 + a08: a3 01 movw r20, r6 + a0a: 33 d1 rcall .+614 ; 0xc72 <__ultoa_invert> + a0c: 88 2e mov r8, r24 + a0e: 86 18 sub r8, r6 + a10: 44 c0 rjmp .+136 ; 0xa9a + a12: 85 37 cpi r24, 0x75 ; 117 + a14: 31 f4 brne .+12 ; 0xa22 + a16: 23 2d mov r18, r3 + a18: 2f 7e andi r18, 0xEF ; 239 + a1a: b2 2e mov r11, r18 + a1c: 2a e0 ldi r18, 0x0A ; 10 + a1e: 30 e0 ldi r19, 0x00 ; 0 + a20: 25 c0 rjmp .+74 ; 0xa6c + a22: 93 2d mov r25, r3 + a24: 99 7f andi r25, 0xF9 ; 249 + a26: b9 2e mov r11, r25 + a28: 8f 36 cpi r24, 0x6F ; 111 + a2a: c1 f0 breq .+48 ; 0xa5c + a2c: 18 f4 brcc .+6 ; 0xa34 + a2e: 88 35 cpi r24, 0x58 ; 88 + a30: 79 f0 breq .+30 ; 0xa50 + a32: ae c0 rjmp .+348 ; 0xb90 + a34: 80 37 cpi r24, 0x70 ; 112 + a36: 19 f0 breq .+6 ; 0xa3e + a38: 88 37 cpi r24, 0x78 ; 120 + a3a: 21 f0 breq .+8 ; 0xa44 + a3c: a9 c0 rjmp .+338 ; 0xb90 + a3e: e9 2f mov r30, r25 + a40: e0 61 ori r30, 0x10 ; 16 + a42: be 2e mov r11, r30 + a44: b4 fe sbrs r11, 4 + a46: 0d c0 rjmp .+26 ; 0xa62 + a48: fb 2d mov r31, r11 + a4a: f4 60 ori r31, 0x04 ; 4 + a4c: bf 2e mov r11, r31 + a4e: 09 c0 rjmp .+18 ; 0xa62 + a50: 34 fe sbrs r3, 4 + a52: 0a c0 rjmp .+20 ; 0xa68 + a54: 29 2f mov r18, r25 + a56: 26 60 ori r18, 0x06 ; 6 + a58: b2 2e mov r11, r18 + a5a: 06 c0 rjmp .+12 ; 0xa68 + a5c: 28 e0 ldi r18, 0x08 ; 8 + a5e: 30 e0 ldi r19, 0x00 ; 0 + a60: 05 c0 rjmp .+10 ; 0xa6c + a62: 20 e1 ldi r18, 0x10 ; 16 + a64: 30 e0 ldi r19, 0x00 ; 0 + a66: 02 c0 rjmp .+4 ; 0xa6c + a68: 20 e1 ldi r18, 0x10 ; 16 + a6a: 32 e0 ldi r19, 0x02 ; 2 + a6c: f8 01 movw r30, r16 + a6e: b7 fe sbrs r11, 7 + a70: 07 c0 rjmp .+14 ; 0xa80 + a72: 60 81 ld r22, Z + a74: 71 81 ldd r23, Z+1 ; 0x01 + a76: 82 81 ldd r24, Z+2 ; 0x02 + a78: 93 81 ldd r25, Z+3 ; 0x03 + a7a: 0c 5f subi r16, 0xFC ; 252 + a7c: 1f 4f sbci r17, 0xFF ; 255 + a7e: 06 c0 rjmp .+12 ; 0xa8c + a80: 60 81 ld r22, Z + a82: 71 81 ldd r23, Z+1 ; 0x01 + a84: 80 e0 ldi r24, 0x00 ; 0 + a86: 90 e0 ldi r25, 0x00 ; 0 + a88: 0e 5f subi r16, 0xFE ; 254 + a8a: 1f 4f sbci r17, 0xFF ; 255 + a8c: a3 01 movw r20, r6 + a8e: f1 d0 rcall .+482 ; 0xc72 <__ultoa_invert> + a90: 88 2e mov r8, r24 + a92: 86 18 sub r8, r6 + a94: fb 2d mov r31, r11 + a96: ff 77 andi r31, 0x7F ; 127 + a98: 3f 2e mov r3, r31 + a9a: 36 fe sbrs r3, 6 + a9c: 0d c0 rjmp .+26 ; 0xab8 + a9e: 23 2d mov r18, r3 + aa0: 2e 7f andi r18, 0xFE ; 254 + aa2: a2 2e mov r10, r18 + aa4: 89 14 cp r8, r9 + aa6: 58 f4 brcc .+22 ; 0xabe + aa8: 34 fe sbrs r3, 4 + aaa: 0b c0 rjmp .+22 ; 0xac2 + aac: 32 fc sbrc r3, 2 + aae: 09 c0 rjmp .+18 ; 0xac2 + ab0: 83 2d mov r24, r3 + ab2: 8e 7e andi r24, 0xEE ; 238 + ab4: a8 2e mov r10, r24 + ab6: 05 c0 rjmp .+10 ; 0xac2 + ab8: b8 2c mov r11, r8 + aba: a3 2c mov r10, r3 + abc: 03 c0 rjmp .+6 ; 0xac4 + abe: b8 2c mov r11, r8 + ac0: 01 c0 rjmp .+2 ; 0xac4 + ac2: b9 2c mov r11, r9 + ac4: a4 fe sbrs r10, 4 + ac6: 0f c0 rjmp .+30 ; 0xae6 + ac8: fe 01 movw r30, r28 + aca: e8 0d add r30, r8 + acc: f1 1d adc r31, r1 + ace: 80 81 ld r24, Z + ad0: 80 33 cpi r24, 0x30 ; 48 + ad2: 21 f4 brne .+8 ; 0xadc + ad4: 9a 2d mov r25, r10 + ad6: 99 7e andi r25, 0xE9 ; 233 + ad8: a9 2e mov r10, r25 + ada: 09 c0 rjmp .+18 ; 0xaee + adc: a2 fe sbrs r10, 2 + ade: 06 c0 rjmp .+12 ; 0xaec + ae0: b3 94 inc r11 + ae2: b3 94 inc r11 + ae4: 04 c0 rjmp .+8 ; 0xaee + ae6: 8a 2d mov r24, r10 + ae8: 86 78 andi r24, 0x86 ; 134 + aea: 09 f0 breq .+2 ; 0xaee + aec: b3 94 inc r11 + aee: a3 fc sbrc r10, 3 + af0: 10 c0 rjmp .+32 ; 0xb12 + af2: a0 fe sbrs r10, 0 + af4: 06 c0 rjmp .+12 ; 0xb02 + af6: b2 14 cp r11, r2 + af8: 80 f4 brcc .+32 ; 0xb1a + afa: 28 0c add r2, r8 + afc: 92 2c mov r9, r2 + afe: 9b 18 sub r9, r11 + b00: 0d c0 rjmp .+26 ; 0xb1c + b02: b2 14 cp r11, r2 + b04: 58 f4 brcc .+22 ; 0xb1c + b06: b6 01 movw r22, r12 + b08: 80 e2 ldi r24, 0x20 ; 32 + b0a: 90 e0 ldi r25, 0x00 ; 0 + b0c: 76 d0 rcall .+236 ; 0xbfa + b0e: b3 94 inc r11 + b10: f8 cf rjmp .-16 ; 0xb02 + b12: b2 14 cp r11, r2 + b14: 18 f4 brcc .+6 ; 0xb1c + b16: 2b 18 sub r2, r11 + b18: 02 c0 rjmp .+4 ; 0xb1e + b1a: 98 2c mov r9, r8 + b1c: 21 2c mov r2, r1 + b1e: a4 fe sbrs r10, 4 + b20: 0f c0 rjmp .+30 ; 0xb40 + b22: b6 01 movw r22, r12 + b24: 80 e3 ldi r24, 0x30 ; 48 + b26: 90 e0 ldi r25, 0x00 ; 0 + b28: 68 d0 rcall .+208 ; 0xbfa + b2a: a2 fe sbrs r10, 2 + b2c: 16 c0 rjmp .+44 ; 0xb5a + b2e: a1 fc sbrc r10, 1 + b30: 03 c0 rjmp .+6 ; 0xb38 + b32: 88 e7 ldi r24, 0x78 ; 120 + b34: 90 e0 ldi r25, 0x00 ; 0 + b36: 02 c0 rjmp .+4 ; 0xb3c + b38: 88 e5 ldi r24, 0x58 ; 88 + b3a: 90 e0 ldi r25, 0x00 ; 0 + b3c: b6 01 movw r22, r12 + b3e: 0c c0 rjmp .+24 ; 0xb58 + b40: 8a 2d mov r24, r10 + b42: 86 78 andi r24, 0x86 ; 134 + b44: 51 f0 breq .+20 ; 0xb5a + b46: a1 fe sbrs r10, 1 + b48: 02 c0 rjmp .+4 ; 0xb4e + b4a: 8b e2 ldi r24, 0x2B ; 43 + b4c: 01 c0 rjmp .+2 ; 0xb50 + b4e: 80 e2 ldi r24, 0x20 ; 32 + b50: a7 fc sbrc r10, 7 + b52: 8d e2 ldi r24, 0x2D ; 45 + b54: b6 01 movw r22, r12 + b56: 90 e0 ldi r25, 0x00 ; 0 + b58: 50 d0 rcall .+160 ; 0xbfa + b5a: 89 14 cp r8, r9 + b5c: 30 f4 brcc .+12 ; 0xb6a + b5e: b6 01 movw r22, r12 + b60: 80 e3 ldi r24, 0x30 ; 48 + b62: 90 e0 ldi r25, 0x00 ; 0 + b64: 4a d0 rcall .+148 ; 0xbfa + b66: 9a 94 dec r9 + b68: f8 cf rjmp .-16 ; 0xb5a + b6a: 8a 94 dec r8 + b6c: f3 01 movw r30, r6 + b6e: e8 0d add r30, r8 + b70: f1 1d adc r31, r1 + b72: 80 81 ld r24, Z + b74: b6 01 movw r22, r12 + b76: 90 e0 ldi r25, 0x00 ; 0 + b78: 40 d0 rcall .+128 ; 0xbfa + b7a: 81 10 cpse r8, r1 + b7c: f6 cf rjmp .-20 ; 0xb6a + b7e: 22 20 and r2, r2 + b80: 09 f4 brne .+2 ; 0xb84 + b82: 4e ce rjmp .-868 ; 0x820 + b84: b6 01 movw r22, r12 + b86: 80 e2 ldi r24, 0x20 ; 32 + b88: 90 e0 ldi r25, 0x00 ; 0 + b8a: 37 d0 rcall .+110 ; 0xbfa + b8c: 2a 94 dec r2 + b8e: f7 cf rjmp .-18 ; 0xb7e + b90: f6 01 movw r30, r12 + b92: 86 81 ldd r24, Z+6 ; 0x06 + b94: 97 81 ldd r25, Z+7 ; 0x07 + b96: 02 c0 rjmp .+4 ; 0xb9c + b98: 8f ef ldi r24, 0xFF ; 255 + b9a: 9f ef ldi r25, 0xFF ; 255 + b9c: 2b 96 adiw r28, 0x0b ; 11 + b9e: 0f b6 in r0, 0x3f ; 63 + ba0: f8 94 cli + ba2: de bf out 0x3e, r29 ; 62 + ba4: 0f be out 0x3f, r0 ; 63 + ba6: cd bf out 0x3d, r28 ; 61 + ba8: df 91 pop r29 + baa: cf 91 pop r28 + bac: 1f 91 pop r17 + bae: 0f 91 pop r16 + bb0: ff 90 pop r15 + bb2: ef 90 pop r14 + bb4: df 90 pop r13 + bb6: cf 90 pop r12 + bb8: bf 90 pop r11 + bba: af 90 pop r10 + bbc: 9f 90 pop r9 + bbe: 8f 90 pop r8 + bc0: 7f 90 pop r7 + bc2: 6f 90 pop r6 + bc4: 5f 90 pop r5 + bc6: 4f 90 pop r4 + bc8: 3f 90 pop r3 + bca: 2f 90 pop r2 + bcc: 08 95 ret + +00000bce : + bce: fc 01 movw r30, r24 + bd0: 05 90 lpm r0, Z+ + bd2: 61 50 subi r22, 0x01 ; 1 + bd4: 70 40 sbci r23, 0x00 ; 0 + bd6: 01 10 cpse r0, r1 + bd8: d8 f7 brcc .-10 ; 0xbd0 + bda: 80 95 com r24 + bdc: 90 95 com r25 + bde: 8e 0f add r24, r30 + be0: 9f 1f adc r25, r31 + be2: 08 95 ret + +00000be4 : + be4: fc 01 movw r30, r24 + be6: 61 50 subi r22, 0x01 ; 1 + be8: 70 40 sbci r23, 0x00 ; 0 + bea: 01 90 ld r0, Z+ + bec: 01 10 cpse r0, r1 + bee: d8 f7 brcc .-10 ; 0xbe6 + bf0: 80 95 com r24 + bf2: 90 95 com r25 + bf4: 8e 0f add r24, r30 + bf6: 9f 1f adc r25, r31 + bf8: 08 95 ret + +00000bfa : + bfa: 0f 93 push r16 + bfc: 1f 93 push r17 + bfe: cf 93 push r28 + c00: df 93 push r29 + c02: fb 01 movw r30, r22 + c04: 23 81 ldd r18, Z+3 ; 0x03 + c06: 21 fd sbrc r18, 1 + c08: 03 c0 rjmp .+6 ; 0xc10 + c0a: 8f ef ldi r24, 0xFF ; 255 + c0c: 9f ef ldi r25, 0xFF ; 255 + c0e: 2c c0 rjmp .+88 ; 0xc68 + c10: 22 ff sbrs r18, 2 + c12: 16 c0 rjmp .+44 ; 0xc40 + c14: 46 81 ldd r20, Z+6 ; 0x06 + c16: 57 81 ldd r21, Z+7 ; 0x07 + c18: 24 81 ldd r18, Z+4 ; 0x04 + c1a: 35 81 ldd r19, Z+5 ; 0x05 + c1c: 42 17 cp r20, r18 + c1e: 53 07 cpc r21, r19 + c20: 44 f4 brge .+16 ; 0xc32 + c22: a0 81 ld r26, Z + c24: b1 81 ldd r27, Z+1 ; 0x01 + c26: 9d 01 movw r18, r26 + c28: 2f 5f subi r18, 0xFF ; 255 + c2a: 3f 4f sbci r19, 0xFF ; 255 + c2c: 31 83 std Z+1, r19 ; 0x01 + c2e: 20 83 st Z, r18 + c30: 8c 93 st X, r24 + c32: 26 81 ldd r18, Z+6 ; 0x06 + c34: 37 81 ldd r19, Z+7 ; 0x07 + c36: 2f 5f subi r18, 0xFF ; 255 + c38: 3f 4f sbci r19, 0xFF ; 255 + c3a: 37 83 std Z+7, r19 ; 0x07 + c3c: 26 83 std Z+6, r18 ; 0x06 + c3e: 14 c0 rjmp .+40 ; 0xc68 + c40: 8b 01 movw r16, r22 + c42: ec 01 movw r28, r24 + c44: fb 01 movw r30, r22 + c46: 00 84 ldd r0, Z+8 ; 0x08 + c48: f1 85 ldd r31, Z+9 ; 0x09 + c4a: e0 2d mov r30, r0 + c4c: 09 95 icall + c4e: 89 2b or r24, r25 + c50: e1 f6 brne .-72 ; 0xc0a + c52: d8 01 movw r26, r16 + c54: 16 96 adiw r26, 0x06 ; 6 + c56: 8d 91 ld r24, X+ + c58: 9c 91 ld r25, X + c5a: 17 97 sbiw r26, 0x07 ; 7 + c5c: 01 96 adiw r24, 0x01 ; 1 + c5e: 17 96 adiw r26, 0x07 ; 7 + c60: 9c 93 st X, r25 + c62: 8e 93 st -X, r24 + c64: 16 97 sbiw r26, 0x06 ; 6 + c66: ce 01 movw r24, r28 + c68: df 91 pop r29 + c6a: cf 91 pop r28 + c6c: 1f 91 pop r17 + c6e: 0f 91 pop r16 + c70: 08 95 ret + +00000c72 <__ultoa_invert>: + c72: fa 01 movw r30, r20 + c74: aa 27 eor r26, r26 + c76: 28 30 cpi r18, 0x08 ; 8 + c78: 51 f1 breq .+84 ; 0xcce <__ultoa_invert+0x5c> + c7a: 20 31 cpi r18, 0x10 ; 16 + c7c: 81 f1 breq .+96 ; 0xcde <__ultoa_invert+0x6c> + c7e: e8 94 clt + c80: 6f 93 push r22 + c82: 6e 7f andi r22, 0xFE ; 254 + c84: 6e 5f subi r22, 0xFE ; 254 + c86: 7f 4f sbci r23, 0xFF ; 255 + c88: 8f 4f sbci r24, 0xFF ; 255 + c8a: 9f 4f sbci r25, 0xFF ; 255 + c8c: af 4f sbci r26, 0xFF ; 255 + c8e: b1 e0 ldi r27, 0x01 ; 1 + c90: 3e d0 rcall .+124 ; 0xd0e <__ultoa_invert+0x9c> + c92: b4 e0 ldi r27, 0x04 ; 4 + c94: 3c d0 rcall .+120 ; 0xd0e <__ultoa_invert+0x9c> + c96: 67 0f add r22, r23 + c98: 78 1f adc r23, r24 + c9a: 89 1f adc r24, r25 + c9c: 9a 1f adc r25, r26 + c9e: a1 1d adc r26, r1 + ca0: 68 0f add r22, r24 + ca2: 79 1f adc r23, r25 + ca4: 8a 1f adc r24, r26 + ca6: 91 1d adc r25, r1 + ca8: a1 1d adc r26, r1 + caa: 6a 0f add r22, r26 + cac: 71 1d adc r23, r1 + cae: 81 1d adc r24, r1 + cb0: 91 1d adc r25, r1 + cb2: a1 1d adc r26, r1 + cb4: 20 d0 rcall .+64 ; 0xcf6 <__ultoa_invert+0x84> + cb6: 09 f4 brne .+2 ; 0xcba <__ultoa_invert+0x48> + cb8: 68 94 set + cba: 3f 91 pop r19 + cbc: 2a e0 ldi r18, 0x0A ; 10 + cbe: 26 9f mul r18, r22 + cc0: 11 24 eor r1, r1 + cc2: 30 19 sub r19, r0 + cc4: 30 5d subi r19, 0xD0 ; 208 + cc6: 31 93 st Z+, r19 + cc8: de f6 brtc .-74 ; 0xc80 <__ultoa_invert+0xe> + cca: cf 01 movw r24, r30 + ccc: 08 95 ret + cce: 46 2f mov r20, r22 + cd0: 47 70 andi r20, 0x07 ; 7 + cd2: 40 5d subi r20, 0xD0 ; 208 + cd4: 41 93 st Z+, r20 + cd6: b3 e0 ldi r27, 0x03 ; 3 + cd8: 0f d0 rcall .+30 ; 0xcf8 <__ultoa_invert+0x86> + cda: c9 f7 brne .-14 ; 0xcce <__ultoa_invert+0x5c> + cdc: f6 cf rjmp .-20 ; 0xcca <__ultoa_invert+0x58> + cde: 46 2f mov r20, r22 + ce0: 4f 70 andi r20, 0x0F ; 15 + ce2: 40 5d subi r20, 0xD0 ; 208 + ce4: 4a 33 cpi r20, 0x3A ; 58 + ce6: 18 f0 brcs .+6 ; 0xcee <__ultoa_invert+0x7c> + ce8: 49 5d subi r20, 0xD9 ; 217 + cea: 31 fd sbrc r19, 1 + cec: 40 52 subi r20, 0x20 ; 32 + cee: 41 93 st Z+, r20 + cf0: 02 d0 rcall .+4 ; 0xcf6 <__ultoa_invert+0x84> + cf2: a9 f7 brne .-22 ; 0xcde <__ultoa_invert+0x6c> + cf4: ea cf rjmp .-44 ; 0xcca <__ultoa_invert+0x58> + cf6: b4 e0 ldi r27, 0x04 ; 4 + cf8: a6 95 lsr r26 + cfa: 97 95 ror r25 + cfc: 87 95 ror r24 + cfe: 77 95 ror r23 + d00: 67 95 ror r22 + d02: ba 95 dec r27 + d04: c9 f7 brne .-14 ; 0xcf8 <__ultoa_invert+0x86> + d06: 00 97 sbiw r24, 0x00 ; 0 + d08: 61 05 cpc r22, r1 + d0a: 71 05 cpc r23, r1 + d0c: 08 95 ret + d0e: 9b 01 movw r18, r22 + d10: ac 01 movw r20, r24 + d12: 0a 2e mov r0, r26 + d14: 06 94 lsr r0 + d16: 57 95 ror r21 + d18: 47 95 ror r20 + d1a: 37 95 ror r19 + d1c: 27 95 ror r18 + d1e: ba 95 dec r27 + d20: c9 f7 brne .-14 ; 0xd14 <__ultoa_invert+0xa2> + d22: 62 0f add r22, r18 + d24: 73 1f adc r23, r19 + d26: 84 1f adc r24, r20 + d28: 95 1f adc r25, r21 + d2a: a0 1d adc r26, r0 + d2c: 08 95 ret + +00000d2e <_exit>: + d2e: f8 94 cli + +00000d30 <__stop_program>: + d30: ff cf rjmp .-2 ; 0xd30 <__stop_program> diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.map b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.map index 8cf36d8..9d02528 100644 --- a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.map +++ b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.map @@ -1,5 +1,25 @@ Archive member included to satisfy reference by file (symbol) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3.o) + main.o (__divsf3) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) + c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3.o) (__divsf3x) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(floatsisf.o) + main.o (__floatunsisf) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_inf.o) + c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) (__fp_inf) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_nan.o) + c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) (__fp_nan) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscA.o) + c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) (__fp_pscA) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscB.o) + c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) (__fp_pscB) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_round.o) + c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3.o) (__fp_round) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_split3.o) + c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) (__fp_split3) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_zero.o) + c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) (__fp_szero) c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o (exit) c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_copy_data.o) @@ -39,6 +59,8 @@ Discarded input sections 0x00000000 0x18 lcd_control.o .text.lcd_move_right 0x00000000 0x8 lcd_control.o + .text.lcd_write_int + 0x00000000 0xb6 lcd_control.o .text 0x00000000 0x0 main.o .data 0x00000000 0x0 main.o .bss 0x00000000 0x0 main.o @@ -48,6 +70,36 @@ Discarded input sections .text 0x00000000 0x0 ultrasonic_sensor.o .data 0x00000000 0x0 ultrasonic_sensor.o .bss 0x00000000 0x0 ultrasonic_sensor.o + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(floatsisf.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(floatsisf.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(floatsisf.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_inf.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_inf.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_inf.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_nan.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_nan.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_nan.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscA.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscA.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscA.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscB.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscB.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscB.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_round.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_round.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_round.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_split3.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_split3.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_split3.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_zero.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_zero.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_zero.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) @@ -244,7 +296,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x00000000 0xade +.text 0x00000000 0xd32 *(.vectors) .vectors 0x00000000 0x8c C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o 0x00000000 __vector_default @@ -305,6 +357,7 @@ END GROUP .text 0x000000c6 0x2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o 0x000000c6 __vector_22 0x000000c6 __vector_28 + 0x000000c6 __vector_1 0x000000c6 __vector_32 0x000000c6 __vector_34 0x000000c6 __vector_24 @@ -312,7 +365,6 @@ END GROUP 0x000000c6 __bad_interrupt 0x000000c6 __vector_6 0x000000c6 __vector_31 - 0x000000c6 __vector_3 0x000000c6 __vector_23 0x000000c6 __vector_30 0x000000c6 __vector_25 @@ -362,78 +414,112 @@ END GROUP .text.lcd_write_string 0x000001ae 0x18 lcd_control.o 0x000001ae lcd_write_string - .text.lcd_write_int - 0x000001c6 0xb0 lcd_control.o - 0x000001c6 lcd_write_int + .text.lcd_write_double + 0x000001c6 0xec lcd_control.o + 0x000001c6 lcd_write_double .text.ultrasoon_value_set_event - 0x00000276 0x1e main.o + 0x000002b2 0x1e main.o .text.snap_event_trigger - 0x00000294 0x4 main.o - .text.__vector_1 - 0x00000298 0x4e main.o - 0x00000298 __vector_1 - .text.main 0x000002e6 0x36 main.o - 0x000002e6 main + 0x000002d0 0x4 main.o + .text.__vector_3 + 0x000002d4 0x4e main.o + 0x000002d4 __vector_3 + .text.main 0x00000322 0x54 main.o + 0x00000322 main .text.set_stepper_state - 0x0000031c 0x24 stepper_driver.o - 0x0000031c set_stepper_state + 0x00000376 0x24 stepper_driver.o + 0x00000376 set_stepper_state .text.set_snap_event - 0x00000340 0xa stepper_driver.o - 0x00000340 set_snap_event + 0x0000039a 0xa stepper_driver.o + 0x0000039a set_snap_event .text.__vector_9 - 0x0000034a 0xc4 stepper_driver.o - 0x0000034a __vector_9 + 0x000003a4 0xc4 stepper_driver.o + 0x000003a4 __vector_9 .text.stepper_rotate_angle - 0x0000040e 0x1a stepper_driver.o - 0x0000040e stepper_rotate_angle + 0x00000468 0x1a stepper_driver.o + 0x00000468 stepper_rotate_angle .text.stepper_rotate_stop - 0x00000428 0x4 stepper_driver.o - 0x00000428 stepper_rotate_stop + 0x00000482 0x4 stepper_driver.o + 0x00000482 stepper_rotate_stop .text.init_stepper_driver - 0x0000042c 0x1c stepper_driver.o - 0x0000042c init_stepper_driver - .text.wait_us 0x00000448 0x1a ultrasonic_sensor.o - 0x00000448 wait_us - .text.wait_ms 0x00000462 0x1e ultrasonic_sensor.o - 0x00000462 wait_ms + 0x00000486 0x1c stepper_driver.o + 0x00000486 init_stepper_driver + .text.wait_us 0x000004a2 0x1a ultrasonic_sensor.o + 0x000004a2 wait_us + .text.wait_ms 0x000004bc 0x1e ultrasonic_sensor.o + 0x000004bc wait_ms .text.ultrasonic_init - 0x00000480 0x1e ultrasonic_sensor.o - 0x00000480 ultrasonic_init + 0x000004da 0x1e ultrasonic_sensor.o + 0x000004da ultrasonic_init .text.ultrasonic_send_pulse - 0x0000049e 0x1a ultrasonic_sensor.o - 0x0000049e ultrasonic_send_pulse + 0x000004f8 0x1a ultrasonic_sensor.o + 0x000004f8 ultrasonic_send_pulse .text.ultrasonic_handle_interrupt - 0x000004b8 0x3c ultrasonic_sensor.o - 0x000004b8 ultrasonic_handle_interrupt + 0x00000512 0x3c ultrasonic_sensor.o + 0x00000512 ultrasonic_handle_interrupt .text.set_value_trigger_event - 0x000004f4 0xa ultrasonic_sensor.o - 0x000004f4 set_value_trigger_event + 0x0000054e 0xa ultrasonic_sensor.o + 0x0000054e set_value_trigger_event .text.ultrasonic_get_timer_dist - 0x000004fe 0xa ultrasonic_sensor.o - 0x000004fe ultrasonic_get_timer_dist + 0x00000558 0x18 ultrasonic_sensor.o + 0x00000558 ultrasonic_get_timer_dist + .text.avr-libc.fplib + 0x00000570 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3.o) + 0x00000570 __divsf3 + .text.avr-libc.fplib + 0x00000574 0xcc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(divsf3x.o) + 0x0000058a __divsf3x + 0x0000058e __divsf3_pse + .text.avr-libc.fplib + 0x00000640 0x7a c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(floatsisf.o) + 0x00000640 __floatunsisf + 0x00000644 __floatsisf + .text.avr-libc.fplib + 0x000006ba 0xc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_inf.o) + 0x000006ba __fp_inf + .text.avr-libc.fplib + 0x000006c6 0x6 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_nan.o) + 0x000006c6 __fp_nan + .text.avr-libc.fplib + 0x000006cc 0xe c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscA.o) + 0x000006cc __fp_pscA + .text.avr-libc.fplib + 0x000006da 0xe c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_pscB.o) + 0x000006da __fp_pscB + .text.avr-libc.fplib + 0x000006e8 0x22 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_round.o) + 0x000006e8 __fp_round + .text.avr-libc.fplib + 0x0000070a 0x44 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_split3.o) + 0x0000070a __fp_split3 + 0x0000071a __fp_splitA + .text.avr-libc.fplib + 0x0000074e 0xe c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a(fp_zero.o) + 0x0000074e __fp_zero + 0x00000750 __fp_szero .text.avr-libc - 0x00000508 0x78 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(snprintf.o) - 0x00000508 snprintf + 0x0000075c 0x78 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(snprintf.o) + 0x0000075c snprintf .text.avr-libc - 0x00000580 0x3fa c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) - 0x00000580 vfprintf + 0x000007d4 0x3fa c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) + 0x000007d4 vfprintf .text.avr-libc - 0x0000097a 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen_P.o) - 0x0000097a strnlen_P + 0x00000bce 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen_P.o) + 0x00000bce strnlen_P .text.avr-libc - 0x00000990 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen.o) - 0x00000990 strnlen + 0x00000be4 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(strnlen.o) + 0x00000be4 strnlen .text.avr-libc - 0x000009a6 0x78 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(fputc.o) - 0x000009a6 fputc + 0x00000bfa 0x78 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(fputc.o) + 0x00000bfa fputc .text.avr-libc - 0x00000a1e 0xbc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(ultoa_invert.o) - 0x00000a1e __ultoa_invert - 0x00000ada . = ALIGN (0x2) + 0x00000c72 0xbc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a(ultoa_invert.o) + 0x00000c72 __ultoa_invert + 0x00000d2e . = ALIGN (0x2) *(.fini9) - .fini9 0x00000ada 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) - 0x00000ada _exit - 0x00000ada exit + .fini9 0x00000d2e 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + 0x00000d2e _exit + 0x00000d2e exit *(.fini9) *(.fini8) *(.fini8) @@ -452,11 +538,11 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00000ada 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) + .fini0 0x00000d2e 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a(_exit.o) *(.fini0) - 0x00000ade _etext = . + 0x00000d32 _etext = . -.data 0x00800100 0x16 load address 0x00000ade +.data 0x00800100 0x30 load address 0x00000d32 0x00800100 PROVIDE (__data_start, .) *(.data) *(.data*) @@ -473,43 +559,45 @@ END GROUP *(.rodata) *(.rodata*) .rodata.str1.1 - 0x00800112 0x3 lcd_control.o + 0x00800112 0xf lcd_control.o + .rodata.str1.1 + 0x00800121 0xe main.o *(.gnu.linkonce.r*) - 0x00800116 . = ALIGN (0x2) - *fill* 0x00800115 0x1 - 0x00800116 _edata = . - 0x00800116 PROVIDE (__data_end, .) + 0x00800130 . = ALIGN (0x2) + *fill* 0x0080012f 0x1 + 0x00800130 _edata = . + 0x00800130 PROVIDE (__data_end, .) -.bss 0x00800116 0xc - 0x00800116 PROVIDE (__bss_start, .) +.bss 0x00800130 0xc + 0x00800130 PROVIDE (__bss_start, .) *(.bss) *(.bss*) .bss.stepper_state - 0x00800116 0x1 stepper_driver.o - 0x00800116 stepper_state + 0x00800130 0x1 stepper_driver.o + 0x00800130 stepper_state .bss.steps_to_do - 0x00800117 0x2 stepper_driver.o - 0x00800117 steps_to_do + 0x00800131 0x2 stepper_driver.o + 0x00800131 steps_to_do .bss.steps_each_turn - 0x00800119 0x2 stepper_driver.o - 0x00800119 steps_each_turn + 0x00800133 0x2 stepper_driver.o + 0x00800133 steps_each_turn .bss.timer_dist - 0x0080011b 0x2 ultrasonic_sensor.o + 0x00800135 0x2 ultrasonic_sensor.o *(COMMON) - COMMON 0x0080011d 0x3 stepper_driver.o - 0x0080011d rotation - 0x0080011e snap_event - COMMON 0x00800120 0x2 ultrasonic_sensor.o - 0x00800120 value_set_event - 0x00800122 PROVIDE (__bss_end, .) - 0x00000ade __data_load_start = LOADADDR (.data) - 0x00000af4 __data_load_end = (__data_load_start + SIZEOF (.data)) + COMMON 0x00800137 0x3 stepper_driver.o + 0x00800137 rotation + 0x00800138 snap_event + COMMON 0x0080013a 0x2 ultrasonic_sensor.o + 0x0080013a value_set_event + 0x0080013c PROVIDE (__bss_end, .) + 0x00000d32 __data_load_start = LOADADDR (.data) + 0x00000d62 __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x00800122 0x0 +.noinit 0x0080013c 0x0 [!provide] PROVIDE (__noinit_start, .) *(.noinit*) [!provide] PROVIDE (__noinit_end, .) - 0x00800122 _end = . + 0x0080013c _end = . [!provide] PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 @@ -581,69 +669,69 @@ END GROUP .debug_sfnames *(.debug_sfnames) -.debug_aranges 0x00000000 0x148 +.debug_aranges 0x00000000 0x150 *(.debug_aranges) .debug_aranges - 0x00000000 0x78 lcd_control.o + 0x00000000 0x80 lcd_control.o .debug_aranges - 0x00000078 0x38 main.o + 0x00000080 0x38 main.o .debug_aranges - 0x000000b0 0x48 stepper_driver.o + 0x000000b8 0x48 stepper_driver.o .debug_aranges - 0x000000f8 0x50 ultrasonic_sensor.o + 0x00000100 0x50 ultrasonic_sensor.o .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0x14e2 +.debug_info 0x00000000 0x15be *(.debug_info .gnu.linkonce.wi.*) .debug_info 0x00000000 0x780 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o - .debug_info 0x00000780 0x4ee lcd_control.o - .debug_info 0x00000c6e 0x366 main.o - .debug_info 0x00000fd4 0x21e stepper_driver.o - .debug_info 0x000011f2 0x2f0 ultrasonic_sensor.o + .debug_info 0x00000780 0x59a lcd_control.o + .debug_info 0x00000d1a 0x396 main.o + .debug_info 0x000010b0 0x21e stepper_driver.o + .debug_info 0x000012ce 0x2f0 ultrasonic_sensor.o -.debug_abbrev 0x00000000 0xd38 +.debug_abbrev 0x00000000 0xd47 *(.debug_abbrev) .debug_abbrev 0x00000000 0x718 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o .debug_abbrev 0x00000718 0x1a4 lcd_control.o - .debug_abbrev 0x000008bc 0x190 main.o - .debug_abbrev 0x00000a4c 0x122 stepper_driver.o - .debug_abbrev 0x00000b6e 0x1ca ultrasonic_sensor.o + .debug_abbrev 0x000008bc 0x19f main.o + .debug_abbrev 0x00000a5b 0x122 stepper_driver.o + .debug_abbrev 0x00000b7d 0x1ca ultrasonic_sensor.o -.debug_line 0x00000000 0xaaa +.debug_line 0x00000000 0xaef *(.debug_line .debug_line.* .debug_line_end) .debug_line 0x00000000 0x16a C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o - .debug_line 0x0000016a 0x347 lcd_control.o - .debug_line 0x000004b1 0x1f1 main.o - .debug_line 0x000006a2 0x1c6 stepper_driver.o - .debug_line 0x00000868 0x242 ultrasonic_sensor.o + .debug_line 0x0000016a 0x37c lcd_control.o + .debug_line 0x000004e6 0x1fb main.o + .debug_line 0x000006e1 0x1c6 stepper_driver.o + .debug_line 0x000008a7 0x248 ultrasonic_sensor.o -.debug_frame 0x00000000 0x318 +.debug_frame 0x00000000 0x37c *(.debug_frame) - .debug_frame 0x00000000 0x130 lcd_control.o - .debug_frame 0x00000130 0x9c main.o - .debug_frame 0x000001cc 0xbc stepper_driver.o - .debug_frame 0x00000288 0x90 ultrasonic_sensor.o + .debug_frame 0x00000000 0x194 lcd_control.o + .debug_frame 0x00000194 0x9c main.o + .debug_frame 0x00000230 0xbc stepper_driver.o + .debug_frame 0x000002ec 0x90 ultrasonic_sensor.o -.debug_str 0x00000000 0x754 +.debug_str 0x00000000 0x7c1 *(.debug_str) .debug_str 0x00000000 0x27d C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.6.364/gcc/dev/atmega128/avr51/crtatmega128.o - .debug_str 0x0000027d 0x295 lcd_control.o - 0x2ce (size before relaxing) - .debug_str 0x00000512 0x15b main.o - 0x371 (size before relaxing) - .debug_str 0x0000066d 0x68 stepper_driver.o + .debug_str 0x0000027d 0x28c lcd_control.o + 0x2cc (size before relaxing) + .debug_str 0x00000509 0x15b main.o + 0x34d (size before relaxing) + .debug_str 0x00000664 0xde stepper_driver.o 0x2af (size before relaxing) - .debug_str 0x000006d5 0x7f ultrasonic_sensor.o - 0x303 (size before relaxing) + .debug_str 0x00000742 0x7f ultrasonic_sensor.o + 0x2dc (size before relaxing) -.debug_loc 0x00000000 0x68c +.debug_loc 0x00000000 0x84f *(.debug_loc) - .debug_loc 0x00000000 0x2ea lcd_control.o - .debug_loc 0x000002ea 0x167 main.o - .debug_loc 0x00000451 0x13a stepper_driver.o - .debug_loc 0x0000058b 0x101 ultrasonic_sensor.o + .debug_loc 0x00000000 0x48f lcd_control.o + .debug_loc 0x0000048f 0x185 main.o + .debug_loc 0x00000614 0x13a stepper_driver.o + .debug_loc 0x0000074e 0x101 ultrasonic_sensor.o .debug_macinfo *(.debug_macinfo) @@ -663,12 +751,12 @@ END GROUP .debug_pubtypes *(.debug_pubtypes) -.debug_ranges 0x00000000 0x108 +.debug_ranges 0x00000000 0x110 *(.debug_ranges) - .debug_ranges 0x00000000 0x68 lcd_control.o - .debug_ranges 0x00000068 0x28 main.o - .debug_ranges 0x00000090 0x38 stepper_driver.o - .debug_ranges 0x000000c8 0x40 ultrasonic_sensor.o + .debug_ranges 0x00000000 0x70 lcd_control.o + .debug_ranges 0x00000070 0x28 main.o + .debug_ranges 0x00000098 0x38 stepper_driver.o + .debug_ranges 0x000000d0 0x40 ultrasonic_sensor.o .debug_macro *(.debug_macro) diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec index 166631e..0a14f3a 100644 --- a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec +++ b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec @@ -1,17 +1,17 @@ S014000045696E646F706472616368742E737265633B -S113000045C0000049C100005EC000005CC00000A3 +S113000045C0000060C000005EC0000063C1000085 S11300105AC0000058C0000056C0000054C0000080 -S113002052C0000092C100004EC000004CC000004D +S113002052C00000BFC100004EC000004CC0000020 S11300304AC0000048C0000046C0000044C00000A0 S113004042C0000040C000003EC000003CC00000B0 S11300503AC0000038C0000036C0000034C00000C0 S113006032C0000030C000002EC000002CC00000D0 S11300702AC0000028C0000026C0000024C00000E0 S113008022C0000020C000001EC0000011241FBEBA -S1130090CFEFD0E1DEBFCDBF11E0A0E0B1E0EEEDE7 -S11300A0FAE000E00BBF02C007900D92A631B10741 -S11300B0D9F721E0A6E1B1E001C01D92A232B20756 -S11300C0E1F711D10AC59CCF9BB321E030E002C017 +S1130090CFEFD0E1DEBFCDBF11E0A0E0B1E0E2E3FD +S11300A0FDE000E00BBF02C007900D92A033B10742 +S11300B0D9F721E0A0E3B1E001C01D92AC33B2074F +S11300C0E1F72FD134C69CCF9BB321E030E002C0CE S11300D0220F331F8A95E2F7292B2BBB08959BB37C S11300E021E030E002C0220F331F8A95E2F7209509 S11300F029232BBB089586E090E0E6DF83EC99E0AA @@ -27,152 +27,191 @@ S1130180C0E2C5BBB8DFC5BBB6DF80E885BBB3DF63 S113019015BAB1DF80EF85BBAEDF15BAACDF80E600 S11301A085BBA9DF82E0CADFA6DFCF910895CF9394 S11301B0DF93EC0102C0B2DF219688818111FBCF6D -S11301C0DF91CF910895AF92BF92CF92DF92EF92D9 -S11301D0FF920F931F93CF93DF93CDB7DEB7D82E43 -S11301E0C92EADB6BEB69F938F930F2EF2E1EF2EBC -S11301F0F1E0FF2EF02DFF92EF921F921F921F92BB -S11302001F9282D101962DB73EB7285F3F4F0FB69C -S1130210F8943EBF0FBE2DBF281B390B0FB6F894C0 -S11302203EBF0FBE2DBF0DB71EB70F5F1F4FCF923E -S1130230DF92FF92EF929F938F931F930F9364D15A -S1130240802F912FB4DF8DB79EB708960FB6F89420 -S11302509EBF0FBE8DBF0FB6F894BEBE0FBEADBE1F -S1130260DF91CF911F910F91FF90EF90DF90CF908E -S1130270BF90AF90089520910001222351F001977F -S1130280439738F4D1D01092000161E080E092E00D -S1130290BEC0089504C108951F920F920FB60F9225 -S11302A011240BB60F922F933F934F935F936F9349 -S11302B07F938F939F93AF93BF93EF93FF93FCD060 -S11302C0FF91EF91BF91AF919F918F917F916F912A -S11302D05F914F913F912F910F900BBE0F900FBEE6 -S11302E00F901F901895CCD044DFA0D08AE491E001 -S11302F027D08BE391E0FED087EA91E60197F1F7EE -S113030000C000002BDF60E088E592E080D026DFAB -S1130310F6D059DF84E690E0A4D0F9CF90911D0186 -S1130320911107C0E82FF0E0EF5FFE4F808183B9A1 -S11303300895E82FF0E0E75FFE4F808183B90895C8 -S113034090931F0180931E0108951F920F920FB680 -S11303500F9211240BB60F922F933F934F935F93F9 -S11303606F937F938F939F93AF93BF93EF93FF9379 -S113037014BC80911601D2DF80911601873020F4DD -S11303808F5F8093160130C010921601809117017F -S113039090911801009799F480911D01811104C076 -S11303A081E080931D0102C010921D01809119010A -S11303B090911A01909318018093170115C09C0124 -S11303C02F713327232B39F4E0911E01F0911F0183 -S11303D0309709F0099580911701909118010197C0 -S11303E09093180180931701FF91EF91BF91AF9102 -S11303F09F918F917F916F915F914F913F912F9139 -S11304000F900BBE0F900FBE0F901F9018959093F6 -S113041018018093170190931A0180931901609336 -S11304201D018CE085BD089515BC08958FEF82B938 -S11304308093640081E08093650013B886E983BDEE -S113044080E887BF7894089520E030E006C043E058 -S11304504A95F1F700002F5F3F4F28173907B8F38B -S1130460089520E030E008C0E3ECF9E03197F1F7BB -S113047000C000002F5F3F4F28173907A8F30895E5 -S11304808FEF8093640011BA83E080936A0089B788 -S1130490816089BF1FBC8CE08EBD78940895CF9392 -S11304A0DF93C5E6D0E018828AE090E0CDDF81E0FA -S11304B08883DF91CF91089580911101813041F4B7 -S11304C082E080936A001DBC1CBC10921101089547 -S11304D083E080936A008CB59DB590931C01809352 -S11304E01B01E0912001F0912101099581E08093A5 -S11304F01101089590932101809320010895809122 -S11305001B0190911C0108950F931F93CF93DF93C8 -S1130510CDB7DEB72E970FB6F894DEBF0FBECDBFB2 -S11305200D891E898F89988D26E02C831A8309836F -S113053097FF02C080E090E801979E838D83AE010F -S1130540455E5F4F698D7A8DCE01019619D04D813C -S11305505E8157FD0AC02F813885421753070CF47A -S11305609A01F801E20FF31F10822E960FB6F89449 -S1130570DEBF0FBECDBFDF91CF911F910F910895C4 -S11305802F923F924F925F926F927F928F929F929F -S1130590AF92BF92CF92DF92EF92FF920F931F938D -S11305A0CF93DF93CDB7DEB72B970FB6F894DEBFAA -S11305B00FBECDBF6C017B018A01FC01178216823C -S11305C0838181FFBFC1CE0101963C01F601938175 -S11305D0F70193FD859193FF81917F01882309F4AD -S11305E0ADC1853239F493FD859193FF81917F01EB -S11305F0853221F4B60190E0D6D1E8CF912C212C9C -S1130600312CFFE1F315D8F08B3279F038F48032D5 -S113061079F08332A1F4232D20611DC08D3261F065 -S1130620803369F4232D216016C0832D8260382E17 -S1130630E32DE4603E2E2AC0F32DF8601DC037FC84 -S11306402DC020ED280F2A3040F08E32B9F436FC4C -S113065075C1232D2064322E19C036FE06C08AE0EF -S1130660989E200D1124922E11C0EAE02E9E200D9A -S11306701124222EF32DF0623F2E08C08C3621F473 -S1130680832D8068382E02C0883641F4F70193FD2B -S1130690859193FF81917F018111B3CF982F9F7D25 -S11306A09554933028F40C5F1F4F9FE399830DC03A -S11306B0833631F0833771F0833509F055C020C09B -S11306C0F801808189830E5F1F4F88248394912CC5 -S11306D0530112C02801F2E04F0E511CF801A08012 -S11306E0B18036FE03C0692D70E002C06FEF7FEF6A -S11306F0C5014ED14C018201F32DFF773F2E15C069 -S1130700280122E0420E511CF801A080B18036FE7F -S113071003C0692D70E002C06FEF7FEFC5012DD1DA -S11307204C01F32DF0683F2E820133FC19C0822D59 -S113073090E088169906A0F4B60180E290E033D1E7 -S11307402A94F5CFF50137FC859137FE81915F013D -S1130750B60190E028D121102A9421E0821A910850 -S11307608114910479F7E1C0843611F0893639F5A2 -S1130770F80137FE07C060817181828193810C5F2B -S11307801F4F08C060817181072E000C880B990BE4 -S11307900E5F1F4FF32DFF763F2E97FF09C09095F4 -S11307A08095709561957F4F8F4F9F4FF0683F2ED6 -S11307B02AE030E0A30133D1882E861844C085375F -S11307C031F4232D2F7EB22E2AE030E025C0932D64 -S11307D0997FB92E8F36C1F018F4883579F0AEC000 -S11307E0803719F0883721F0A9C0E92FE061BE2EC7 -S11307F0B4FE0DC0FB2DF460BF2E09C034FE0AC048 -S1130800292F2660B22E06C028E030E005C020E182 -S113081030E002C020E132E0F801B7FE07C0608199 -S11308207181828193810C5F1F4F06C06081718149 -S113083080E090E00E5F1F4FA301F1D0882E861850 -S1130840FB2DFF773F2E36FE0DC0232D2E7FA22ECB -S1130850891458F434FE0BC032FC09C0832D8E7EFB -S1130860A82E05C0B82CA32C03C0B82C01C0B92CE9 -S1130870A4FE0FC0FE01E80DF11D8081803321F438 -S11308809A2D997EA92E09C0A2FE06C0B394B394F2 -S113089004C08A2D867809F0B394A3FC10C0A0FE8E -S11308A006C0B21480F4280C922C9B180DC0B2140C -S11308B058F4B60180E290E076D0B394F8CFB21445 -S11308C018F42B1802C0982C212CA4FE0FC0B601DA -S11308D080E390E068D0A2FE16C0A1FC03C088E7C4 -S11308E090E002C088E590E0B6010CC08A2D8678BD -S11308F051F0A1FE02C08BE201C080E2A7FC8DE2B0 -S1130900B60190E050D0891430F4B60180E390E051 -S11309104AD09A94F8CF8A94F301E80DF11D8081AE -S1130920B60190E040D08110F6CF222009F44ECEDB -S1130930B60180E290E037D02A94F7CFF6018681A1 -S1130940978102C08FEF9FEF2B960FB6F894DEBF0E -S11309500FBECDBFDF91CF911F910F91FF90EF900C -S1130960DF90CF90BF90AF909F908F907F906F90CB -S11309705F904F903F902F900895FC010590615037 -S113098070400110D8F7809590958E0F9F1F0895A1 -S1130990FC016150704001900110D8F7809590954A -S11309A08E0F9F1F08950F931F93CF93DF93FB0127 -S11309B0238121FD03C08FEF9FEF2CC022FF16C0BF -S11309C046815781248135814217530744F4A0811D -S11309D0B1819D012F5F3F4F318320838C9326810A -S11309E037812F5F3F4F3783268314C08B01EC017F -S11309F0FB010084F185E02D0995892BE1F6D801EE -S1130A0016968D919C911797019617969C938E93A9 -S1130A101697CE01DF91CF911F910F910895FA019E -S1130A20AA27283051F1203181F1E8946F936E7F29 -S1130A306E5F7F4F8F4F9F4FAF4FB1E03ED0B4E01A -S1130A403CD0670F781F891F9A1FA11D680F791F5B -S1130A508A1F911DA11D6A0F711D811D911DA11D6C -S1130A6020D009F468943F912AE0269F112430197C -S1130A70305D3193DEF6CF010895462F4770405D17 -S1130A804193B3E00FD0C9F7F6CF462F4F70405DC6 -S1130A904A3318F0495D31FD4052419302D0A9F721 -S1130AA0EACFB4E0A6959795879577956795BA951B -S1130AB0C9F700976105710508959B01AC010A2EE1 -S1130AC006945795479537952795BA95C9F7620FB8 -S1110AD0731F841F951FA01D0895F894FFCF77 -S1130ADE01080C0406020301090901030206040CB1 -S1090AEE0801256400006C +S11301C0DF91CF9108954F925F926F927F928F92B9 +S11301D09F92AF92BF92CF92DF92EF92FF920F93D2 +S11301E01F93CF93DF93CDB7DEB7D82EC92E942EAD +S11301F0852E762E672E522E432EADB6BEB63F9375 +S11302002F937F936F935F934F939F938F930F2EAF +S1130210F5E1EF2EF1E0FF2EF02DFF92EF921F9209 +S11302201F921F921F929AD201962DB73EB7225F5A +S11302303F4F0FB6F8943EBF0FBE2DBF281B390B9E +S11302400FB6F8943EBF0FBE2DBF0DB71EB70F5F9C +S11302501F4F4F925F926F927F928F929F92CF9295 +S1130260DF92FF92EF929F938F931F930F9376D217 +S1130270802F912F9CDF8DB79EB70E960FB6F89402 +S11302809EBF0FBE8DBF0FB6F894BEBE0FBEADBEEF +S1130290DF91CF911F910F91FF90EF90DF90CF905E +S11302A0BF90AF909F908F907F906F905F904F9092 +S11302B0089520910001222351F00197439738F4C7 +S11302C0E0D01092000161E080E092E0CDC008959A +S11302D013C108951F920F920FB60F9211240BB6FB +S11302E00F922F933F934F935F936F937F938F93CB +S11302F09F93AF93BF93EF93FF930BD1FF91EF9134 +S1130300BF91AF919F918F917F916F915F914F9129 +S11303103F912F910F900BBE0F900FBE0F901F9027 +S11303201895DBD026DFAFD088E691E036D089E59A +S113033091E00DD187EA91E60197F1F700C0000042 +S11303400DDF60E088E592E08FD008DF05D1BC01C5 +S113035080E090E075D120E030E04AE754E408D131 +S1130360AB01BC0121E231E084E291E02CDF84E6C0 +S113037090E0A4D0EACF90913701911107C0E82F03 +S1130380F0E0EF5FFE4F808183B90895E82FF0E03D +S1130390E75FFE4F808183B908959093390180937C +S11303A0380108951F920F920FB60F9211240BB6C5 +S11303B00F922F933F934F935F936F937F938F93FA +S11303C09F93AF93BF93EF93FF9314BC809130013D +S11303D0D2DF80913001873020F48F5F8093300129 +S11303E030C0109230018091310190913201009718 +S11303F099F480913701811104C081E08093370121 +S113040002C010923701809133019091340190938E +S113041032018093310115C09C012F713327232BA6 +S113042039F4E0913801F0913901309709F00995D8 +S11304308091310190913201019790933201809320 +S11304403101FF91EF91BF91AF919F918F917F9176 +S11304506F915F914F913F912F910F900BBE0F9031 +S11304600FBE0F901F901895909332018093310125 +S11304709093340180933301609337018CE085BD00 +S1130480089515BC08958FEF82B98093640081E0CC +S11304908093650013B886E983BD80E887BF7894AC +S11304A0089520E030E006C043E04A95F1F70000EB +S11304B02F5F3F4F28173907B8F3089520E030E045 +S11304C008C0E3ECF9E03197F1F700C000002F5FBA +S11304D03F4F28173907A8F308958FEF80936400DE +S11304E011BA80E380936A0089B7846089BF1FBC16 +S11304F08CE08EBD78940895CF93DF93C5E6D0E069 +S113050018828AE090E0CDDF81E08883DF91CF918B +S1130510089580911101813041F480E280936A0052 +S11305201DBC1CBC10921101089580E380936A00E5 +S11305308CB59DB59093360180933501E0913A01D5 +S1130540F0913B01099581E0809311010895909306 +S11305503B0180933A0108958091350190913601D1 +S11305602AEAAC01249FC001259F900D112408950F +S11305700CD0BAC0B2D040F0A9D030F021F45F3F23 +S113058019F09BC05111E4C09EC0BFD098F39923C9 +S1130590C9F35523B1F3951B550BBB27AA27621743 +S11305A07307840738F09F5F5F4F220F331F441F88 +S11305B0AA1FA9F333D00E2E3AF0E0E830D09150C0 +S11305C05040E695001CCAF729D0FE2F27D0660FAD +S11305D0771F881FBB1F261737074807AB07B0E8EC +S11305E009F0BB0B802DBF01FF2793585F4F2AF002 +S11305F09E3F510568F061C0ABC05F3FECF3983E8D +S1130600DCF3869577956795B795F7959F5FC9F75E +S1130610880F911D9695879597F90895E1E0660FE7 +S1130620771F881FBB1F621773078407BA0720F060 +S1130630621B730B840BBA0BEE1F88F7E0950895C9 +S1130640E89409C097FB3EF4909580957095619568 +S11306507F4F8F4F9F4F9923A9F0F92F96E9BB271E +S11306609395F695879577956795B795F111F8CF9A +S1130670FAF4BB0F11F460FF1BC06F5F7F4F8F4F05 +S11306809F4F16C0882311F096E911C0772321F0FB +S11306909EE8872F762F05C0662371F096E8862F93 +S11306A070E060E02AF09A95660F771F881FDAF7EA +S11306B0880F9695879597F9089597F99F6780E82D +S11306C070E060E008959FEF80EC089500240A94A0 +S11306D01616170618060906089500240A94121619 +S11306E01306140605060895092E0394000C11F44C +S11306F0882352F0BB0F40F4BF2B11F460FF04C0F9 +S11307006F5F7F4F8F4F9F4F089557FD9058440F51 +S1130710551F59F05F3F71F04795880F97FB991F5C +S113072061F09F3F79F08795089512161306140619 +S1130730551FF2CF4695F1DF08C0161617061806A6 +S1130740991FF1CF86957105610508940895E89481 +S1130750BB2766277727CB0197F908950F931F933B +S1130760CF93DF93CDB7DEB72E970FB6F894DEBFE5 +S11307700FBECDBF0D891E898F89988D26E02C83ED +S11307801A83098397FF02C080E090E801979E8353 +S11307908D83AE01455E5F4F698D7A8DCE010196E2 +S11307A019D04D815E8157FD0AC02F8138854217CB +S11307B053070CF49A01F801E20FF31F10822E96EE +S11307C00FB6F894DEBF0FBECDBFDF91CF911F915E +S11307D00F9108952F923F924F925F926F927F9262 +S11307E08F929F92AF92BF92CF92DF92EF92FF923D +S11307F00F931F93CF93DF93CDB7DEB72B970FB62D +S1130800F894DEBF0FBECDBF6C017B018A01FC01F1 +S113081017821682838181FFBFC1CE0101963C01FC +S1130820F6019381F70193FD859193FF81917F01F7 +S1130830882309F4ADC1853239F493FD859193FF82 +S113084081917F01853221F4B60190E0D6D1E8CFC1 +S1130850912C212C312CFFE1F315D8F08B3279F057 +S113086038F4803279F08332A1F4232D20611DC045 +S11308708D3261F0803369F4232D216016C0832DFD +S11308808260382EE32DE4603E2E2AC0F32DF860FA +S11308901DC037FC2DC020ED280F2A3040F08E32C9 +S11308A0B9F436FC75C1232D2064322E19C036FEEE +S11308B006C08AE0989E200D1124922E11C0EAE011 +S11308C02E9E200D1124222EF32DF0623F2E08C0FF +S11308D08C3621F4832D8068382E02C0883641F48A +S11308E0F70193FD859193FF81917F018111B3CF2E +S11308F0982F9F7D9554933028F40C5F1F4F9FE3EE +S113090099830DC0833631F0833771F0833509F054 +S113091055C020C0F801808189830E5F1F4F882451 +S11309208394912C530112C02801F2E04F0E511C04 +S1130930F801A080B18036FE03C0692D70E002C0CA +S11309406FEF7FEFC5014ED14C018201F32DFF778C +S11309503F2E15C0280122E0420E511CF801A08050 +S1130960B18036FE03C0692D70E002C06FEF7FEFE7 +S1130970C5012DD14C01F32DF0683F2E820133FCCB +S113098019C0822D90E088169906A0F4B60180E281 +S113099090E033D12A94F5CFF50137FC859137FEE9 +S11309A081915F01B60190E028D121102A9421E0C1 +S11309B0821A91088114910479F7E1C0843611F008 +S11309C0893639F5F80137FE07C06081718182816B +S11309D093810C5F1F4F08C060817181072E000C4A +S11309E0880B990B0E5F1F4FF32DFF763F2E97FF59 +S11309F009C090958095709561957F4F8F4F9F4F5B +S1130A00F0683F2E2AE030E0A30133D1882E861807 +S1130A1044C0853731F4232D2F7EB22E2AE030E0F6 +S1130A2025C0932D997FB92E8F36C1F018F48835DF +S1130A3079F0AEC0803719F0883721F0A9C0E92FCA +S1130A40E061BE2EB4FE0DC0FB2DF460BF2E09C0C4 +S1130A5034FE0AC0292F2660B22E06C028E030E0FA +S1130A6005C020E130E002C020E132E0F801B7FE29 +S1130A7007C060817181828193810C5F1F4F06C022 +S1130A806081718180E090E00E5F1F4FA301F1D07F +S1130A90882E8618FB2DFF773F2E36FE0DC0232DA2 +S1130AA02E7FA22E891458F434FE0BC032FC09C0E8 +S1130AB0832D8E7EA82E05C0B82CA32C03C0B82C81 +S1130AC001C0B92CA4FE0FC0FE01E80DF11D808108 +S1130AD0803321F49A2D997EA92E09C0A2FE06C066 +S1130AE0B394B39404C08A2D867809F0B394A3FC1C +S1130AF010C0A0FE06C0B21480F4280C922C9B18DF +S1130B000DC0B21458F4B60180E290E076D0B394EC +S1130B10F8CFB21418F42B1802C0982C212CA4FE80 +S1130B200FC0B60180E390E068D0A2FE16C0A1FC1D +S1130B3003C088E790E002C088E590E0B6010CC0ED +S1130B408A2D867851F0A1FE02C08BE201C080E2BA +S1130B50A7FC8DE2B60190E050D0891430F4B601C0 +S1130B6080E390E04AD09A94F8CF8A94F301E80D98 +S1130B70F11D8081B60190E040D08110F6CF222093 +S1130B8009F44ECEB60180E290E037D02A94F7CF34 +S1130B90F6018681978102C08FEF9FEF2B960FB6E7 +S1130BA0F894DEBF0FBECDBFDF91CF911F910F919F +S1130BB0FF90EF90DF90CF90BF90AF909F908F9079 +S1130BC07F906F905F904F903F902F900895FC011D +S1130BD00590615070400110D8F7809590958E0F64 +S1130BE09F1F0895FC016150704001900110D8F7D7 +S1130BF0809590958E0F9F1F08950F931F93CF9309 +S1130C00DF93FB01238121FD03C08FEF9FEF2CC0F5 +S1130C1022FF16C04681578124813581421753072C +S1130C2044F4A081B1819D012F5F3F4F3183208324 +S1130C308C93268137812F5F3F4F3783268314C0DF +S1130C408B01EC01FB010084F185E02D0995892BD2 +S1130C50E1F6D80116968D919C91179701961796F7 +S1130C609C938E931697CE01DF91CF911F910F9194 +S1130C700895FA01AA27283051F1203181F1E8942E +S1130C806F936E7F6E5F7F4F8F4F9F4FAF4FB1E07B +S1130C903ED0B4E03CD0670F781F891F9A1FA11D76 +S1130CA0680F791F8A1F911DA11D6A0F711D811D77 +S1130CB0911DA11D20D009F468943F912AE0269F3C +S1130CC011243019305D3193DEF6CF010895462F9B +S1130CD04770405D4193B3E00FD0C9F7F6CF462F7C +S1130CE04F70405D4A3318F0495D31FD40524193E5 +S1130CF002D0A9F7EACFB4E0A695979587957795A2 +S1130D006795BA95C9F700976105710508959B0128 +S1130D10AC010A2E06945795479537952795BA95B1 +S1130D20C9F7620F731F841F951FA01D0895F894BF +S1050D30FFCFEF +S1130D3201080C0406020301090901030206040C5A +S1130D42080125640025733A20252E336620257375 +S1130D5200636D0064697374616E63653A20000018 S9030000FC diff --git a/Microcontrollers/Eindopdracht/Debug/lcd_control.o b/Microcontrollers/Eindopdracht/Debug/lcd_control.o index 860edbe..9d5d271 100644 Binary files a/Microcontrollers/Eindopdracht/Debug/lcd_control.o and b/Microcontrollers/Eindopdracht/Debug/lcd_control.o differ diff --git a/Microcontrollers/Eindopdracht/Debug/main.o b/Microcontrollers/Eindopdracht/Debug/main.o index d6a973c..c7d84f4 100644 Binary files a/Microcontrollers/Eindopdracht/Debug/main.o and b/Microcontrollers/Eindopdracht/Debug/main.o differ diff --git a/Microcontrollers/Eindopdracht/Debug/ultrasonic_sensor.o b/Microcontrollers/Eindopdracht/Debug/ultrasonic_sensor.o index 562de53..cad0223 100644 Binary files a/Microcontrollers/Eindopdracht/Debug/ultrasonic_sensor.o and b/Microcontrollers/Eindopdracht/Debug/ultrasonic_sensor.o differ diff --git a/Microcontrollers/Eindopdracht/lcd_control.c b/Microcontrollers/Eindopdracht/lcd_control.c index 3d76ce7..227406f 100644 --- a/Microcontrollers/Eindopdracht/lcd_control.c +++ b/Microcontrollers/Eindopdracht/lcd_control.c @@ -130,3 +130,11 @@ void lcd_write_int(int number) snprintf(str, length + 1, "%d", number); lcd_write_string(str); } + +void lcd_write_double(char prefix[], double number, char suffix[]) +{ + int length = snprintf(NULL, 0, "%s: %.3f %s", prefix, number, suffix); + char str[length + 1]; + snprintf(str, length + 1, "%s: %.3f %s", prefix, number, suffix); + lcd_write_string(str); +} diff --git a/Microcontrollers/Eindopdracht/lcd_control.h b/Microcontrollers/Eindopdracht/lcd_control.h index 15a8b3a..27c47c6 100644 --- a/Microcontrollers/Eindopdracht/lcd_control.h +++ b/Microcontrollers/Eindopdracht/lcd_control.h @@ -24,6 +24,7 @@ void lcd_write_character(unsigned char byte); void lcd_write_command(unsigned char byte); void lcd_clear(); void lcd_write_int(int number); +void lcd_write_double(char prefix[], double number, char suffix[]); diff --git a/Microcontrollers/Eindopdracht/main.c b/Microcontrollers/Eindopdracht/main.c index 53d18ed..0d37a34 100644 --- a/Microcontrollers/Eindopdracht/main.c +++ b/Microcontrollers/Eindopdracht/main.c @@ -53,11 +53,10 @@ int main(void) stepper_rotate_angle(600, ClockWise); while (1) { - // TODO change to use the stepper motor - //ultrasonic_send_pulse(); lcd_clear(); - lcd_write_int(ultrasonic_get_timer_dist()); + double res = ultrasonic_get_timer_dist()/1000.0; + lcd_write_double("distance: ",res,"cm"); wait_ms(100); diff --git a/Microcontrollers/Eindopdracht/ultrasonic_sensor.c b/Microcontrollers/Eindopdracht/ultrasonic_sensor.c index 8f10f69..c57ecad 100644 --- a/Microcontrollers/Eindopdracht/ultrasonic_sensor.c +++ b/Microcontrollers/Eindopdracht/ultrasonic_sensor.c @@ -96,6 +96,6 @@ void set_value_trigger_event(void (*value_set_event_p)(uint16_t)){ uint16_t ultrasonic_get_timer_dist() { - return timer_dist; + return timer_dist * (340 / 2); } diff --git a/Microcontrollers/LCDMatrix/main.c b/Microcontrollers/LCDMatrix/main.c index e57d297..05d5493 100644 --- a/Microcontrollers/LCDMatrix/main.c +++ b/Microcontrollers/LCDMatrix/main.c @@ -106,8 +106,6 @@ void matrix_clear() twi_stop(); } -void turn_on_set_led() - /******************************************************************/ int main( void ) /*