From bb312853d6a6cdbe60c0f60dee38e6c4beb4b234 Mon Sep 17 00:00:00 2001 From: stijn Date: Tue, 6 Apr 2021 15:20:00 +0200 Subject: [PATCH] Auto stash before merge of "main" and "origin/main" --- .../.vs/Microcontrollers/v14/.atsuo | Bin 90624 -> 90624 bytes .../Eindopdracht/Debug/Eindopdracht.elf | Bin 25784 -> 26768 bytes .../Eindopdracht/Debug/Eindopdracht.hex | 347 ++- .../Eindopdracht/Debug/Eindopdracht.lss | 2691 +++++++++-------- .../Eindopdracht/Debug/Eindopdracht.map | 258 +- .../Eindopdracht/Debug/Eindopdracht.srec | 347 ++- Microcontrollers/Eindopdracht/Debug/main.o | Bin 8928 -> 9128 bytes .../Eindopdracht/Debug/ultrasonic_sensor.o | Bin 8912 -> 9024 bytes Microcontrollers/Eindopdracht/main.c | 2 +- .../Eindopdracht/ultrasonic_sensor.c | 4 +- .../Eindopdracht/ultrasonic_sensor.h | 2 +- 11 files changed, 2056 insertions(+), 1595 deletions(-) diff --git a/Microcontrollers/.vs/Microcontrollers/v14/.atsuo b/Microcontrollers/.vs/Microcontrollers/v14/.atsuo index 7659c34a36b9314d38258daef59da601ceebddae..cbf4dcc6bfc14c90930d3e2f5f4ec7d56da39aca 100644 GIT binary patch delta 568 zcmZXPO(;ZB6vyAa-hI6o!}u7CuV1RQ5MRAva(|4)+{V< zSkk<=QdY9IVId1iELc$%h~aR{ZAVFaHdag7;@8{7y|qLS zN!Y6>N;zl(#h?syfI3hKz7P)N63}S(IlR@QE&>gFRM);LAo-mrMQmhZo~Q4cm?8B#L4X>ph`S(`Qi2h~E%1K&eIJIU<^AdQ7+U;A?>x zq@t&g-$p&$GkM^uyzD)xW0{S;yN`#J-GEz3#r$H5h>#{Gs2J9`IqtQ*$!j8_y18(y qlD2FtLd3Kx2i%)9T%n^Yw!gQQ2|dnEpRbN|<3hPLpWGp0F82+ynz7aZ delta 781 zcmb8rv1=1i90%}wkGu1X*VrU#W2}0nC5iE>Nn>>>O*9=s5xjG1Z7B^{aVS({78Nx9 z1J>L_+DY-@&@P7NbgNRD4vwM)aZ~B!c4%c)UfvhSbuK;cbVmR6=mpEf=`53EilrK%m$%caGIh56F$8LL!ex#>-w zQ~5CE1=X3^Ajj72JmHqcW0XfJ`({O0Wb9>NZOMKey#8Zrej{>zsil|kqBzeIJ}Wy$ LLH^JG<68R<*_q}Y diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.elf b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.elf index a59fec9ff0ee0c09a193b838e73a8164758a555c..21ecc6ec90926e5af64064cae6144fe1d8c7e47c 100644 GIT binary patch delta 6456 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 HBSiccmVavm diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.hex b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.hex index e10bd3d..d395dd3 100644 --- a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.hex +++ b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.hex @@ -1,16 +1,16 @@ -:1000000045C0000060C000005EC0000045C10000A7 +:1000000045C0000060C000005EC0000063C1000089 :100010005AC0000058C0000056C0000054C0000084 -:1000200052C0000092C100004EC000004CC0000051 +:1000200052C00000B6C100004EC000004CC000002D :100030004AC0000048C0000046C0000044C00000A4 :1000400042C0000040C000003EC000003CC00000B4 :100050003AC0000038C0000036C0000034C00000C4 :1000600032C0000030C000002EC000002CC00000D4 :100070002AC0000028C0000026C0000024C00000E4 :1000800022C0000020C000001EC0000011241FBEBE -:10009000CFEFD0E1DEBFCDBF11E0A0E0B1E0ECEEEC -:1000A000FAE000E00BBF02C007900D92A232B10748 -:1000B000D9F721E0A2E2B1E001C01D92AE32B20751 -:1000C000E1F711D111C59CCF9BB321E030E002C014 +:10009000CFEFD0E1DEBFCDBF11E0A0E0B1E0E8E1FD +:1000A000FDE000E00BBF02C007900D92AA32B1073D +:1000B000D9F721E0AAE2B1E001C01D92A633B20750 +:1000C000E1F72FD127C69CCF9BB321E030E002C0DF :1000D000220F331F8A95E2F7292B2BBB08959BB380 :1000E00021E030E002C0220F331F8A95E2F720950D :1000F00029232BBB089586E090E0E6DF83EC99E0AE @@ -26,154 +26,189 @@ :1001900015BAB1DF80EF85BBAEDF15BAACDF80E604 :1001A00085BBA9DF82E0CADFA6DFCF910895CF9398 :1001B000DF93EC0102C0B2DF219688818111FBCF71 -:1001C000DF91CF910895AF92BF92CF92DF92EF92DD -:1001D000FF920F931F93CF93DF93CDB7DEB7D82E47 -:1001E000C92EADB6BEB69F938F930F2EF2E1EF2EC0 -:1001F000F1E0FF2EF02DFF92EF921F921F921F92BF -:100200001F9289D101962DB73EB7285F3F4F0FB699 -:10021000F8943EBF0FBE2DBF281B390B0FB6F894C4 -:100220003EBF0FBE2DBF0DB71EB70F5F1F4FCF9242 -:10023000DF92FF92EF929F938F931F930F936BD157 -:10024000802F912FB4DF8DB79EB708960FB6F89424 -:100250009EBF0FBE8DBF0FB6F894BEBE0FBEADBE23 -:10026000DF91CF911F910F91FF90EF90DF90CF9092 -:10027000BF90AF90089520910001222351F0019783 -:10028000439738F4D1D01092000161E080E092E011 -:10029000BEC0089504C108951F920F920FB60F9229 -:1002A00011240BB60F922F933F934F935F936F934D -:1002B0007F938F939F93AF93BF93EF93FF93FCD064 -:1002C000FF91EF91BF91AF919F918F917F916F912E -:1002D0005F914F913F912F910F900BBE0F900FBEEA -:1002E0000F901F901895CCD044DFA0D08AE491E005 -:1002F00027D08BE391E0FED087EA91E60197F1F7F2 -:1003000000C000002BDF60E088E592E080D026DFAF -:10031000F6D059DF84E690E0A4D0F9CF909129017E -:10032000911107C0E82FF0E0EF5FFE4F808183B9A5 -:100330000895E82FF0E0E75FFE4F808183B90895CC -:1003400090932B0180932A0108951F920F920FB66C -:100350000F9211240BB60F922F933F934F935F93FD -:100360006F937F938F939F93AF93BF93EF93FF937D -:1003700014BC80912201D2DF80912201873020F4C9 -:100380008F5F8093220130C010922201809123015F -:1003900090912401009799F480912901811104C062 -:1003A00081E08093290102C01092290180912501EA -:1003B00090912601909324018093230115C09C0104 -:1003C0002F713327232B39F4E0912A01F0912B016F -:1003D000309709F0099580912301909124010197AC -:1003E0009093240180932301FF91EF91BF91AF91EE -:1003F0009F918F917F916F915F914F913F912F913D -:100400000F900BBE0F900FBE0F901F9018959093FA -:10041000240180932301909326018093250160930A -:1004200029018CE085BD089515BC08958FEF82B930 -:100430008093640081E08093650013B886E983BDF2 -:1004400080E887BF7894089520E030E006C043E05C -:100450004A95F1F700002F5F3F4F28173907B8F38F -:10046000089520E030E008C0E3ECF9E03197F1F7BF -:1004700000C000002F5F3F4F28173907A8F30895E9 -:100480008FEF8093640011BA80E380936A0089B78C -:10049000846089BF1FBC8CE08EBD78940895CF9393 -:1004A000DF93C5E6D0E018828AE090E0CDDF81E0FE -:1004B0008883DF91CF91089580911101813041F4BB -:1004C00080E280936A001DBC1CBC1092110108954B -:1004D00080E380936A008CB59DB59093280180934A -:1004E0002701E0912C01F0912D01099581E0809385 -:1004F0001101089590932D0180932C01089580910E -:100500002701909128012AEAAC01249FC001259F70 -:10051000900D112408950F931F93CF93DF93CDB7C0 -:10052000DEB72E970FB6F894DEBF0FBECDBF0D8994 -:100530001E898F89988D26E02C831A83098397FF63 -:1005400002C080E090E801979E838D83AE01455EF6 -:100550005F4F698D7A8DCE01019619D04D815E81F4 -:1005600057FD0AC02F813885421753070CF49A01B2 -:10057000F801E20FF31F10822E960FB6F894DEBF3B -:100580000FBECDBFDF91CF911F910F9108952F9294 -:100590003F924F925F926F927F928F929F92AF9213 -:1005A000BF92CF92DF92EF92FF920F931F93CF9360 -:1005B000DF93CDB7DEB72B970FB6F894DEBF0FBE33 -:1005C000CDBF6C017B018A01FC01178216828381F9 -:1005D00081FFBFC1CE0101963C01F6019381F70175 -:1005E00093FD859193FF81917F01882309F4ADC12B -:1005F000853239F493FD859193FF81917F01853296 -:1006000021F4B60190E0D6D1E8CF912C212C312CE9 -:10061000FFE1F315D8F08B3279F038F4803279F0BD -:100620008332A1F4232D20611DC08D3261F080330F -:1006300069F4232D216016C0832D8260382EE32DAE -:10064000E4603E2E2AC0F32DF8601DC037FC2DC09B -:1006500020ED280F2A3040F08E32B9F436FC75C1F7 -:10066000232D2064322E19C036FE06C08AE0989EE3 -:10067000200D1124922E11C0EAE02E9E200D11248F -:10068000222EF32DF0623F2E08C08C3621F4832DEC -:100690008068382E02C0883641F4F70193FD8591B9 -:1006A00093FF81917F018111B3CF982F9F7D955446 -:1006B000933028F40C5F1F4F9FE399830DC083365E -:1006C00031F0833771F0833509F055C020C0F8014F -:1006D000808189830E5F1F4F88248394912C53015E -:1006E00012C02801F2E04F0E511CF801A080B18029 -:1006F00036FE03C0692D70E002C06FEF7FEFC501C9 -:100700004ED14C018201F32DFF773F2E15C02801F9 -:1007100022E0420E511CF801A080B18036FE03C0D9 -:10072000692D70E002C06FEF7FEFC5012DD14C0144 -:10073000F32DF0683F2E820133FC19C0822D90E02A -:1007400088169906A0F4B60180E290E033D12A948D -:10075000F5CFF50137FC859137FE81915F01B60138 -:1007600090E028D121102A9421E0821A9108811466 -:10077000910479F7E1C0843611F0893639F5F80132 -:1007800037FE07C060817181828193810C5F1F4FAA -:1007900008C060817181072E000C880B990B0E5FD9 -:1007A0001F4FF32DFF763F2E97FF09C09095809540 -:1007B000709561957F4F8F4F9F4FF0683F2E2AE0D5 -:1007C00030E0A30133D1882E861844C0853731F438 -:1007D000232D2F7EB22E2AE030E025C0932D997F65 -:1007E000B92E8F36C1F018F4883579F0AEC0803755 -:1007F00019F0883721F0A9C0E92FE061BE2EB4FEC0 -:100800000DC0FB2DF460BF2E09C034FE0AC0292F95 -:100810002660B22E06C028E030E005C020E130E0BE -:1008200002C020E132E0F801B7FE07C060817181AB -:10083000828193810C5F1F4F06C06081718180E0CF -:1008400090E00E5F1F4FA301F1D0882E8618FB2D7C -:10085000FF773F2E36FE0DC0232D2E7FA22E89144A -:1008600058F434FE0BC032FC09C0832D8E7EA82EB6 -:1008700005C0B82CA32C03C0B82C01C0B92CA4FE11 -:100880000FC0FE01E80DF11D8081803321F49A2D07 -:10089000997EA92E09C0A2FE06C0B394B39404C0E9 -:1008A0008A2D867809F0B394A3FC10C0A0FE06C080 -:1008B000B21480F4280C922C9B180DC0B21458F47A -:1008C000B60180E290E076D0B394F8CFB21418F479 -:1008D0002B1802C0982C212CA4FE0FC0B60180E377 -:1008E00090E068D0A2FE16C0A1FC03C088E790E0AB -:1008F00002C088E590E0B6010CC08A2D867851F0E0 -:10090000A1FE02C08BE201C080E2A7FC8DE2B6012D -:1009100090E050D0891430F4B60180E390E04AD0E2 -:100920009A94F8CF8A94F301E80DF11D8081B60105 -:1009300090E040D08110F6CF222009F44ECEB601CF -:1009400080E290E037D02A94F7CFF6018681978134 -:1009500002C08FEF9FEF2B960FB6F894DEBF0FBE4D -:10096000CDBFDF91CF911F910F91FF90EF90DF905E -:10097000CF90BF90AF909F908F907F906F905F903F -:100980004F903F902F900895FC010590615070406A -:100990000110D8F7809590958E0F9F1F0895FC0148 -:1009A0006150704001900110D8F7809590958E0F9E -:1009B0009F1F08950F931F93CF93DF93FB01238114 -:1009C00021FD03C08FEF9FEF2CC022FF16C0468190 -:1009D0005781248135814217530744F4A081B181A6 -:1009E0009D012F5F3F4F318320838C932681378178 -:1009F0002F5F3F4F3783268314C08B01EC01FB012F -:100A00000084F185E02D0995892BE1F6D801169631 -:100A10008D919C911797019617969C938E9316979C -:100A2000CE01DF91CF911F910F910895FA01AA276E -:100A3000283051F1203181F1E8946F936E7F6E5F21 -:100A40007F4F8F4F9F4FAF4FB1E03ED0B4E03CD0CF -:100A5000670F781F891F9A1FA11D680F791F8A1FB2 -:100A6000911DA11D6A0F711D811D911DA11D20D019 -:100A700009F468943F912AE0269F11243019305DD3 -:100A80003193DEF6CF010895462F4770405D4193C4 -:100A9000B3E00FD0C9F7F6CF462F4F70405D4A3311 -:100AA00018F0495D31FD4052419302D0A9F7EACFD9 -:100AB000B4E0A6959795879577956795BA95C9F708 -:100AC00000976105710508959B01AC010A2E0694FB -:100AD0005795479537952795BA95C9F7620F731FB4 -:0C0AE000841F951FA01D0895F894FFCFFF -:100AEC0001080C0406020301090901030206040CA7 -:100AFC00080125640025733A20252E3366202573C2 -:020B0C000000E7 +:1001C000DF91CF9108954F925F926F927F928F92BD +:1001D0009F92AF92BF92CF92DF92EF92FF920F93D6 +:1001E0001F93CF93DF93CDB7DEB7D82EC92E942EB1 +:1001F000852E762E672E522E432EADB6BEB63F9379 +:100200002F937F936F935F934F939F938F930F2EB3 +:10021000F5E1EF2EF1E0FF2EF02DFF92EF921F920D +:100220001F921F921F928DD201962DB73EB7225F6B +:100230003F4F0FB6F8943EBF0FBE2DBF281B390BA2 +:100240000FB6F8943EBF0FBE2DBF0DB71EB70F5FA0 +:100250001F4F4F925F926F927F928F929F92CF9299 +:10026000DF92FF92EF929F938F931F930F9369D228 +:10027000802F912F9CDF8DB79EB70E960FB6F89406 +:100280009EBF0FBE8DBF0FB6F894BEBE0FBEADBEF3 +:10029000DF91CF911F910F91FF90EF90DF90CF9062 +:1002A000BF90AF909F908F907F906F905F904F9096 +:1002B000089520910001222351F00197439738F4CB +:1002C000D7D01092000161E080E092E0C4C00895B0 +:1002D0000AC108951F920F920FB60F9211240BB608 +:1002E0000F922F933F934F935F936F937F938F93CF +:1002F0009F93AF93BF93EF93FF9302D1FF91EF9141 +:10030000BF91AF919F918F917F916F915F914F912D +:100310003F912F910F900BBE0F900FBE0F901F902B +:100320001895D2D026DFA6D088E691E02DD089E5B9 +:1003300091E004D187EA91E60197F1F700C000004F +:100340000DDF60E088E592E086D008DFFCD0AB01ED +:10035000BC0121E231E084E291E035DF84E690E007 +:10036000A4D0F3CF90913101911107C0E82FF0E0B4 +:10037000EF5FFE4F808183B90895E82FF0E0E75FDB +:10038000FE4F808183B908959093330180933201A9 +:1003900008951F920F920FB60F9211240BB60F9271 +:1003A0002F933F934F935F936F937F938F939F937D +:1003B000AF93BF93EF93FF9314BC80912A01D2DFD8 +:1003C00080912A01873020F48F5F80932A0130C00A +:1003D00010922A0180912B0190912C01009799F4A1 +:1003E00080913101811104C081E08093310102C00C +:1003F0001092310180912D0190912E0190932C014A +:1004000080932B0115C09C012F713327232B39F4C6 +:10041000E0913201F0913301309709F00995809114 +:100420002B0190912C01019790932C0180932B012B +:10043000FF91EF91BF91AF919F918F917F916F91BC +:100440005F914F913F912F910F900BBE0F900FBE78 +:100450000F901F90189590932C0180932B019093EF +:100460002E0180932D01609331018CE085BD0895AC +:1004700015BC08958FEF82B98093640081E080936A +:10048000650013B886E983BD80E887BF7894089536 +:1004900020E030E006C043E04A95F1F700002F5F0E +:1004A0003F4F28173907B8F3089520E030E008C01F +:1004B000E3ECF9E03197F1F700C000002F5F3F4F08 +:1004C00028173907A8F308958FEF8093640011BAB5 +:1004D00080E380936A0089B7846089BF1FBC8CE089 +:1004E0008EBD78940895CF93DF93C5E6D0E018824F +:1004F0008AE090E0CDDF81E08883DF91CF9108959D +:1005000080911101813041F480E280936A001DBC2A +:100510001CBC10921101089580E380936A008CB591 +:100520009DB59093300180932F01E0913401F091BB +:100530003501099581E0809311010895909335016B +:1005400080933401089560912F017091300180E013 +:1005500090E006D020E030E04AE253E43EC0089547 +:10056000E89409C097FB3EF490958095709561954D +:100570007F4F8F4F9F4F9923A9F0F92F96E9BB2703 +:100580009395F695879577956795B795F111F8CF7F +:10059000FAF4BB0F11F460FF1BC06F5F7F4F8F4FEA +:1005A0009F4F16C0882311F096E911C0772321F0E0 +:1005B0009EE8872F762F05C0662371F096E8862F78 +:1005C00070E060E02AF09A95660F771F881FDAF7CF +:1005D000880F9695879597F908950BD078C069D0C4 +:1005E00028F06ED018F0952309F05AC05FC011248E +:1005F000A2C07ED0A0F3959FD1F3950F50E0551F78 +:10060000629FF001729FBB27F00DB11D639FAA2767 +:10061000F00DB11DAA1F649F6627B00DA11D661FB6 +:10062000829F2227B00DA11D621F739FB00DA11DD7 +:10063000621F839FA00D611D221F749F3327A00D91 +:10064000611D231F849F600D211D822F762F6A2F2D +:1006500011249F5750408AF0E1F088234AF0EE0FB2 +:10066000FF1FBB1F661F771F881F91505040A9F7BF +:100670009E3F510570F014C05EC05F3FECF3983EA2 +:10068000DCF3869577956795B795F795E7959F5F26 +:10069000C1F7FE2B880F911D9695879597F90895C0 +:1006A00097F99F6780E870E060E008959FEF80EC25 +:1006B000089500240A9416161706180609060895C8 +:1006C00000240A9412161306140605060895092E2E +:1006D0000394000C11F4882352F0BB0F40F4BF2B9D +:1006E00011F460FF04C06F5F7F4F8F4F9F4F0895DD +:1006F00057FD9058440F551F59F05F3F71F04795D3 +:10070000880F97FB991F61F09F3F79F087950895B7 +:10071000121613061406551FF2CF4695F1DF08C0D6 +:10072000161617061806991FF1CF869571056105F3 +:1007300008940895E894BB2766277727CB0197F99B +:1007400008950F931F93CF93DF93CDB7DEB72E9706 +:100750000FB6F894DEBF0FBECDBF0D891E898F89FD +:10076000988D26E02C831A83098397FF02C080E0CE +:1007700090E801979E838D83AE01455E5F4F698D42 +:100780007A8DCE01019619D04D815E8157FD0AC048 +:100790002F813885421753070CF49A01F801E20FB4 +:1007A000F31F10822E960FB6F894DEBF0FBECDBF9A +:1007B000DF91CF911F910F9108952F923F924F9209 +:1007C0005F926F927F928F929F92AF92BF92CF92E1 +:1007D000DF92EF92FF920F931F93CF93DF93CDB7EA +:1007E000DEB72B970FB6F894DEBF0FBECDBF6C01FE +:1007F0007B018A01FC0117821682838181FFBFC1C0 +:10080000CE0101963C01F6019381F70193FD85919C +:1008100093FF81917F01882309F4ADC1853239F4BA +:1008200093FD859193FF81917F01853221F4B6017B +:1008300090E0D6D1E8CF912C212C312CFFE1F3159B +:10084000D8F08B3279F038F4803279F08332A1F429 +:10085000232D20611DC08D3261F0803369F4232D7A +:10086000216016C0832D8260382EE32DE4603E2E79 +:100870002AC0F32DF8601DC037FC2DC020ED280FD5 +:100880002A3040F08E32B9F436FC75C1232D206435 +:10089000322E19C036FE06C08AE0989E200D112423 +:1008A000922E11C0EAE02E9E200D1124222EF32D4F +:1008B000F0623F2E08C08C3621F4832D8068382EDC +:1008C00002C0883641F4F70193FD859193FF819131 +:1008D0007F018111B3CF982F9F7D9554933028F4D9 +:1008E0000C5F1F4F9FE399830DC0833631F0833730 +:1008F00071F0833509F055C020C0F80180818983EB +:100900000E5F1F4F88248394912C530112C028013D +:10091000F2E04F0E511CF801A080B18036FE03C0FA +:10092000692D70E002C06FEF7FEFC5014ED14C0121 +:100930008201F32DFF773F2E15C0280122E0420EE1 +:10094000511CF801A080B18036FE03C0692D70E013 +:1009500002C06FEF7FEFC5012DD14C01F32DF06880 +:100960003F2E820133FC19C0822D90E08816990633 +:10097000A0F4B60180E290E033D12A94F5CFF501DE +:1009800037FC859137FE81915F01B60190E028D157 +:1009900021102A9421E0821A91088114910479F798 +:1009A000E1C0843611F0893639F5F80137FE07C009 +:1009B00060817181828193810C5F1F4F08C06081CB +:1009C0007181072E000C880B990B0E5F1F4FF32DC2 +:1009D000FF763F2E97FF09C09095809570956195A1 +:1009E0007F4F8F4F9F4FF0683F2E2AE030E0A301EA +:1009F00033D1882E861844C0853731F4232D2F7EBD +:100A0000B22E2AE030E025C0932D997FB92E8F3683 +:100A1000C1F018F4883579F0AEC0803719F0883706 +:100A200021F0A9C0E92FE061BE2EB4FE0DC0FB2D60 +:100A3000F460BF2E09C034FE0AC0292F2660B22EF2 +:100A400006C028E030E005C020E130E002C020E12F +:100A500032E0F801B7FE07C0608171818281938125 +:100A60000C5F1F4F06C06081718180E090E00E5FD7 +:100A70001F4FA301F1D0882E8618FB2DFF773F2E44 +:100A800036FE0DC0232D2E7FA22E891458F434FE7D +:100A90000BC032FC09C0832D8E7EA82E05C0B82C59 +:100AA000A32C03C0B82C01C0B92CA4FE0FC0FE01BA +:100AB000E80DF11D8081803321F49A2D997EA92EB5 +:100AC00009C0A2FE06C0B394B39404C08A2D8678F0 +:100AD00009F0B394A3FC10C0A0FE06C0B21480F4C9 +:100AE000280C922C9B180DC0B21458F4B60180E269 +:100AF00090E076D0B394F8CFB21418F42B1802C05B +:100B0000982C212CA4FE0FC0B60180E390E068D0A1 +:100B1000A2FE16C0A1FC03C088E790E002C088E5F1 +:100B200090E0B6010CC08A2D867851F0A1FE02C07B +:100B30008BE201C080E2A7FC8DE2B60190E050D0CC +:100B4000891430F4B60180E390E04AD09A94F8CF4B +:100B50008A94F301E80DF11D8081B60190E040D048 +:100B60008110F6CF222009F44ECEB60180E290E04B +:100B700037D02A94F7CFF6018681978102C08FEF94 +:100B80009FEF2B960FB6F894DEBF0FBECDBFDF915F +:100B9000CF911F910F91FF90EF90DF90CF90BF907A +:100BA000AF909F908F907F906F905F904F903F900D +:100BB0002F900895FC010590615070400110D8F706 +:100BC000809590958E0F9F1F0895FC016150704095 +:100BD00001900110D8F7809590958E0F9F1F089572 +:100BE0000F931F93CF93DF93FB01238121FD03C05C +:100BF0008FEF9FEF2CC022FF16C0468157812481C2 +:100C000035814217530744F4A081B1819D012F5FC4 +:100C10003F4F318320838C93268137812F5F3F4F55 +:100C20003783268314C08B01EC01FB010084F1851E +:100C3000E02D0995892BE1F6D80116968D919C91AE +:100C40001797019617969C938E931697CE01DF9176 +:100C5000CF911F910F910895FA01AA27283051F1E1 +:100C6000203181F1E8946F936E7F6E5F7F4F8F4FDD +:100C70009F4FAF4FB1E03ED0B4E03CD0670F781F3C +:100C8000891F9A1FA11D680F791F8A1F911DA11D21 +:100C90006A0F711D811D911DA11D20D009F468945A +:100CA0003F912AE0269F11243019305D3193DEF602 +:100CB000CF010895462F4770405D4193B3E00FD0B8 +:100CC000C9F7F6CF462F4F70405D4A3318F0495DA3 +:100CD00031FD4052419302D0A9F7EACFB4E0A69586 +:100CE0009795879577956795BA95C9F700976105A8 +:100CF000710508959B01AC010A2E069457954795FE +:100D000037952795BA95C9F7620F731F841F951FF2 +:080D1000A01D0895F894FFCF27 +:100D180001080C0406020301090901030206040C78 +:100D2800080125640025733A20252E336620257393 +:0A0D380000636D006469737400002D :00000001FF diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.lss b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.lss index 7333bfe..f91d335 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 00000022 00800100 00000aec 00000b80 2**0 + 0 .data 0000002a 00800100 00000d18 00000dac 2**0 CONTENTS, ALLOC, LOAD, DATA - 1 .text 00000aec 00000000 00000000 00000094 2**1 + 1 .text 00000d18 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .bss 0000000c 00800122 00800122 00000ba2 2**0 + 2 .bss 0000000c 0080012a 0080012a 00000dd6 2**0 ALLOC - 3 .comment 0000005c 00000000 00000000 00000ba2 2**0 + 3 .comment 0000005c 00000000 00000000 00000dd6 2**0 CONTENTS, READONLY - 4 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 00000c00 2**2 + 4 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 00000e34 2**2 CONTENTS, READONLY - 5 .debug_aranges 00000150 00000000 00000000 00000c3c 2**0 + 5 .debug_aranges 00000150 00000000 00000000 00000e70 2**0 CONTENTS, READONLY, DEBUGGING - 6 .debug_info 000015b4 00000000 00000000 00000d8c 2**0 + 6 .debug_info 000015dc 00000000 00000000 00000fc0 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_abbrev 00000d50 00000000 00000000 00002340 2**0 + 7 .debug_abbrev 00000d50 00000000 00000000 0000259c 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_line 00000ae5 00000000 00000000 00003090 2**0 + 8 .debug_line 00000ae5 00000000 00000000 000032ec 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_frame 0000037c 00000000 00000000 00003b78 2**2 + 9 .debug_frame 0000037c 00000000 00000000 00003dd4 2**2 CONTENTS, READONLY, DEBUGGING - 10 .debug_str 00000772 00000000 00000000 00003ef4 2**0 + 10 .debug_str 00000772 00000000 00000000 00004150 2**0 CONTENTS, READONLY, DEBUGGING - 11 .debug_loc 00000831 00000000 00000000 00004666 2**0 + 11 .debug_loc 00000831 00000000 00000000 000048c2 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_ranges 00000110 00000000 00000000 00004e97 2**0 + 12 .debug_ranges 00000110 00000000 00000000 000050f3 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -39,7 +39,7 @@ Disassembly of section .text: 6: 00 00 nop 8: 5e c0 rjmp .+188 ; 0xc6 <__bad_interrupt> a: 00 00 nop - c: 45 c1 rjmp .+650 ; 0x298 <__vector_3> + 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: b6 c1 rjmp .+876 ; 0x392 <__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: ec ee ldi r30, 0xEC ; 236 - a0: fa e0 ldi r31, 0x0A ; 10 + 9e: e8 e1 ldi r30, 0x18 ; 24 + 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: a2 32 cpi r26, 0x22 ; 34 + ac: aa 32 cpi r26, 0x2A ; 42 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: a2 e2 ldi r26, 0x22 ; 34 + b4: aa e2 ldi r26, 0x2A ; 42 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: ae 32 cpi r26, 0x2E ; 46 + bc: a6 33 cpi r26, 0x36 ; 54 be: b2 07 cpc r27, r18 c0: e1 f7 brne .-8 ; 0xba <.do_clear_bss_loop> - c2: 11 d1 rcall .+546 ; 0x2e6
- c4: 11 c5 rjmp .+2594 ; 0xae8 <_exit> + c2: 2f d1 rcall .+606 ; 0x322
+ c4: 27 c6 rjmp .+3150 ; 0xd14 <_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,1422 +295,1727 @@ 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: 89 d1 rcall .+786 ; 0x516 - 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: 6b d1 rcall .+726 ; 0x516 + 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: 8d d2 rcall .+1306 ; 0x742 + 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: 69 d2 rcall .+1234 ; 0x742 + 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 : ultrasonic_send_pulse(); } static void ultrasoon_value_set_event(uint16_t value){ // if the SODAR is initialising, then look for close start object. if(initialising){ - 276: 20 91 00 01 lds r18, 0x0100 ; 0x800100 <__data_start> - 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 < MAX_DISTANCE_INIT){ - 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: d7 d0 rcall .+430 ; 0x470 initialising = false; - 286: 10 92 00 01 sts 0x0100, r1 ; 0x800100 <__data_start> + 2c2: 10 92 00 01 sts 0x0100, r1 ; 0x800100 <__DATA_REGION_ORIGIN__> // when found, set the initial rotation. stepper_rotate_angle(ROTAITION_ANGLE, 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: c4 c0 rjmp .+392 ; 0x456 + 2ce: 08 95 ret -00000294 : +000002d0 : ultrasonic_handle_interrupt(); } static void snap_event_trigger(uint8_t rotation){ // when X amount of steps are taken, do pulse. ultrasonic_send_pulse(); - 294: 04 c1 rjmp .+520 ; 0x49e - 296: 08 95 ret + 2d0: 0a c1 rjmp .+532 ; 0x4e6 + 2d2: 08 95 ret -00000298 <__vector_3>: +000002d4 <__vector_3>: // if true: in init mode, looking for starting point. bool initialising = true; 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: 02 d1 rcall .+516 ; 0x500 } - 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) { // initialize ultrasonic sensor driver. ultrasonic_init(); - 2e6: cc d0 rcall .+408 ; 0x480 + 322: d2 d0 rcall .+420 ; 0x4c8 // initialize LCD display in 4 bit mode. init_4bits_mode(); - 2e8: 44 df rcall .-376 ; 0x172 + 324: 26 df rcall .-436 ; 0x172 // initialize stepper driver. init_stepper_driver(); - 2ea: a0 d0 rcall .+320 ; 0x42c + 326: a6 d0 rcall .+332 ; 0x474 // set the event when a pulse must be sent. 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: 2d d0 rcall .+90 ; 0x388 // set a event for when a value has been set from the ultrasonic sensor. 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: 04 d1 rcall .+520 ; 0x53c + 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(INIT_ROTAITION_ANGLE, 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: 86 d0 rcall .+268 ; 0x456 + 34a: 08 df rcall .-496 ; 0x15c while (1) { lcd_clear(); - 30c: 80 d0 rcall .+256 ; 0x40e - 30e: 26 df rcall .-436 ; 0x15c + 34c: fc d0 rcall .+504 ; 0x546 // set the ultrasonic value to the lcd. - 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 + lcd_write_double("dist" ,ultrasonic_get_timer_dist(), "cm"); + 34e: ab 01 movw r20, r22 + 350: bc 01 movw r22, r24 + 352: 21 e2 ldi r18, 0x21 ; 33 + 354: 31 e0 ldi r19, 0x01 ; 1 + 356: 84 e2 ldi r24, 0x24 ; 36 + 358: 91 e0 ldi r25, 0x01 ; 1 + 35a: 35 df rcall .-406 ; 0x1c6 + 35c: 84 e6 ldi r24, 0x64 ; 100 + 35e: 90 e0 ldi r25, 0x00 ; 0 wait_ms(LCD_SET_DELAY); - 318: a4 d0 rcall .+328 ; 0x462 - 31a: f9 cf rjmp .-14 ; 0x30e + 360: a4 d0 rcall .+328 ; 0x4aa + 362: f3 cf rjmp .-26 ; 0x34a -0000031c : +00000364 : void stepper_rotate_full_rotation_CW(); void stepper_rotate_full_rotation_CCW(); void set_stepper_state(uint8_t count){ if(rotation == ClockWise){ - 31c: 90 91 29 01 lds r25, 0x0129 ; 0x800129 - 320: 91 11 cpse r25, r1 - 322: 07 c0 rjmp .+14 ; 0x332 + 364: 90 91 31 01 lds r25, 0x0131 ; 0x800131 + 368: 91 11 cpse r25, r1 + 36a: 07 c0 rjmp .+14 ; 0x37a 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 + 36c: e8 2f mov r30, r24 + 36e: f0 e0 ldi r31, 0x00 ; 0 + 370: ef 5f subi r30, 0xFF ; 255 + 372: fe 4f sbci r31, 0xFE ; 254 + 374: 80 81 ld r24, Z + 376: 83 b9 out 0x03, r24 ; 3 + 378: 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 + 37a: e8 2f mov r30, r24 + 37c: f0 e0 ldi r31, 0x00 ; 0 + 37e: e7 5f subi r30, 0xF7 ; 247 + 380: fe 4f sbci r31, 0xFE ; 254 + 382: 80 81 ld r24, Z + 384: 83 b9 out 0x03, r24 ; 3 + 386: 08 95 ret -00000340 : +00000388 : } void (*snap_event)(uint8_t); void set_snap_event(void (*snap_event_p)(uint8_t)){ snap_event = snap_event_p; - 340: 90 93 2b 01 sts 0x012B, r25 ; 0x80012b - 344: 80 93 2a 01 sts 0x012A, r24 ; 0x80012a - 348: 08 95 ret + 388: 90 93 33 01 sts 0x0133, r25 ; 0x800133 + 38c: 80 93 32 01 sts 0x0132, r24 ; 0x800132 + 390: 08 95 ret -0000034a <__vector_9>: +00000392 <__vector_9>: } 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 + 392: 1f 92 push r1 + 394: 0f 92 push r0 + 396: 0f b6 in r0, 0x3f ; 63 + 398: 0f 92 push r0 + 39a: 11 24 eor r1, r1 + 39c: 0b b6 in r0, 0x3b ; 59 + 39e: 0f 92 push r0 + 3a0: 2f 93 push r18 + 3a2: 3f 93 push r19 + 3a4: 4f 93 push r20 + 3a6: 5f 93 push r21 + 3a8: 6f 93 push r22 + 3aa: 7f 93 push r23 + 3ac: 8f 93 push r24 + 3ae: 9f 93 push r25 + 3b0: af 93 push r26 + 3b2: bf 93 push r27 + 3b4: ef 93 push r30 + 3b6: ff 93 push r31 TCNT2 = 0; - 370: 14 bc out 0x24, r1 ; 36 + 3b8: 14 bc out 0x24, r1 ; 36 set_stepper_state(stepper_state); - 372: 80 91 22 01 lds r24, 0x0122 ; 0x800122 <__data_end> - 376: d2 df rcall .-92 ; 0x31c + 3ba: 80 91 2a 01 lds r24, 0x012A ; 0x80012a <__data_end> + 3be: d2 df rcall .-92 ; 0x364 if(stepper_state < 7){ - 378: 80 91 22 01 lds r24, 0x0122 ; 0x800122 <__data_end> - 37c: 87 30 cpi r24, 0x07 ; 7 - 37e: 20 f4 brcc .+8 ; 0x388 <__vector_9+0x3e> + 3c0: 80 91 2a 01 lds r24, 0x012A ; 0x80012a <__data_end> + 3c4: 87 30 cpi r24, 0x07 ; 7 + 3c6: 20 f4 brcc .+8 ; 0x3d0 <__vector_9+0x3e> stepper_state++; - 380: 8f 5f subi r24, 0xFF ; 255 - 382: 80 93 22 01 sts 0x0122, r24 ; 0x800122 <__data_end> - 386: 30 c0 rjmp .+96 ; 0x3e8 <__vector_9+0x9e> + 3c8: 8f 5f subi r24, 0xFF ; 255 + 3ca: 80 93 2a 01 sts 0x012A, r24 ; 0x80012a <__data_end> + 3ce: 30 c0 rjmp .+96 ; 0x430 <__LOCK_REGION_LENGTH__+0x30> } else { stepper_state = 0; - 388: 10 92 22 01 sts 0x0122, r1 ; 0x800122 <__data_end> + 3d0: 10 92 2a 01 sts 0x012A, r1 ; 0x80012a <__data_end> if(steps_to_do == 0){ - 38c: 80 91 23 01 lds r24, 0x0123 ; 0x800123 - 390: 90 91 24 01 lds r25, 0x0124 ; 0x800124 - 394: 00 97 sbiw r24, 0x00 ; 0 - 396: 99 f4 brne .+38 ; 0x3be <__vector_9+0x74> + 3d4: 80 91 2b 01 lds r24, 0x012B ; 0x80012b + 3d8: 90 91 2c 01 lds r25, 0x012C ; 0x80012c + 3dc: 00 97 sbiw r24, 0x00 ; 0 + 3de: 99 f4 brne .+38 ; 0x406 <__LOCK_REGION_LENGTH__+0x6> // change rotation if the steps todo is 0. if(rotation == ClockWise){ - 398: 80 91 29 01 lds r24, 0x0129 ; 0x800129 - 39c: 81 11 cpse r24, r1 - 39e: 04 c0 rjmp .+8 ; 0x3a8 <__vector_9+0x5e> + 3e0: 80 91 31 01 lds r24, 0x0131 ; 0x800131 + 3e4: 81 11 cpse r24, r1 + 3e6: 04 c0 rjmp .+8 ; 0x3f0 <__vector_9+0x5e> rotation = CounterClockWise; - 3a0: 81 e0 ldi r24, 0x01 ; 1 - 3a2: 80 93 29 01 sts 0x0129, r24 ; 0x800129 - 3a6: 02 c0 rjmp .+4 ; 0x3ac <__vector_9+0x62> + 3e8: 81 e0 ldi r24, 0x01 ; 1 + 3ea: 80 93 31 01 sts 0x0131, r24 ; 0x800131 + 3ee: 02 c0 rjmp .+4 ; 0x3f4 <__vector_9+0x62> } else { rotation = ClockWise; - 3a8: 10 92 29 01 sts 0x0129, r1 ; 0x800129 + 3f0: 10 92 31 01 sts 0x0131, r1 ; 0x800131 } // set the steps to do again. steps_to_do = steps_each_turn; - 3ac: 80 91 25 01 lds r24, 0x0125 ; 0x800125 - 3b0: 90 91 26 01 lds r25, 0x0126 ; 0x800126 - 3b4: 90 93 24 01 sts 0x0124, r25 ; 0x800124 - 3b8: 80 93 23 01 sts 0x0123, r24 ; 0x800123 - 3bc: 15 c0 rjmp .+42 ; 0x3e8 <__vector_9+0x9e> + 3f4: 80 91 2d 01 lds r24, 0x012D ; 0x80012d + 3f8: 90 91 2e 01 lds r25, 0x012E ; 0x80012e + 3fc: 90 93 2c 01 sts 0x012C, r25 ; 0x80012c + 400: 80 93 2b 01 sts 0x012B, r24 ; 0x80012b + 404: 15 c0 rjmp .+42 ; 0x430 <__LOCK_REGION_LENGTH__+0x30> } else { // if the stepper step value is at a multiplier of 32 then make snap event. if(steps_to_do % STEPS_EACH_PULSE == 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> + 406: 9c 01 movw r18, r24 + 408: 2f 71 andi r18, 0x1F ; 31 + 40a: 33 27 eor r19, r19 + 40c: 23 2b or r18, r19 + 40e: 39 f4 brne .+14 ; 0x41e <__LOCK_REGION_LENGTH__+0x1e> if(snap_event != NULL) - 3c8: e0 91 2a 01 lds r30, 0x012A ; 0x80012a - 3cc: f0 91 2b 01 lds r31, 0x012B ; 0x80012b - 3d0: 30 97 sbiw r30, 0x00 ; 0 - 3d2: 09 f0 breq .+2 ; 0x3d6 <__vector_9+0x8c> + 410: e0 91 32 01 lds r30, 0x0132 ; 0x800132 + 414: f0 91 33 01 lds r31, 0x0133 ; 0x800133 + 418: 30 97 sbiw r30, 0x00 ; 0 + 41a: 09 f0 breq .+2 ; 0x41e <__LOCK_REGION_LENGTH__+0x1e> snap_event(steps_to_do); - 3d4: 09 95 icall + 41c: 09 95 icall } steps_to_do--; - 3d6: 80 91 23 01 lds r24, 0x0123 ; 0x800123 - 3da: 90 91 24 01 lds r25, 0x0124 ; 0x800124 - 3de: 01 97 sbiw r24, 0x01 ; 1 - 3e0: 90 93 24 01 sts 0x0124, r25 ; 0x800124 - 3e4: 80 93 23 01 sts 0x0123, r24 ; 0x800123 + 41e: 80 91 2b 01 lds r24, 0x012B ; 0x80012b + 422: 90 91 2c 01 lds r25, 0x012C ; 0x80012c + 426: 01 97 sbiw r24, 0x01 ; 1 + 428: 90 93 2c 01 sts 0x012C, r25 ; 0x80012c + 42c: 80 93 2b 01 sts 0x012B, r24 ; 0x80012b } } } - 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 + 430: ff 91 pop r31 + 432: ef 91 pop r30 + 434: bf 91 pop r27 + 436: af 91 pop r26 + 438: 9f 91 pop r25 + 43a: 8f 91 pop r24 + 43c: 7f 91 pop r23 + 43e: 6f 91 pop r22 + 440: 5f 91 pop r21 + 442: 4f 91 pop r20 + 444: 3f 91 pop r19 + 446: 2f 91 pop r18 + 448: 0f 90 pop r0 + 44a: 0b be out 0x3b, r0 ; 59 + 44c: 0f 90 pop r0 + 44e: 0f be out 0x3f, r0 ; 63 + 450: 0f 90 pop r0 + 452: 1f 90 pop r1 + 454: 18 95 reti -0000040e : +00000456 : void stepper_rotate_angle(uint16_t steps, enum rotation_wise rot){ steps_to_do = steps; - 40e: 90 93 24 01 sts 0x0124, r25 ; 0x800124 - 412: 80 93 23 01 sts 0x0123, r24 ; 0x800123 + 456: 90 93 2c 01 sts 0x012C, r25 ; 0x80012c + 45a: 80 93 2b 01 sts 0x012B, r24 ; 0x80012b steps_each_turn = steps; - 416: 90 93 26 01 sts 0x0126, r25 ; 0x800126 - 41a: 80 93 25 01 sts 0x0125, r24 ; 0x800125 + 45e: 90 93 2e 01 sts 0x012E, r25 ; 0x80012e + 462: 80 93 2d 01 sts 0x012D, r24 ; 0x80012d rotation = rot; - 41e: 60 93 29 01 sts 0x0129, r22 ; 0x800129 + 466: 60 93 31 01 sts 0x0131, r22 ; 0x800131 TCCR2 = 0b00001100; - 422: 8c e0 ldi r24, 0x0C ; 12 - 424: 85 bd out 0x25, r24 ; 37 - 426: 08 95 ret + 46a: 8c e0 ldi r24, 0x0C ; 12 + 46c: 85 bd out 0x25, r24 ; 37 + 46e: 08 95 ret -00000428 : +00000470 : } void stepper_rotate_stop(){ TCCR2 = 0b00000000; - 428: 15 bc out 0x25, r1 ; 37 - 42a: 08 95 ret + 470: 15 bc out 0x25, r1 ; 37 + 472: 08 95 ret -0000042c : +00000474 : } void init_stepper_driver(){ DDRE = 0xff; - 42c: 8f ef ldi r24, 0xFF ; 255 - 42e: 82 b9 out 0x02, r24 ; 2 + 474: 8f ef ldi r24, 0xFF ; 255 + 476: 82 b9 out 0x02, r24 ; 2 DDRG = 0xff; - 430: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064> + 478: 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> + 47c: 81 e0 ldi r24, 0x01 ; 1 + 47e: 80 93 65 00 sts 0x0065, r24 ; 0x800065 <__TEXT_REGION_LENGTH__+0x7e0065> PORTE = 0x00; - 43a: 13 b8 out 0x03, r1 ; 3 + 482: 13 b8 out 0x03, r1 ; 3 OCR2 = 150; - 43c: 86 e9 ldi r24, 0x96 ; 150 - 43e: 83 bd out 0x23, r24 ; 35 + 484: 86 e9 ldi r24, 0x96 ; 150 + 486: 83 bd out 0x23, r24 ; 35 TIMSK = BIT(7); - 440: 80 e8 ldi r24, 0x80 ; 128 - 442: 87 bf out 0x37, r24 ; 55 + 488: 80 e8 ldi r24, 0x80 ; 128 + 48a: 87 bf out 0x37, r24 ; 55 sei(); - 444: 78 94 sei - 446: 08 95 ret + 48c: 78 94 sei + 48e: 08 95 ret -00000448 : +00000490 : 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 + 490: 20 e0 ldi r18, 0x00 ; 0 + 492: 30 e0 ldi r19, 0x00 ; 0 + 494: 06 c0 rjmp .+12 ; 0x4a2 #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 + 496: 43 e0 ldi r20, 0x03 ; 3 + 498: 4a 95 dec r20 + 49a: f1 f7 brne .-4 ; 0x498 + 49c: 00 00 nop + 49e: 2f 5f subi r18, 0xFF ; 255 + 4a0: 3f 4f sbci r19, 0xFF ; 255 + 4a2: 28 17 cp r18, r24 + 4a4: 39 07 cpc r19, r25 + 4a6: b8 f3 brcs .-18 ; 0x496 { _delay_us(1); } } - 460: 08 95 ret + 4a8: 08 95 ret -00000462 : +000004aa : 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 + 4aa: 20 e0 ldi r18, 0x00 ; 0 + 4ac: 30 e0 ldi r19, 0x00 ; 0 + 4ae: 08 c0 rjmp .+16 ; 0x4c0 #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 + 4b0: e3 ec ldi r30, 0xC3 ; 195 + 4b2: f9 e0 ldi r31, 0x09 ; 9 + 4b4: 31 97 sbiw r30, 0x01 ; 1 + 4b6: f1 f7 brne .-4 ; 0x4b4 + 4b8: 00 c0 rjmp .+0 ; 0x4ba + 4ba: 00 00 nop + 4bc: 2f 5f subi r18, 0xFF ; 255 + 4be: 3f 4f sbci r19, 0xFF ; 255 + 4c0: 28 17 cp r18, r24 + 4c2: 39 07 cpc r19, r25 + 4c4: a8 f3 brcs .-22 ; 0x4b0 { _delay_ms(1); } } - 47e: 08 95 ret + 4c6: 08 95 ret -00000480 : +000004c8 : 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> + 4c8: 8f ef ldi r24, 0xFF ; 255 + 4ca: 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 + 4ce: 11 ba out 0x11, r1 ; 17 EICRA = 0x30; // interrupt PORTD on pin 2, rising edge - 488: 80 e3 ldi r24, 0x30 ; 48 - 48a: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> + 4d0: 80 e3 ldi r24, 0x30 ; 48 + 4d2: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> EIMSK |= 0x04; // enable interrupt on pin 2 (INT2) - 48e: 89 b7 in r24, 0x39 ; 57 - 490: 84 60 ori r24, 0x04 ; 4 - 492: 89 bf out 0x39, r24 ; 57 + 4d6: 89 b7 in r24, 0x39 ; 57 + 4d8: 84 60 ori r24, 0x04 ; 4 + 4da: 89 bf out 0x39, r24 ; 57 TCCR1A = 0b00000000; // initialize timer1, prescaler=256 - 494: 1f bc out 0x2f, r1 ; 47 + 4dc: 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 + 4de: 8c e0 ldi r24, 0x0C ; 12 + 4e0: 8e bd out 0x2e, r24 ; 46 sei(); // turn on interrupt system - 49a: 78 94 sei - 49c: 08 95 ret + 4e2: 78 94 sei + 4e4: 08 95 ret -0000049e : +000004e6 : } void ultrasonic_send_pulse() { - 49e: cf 93 push r28 - 4a0: df 93 push r29 + 4e6: cf 93 push r28 + 4e8: 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 + 4ea: c5 e6 ldi r28, 0x65 ; 101 + 4ec: d0 e0 ldi r29, 0x00 ; 0 + 4ee: 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 + 4f0: 8a e0 ldi r24, 0x0A ; 10 + 4f2: 90 e0 ldi r25, 0x00 ; 0 + 4f4: cd df rcall .-102 ; 0x490 PORTG = 0x01; - 4ae: 81 e0 ldi r24, 0x01 ; 1 - 4b0: 88 83 st Y, r24 + 4f6: 81 e0 ldi r24, 0x01 ; 1 + 4f8: 88 83 st Y, r24 } - 4b2: df 91 pop r29 - 4b4: cf 91 pop r28 - 4b6: 08 95 ret + 4fa: df 91 pop r29 + 4fc: cf 91 pop r28 + 4fe: 08 95 ret -000004b8 : +00000500 : 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 + 500: 80 91 11 01 lds r24, 0x0111 ; 0x800111 + 504: 81 30 cpi r24, 0x01 ; 1 + 506: 41 f4 brne .+16 ; 0x518 { // set interrupt pin 2 on PORTD to falling edge EICRA = 0x20; - 4c0: 80 e2 ldi r24, 0x20 ; 32 - 4c2: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> + 508: 80 e2 ldi r24, 0x20 ; 32 + 50a: 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 + 50e: 1d bc out 0x2d, r1 ; 45 + 510: 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 + 512: 10 92 11 01 sts 0x0111, r1 ; 0x800111 + 516: 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 = 0x30; // interrupt PORTD on pin 2, rising edge - 4d0: 80 e3 ldi r24, 0x30 ; 48 - 4d2: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a> + 518: 80 e3 ldi r24, 0x30 ; 48 + 51a: 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 28 01 sts 0x0128, r25 ; 0x800128 - 4de: 80 93 27 01 sts 0x0127, r24 ; 0x800127 + 51e: 8c b5 in r24, 0x2c ; 44 + 520: 9d b5 in r25, 0x2d ; 45 + 522: 90 93 30 01 sts 0x0130, r25 ; 0x800130 + 526: 80 93 2f 01 sts 0x012F, r24 ; 0x80012f //EVENT value_set_event(timer_dist); - 4e2: e0 91 2c 01 lds r30, 0x012C ; 0x80012c - 4e6: f0 91 2d 01 lds r31, 0x012D ; 0x80012d - 4ea: 09 95 icall + 52a: e0 91 34 01 lds r30, 0x0134 ; 0x800134 + 52e: f0 91 35 01 lds r31, 0x0135 ; 0x800135 + 532: 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 + 534: 81 e0 ldi r24, 0x01 ; 1 + 536: 80 93 11 01 sts 0x0111, r24 ; 0x800111 + 53a: 08 95 ret -000004f4 : +0000053c : } } 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 2d 01 sts 0x012D, r25 ; 0x80012d - 4f8: 80 93 2c 01 sts 0x012C, r24 ; 0x80012c - 4fc: 08 95 ret + 53c: 90 93 35 01 sts 0x0135, r25 ; 0x800135 + 540: 80 93 34 01 sts 0x0134, r24 ; 0x800134 + 544: 08 95 ret -000004fe : +00000546 : } -uint16_t ultrasonic_get_timer_dist() +float ultrasonic_get_timer_dist() { - return timer_dist * (340 / 2); - 4fe: 80 91 27 01 lds r24, 0x0127 ; 0x800127 - 502: 90 91 28 01 lds r25, 0x0128 ; 0x800128 + return timer_dist * (float)(340 / 2.0); + 546: 60 91 2f 01 lds r22, 0x012F ; 0x80012f + 54a: 70 91 30 01 lds r23, 0x0130 ; 0x800130 + 54e: 80 e0 ldi r24, 0x00 ; 0 + 550: 90 e0 ldi r25, 0x00 ; 0 + 552: 06 d0 rcall .+12 ; 0x560 <__floatunsisf> + 554: 20 e0 ldi r18, 0x00 ; 0 + 556: 30 e0 ldi r19, 0x00 ; 0 + 558: 4a e2 ldi r20, 0x2A ; 42 + 55a: 53 e4 ldi r21, 0x43 ; 67 + 55c: 3e c0 rjmp .+124 ; 0x5da <__mulsf3> } - 506: 2a ea ldi r18, 0xAA ; 170 - 508: ac 01 movw r20, r24 - 50a: 24 9f mul r18, r20 - 50c: c0 01 movw r24, r0 - 50e: 25 9f mul r18, r21 - 510: 90 0d add r25, r0 - 512: 11 24 eor r1, r1 - 514: 08 95 ret + 55e: 08 95 ret -00000516 : - 516: 0f 93 push r16 - 518: 1f 93 push r17 - 51a: cf 93 push r28 - 51c: df 93 push r29 - 51e: cd b7 in r28, 0x3d ; 61 - 520: de b7 in r29, 0x3e ; 62 - 522: 2e 97 sbiw r28, 0x0e ; 14 - 524: 0f b6 in r0, 0x3f ; 63 - 526: f8 94 cli - 528: de bf out 0x3e, r29 ; 62 - 52a: 0f be out 0x3f, r0 ; 63 - 52c: cd bf out 0x3d, r28 ; 61 - 52e: 0d 89 ldd r16, Y+21 ; 0x15 - 530: 1e 89 ldd r17, Y+22 ; 0x16 - 532: 8f 89 ldd r24, Y+23 ; 0x17 - 534: 98 8d ldd r25, Y+24 ; 0x18 - 536: 26 e0 ldi r18, 0x06 ; 6 - 538: 2c 83 std Y+4, r18 ; 0x04 - 53a: 1a 83 std Y+2, r17 ; 0x02 - 53c: 09 83 std Y+1, r16 ; 0x01 - 53e: 97 ff sbrs r25, 7 - 540: 02 c0 rjmp .+4 ; 0x546 - 542: 80 e0 ldi r24, 0x00 ; 0 - 544: 90 e8 ldi r25, 0x80 ; 128 - 546: 01 97 sbiw r24, 0x01 ; 1 - 548: 9e 83 std Y+6, r25 ; 0x06 - 54a: 8d 83 std Y+5, r24 ; 0x05 - 54c: ae 01 movw r20, r28 - 54e: 45 5e subi r20, 0xE5 ; 229 - 550: 5f 4f sbci r21, 0xFF ; 255 - 552: 69 8d ldd r22, Y+25 ; 0x19 - 554: 7a 8d ldd r23, Y+26 ; 0x1a - 556: ce 01 movw r24, r28 - 558: 01 96 adiw r24, 0x01 ; 1 - 55a: 19 d0 rcall .+50 ; 0x58e - 55c: 4d 81 ldd r20, Y+5 ; 0x05 - 55e: 5e 81 ldd r21, Y+6 ; 0x06 - 560: 57 fd sbrc r21, 7 - 562: 0a c0 rjmp .+20 ; 0x578 - 564: 2f 81 ldd r18, Y+7 ; 0x07 - 566: 38 85 ldd r19, Y+8 ; 0x08 - 568: 42 17 cp r20, r18 - 56a: 53 07 cpc r21, r19 - 56c: 0c f4 brge .+2 ; 0x570 - 56e: 9a 01 movw r18, r20 - 570: f8 01 movw r30, r16 - 572: e2 0f add r30, r18 - 574: f3 1f adc r31, r19 - 576: 10 82 st Z, r1 - 578: 2e 96 adiw r28, 0x0e ; 14 - 57a: 0f b6 in r0, 0x3f ; 63 - 57c: f8 94 cli - 57e: de bf out 0x3e, r29 ; 62 - 580: 0f be out 0x3f, r0 ; 63 - 582: cd bf out 0x3d, r28 ; 61 - 584: df 91 pop r29 - 586: cf 91 pop r28 - 588: 1f 91 pop r17 - 58a: 0f 91 pop r16 - 58c: 08 95 ret +00000560 <__floatunsisf>: + 560: e8 94 clt + 562: 09 c0 rjmp .+18 ; 0x576 <__floatsisf+0x12> -0000058e : - 58e: 2f 92 push r2 - 590: 3f 92 push r3 - 592: 4f 92 push r4 - 594: 5f 92 push r5 - 596: 6f 92 push r6 - 598: 7f 92 push r7 - 59a: 8f 92 push r8 - 59c: 9f 92 push r9 - 59e: af 92 push r10 - 5a0: bf 92 push r11 - 5a2: cf 92 push r12 - 5a4: df 92 push r13 - 5a6: ef 92 push r14 - 5a8: ff 92 push r15 - 5aa: 0f 93 push r16 - 5ac: 1f 93 push r17 - 5ae: cf 93 push r28 - 5b0: df 93 push r29 - 5b2: cd b7 in r28, 0x3d ; 61 - 5b4: de b7 in r29, 0x3e ; 62 - 5b6: 2b 97 sbiw r28, 0x0b ; 11 - 5b8: 0f b6 in r0, 0x3f ; 63 - 5ba: f8 94 cli - 5bc: de bf out 0x3e, r29 ; 62 - 5be: 0f be out 0x3f, r0 ; 63 - 5c0: cd bf out 0x3d, r28 ; 61 - 5c2: 6c 01 movw r12, r24 - 5c4: 7b 01 movw r14, r22 - 5c6: 8a 01 movw r16, r20 - 5c8: fc 01 movw r30, r24 - 5ca: 17 82 std Z+7, r1 ; 0x07 - 5cc: 16 82 std Z+6, r1 ; 0x06 - 5ce: 83 81 ldd r24, Z+3 ; 0x03 - 5d0: 81 ff sbrs r24, 1 - 5d2: bf c1 rjmp .+894 ; 0x952 - 5d4: ce 01 movw r24, r28 - 5d6: 01 96 adiw r24, 0x01 ; 1 - 5d8: 3c 01 movw r6, r24 - 5da: f6 01 movw r30, r12 - 5dc: 93 81 ldd r25, Z+3 ; 0x03 - 5de: f7 01 movw r30, r14 - 5e0: 93 fd sbrc r25, 3 - 5e2: 85 91 lpm r24, Z+ - 5e4: 93 ff sbrs r25, 3 - 5e6: 81 91 ld r24, Z+ - 5e8: 7f 01 movw r14, r30 - 5ea: 88 23 and r24, r24 - 5ec: 09 f4 brne .+2 ; 0x5f0 - 5ee: ad c1 rjmp .+858 ; 0x94a - 5f0: 85 32 cpi r24, 0x25 ; 37 - 5f2: 39 f4 brne .+14 ; 0x602 - 5f4: 93 fd sbrc r25, 3 - 5f6: 85 91 lpm r24, Z+ - 5f8: 93 ff sbrs r25, 3 - 5fa: 81 91 ld r24, Z+ - 5fc: 7f 01 movw r14, r30 - 5fe: 85 32 cpi r24, 0x25 ; 37 - 600: 21 f4 brne .+8 ; 0x60a - 602: b6 01 movw r22, r12 - 604: 90 e0 ldi r25, 0x00 ; 0 - 606: d6 d1 rcall .+940 ; 0x9b4 - 608: e8 cf rjmp .-48 ; 0x5da - 60a: 91 2c mov r9, r1 - 60c: 21 2c mov r2, r1 - 60e: 31 2c mov r3, r1 - 610: ff e1 ldi r31, 0x1F ; 31 - 612: f3 15 cp r31, r3 - 614: d8 f0 brcs .+54 ; 0x64c - 616: 8b 32 cpi r24, 0x2B ; 43 - 618: 79 f0 breq .+30 ; 0x638 - 61a: 38 f4 brcc .+14 ; 0x62a - 61c: 80 32 cpi r24, 0x20 ; 32 - 61e: 79 f0 breq .+30 ; 0x63e - 620: 83 32 cpi r24, 0x23 ; 35 - 622: a1 f4 brne .+40 ; 0x64c - 624: 23 2d mov r18, r3 - 626: 20 61 ori r18, 0x10 ; 16 - 628: 1d c0 rjmp .+58 ; 0x664 - 62a: 8d 32 cpi r24, 0x2D ; 45 - 62c: 61 f0 breq .+24 ; 0x646 - 62e: 80 33 cpi r24, 0x30 ; 48 - 630: 69 f4 brne .+26 ; 0x64c - 632: 23 2d mov r18, r3 - 634: 21 60 ori r18, 0x01 ; 1 - 636: 16 c0 rjmp .+44 ; 0x664 - 638: 83 2d mov r24, r3 - 63a: 82 60 ori r24, 0x02 ; 2 - 63c: 38 2e mov r3, r24 - 63e: e3 2d mov r30, r3 - 640: e4 60 ori r30, 0x04 ; 4 - 642: 3e 2e mov r3, r30 - 644: 2a c0 rjmp .+84 ; 0x69a - 646: f3 2d mov r31, r3 - 648: f8 60 ori r31, 0x08 ; 8 - 64a: 1d c0 rjmp .+58 ; 0x686 - 64c: 37 fc sbrc r3, 7 - 64e: 2d c0 rjmp .+90 ; 0x6aa - 650: 20 ed ldi r18, 0xD0 ; 208 - 652: 28 0f add r18, r24 - 654: 2a 30 cpi r18, 0x0A ; 10 - 656: 40 f0 brcs .+16 ; 0x668 - 658: 8e 32 cpi r24, 0x2E ; 46 - 65a: b9 f4 brne .+46 ; 0x68a - 65c: 36 fc sbrc r3, 6 - 65e: 75 c1 rjmp .+746 ; 0x94a - 660: 23 2d mov r18, r3 - 662: 20 64 ori r18, 0x40 ; 64 - 664: 32 2e mov r3, r18 - 666: 19 c0 rjmp .+50 ; 0x69a - 668: 36 fe sbrs r3, 6 - 66a: 06 c0 rjmp .+12 ; 0x678 - 66c: 8a e0 ldi r24, 0x0A ; 10 - 66e: 98 9e mul r9, r24 - 670: 20 0d add r18, r0 - 672: 11 24 eor r1, r1 - 674: 92 2e mov r9, r18 - 676: 11 c0 rjmp .+34 ; 0x69a - 678: ea e0 ldi r30, 0x0A ; 10 - 67a: 2e 9e mul r2, r30 - 67c: 20 0d add r18, r0 - 67e: 11 24 eor r1, r1 - 680: 22 2e mov r2, r18 - 682: f3 2d mov r31, r3 - 684: f0 62 ori r31, 0x20 ; 32 - 686: 3f 2e mov r3, r31 - 688: 08 c0 rjmp .+16 ; 0x69a - 68a: 8c 36 cpi r24, 0x6C ; 108 - 68c: 21 f4 brne .+8 ; 0x696 - 68e: 83 2d mov r24, r3 - 690: 80 68 ori r24, 0x80 ; 128 - 692: 38 2e mov r3, r24 - 694: 02 c0 rjmp .+4 ; 0x69a - 696: 88 36 cpi r24, 0x68 ; 104 - 698: 41 f4 brne .+16 ; 0x6aa - 69a: f7 01 movw r30, r14 - 69c: 93 fd sbrc r25, 3 - 69e: 85 91 lpm r24, Z+ - 6a0: 93 ff sbrs r25, 3 - 6a2: 81 91 ld r24, Z+ - 6a4: 7f 01 movw r14, r30 - 6a6: 81 11 cpse r24, r1 - 6a8: b3 cf rjmp .-154 ; 0x610 - 6aa: 98 2f mov r25, r24 - 6ac: 9f 7d andi r25, 0xDF ; 223 - 6ae: 95 54 subi r25, 0x45 ; 69 - 6b0: 93 30 cpi r25, 0x03 ; 3 - 6b2: 28 f4 brcc .+10 ; 0x6be - 6b4: 0c 5f subi r16, 0xFC ; 252 - 6b6: 1f 4f sbci r17, 0xFF ; 255 - 6b8: 9f e3 ldi r25, 0x3F ; 63 - 6ba: 99 83 std Y+1, r25 ; 0x01 - 6bc: 0d c0 rjmp .+26 ; 0x6d8 - 6be: 83 36 cpi r24, 0x63 ; 99 - 6c0: 31 f0 breq .+12 ; 0x6ce - 6c2: 83 37 cpi r24, 0x73 ; 115 - 6c4: 71 f0 breq .+28 ; 0x6e2 - 6c6: 83 35 cpi r24, 0x53 ; 83 - 6c8: 09 f0 breq .+2 ; 0x6cc - 6ca: 55 c0 rjmp .+170 ; 0x776 - 6cc: 20 c0 rjmp .+64 ; 0x70e - 6ce: f8 01 movw r30, r16 - 6d0: 80 81 ld r24, Z - 6d2: 89 83 std Y+1, r24 ; 0x01 - 6d4: 0e 5f subi r16, 0xFE ; 254 - 6d6: 1f 4f sbci r17, 0xFF ; 255 - 6d8: 88 24 eor r8, r8 - 6da: 83 94 inc r8 - 6dc: 91 2c mov r9, r1 - 6de: 53 01 movw r10, r6 - 6e0: 12 c0 rjmp .+36 ; 0x706 - 6e2: 28 01 movw r4, r16 - 6e4: f2 e0 ldi r31, 0x02 ; 2 - 6e6: 4f 0e add r4, r31 - 6e8: 51 1c adc r5, r1 - 6ea: f8 01 movw r30, r16 - 6ec: a0 80 ld r10, Z - 6ee: b1 80 ldd r11, Z+1 ; 0x01 - 6f0: 36 fe sbrs r3, 6 - 6f2: 03 c0 rjmp .+6 ; 0x6fa - 6f4: 69 2d mov r22, r9 - 6f6: 70 e0 ldi r23, 0x00 ; 0 - 6f8: 02 c0 rjmp .+4 ; 0x6fe - 6fa: 6f ef ldi r22, 0xFF ; 255 - 6fc: 7f ef ldi r23, 0xFF ; 255 - 6fe: c5 01 movw r24, r10 - 700: 4e d1 rcall .+668 ; 0x99e - 702: 4c 01 movw r8, r24 - 704: 82 01 movw r16, r4 - 706: f3 2d mov r31, r3 - 708: ff 77 andi r31, 0x7F ; 127 - 70a: 3f 2e mov r3, r31 - 70c: 15 c0 rjmp .+42 ; 0x738 - 70e: 28 01 movw r4, r16 - 710: 22 e0 ldi r18, 0x02 ; 2 - 712: 42 0e add r4, r18 - 714: 51 1c adc r5, r1 - 716: f8 01 movw r30, r16 - 718: a0 80 ld r10, Z - 71a: b1 80 ldd r11, Z+1 ; 0x01 - 71c: 36 fe sbrs r3, 6 - 71e: 03 c0 rjmp .+6 ; 0x726 - 720: 69 2d mov r22, r9 - 722: 70 e0 ldi r23, 0x00 ; 0 - 724: 02 c0 rjmp .+4 ; 0x72a - 726: 6f ef ldi r22, 0xFF ; 255 - 728: 7f ef ldi r23, 0xFF ; 255 - 72a: c5 01 movw r24, r10 - 72c: 2d d1 rcall .+602 ; 0x988 - 72e: 4c 01 movw r8, r24 - 730: f3 2d mov r31, r3 - 732: f0 68 ori r31, 0x80 ; 128 - 734: 3f 2e mov r3, r31 - 736: 82 01 movw r16, r4 - 738: 33 fc sbrc r3, 3 - 73a: 19 c0 rjmp .+50 ; 0x76e - 73c: 82 2d mov r24, r2 - 73e: 90 e0 ldi r25, 0x00 ; 0 - 740: 88 16 cp r8, r24 - 742: 99 06 cpc r9, r25 - 744: a0 f4 brcc .+40 ; 0x76e - 746: b6 01 movw r22, r12 - 748: 80 e2 ldi r24, 0x20 ; 32 - 74a: 90 e0 ldi r25, 0x00 ; 0 - 74c: 33 d1 rcall .+614 ; 0x9b4 - 74e: 2a 94 dec r2 - 750: f5 cf rjmp .-22 ; 0x73c - 752: f5 01 movw r30, r10 - 754: 37 fc sbrc r3, 7 - 756: 85 91 lpm r24, Z+ - 758: 37 fe sbrs r3, 7 - 75a: 81 91 ld r24, Z+ - 75c: 5f 01 movw r10, r30 - 75e: b6 01 movw r22, r12 - 760: 90 e0 ldi r25, 0x00 ; 0 - 762: 28 d1 rcall .+592 ; 0x9b4 - 764: 21 10 cpse r2, r1 - 766: 2a 94 dec r2 - 768: 21 e0 ldi r18, 0x01 ; 1 - 76a: 82 1a sub r8, r18 - 76c: 91 08 sbc r9, r1 - 76e: 81 14 cp r8, r1 - 770: 91 04 cpc r9, r1 - 772: 79 f7 brne .-34 ; 0x752 - 774: e1 c0 rjmp .+450 ; 0x938 - 776: 84 36 cpi r24, 0x64 ; 100 - 778: 11 f0 breq .+4 ; 0x77e - 77a: 89 36 cpi r24, 0x69 ; 105 - 77c: 39 f5 brne .+78 ; 0x7cc - 77e: f8 01 movw r30, r16 - 780: 37 fe sbrs r3, 7 - 782: 07 c0 rjmp .+14 ; 0x792 - 784: 60 81 ld r22, Z - 786: 71 81 ldd r23, Z+1 ; 0x01 - 788: 82 81 ldd r24, Z+2 ; 0x02 - 78a: 93 81 ldd r25, Z+3 ; 0x03 - 78c: 0c 5f subi r16, 0xFC ; 252 - 78e: 1f 4f sbci r17, 0xFF ; 255 - 790: 08 c0 rjmp .+16 ; 0x7a2 - 792: 60 81 ld r22, Z - 794: 71 81 ldd r23, Z+1 ; 0x01 - 796: 07 2e mov r0, r23 - 798: 00 0c add r0, r0 - 79a: 88 0b sbc r24, r24 - 79c: 99 0b sbc r25, r25 - 79e: 0e 5f subi r16, 0xFE ; 254 - 7a0: 1f 4f sbci r17, 0xFF ; 255 - 7a2: f3 2d mov r31, r3 - 7a4: ff 76 andi r31, 0x6F ; 111 - 7a6: 3f 2e mov r3, r31 - 7a8: 97 ff sbrs r25, 7 - 7aa: 09 c0 rjmp .+18 ; 0x7be - 7ac: 90 95 com r25 - 7ae: 80 95 com r24 - 7b0: 70 95 com r23 - 7b2: 61 95 neg r22 - 7b4: 7f 4f sbci r23, 0xFF ; 255 - 7b6: 8f 4f sbci r24, 0xFF ; 255 - 7b8: 9f 4f sbci r25, 0xFF ; 255 - 7ba: f0 68 ori r31, 0x80 ; 128 - 7bc: 3f 2e mov r3, r31 - 7be: 2a e0 ldi r18, 0x0A ; 10 - 7c0: 30 e0 ldi r19, 0x00 ; 0 - 7c2: a3 01 movw r20, r6 - 7c4: 33 d1 rcall .+614 ; 0xa2c <__ultoa_invert> - 7c6: 88 2e mov r8, r24 - 7c8: 86 18 sub r8, r6 - 7ca: 44 c0 rjmp .+136 ; 0x854 - 7cc: 85 37 cpi r24, 0x75 ; 117 - 7ce: 31 f4 brne .+12 ; 0x7dc - 7d0: 23 2d mov r18, r3 - 7d2: 2f 7e andi r18, 0xEF ; 239 - 7d4: b2 2e mov r11, r18 - 7d6: 2a e0 ldi r18, 0x0A ; 10 - 7d8: 30 e0 ldi r19, 0x00 ; 0 - 7da: 25 c0 rjmp .+74 ; 0x826 - 7dc: 93 2d mov r25, r3 - 7de: 99 7f andi r25, 0xF9 ; 249 - 7e0: b9 2e mov r11, r25 - 7e2: 8f 36 cpi r24, 0x6F ; 111 - 7e4: c1 f0 breq .+48 ; 0x816 - 7e6: 18 f4 brcc .+6 ; 0x7ee - 7e8: 88 35 cpi r24, 0x58 ; 88 - 7ea: 79 f0 breq .+30 ; 0x80a - 7ec: ae c0 rjmp .+348 ; 0x94a - 7ee: 80 37 cpi r24, 0x70 ; 112 - 7f0: 19 f0 breq .+6 ; 0x7f8 - 7f2: 88 37 cpi r24, 0x78 ; 120 - 7f4: 21 f0 breq .+8 ; 0x7fe - 7f6: a9 c0 rjmp .+338 ; 0x94a - 7f8: e9 2f mov r30, r25 - 7fa: e0 61 ori r30, 0x10 ; 16 - 7fc: be 2e mov r11, r30 - 7fe: b4 fe sbrs r11, 4 - 800: 0d c0 rjmp .+26 ; 0x81c - 802: fb 2d mov r31, r11 - 804: f4 60 ori r31, 0x04 ; 4 - 806: bf 2e mov r11, r31 - 808: 09 c0 rjmp .+18 ; 0x81c - 80a: 34 fe sbrs r3, 4 - 80c: 0a c0 rjmp .+20 ; 0x822 - 80e: 29 2f mov r18, r25 - 810: 26 60 ori r18, 0x06 ; 6 - 812: b2 2e mov r11, r18 - 814: 06 c0 rjmp .+12 ; 0x822 - 816: 28 e0 ldi r18, 0x08 ; 8 - 818: 30 e0 ldi r19, 0x00 ; 0 - 81a: 05 c0 rjmp .+10 ; 0x826 - 81c: 20 e1 ldi r18, 0x10 ; 16 - 81e: 30 e0 ldi r19, 0x00 ; 0 - 820: 02 c0 rjmp .+4 ; 0x826 - 822: 20 e1 ldi r18, 0x10 ; 16 - 824: 32 e0 ldi r19, 0x02 ; 2 - 826: f8 01 movw r30, r16 - 828: b7 fe sbrs r11, 7 - 82a: 07 c0 rjmp .+14 ; 0x83a - 82c: 60 81 ld r22, Z - 82e: 71 81 ldd r23, Z+1 ; 0x01 - 830: 82 81 ldd r24, Z+2 ; 0x02 - 832: 93 81 ldd r25, Z+3 ; 0x03 - 834: 0c 5f subi r16, 0xFC ; 252 - 836: 1f 4f sbci r17, 0xFF ; 255 - 838: 06 c0 rjmp .+12 ; 0x846 - 83a: 60 81 ld r22, Z - 83c: 71 81 ldd r23, Z+1 ; 0x01 - 83e: 80 e0 ldi r24, 0x00 ; 0 - 840: 90 e0 ldi r25, 0x00 ; 0 - 842: 0e 5f subi r16, 0xFE ; 254 - 844: 1f 4f sbci r17, 0xFF ; 255 - 846: a3 01 movw r20, r6 - 848: f1 d0 rcall .+482 ; 0xa2c <__ultoa_invert> - 84a: 88 2e mov r8, r24 - 84c: 86 18 sub r8, r6 - 84e: fb 2d mov r31, r11 - 850: ff 77 andi r31, 0x7F ; 127 - 852: 3f 2e mov r3, r31 - 854: 36 fe sbrs r3, 6 - 856: 0d c0 rjmp .+26 ; 0x872 - 858: 23 2d mov r18, r3 - 85a: 2e 7f andi r18, 0xFE ; 254 - 85c: a2 2e mov r10, r18 - 85e: 89 14 cp r8, r9 - 860: 58 f4 brcc .+22 ; 0x878 - 862: 34 fe sbrs r3, 4 - 864: 0b c0 rjmp .+22 ; 0x87c - 866: 32 fc sbrc r3, 2 - 868: 09 c0 rjmp .+18 ; 0x87c - 86a: 83 2d mov r24, r3 - 86c: 8e 7e andi r24, 0xEE ; 238 - 86e: a8 2e mov r10, r24 - 870: 05 c0 rjmp .+10 ; 0x87c - 872: b8 2c mov r11, r8 - 874: a3 2c mov r10, r3 - 876: 03 c0 rjmp .+6 ; 0x87e - 878: b8 2c mov r11, r8 - 87a: 01 c0 rjmp .+2 ; 0x87e - 87c: b9 2c mov r11, r9 - 87e: a4 fe sbrs r10, 4 - 880: 0f c0 rjmp .+30 ; 0x8a0 - 882: fe 01 movw r30, r28 - 884: e8 0d add r30, r8 - 886: f1 1d adc r31, r1 - 888: 80 81 ld r24, Z - 88a: 80 33 cpi r24, 0x30 ; 48 - 88c: 21 f4 brne .+8 ; 0x896 - 88e: 9a 2d mov r25, r10 - 890: 99 7e andi r25, 0xE9 ; 233 - 892: a9 2e mov r10, r25 - 894: 09 c0 rjmp .+18 ; 0x8a8 - 896: a2 fe sbrs r10, 2 - 898: 06 c0 rjmp .+12 ; 0x8a6 - 89a: b3 94 inc r11 - 89c: b3 94 inc r11 - 89e: 04 c0 rjmp .+8 ; 0x8a8 - 8a0: 8a 2d mov r24, r10 - 8a2: 86 78 andi r24, 0x86 ; 134 - 8a4: 09 f0 breq .+2 ; 0x8a8 - 8a6: b3 94 inc r11 - 8a8: a3 fc sbrc r10, 3 - 8aa: 10 c0 rjmp .+32 ; 0x8cc - 8ac: a0 fe sbrs r10, 0 - 8ae: 06 c0 rjmp .+12 ; 0x8bc - 8b0: b2 14 cp r11, r2 - 8b2: 80 f4 brcc .+32 ; 0x8d4 - 8b4: 28 0c add r2, r8 - 8b6: 92 2c mov r9, r2 - 8b8: 9b 18 sub r9, r11 - 8ba: 0d c0 rjmp .+26 ; 0x8d6 - 8bc: b2 14 cp r11, r2 - 8be: 58 f4 brcc .+22 ; 0x8d6 - 8c0: b6 01 movw r22, r12 - 8c2: 80 e2 ldi r24, 0x20 ; 32 - 8c4: 90 e0 ldi r25, 0x00 ; 0 - 8c6: 76 d0 rcall .+236 ; 0x9b4 - 8c8: b3 94 inc r11 - 8ca: f8 cf rjmp .-16 ; 0x8bc - 8cc: b2 14 cp r11, r2 - 8ce: 18 f4 brcc .+6 ; 0x8d6 - 8d0: 2b 18 sub r2, r11 - 8d2: 02 c0 rjmp .+4 ; 0x8d8 - 8d4: 98 2c mov r9, r8 - 8d6: 21 2c mov r2, r1 - 8d8: a4 fe sbrs r10, 4 - 8da: 0f c0 rjmp .+30 ; 0x8fa - 8dc: b6 01 movw r22, r12 - 8de: 80 e3 ldi r24, 0x30 ; 48 - 8e0: 90 e0 ldi r25, 0x00 ; 0 - 8e2: 68 d0 rcall .+208 ; 0x9b4 - 8e4: a2 fe sbrs r10, 2 - 8e6: 16 c0 rjmp .+44 ; 0x914 - 8e8: a1 fc sbrc r10, 1 - 8ea: 03 c0 rjmp .+6 ; 0x8f2 - 8ec: 88 e7 ldi r24, 0x78 ; 120 - 8ee: 90 e0 ldi r25, 0x00 ; 0 - 8f0: 02 c0 rjmp .+4 ; 0x8f6 - 8f2: 88 e5 ldi r24, 0x58 ; 88 - 8f4: 90 e0 ldi r25, 0x00 ; 0 - 8f6: b6 01 movw r22, r12 - 8f8: 0c c0 rjmp .+24 ; 0x912 - 8fa: 8a 2d mov r24, r10 - 8fc: 86 78 andi r24, 0x86 ; 134 - 8fe: 51 f0 breq .+20 ; 0x914 - 900: a1 fe sbrs r10, 1 - 902: 02 c0 rjmp .+4 ; 0x908 - 904: 8b e2 ldi r24, 0x2B ; 43 - 906: 01 c0 rjmp .+2 ; 0x90a - 908: 80 e2 ldi r24, 0x20 ; 32 - 90a: a7 fc sbrc r10, 7 - 90c: 8d e2 ldi r24, 0x2D ; 45 - 90e: b6 01 movw r22, r12 - 910: 90 e0 ldi r25, 0x00 ; 0 - 912: 50 d0 rcall .+160 ; 0x9b4 - 914: 89 14 cp r8, r9 - 916: 30 f4 brcc .+12 ; 0x924 - 918: b6 01 movw r22, r12 - 91a: 80 e3 ldi r24, 0x30 ; 48 - 91c: 90 e0 ldi r25, 0x00 ; 0 - 91e: 4a d0 rcall .+148 ; 0x9b4 - 920: 9a 94 dec r9 - 922: f8 cf rjmp .-16 ; 0x914 - 924: 8a 94 dec r8 - 926: f3 01 movw r30, r6 - 928: e8 0d add r30, r8 - 92a: f1 1d adc r31, r1 - 92c: 80 81 ld r24, Z - 92e: b6 01 movw r22, r12 - 930: 90 e0 ldi r25, 0x00 ; 0 - 932: 40 d0 rcall .+128 ; 0x9b4 - 934: 81 10 cpse r8, r1 - 936: f6 cf rjmp .-20 ; 0x924 - 938: 22 20 and r2, r2 - 93a: 09 f4 brne .+2 ; 0x93e - 93c: 4e ce rjmp .-868 ; 0x5da - 93e: b6 01 movw r22, r12 - 940: 80 e2 ldi r24, 0x20 ; 32 - 942: 90 e0 ldi r25, 0x00 ; 0 - 944: 37 d0 rcall .+110 ; 0x9b4 - 946: 2a 94 dec r2 - 948: f7 cf rjmp .-18 ; 0x938 - 94a: f6 01 movw r30, r12 - 94c: 86 81 ldd r24, Z+6 ; 0x06 - 94e: 97 81 ldd r25, Z+7 ; 0x07 - 950: 02 c0 rjmp .+4 ; 0x956 - 952: 8f ef ldi r24, 0xFF ; 255 - 954: 9f ef ldi r25, 0xFF ; 255 - 956: 2b 96 adiw r28, 0x0b ; 11 - 958: 0f b6 in r0, 0x3f ; 63 - 95a: f8 94 cli - 95c: de bf out 0x3e, r29 ; 62 - 95e: 0f be out 0x3f, r0 ; 63 - 960: cd bf out 0x3d, r28 ; 61 - 962: df 91 pop r29 - 964: cf 91 pop r28 - 966: 1f 91 pop r17 - 968: 0f 91 pop r16 - 96a: ff 90 pop r15 - 96c: ef 90 pop r14 - 96e: df 90 pop r13 - 970: cf 90 pop r12 - 972: bf 90 pop r11 - 974: af 90 pop r10 - 976: 9f 90 pop r9 - 978: 8f 90 pop r8 - 97a: 7f 90 pop r7 - 97c: 6f 90 pop r6 - 97e: 5f 90 pop r5 - 980: 4f 90 pop r4 - 982: 3f 90 pop r3 - 984: 2f 90 pop r2 - 986: 08 95 ret +00000564 <__floatsisf>: + 564: 97 fb bst r25, 7 + 566: 3e f4 brtc .+14 ; 0x576 <__floatsisf+0x12> + 568: 90 95 com r25 + 56a: 80 95 com r24 + 56c: 70 95 com r23 + 56e: 61 95 neg r22 + 570: 7f 4f sbci r23, 0xFF ; 255 + 572: 8f 4f sbci r24, 0xFF ; 255 + 574: 9f 4f sbci r25, 0xFF ; 255 + 576: 99 23 and r25, r25 + 578: a9 f0 breq .+42 ; 0x5a4 <__floatsisf+0x40> + 57a: f9 2f mov r31, r25 + 57c: 96 e9 ldi r25, 0x96 ; 150 + 57e: bb 27 eor r27, r27 + 580: 93 95 inc r25 + 582: f6 95 lsr r31 + 584: 87 95 ror r24 + 586: 77 95 ror r23 + 588: 67 95 ror r22 + 58a: b7 95 ror r27 + 58c: f1 11 cpse r31, r1 + 58e: f8 cf rjmp .-16 ; 0x580 <__floatsisf+0x1c> + 590: fa f4 brpl .+62 ; 0x5d0 <__floatsisf+0x6c> + 592: bb 0f add r27, r27 + 594: 11 f4 brne .+4 ; 0x59a <__floatsisf+0x36> + 596: 60 ff sbrs r22, 0 + 598: 1b c0 rjmp .+54 ; 0x5d0 <__floatsisf+0x6c> + 59a: 6f 5f subi r22, 0xFF ; 255 + 59c: 7f 4f sbci r23, 0xFF ; 255 + 59e: 8f 4f sbci r24, 0xFF ; 255 + 5a0: 9f 4f sbci r25, 0xFF ; 255 + 5a2: 16 c0 rjmp .+44 ; 0x5d0 <__floatsisf+0x6c> + 5a4: 88 23 and r24, r24 + 5a6: 11 f0 breq .+4 ; 0x5ac <__floatsisf+0x48> + 5a8: 96 e9 ldi r25, 0x96 ; 150 + 5aa: 11 c0 rjmp .+34 ; 0x5ce <__floatsisf+0x6a> + 5ac: 77 23 and r23, r23 + 5ae: 21 f0 breq .+8 ; 0x5b8 <__floatsisf+0x54> + 5b0: 9e e8 ldi r25, 0x8E ; 142 + 5b2: 87 2f mov r24, r23 + 5b4: 76 2f mov r23, r22 + 5b6: 05 c0 rjmp .+10 ; 0x5c2 <__floatsisf+0x5e> + 5b8: 66 23 and r22, r22 + 5ba: 71 f0 breq .+28 ; 0x5d8 <__floatsisf+0x74> + 5bc: 96 e8 ldi r25, 0x86 ; 134 + 5be: 86 2f mov r24, r22 + 5c0: 70 e0 ldi r23, 0x00 ; 0 + 5c2: 60 e0 ldi r22, 0x00 ; 0 + 5c4: 2a f0 brmi .+10 ; 0x5d0 <__floatsisf+0x6c> + 5c6: 9a 95 dec r25 + 5c8: 66 0f add r22, r22 + 5ca: 77 1f adc r23, r23 + 5cc: 88 1f adc r24, r24 + 5ce: da f7 brpl .-10 ; 0x5c6 <__floatsisf+0x62> + 5d0: 88 0f add r24, r24 + 5d2: 96 95 lsr r25 + 5d4: 87 95 ror r24 + 5d6: 97 f9 bld r25, 7 + 5d8: 08 95 ret -00000988 : - 988: fc 01 movw r30, r24 - 98a: 05 90 lpm r0, Z+ - 98c: 61 50 subi r22, 0x01 ; 1 - 98e: 70 40 sbci r23, 0x00 ; 0 - 990: 01 10 cpse r0, r1 - 992: d8 f7 brcc .-10 ; 0x98a - 994: 80 95 com r24 - 996: 90 95 com r25 - 998: 8e 0f add r24, r30 - 99a: 9f 1f adc r25, r31 - 99c: 08 95 ret +000005da <__mulsf3>: + 5da: 0b d0 rcall .+22 ; 0x5f2 <__mulsf3x> + 5dc: 78 c0 rjmp .+240 ; 0x6ce <__fp_round> + 5de: 69 d0 rcall .+210 ; 0x6b2 <__fp_pscA> + 5e0: 28 f0 brcs .+10 ; 0x5ec <__mulsf3+0x12> + 5e2: 6e d0 rcall .+220 ; 0x6c0 <__fp_pscB> + 5e4: 18 f0 brcs .+6 ; 0x5ec <__mulsf3+0x12> + 5e6: 95 23 and r25, r21 + 5e8: 09 f0 breq .+2 ; 0x5ec <__mulsf3+0x12> + 5ea: 5a c0 rjmp .+180 ; 0x6a0 <__fp_inf> + 5ec: 5f c0 rjmp .+190 ; 0x6ac <__fp_nan> + 5ee: 11 24 eor r1, r1 + 5f0: a2 c0 rjmp .+324 ; 0x736 <__fp_szero> -0000099e : - 99e: fc 01 movw r30, r24 - 9a0: 61 50 subi r22, 0x01 ; 1 - 9a2: 70 40 sbci r23, 0x00 ; 0 - 9a4: 01 90 ld r0, Z+ - 9a6: 01 10 cpse r0, r1 - 9a8: d8 f7 brcc .-10 ; 0x9a0 - 9aa: 80 95 com r24 - 9ac: 90 95 com r25 - 9ae: 8e 0f add r24, r30 - 9b0: 9f 1f adc r25, r31 - 9b2: 08 95 ret +000005f2 <__mulsf3x>: + 5f2: 7e d0 rcall .+252 ; 0x6f0 <__fp_split3> + 5f4: a0 f3 brcs .-24 ; 0x5de <__mulsf3+0x4> -000009b4 : - 9b4: 0f 93 push r16 - 9b6: 1f 93 push r17 - 9b8: cf 93 push r28 - 9ba: df 93 push r29 - 9bc: fb 01 movw r30, r22 - 9be: 23 81 ldd r18, Z+3 ; 0x03 - 9c0: 21 fd sbrc r18, 1 - 9c2: 03 c0 rjmp .+6 ; 0x9ca - 9c4: 8f ef ldi r24, 0xFF ; 255 - 9c6: 9f ef ldi r25, 0xFF ; 255 - 9c8: 2c c0 rjmp .+88 ; 0xa22 - 9ca: 22 ff sbrs r18, 2 - 9cc: 16 c0 rjmp .+44 ; 0x9fa - 9ce: 46 81 ldd r20, Z+6 ; 0x06 - 9d0: 57 81 ldd r21, Z+7 ; 0x07 - 9d2: 24 81 ldd r18, Z+4 ; 0x04 - 9d4: 35 81 ldd r19, Z+5 ; 0x05 - 9d6: 42 17 cp r20, r18 - 9d8: 53 07 cpc r21, r19 - 9da: 44 f4 brge .+16 ; 0x9ec - 9dc: a0 81 ld r26, Z - 9de: b1 81 ldd r27, Z+1 ; 0x01 - 9e0: 9d 01 movw r18, r26 - 9e2: 2f 5f subi r18, 0xFF ; 255 - 9e4: 3f 4f sbci r19, 0xFF ; 255 - 9e6: 31 83 std Z+1, r19 ; 0x01 - 9e8: 20 83 st Z, r18 - 9ea: 8c 93 st X, r24 - 9ec: 26 81 ldd r18, Z+6 ; 0x06 - 9ee: 37 81 ldd r19, Z+7 ; 0x07 - 9f0: 2f 5f subi r18, 0xFF ; 255 - 9f2: 3f 4f sbci r19, 0xFF ; 255 - 9f4: 37 83 std Z+7, r19 ; 0x07 - 9f6: 26 83 std Z+6, r18 ; 0x06 - 9f8: 14 c0 rjmp .+40 ; 0xa22 - 9fa: 8b 01 movw r16, r22 - 9fc: ec 01 movw r28, r24 - 9fe: fb 01 movw r30, r22 - a00: 00 84 ldd r0, Z+8 ; 0x08 - a02: f1 85 ldd r31, Z+9 ; 0x09 - a04: e0 2d mov r30, r0 - a06: 09 95 icall - a08: 89 2b or r24, r25 - a0a: e1 f6 brne .-72 ; 0x9c4 - a0c: d8 01 movw r26, r16 - a0e: 16 96 adiw r26, 0x06 ; 6 - a10: 8d 91 ld r24, X+ - a12: 9c 91 ld r25, X - a14: 17 97 sbiw r26, 0x07 ; 7 - a16: 01 96 adiw r24, 0x01 ; 1 - a18: 17 96 adiw r26, 0x07 ; 7 - a1a: 9c 93 st X, r25 - a1c: 8e 93 st -X, r24 - a1e: 16 97 sbiw r26, 0x06 ; 6 - a20: ce 01 movw r24, r28 - a22: df 91 pop r29 - a24: cf 91 pop r28 - a26: 1f 91 pop r17 - a28: 0f 91 pop r16 - a2a: 08 95 ret +000005f6 <__mulsf3_pse>: + 5f6: 95 9f mul r25, r21 + 5f8: d1 f3 breq .-12 ; 0x5ee <__mulsf3+0x14> + 5fa: 95 0f add r25, r21 + 5fc: 50 e0 ldi r21, 0x00 ; 0 + 5fe: 55 1f adc r21, r21 + 600: 62 9f mul r22, r18 + 602: f0 01 movw r30, r0 + 604: 72 9f mul r23, r18 + 606: bb 27 eor r27, r27 + 608: f0 0d add r31, r0 + 60a: b1 1d adc r27, r1 + 60c: 63 9f mul r22, r19 + 60e: aa 27 eor r26, r26 + 610: f0 0d add r31, r0 + 612: b1 1d adc r27, r1 + 614: aa 1f adc r26, r26 + 616: 64 9f mul r22, r20 + 618: 66 27 eor r22, r22 + 61a: b0 0d add r27, r0 + 61c: a1 1d adc r26, r1 + 61e: 66 1f adc r22, r22 + 620: 82 9f mul r24, r18 + 622: 22 27 eor r18, r18 + 624: b0 0d add r27, r0 + 626: a1 1d adc r26, r1 + 628: 62 1f adc r22, r18 + 62a: 73 9f mul r23, r19 + 62c: b0 0d add r27, r0 + 62e: a1 1d adc r26, r1 + 630: 62 1f adc r22, r18 + 632: 83 9f mul r24, r19 + 634: a0 0d add r26, r0 + 636: 61 1d adc r22, r1 + 638: 22 1f adc r18, r18 + 63a: 74 9f mul r23, r20 + 63c: 33 27 eor r19, r19 + 63e: a0 0d add r26, r0 + 640: 61 1d adc r22, r1 + 642: 23 1f adc r18, r19 + 644: 84 9f mul r24, r20 + 646: 60 0d add r22, r0 + 648: 21 1d adc r18, r1 + 64a: 82 2f mov r24, r18 + 64c: 76 2f mov r23, r22 + 64e: 6a 2f mov r22, r26 + 650: 11 24 eor r1, r1 + 652: 9f 57 subi r25, 0x7F ; 127 + 654: 50 40 sbci r21, 0x00 ; 0 + 656: 8a f0 brmi .+34 ; 0x67a <__mulsf3_pse+0x84> + 658: e1 f0 breq .+56 ; 0x692 <__mulsf3_pse+0x9c> + 65a: 88 23 and r24, r24 + 65c: 4a f0 brmi .+18 ; 0x670 <__mulsf3_pse+0x7a> + 65e: ee 0f add r30, r30 + 660: ff 1f adc r31, r31 + 662: bb 1f adc r27, r27 + 664: 66 1f adc r22, r22 + 666: 77 1f adc r23, r23 + 668: 88 1f adc r24, r24 + 66a: 91 50 subi r25, 0x01 ; 1 + 66c: 50 40 sbci r21, 0x00 ; 0 + 66e: a9 f7 brne .-22 ; 0x65a <__mulsf3_pse+0x64> + 670: 9e 3f cpi r25, 0xFE ; 254 + 672: 51 05 cpc r21, r1 + 674: 70 f0 brcs .+28 ; 0x692 <__mulsf3_pse+0x9c> + 676: 14 c0 rjmp .+40 ; 0x6a0 <__fp_inf> + 678: 5e c0 rjmp .+188 ; 0x736 <__fp_szero> + 67a: 5f 3f cpi r21, 0xFF ; 255 + 67c: ec f3 brlt .-6 ; 0x678 <__mulsf3_pse+0x82> + 67e: 98 3e cpi r25, 0xE8 ; 232 + 680: dc f3 brlt .-10 ; 0x678 <__mulsf3_pse+0x82> + 682: 86 95 lsr r24 + 684: 77 95 ror r23 + 686: 67 95 ror r22 + 688: b7 95 ror r27 + 68a: f7 95 ror r31 + 68c: e7 95 ror r30 + 68e: 9f 5f subi r25, 0xFF ; 255 + 690: c1 f7 brne .-16 ; 0x682 <__mulsf3_pse+0x8c> + 692: fe 2b or r31, r30 + 694: 88 0f add r24, r24 + 696: 91 1d adc r25, r1 + 698: 96 95 lsr r25 + 69a: 87 95 ror r24 + 69c: 97 f9 bld r25, 7 + 69e: 08 95 ret -00000a2c <__ultoa_invert>: - a2c: fa 01 movw r30, r20 - a2e: aa 27 eor r26, r26 - a30: 28 30 cpi r18, 0x08 ; 8 - a32: 51 f1 breq .+84 ; 0xa88 <__ultoa_invert+0x5c> - a34: 20 31 cpi r18, 0x10 ; 16 - a36: 81 f1 breq .+96 ; 0xa98 <__ultoa_invert+0x6c> - a38: e8 94 clt - a3a: 6f 93 push r22 - a3c: 6e 7f andi r22, 0xFE ; 254 - a3e: 6e 5f subi r22, 0xFE ; 254 - a40: 7f 4f sbci r23, 0xFF ; 255 - a42: 8f 4f sbci r24, 0xFF ; 255 - a44: 9f 4f sbci r25, 0xFF ; 255 - a46: af 4f sbci r26, 0xFF ; 255 - a48: b1 e0 ldi r27, 0x01 ; 1 - a4a: 3e d0 rcall .+124 ; 0xac8 <__ultoa_invert+0x9c> - a4c: b4 e0 ldi r27, 0x04 ; 4 - a4e: 3c d0 rcall .+120 ; 0xac8 <__ultoa_invert+0x9c> - a50: 67 0f add r22, r23 - a52: 78 1f adc r23, r24 - a54: 89 1f adc r24, r25 - a56: 9a 1f adc r25, r26 - a58: a1 1d adc r26, r1 - a5a: 68 0f add r22, r24 - a5c: 79 1f adc r23, r25 - a5e: 8a 1f adc r24, r26 - a60: 91 1d adc r25, r1 - a62: a1 1d adc r26, r1 - a64: 6a 0f add r22, r26 - a66: 71 1d adc r23, r1 - a68: 81 1d adc r24, r1 - a6a: 91 1d adc r25, r1 - a6c: a1 1d adc r26, r1 - a6e: 20 d0 rcall .+64 ; 0xab0 <__ultoa_invert+0x84> - a70: 09 f4 brne .+2 ; 0xa74 <__ultoa_invert+0x48> - a72: 68 94 set - a74: 3f 91 pop r19 - a76: 2a e0 ldi r18, 0x0A ; 10 - a78: 26 9f mul r18, r22 - a7a: 11 24 eor r1, r1 - a7c: 30 19 sub r19, r0 - a7e: 30 5d subi r19, 0xD0 ; 208 - a80: 31 93 st Z+, r19 - a82: de f6 brtc .-74 ; 0xa3a <__ultoa_invert+0xe> - a84: cf 01 movw r24, r30 - a86: 08 95 ret - a88: 46 2f mov r20, r22 - a8a: 47 70 andi r20, 0x07 ; 7 - a8c: 40 5d subi r20, 0xD0 ; 208 - a8e: 41 93 st Z+, r20 - a90: b3 e0 ldi r27, 0x03 ; 3 - a92: 0f d0 rcall .+30 ; 0xab2 <__ultoa_invert+0x86> - a94: c9 f7 brne .-14 ; 0xa88 <__ultoa_invert+0x5c> - a96: f6 cf rjmp .-20 ; 0xa84 <__ultoa_invert+0x58> - a98: 46 2f mov r20, r22 - a9a: 4f 70 andi r20, 0x0F ; 15 - a9c: 40 5d subi r20, 0xD0 ; 208 - a9e: 4a 33 cpi r20, 0x3A ; 58 - aa0: 18 f0 brcs .+6 ; 0xaa8 <__ultoa_invert+0x7c> - aa2: 49 5d subi r20, 0xD9 ; 217 - aa4: 31 fd sbrc r19, 1 - aa6: 40 52 subi r20, 0x20 ; 32 - aa8: 41 93 st Z+, r20 - aaa: 02 d0 rcall .+4 ; 0xab0 <__ultoa_invert+0x84> - aac: a9 f7 brne .-22 ; 0xa98 <__ultoa_invert+0x6c> - aae: ea cf rjmp .-44 ; 0xa84 <__ultoa_invert+0x58> - ab0: b4 e0 ldi r27, 0x04 ; 4 - ab2: a6 95 lsr r26 - ab4: 97 95 ror r25 - ab6: 87 95 ror r24 - ab8: 77 95 ror r23 - aba: 67 95 ror r22 - abc: ba 95 dec r27 - abe: c9 f7 brne .-14 ; 0xab2 <__ultoa_invert+0x86> - ac0: 00 97 sbiw r24, 0x00 ; 0 - ac2: 61 05 cpc r22, r1 - ac4: 71 05 cpc r23, r1 - ac6: 08 95 ret - ac8: 9b 01 movw r18, r22 - aca: ac 01 movw r20, r24 - acc: 0a 2e mov r0, r26 - ace: 06 94 lsr r0 - ad0: 57 95 ror r21 - ad2: 47 95 ror r20 - ad4: 37 95 ror r19 - ad6: 27 95 ror r18 - ad8: ba 95 dec r27 - ada: c9 f7 brne .-14 ; 0xace <__ultoa_invert+0xa2> - adc: 62 0f add r22, r18 - ade: 73 1f adc r23, r19 - ae0: 84 1f adc r24, r20 - ae2: 95 1f adc r25, r21 - ae4: a0 1d adc r26, r0 - ae6: 08 95 ret +000006a0 <__fp_inf>: + 6a0: 97 f9 bld r25, 7 + 6a2: 9f 67 ori r25, 0x7F ; 127 + 6a4: 80 e8 ldi r24, 0x80 ; 128 + 6a6: 70 e0 ldi r23, 0x00 ; 0 + 6a8: 60 e0 ldi r22, 0x00 ; 0 + 6aa: 08 95 ret -00000ae8 <_exit>: - ae8: f8 94 cli +000006ac <__fp_nan>: + 6ac: 9f ef ldi r25, 0xFF ; 255 + 6ae: 80 ec ldi r24, 0xC0 ; 192 + 6b0: 08 95 ret -00000aea <__stop_program>: - aea: ff cf rjmp .-2 ; 0xaea <__stop_program> +000006b2 <__fp_pscA>: + 6b2: 00 24 eor r0, r0 + 6b4: 0a 94 dec r0 + 6b6: 16 16 cp r1, r22 + 6b8: 17 06 cpc r1, r23 + 6ba: 18 06 cpc r1, r24 + 6bc: 09 06 cpc r0, r25 + 6be: 08 95 ret + +000006c0 <__fp_pscB>: + 6c0: 00 24 eor r0, r0 + 6c2: 0a 94 dec r0 + 6c4: 12 16 cp r1, r18 + 6c6: 13 06 cpc r1, r19 + 6c8: 14 06 cpc r1, r20 + 6ca: 05 06 cpc r0, r21 + 6cc: 08 95 ret + +000006ce <__fp_round>: + 6ce: 09 2e mov r0, r25 + 6d0: 03 94 inc r0 + 6d2: 00 0c add r0, r0 + 6d4: 11 f4 brne .+4 ; 0x6da <__fp_round+0xc> + 6d6: 88 23 and r24, r24 + 6d8: 52 f0 brmi .+20 ; 0x6ee <__fp_round+0x20> + 6da: bb 0f add r27, r27 + 6dc: 40 f4 brcc .+16 ; 0x6ee <__fp_round+0x20> + 6de: bf 2b or r27, r31 + 6e0: 11 f4 brne .+4 ; 0x6e6 <__fp_round+0x18> + 6e2: 60 ff sbrs r22, 0 + 6e4: 04 c0 rjmp .+8 ; 0x6ee <__fp_round+0x20> + 6e6: 6f 5f subi r22, 0xFF ; 255 + 6e8: 7f 4f sbci r23, 0xFF ; 255 + 6ea: 8f 4f sbci r24, 0xFF ; 255 + 6ec: 9f 4f sbci r25, 0xFF ; 255 + 6ee: 08 95 ret + +000006f0 <__fp_split3>: + 6f0: 57 fd sbrc r21, 7 + 6f2: 90 58 subi r25, 0x80 ; 128 + 6f4: 44 0f add r20, r20 + 6f6: 55 1f adc r21, r21 + 6f8: 59 f0 breq .+22 ; 0x710 <__fp_splitA+0x10> + 6fa: 5f 3f cpi r21, 0xFF ; 255 + 6fc: 71 f0 breq .+28 ; 0x71a <__fp_splitA+0x1a> + 6fe: 47 95 ror r20 + +00000700 <__fp_splitA>: + 700: 88 0f add r24, r24 + 702: 97 fb bst r25, 7 + 704: 99 1f adc r25, r25 + 706: 61 f0 breq .+24 ; 0x720 <__fp_splitA+0x20> + 708: 9f 3f cpi r25, 0xFF ; 255 + 70a: 79 f0 breq .+30 ; 0x72a <__fp_splitA+0x2a> + 70c: 87 95 ror r24 + 70e: 08 95 ret + 710: 12 16 cp r1, r18 + 712: 13 06 cpc r1, r19 + 714: 14 06 cpc r1, r20 + 716: 55 1f adc r21, r21 + 718: f2 cf rjmp .-28 ; 0x6fe <__fp_split3+0xe> + 71a: 46 95 lsr r20 + 71c: f1 df rcall .-30 ; 0x700 <__fp_splitA> + 71e: 08 c0 rjmp .+16 ; 0x730 <__fp_splitA+0x30> + 720: 16 16 cp r1, r22 + 722: 17 06 cpc r1, r23 + 724: 18 06 cpc r1, r24 + 726: 99 1f adc r25, r25 + 728: f1 cf rjmp .-30 ; 0x70c <__fp_splitA+0xc> + 72a: 86 95 lsr r24 + 72c: 71 05 cpc r23, r1 + 72e: 61 05 cpc r22, r1 + 730: 08 94 sec + 732: 08 95 ret + +00000734 <__fp_zero>: + 734: e8 94 clt + +00000736 <__fp_szero>: + 736: bb 27 eor r27, r27 + 738: 66 27 eor r22, r22 + 73a: 77 27 eor r23, r23 + 73c: cb 01 movw r24, r22 + 73e: 97 f9 bld r25, 7 + 740: 08 95 ret + +00000742 : + 742: 0f 93 push r16 + 744: 1f 93 push r17 + 746: cf 93 push r28 + 748: df 93 push r29 + 74a: cd b7 in r28, 0x3d ; 61 + 74c: de b7 in r29, 0x3e ; 62 + 74e: 2e 97 sbiw r28, 0x0e ; 14 + 750: 0f b6 in r0, 0x3f ; 63 + 752: f8 94 cli + 754: de bf out 0x3e, r29 ; 62 + 756: 0f be out 0x3f, r0 ; 63 + 758: cd bf out 0x3d, r28 ; 61 + 75a: 0d 89 ldd r16, Y+21 ; 0x15 + 75c: 1e 89 ldd r17, Y+22 ; 0x16 + 75e: 8f 89 ldd r24, Y+23 ; 0x17 + 760: 98 8d ldd r25, Y+24 ; 0x18 + 762: 26 e0 ldi r18, 0x06 ; 6 + 764: 2c 83 std Y+4, r18 ; 0x04 + 766: 1a 83 std Y+2, r17 ; 0x02 + 768: 09 83 std Y+1, r16 ; 0x01 + 76a: 97 ff sbrs r25, 7 + 76c: 02 c0 rjmp .+4 ; 0x772 + 76e: 80 e0 ldi r24, 0x00 ; 0 + 770: 90 e8 ldi r25, 0x80 ; 128 + 772: 01 97 sbiw r24, 0x01 ; 1 + 774: 9e 83 std Y+6, r25 ; 0x06 + 776: 8d 83 std Y+5, r24 ; 0x05 + 778: ae 01 movw r20, r28 + 77a: 45 5e subi r20, 0xE5 ; 229 + 77c: 5f 4f sbci r21, 0xFF ; 255 + 77e: 69 8d ldd r22, Y+25 ; 0x19 + 780: 7a 8d ldd r23, Y+26 ; 0x1a + 782: ce 01 movw r24, r28 + 784: 01 96 adiw r24, 0x01 ; 1 + 786: 19 d0 rcall .+50 ; 0x7ba + 788: 4d 81 ldd r20, Y+5 ; 0x05 + 78a: 5e 81 ldd r21, Y+6 ; 0x06 + 78c: 57 fd sbrc r21, 7 + 78e: 0a c0 rjmp .+20 ; 0x7a4 + 790: 2f 81 ldd r18, Y+7 ; 0x07 + 792: 38 85 ldd r19, Y+8 ; 0x08 + 794: 42 17 cp r20, r18 + 796: 53 07 cpc r21, r19 + 798: 0c f4 brge .+2 ; 0x79c + 79a: 9a 01 movw r18, r20 + 79c: f8 01 movw r30, r16 + 79e: e2 0f add r30, r18 + 7a0: f3 1f adc r31, r19 + 7a2: 10 82 st Z, r1 + 7a4: 2e 96 adiw r28, 0x0e ; 14 + 7a6: 0f b6 in r0, 0x3f ; 63 + 7a8: f8 94 cli + 7aa: de bf out 0x3e, r29 ; 62 + 7ac: 0f be out 0x3f, r0 ; 63 + 7ae: cd bf out 0x3d, r28 ; 61 + 7b0: df 91 pop r29 + 7b2: cf 91 pop r28 + 7b4: 1f 91 pop r17 + 7b6: 0f 91 pop r16 + 7b8: 08 95 ret + +000007ba : + 7ba: 2f 92 push r2 + 7bc: 3f 92 push r3 + 7be: 4f 92 push r4 + 7c0: 5f 92 push r5 + 7c2: 6f 92 push r6 + 7c4: 7f 92 push r7 + 7c6: 8f 92 push r8 + 7c8: 9f 92 push r9 + 7ca: af 92 push r10 + 7cc: bf 92 push r11 + 7ce: cf 92 push r12 + 7d0: df 92 push r13 + 7d2: ef 92 push r14 + 7d4: ff 92 push r15 + 7d6: 0f 93 push r16 + 7d8: 1f 93 push r17 + 7da: cf 93 push r28 + 7dc: df 93 push r29 + 7de: cd b7 in r28, 0x3d ; 61 + 7e0: de b7 in r29, 0x3e ; 62 + 7e2: 2b 97 sbiw r28, 0x0b ; 11 + 7e4: 0f b6 in r0, 0x3f ; 63 + 7e6: f8 94 cli + 7e8: de bf out 0x3e, r29 ; 62 + 7ea: 0f be out 0x3f, r0 ; 63 + 7ec: cd bf out 0x3d, r28 ; 61 + 7ee: 6c 01 movw r12, r24 + 7f0: 7b 01 movw r14, r22 + 7f2: 8a 01 movw r16, r20 + 7f4: fc 01 movw r30, r24 + 7f6: 17 82 std Z+7, r1 ; 0x07 + 7f8: 16 82 std Z+6, r1 ; 0x06 + 7fa: 83 81 ldd r24, Z+3 ; 0x03 + 7fc: 81 ff sbrs r24, 1 + 7fe: bf c1 rjmp .+894 ; 0xb7e + 800: ce 01 movw r24, r28 + 802: 01 96 adiw r24, 0x01 ; 1 + 804: 3c 01 movw r6, r24 + 806: f6 01 movw r30, r12 + 808: 93 81 ldd r25, Z+3 ; 0x03 + 80a: f7 01 movw r30, r14 + 80c: 93 fd sbrc r25, 3 + 80e: 85 91 lpm r24, Z+ + 810: 93 ff sbrs r25, 3 + 812: 81 91 ld r24, Z+ + 814: 7f 01 movw r14, r30 + 816: 88 23 and r24, r24 + 818: 09 f4 brne .+2 ; 0x81c + 81a: ad c1 rjmp .+858 ; 0xb76 + 81c: 85 32 cpi r24, 0x25 ; 37 + 81e: 39 f4 brne .+14 ; 0x82e + 820: 93 fd sbrc r25, 3 + 822: 85 91 lpm r24, Z+ + 824: 93 ff sbrs r25, 3 + 826: 81 91 ld r24, Z+ + 828: 7f 01 movw r14, r30 + 82a: 85 32 cpi r24, 0x25 ; 37 + 82c: 21 f4 brne .+8 ; 0x836 + 82e: b6 01 movw r22, r12 + 830: 90 e0 ldi r25, 0x00 ; 0 + 832: d6 d1 rcall .+940 ; 0xbe0 + 834: e8 cf rjmp .-48 ; 0x806 + 836: 91 2c mov r9, r1 + 838: 21 2c mov r2, r1 + 83a: 31 2c mov r3, r1 + 83c: ff e1 ldi r31, 0x1F ; 31 + 83e: f3 15 cp r31, r3 + 840: d8 f0 brcs .+54 ; 0x878 + 842: 8b 32 cpi r24, 0x2B ; 43 + 844: 79 f0 breq .+30 ; 0x864 + 846: 38 f4 brcc .+14 ; 0x856 + 848: 80 32 cpi r24, 0x20 ; 32 + 84a: 79 f0 breq .+30 ; 0x86a + 84c: 83 32 cpi r24, 0x23 ; 35 + 84e: a1 f4 brne .+40 ; 0x878 + 850: 23 2d mov r18, r3 + 852: 20 61 ori r18, 0x10 ; 16 + 854: 1d c0 rjmp .+58 ; 0x890 + 856: 8d 32 cpi r24, 0x2D ; 45 + 858: 61 f0 breq .+24 ; 0x872 + 85a: 80 33 cpi r24, 0x30 ; 48 + 85c: 69 f4 brne .+26 ; 0x878 + 85e: 23 2d mov r18, r3 + 860: 21 60 ori r18, 0x01 ; 1 + 862: 16 c0 rjmp .+44 ; 0x890 + 864: 83 2d mov r24, r3 + 866: 82 60 ori r24, 0x02 ; 2 + 868: 38 2e mov r3, r24 + 86a: e3 2d mov r30, r3 + 86c: e4 60 ori r30, 0x04 ; 4 + 86e: 3e 2e mov r3, r30 + 870: 2a c0 rjmp .+84 ; 0x8c6 + 872: f3 2d mov r31, r3 + 874: f8 60 ori r31, 0x08 ; 8 + 876: 1d c0 rjmp .+58 ; 0x8b2 + 878: 37 fc sbrc r3, 7 + 87a: 2d c0 rjmp .+90 ; 0x8d6 + 87c: 20 ed ldi r18, 0xD0 ; 208 + 87e: 28 0f add r18, r24 + 880: 2a 30 cpi r18, 0x0A ; 10 + 882: 40 f0 brcs .+16 ; 0x894 + 884: 8e 32 cpi r24, 0x2E ; 46 + 886: b9 f4 brne .+46 ; 0x8b6 + 888: 36 fc sbrc r3, 6 + 88a: 75 c1 rjmp .+746 ; 0xb76 + 88c: 23 2d mov r18, r3 + 88e: 20 64 ori r18, 0x40 ; 64 + 890: 32 2e mov r3, r18 + 892: 19 c0 rjmp .+50 ; 0x8c6 + 894: 36 fe sbrs r3, 6 + 896: 06 c0 rjmp .+12 ; 0x8a4 + 898: 8a e0 ldi r24, 0x0A ; 10 + 89a: 98 9e mul r9, r24 + 89c: 20 0d add r18, r0 + 89e: 11 24 eor r1, r1 + 8a0: 92 2e mov r9, r18 + 8a2: 11 c0 rjmp .+34 ; 0x8c6 + 8a4: ea e0 ldi r30, 0x0A ; 10 + 8a6: 2e 9e mul r2, r30 + 8a8: 20 0d add r18, r0 + 8aa: 11 24 eor r1, r1 + 8ac: 22 2e mov r2, r18 + 8ae: f3 2d mov r31, r3 + 8b0: f0 62 ori r31, 0x20 ; 32 + 8b2: 3f 2e mov r3, r31 + 8b4: 08 c0 rjmp .+16 ; 0x8c6 + 8b6: 8c 36 cpi r24, 0x6C ; 108 + 8b8: 21 f4 brne .+8 ; 0x8c2 + 8ba: 83 2d mov r24, r3 + 8bc: 80 68 ori r24, 0x80 ; 128 + 8be: 38 2e mov r3, r24 + 8c0: 02 c0 rjmp .+4 ; 0x8c6 + 8c2: 88 36 cpi r24, 0x68 ; 104 + 8c4: 41 f4 brne .+16 ; 0x8d6 + 8c6: f7 01 movw r30, r14 + 8c8: 93 fd sbrc r25, 3 + 8ca: 85 91 lpm r24, Z+ + 8cc: 93 ff sbrs r25, 3 + 8ce: 81 91 ld r24, Z+ + 8d0: 7f 01 movw r14, r30 + 8d2: 81 11 cpse r24, r1 + 8d4: b3 cf rjmp .-154 ; 0x83c + 8d6: 98 2f mov r25, r24 + 8d8: 9f 7d andi r25, 0xDF ; 223 + 8da: 95 54 subi r25, 0x45 ; 69 + 8dc: 93 30 cpi r25, 0x03 ; 3 + 8de: 28 f4 brcc .+10 ; 0x8ea + 8e0: 0c 5f subi r16, 0xFC ; 252 + 8e2: 1f 4f sbci r17, 0xFF ; 255 + 8e4: 9f e3 ldi r25, 0x3F ; 63 + 8e6: 99 83 std Y+1, r25 ; 0x01 + 8e8: 0d c0 rjmp .+26 ; 0x904 + 8ea: 83 36 cpi r24, 0x63 ; 99 + 8ec: 31 f0 breq .+12 ; 0x8fa + 8ee: 83 37 cpi r24, 0x73 ; 115 + 8f0: 71 f0 breq .+28 ; 0x90e + 8f2: 83 35 cpi r24, 0x53 ; 83 + 8f4: 09 f0 breq .+2 ; 0x8f8 + 8f6: 55 c0 rjmp .+170 ; 0x9a2 + 8f8: 20 c0 rjmp .+64 ; 0x93a + 8fa: f8 01 movw r30, r16 + 8fc: 80 81 ld r24, Z + 8fe: 89 83 std Y+1, r24 ; 0x01 + 900: 0e 5f subi r16, 0xFE ; 254 + 902: 1f 4f sbci r17, 0xFF ; 255 + 904: 88 24 eor r8, r8 + 906: 83 94 inc r8 + 908: 91 2c mov r9, r1 + 90a: 53 01 movw r10, r6 + 90c: 12 c0 rjmp .+36 ; 0x932 + 90e: 28 01 movw r4, r16 + 910: f2 e0 ldi r31, 0x02 ; 2 + 912: 4f 0e add r4, r31 + 914: 51 1c adc r5, r1 + 916: f8 01 movw r30, r16 + 918: a0 80 ld r10, Z + 91a: b1 80 ldd r11, Z+1 ; 0x01 + 91c: 36 fe sbrs r3, 6 + 91e: 03 c0 rjmp .+6 ; 0x926 + 920: 69 2d mov r22, r9 + 922: 70 e0 ldi r23, 0x00 ; 0 + 924: 02 c0 rjmp .+4 ; 0x92a + 926: 6f ef ldi r22, 0xFF ; 255 + 928: 7f ef ldi r23, 0xFF ; 255 + 92a: c5 01 movw r24, r10 + 92c: 4e d1 rcall .+668 ; 0xbca + 92e: 4c 01 movw r8, r24 + 930: 82 01 movw r16, r4 + 932: f3 2d mov r31, r3 + 934: ff 77 andi r31, 0x7F ; 127 + 936: 3f 2e mov r3, r31 + 938: 15 c0 rjmp .+42 ; 0x964 + 93a: 28 01 movw r4, r16 + 93c: 22 e0 ldi r18, 0x02 ; 2 + 93e: 42 0e add r4, r18 + 940: 51 1c adc r5, r1 + 942: f8 01 movw r30, r16 + 944: a0 80 ld r10, Z + 946: b1 80 ldd r11, Z+1 ; 0x01 + 948: 36 fe sbrs r3, 6 + 94a: 03 c0 rjmp .+6 ; 0x952 + 94c: 69 2d mov r22, r9 + 94e: 70 e0 ldi r23, 0x00 ; 0 + 950: 02 c0 rjmp .+4 ; 0x956 + 952: 6f ef ldi r22, 0xFF ; 255 + 954: 7f ef ldi r23, 0xFF ; 255 + 956: c5 01 movw r24, r10 + 958: 2d d1 rcall .+602 ; 0xbb4 + 95a: 4c 01 movw r8, r24 + 95c: f3 2d mov r31, r3 + 95e: f0 68 ori r31, 0x80 ; 128 + 960: 3f 2e mov r3, r31 + 962: 82 01 movw r16, r4 + 964: 33 fc sbrc r3, 3 + 966: 19 c0 rjmp .+50 ; 0x99a + 968: 82 2d mov r24, r2 + 96a: 90 e0 ldi r25, 0x00 ; 0 + 96c: 88 16 cp r8, r24 + 96e: 99 06 cpc r9, r25 + 970: a0 f4 brcc .+40 ; 0x99a + 972: b6 01 movw r22, r12 + 974: 80 e2 ldi r24, 0x20 ; 32 + 976: 90 e0 ldi r25, 0x00 ; 0 + 978: 33 d1 rcall .+614 ; 0xbe0 + 97a: 2a 94 dec r2 + 97c: f5 cf rjmp .-22 ; 0x968 + 97e: f5 01 movw r30, r10 + 980: 37 fc sbrc r3, 7 + 982: 85 91 lpm r24, Z+ + 984: 37 fe sbrs r3, 7 + 986: 81 91 ld r24, Z+ + 988: 5f 01 movw r10, r30 + 98a: b6 01 movw r22, r12 + 98c: 90 e0 ldi r25, 0x00 ; 0 + 98e: 28 d1 rcall .+592 ; 0xbe0 + 990: 21 10 cpse r2, r1 + 992: 2a 94 dec r2 + 994: 21 e0 ldi r18, 0x01 ; 1 + 996: 82 1a sub r8, r18 + 998: 91 08 sbc r9, r1 + 99a: 81 14 cp r8, r1 + 99c: 91 04 cpc r9, r1 + 99e: 79 f7 brne .-34 ; 0x97e + 9a0: e1 c0 rjmp .+450 ; 0xb64 + 9a2: 84 36 cpi r24, 0x64 ; 100 + 9a4: 11 f0 breq .+4 ; 0x9aa + 9a6: 89 36 cpi r24, 0x69 ; 105 + 9a8: 39 f5 brne .+78 ; 0x9f8 + 9aa: f8 01 movw r30, r16 + 9ac: 37 fe sbrs r3, 7 + 9ae: 07 c0 rjmp .+14 ; 0x9be + 9b0: 60 81 ld r22, Z + 9b2: 71 81 ldd r23, Z+1 ; 0x01 + 9b4: 82 81 ldd r24, Z+2 ; 0x02 + 9b6: 93 81 ldd r25, Z+3 ; 0x03 + 9b8: 0c 5f subi r16, 0xFC ; 252 + 9ba: 1f 4f sbci r17, 0xFF ; 255 + 9bc: 08 c0 rjmp .+16 ; 0x9ce + 9be: 60 81 ld r22, Z + 9c0: 71 81 ldd r23, Z+1 ; 0x01 + 9c2: 07 2e mov r0, r23 + 9c4: 00 0c add r0, r0 + 9c6: 88 0b sbc r24, r24 + 9c8: 99 0b sbc r25, r25 + 9ca: 0e 5f subi r16, 0xFE ; 254 + 9cc: 1f 4f sbci r17, 0xFF ; 255 + 9ce: f3 2d mov r31, r3 + 9d0: ff 76 andi r31, 0x6F ; 111 + 9d2: 3f 2e mov r3, r31 + 9d4: 97 ff sbrs r25, 7 + 9d6: 09 c0 rjmp .+18 ; 0x9ea + 9d8: 90 95 com r25 + 9da: 80 95 com r24 + 9dc: 70 95 com r23 + 9de: 61 95 neg r22 + 9e0: 7f 4f sbci r23, 0xFF ; 255 + 9e2: 8f 4f sbci r24, 0xFF ; 255 + 9e4: 9f 4f sbci r25, 0xFF ; 255 + 9e6: f0 68 ori r31, 0x80 ; 128 + 9e8: 3f 2e mov r3, r31 + 9ea: 2a e0 ldi r18, 0x0A ; 10 + 9ec: 30 e0 ldi r19, 0x00 ; 0 + 9ee: a3 01 movw r20, r6 + 9f0: 33 d1 rcall .+614 ; 0xc58 <__ultoa_invert> + 9f2: 88 2e mov r8, r24 + 9f4: 86 18 sub r8, r6 + 9f6: 44 c0 rjmp .+136 ; 0xa80 + 9f8: 85 37 cpi r24, 0x75 ; 117 + 9fa: 31 f4 brne .+12 ; 0xa08 + 9fc: 23 2d mov r18, r3 + 9fe: 2f 7e andi r18, 0xEF ; 239 + a00: b2 2e mov r11, r18 + a02: 2a e0 ldi r18, 0x0A ; 10 + a04: 30 e0 ldi r19, 0x00 ; 0 + a06: 25 c0 rjmp .+74 ; 0xa52 + a08: 93 2d mov r25, r3 + a0a: 99 7f andi r25, 0xF9 ; 249 + a0c: b9 2e mov r11, r25 + a0e: 8f 36 cpi r24, 0x6F ; 111 + a10: c1 f0 breq .+48 ; 0xa42 + a12: 18 f4 brcc .+6 ; 0xa1a + a14: 88 35 cpi r24, 0x58 ; 88 + a16: 79 f0 breq .+30 ; 0xa36 + a18: ae c0 rjmp .+348 ; 0xb76 + a1a: 80 37 cpi r24, 0x70 ; 112 + a1c: 19 f0 breq .+6 ; 0xa24 + a1e: 88 37 cpi r24, 0x78 ; 120 + a20: 21 f0 breq .+8 ; 0xa2a + a22: a9 c0 rjmp .+338 ; 0xb76 + a24: e9 2f mov r30, r25 + a26: e0 61 ori r30, 0x10 ; 16 + a28: be 2e mov r11, r30 + a2a: b4 fe sbrs r11, 4 + a2c: 0d c0 rjmp .+26 ; 0xa48 + a2e: fb 2d mov r31, r11 + a30: f4 60 ori r31, 0x04 ; 4 + a32: bf 2e mov r11, r31 + a34: 09 c0 rjmp .+18 ; 0xa48 + a36: 34 fe sbrs r3, 4 + a38: 0a c0 rjmp .+20 ; 0xa4e + a3a: 29 2f mov r18, r25 + a3c: 26 60 ori r18, 0x06 ; 6 + a3e: b2 2e mov r11, r18 + a40: 06 c0 rjmp .+12 ; 0xa4e + a42: 28 e0 ldi r18, 0x08 ; 8 + a44: 30 e0 ldi r19, 0x00 ; 0 + a46: 05 c0 rjmp .+10 ; 0xa52 + a48: 20 e1 ldi r18, 0x10 ; 16 + a4a: 30 e0 ldi r19, 0x00 ; 0 + a4c: 02 c0 rjmp .+4 ; 0xa52 + a4e: 20 e1 ldi r18, 0x10 ; 16 + a50: 32 e0 ldi r19, 0x02 ; 2 + a52: f8 01 movw r30, r16 + a54: b7 fe sbrs r11, 7 + a56: 07 c0 rjmp .+14 ; 0xa66 + a58: 60 81 ld r22, Z + a5a: 71 81 ldd r23, Z+1 ; 0x01 + a5c: 82 81 ldd r24, Z+2 ; 0x02 + a5e: 93 81 ldd r25, Z+3 ; 0x03 + a60: 0c 5f subi r16, 0xFC ; 252 + a62: 1f 4f sbci r17, 0xFF ; 255 + a64: 06 c0 rjmp .+12 ; 0xa72 + a66: 60 81 ld r22, Z + a68: 71 81 ldd r23, Z+1 ; 0x01 + a6a: 80 e0 ldi r24, 0x00 ; 0 + a6c: 90 e0 ldi r25, 0x00 ; 0 + a6e: 0e 5f subi r16, 0xFE ; 254 + a70: 1f 4f sbci r17, 0xFF ; 255 + a72: a3 01 movw r20, r6 + a74: f1 d0 rcall .+482 ; 0xc58 <__ultoa_invert> + a76: 88 2e mov r8, r24 + a78: 86 18 sub r8, r6 + a7a: fb 2d mov r31, r11 + a7c: ff 77 andi r31, 0x7F ; 127 + a7e: 3f 2e mov r3, r31 + a80: 36 fe sbrs r3, 6 + a82: 0d c0 rjmp .+26 ; 0xa9e + a84: 23 2d mov r18, r3 + a86: 2e 7f andi r18, 0xFE ; 254 + a88: a2 2e mov r10, r18 + a8a: 89 14 cp r8, r9 + a8c: 58 f4 brcc .+22 ; 0xaa4 + a8e: 34 fe sbrs r3, 4 + a90: 0b c0 rjmp .+22 ; 0xaa8 + a92: 32 fc sbrc r3, 2 + a94: 09 c0 rjmp .+18 ; 0xaa8 + a96: 83 2d mov r24, r3 + a98: 8e 7e andi r24, 0xEE ; 238 + a9a: a8 2e mov r10, r24 + a9c: 05 c0 rjmp .+10 ; 0xaa8 + a9e: b8 2c mov r11, r8 + aa0: a3 2c mov r10, r3 + aa2: 03 c0 rjmp .+6 ; 0xaaa + aa4: b8 2c mov r11, r8 + aa6: 01 c0 rjmp .+2 ; 0xaaa + aa8: b9 2c mov r11, r9 + aaa: a4 fe sbrs r10, 4 + aac: 0f c0 rjmp .+30 ; 0xacc + aae: fe 01 movw r30, r28 + ab0: e8 0d add r30, r8 + ab2: f1 1d adc r31, r1 + ab4: 80 81 ld r24, Z + ab6: 80 33 cpi r24, 0x30 ; 48 + ab8: 21 f4 brne .+8 ; 0xac2 + aba: 9a 2d mov r25, r10 + abc: 99 7e andi r25, 0xE9 ; 233 + abe: a9 2e mov r10, r25 + ac0: 09 c0 rjmp .+18 ; 0xad4 + ac2: a2 fe sbrs r10, 2 + ac4: 06 c0 rjmp .+12 ; 0xad2 + ac6: b3 94 inc r11 + ac8: b3 94 inc r11 + aca: 04 c0 rjmp .+8 ; 0xad4 + acc: 8a 2d mov r24, r10 + ace: 86 78 andi r24, 0x86 ; 134 + ad0: 09 f0 breq .+2 ; 0xad4 + ad2: b3 94 inc r11 + ad4: a3 fc sbrc r10, 3 + ad6: 10 c0 rjmp .+32 ; 0xaf8 + ad8: a0 fe sbrs r10, 0 + ada: 06 c0 rjmp .+12 ; 0xae8 + adc: b2 14 cp r11, r2 + ade: 80 f4 brcc .+32 ; 0xb00 + ae0: 28 0c add r2, r8 + ae2: 92 2c mov r9, r2 + ae4: 9b 18 sub r9, r11 + ae6: 0d c0 rjmp .+26 ; 0xb02 + ae8: b2 14 cp r11, r2 + aea: 58 f4 brcc .+22 ; 0xb02 + aec: b6 01 movw r22, r12 + aee: 80 e2 ldi r24, 0x20 ; 32 + af0: 90 e0 ldi r25, 0x00 ; 0 + af2: 76 d0 rcall .+236 ; 0xbe0 + af4: b3 94 inc r11 + af6: f8 cf rjmp .-16 ; 0xae8 + af8: b2 14 cp r11, r2 + afa: 18 f4 brcc .+6 ; 0xb02 + afc: 2b 18 sub r2, r11 + afe: 02 c0 rjmp .+4 ; 0xb04 + b00: 98 2c mov r9, r8 + b02: 21 2c mov r2, r1 + b04: a4 fe sbrs r10, 4 + b06: 0f c0 rjmp .+30 ; 0xb26 + b08: b6 01 movw r22, r12 + b0a: 80 e3 ldi r24, 0x30 ; 48 + b0c: 90 e0 ldi r25, 0x00 ; 0 + b0e: 68 d0 rcall .+208 ; 0xbe0 + b10: a2 fe sbrs r10, 2 + b12: 16 c0 rjmp .+44 ; 0xb40 + b14: a1 fc sbrc r10, 1 + b16: 03 c0 rjmp .+6 ; 0xb1e + b18: 88 e7 ldi r24, 0x78 ; 120 + b1a: 90 e0 ldi r25, 0x00 ; 0 + b1c: 02 c0 rjmp .+4 ; 0xb22 + b1e: 88 e5 ldi r24, 0x58 ; 88 + b20: 90 e0 ldi r25, 0x00 ; 0 + b22: b6 01 movw r22, r12 + b24: 0c c0 rjmp .+24 ; 0xb3e + b26: 8a 2d mov r24, r10 + b28: 86 78 andi r24, 0x86 ; 134 + b2a: 51 f0 breq .+20 ; 0xb40 + b2c: a1 fe sbrs r10, 1 + b2e: 02 c0 rjmp .+4 ; 0xb34 + b30: 8b e2 ldi r24, 0x2B ; 43 + b32: 01 c0 rjmp .+2 ; 0xb36 + b34: 80 e2 ldi r24, 0x20 ; 32 + b36: a7 fc sbrc r10, 7 + b38: 8d e2 ldi r24, 0x2D ; 45 + b3a: b6 01 movw r22, r12 + b3c: 90 e0 ldi r25, 0x00 ; 0 + b3e: 50 d0 rcall .+160 ; 0xbe0 + b40: 89 14 cp r8, r9 + b42: 30 f4 brcc .+12 ; 0xb50 + b44: b6 01 movw r22, r12 + b46: 80 e3 ldi r24, 0x30 ; 48 + b48: 90 e0 ldi r25, 0x00 ; 0 + b4a: 4a d0 rcall .+148 ; 0xbe0 + b4c: 9a 94 dec r9 + b4e: f8 cf rjmp .-16 ; 0xb40 + b50: 8a 94 dec r8 + b52: f3 01 movw r30, r6 + b54: e8 0d add r30, r8 + b56: f1 1d adc r31, r1 + b58: 80 81 ld r24, Z + b5a: b6 01 movw r22, r12 + b5c: 90 e0 ldi r25, 0x00 ; 0 + b5e: 40 d0 rcall .+128 ; 0xbe0 + b60: 81 10 cpse r8, r1 + b62: f6 cf rjmp .-20 ; 0xb50 + b64: 22 20 and r2, r2 + b66: 09 f4 brne .+2 ; 0xb6a + b68: 4e ce rjmp .-868 ; 0x806 + b6a: b6 01 movw r22, r12 + b6c: 80 e2 ldi r24, 0x20 ; 32 + b6e: 90 e0 ldi r25, 0x00 ; 0 + b70: 37 d0 rcall .+110 ; 0xbe0 + b72: 2a 94 dec r2 + b74: f7 cf rjmp .-18 ; 0xb64 + b76: f6 01 movw r30, r12 + b78: 86 81 ldd r24, Z+6 ; 0x06 + b7a: 97 81 ldd r25, Z+7 ; 0x07 + b7c: 02 c0 rjmp .+4 ; 0xb82 + b7e: 8f ef ldi r24, 0xFF ; 255 + b80: 9f ef ldi r25, 0xFF ; 255 + b82: 2b 96 adiw r28, 0x0b ; 11 + b84: 0f b6 in r0, 0x3f ; 63 + b86: f8 94 cli + b88: de bf out 0x3e, r29 ; 62 + b8a: 0f be out 0x3f, r0 ; 63 + b8c: cd bf out 0x3d, r28 ; 61 + b8e: df 91 pop r29 + b90: cf 91 pop r28 + b92: 1f 91 pop r17 + b94: 0f 91 pop r16 + b96: ff 90 pop r15 + b98: ef 90 pop r14 + b9a: df 90 pop r13 + b9c: cf 90 pop r12 + b9e: bf 90 pop r11 + ba0: af 90 pop r10 + ba2: 9f 90 pop r9 + ba4: 8f 90 pop r8 + ba6: 7f 90 pop r7 + ba8: 6f 90 pop r6 + baa: 5f 90 pop r5 + bac: 4f 90 pop r4 + bae: 3f 90 pop r3 + bb0: 2f 90 pop r2 + bb2: 08 95 ret + +00000bb4 : + bb4: fc 01 movw r30, r24 + bb6: 05 90 lpm r0, Z+ + bb8: 61 50 subi r22, 0x01 ; 1 + bba: 70 40 sbci r23, 0x00 ; 0 + bbc: 01 10 cpse r0, r1 + bbe: d8 f7 brcc .-10 ; 0xbb6 + bc0: 80 95 com r24 + bc2: 90 95 com r25 + bc4: 8e 0f add r24, r30 + bc6: 9f 1f adc r25, r31 + bc8: 08 95 ret + +00000bca : + bca: fc 01 movw r30, r24 + bcc: 61 50 subi r22, 0x01 ; 1 + bce: 70 40 sbci r23, 0x00 ; 0 + bd0: 01 90 ld r0, Z+ + bd2: 01 10 cpse r0, r1 + bd4: d8 f7 brcc .-10 ; 0xbcc + bd6: 80 95 com r24 + bd8: 90 95 com r25 + bda: 8e 0f add r24, r30 + bdc: 9f 1f adc r25, r31 + bde: 08 95 ret + +00000be0 : + be0: 0f 93 push r16 + be2: 1f 93 push r17 + be4: cf 93 push r28 + be6: df 93 push r29 + be8: fb 01 movw r30, r22 + bea: 23 81 ldd r18, Z+3 ; 0x03 + bec: 21 fd sbrc r18, 1 + bee: 03 c0 rjmp .+6 ; 0xbf6 + bf0: 8f ef ldi r24, 0xFF ; 255 + bf2: 9f ef ldi r25, 0xFF ; 255 + bf4: 2c c0 rjmp .+88 ; 0xc4e + bf6: 22 ff sbrs r18, 2 + bf8: 16 c0 rjmp .+44 ; 0xc26 + bfa: 46 81 ldd r20, Z+6 ; 0x06 + bfc: 57 81 ldd r21, Z+7 ; 0x07 + bfe: 24 81 ldd r18, Z+4 ; 0x04 + c00: 35 81 ldd r19, Z+5 ; 0x05 + c02: 42 17 cp r20, r18 + c04: 53 07 cpc r21, r19 + c06: 44 f4 brge .+16 ; 0xc18 + c08: a0 81 ld r26, Z + c0a: b1 81 ldd r27, Z+1 ; 0x01 + c0c: 9d 01 movw r18, r26 + c0e: 2f 5f subi r18, 0xFF ; 255 + c10: 3f 4f sbci r19, 0xFF ; 255 + c12: 31 83 std Z+1, r19 ; 0x01 + c14: 20 83 st Z, r18 + c16: 8c 93 st X, r24 + c18: 26 81 ldd r18, Z+6 ; 0x06 + c1a: 37 81 ldd r19, Z+7 ; 0x07 + c1c: 2f 5f subi r18, 0xFF ; 255 + c1e: 3f 4f sbci r19, 0xFF ; 255 + c20: 37 83 std Z+7, r19 ; 0x07 + c22: 26 83 std Z+6, r18 ; 0x06 + c24: 14 c0 rjmp .+40 ; 0xc4e + c26: 8b 01 movw r16, r22 + c28: ec 01 movw r28, r24 + c2a: fb 01 movw r30, r22 + c2c: 00 84 ldd r0, Z+8 ; 0x08 + c2e: f1 85 ldd r31, Z+9 ; 0x09 + c30: e0 2d mov r30, r0 + c32: 09 95 icall + c34: 89 2b or r24, r25 + c36: e1 f6 brne .-72 ; 0xbf0 + c38: d8 01 movw r26, r16 + c3a: 16 96 adiw r26, 0x06 ; 6 + c3c: 8d 91 ld r24, X+ + c3e: 9c 91 ld r25, X + c40: 17 97 sbiw r26, 0x07 ; 7 + c42: 01 96 adiw r24, 0x01 ; 1 + c44: 17 96 adiw r26, 0x07 ; 7 + c46: 9c 93 st X, r25 + c48: 8e 93 st -X, r24 + c4a: 16 97 sbiw r26, 0x06 ; 6 + c4c: ce 01 movw r24, r28 + c4e: df 91 pop r29 + c50: cf 91 pop r28 + c52: 1f 91 pop r17 + c54: 0f 91 pop r16 + c56: 08 95 ret + +00000c58 <__ultoa_invert>: + c58: fa 01 movw r30, r20 + c5a: aa 27 eor r26, r26 + c5c: 28 30 cpi r18, 0x08 ; 8 + c5e: 51 f1 breq .+84 ; 0xcb4 <__ultoa_invert+0x5c> + c60: 20 31 cpi r18, 0x10 ; 16 + c62: 81 f1 breq .+96 ; 0xcc4 <__ultoa_invert+0x6c> + c64: e8 94 clt + c66: 6f 93 push r22 + c68: 6e 7f andi r22, 0xFE ; 254 + c6a: 6e 5f subi r22, 0xFE ; 254 + c6c: 7f 4f sbci r23, 0xFF ; 255 + c6e: 8f 4f sbci r24, 0xFF ; 255 + c70: 9f 4f sbci r25, 0xFF ; 255 + c72: af 4f sbci r26, 0xFF ; 255 + c74: b1 e0 ldi r27, 0x01 ; 1 + c76: 3e d0 rcall .+124 ; 0xcf4 <__ultoa_invert+0x9c> + c78: b4 e0 ldi r27, 0x04 ; 4 + c7a: 3c d0 rcall .+120 ; 0xcf4 <__ultoa_invert+0x9c> + c7c: 67 0f add r22, r23 + c7e: 78 1f adc r23, r24 + c80: 89 1f adc r24, r25 + c82: 9a 1f adc r25, r26 + c84: a1 1d adc r26, r1 + c86: 68 0f add r22, r24 + c88: 79 1f adc r23, r25 + c8a: 8a 1f adc r24, r26 + c8c: 91 1d adc r25, r1 + c8e: a1 1d adc r26, r1 + c90: 6a 0f add r22, r26 + c92: 71 1d adc r23, r1 + c94: 81 1d adc r24, r1 + c96: 91 1d adc r25, r1 + c98: a1 1d adc r26, r1 + c9a: 20 d0 rcall .+64 ; 0xcdc <__ultoa_invert+0x84> + c9c: 09 f4 brne .+2 ; 0xca0 <__ultoa_invert+0x48> + c9e: 68 94 set + ca0: 3f 91 pop r19 + ca2: 2a e0 ldi r18, 0x0A ; 10 + ca4: 26 9f mul r18, r22 + ca6: 11 24 eor r1, r1 + ca8: 30 19 sub r19, r0 + caa: 30 5d subi r19, 0xD0 ; 208 + cac: 31 93 st Z+, r19 + cae: de f6 brtc .-74 ; 0xc66 <__ultoa_invert+0xe> + cb0: cf 01 movw r24, r30 + cb2: 08 95 ret + cb4: 46 2f mov r20, r22 + cb6: 47 70 andi r20, 0x07 ; 7 + cb8: 40 5d subi r20, 0xD0 ; 208 + cba: 41 93 st Z+, r20 + cbc: b3 e0 ldi r27, 0x03 ; 3 + cbe: 0f d0 rcall .+30 ; 0xcde <__ultoa_invert+0x86> + cc0: c9 f7 brne .-14 ; 0xcb4 <__ultoa_invert+0x5c> + cc2: f6 cf rjmp .-20 ; 0xcb0 <__ultoa_invert+0x58> + cc4: 46 2f mov r20, r22 + cc6: 4f 70 andi r20, 0x0F ; 15 + cc8: 40 5d subi r20, 0xD0 ; 208 + cca: 4a 33 cpi r20, 0x3A ; 58 + ccc: 18 f0 brcs .+6 ; 0xcd4 <__ultoa_invert+0x7c> + cce: 49 5d subi r20, 0xD9 ; 217 + cd0: 31 fd sbrc r19, 1 + cd2: 40 52 subi r20, 0x20 ; 32 + cd4: 41 93 st Z+, r20 + cd6: 02 d0 rcall .+4 ; 0xcdc <__ultoa_invert+0x84> + cd8: a9 f7 brne .-22 ; 0xcc4 <__ultoa_invert+0x6c> + cda: ea cf rjmp .-44 ; 0xcb0 <__ultoa_invert+0x58> + cdc: b4 e0 ldi r27, 0x04 ; 4 + cde: a6 95 lsr r26 + ce0: 97 95 ror r25 + ce2: 87 95 ror r24 + ce4: 77 95 ror r23 + ce6: 67 95 ror r22 + ce8: ba 95 dec r27 + cea: c9 f7 brne .-14 ; 0xcde <__ultoa_invert+0x86> + cec: 00 97 sbiw r24, 0x00 ; 0 + cee: 61 05 cpc r22, r1 + cf0: 71 05 cpc r23, r1 + cf2: 08 95 ret + cf4: 9b 01 movw r18, r22 + cf6: ac 01 movw r20, r24 + cf8: 0a 2e mov r0, r26 + cfa: 06 94 lsr r0 + cfc: 57 95 ror r21 + cfe: 47 95 ror r20 + d00: 37 95 ror r19 + d02: 27 95 ror r18 + d04: ba 95 dec r27 + d06: c9 f7 brne .-14 ; 0xcfa <__ultoa_invert+0xa2> + d08: 62 0f add r22, r18 + d0a: 73 1f adc r23, r19 + d0c: 84 1f adc r24, r20 + d0e: 95 1f adc r25, r21 + d10: a0 1d adc r26, r0 + d12: 08 95 ret + +00000d14 <_exit>: + d14: f8 94 cli + +00000d16 <__stop_program>: + d16: ff cf rjmp .-2 ; 0xd16 <__stop_program> diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.map b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.map index 5127215..31eba48 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(floatsisf.o) + ultrasonic_sensor.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(mulsf3.o) + ultrasonic_sensor.o (__mulsf3) +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(mulsf3x.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(mulsf3.o) (__mulsf3x) +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(mulsf3x.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(mulsf3x.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(mulsf3x.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(mulsf3x.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(mulsf3.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(mulsf3x.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(mulsf3x.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,8 +59,8 @@ Discarded input sections 0x00000000 0x18 lcd_control.o .text.lcd_move_right 0x00000000 0x8 lcd_control.o - .text.lcd_write_double - 0x00000000 0xf2 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 @@ -50,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(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(mulsf3.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(mulsf3.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(mulsf3.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(mulsf3x.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(mulsf3x.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(mulsf3x.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) @@ -246,7 +296,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x00000000 0xaec +.text 0x00000000 0xd18 *(.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 @@ -364,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 + 0x000002d0 0x4 main.o .text.__vector_3 - 0x00000298 0x4e main.o - 0x00000298 __vector_3 - .text.main 0x000002e6 0x36 main.o - 0x000002e6 main + 0x000002d4 0x4e main.o + 0x000002d4 __vector_3 + .text.main 0x00000322 0x42 main.o + 0x00000322 main .text.set_stepper_state - 0x0000031c 0x24 stepper_driver.o - 0x0000031c set_stepper_state + 0x00000364 0x24 stepper_driver.o + 0x00000364 set_stepper_state .text.set_snap_event - 0x00000340 0xa stepper_driver.o - 0x00000340 set_snap_event + 0x00000388 0xa stepper_driver.o + 0x00000388 set_snap_event .text.__vector_9 - 0x0000034a 0xc4 stepper_driver.o - 0x0000034a __vector_9 + 0x00000392 0xc4 stepper_driver.o + 0x00000392 __vector_9 .text.stepper_rotate_angle - 0x0000040e 0x1a stepper_driver.o - 0x0000040e stepper_rotate_angle + 0x00000456 0x1a stepper_driver.o + 0x00000456 stepper_rotate_angle .text.stepper_rotate_stop - 0x00000428 0x4 stepper_driver.o - 0x00000428 stepper_rotate_stop + 0x00000470 0x4 stepper_driver.o + 0x00000470 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 + 0x00000474 0x1c stepper_driver.o + 0x00000474 init_stepper_driver + .text.wait_us 0x00000490 0x1a ultrasonic_sensor.o + 0x00000490 wait_us + .text.wait_ms 0x000004aa 0x1e ultrasonic_sensor.o + 0x000004aa wait_ms .text.ultrasonic_init - 0x00000480 0x1e ultrasonic_sensor.o - 0x00000480 ultrasonic_init + 0x000004c8 0x1e ultrasonic_sensor.o + 0x000004c8 ultrasonic_init .text.ultrasonic_send_pulse - 0x0000049e 0x1a ultrasonic_sensor.o - 0x0000049e ultrasonic_send_pulse + 0x000004e6 0x1a ultrasonic_sensor.o + 0x000004e6 ultrasonic_send_pulse .text.ultrasonic_handle_interrupt - 0x000004b8 0x3c ultrasonic_sensor.o - 0x000004b8 ultrasonic_handle_interrupt + 0x00000500 0x3c ultrasonic_sensor.o + 0x00000500 ultrasonic_handle_interrupt .text.set_value_trigger_event - 0x000004f4 0xa ultrasonic_sensor.o - 0x000004f4 set_value_trigger_event + 0x0000053c 0xa ultrasonic_sensor.o + 0x0000053c set_value_trigger_event .text.ultrasonic_get_timer_dist - 0x000004fe 0x18 ultrasonic_sensor.o - 0x000004fe ultrasonic_get_timer_dist + 0x00000546 0x1a ultrasonic_sensor.o + 0x00000546 ultrasonic_get_timer_dist + .text.avr-libc.fplib + 0x00000560 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) + 0x00000560 __floatunsisf + 0x00000564 __floatsisf + .text.avr-libc.fplib + 0x000005da 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(mulsf3.o) + 0x000005da __mulsf3 + .text.avr-libc.fplib + 0x000005de 0xc2 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(mulsf3x.o) + 0x000005f2 __mulsf3x + 0x000005f6 __mulsf3_pse + .text.avr-libc.fplib + 0x000006a0 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) + 0x000006a0 __fp_inf + .text.avr-libc.fplib + 0x000006ac 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) + 0x000006ac __fp_nan + .text.avr-libc.fplib + 0x000006b2 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) + 0x000006b2 __fp_pscA + .text.avr-libc.fplib + 0x000006c0 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) + 0x000006c0 __fp_pscB + .text.avr-libc.fplib + 0x000006ce 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) + 0x000006ce __fp_round + .text.avr-libc.fplib + 0x000006f0 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) + 0x000006f0 __fp_split3 + 0x00000700 __fp_splitA + .text.avr-libc.fplib + 0x00000734 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) + 0x00000734 __fp_zero + 0x00000736 __fp_szero .text.avr-libc - 0x00000516 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) - 0x00000516 snprintf + 0x00000742 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) + 0x00000742 snprintf .text.avr-libc - 0x0000058e 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) - 0x0000058e vfprintf + 0x000007ba 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) + 0x000007ba vfprintf .text.avr-libc - 0x00000988 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) - 0x00000988 strnlen_P + 0x00000bb4 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) + 0x00000bb4 strnlen_P .text.avr-libc - 0x0000099e 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) - 0x0000099e strnlen + 0x00000bca 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) + 0x00000bca strnlen .text.avr-libc - 0x000009b4 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) - 0x000009b4 fputc + 0x00000be0 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) + 0x00000be0 fputc .text.avr-libc - 0x00000a2c 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) - 0x00000a2c __ultoa_invert - 0x00000ae8 . = ALIGN (0x2) + 0x00000c58 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) + 0x00000c58 __ultoa_invert + 0x00000d14 . = ALIGN (0x2) *(.fini9) - .fini9 0x00000ae8 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) - 0x00000ae8 _exit - 0x00000ae8 exit + .fini9 0x00000d14 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) + 0x00000d14 _exit + 0x00000d14 exit *(.fini9) *(.fini8) *(.fini8) @@ -454,11 +538,11 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00000ae8 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 0x00000d14 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) - 0x00000aec _etext = . + 0x00000d18 _etext = . -.data 0x00800100 0x22 load address 0x00000aec +.data 0x00800100 0x2a load address 0x00000d18 0x00800100 PROVIDE (__data_start, .) *(.data) *(.data*) @@ -476,42 +560,44 @@ END GROUP *(.rodata*) .rodata.str1.1 0x00800112 0xf lcd_control.o + .rodata.str1.1 + 0x00800121 0x8 main.o *(.gnu.linkonce.r*) - 0x00800122 . = ALIGN (0x2) - *fill* 0x00800121 0x1 - 0x00800122 _edata = . - 0x00800122 PROVIDE (__data_end, .) + 0x0080012a . = ALIGN (0x2) + *fill* 0x00800129 0x1 + 0x0080012a _edata = . + 0x0080012a PROVIDE (__data_end, .) -.bss 0x00800122 0xc - 0x00800122 PROVIDE (__bss_start, .) +.bss 0x0080012a 0xc + 0x0080012a PROVIDE (__bss_start, .) *(.bss) *(.bss*) .bss.stepper_state - 0x00800122 0x1 stepper_driver.o - 0x00800122 stepper_state + 0x0080012a 0x1 stepper_driver.o + 0x0080012a stepper_state .bss.steps_to_do - 0x00800123 0x2 stepper_driver.o - 0x00800123 steps_to_do + 0x0080012b 0x2 stepper_driver.o + 0x0080012b steps_to_do .bss.steps_each_turn - 0x00800125 0x2 stepper_driver.o - 0x00800125 steps_each_turn + 0x0080012d 0x2 stepper_driver.o + 0x0080012d steps_each_turn .bss.timer_dist - 0x00800127 0x2 ultrasonic_sensor.o + 0x0080012f 0x2 ultrasonic_sensor.o *(COMMON) - COMMON 0x00800129 0x3 stepper_driver.o - 0x00800129 rotation - 0x0080012a snap_event - COMMON 0x0080012c 0x2 ultrasonic_sensor.o - 0x0080012c value_set_event - 0x0080012e PROVIDE (__bss_end, .) - 0x00000aec __data_load_start = LOADADDR (.data) - 0x00000b0e __data_load_end = (__data_load_start + SIZEOF (.data)) + COMMON 0x00800131 0x3 stepper_driver.o + 0x00800131 rotation + 0x00800132 snap_event + COMMON 0x00800134 0x2 ultrasonic_sensor.o + 0x00800134 value_set_event + 0x00800136 PROVIDE (__bss_end, .) + 0x00000d18 __data_load_start = LOADADDR (.data) + 0x00000d42 __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x0080012e 0x0 +.noinit 0x00800136 0x0 [!provide] PROVIDE (__noinit_start, .) *(.noinit*) [!provide] PROVIDE (__noinit_end, .) - 0x0080012e _end = . + 0x00800136 _end = . [!provide] PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 @@ -597,13 +683,13 @@ END GROUP .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0x15b4 +.debug_info 0x00000000 0x15dc *(.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 0x5c0 lcd_control.o - .debug_info 0x00000d40 0x366 main.o - .debug_info 0x000010a6 0x21e stepper_driver.o - .debug_info 0x000012c4 0x2f0 ultrasonic_sensor.o + .debug_info 0x00000d40 0x387 main.o + .debug_info 0x000010c7 0x21e stepper_driver.o + .debug_info 0x000012e5 0x2f7 ultrasonic_sensor.o .debug_abbrev 0x00000000 0xd50 *(.debug_abbrev) @@ -634,11 +720,11 @@ END GROUP .debug_str 0x0000027d 0x2b3 lcd_control.o 0x2f3 (size before relaxing) .debug_str 0x00000530 0x15b main.o - 0x371 (size before relaxing) + 0x374 (size before relaxing) .debug_str 0x0000068b 0x68 stepper_driver.o 0x2af (size before relaxing) .debug_str 0x000006f3 0x7f ultrasonic_sensor.o - 0x303 (size before relaxing) + 0x309 (size before relaxing) .debug_loc 0x00000000 0x831 *(.debug_loc) diff --git a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec index 7bcd695..882e51d 100644 --- a/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec +++ b/Microcontrollers/Eindopdracht/Debug/Eindopdracht.srec @@ -1,17 +1,17 @@ S014000045696E646F706472616368742E737265633B -S113000045C0000060C000005EC0000045C10000A3 +S113000045C0000060C000005EC0000063C1000085 S11300105AC0000058C0000056C0000054C0000080 -S113002052C0000092C100004EC000004CC000004D +S113002052C00000B6C100004EC000004CC0000029 S11300304AC0000048C0000046C0000044C00000A0 S113004042C0000040C000003EC000003CC00000B0 S11300503AC0000038C0000036C0000034C00000C0 S113006032C0000030C000002EC000002CC00000D0 S11300702AC0000028C0000026C0000024C00000E0 S113008022C0000020C000001EC0000011241FBEBA -S1130090CFEFD0E1DEBFCDBF11E0A0E0B1E0ECEEE8 -S11300A0FAE000E00BBF02C007900D92A232B10744 -S11300B0D9F721E0A2E2B1E001C01D92AE32B2074D -S11300C0E1F711D111C59CCF9BB321E030E002C010 +S1130090CFEFD0E1DEBFCDBF11E0A0E0B1E0E8E1F9 +S11300A0FDE000E00BBF02C007900D92AA32B10739 +S11300B0D9F721E0AAE2B1E001C01D92A633B2074C +S11300C0E1F72FD127C69CCF9BB321E030E002C0DB S11300D0220F331F8A95E2F7292B2BBB08959BB37C S11300E021E030E002C0220F331F8A95E2F7209509 S11300F029232BBB089586E090E0E6DF83EC99E0AA @@ -27,154 +27,189 @@ S1130180C0E2C5BBB8DFC5BBB6DF80E885BBB3DF63 S113019015BAB1DF80EF85BBAEDF15BAACDF80E600 S11301A085BBA9DF82E0CADFA6DFCF910895CF9394 S11301B0DF93EC0102C0B2DF219688818111FBCF6D -S11301C0DF91CF910895AF92BF92CF92DF92EF92D9 -S11301D0FF920F931F93CF93DF93CDB7DEB7D82E43 -S11301E0C92EADB6BEB69F938F930F2EF2E1EF2EBC -S11301F0F1E0FF2EF02DFF92EF921F921F921F92BB -S11302001F9289D101962DB73EB7285F3F4F0FB695 -S1130210F8943EBF0FBE2DBF281B390B0FB6F894C0 -S11302203EBF0FBE2DBF0DB71EB70F5F1F4FCF923E -S1130230DF92FF92EF929F938F931F930F936BD153 -S1130240802F912FB4DF8DB79EB708960FB6F89420 -S11302509EBF0FBE8DBF0FB6F894BEBE0FBEADBE1F -S1130260DF91CF911F910F91FF90EF90DF90CF908E -S1130270BF90AF90089520910001222351F001977F -S1130280439738F4D1D01092000161E080E092E00D -S1130290BEC0089504C108951F920F920FB60F9225 -S11302A011240BB60F922F933F934F935F936F9349 -S11302B07F938F939F93AF93BF93EF93FF93FCD060 -S11302C0FF91EF91BF91AF919F918F917F916F912A -S11302D05F914F913F912F910F900BBE0F900FBEE6 -S11302E00F901F901895CCD044DFA0D08AE491E001 -S11302F027D08BE391E0FED087EA91E60197F1F7EE -S113030000C000002BDF60E088E592E080D026DFAB -S1130310F6D059DF84E690E0A4D0F9CF909129017A -S1130320911107C0E82FF0E0EF5FFE4F808183B9A1 -S11303300895E82FF0E0E75FFE4F808183B90895C8 -S113034090932B0180932A0108951F920F920FB668 -S11303500F9211240BB60F922F933F934F935F93F9 -S11303606F937F938F939F93AF93BF93EF93FF9379 -S113037014BC80912201D2DF80912201873020F4C5 -S11303808F5F8093220130C010922201809123015B -S113039090912401009799F480912901811104C05E -S11303A081E08093290102C01092290180912501E6 -S11303B090912601909324018093230115C09C0100 -S11303C02F713327232B39F4E0912A01F0912B016B -S11303D0309709F0099580912301909124010197A8 -S11303E09093240180932301FF91EF91BF91AF91EA -S11303F09F918F917F916F915F914F913F912F9139 -S11304000F900BBE0F900FBE0F901F9018959093F6 -S11304102401809323019093260180932501609306 -S113042029018CE085BD089515BC08958FEF82B92C -S11304308093640081E08093650013B886E983BDEE -S113044080E887BF7894089520E030E006C043E058 -S11304504A95F1F700002F5F3F4F28173907B8F38B -S1130460089520E030E008C0E3ECF9E03197F1F7BB -S113047000C000002F5F3F4F28173907A8F30895E5 -S11304808FEF8093640011BA80E380936A0089B788 -S1130490846089BF1FBC8CE08EBD78940895CF938F -S11304A0DF93C5E6D0E018828AE090E0CDDF81E0FA -S11304B08883DF91CF91089580911101813041F4B7 -S11304C080E280936A001DBC1CBC10921101089547 -S11304D080E380936A008CB59DB590932801809346 -S11304E02701E0912C01F0912D01099581E0809381 -S11304F01101089590932D0180932C01089580910A -S11305002701909128012AEAAC01249FC001259F6C -S1130510900D112408950F931F93CF93DF93CDB7BC -S1130520DEB72E970FB6F894DEBF0FBECDBF0D8990 -S11305301E898F89988D26E02C831A83098397FF5F -S113054002C080E090E801979E838D83AE01455EF2 -S11305505F4F698D7A8DCE01019619D04D815E81F0 -S113056057FD0AC02F813885421753070CF49A01AE -S1130570F801E20FF31F10822E960FB6F894DEBF37 -S11305800FBECDBFDF91CF911F910F9108952F9290 -S11305903F924F925F926F927F928F929F92AF920F -S11305A0BF92CF92DF92EF92FF920F931F93CF935C -S11305B0DF93CDB7DEB72B970FB6F894DEBF0FBE2F -S11305C0CDBF6C017B018A01FC01178216828381F5 -S11305D081FFBFC1CE0101963C01F6019381F70171 -S11305E093FD859193FF81917F01882309F4ADC127 -S11305F0853239F493FD859193FF81917F01853292 -S113060021F4B60190E0D6D1E8CF912C212C312CE5 -S1130610FFE1F315D8F08B3279F038F4803279F0B9 -S11306208332A1F4232D20611DC08D3261F080330B -S113063069F4232D216016C0832D8260382EE32DAA -S1130640E4603E2E2AC0F32DF8601DC037FC2DC097 -S113065020ED280F2A3040F08E32B9F436FC75C1F3 -S1130660232D2064322E19C036FE06C08AE0989EDF -S1130670200D1124922E11C0EAE02E9E200D11248B -S1130680222EF32DF0623F2E08C08C3621F4832DE8 -S11306908068382E02C0883641F4F70193FD8591B5 -S11306A093FF81917F018111B3CF982F9F7D955442 -S11306B0933028F40C5F1F4F9FE399830DC083365A -S11306C031F0833771F0833509F055C020C0F8014B -S11306D0808189830E5F1F4F88248394912C53015A -S11306E012C02801F2E04F0E511CF801A080B18025 -S11306F036FE03C0692D70E002C06FEF7FEFC501C5 -S11307004ED14C018201F32DFF773F2E15C02801F5 -S113071022E0420E511CF801A080B18036FE03C0D5 -S1130720692D70E002C06FEF7FEFC5012DD14C0140 -S1130730F32DF0683F2E820133FC19C0822D90E026 -S113074088169906A0F4B60180E290E033D12A9489 -S1130750F5CFF50137FC859137FE81915F01B60134 -S113076090E028D121102A9421E0821A9108811462 -S1130770910479F7E1C0843611F0893639F5F8012E -S113078037FE07C060817181828193810C5F1F4FA6 -S113079008C060817181072E000C880B990B0E5FD5 -S11307A01F4FF32DFF763F2E97FF09C0909580953C -S11307B0709561957F4F8F4F9F4FF0683F2E2AE0D1 -S11307C030E0A30133D1882E861844C0853731F434 -S11307D0232D2F7EB22E2AE030E025C0932D997F61 -S11307E0B92E8F36C1F018F4883579F0AEC0803751 -S11307F019F0883721F0A9C0E92FE061BE2EB4FEBC -S11308000DC0FB2DF460BF2E09C034FE0AC0292F91 -S11308102660B22E06C028E030E005C020E130E0BA -S113082002C020E132E0F801B7FE07C060817181A7 -S1130830828193810C5F1F4F06C06081718180E0CB -S113084090E00E5F1F4FA301F1D0882E8618FB2D78 -S1130850FF773F2E36FE0DC0232D2E7FA22E891446 -S113086058F434FE0BC032FC09C0832D8E7EA82EB2 -S113087005C0B82CA32C03C0B82C01C0B92CA4FE0D -S11308800FC0FE01E80DF11D8081803321F49A2D03 -S1130890997EA92E09C0A2FE06C0B394B39404C0E5 -S11308A08A2D867809F0B394A3FC10C0A0FE06C07C -S11308B0B21480F4280C922C9B180DC0B21458F476 -S11308C0B60180E290E076D0B394F8CFB21418F475 -S11308D02B1802C0982C212CA4FE0FC0B60180E373 -S11308E090E068D0A2FE16C0A1FC03C088E790E0A7 -S11308F002C088E590E0B6010CC08A2D867851F0DC -S1130900A1FE02C08BE201C080E2A7FC8DE2B60129 -S113091090E050D0891430F4B60180E390E04AD0DE -S11309209A94F8CF8A94F301E80DF11D8081B60101 -S113093090E040D08110F6CF222009F44ECEB601CB -S113094080E290E037D02A94F7CFF6018681978130 -S113095002C08FEF9FEF2B960FB6F894DEBF0FBE49 -S1130960CDBFDF91CF911F910F91FF90EF90DF905A -S1130970CF90BF90AF909F908F907F906F905F903B -S11309804F903F902F900895FC0105906150704066 -S11309900110D8F7809590958E0F9F1F0895FC0144 -S11309A06150704001900110D8F7809590958E0F9A -S11309B09F1F08950F931F93CF93DF93FB01238110 -S11309C021FD03C08FEF9FEF2CC022FF16C046818C -S11309D05781248135814217530744F4A081B181A2 -S11309E09D012F5F3F4F318320838C932681378174 -S11309F02F5F3F4F3783268314C08B01EC01FB012B -S1130A000084F185E02D0995892BE1F6D80116962D -S1130A108D919C911797019617969C938E93169798 -S1130A20CE01DF91CF911F910F910895FA01AA276A -S1130A30283051F1203181F1E8946F936E7F6E5F1D -S1130A407F4F8F4F9F4FAF4FB1E03ED0B4E03CD0CB -S1130A50670F781F891F9A1FA11D680F791F8A1FAE -S1130A60911DA11D6A0F711D811D911DA11D20D015 -S1130A7009F468943F912AE0269F11243019305DCF -S1130A803193DEF6CF010895462F4770405D4193C0 -S1130A90B3E00FD0C9F7F6CF462F4F70405D4A330D -S1130AA018F0495D31FD4052419302D0A9F7EACFD5 -S1130AB0B4E0A6959795879577956795BA95C9F704 -S1130AC000976105710508959B01AC010A2E0694F7 -S1130AD05795479537952795BA95C9F7620F731FB0 -S10F0AE0841F951FA01D0895F894FFCFFB -S1130AEC01080C0406020301090901030206040CA3 -S1130AFC080125640025733A20252E3366202573BE -S1050B0C0000E3 +S11301C0DF91CF9108954F925F926F927F928F92B9 +S11301D09F92AF92BF92CF92DF92EF92FF920F93D2 +S11301E01F93CF93DF93CDB7DEB7D82EC92E942EAD +S11301F0852E762E672E522E432EADB6BEB63F9375 +S11302002F937F936F935F934F939F938F930F2EAF +S1130210F5E1EF2EF1E0FF2EF02DFF92EF921F9209 +S11302201F921F921F928DD201962DB73EB7225F67 +S11302303F4F0FB6F8943EBF0FBE2DBF281B390B9E +S11302400FB6F8943EBF0FBE2DBF0DB71EB70F5F9C +S11302501F4F4F925F926F927F928F929F92CF9295 +S1130260DF92FF92EF929F938F931F930F9369D224 +S1130270802F912F9CDF8DB79EB70E960FB6F89402 +S11302809EBF0FBE8DBF0FB6F894BEBE0FBEADBEEF +S1130290DF91CF911F910F91FF90EF90DF90CF905E +S11302A0BF90AF909F908F907F906F905F904F9092 +S11302B0089520910001222351F00197439738F4C7 +S11302C0D7D01092000161E080E092E0C4C00895AC +S11302D00AC108951F920F920FB60F9211240BB604 +S11302E00F922F933F934F935F936F937F938F93CB +S11302F09F93AF93BF93EF93FF9302D1FF91EF913D +S1130300BF91AF919F918F917F916F915F914F9129 +S11303103F912F910F900BBE0F900FBE0F901F9027 +S11303201895D2D026DFA6D088E691E02DD089E5B5 +S113033091E004D187EA91E60197F1F700C000004B +S11303400DDF60E088E592E086D008DFFCD0AB01E9 +S1130350BC0121E231E084E291E035DF84E690E003 +S1130360A4D0F3CF90913101911107C0E82FF0E0B0 +S1130370EF5FFE4F808183B90895E82FF0E0E75FD7 +S1130380FE4F808183B908959093330180933201A5 +S113039008951F920F920FB60F9211240BB60F926D +S11303A02F933F934F935F936F937F938F939F9379 +S11303B0AF93BF93EF93FF9314BC80912A01D2DFD4 +S11303C080912A01873020F48F5F80932A0130C006 +S11303D010922A0180912B0190912C01009799F49D +S11303E080913101811104C081E08093310102C008 +S11303F01092310180912D0190912E0190932C0146 +S113040080932B0115C09C012F713327232B39F4C2 +S1130410E0913201F0913301309709F00995809110 +S11304202B0190912C01019790932C0180932B0127 +S1130430FF91EF91BF91AF919F918F917F916F91B8 +S11304405F914F913F912F910F900BBE0F900FBE74 +S11304500F901F90189590932C0180932B019093EB +S11304602E0180932D01609331018CE085BD0895A8 +S113047015BC08958FEF82B98093640081E0809366 +S1130480650013B886E983BD80E887BF7894089532 +S113049020E030E006C043E04A95F1F700002F5F0A +S11304A03F4F28173907B8F3089520E030E008C01B +S11304B0E3ECF9E03197F1F700C000002F5F3F4F04 +S11304C028173907A8F308958FEF8093640011BAB1 +S11304D080E380936A0089B7846089BF1FBC8CE085 +S11304E08EBD78940895CF93DF93C5E6D0E018824B +S11304F08AE090E0CDDF81E08883DF91CF91089599 +S113050080911101813041F480E280936A001DBC26 +S11305101CBC10921101089580E380936A008CB58D +S11305209DB59093300180932F01E0913401F091B7 +S11305303501099581E08093110108959093350167 +S113054080933401089560912F017091300180E00F +S113055090E006D020E030E04AE253E43EC0089543 +S1130560E89409C097FB3EF4909580957095619549 +S11305707F4F8F4F9F4F9923A9F0F92F96E9BB27FF +S11305809395F695879577956795B795F111F8CF7B +S1130590FAF4BB0F11F460FF1BC06F5F7F4F8F4FE6 +S11305A09F4F16C0882311F096E911C0772321F0DC +S11305B09EE8872F762F05C0662371F096E8862F74 +S11305C070E060E02AF09A95660F771F881FDAF7CB +S11305D0880F9695879597F908950BD078C069D0C0 +S11305E028F06ED018F0952309F05AC05FC011248A +S11305F0A2C07ED0A0F3959FD1F3950F50E0551F74 +S1130600629FF001729FBB27F00DB11D639FAA2763 +S1130610F00DB11DAA1F649F6627B00DA11D661FB2 +S1130620829F2227B00DA11D621F739FB00DA11DD3 +S1130630621F839FA00D611D221F749F3327A00D8D +S1130640611D231F849F600D211D822F762F6A2F29 +S113065011249F5750408AF0E1F088234AF0EE0FAE +S1130660FF1FBB1F661F771F881F91505040A9F7BB +S11306709E3F510570F014C05EC05F3FECF3983E9E +S1130680DCF3869577956795B795F795E7959F5F22 +S1130690C1F7FE2B880F911D9695879597F90895BC +S11306A097F99F6780E870E060E008959FEF80EC21 +S11306B0089500240A9416161706180609060895C4 +S11306C000240A9412161306140605060895092E2A +S11306D00394000C11F4882352F0BB0F40F4BF2B99 +S11306E011F460FF04C06F5F7F4F8F4F9F4F0895D9 +S11306F057FD9058440F551F59F05F3F71F04795CF +S1130700880F97FB991F61F09F3F79F087950895B3 +S1130710121613061406551FF2CF4695F1DF08C0D2 +S1130720161617061806991FF1CF869571056105EF +S113073008940895E894BB2766277727CB0197F997 +S113074008950F931F93CF93DF93CDB7DEB72E9702 +S11307500FB6F894DEBF0FBECDBF0D891E898F89F9 +S1130760988D26E02C831A83098397FF02C080E0CA +S113077090E801979E838D83AE01455E5F4F698D3E +S11307807A8DCE01019619D04D815E8157FD0AC044 +S11307902F813885421753070CF49A01F801E20FB0 +S11307A0F31F10822E960FB6F894DEBF0FBECDBF96 +S11307B0DF91CF911F910F9108952F923F924F9205 +S11307C05F926F927F928F929F92AF92BF92CF92DD +S11307D0DF92EF92FF920F931F93CF93DF93CDB7E6 +S11307E0DEB72B970FB6F894DEBF0FBECDBF6C01FA +S11307F07B018A01FC0117821682838181FFBFC1BC +S1130800CE0101963C01F6019381F70193FD859198 +S113081093FF81917F01882309F4ADC1853239F4B6 +S113082093FD859193FF81917F01853221F4B60177 +S113083090E0D6D1E8CF912C212C312CFFE1F31597 +S1130840D8F08B3279F038F4803279F08332A1F425 +S1130850232D20611DC08D3261F0803369F4232D76 +S1130860216016C0832D8260382EE32DE4603E2E75 +S11308702AC0F32DF8601DC037FC2DC020ED280FD1 +S11308802A3040F08E32B9F436FC75C1232D206431 +S1130890322E19C036FE06C08AE0989E200D11241F +S11308A0922E11C0EAE02E9E200D1124222EF32D4B +S11308B0F0623F2E08C08C3621F4832D8068382ED8 +S11308C002C0883641F4F70193FD859193FF81912D +S11308D07F018111B3CF982F9F7D9554933028F4D5 +S11308E00C5F1F4F9FE399830DC0833631F083372C +S11308F071F0833509F055C020C0F80180818983E7 +S11309000E5F1F4F88248394912C530112C0280139 +S1130910F2E04F0E511CF801A080B18036FE03C0F6 +S1130920692D70E002C06FEF7FEFC5014ED14C011D +S11309308201F32DFF773F2E15C0280122E0420EDD +S1130940511CF801A080B18036FE03C0692D70E00F +S113095002C06FEF7FEFC5012DD14C01F32DF0687C +S11309603F2E820133FC19C0822D90E0881699062F +S1130970A0F4B60180E290E033D12A94F5CFF501DA +S113098037FC859137FE81915F01B60190E028D153 +S113099021102A9421E0821A91088114910479F794 +S11309A0E1C0843611F0893639F5F80137FE07C005 +S11309B060817181828193810C5F1F4F08C06081C7 +S11309C07181072E000C880B990B0E5F1F4FF32DBE +S11309D0FF763F2E97FF09C090958095709561959D +S11309E07F4F8F4F9F4FF0683F2E2AE030E0A301E6 +S11309F033D1882E861844C0853731F4232D2F7EB9 +S1130A00B22E2AE030E025C0932D997FB92E8F367F +S1130A10C1F018F4883579F0AEC0803719F0883702 +S1130A2021F0A9C0E92FE061BE2EB4FE0DC0FB2D5C +S1130A30F460BF2E09C034FE0AC0292F2660B22EEE +S1130A4006C028E030E005C020E130E002C020E12B +S1130A5032E0F801B7FE07C0608171818281938121 +S1130A600C5F1F4F06C06081718180E090E00E5FD3 +S1130A701F4FA301F1D0882E8618FB2DFF773F2E40 +S1130A8036FE0DC0232D2E7FA22E891458F434FE79 +S1130A900BC032FC09C0832D8E7EA82E05C0B82C55 +S1130AA0A32C03C0B82C01C0B92CA4FE0FC0FE01B6 +S1130AB0E80DF11D8081803321F49A2D997EA92EB1 +S1130AC009C0A2FE06C0B394B39404C08A2D8678EC +S1130AD009F0B394A3FC10C0A0FE06C0B21480F4C5 +S1130AE0280C922C9B180DC0B21458F4B60180E265 +S1130AF090E076D0B394F8CFB21418F42B1802C057 +S1130B00982C212CA4FE0FC0B60180E390E068D09D +S1130B10A2FE16C0A1FC03C088E790E002C088E5ED +S1130B2090E0B6010CC08A2D867851F0A1FE02C077 +S1130B308BE201C080E2A7FC8DE2B60190E050D0C8 +S1130B40891430F4B60180E390E04AD09A94F8CF47 +S1130B508A94F301E80DF11D8081B60190E040D044 +S1130B608110F6CF222009F44ECEB60180E290E047 +S1130B7037D02A94F7CFF6018681978102C08FEF90 +S1130B809FEF2B960FB6F894DEBF0FBECDBFDF915B +S1130B90CF911F910F91FF90EF90DF90CF90BF9076 +S1130BA0AF909F908F907F906F905F904F903F9009 +S1130BB02F900895FC010590615070400110D8F702 +S1130BC0809590958E0F9F1F0895FC016150704091 +S1130BD001900110D8F7809590958E0F9F1F08956E +S1130BE00F931F93CF93DF93FB01238121FD03C058 +S1130BF08FEF9FEF2CC022FF16C0468157812481BE +S1130C0035814217530744F4A081B1819D012F5FC0 +S1130C103F4F318320838C93268137812F5F3F4F51 +S1130C203783268314C08B01EC01FB010084F1851A +S1130C30E02D0995892BE1F6D80116968D919C91AA +S1130C401797019617969C938E931697CE01DF9172 +S1130C50CF911F910F910895FA01AA27283051F1DD +S1130C60203181F1E8946F936E7F6E5F7F4F8F4FD9 +S1130C709F4FAF4FB1E03ED0B4E03CD0670F781F38 +S1130C80891F9A1FA11D680F791F8A1F911DA11D1D +S1130C906A0F711D811D911DA11D20D009F4689456 +S1130CA03F912AE0269F11243019305D3193DEF6FE +S1130CB0CF010895462F4770405D4193B3E00FD0B4 +S1130CC0C9F7F6CF462F4F70405D4A3318F0495D9F +S1130CD031FD4052419302D0A9F7EACFB4E0A69582 +S1130CE09795879577956795BA95C9F700976105A4 +S1130CF0710508959B01AC010A2E069457954795FA +S1130D0037952795BA95C9F7620F731F841F951FEE +S10B0D10A01D0895F894FFCF23 +S1130D1801080C0406020301090901030206040C74 +S1130D28080125640025733A20252E33662025738F +S10D0D3800636D0064697374000029 S9030000FC diff --git a/Microcontrollers/Eindopdracht/Debug/main.o b/Microcontrollers/Eindopdracht/Debug/main.o index f4306f520a403bfb5d45143e76959c3350f80a1c..30590fd5caaf992a0f825202df25768ee3186458 100644 GIT binary patch delta 3130 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 delta 784 zcmYL{L1+^}6o%(bT$4z**-f&|Hq~U3ty$O zUAWyJ@_PLpTnjJ=8aNf4_41ppbNtkBLpmUGdr${h@~$>^L)@l*VHRTb^}fs?{=+bA zETV4iz=LKTbK$7|92hgH1e+Pl;Q8>jf%}}XtWwTWb+_WL6b~sLCQrBG4)PpVTqOO3 z;!)yrihoh;SA3EDR}>#39#VXV{K#11-&TgGFrf+o;#-OjV|yf~3sRmbrG$NvShksz z&q}#VQJ!2L=?gVoRV<&{NK@)1oQ`<#2z#SNxP&WF2Oi)SYbQLxyyd_$UbY;4jJ$GF z(!YRZE4EjD*EyxkQuT#oi$ogpO8-EyDmnUJ|EP4CEqi9u4|$`ST>{%H+bvuVkiL&R z$p~XMzK^d`;Z4f`=f4d+nm7UirxN{;!{%fc^x)}a7oRinVX}?7EF~T79bKM{x^Q3v zW`zqH=7p