From dad6238d50f58222031197fe49d67f4c89337f5f Mon Sep 17 00:00:00 2001 From: BlubbFish Date: Mon, 9 Feb 2015 17:10:07 +0000 Subject: [PATCH] Automatic Cronjob Checkin: 20150209-181004 --- Door.atsuo | Bin 16896 -> 16896 bytes Door/Debug/Door.elf | Bin 30612 -> 45145 bytes Door/Debug/Door.hex | 425 +++-- Door/Debug/Door.lss | 3695 ++++++++++++++++++++++++++++-------------- Door/Debug/Door.map | 327 +++- Door/Debug/Door.srec | 425 +++-- Door/Door.cpp | 77 +- Door/io/Led.hpp | 2 + Door/io/Stripe.hpp | 61 + 9 files changed, 3450 insertions(+), 1562 deletions(-) diff --git a/Door.atsuo b/Door.atsuo index 5fa081bde12f3c2b3b5fd04c835088d50e5dfc1e..8302ca44b79e3c0342bd5e97eae61d48ec5014ab 100644 GIT binary patch delta 641 zcmX|;O-LI-6vt3(dh} z3&rO}JhZnW2!@VFq1qmL@SqZDy+{jQdK8>ODTuyFG8tHS|KIz+nfKn7*J*j3R$ek1 zgd}r}3OVbzg;iEHy9gnE{NRn7fwIZOnsLl5a)+lyW8QLN(F`iqB*B8|Lt!<5kU`G} z-`Hc|?Vd$V!~@zZ6;bzvG~uCwnMTpt078aTbrh>31yfmL+A0w|K+&cFk9z7IA)_bE zqCJQ^bxOuPi@2x)4I+3~y(=MmJikQ@9nTB5G$cd1c>j{oOhG*jHWtBsZQE55{a*apRxe7nD6}*aT0_P}Z-N?BA#0 zj0RxJ&d}Fzk^Vs6!+3U4GqAIrY6s1u+ERl~Z`EuI&%$tNyHLs)XifUAzraXV#O9iQ zLUu8pRTb~BVjkjy&uz8y`iUP-U@#&|gEIkxrZBE=VYogs&*PL1(sq@>DTT}zec@j} z5`WJB@5PFxp}ag@&56aQIm^y|g{8{P(a+6P_0_-P_iY1*FTigW*_fQF{VG2Bmfiyg CU9fNf delta 622 zcmYL`&r2IY6vubstnMT+ao3V2{@TQ7O=?=Of;Ul&NI_xuAb3$RS6i?xqvX~cJXR4O z9)uS0(q6^Ue?X6d9z^WXA}Ag!gXl@$#GN?sn0cS~eZQE>GN~++oe4@BAwykrZS2=Y z0lv~xtJ^S)IyCs6%|XSYqHG>fljIZ{>MQ^cpTHsQ10L}$7vY;gD`dnAG4hCq>2x0R z;4n3~9xpP3B8=Apao1o*?dBo(TezW zO_%hZyQcyocuEh{rjcy*>KHN6ZP$6+^-R*FJk>zDII-F;jn!_tbvt4>gS$&&GsIm1?f1!pQT|wO}Bzwo~_d166 z2wF@m^iDP~qYK}vWc7>X2i(+BQB8P%byFexXF^RI?A7-5{m9f(Z}hJ8R@}F^+7ekhkuYK*3+oP diff --git a/Door/Debug/Door.elf b/Door/Debug/Door.elf index c4c3001f52c53107ae95de11e86f3c10ac582857..20d0e087f139c3ac79ace2c783d9b2a1c0d0f7c7 100644 GIT binary patch literal 45145 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�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 AdjJ3c diff --git a/Door/Debug/Door.hex b/Door/Debug/Door.hex index d48ced3..40c34bd 100644 --- a/Door/Debug/Door.hex +++ b/Door/Debug/Door.hex @@ -1,144 +1,291 @@ -:100000000C9435000C9449030C945D000C945D0035 +:100000000C9435000C9460060C945D000C945D001B :100010000C945D000C945D000C945D000C945D00EC :100020000C945D000C945D000C945D000C945D00DC -:100030000C945D000C945D000C945D000C945D00CC +:100030000C945D000C945F000C945D000C945D00CA :100040000C945D000C945D000C945D000C945D00BC :100050000C945D000C945D000C945D000C945D00AC -:100060000C945D000C945D00010411241FBECFEFC1 -:10007000D4E0DEBFCDBF11E0A0E0B1E0E6E7F8E0FC -:1000800002C005900D92AC36B107D9F721E0ACE67D -:10009000B1E001C01D92A237B207E1F710E0CAE655 -:1000A000D0E004C02297FE010E943504C836D10773 -:1000B000C9F70E94CB000C9439040C940000CF9334 -:1000C000DF93789481E88093C4001092C00088E0A8 -:1000D0008093C10086E08093C200A1E0B1E095E585 -:1000E000E0ECF0E0C6ECD0E0808185FFFDCF9883A6 -:1000F0009D919111F9CFE0ECF0E0808185FFFDCF7B -:100100008DE08093C600E0ECF0E0808185FFFDCFBC -:100110008AE08093C600DF91CF91089560FF04C00C -:100120008FEF8093B30002C01092B30061FF04C050 -:100130008FEF8093B40002C01092B40062FF03C03E -:100140008FEF88BD089518BC0895CF93DF93FB010E -:100150009081992369F0DB011196E0ECF0E0C6ECA8 -:10016000D0E0808185FFFDCF98839D919111F9CFDB -:10017000E0ECF0E0808185FFFDCF8DE08093C6004C -:10018000E0ECF0E0808185FFFDCF8AE08093C6003F -:10019000DF91CF910895789464E080E791E00E9428 -:1001A0008E006BE071E081E791E00E94A5002FE7EF -:1001B0003AE186E0215030408040E1F700C0000085 -:1001C00062E080E791E00E948E0060E171E081E7EB -:1001D00091E00E94A5009FE7AAE1B6E09150A040FF -:1001E000B040E1F700C0000061E080E791E00E94CC -:1001F0008E0066E171E081E791E00E94A5002FE7A3 -:100200003AE186E0215030408040E1F700C0000034 -:1002100067E080E791E00E948E006CE171E081E789 -:1002200091E00E94A5009FE7AAE1B6E09150A040AE -:10023000B040E1F700C00000299A60E080E791E05B -:100240000E948E00CDE6D1E066246A94762C0F2EB3 -:10025000F4EBEF2EF12CF02D6894222427F803EB19 -:1002600010E0E0ECF0E046EC50E00F2EFDE04F2E09 -:10027000F02D0F2EFAE05F2EF02D0F2EF0EC3F2E1A -:10028000F02D0F2EF0EB8F2E912CF02D888178829F -:100290008C3009F4CFC038F5853009F4A4C090F44F -:1002A000823009F484C038F4882309F446C08130D0 -:1002B00009F0F6C05FC0833009F487C0843009F0CC -:1002C000EFC08BC0883009F4A0C038F4863009F440 -:1002D00090C0873009F0E4C092C08A3009F4A3C00E -:1002E00008F075C199C0823109F4C2C090F48F3012 -:1002F00009F46DC138F48D3009F4A2C08E3009F0D4 -:10030000CFC0A4C0803109F4A7C0813109F0C8C0B2 -:10031000A9C0853109F4B8C038F4833109F457C154 -:10032000843109F0BDC0AAC0873109F450C108F476 -:10033000B1C08F3F09F0B4C04AC188B58B3F20F4EB -:1003400088B58B5F88BD01C018BCD7018C918B3FED -:1003500020F48C918B5F8C9302C0D7011C92D80142 -:100360008C918B3F20F48C918B5F8C9330C1D801A2 -:100370001C922DC188B5853020F088B5855088BD88 -:1003800001C018BCD7018C91853020F08C9185502C -:100390008C9302C0D7011C92D8018C91853020F03B -:1003A0008C9185508C9313C1D8011C9210C184B5D7 -:1003B0008F7D84BDD4018C918F758C935D98559AF7 -:1003C0005B98539A2B98239A02C184B5806284BDAE -:1003D000D4018C91806A8C93FAC0D8011C92D70109 -:1003E0001C9268BCF4C0D8011C92D7016C9218BC56 -:1003F000EEC0D8016C92D7011C9218BCE8C0D8019D -:100400006C92D7016C9268BCE2C068BC20E4D70152 -:100410002C93D8011C92DBC018BCD7016C9220E44D -:10042000D8012C93D4C030E438BDD7011C92D80138 -:100430006C92CDC068BCD7012C92D8011C92C7C069 -:1004400018BCD7016C92D8012C92C1C028BCD7012E -:100450001C92D8016C92BBC068BCD7013C92D801F9 -:100460001C92B5C018BCD7016C92D8013C92AFC0A9 -:1004700038BCD7011C92D8016C92A9C068BCD701C6 -:100480006C92D8011C92A3C018BCD7016C92D80101 -:100490006C929DC068BCD7011C92D8016C9297C029 -:1004A000C82ED12C808185FFFDCF80E3DA018C93AB -:1004B00060E070E0CB019695879596958795969527 -:1004C00087959C01220F331F880F991F880F991F52 -:1004D000880F991F820F931F681B790B605D8081C5 -:1004E00085FFFDCFDA016C939601369527953695F9 -:1004F0002795ABE7B4E10E94270496958795805D28 -:10050000908195FFFDCFDA018C939601ADECBCECA8 -:100510000E9427045C01B694A794B694A794B6945D -:10052000A79495010E94270496958795969587959F -:10053000969587959C01220F331F880F991F880F6E -:10054000991F880F991F820F931F9501281B390B44 -:10055000922F905D808185FFFDCFDA019C939601FB -:10056000ADECBCEC0E9427049695879596958795EF -:10057000969587959C01220F331F880F991F880F2E -:10058000991F880F991F820F931F9601281B390B03 -:10059000922F905D808185FFFDCFDA019C93A3E6C9 -:1005A000B1E090E29D01808185FFFDCFDA019C934F -:1005B000D9019D919D019111F6CF808185FFFDCFDD -:1005C000DA014C92808185FFFDCFDA015C9287E8E9 -:1005D00093E10197F1F700C0000029989FEDAAE090 -:1005E000B6E09150A040B040E1F700C00000299A69 -:1005F0004DCE559A539A239A81E084BD94E095BDDF -:1006000016BC1092B600E0EBF0E0808385E08093AA -:10061000B1001092B20010926E001092700084B57A -:10062000806284BD8081806A808318BC1092B4008F -:100630001092B300089520E030E080E061E070E0C7 -:100640004A9BFECFEFE9FFE03197F1F700C00000D1 -:100650004A9B08C0AB01022E02C0440F551F0A94EA -:10066000E2F7842B4A990FC008C04A9B06C0F5E800 -:10067000FA95F1F700009150C1F72F5F3F4F2830F6 -:100680003105F1F6089545E84A95F1F7000091E348 -:10069000ECCF1F920F920FB60F9211242F933F931E -:1006A0004F935F936F937F938F939F93AF93BF937A -:1006B000CF93EF93FF93289A4A9979C08FE19EE4F4 -:1006C0000197F1F700C000004A9971C04A9BFECF24 -:1006D0004A99FECF80E090E060E041E050E04A9B24 -:1006E000FECFEFE9FFE03197F1F700C000004A9B31 -:1006F00008C09A01082E02C0220F331F0A94E2F7A5 -:10070000622B4A9966C008C04A9B06C0F5E8FA9574 -:10071000F1F700002150C1F7019688309105F9F6F4 -:10072000611139C080E090E041E050E04A9BFECF8B -:10073000EFE9FFE03197F1F700C000004A9B08C0E5 -:100740009A01082E02C0220F331F0A94E2F7622B8F -:100750004A9939C008C04A9B06C0F5E8FA95F1F7F6 -:1007600000002150C1F7019688309105F9F66F3EDF -:1007700091F48CE691E00E941B03C82F8CE691E077 -:100780000E941B03282F30E02C0F311D2F3F310515 -:1007900011F4CF3F51F42FE734E88EE1215030407F -:1007A0008040E1F700C000000BC0CE3F39F4E7E81D -:1007B000F3E13197F1F700C0000002C0C0936D0172 -:1007C0002898E09A0CC0F5E8FA95F1F7000021E3CB -:1007D000C2CF25E82A95F1F7000021E395CFFF91DC -:1007E000EF91CF91BF91AF919F918F917F916F9139 -:1007F0005F914F913F912F910F900FBE0F901F90DF -:10080000189581E791E00E945F0080E791E00E94E7 -:10081000F902209A219A2898299856985E98579814 -:100820005F9810BE10927B0083E080937F00209A37 -:10083000219A2898299852985A988FEF80936D01A1 -:1008400082E08093690081E08DBB1CBA0895A29F6D -:10085000B001B39FC001A39F01D0B29F700D811D55 -:100860001124911D0895EE0FFF1F0590F491E02DC6 -:060870000994F894FFCF8B -:100876005561727420646F6E652100526F74210099 -:100886004772FC6E2100426C61752100576569DF75 -:100896002C20616C6C657320496E697469616C69A2 -:1008A60073657274212048616265204665727469B9 -:1008B6006720756E642064616D6974206162207AB8 -:1008C600756D204E6F726D616C62657472696562DA -:0C08D600210020507265737365642100DE +:100060000C945D000C945D00180711241FBECFEFA7 +:10007000D4E0DEBFCDBF11E0A0E0B1E0EAE8F1E1FD +:1000800002C005900D92A438B107D9F721E0A4E889 +:10009000B1E001C01D92AA3AB207E1F710E0CAE64A +:1000A000D0E004C02297FE010E94BF08C836D107E5 +:1000B000C9F70E94FF020C94C3080C9400001F9221 +:1000C0000F920FB60F9211248F929F92AF92BF9210 +:1000D000CF92DF92EF92FF922F933F934F935F93D4 +:1000E0006F937F938F939F93AF93BF93CF93DF9340 +:1000F000EF93FF93C0918801CC2309F4F9C1C0901C +:100100009D01D0909E01E0909F01F090A00120E021 +:1001100030E0A901C701B6010E94A30781116BC09D +:1001200020E030E0A9016091A1017091A2018091CD +:10013000A3019091A4010E94A30781115CC020E05B +:1001400030E0A9016091A5017091A6018091A701FD +:100150009091A8010E94A30781114DC0D0E028B55D +:10016000C957DE4FE888F12C898190E0821B910904 +:100170006E2D7F2D0E948908882777FD8095982F06 +:100180000E94D50760939D0170939E0180939F010B +:100190009093A0012091B4008E8190E0821B910980 +:1001A0006E2D7F2D0E948908882777FD8095982FD6 +:1001B0000E94D5076093A1017093A2018093A301CF +:1001C0009093A4012091B3008B8590E0821B91094C +:1001D0006E2D7F2D0E948908882777FD8095982FA6 +:1001E0000E94D5076093A5017093A6018093A70193 +:1001F0009093A8017DC120E030E0A901C701B601BC +:100200000E94850818160CF568B570E080E090E053 +:100210000E94D5079B01AC01C701B6010E943F07B0 +:100220004B015C01EC2FF0E0E857FE4F608170E07D +:1002300080E090E00E94D5079B01AC01C501B401AC +:100240000E94A30718160CF0FEC020E030E0A901C0 +:10025000C701B6010E94A30788230CF0E6C068B569 +:1002600070E080E090E00E94D5079B01AC01C701DF +:10027000B6010E943F074B015C01EC2FF0E0E8570C +:10028000FE4F608170E080E090E00E94D5079B0106 +:10029000AC01C501B4010E94850888230CF0D3C0CD +:1002A000C4C0C090A101D090A201E090A301F09041 +:1002B000A40120E030E0A901C701B6010E94850831 +:1002C00018161CF56091B40070E080E090E00E9488 +:1002D000D5079B01AC01C701B6010E943F074B0146 +:1002E0005C01E0918801F0E0E857FE4F658170E025 +:1002F00080E090E00E94D5079B01AC01C501B401EC +:100300000E94A30718160CF0AEC020E030E0A9014F +:10031000C701B6010E94A30788230CF0B6C0609104 +:10032000B40070E080E090E00E94D5079B01AC0132 +:10033000C701B6010E943F074B015C01E0918801B3 +:10034000F0E0E857FE4F658170E080E090E00E94A9 +:10035000D5079B01AC01C501B4010E948508882323 +:100360000CF081C092C0C090A501D090A601E09091 +:10037000A701F090A80120E030E0A901C701B60173 +:100380000E94850818161CF56091B30070E080E0AB +:1003900090E00E94D5079B01AC01C701B6010E9405 +:1003A0003F074B015C01E0918801F0E0E857FE4F08 +:1003B000628570E080E090E00E94D5079B01AC016F +:1003C000C501B4010E94A30718160CF06FC020E00D +:1003D00030E0A901C701B6010E94A30788230CF0F1 +:1003E00077C06091B30070E080E090E00E94D50794 +:1003F0009B01AC01C701B6010E943F074B015C01A4 +:10040000E0918801F0E0E857FE4F628570E080E0FF +:1004100090E00E94D5079B01AC01C501B4010E9488 +:10042000850888230CF042C053C0D0E0C857DE4F87 +:10043000888188BD10929D0110929E0110929F01AB +:100440001092A0012ECF68B570E080E090E00E948D +:10045000D5079B01AC01C701B6010E943F070E946E +:10046000A70768BD1ECFC4EBD0E0688170E080E0D4 +:1004700090E00E94D5079B01AC01C701B6010E9424 +:100480003F070E94A70768836ECFE0918801F0E0E4 +:10049000E857FE4F85818093B4001092A10110921D +:1004A000A2011092A3011092A4015DCFC3EBD0E092 +:1004B000688170E080E090E00E94D5079B01AC016C +:1004C000C701B6010E943F070E94A707688310C0BA +:1004D000E0918801F0E0E857FE4F82858093B300F9 +:1004E0001092A5011092A6011092A7011092A801E6 +:1004F000FF91EF91DF91CF91BF91AF919F918F913C +:100500007F916F915F914F913F912F91FF90EF906D +:10051000DF90CF90BF90AF909F908F900F900FBEC5 +:100520000F901F901895CF93DF93789481E8809374 +:10053000C4001092C00088E08093C10086E08093E0 +:10054000C200A1E0B1E095E5E0ECF0E0C6ECD0E05F +:10055000808185FFFDCF98839D919111F9CFE0ECCB +:10056000F0E0808185FFFDCF8DE08093C600E0EC58 +:10057000F0E0808185FFFDCF8AE08093C600DF91A7 +:10058000CF91089560FF04C08FEF8093B30002C045 +:100590001092B30061FF04C08FEF8093B40002C0DB +:1005A0001092B40062FF03C08FEF88BD089518BC9D +:1005B0000895CF93DF93FB019081992369F0DB01CC +:1005C0001196E0ECF0E0C6ECD0E0808185FFFDCF35 +:1005D00098839D919111F9CFE0ECF0E0808185FF47 +:1005E000FDCF8DE08093C600E0ECF0E0808185FFD8 +:1005F000FDCF8AE08093C600DF91CF910895CF931D +:10060000DF9300D000D0CDB7DEB7789464E088E8FF +:1006100091E00E94C2026BE071E089EA91E00E94E1 +:10062000D9022FE73AE186E0215030408040E1F7DF +:1006300000C0000062E088E891E00E94C20260E130 +:1006400071E089EA91E00E94D9029FE7AAE1B6E051 +:100650009150A040B040E1F700C0000061E088E8A0 +:1006600091E00E94C20266E171E089EA91E00E9495 +:10067000D9022FE73AE186E0215030408040E1F78F +:1006800000C0000067E088E891E00E94C2026CE1CF +:1006900071E089EA91E00E94D9029FE7AAE1B6E001 +:1006A0009150A040B040E1F700C00000299A60E0FE +:1006B00088E891E00E94C202212C45E851E0BB2469 +:1006C000BA94AB2C0F2EF9E8EF2EF1E0FF2EF02DAF +:1006D0000EE811E00F2EF3E98F2EF1E09F2EF02DA2 +:1006E0000F2EF8E96F2EF1E07F2EF02D0F2EFAE09D +:1006F0003F2EF02D0F2EF8E84F2EF1E05F2EF02D5B +:10070000CC24C394E0ECF0E00F2EFDE0DF2EF02DC2 +:10071000DA018C91AC928C3009F4FCC038F585304C +:1007200009F4B3C090F4823009F48CC038F4882303 +:1007300009F446C0813009F056C163C0833009F422 +:1007400090C0843009F04FC195C0883009F4BEC014 +:1007500038F4863009F4A4C0873009F044C1ABC036 +:100760008A3009F4CBC008F0E5C1BCC0823109F47D +:100770000DC190F48F3009F4DDC138F48D3009F4E7 +:10078000D5C08E3009F02FC1DDC0803109F4E6C03C +:10079000813109F028C1EEC0853109F40EC138F469 +:1007A000833109F4C7C1843109F01DC1FBC0873111 +:1007B00009F4C0C108F40CC18F3F09F014C1BAC1DB +:1007C00088B58B3F20F488B58B5F88BD01C018BC0D +:1007D000A4EBB0E08C918B3F20F48C918B5F8C93D9 +:1007E00003C0A4EBB0E01C92A3EBB0E08C918B3F74 +:1007F00020F48C918B5F8C939DC1A3EBB0E01C9295 +:1008000099C188B5853020F088B5855088BD01C074 +:1008100018BCA4EBB0E08C91853020F08C91855011 +:100820008C9303C0A4EBB0E01C92A3EBB0E08C91DE +:10083000853020F08C9185508C937CC1A3EBB0E087 +:100840001C9278C184B58F7D84BDA0EBB0E08C9103 +:100850008F758C935D98559A5B98539A2B98239A31 +:1008600069C184B5806284BDA0EBB0E08C91806AE0 +:100870008C9360C1D701BC92D8011C92D4011C9208 +:10088000D3013C92D201CC9255C1D7011C92D80120 +:10089000BC92D4011C92D3013C92D201CC924AC1A9 +:1008A000D7011C92D8011C92D401BC92D3013C9276 +:1008B000D201CC923FC1D701BC92D801BC92D401E5 +:1008C000BC92D3013C92D201CC9234C1D701BC92EC +:1008D00020E4D8012C93D4011C92D3013C92D20184 +:1008E000CC9228C1D7011C92D801BC9220E4D4013B +:1008F0002C93D3013C92D201CC921CC120E4D701AD +:100900002C93D8011C92D401BC92D3013C92D20109 +:10091000CC9210C1D701BC9220E8D8012C93D4010D +:100920001C92D3013C92D201CC9204C1D7011C92FB +:10093000D801BC9220E8D4012C93D3013C92D2017F +:10094000CC92F8C020E8D7012C93D8011C92D40196 +:10095000BC92D3013C92D201CC92ECC0D701BC92A4 +:1009600020ECD8012C93D4011C92D3013C92D201EB +:10097000CC92E0C0D7011C92D801BC9220ECD401EB +:100980002C93D3013C92D201CC92D4C020ECD7015D +:100990002C93D8011C92D401BC92D3013C92D20179 +:1009A000CC92C8C0D701BC92D801BC92D4011C9291 +:1009B000D3013C92D201CC92BDC0D7011C92D80188 +:1009C000BC92D401BC92D3013C92D201CC92B2C071 +:1009D000D701BC92D8011C92D401BC92D3013C92A5 +:1009E000D201CC92A7C0282F30E03A83298380819E +:1009F00085FFFDCF80E3A6ECB0E08C9360E070E073 +:100A0000CB019695879596958795969587959C01A8 +:100A1000220F331F880F991F880F991F880F991F66 +:100A2000820F931F681B790B605D808185FFFDCF6E +:100A3000A6ECB0E06C9329813A81369527953695DE +:100A40002795ABE7B4E10E949D0896958795805D58 +:100A5000908195FFFDCFA6ECB0E08C9329813A817F +:100A6000ADECBCEC0E949D08969587959695879570 +:100A7000969587959C838B839C010E949D089695F3 +:100A8000879596958795969587959C01220F331F9C +:100A9000880F991F880F991F880F991F820F931F26 +:100AA0002B813C81281B390BC901805D908195FF0A +:100AB000FDCFA6ECB0E08C9329813A81ADECBCEC83 +:100AC0000E949D089695879596958795969587950A +:100AD0009C01220F331F880F991F880F991F880FC1 +:100AE000991F820F931F29813A81281B390BC90155 +:100AF000805D908195FFFDCFA6ECB0E08C93A3E6DE +:100B0000B1E090E29D01808185FFFDCFA6ECB0E0D1 +:100B10009C93D9019D919D019111F5CF808185FF15 +:100B2000FDCFA6ECB0E0DC92808185FFFDCFA6EC86 +:100B3000B0E03C9200B605FE2AC0211052C0D70199 +:100B4000BC92D8011C92D4011C9224E6D3012C93B0 +:100B5000D201CC92ADE6B1E094E59D01808185FFA4 +:100B6000FDCFA6ECB0E09C93D9019D919D01911120 +:100B7000F5CF808185FFFDCFA6ECB0E0DC928081CF +:100B800085FFFDCFA6ECB0E03C922C2C2AC0B1E052 +:100B90002B1227C0A7E7B1E094E59D01808185FF76 +:100BA000FDCFA6ECB0E09C93D9019D919D019111E0 +:100BB000F5CF808185FFFDCFA6ECB0E0DC9280818F +:100BC00085FFFDCFA6ECB0E03C92D7011C92D80186 +:100BD000BC92D4011C9222E3D3012C93D201CC927B +:100BE000212C87E893E10197F1F700C000002998D4 +:100BF0009FEDAAE0B6E09150A040B040E1F700C000 +:100C00000000299A85CD559A539A239AFC011082A7 +:100C100081E084BD94E095BD16BC1092800092E006 +:100C20009093810010928500109284001092B6007B +:100C3000E0EBF0E0808395E09093B1001092B20079 +:100C400010926E0080936F001092700084B58062E5 +:100C500084BD8081806A808318BC1092B400109299 +:100C6000B300089520E030E080E061E070E04A9B4E +:100C7000FECFEFE9FFE03197F1F700C000004A9B9B +:100C800008C0AB01022E02C0440F551F0A94E2F7C0 +:100C9000842B4A990FC008C04A9B06C0F5E8FA9514 +:100CA000F1F700009150C1F72F5F3F4F2830310519 +:100CB000F1F6089545E84A95F1F7000091E3ECCF8D +:100CC0001F920F920FB60F9211242F933F934F93C1 +:100CD0005F936F937F938F939F93AF93BF93CF93C4 +:100CE000EF93FF93289A4A9979C08FE19EE4019788 +:100CF000F1F700C000004A9971C04A9BFECF4A99A3 +:100D0000FECF80E090E060E041E050E04A9BFECF03 +:100D1000EFE9FFE03197F1F700C000004A9B08C0FF +:100D20009A01082E02C0220F331F0A94E2F7622BA9 +:100D30004A9966C008C04A9B06C0F5E8FA95F1F7E3 +:100D400000002150C1F7019688309105F9F6611134 +:100D500039C080E090E041E050E04A9BFECFEFE9EF +:100D6000FFE03197F1F700C000004A9B08C09A01EC +:100D7000082E02C0220F331F0A94E2F7622B4A9911 +:100D800039C008C04A9B06C0F5E8FA95F1F70000A3 +:100D90002150C1F7019688309105F9F66F3E91F424 +:100DA00084E891E00E943206C82F84E891E00E9416 +:100DB0003206282F30E02C0F311D2F3F310511F462 +:100DC000CF3F51F42FE734E88EE12150304080408E +:100DD000E1F700C000000BC0CE3F39F4E7E8F3E1D3 +:100DE0003197F1F700C0000002C0C0938501289838 +:100DF000E09A0CC0F5E8FA95F1F7000021E3C2CFC4 +:100E000025E82A95F1F7000021E395CFFF91EF91B6 +:100E1000CF91BF91AF919F918F917F916F915F9192 +:100E20004F913F912F910F900FBE0F901F901895EB +:100E300089EA91E00E94930288E891E00E9403060B +:100E4000209A219A2898299856985E9857985F98E2 +:100E500010BE10927B0083E080937F00209A219A3D +:100E60002898299852985A988FEF8093850182E0AC +:100E70008093690081E08DBB1CBA08955058BB2750 +:100E8000AA270ED008C1F9D030F0FED020F031F4FE +:100E90009F3F11F41EF4EEC00EF4E095E7FBE4C0B2 +:100EA000E92F0AD180F3BA17620773078407950701 +:100EB00018F071F49EF522C10EF4E0950B2EBA2FB6 +:100EC000A02D0B01B90190010C01CA01A001112450 +:100ED000FF27591B99F0593F50F4503E68F11A16FC +:100EE000F040A22F232F342F4427585FF3CF46958D +:100EF00037952795A795F0405395C9F77EF41F16AF +:100F0000BA0B620B730B840BBAF09150A1F0FF0F78 +:100F1000BB1F661F771F881FC2F70EC0BA0F621F64 +:100F2000731F841F48F4879577956795B795F79554 +:100F30009E3F08F0B3CF9395880F08F09927EE0FE6 +:100F40009795879508956CD008F481E00895BCD0FA +:100F500088F09F5790F0B92F9927B751A0F0D1F0A2 +:100F6000660F771F881F991F1AF0BA95C9F712C02C +:100F7000B13081F0C3D0B1E00895C0C0672F782FA1 +:100F80008827B85F39F0B93FCCF386957795679598 +:100F9000B395D9F73EF490958095709561957F4F04 +:100FA0008F4F9F4F0895E89409C097FB3EF49095AA +:100FB0008095709561957F4F8F4F9F4F9923A9F032 +:100FC000F92F96E9BB279395F695879577956795C1 +:100FD000B795F111F8CFFAF4BB0F11F460FF1BC005 +:100FE0006F5F7F4F8F4F9F4F16C0882311F096E998 +:100FF00011C0772321F09EE8872F762F05C0662346 +:1010000071F096E8862F70E060E02AF09A95660FFE +:10101000771F881FDAF7880F9695879597F90895B7 +:10102000990F0008550FAA0BE0E8FEEF16161706F9 +:10103000E807F907C0F012161306E407F50798F061 +:10104000621B730B840B950B39F40A2661F0232B7A +:10105000242B252B21F408950A2609F4A140A695F6 +:101060008FEF811D811D089597F99F6780E870E0DB +:1010700060E008959FEF80EC089500240A9416160E +:10108000170618060906089500240A941216130676 +:10109000140605060895092E0394000C11F4882304 +:1010A00052F0BB0F40F4BF2B11F460FF04C06F5F20 +:1010B0007F4F8F4F9F4F089557FD9058440F551FF6 +:1010C00059F05F3F71F04795880F97FB991F61F0CA +:1010D0009F3F79F087950895121613061406551F41 +:1010E000F2CF4695F1DF08C0161617061806991FAD +:1010F000F1CF86957105610508940895E894BB27A2 +:1011000066277727CB0197F908958ADF08F48FEFD8 +:10111000089597FB072E16F4009407D077FD09D0A9 +:101120000E94A90807FC05D03EF4909581959F4F39 +:101130000895709561957F4F0895A29FB001B39F68 +:10114000C001A39F01D0B29F700D811D1124911D7C +:101150000895AA1BBB1B51E107C0AA1FBB1FA617FE +:10116000B70710F0A61BB70B881F991F5A95A9F750 +:1011700080959095BC01CD010895EE0FFF1F05905D +:0A118000F491E02D0994F894FFCFDC +:10118A005561727420646F6E652100526F7421007C +:10119A004772FC6E2100426C61752100576569DF58 +:1011AA002C20616C6C657320496E697469616C6985 +:1011BA00736572742120486162652046657274699C +:1011CA006720756E642064616D6974206162207A9B +:1011DA00756D204E6F726D616C62657472696562BD +:1011EA0021002050726573736564210054FC7220DB +:1011FA005A752E2E2E0054FC72204F6666656E2E8E +:04120A002E2E000084 :00000001FF diff --git a/Door/Debug/Door.lss b/Door/Debug/Door.lss index de80dbe..1468b5e 100644 --- a/Door/Debug/Door.lss +++ b/Door/Debug/Door.lss @@ -3,1929 +3,3280 @@ Door.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .data 0000006c 00800100 00000876 0000090a 2**0 + 0 .data 00000084 00800100 0000118a 0000121e 2**0 CONTENTS, ALLOC, LOAD, DATA - 1 .text 00000876 00000000 00000000 00000094 2**1 + 1 .text 0000118a 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .bss 00000006 0080016c 0080016c 00000976 2**0 + 2 .bss 00000026 00800184 00800184 000012a2 2**0 ALLOC - 3 .stab 000006cc 00000000 00000000 00000978 2**2 + 3 .stab 00001968 00000000 00000000 000012a4 2**2 CONTENTS, READONLY, DEBUGGING - 4 .stabstr 00000082 00000000 00000000 00001044 2**0 + 4 .stabstr 000005b5 00000000 00000000 00002c0c 2**0 CONTENTS, READONLY, DEBUGGING - 5 .comment 0000002f 00000000 00000000 000010c6 2**0 + 5 .comment 0000002f 00000000 00000000 000031c1 2**0 CONTENTS, READONLY - 6 .debug_aranges 00000058 00000000 00000000 000010f5 2**0 + 6 .debug_aranges 00000060 00000000 00000000 000031f0 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_info 00002bd2 00000000 00000000 0000114d 2**0 + 7 .debug_info 00003546 00000000 00000000 00003250 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_abbrev 00000464 00000000 00000000 00003d1f 2**0 + 8 .debug_abbrev 000004bb 00000000 00000000 00006796 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_line 00000511 00000000 00000000 00004183 2**0 + 9 .debug_line 000005d5 00000000 00000000 00006c51 2**0 CONTENTS, READONLY, DEBUGGING - 10 .debug_frame 000000f8 00000000 00000000 00004694 2**2 + 10 .debug_frame 00000190 00000000 00000000 00007228 2**2 CONTENTS, READONLY, DEBUGGING - 11 .debug_str 00001247 00000000 00000000 0000478c 2**0 + 11 .debug_str 000013b1 00000000 00000000 000073b8 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_loc 00000ccb 00000000 00000000 000059d3 2**0 + 12 .debug_loc 000014d0 00000000 00000000 00008769 2**0 CONTENTS, READONLY, DEBUGGING - 13 .debug_ranges 00000330 00000000 00000000 0000669e 2**0 + 13 .debug_ranges 000002d8 00000000 00000000 00009c39 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 <__vectors>: - 0: 0c 94 35 00 jmp 0x6a ; 0x6a <__ctors_end> - 4: 0c 94 49 03 jmp 0x692 ; 0x692 <__vector_1> - 8: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 10: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 14: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 18: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 1c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 20: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 24: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 28: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 2c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 30: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 34: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 38: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 3c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 40: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 44: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 48: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 4c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 50: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 54: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 58: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 5c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 60: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> - 64: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 0: 0c 94 35 00 jmp 0x6a ; 0x6a <__ctors_end> + 4: 0c 94 60 06 jmp 0xcc0 ; 0xcc0 <__vector_1> + 8: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 10: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 14: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 18: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 1c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 20: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 24: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 28: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 2c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 30: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 34: 0c 94 5f 00 jmp 0xbe ; 0xbe <__vector_13> + 38: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 3c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 40: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 44: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 48: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 4c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 50: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 54: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 58: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 5c: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 60: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> + 64: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 00000068 <__ctors_start>: - 68: 01 04 cpc r0, r1 + 68: 18 07 cpc r17, r24 0000006a <__ctors_end>: - 6a: 11 24 eor r1, r1 - 6c: 1f be out 0x3f, r1 ; 63 - 6e: cf ef ldi r28, 0xFF ; 255 - 70: d4 e0 ldi r29, 0x04 ; 4 - 72: de bf out 0x3e, r29 ; 62 - 74: cd bf out 0x3d, r28 ; 61 + 6a: 11 24 eor r1, r1 + 6c: 1f be out 0x3f, r1 ; 63 + 6e: cf ef ldi r28, 0xFF ; 255 + 70: d4 e0 ldi r29, 0x04 ; 4 + 72: de bf out 0x3e, r29 ; 62 + 74: cd bf out 0x3d, r28 ; 61 00000076 <__do_copy_data>: - 76: 11 e0 ldi r17, 0x01 ; 1 - 78: a0 e0 ldi r26, 0x00 ; 0 - 7a: b1 e0 ldi r27, 0x01 ; 1 - 7c: e6 e7 ldi r30, 0x76 ; 118 - 7e: f8 e0 ldi r31, 0x08 ; 8 - 80: 02 c0 rjmp .+4 ; 0x86 <__do_copy_data+0x10> - 82: 05 90 lpm r0, Z+ - 84: 0d 92 st X+, r0 - 86: ac 36 cpi r26, 0x6C ; 108 - 88: b1 07 cpc r27, r17 - 8a: d9 f7 brne .-10 ; 0x82 <__do_copy_data+0xc> + 76: 11 e0 ldi r17, 0x01 ; 1 + 78: a0 e0 ldi r26, 0x00 ; 0 + 7a: b1 e0 ldi r27, 0x01 ; 1 + 7c: ea e8 ldi r30, 0x8A ; 138 + 7e: f1 e1 ldi r31, 0x11 ; 17 + 80: 02 c0 rjmp .+4 ; 0x86 <__do_copy_data+0x10> + 82: 05 90 lpm r0, Z+ + 84: 0d 92 st X+, r0 + 86: a4 38 cpi r26, 0x84 ; 132 + 88: b1 07 cpc r27, r17 + 8a: d9 f7 brne .-10 ; 0x82 <__do_copy_data+0xc> 0000008c <__do_clear_bss>: - 8c: 21 e0 ldi r18, 0x01 ; 1 - 8e: ac e6 ldi r26, 0x6C ; 108 - 90: b1 e0 ldi r27, 0x01 ; 1 - 92: 01 c0 rjmp .+2 ; 0x96 <.do_clear_bss_start> + 8c: 21 e0 ldi r18, 0x01 ; 1 + 8e: a4 e8 ldi r26, 0x84 ; 132 + 90: b1 e0 ldi r27, 0x01 ; 1 + 92: 01 c0 rjmp .+2 ; 0x96 <.do_clear_bss_start> 00000094 <.do_clear_bss_loop>: - 94: 1d 92 st X+, r1 + 94: 1d 92 st X+, r1 00000096 <.do_clear_bss_start>: - 96: a2 37 cpi r26, 0x72 ; 114 - 98: b2 07 cpc r27, r18 - 9a: e1 f7 brne .-8 ; 0x94 <.do_clear_bss_loop> + 96: aa 3a cpi r26, 0xAA ; 170 + 98: b2 07 cpc r27, r18 + 9a: e1 f7 brne .-8 ; 0x94 <.do_clear_bss_loop> 0000009c <__do_global_ctors>: - 9c: 10 e0 ldi r17, 0x00 ; 0 - 9e: ca e6 ldi r28, 0x6A ; 106 - a0: d0 e0 ldi r29, 0x00 ; 0 - a2: 04 c0 rjmp .+8 ; 0xac <__do_global_ctors+0x10> - a4: 22 97 sbiw r28, 0x02 ; 2 - a6: fe 01 movw r30, r28 - a8: 0e 94 35 04 call 0x86a ; 0x86a <__tablejump__> - ac: c8 36 cpi r28, 0x68 ; 104 - ae: d1 07 cpc r29, r17 - b0: c9 f7 brne .-14 ; 0xa4 <__do_global_ctors+0x8> - b2: 0e 94 cb 00 call 0x196 ; 0x196
- b6: 0c 94 39 04 jmp 0x872 ; 0x872 <_exit> + 9c: 10 e0 ldi r17, 0x00 ; 0 + 9e: ca e6 ldi r28, 0x6A ; 106 + a0: d0 e0 ldi r29, 0x00 ; 0 + a2: 04 c0 rjmp .+8 ; 0xac <__do_global_ctors+0x10> + a4: 22 97 sbiw r28, 0x02 ; 2 + a6: fe 01 movw r30, r28 + a8: 0e 94 bf 08 call 0x117e ; 0x117e <__tablejump__> + ac: c8 36 cpi r28, 0x68 ; 104 + ae: d1 07 cpc r29, r17 + b0: c9 f7 brne .-14 ; 0xa4 <__do_global_ctors+0x8> + b2: 0e 94 ff 02 call 0x5fe ; 0x5fe
+ b6: 0c 94 c3 08 jmp 0x1186 ; 0x1186 <_exit> 000000ba <__bad_interrupt>: - ba: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> + ba: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> -000000be <_ZN4UartILm9600EEC1Ev>: +000000be <__vector_13>: + +ISR(INT0_vect) { + ir.interrupt(); +} + +ISR(TIMER1_OVF_vect) { + be: 1f 92 push r1 + c0: 0f 92 push r0 + c2: 0f b6 in r0, 0x3f ; 63 + c4: 0f 92 push r0 + c6: 11 24 eor r1, r1 + c8: 8f 92 push r8 + ca: 9f 92 push r9 + cc: af 92 push r10 + ce: bf 92 push r11 + d0: cf 92 push r12 + d2: df 92 push r13 + d4: ef 92 push r14 + d6: ff 92 push r15 + d8: 2f 93 push r18 + da: 3f 93 push r19 + dc: 4f 93 push r20 + de: 5f 93 push r21 + e0: 6f 93 push r22 + e2: 7f 93 push r23 + e4: 8f 93 push r24 + e6: 9f 93 push r25 + e8: af 93 push r26 + ea: bf 93 push r27 + ec: cf 93 push r28 + ee: df 93 push r29 + f0: ef 93 push r30 + f2: ff 93 push r31 + this->fademap[1][index] = green; + this->fademap[2][index] = blue; + this->fademap[3][index] = time; + } + void interrupt() { + if(this->fade_zylk > 0) { + f4: c0 91 88 01 lds r28, 0x0188 + f8: cc 23 and r28, r28 + fa: 09 f4 brne .+2 ; 0xfe <__vector_13+0x40> + fc: f9 c1 rjmp .+1010 ; 0x4f0 <__vector_13+0x432> + if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { + fe: c0 90 9d 01 lds r12, 0x019D + 102: d0 90 9e 01 lds r13, 0x019E + 106: e0 90 9f 01 lds r14, 0x019F + 10a: f0 90 a0 01 lds r15, 0x01A0 + 10e: 20 e0 ldi r18, 0x00 ; 0 + 110: 30 e0 ldi r19, 0x00 ; 0 + 112: a9 01 movw r20, r18 + 114: c7 01 movw r24, r14 + 116: b6 01 movw r22, r12 + 118: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> + 11c: 81 11 cpse r24, r1 + 11e: 6b c0 rjmp .+214 ; 0x1f6 <__vector_13+0x138> + 120: 20 e0 ldi r18, 0x00 ; 0 + 122: 30 e0 ldi r19, 0x00 ; 0 + 124: a9 01 movw r20, r18 + 126: 60 91 a1 01 lds r22, 0x01A1 + 12a: 70 91 a2 01 lds r23, 0x01A2 + 12e: 80 91 a3 01 lds r24, 0x01A3 + 132: 90 91 a4 01 lds r25, 0x01A4 + 136: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> + 13a: 81 11 cpse r24, r1 + 13c: 5c c0 rjmp .+184 ; 0x1f6 <__vector_13+0x138> + 13e: 20 e0 ldi r18, 0x00 ; 0 + 140: 30 e0 ldi r19, 0x00 ; 0 + 142: a9 01 movw r20, r18 + 144: 60 91 a5 01 lds r22, 0x01A5 + 148: 70 91 a6 01 lds r23, 0x01A6 + 14c: 80 91 a7 01 lds r24, 0x01A7 + 150: 90 91 a8 01 lds r25, 0x01A8 + 154: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> + 158: 81 11 cpse r24, r1 + 15a: 4d c0 rjmp .+154 ; 0x1f6 <__vector_13+0x138> + this->fadesteps[0] = (this->fademap[0][this->fade_zylk-1]-OCR0B)/this->fademap[3][this->fade_zylk-1]; //Calc Red; + 15c: d0 e0 ldi r29, 0x00 ; 0 + 15e: 28 b5 in r18, 0x28 ; 40 + 160: c9 57 subi r28, 0x79 ; 121 + 162: de 4f sbci r29, 0xFE ; 254 + 164: e8 88 ldd r14, Y+16 ; 0x10 + 166: f1 2c mov r15, r1 + 168: 89 81 ldd r24, Y+1 ; 0x01 + 16a: 90 e0 ldi r25, 0x00 ; 0 + 16c: 82 1b sub r24, r18 + 16e: 91 09 sbc r25, r1 + 170: 6e 2d mov r22, r14 + 172: 7f 2d mov r23, r15 + 174: 0e 94 89 08 call 0x1112 ; 0x1112 <__divmodhi4> + 178: 88 27 eor r24, r24 + 17a: 77 fd sbrc r23, 7 + 17c: 80 95 com r24 + 17e: 98 2f mov r25, r24 + 180: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 184: 60 93 9d 01 sts 0x019D, r22 + 188: 70 93 9e 01 sts 0x019E, r23 + 18c: 80 93 9f 01 sts 0x019F, r24 + 190: 90 93 a0 01 sts 0x01A0, r25 + this->fadesteps[1] = (this->fademap[1][this->fade_zylk-1]-OCR2B)/this->fademap[3][this->fade_zylk-1]; //Calc Green; + 194: 20 91 b4 00 lds r18, 0x00B4 + 198: 8e 81 ldd r24, Y+6 ; 0x06 + 19a: 90 e0 ldi r25, 0x00 ; 0 + 19c: 82 1b sub r24, r18 + 19e: 91 09 sbc r25, r1 + 1a0: 6e 2d mov r22, r14 + 1a2: 7f 2d mov r23, r15 + 1a4: 0e 94 89 08 call 0x1112 ; 0x1112 <__divmodhi4> + 1a8: 88 27 eor r24, r24 + 1aa: 77 fd sbrc r23, 7 + 1ac: 80 95 com r24 + 1ae: 98 2f mov r25, r24 + 1b0: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 1b4: 60 93 a1 01 sts 0x01A1, r22 + 1b8: 70 93 a2 01 sts 0x01A2, r23 + 1bc: 80 93 a3 01 sts 0x01A3, r24 + 1c0: 90 93 a4 01 sts 0x01A4, r25 + this->fadesteps[2] = (this->fademap[2][this->fade_zylk-1]-OCR2A)/this->fademap[3][this->fade_zylk-1]; //Calc Blue; + 1c4: 20 91 b3 00 lds r18, 0x00B3 + 1c8: 8b 85 ldd r24, Y+11 ; 0x0b + 1ca: 90 e0 ldi r25, 0x00 ; 0 + 1cc: 82 1b sub r24, r18 + 1ce: 91 09 sbc r25, r1 + 1d0: 6e 2d mov r22, r14 + 1d2: 7f 2d mov r23, r15 + 1d4: 0e 94 89 08 call 0x1112 ; 0x1112 <__divmodhi4> + 1d8: 88 27 eor r24, r24 + 1da: 77 fd sbrc r23, 7 + 1dc: 80 95 com r24 + 1de: 98 2f mov r25, r24 + 1e0: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 1e4: 60 93 a5 01 sts 0x01A5, r22 + 1e8: 70 93 a6 01 sts 0x01A6, r23 + 1ec: 80 93 a7 01 sts 0x01A7, r24 + 1f0: 90 93 a8 01 sts 0x01A8, r25 + 1f4: 7d c1 rjmp .+762 ; 0x4f0 <__vector_13+0x432> + } else { + if((this->fadesteps[0] > 0 && (OCR0B + this->fadesteps[0]) <= this->fademap[0][this->fade_zylk-1]) || (this->fadesteps[0] < 0 && (OCR0B + this->fadesteps[0]) >= this->fademap[0][this->fade_zylk-1])) { + 1f6: 20 e0 ldi r18, 0x00 ; 0 + 1f8: 30 e0 ldi r19, 0x00 ; 0 + 1fa: a9 01 movw r20, r18 + 1fc: c7 01 movw r24, r14 + 1fe: b6 01 movw r22, r12 + 200: 0e 94 85 08 call 0x110a ; 0x110a <__gesf2> + 204: 18 16 cp r1, r24 + 206: 0c f5 brge .+66 ; 0x24a <__vector_13+0x18c> + 208: 68 b5 in r22, 0x28 ; 40 + 20a: 70 e0 ldi r23, 0x00 ; 0 + 20c: 80 e0 ldi r24, 0x00 ; 0 + 20e: 90 e0 ldi r25, 0x00 ; 0 + 210: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 214: 9b 01 movw r18, r22 + 216: ac 01 movw r20, r24 + 218: c7 01 movw r24, r14 + 21a: b6 01 movw r22, r12 + 21c: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> + 220: 4b 01 movw r8, r22 + 222: 5c 01 movw r10, r24 + 224: ec 2f mov r30, r28 + 226: f0 e0 ldi r31, 0x00 ; 0 + 228: e8 57 subi r30, 0x78 ; 120 + 22a: fe 4f sbci r31, 0xFE ; 254 + 22c: 60 81 ld r22, Z + 22e: 70 e0 ldi r23, 0x00 ; 0 + 230: 80 e0 ldi r24, 0x00 ; 0 + 232: 90 e0 ldi r25, 0x00 ; 0 + 234: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 238: 9b 01 movw r18, r22 + 23a: ac 01 movw r20, r24 + 23c: c5 01 movw r24, r10 + 23e: b4 01 movw r22, r8 + 240: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> + 244: 18 16 cp r1, r24 + 246: 0c f0 brlt .+2 ; 0x24a <__vector_13+0x18c> + 248: fe c0 rjmp .+508 ; 0x446 <__vector_13+0x388> + 24a: 20 e0 ldi r18, 0x00 ; 0 + 24c: 30 e0 ldi r19, 0x00 ; 0 + 24e: a9 01 movw r20, r18 + 250: c7 01 movw r24, r14 + 252: b6 01 movw r22, r12 + 254: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> + 258: 88 23 and r24, r24 + 25a: 0c f0 brlt .+2 ; 0x25e <__vector_13+0x1a0> + 25c: e6 c0 rjmp .+460 ; 0x42a <__vector_13+0x36c> + 25e: 68 b5 in r22, 0x28 ; 40 + 260: 70 e0 ldi r23, 0x00 ; 0 + 262: 80 e0 ldi r24, 0x00 ; 0 + 264: 90 e0 ldi r25, 0x00 ; 0 + 266: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 26a: 9b 01 movw r18, r22 + 26c: ac 01 movw r20, r24 + 26e: c7 01 movw r24, r14 + 270: b6 01 movw r22, r12 + 272: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> + 276: 4b 01 movw r8, r22 + 278: 5c 01 movw r10, r24 + 27a: ec 2f mov r30, r28 + 27c: f0 e0 ldi r31, 0x00 ; 0 + 27e: e8 57 subi r30, 0x78 ; 120 + 280: fe 4f sbci r31, 0xFE ; 254 + 282: 60 81 ld r22, Z + 284: 70 e0 ldi r23, 0x00 ; 0 + 286: 80 e0 ldi r24, 0x00 ; 0 + 288: 90 e0 ldi r25, 0x00 ; 0 + 28a: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 28e: 9b 01 movw r18, r22 + 290: ac 01 movw r20, r24 + 292: c5 01 movw r24, r10 + 294: b4 01 movw r22, r8 + 296: 0e 94 85 08 call 0x110a ; 0x110a <__gesf2> + 29a: 88 23 and r24, r24 + 29c: 0c f0 brlt .+2 ; 0x2a0 <__vector_13+0x1e2> + 29e: d3 c0 rjmp .+422 ; 0x446 <__vector_13+0x388> + 2a0: c4 c0 rjmp .+392 ; 0x42a <__vector_13+0x36c> + OCR0B = OCR0B + this->fadesteps[0]; + } else { + OCR0B = this->fademap[0][this->fade_zylk-1]; + this->fadesteps[0] = 0; + } + if((this->fadesteps[1] > 0 && (OCR2B + this->fadesteps[1]) <= this->fademap[1][this->fade_zylk-1]) || (this->fadesteps[1] < 0 && (OCR2B + this->fadesteps[1]) >= this->fademap[1][this->fade_zylk-1])) { + 2a2: c0 90 a1 01 lds r12, 0x01A1 + 2a6: d0 90 a2 01 lds r13, 0x01A2 + 2aa: e0 90 a3 01 lds r14, 0x01A3 + 2ae: f0 90 a4 01 lds r15, 0x01A4 + 2b2: 20 e0 ldi r18, 0x00 ; 0 + 2b4: 30 e0 ldi r19, 0x00 ; 0 + 2b6: a9 01 movw r20, r18 + 2b8: c7 01 movw r24, r14 + 2ba: b6 01 movw r22, r12 + 2bc: 0e 94 85 08 call 0x110a ; 0x110a <__gesf2> + 2c0: 18 16 cp r1, r24 + 2c2: 1c f5 brge .+70 ; 0x30a <__vector_13+0x24c> + 2c4: 60 91 b4 00 lds r22, 0x00B4 + 2c8: 70 e0 ldi r23, 0x00 ; 0 + 2ca: 80 e0 ldi r24, 0x00 ; 0 + 2cc: 90 e0 ldi r25, 0x00 ; 0 + 2ce: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 2d2: 9b 01 movw r18, r22 + 2d4: ac 01 movw r20, r24 + 2d6: c7 01 movw r24, r14 + 2d8: b6 01 movw r22, r12 + 2da: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> + 2de: 4b 01 movw r8, r22 + 2e0: 5c 01 movw r10, r24 + 2e2: e0 91 88 01 lds r30, 0x0188 + 2e6: f0 e0 ldi r31, 0x00 ; 0 + 2e8: e8 57 subi r30, 0x78 ; 120 + 2ea: fe 4f sbci r31, 0xFE ; 254 + 2ec: 65 81 ldd r22, Z+5 ; 0x05 + 2ee: 70 e0 ldi r23, 0x00 ; 0 + 2f0: 80 e0 ldi r24, 0x00 ; 0 + 2f2: 90 e0 ldi r25, 0x00 ; 0 + 2f4: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 2f8: 9b 01 movw r18, r22 + 2fa: ac 01 movw r20, r24 + 2fc: c5 01 movw r24, r10 + 2fe: b4 01 movw r22, r8 + 300: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> + 304: 18 16 cp r1, r24 + 306: 0c f0 brlt .+2 ; 0x30a <__vector_13+0x24c> + 308: ae c0 rjmp .+348 ; 0x466 <__vector_13+0x3a8> + 30a: 20 e0 ldi r18, 0x00 ; 0 + 30c: 30 e0 ldi r19, 0x00 ; 0 + 30e: a9 01 movw r20, r18 + 310: c7 01 movw r24, r14 + 312: b6 01 movw r22, r12 + 314: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> + 318: 88 23 and r24, r24 + 31a: 0c f0 brlt .+2 ; 0x31e <__vector_13+0x260> + 31c: b6 c0 rjmp .+364 ; 0x48a <__vector_13+0x3cc> + 31e: 60 91 b4 00 lds r22, 0x00B4 + 322: 70 e0 ldi r23, 0x00 ; 0 + 324: 80 e0 ldi r24, 0x00 ; 0 + 326: 90 e0 ldi r25, 0x00 ; 0 + 328: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 32c: 9b 01 movw r18, r22 + 32e: ac 01 movw r20, r24 + 330: c7 01 movw r24, r14 + 332: b6 01 movw r22, r12 + 334: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> + 338: 4b 01 movw r8, r22 + 33a: 5c 01 movw r10, r24 + 33c: e0 91 88 01 lds r30, 0x0188 + 340: f0 e0 ldi r31, 0x00 ; 0 + 342: e8 57 subi r30, 0x78 ; 120 + 344: fe 4f sbci r31, 0xFE ; 254 + 346: 65 81 ldd r22, Z+5 ; 0x05 + 348: 70 e0 ldi r23, 0x00 ; 0 + 34a: 80 e0 ldi r24, 0x00 ; 0 + 34c: 90 e0 ldi r25, 0x00 ; 0 + 34e: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 352: 9b 01 movw r18, r22 + 354: ac 01 movw r20, r24 + 356: c5 01 movw r24, r10 + 358: b4 01 movw r22, r8 + 35a: 0e 94 85 08 call 0x110a ; 0x110a <__gesf2> + 35e: 88 23 and r24, r24 + 360: 0c f0 brlt .+2 ; 0x364 <__vector_13+0x2a6> + 362: 81 c0 rjmp .+258 ; 0x466 <__vector_13+0x3a8> + 364: 92 c0 rjmp .+292 ; 0x48a <__vector_13+0x3cc> + OCR2B = OCR2B + this->fadesteps[1]; + } else { + OCR2B = this->fademap[1][this->fade_zylk-1]; + this->fadesteps[1] = 0; + } + if((this->fadesteps[2] > 0 && (OCR2A + this->fadesteps[2]) <= this->fademap[2][this->fade_zylk-1]) || (this->fadesteps[2] < 0 && (OCR2A + this->fadesteps[2]) >= this->fademap[2][this->fade_zylk-1])) { + 366: c0 90 a5 01 lds r12, 0x01A5 + 36a: d0 90 a6 01 lds r13, 0x01A6 + 36e: e0 90 a7 01 lds r14, 0x01A7 + 372: f0 90 a8 01 lds r15, 0x01A8 + 376: 20 e0 ldi r18, 0x00 ; 0 + 378: 30 e0 ldi r19, 0x00 ; 0 + 37a: a9 01 movw r20, r18 + 37c: c7 01 movw r24, r14 + 37e: b6 01 movw r22, r12 + 380: 0e 94 85 08 call 0x110a ; 0x110a <__gesf2> + 384: 18 16 cp r1, r24 + 386: 1c f5 brge .+70 ; 0x3ce <__vector_13+0x310> + 388: 60 91 b3 00 lds r22, 0x00B3 + 38c: 70 e0 ldi r23, 0x00 ; 0 + 38e: 80 e0 ldi r24, 0x00 ; 0 + 390: 90 e0 ldi r25, 0x00 ; 0 + 392: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 396: 9b 01 movw r18, r22 + 398: ac 01 movw r20, r24 + 39a: c7 01 movw r24, r14 + 39c: b6 01 movw r22, r12 + 39e: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> + 3a2: 4b 01 movw r8, r22 + 3a4: 5c 01 movw r10, r24 + 3a6: e0 91 88 01 lds r30, 0x0188 + 3aa: f0 e0 ldi r31, 0x00 ; 0 + 3ac: e8 57 subi r30, 0x78 ; 120 + 3ae: fe 4f sbci r31, 0xFE ; 254 + 3b0: 62 85 ldd r22, Z+10 ; 0x0a + 3b2: 70 e0 ldi r23, 0x00 ; 0 + 3b4: 80 e0 ldi r24, 0x00 ; 0 + 3b6: 90 e0 ldi r25, 0x00 ; 0 + 3b8: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 3bc: 9b 01 movw r18, r22 + 3be: ac 01 movw r20, r24 + 3c0: c5 01 movw r24, r10 + 3c2: b4 01 movw r22, r8 + 3c4: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> + 3c8: 18 16 cp r1, r24 + 3ca: 0c f0 brlt .+2 ; 0x3ce <__vector_13+0x310> + 3cc: 6f c0 rjmp .+222 ; 0x4ac <__vector_13+0x3ee> + 3ce: 20 e0 ldi r18, 0x00 ; 0 + 3d0: 30 e0 ldi r19, 0x00 ; 0 + 3d2: a9 01 movw r20, r18 + 3d4: c7 01 movw r24, r14 + 3d6: b6 01 movw r22, r12 + 3d8: 0e 94 a3 07 call 0xf46 ; 0xf46 <__cmpsf2> + 3dc: 88 23 and r24, r24 + 3de: 0c f0 brlt .+2 ; 0x3e2 <__vector_13+0x324> + 3e0: 77 c0 rjmp .+238 ; 0x4d0 <__vector_13+0x412> + 3e2: 60 91 b3 00 lds r22, 0x00B3 + 3e6: 70 e0 ldi r23, 0x00 ; 0 + 3e8: 80 e0 ldi r24, 0x00 ; 0 + 3ea: 90 e0 ldi r25, 0x00 ; 0 + 3ec: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 3f0: 9b 01 movw r18, r22 + 3f2: ac 01 movw r20, r24 + 3f4: c7 01 movw r24, r14 + 3f6: b6 01 movw r22, r12 + 3f8: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> + 3fc: 4b 01 movw r8, r22 + 3fe: 5c 01 movw r10, r24 + 400: e0 91 88 01 lds r30, 0x0188 + 404: f0 e0 ldi r31, 0x00 ; 0 + 406: e8 57 subi r30, 0x78 ; 120 + 408: fe 4f sbci r31, 0xFE ; 254 + 40a: 62 85 ldd r22, Z+10 ; 0x0a + 40c: 70 e0 ldi r23, 0x00 ; 0 + 40e: 80 e0 ldi r24, 0x00 ; 0 + 410: 90 e0 ldi r25, 0x00 ; 0 + 412: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 416: 9b 01 movw r18, r22 + 418: ac 01 movw r20, r24 + 41a: c5 01 movw r24, r10 + 41c: b4 01 movw r22, r8 + 41e: 0e 94 85 08 call 0x110a ; 0x110a <__gesf2> + 422: 88 23 and r24, r24 + 424: 0c f0 brlt .+2 ; 0x428 <__vector_13+0x36a> + 426: 42 c0 rjmp .+132 ; 0x4ac <__vector_13+0x3ee> + 428: 53 c0 rjmp .+166 ; 0x4d0 <__vector_13+0x412> + this->fadesteps[2] = (this->fademap[2][this->fade_zylk-1]-OCR2A)/this->fademap[3][this->fade_zylk-1]; //Calc Blue; + } else { + if((this->fadesteps[0] > 0 && (OCR0B + this->fadesteps[0]) <= this->fademap[0][this->fade_zylk-1]) || (this->fadesteps[0] < 0 && (OCR0B + this->fadesteps[0]) >= this->fademap[0][this->fade_zylk-1])) { + OCR0B = OCR0B + this->fadesteps[0]; + } else { + OCR0B = this->fademap[0][this->fade_zylk-1]; + 42a: d0 e0 ldi r29, 0x00 ; 0 + 42c: c8 57 subi r28, 0x78 ; 120 + 42e: de 4f sbci r29, 0xFE ; 254 + 430: 88 81 ld r24, Y + 432: 88 bd out 0x28, r24 ; 40 + this->fadesteps[0] = 0; + 434: 10 92 9d 01 sts 0x019D, r1 + 438: 10 92 9e 01 sts 0x019E, r1 + 43c: 10 92 9f 01 sts 0x019F, r1 + 440: 10 92 a0 01 sts 0x01A0, r1 + 444: 2e cf rjmp .-420 ; 0x2a2 <__vector_13+0x1e4> + this->fadesteps[0] = (this->fademap[0][this->fade_zylk-1]-OCR0B)/this->fademap[3][this->fade_zylk-1]; //Calc Red; + this->fadesteps[1] = (this->fademap[1][this->fade_zylk-1]-OCR2B)/this->fademap[3][this->fade_zylk-1]; //Calc Green; + this->fadesteps[2] = (this->fademap[2][this->fade_zylk-1]-OCR2A)/this->fademap[3][this->fade_zylk-1]; //Calc Blue; + } else { + if((this->fadesteps[0] > 0 && (OCR0B + this->fadesteps[0]) <= this->fademap[0][this->fade_zylk-1]) || (this->fadesteps[0] < 0 && (OCR0B + this->fadesteps[0]) >= this->fademap[0][this->fade_zylk-1])) { + OCR0B = OCR0B + this->fadesteps[0]; + 446: 68 b5 in r22, 0x28 ; 40 + 448: 70 e0 ldi r23, 0x00 ; 0 + 44a: 80 e0 ldi r24, 0x00 ; 0 + 44c: 90 e0 ldi r25, 0x00 ; 0 + 44e: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 452: 9b 01 movw r18, r22 + 454: ac 01 movw r20, r24 + 456: c7 01 movw r24, r14 + 458: b6 01 movw r22, r12 + 45a: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> + 45e: 0e 94 a7 07 call 0xf4e ; 0xf4e <__fixunssfsi> + 462: 68 bd out 0x28, r22 ; 40 + 464: 1e cf rjmp .-452 ; 0x2a2 <__vector_13+0x1e4> + } else { + OCR0B = this->fademap[0][this->fade_zylk-1]; + this->fadesteps[0] = 0; + } + if((this->fadesteps[1] > 0 && (OCR2B + this->fadesteps[1]) <= this->fademap[1][this->fade_zylk-1]) || (this->fadesteps[1] < 0 && (OCR2B + this->fadesteps[1]) >= this->fademap[1][this->fade_zylk-1])) { + OCR2B = OCR2B + this->fadesteps[1]; + 466: c4 eb ldi r28, 0xB4 ; 180 + 468: d0 e0 ldi r29, 0x00 ; 0 + 46a: 68 81 ld r22, Y + 46c: 70 e0 ldi r23, 0x00 ; 0 + 46e: 80 e0 ldi r24, 0x00 ; 0 + 470: 90 e0 ldi r25, 0x00 ; 0 + 472: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 476: 9b 01 movw r18, r22 + 478: ac 01 movw r20, r24 + 47a: c7 01 movw r24, r14 + 47c: b6 01 movw r22, r12 + 47e: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> + 482: 0e 94 a7 07 call 0xf4e ; 0xf4e <__fixunssfsi> + 486: 68 83 st Y, r22 + 488: 6e cf rjmp .-292 ; 0x366 <__vector_13+0x2a8> + } else { + OCR2B = this->fademap[1][this->fade_zylk-1]; + 48a: e0 91 88 01 lds r30, 0x0188 + 48e: f0 e0 ldi r31, 0x00 ; 0 + 490: e8 57 subi r30, 0x78 ; 120 + 492: fe 4f sbci r31, 0xFE ; 254 + 494: 85 81 ldd r24, Z+5 ; 0x05 + 496: 80 93 b4 00 sts 0x00B4, r24 + this->fadesteps[1] = 0; + 49a: 10 92 a1 01 sts 0x01A1, r1 + 49e: 10 92 a2 01 sts 0x01A2, r1 + 4a2: 10 92 a3 01 sts 0x01A3, r1 + 4a6: 10 92 a4 01 sts 0x01A4, r1 + 4aa: 5d cf rjmp .-326 ; 0x366 <__vector_13+0x2a8> + } + if((this->fadesteps[2] > 0 && (OCR2A + this->fadesteps[2]) <= this->fademap[2][this->fade_zylk-1]) || (this->fadesteps[2] < 0 && (OCR2A + this->fadesteps[2]) >= this->fademap[2][this->fade_zylk-1])) { + OCR2A = OCR2A + this->fadesteps[2]; + 4ac: c3 eb ldi r28, 0xB3 ; 179 + 4ae: d0 e0 ldi r29, 0x00 ; 0 + 4b0: 68 81 ld r22, Y + 4b2: 70 e0 ldi r23, 0x00 ; 0 + 4b4: 80 e0 ldi r24, 0x00 ; 0 + 4b6: 90 e0 ldi r25, 0x00 ; 0 + 4b8: 0e 94 d5 07 call 0xfaa ; 0xfaa <__floatsisf> + 4bc: 9b 01 movw r18, r22 + 4be: ac 01 movw r20, r24 + 4c0: c7 01 movw r24, r14 + 4c2: b6 01 movw r22, r12 + 4c4: 0e 94 3f 07 call 0xe7e ; 0xe7e <__addsf3> + 4c8: 0e 94 a7 07 call 0xf4e ; 0xf4e <__fixunssfsi> + 4cc: 68 83 st Y, r22 + 4ce: 10 c0 rjmp .+32 ; 0x4f0 <__vector_13+0x432> + } else { + OCR2A = this->fademap[2][this->fade_zylk-1]; + 4d0: e0 91 88 01 lds r30, 0x0188 + 4d4: f0 e0 ldi r31, 0x00 ; 0 + 4d6: e8 57 subi r30, 0x78 ; 120 + 4d8: fe 4f sbci r31, 0xFE ; 254 + 4da: 82 85 ldd r24, Z+10 ; 0x0a + 4dc: 80 93 b3 00 sts 0x00B3, r24 + this->fadesteps[2] = 0; + 4e0: 10 92 a5 01 sts 0x01A5, r1 + 4e4: 10 92 a6 01 sts 0x01A6, r1 + 4e8: 10 92 a7 01 sts 0x01A7, r1 + 4ec: 10 92 a8 01 sts 0x01A8, r1 + stripe.interrupt(); +} + 4f0: ff 91 pop r31 + 4f2: ef 91 pop r30 + 4f4: df 91 pop r29 + 4f6: cf 91 pop r28 + 4f8: bf 91 pop r27 + 4fa: af 91 pop r26 + 4fc: 9f 91 pop r25 + 4fe: 8f 91 pop r24 + 500: 7f 91 pop r23 + 502: 6f 91 pop r22 + 504: 5f 91 pop r21 + 506: 4f 91 pop r20 + 508: 3f 91 pop r19 + 50a: 2f 91 pop r18 + 50c: ff 90 pop r15 + 50e: ef 90 pop r14 + 510: df 90 pop r13 + 512: cf 90 pop r12 + 514: bf 90 pop r11 + 516: af 90 pop r10 + 518: 9f 90 pop r9 + 51a: 8f 90 pop r8 + 51c: 0f 90 pop r0 + 51e: 0f be out 0x3f, r0 ; 63 + 520: 0f 90 pop r0 + 522: 1f 90 pop r1 + 524: 18 95 reti + +00000526 <_ZN4UartILm9600EEC1Ev>: #include template class Uart { public: Uart() { - be: cf 93 push r28 - c0: df 93 push r29 + 526: cf 93 push r28 + 528: df 93 push r29 sei(); - c2: 78 94 sei + 52a: 78 94 sei void print(uint8_t wert) { uart_putchar(wert); } private: void init() { UBRR0L = (F_CPU / (baudrate * 16L) - 1); //Teiler wird gesetzt - c4: 81 e8 ldi r24, 0x81 ; 129 - c6: 80 93 c4 00 sts 0x00C4, r24 + 52c: 81 e8 ldi r24, 0x81 ; 129 + 52e: 80 93 c4 00 sts 0x00C4, r24 UCSR0A= (0< + 550: 80 81 ld r24, Z + 552: 85 ff sbrs r24, 5 + 554: fd cf rjmp .-6 ; 0x550 <_ZN4UartILm9600EEC1Ev+0x2a> UDR0 = c; - ee: 98 83 st Y, r25 + 556: 98 83 st Y, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) - f0: 9d 91 ld r25, X+ - f2: 91 11 cpse r25, r1 - f4: f9 cf rjmp .-14 ; 0xe8 <_ZN4UartILm9600EEC1Ev+0x2a> + 558: 9d 91 ld r25, X+ + 55a: 91 11 cpse r25, r1 + 55c: f9 cf rjmp .-14 ; 0x550 <_ZN4UartILm9600EEC1Ev+0x2a> UCSR0A= (0< + 55e: e0 ec ldi r30, 0xC0 ; 192 + 560: f0 e0 ldi r31, 0x00 ; 0 + 562: 80 81 ld r24, Z + 564: 85 ff sbrs r24, 5 + 566: fd cf rjmp .-6 ; 0x562 <_ZN4UartILm9600EEC1Ev+0x3c> UDR0 = c; - 100: 8d e0 ldi r24, 0x0D ; 13 - 102: 80 93 c6 00 sts 0x00C6, r24 + 568: 8d e0 ldi r24, 0x0D ; 13 + 56a: 80 93 c6 00 sts 0x00C6, r24 UCSR0A= (0< + 56e: e0 ec ldi r30, 0xC0 ; 192 + 570: f0 e0 ldi r31, 0x00 ; 0 + 572: 80 81 ld r24, Z + 574: 85 ff sbrs r24, 5 + 576: fd cf rjmp .-6 ; 0x572 <_ZN4UartILm9600EEC1Ev+0x4c> UDR0 = c; - 110: 8a e0 ldi r24, 0x0A ; 10 - 112: 80 93 c6 00 sts 0x00C6, r24 + 578: 8a e0 ldi r24, 0x0A ; 10 + 57a: 80 93 c6 00 sts 0x00C6, r24 public: Uart() { sei(); init(); println("Uart done!"); } - 116: df 91 pop r29 - 118: cf 91 pop r28 - 11a: 08 95 ret + 57e: df 91 pop r29 + 580: cf 91 pop r28 + 582: 08 95 ret -0000011c <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh>: +00000584 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh>: OCR0B=r; //ROT OCR2B=g; //GRÜN OCR2A=b; //BLAU } void setcolor(uint8_t mask) { (mask & (1<<0)) ? OCR2A=0xFF : OCR2A=0x00; - 11c: 60 ff sbrs r22, 0 - 11e: 04 c0 rjmp .+8 ; 0x128 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0xc> - 120: 8f ef ldi r24, 0xFF ; 255 - 122: 80 93 b3 00 sts 0x00B3, r24 - 126: 02 c0 rjmp .+4 ; 0x12c <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x10> - 128: 10 92 b3 00 sts 0x00B3, r1 + 584: 60 ff sbrs r22, 0 + 586: 04 c0 rjmp .+8 ; 0x590 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0xc> + 588: 8f ef ldi r24, 0xFF ; 255 + 58a: 80 93 b3 00 sts 0x00B3, r24 + 58e: 02 c0 rjmp .+4 ; 0x594 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x10> + 590: 10 92 b3 00 sts 0x00B3, r1 (mask & (1<<1)) ? OCR2B=0xFF : OCR2B=0x00; - 12c: 61 ff sbrs r22, 1 - 12e: 04 c0 rjmp .+8 ; 0x138 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x1c> - 130: 8f ef ldi r24, 0xFF ; 255 - 132: 80 93 b4 00 sts 0x00B4, r24 - 136: 02 c0 rjmp .+4 ; 0x13c <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x20> - 138: 10 92 b4 00 sts 0x00B4, r1 + 594: 61 ff sbrs r22, 1 + 596: 04 c0 rjmp .+8 ; 0x5a0 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x1c> + 598: 8f ef ldi r24, 0xFF ; 255 + 59a: 80 93 b4 00 sts 0x00B4, r24 + 59e: 02 c0 rjmp .+4 ; 0x5a4 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x20> + 5a0: 10 92 b4 00 sts 0x00B4, r1 (mask & (1<<2)) ? OCR0B=0xFF : OCR0B=0x00; - 13c: 62 ff sbrs r22, 2 - 13e: 03 c0 rjmp .+6 ; 0x146 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x2a> - 140: 8f ef ldi r24, 0xFF ; 255 - 142: 88 bd out 0x28, r24 ; 40 - 144: 08 95 ret - 146: 18 bc out 0x28, r1 ; 40 - 148: 08 95 ret + 5a4: 62 ff sbrs r22, 2 + 5a6: 03 c0 rjmp .+6 ; 0x5ae <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x2a> + 5a8: 8f ef ldi r24, 0xFF ; 255 + 5aa: 88 bd out 0x28, r24 ; 40 + 5ac: 08 95 ret + 5ae: 18 bc out 0x28, r1 ; 40 + 5b0: 08 95 ret -0000014a <_ZN4UartILm9600EE7printlnEPKc>: +000005b2 <_ZN4UartILm9600EE7printlnEPKc>: } else { print("0"); } } } void println(const char *text) { - 14a: cf 93 push r28 - 14c: df 93 push r29 + 5b2: cf 93 push r28 + 5b4: df 93 push r29 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) - 14e: fb 01 movw r30, r22 - 150: 90 81 ld r25, Z - 152: 99 23 and r25, r25 - 154: 69 f0 breq .+26 ; 0x170 <_ZN4UartILm9600EE7printlnEPKc+0x26> + 5b6: fb 01 movw r30, r22 + 5b8: 90 81 ld r25, Z + 5ba: 99 23 and r25, r25 + 5bc: 69 f0 breq .+26 ; 0x5d8 <_ZN4UartILm9600EE7printlnEPKc+0x26> } else { print("0"); } } } void println(const char *text) { - 156: db 01 movw r26, r22 - 158: 11 96 adiw r26, 0x01 ; 1 + 5be: db 01 movw r26, r22 + 5c0: 11 96 adiw r26, 0x01 ; 1 UCSR0A= (0< + 5ca: 80 81 ld r24, Z + 5cc: 85 ff sbrs r24, 5 + 5ce: fd cf rjmp .-6 ; 0x5ca <_ZN4UartILm9600EE7printlnEPKc+0x18> UDR0 = c; - 168: 98 83 st Y, r25 + 5d0: 98 83 st Y, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) - 16a: 9d 91 ld r25, X+ - 16c: 91 11 cpse r25, r1 - 16e: f9 cf rjmp .-14 ; 0x162 <_ZN4UartILm9600EE7printlnEPKc+0x18> + 5d2: 9d 91 ld r25, X+ + 5d4: 91 11 cpse r25, r1 + 5d6: f9 cf rjmp .-14 ; 0x5ca <_ZN4UartILm9600EE7printlnEPKc+0x18> UCSR0A= (0< + 5d8: e0 ec ldi r30, 0xC0 ; 192 + 5da: f0 e0 ldi r31, 0x00 ; 0 + 5dc: 80 81 ld r24, Z + 5de: 85 ff sbrs r24, 5 + 5e0: fd cf rjmp .-6 ; 0x5dc <_ZN4UartILm9600EE7printlnEPKc+0x2a> UDR0 = c; - 17a: 8d e0 ldi r24, 0x0D ; 13 - 17c: 80 93 c6 00 sts 0x00C6, r24 + 5e2: 8d e0 ldi r24, 0x0D ; 13 + 5e4: 80 93 c6 00 sts 0x00C6, r24 UCSR0A= (0< + 5e8: e0 ec ldi r30, 0xC0 ; 192 + 5ea: f0 e0 ldi r31, 0x00 ; 0 + 5ec: 80 81 ld r24, Z + 5ee: 85 ff sbrs r24, 5 + 5f0: fd cf rjmp .-6 ; 0x5ec <_ZN4UartILm9600EE7printlnEPKc+0x3a> UDR0 = c; - 18a: 8a e0 ldi r24, 0x0A ; 10 - 18c: 80 93 c6 00 sts 0x00C6, r24 + 5f2: 8a e0 ldi r24, 0x0A ; 10 + 5f4: 80 93 c6 00 sts 0x00C6, r24 } void println(const char *text) { print(text); print("\r"); print("\n"); } - 190: df 91 pop r29 - 192: cf 91 pop r28 - 194: 08 95 ret + 5f8: df 91 pop r29 + 5fa: cf 91 pop r28 + 5fc: 08 95 ret -00000196
: +000005fe
: +ledclass led; compclass comp; irclass ir; int main(void) { + 5fe: cf 93 push r28 + 600: df 93 push r29 + 602: 00 d0 rcall .+0 ; 0x604 + 604: 00 d0 rcall .+0 ; 0x606 + 606: cd b7 in r28, 0x3d ; 61 + 608: de b7 in r29, 0x3e ; 62 sei(); - 196: 78 94 sei + 60a: 78 94 sei + uint8_t doorstatus = 0; stripe.setcolor(stripe.RED); - 198: 64 e0 ldi r22, 0x04 ; 4 - 19a: 80 e7 ldi r24, 0x70 ; 112 - 19c: 91 e0 ldi r25, 0x01 ; 1 - 19e: 0e 94 8e 00 call 0x11c ; 0x11c <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> + 60c: 64 e0 ldi r22, 0x04 ; 4 + 60e: 88 e8 ldi r24, 0x88 ; 136 + 610: 91 e0 ldi r25, 0x01 ; 1 + 612: 0e 94 c2 02 call 0x584 ; 0x584 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Rot!"); - 1a2: 6b e0 ldi r22, 0x0B ; 11 - 1a4: 71 e0 ldi r23, 0x01 ; 1 - 1a6: 81 e7 ldi r24, 0x71 ; 113 - 1a8: 91 e0 ldi r25, 0x01 ; 1 - 1aa: 0e 94 a5 00 call 0x14a ; 0x14a <_ZN4UartILm9600EE7printlnEPKc> + 616: 6b e0 ldi r22, 0x0B ; 11 + 618: 71 e0 ldi r23, 0x01 ; 1 + 61a: 89 ea ldi r24, 0xA9 ; 169 + 61c: 91 e0 ldi r25, 0x01 ; 1 + 61e: 0e 94 d9 02 call 0x5b2 ; 0x5b2 <_ZN4UartILm9600EE7printlnEPKc> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 1ae: 2f e7 ldi r18, 0x7F ; 127 - 1b0: 3a e1 ldi r19, 0x1A ; 26 - 1b2: 86 e0 ldi r24, 0x06 ; 6 - 1b4: 21 50 subi r18, 0x01 ; 1 - 1b6: 30 40 sbci r19, 0x00 ; 0 - 1b8: 80 40 sbci r24, 0x00 ; 0 - 1ba: e1 f7 brne .-8 ; 0x1b4 - 1bc: 00 c0 rjmp .+0 ; 0x1be - 1be: 00 00 nop + 622: 2f e7 ldi r18, 0x7F ; 127 + 624: 3a e1 ldi r19, 0x1A ; 26 + 626: 86 e0 ldi r24, 0x06 ; 6 + 628: 21 50 subi r18, 0x01 ; 1 + 62a: 30 40 sbci r19, 0x00 ; 0 + 62c: 80 40 sbci r24, 0x00 ; 0 + 62e: e1 f7 brne .-8 ; 0x628 + 630: 00 c0 rjmp .+0 ; 0x632 + 632: 00 00 nop _delay_ms(100); stripe.setcolor(stripe.GREEN); - 1c0: 62 e0 ldi r22, 0x02 ; 2 - 1c2: 80 e7 ldi r24, 0x70 ; 112 - 1c4: 91 e0 ldi r25, 0x01 ; 1 - 1c6: 0e 94 8e 00 call 0x11c ; 0x11c <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> + 634: 62 e0 ldi r22, 0x02 ; 2 + 636: 88 e8 ldi r24, 0x88 ; 136 + 638: 91 e0 ldi r25, 0x01 ; 1 + 63a: 0e 94 c2 02 call 0x584 ; 0x584 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Grün!"); - 1ca: 60 e1 ldi r22, 0x10 ; 16 - 1cc: 71 e0 ldi r23, 0x01 ; 1 - 1ce: 81 e7 ldi r24, 0x71 ; 113 - 1d0: 91 e0 ldi r25, 0x01 ; 1 - 1d2: 0e 94 a5 00 call 0x14a ; 0x14a <_ZN4UartILm9600EE7printlnEPKc> - 1d6: 9f e7 ldi r25, 0x7F ; 127 - 1d8: aa e1 ldi r26, 0x1A ; 26 - 1da: b6 e0 ldi r27, 0x06 ; 6 - 1dc: 91 50 subi r25, 0x01 ; 1 - 1de: a0 40 sbci r26, 0x00 ; 0 - 1e0: b0 40 sbci r27, 0x00 ; 0 - 1e2: e1 f7 brne .-8 ; 0x1dc - 1e4: 00 c0 rjmp .+0 ; 0x1e6 - 1e6: 00 00 nop + 63e: 60 e1 ldi r22, 0x10 ; 16 + 640: 71 e0 ldi r23, 0x01 ; 1 + 642: 89 ea ldi r24, 0xA9 ; 169 + 644: 91 e0 ldi r25, 0x01 ; 1 + 646: 0e 94 d9 02 call 0x5b2 ; 0x5b2 <_ZN4UartILm9600EE7printlnEPKc> + 64a: 9f e7 ldi r25, 0x7F ; 127 + 64c: aa e1 ldi r26, 0x1A ; 26 + 64e: b6 e0 ldi r27, 0x06 ; 6 + 650: 91 50 subi r25, 0x01 ; 1 + 652: a0 40 sbci r26, 0x00 ; 0 + 654: b0 40 sbci r27, 0x00 ; 0 + 656: e1 f7 brne .-8 ; 0x650 + 658: 00 c0 rjmp .+0 ; 0x65a + 65a: 00 00 nop _delay_ms(100); stripe.setcolor(stripe.BLUE); - 1e8: 61 e0 ldi r22, 0x01 ; 1 - 1ea: 80 e7 ldi r24, 0x70 ; 112 - 1ec: 91 e0 ldi r25, 0x01 ; 1 - 1ee: 0e 94 8e 00 call 0x11c ; 0x11c <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> + 65c: 61 e0 ldi r22, 0x01 ; 1 + 65e: 88 e8 ldi r24, 0x88 ; 136 + 660: 91 e0 ldi r25, 0x01 ; 1 + 662: 0e 94 c2 02 call 0x584 ; 0x584 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Blau!"); - 1f2: 66 e1 ldi r22, 0x16 ; 22 - 1f4: 71 e0 ldi r23, 0x01 ; 1 - 1f6: 81 e7 ldi r24, 0x71 ; 113 - 1f8: 91 e0 ldi r25, 0x01 ; 1 - 1fa: 0e 94 a5 00 call 0x14a ; 0x14a <_ZN4UartILm9600EE7printlnEPKc> - 1fe: 2f e7 ldi r18, 0x7F ; 127 - 200: 3a e1 ldi r19, 0x1A ; 26 - 202: 86 e0 ldi r24, 0x06 ; 6 - 204: 21 50 subi r18, 0x01 ; 1 - 206: 30 40 sbci r19, 0x00 ; 0 - 208: 80 40 sbci r24, 0x00 ; 0 - 20a: e1 f7 brne .-8 ; 0x204 - 20c: 00 c0 rjmp .+0 ; 0x20e - 20e: 00 00 nop + 666: 66 e1 ldi r22, 0x16 ; 22 + 668: 71 e0 ldi r23, 0x01 ; 1 + 66a: 89 ea ldi r24, 0xA9 ; 169 + 66c: 91 e0 ldi r25, 0x01 ; 1 + 66e: 0e 94 d9 02 call 0x5b2 ; 0x5b2 <_ZN4UartILm9600EE7printlnEPKc> + 672: 2f e7 ldi r18, 0x7F ; 127 + 674: 3a e1 ldi r19, 0x1A ; 26 + 676: 86 e0 ldi r24, 0x06 ; 6 + 678: 21 50 subi r18, 0x01 ; 1 + 67a: 30 40 sbci r19, 0x00 ; 0 + 67c: 80 40 sbci r24, 0x00 ; 0 + 67e: e1 f7 brne .-8 ; 0x678 + 680: 00 c0 rjmp .+0 ; 0x682 + 682: 00 00 nop _delay_ms(100); stripe.setcolor(stripe.WHITE); - 210: 67 e0 ldi r22, 0x07 ; 7 - 212: 80 e7 ldi r24, 0x70 ; 112 - 214: 91 e0 ldi r25, 0x01 ; 1 - 216: 0e 94 8e 00 call 0x11c ; 0x11c <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> + 684: 67 e0 ldi r22, 0x07 ; 7 + 686: 88 e8 ldi r24, 0x88 ; 136 + 688: 91 e0 ldi r25, 0x01 ; 1 + 68a: 0e 94 c2 02 call 0x584 ; 0x584 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Weiß, alles Initialisert! Habe Fertig und damit ab zum Normalbetrieb!"); - 21a: 6c e1 ldi r22, 0x1C ; 28 - 21c: 71 e0 ldi r23, 0x01 ; 1 - 21e: 81 e7 ldi r24, 0x71 ; 113 - 220: 91 e0 ldi r25, 0x01 ; 1 - 222: 0e 94 a5 00 call 0x14a ; 0x14a <_ZN4UartILm9600EE7printlnEPKc> - 226: 9f e7 ldi r25, 0x7F ; 127 - 228: aa e1 ldi r26, 0x1A ; 26 - 22a: b6 e0 ldi r27, 0x06 ; 6 - 22c: 91 50 subi r25, 0x01 ; 1 - 22e: a0 40 sbci r26, 0x00 ; 0 - 230: b0 40 sbci r27, 0x00 ; 0 - 232: e1 f7 brne .-8 ; 0x22c - 234: 00 c0 rjmp .+0 ; 0x236 - 236: 00 00 nop + 68e: 6c e1 ldi r22, 0x1C ; 28 + 690: 71 e0 ldi r23, 0x01 ; 1 + 692: 89 ea ldi r24, 0xA9 ; 169 + 694: 91 e0 ldi r25, 0x01 ; 1 + 696: 0e 94 d9 02 call 0x5b2 ; 0x5b2 <_ZN4UartILm9600EE7printlnEPKc> + 69a: 9f e7 ldi r25, 0x7F ; 127 + 69c: aa e1 ldi r26, 0x1A ; 26 + 69e: b6 e0 ldi r27, 0x06 ; 6 + 6a0: 91 50 subi r25, 0x01 ; 1 + 6a2: a0 40 sbci r26, 0x00 ; 0 + 6a4: b0 40 sbci r27, 0x00 ; 0 + 6a6: e1 f7 brne .-8 ; 0x6a0 + 6a8: 00 c0 rjmp .+0 ; 0x6aa + 6aa: 00 00 nop namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 238: 29 9a sbi 0x05, 1 ; 5 + 6ac: 29 9a sbi 0x05, 1 ; 5 _delay_ms(100); led.green(1); stripe.setcolor(stripe.BLACK); - 23a: 60 e0 ldi r22, 0x00 ; 0 - 23c: 80 e7 ldi r24, 0x70 ; 112 - 23e: 91 e0 ldi r25, 0x01 ; 1 - 240: 0e 94 8e 00 call 0x11c ; 0x11c <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> + 6ae: 60 e0 ldi r22, 0x00 ; 0 + 6b0: 88 e8 ldi r24, 0x88 ; 136 + 6b2: 91 e0 ldi r25, 0x01 ; 1 + 6b4: 0e 94 c2 02 call 0x584 ; 0x584 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> +irclass ir; + +int main(void) +{ + sei(); + uint8_t doorstatus = 0; + 6b8: 21 2c mov r2, r1 } led.red(0); EIFR |= (1<_code; - 244: cd e6 ldi r28, 0x6D ; 109 - 246: d1 e0 ldi r29, 0x01 ; 1 + 6ba: 45 e8 ldi r20, 0x85 ; 133 + 6bc: 51 e0 ldi r21, 0x01 ; 1 this->_code = 255; - 248: 66 24 eor r6, r6 - 24a: 6a 94 dec r6 - 24c: 76 2c mov r7, r6 - Stripe() { - this->init(); + 6be: bb 24 eor r11, r11 + 6c0: ba 94 dec r11 + 6c2: ab 2c mov r10, r11 + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - OCR2B=g; //GRÜN - 24e: 0f 2e mov r0, r31 - 250: f4 eb ldi r31, 0xB4 ; 180 - 252: ef 2e mov r14, r31 - 254: f1 2c mov r15, r1 - 256: f0 2d mov r31, r0 - 258: 68 94 set - 25a: 22 24 eor r2, r2 - 25c: 27 f8 bld r2, 7 - OCR2A=b; //BLAU - 25e: 03 eb ldi r16, 0xB3 ; 179 - 260: 10 e0 ldi r17, 0x00 ; 0 + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 6c4: 0f 2e mov r0, r31 + 6c6: f9 e8 ldi r31, 0x89 ; 137 + 6c8: ef 2e mov r14, r31 + 6ca: f1 e0 ldi r31, 0x01 ; 1 + 6cc: ff 2e mov r15, r31 + 6ce: f0 2d mov r31, r0 + this->fademap[1][index] = green; + 6d0: 0e e8 ldi r16, 0x8E ; 142 + 6d2: 11 e0 ldi r17, 0x01 ; 1 + this->fademap[2][index] = blue; + 6d4: 0f 2e mov r0, r31 + 6d6: f3 e9 ldi r31, 0x93 ; 147 + 6d8: 8f 2e mov r8, r31 + 6da: f1 e0 ldi r31, 0x01 ; 1 + 6dc: 9f 2e mov r9, r31 + 6de: f0 2d mov r31, r0 + this->fademap[3][index] = time; + 6e0: 0f 2e mov r0, r31 + 6e2: f8 e9 ldi r31, 0x98 ; 152 + 6e4: 6f 2e mov r6, r31 + 6e6: f1 e0 ldi r31, 0x01 ; 1 + 6e8: 7f 2e mov r7, r31 + 6ea: f0 2d mov r31, r0 + 6ec: 0f 2e mov r0, r31 + 6ee: fa e0 ldi r31, 0x0A ; 10 + 6f0: 3f 2e mov r3, r31 + 6f2: f0 2d mov r31, r0 + OCR2A = 0; + } + } + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 6f4: 0f 2e mov r0, r31 + 6f6: f8 e8 ldi r31, 0x88 ; 136 + 6f8: 4f 2e mov r4, r31 + 6fa: f1 e0 ldi r31, 0x01 ; 1 + 6fc: 5f 2e mov r5, r31 + 6fe: f0 2d mov r31, r0 + 700: cc 24 eor r12, r12 + 702: c3 94 inc r12 UCSR0A= (0<init(); - } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - 27a: 0f 2e mov r0, r31 - 27c: f0 ec ldi r31, 0xC0 ; 192 - 27e: 3f 2e mov r3, r31 - 280: f0 2d mov r31, r0 - void timerOff() { - // OC0B output: Disconnected - // OC2A output: Disconnected - // OC2B output: Disconnected - TCCR0A &= ~(1<_code; - 28c: 88 81 ld r24, Y + 710: da 01 movw r26, r20 + 712: 8c 91 ld r24, X this->_code = 255; - 28e: 78 82 st Y, r7 + 714: ac 92 st X, r10 + + uint8_t remotetimer = 10; while(1) { uint8_t c = ir.getCode(); switch(c) { - 290: 8c 30 cpi r24, 0x0C ; 12 - 292: 09 f4 brne .+2 ; 0x296 - 294: cf c0 rjmp .+414 ; 0x434 - 296: 38 f5 brcc .+78 ; 0x2e6 - 298: 85 30 cpi r24, 0x05 ; 5 - 29a: 09 f4 brne .+2 ; 0x29e - 29c: a4 c0 rjmp .+328 ; 0x3e6 - 29e: 90 f4 brcc .+36 ; 0x2c4 - 2a0: 82 30 cpi r24, 0x02 ; 2 - 2a2: 09 f4 brne .+2 ; 0x2a6 - 2a4: 84 c0 rjmp .+264 ; 0x3ae - 2a6: 38 f4 brcc .+14 ; 0x2b6 - 2a8: 88 23 and r24, r24 - 2aa: 09 f4 brne .+2 ; 0x2ae - 2ac: 46 c0 rjmp .+140 ; 0x33a - 2ae: 81 30 cpi r24, 0x01 ; 1 - 2b0: 09 f0 breq .+2 ; 0x2b4 - 2b2: f6 c0 rjmp .+492 ; 0x4a0 - 2b4: 5f c0 rjmp .+190 ; 0x374 - 2b6: 83 30 cpi r24, 0x03 ; 3 - 2b8: 09 f4 brne .+2 ; 0x2bc - 2ba: 87 c0 rjmp .+270 ; 0x3ca - 2bc: 84 30 cpi r24, 0x04 ; 4 - 2be: 09 f0 breq .+2 ; 0x2c2 - 2c0: ef c0 rjmp .+478 ; 0x4a0 - 2c2: 8b c0 rjmp .+278 ; 0x3da - 2c4: 88 30 cpi r24, 0x08 ; 8 - 2c6: 09 f4 brne .+2 ; 0x2ca - 2c8: a0 c0 rjmp .+320 ; 0x40a - 2ca: 38 f4 brcc .+14 ; 0x2da - 2cc: 86 30 cpi r24, 0x06 ; 6 - 2ce: 09 f4 brne .+2 ; 0x2d2 - 2d0: 90 c0 rjmp .+288 ; 0x3f2 - 2d2: 87 30 cpi r24, 0x07 ; 7 - 2d4: 09 f0 breq .+2 ; 0x2d8 - 2d6: e4 c0 rjmp .+456 ; 0x4a0 - 2d8: 92 c0 rjmp .+292 ; 0x3fe - 2da: 8a 30 cpi r24, 0x0A ; 10 - 2dc: 09 f4 brne .+2 ; 0x2e0 - 2de: a3 c0 rjmp .+326 ; 0x426 - 2e0: 08 f0 brcs .+2 ; 0x2e4 - 2e2: 75 c1 rjmp .+746 ; 0x5ce <__stack+0xcf> - 2e4: 99 c0 rjmp .+306 ; 0x418 - 2e6: 82 31 cpi r24, 0x12 ; 18 - 2e8: 09 f4 brne .+2 ; 0x2ec - 2ea: c2 c0 rjmp .+388 ; 0x470 - 2ec: 90 f4 brcc .+36 ; 0x312 - 2ee: 8f 30 cpi r24, 0x0F ; 15 - 2f0: 09 f4 brne .+2 ; 0x2f4 - 2f2: 6d c1 rjmp .+730 ; 0x5ce <__stack+0xcf> - 2f4: 38 f4 brcc .+14 ; 0x304 - 2f6: 8d 30 cpi r24, 0x0D ; 13 - 2f8: 09 f4 brne .+2 ; 0x2fc - 2fa: a2 c0 rjmp .+324 ; 0x440 - 2fc: 8e 30 cpi r24, 0x0E ; 14 - 2fe: 09 f0 breq .+2 ; 0x302 - 300: cf c0 rjmp .+414 ; 0x4a0 - 302: a4 c0 rjmp .+328 ; 0x44c - 304: 80 31 cpi r24, 0x10 ; 16 - 306: 09 f4 brne .+2 ; 0x30a - 308: a7 c0 rjmp .+334 ; 0x458 - 30a: 81 31 cpi r24, 0x11 ; 17 - 30c: 09 f0 breq .+2 ; 0x310 - 30e: c8 c0 rjmp .+400 ; 0x4a0 - 310: a9 c0 rjmp .+338 ; 0x464 - 312: 85 31 cpi r24, 0x15 ; 21 - 314: 09 f4 brne .+2 ; 0x318 - 316: b8 c0 rjmp .+368 ; 0x488 - 318: 38 f4 brcc .+14 ; 0x328 - 31a: 83 31 cpi r24, 0x13 ; 19 - 31c: 09 f4 brne .+2 ; 0x320 - 31e: 57 c1 rjmp .+686 ; 0x5ce <__stack+0xcf> - 320: 84 31 cpi r24, 0x14 ; 20 - 322: 09 f0 breq .+2 ; 0x326 - 324: bd c0 rjmp .+378 ; 0x4a0 - 326: aa c0 rjmp .+340 ; 0x47c - 328: 87 31 cpi r24, 0x17 ; 23 - 32a: 09 f4 brne .+2 ; 0x32e - 32c: 50 c1 rjmp .+672 ; 0x5ce <__stack+0xcf> - 32e: 08 f4 brcc .+2 ; 0x332 - 330: b1 c0 rjmp .+354 ; 0x494 - 332: 8f 3f cpi r24, 0xFF ; 255 - 334: 09 f0 breq .+2 ; 0x338 - 336: b4 c0 rjmp .+360 ; 0x4a0 - 338: 4a c1 rjmp .+660 ; 0x5ce <__stack+0xcf> + 716: 8c 30 cpi r24, 0x0C ; 12 + 718: 09 f4 brne .+2 ; 0x71c + 71a: fc c0 rjmp .+504 ; 0x914 + 71c: 38 f5 brcc .+78 ; 0x76c + 71e: 85 30 cpi r24, 0x05 ; 5 + 720: 09 f4 brne .+2 ; 0x724 + 722: b3 c0 rjmp .+358 ; 0x88a + 724: 90 f4 brcc .+36 ; 0x74a + 726: 82 30 cpi r24, 0x02 ; 2 + 728: 09 f4 brne .+2 ; 0x72c + 72a: 8c c0 rjmp .+280 ; 0x844 + 72c: 38 f4 brcc .+14 ; 0x73c + 72e: 88 23 and r24, r24 + 730: 09 f4 brne .+2 ; 0x734 + 732: 46 c0 rjmp .+140 ; 0x7c0 + 734: 81 30 cpi r24, 0x01 ; 1 + 736: 09 f0 breq .+2 ; 0x73a + 738: 56 c1 rjmp .+684 ; 0x9e6 + 73a: 63 c0 rjmp .+198 ; 0x802 + 73c: 83 30 cpi r24, 0x03 ; 3 + 73e: 09 f4 brne .+2 ; 0x742 + 740: 90 c0 rjmp .+288 ; 0x862 + 742: 84 30 cpi r24, 0x04 ; 4 + 744: 09 f0 breq .+2 ; 0x748 + 746: 4f c1 rjmp .+670 ; 0x9e6 + 748: 95 c0 rjmp .+298 ; 0x874 + 74a: 88 30 cpi r24, 0x08 ; 8 + 74c: 09 f4 brne .+2 ; 0x750 + 74e: be c0 rjmp .+380 ; 0x8cc + 750: 38 f4 brcc .+14 ; 0x760 + 752: 86 30 cpi r24, 0x06 ; 6 + 754: 09 f4 brne .+2 ; 0x758 + 756: a4 c0 rjmp .+328 ; 0x8a0 + 758: 87 30 cpi r24, 0x07 ; 7 + 75a: 09 f0 breq .+2 ; 0x75e + 75c: 44 c1 rjmp .+648 ; 0x9e6 + 75e: ab c0 rjmp .+342 ; 0x8b6 + 760: 8a 30 cpi r24, 0x0A ; 10 + 762: 09 f4 brne .+2 ; 0x766 + 764: cb c0 rjmp .+406 ; 0x8fc + 766: 08 f0 brcs .+2 ; 0x76a + 768: e5 c1 rjmp .+970 ; 0xb34 + 76a: bc c0 rjmp .+376 ; 0x8e4 + 76c: 82 31 cpi r24, 0x12 ; 18 + 76e: 09 f4 brne .+2 ; 0x772 + 770: 0d c1 rjmp .+538 ; 0x98c + 772: 90 f4 brcc .+36 ; 0x798 + 774: 8f 30 cpi r24, 0x0F ; 15 + 776: 09 f4 brne .+2 ; 0x77a + 778: dd c1 rjmp .+954 ; 0xb34 + 77a: 38 f4 brcc .+14 ; 0x78a + 77c: 8d 30 cpi r24, 0x0D ; 13 + 77e: 09 f4 brne .+2 ; 0x782 + 780: d5 c0 rjmp .+426 ; 0x92c + 782: 8e 30 cpi r24, 0x0E ; 14 + 784: 09 f0 breq .+2 ; 0x788 + 786: 2f c1 rjmp .+606 ; 0x9e6 + 788: dd c0 rjmp .+442 ; 0x944 + 78a: 80 31 cpi r24, 0x10 ; 16 + 78c: 09 f4 brne .+2 ; 0x790 + 78e: e6 c0 rjmp .+460 ; 0x95c + 790: 81 31 cpi r24, 0x11 ; 17 + 792: 09 f0 breq .+2 ; 0x796 + 794: 28 c1 rjmp .+592 ; 0x9e6 + 796: ee c0 rjmp .+476 ; 0x974 + 798: 85 31 cpi r24, 0x15 ; 21 + 79a: 09 f4 brne .+2 ; 0x79e + 79c: 0e c1 rjmp .+540 ; 0x9ba + 79e: 38 f4 brcc .+14 ; 0x7ae + 7a0: 83 31 cpi r24, 0x13 ; 19 + 7a2: 09 f4 brne .+2 ; 0x7a6 + 7a4: c7 c1 rjmp .+910 ; 0xb34 + 7a6: 84 31 cpi r24, 0x14 ; 20 + 7a8: 09 f0 breq .+2 ; 0x7ac + 7aa: 1d c1 rjmp .+570 ; 0x9e6 + 7ac: fb c0 rjmp .+502 ; 0x9a4 + 7ae: 87 31 cpi r24, 0x17 ; 23 + 7b0: 09 f4 brne .+2 ; 0x7b4 + 7b2: c0 c1 rjmp .+896 ; 0xb34 + 7b4: 08 f4 brcc .+2 ; 0x7b8 + 7b6: 0c c1 rjmp .+536 ; 0x9d0 + 7b8: 8f 3f cpi r24, 0xFF ; 255 + 7ba: 09 f0 breq .+2 ; 0x7be + 7bc: 14 c1 rjmp .+552 ; 0x9e6 + 7be: ba c1 rjmp .+884 ; 0xb34 } else { OCR2A = 0; } } void higher() { if(OCR0B <= 250) { - 33a: 88 b5 in r24, 0x28 ; 40 - 33c: 8b 3f cpi r24, 0xFB ; 251 - 33e: 20 f4 brcc .+8 ; 0x348 + 7c0: 88 b5 in r24, 0x28 ; 40 + 7c2: 8b 3f cpi r24, 0xFB ; 251 + 7c4: 20 f4 brcc .+8 ; 0x7ce OCR0B = OCR0B + 5; - 340: 88 b5 in r24, 0x28 ; 40 - 342: 8b 5f subi r24, 0xFB ; 251 - 344: 88 bd out 0x28, r24 ; 40 - 346: 01 c0 rjmp .+2 ; 0x34a + 7c6: 88 b5 in r24, 0x28 ; 40 + 7c8: 8b 5f subi r24, 0xFB ; 251 + 7ca: 88 bd out 0x28, r24 ; 40 + 7cc: 01 c0 rjmp .+2 ; 0x7d0 } else { OCR0B = 0; - 348: 18 bc out 0x28, r1 ; 40 + 7ce: 18 bc out 0x28, r1 ; 40 } if(OCR2B <= 250) { - 34a: d7 01 movw r26, r14 - 34c: 8c 91 ld r24, X - 34e: 8b 3f cpi r24, 0xFB ; 251 - 350: 20 f4 brcc .+8 ; 0x35a + 7d0: a4 eb ldi r26, 0xB4 ; 180 + 7d2: b0 e0 ldi r27, 0x00 ; 0 + 7d4: 8c 91 ld r24, X + 7d6: 8b 3f cpi r24, 0xFB ; 251 + 7d8: 20 f4 brcc .+8 ; 0x7e2 OCR2B = OCR2B + 5; - 352: 8c 91 ld r24, X - 354: 8b 5f subi r24, 0xFB ; 251 - 356: 8c 93 st X, r24 - 358: 02 c0 rjmp .+4 ; 0x35e + 7da: 8c 91 ld r24, X + 7dc: 8b 5f subi r24, 0xFB ; 251 + 7de: 8c 93 st X, r24 + 7e0: 03 c0 rjmp .+6 ; 0x7e8 } else { OCR2B = 0; - 35a: d7 01 movw r26, r14 - 35c: 1c 92 st X, r1 + 7e2: a4 eb ldi r26, 0xB4 ; 180 + 7e4: b0 e0 ldi r27, 0x00 ; 0 + 7e6: 1c 92 st X, r1 } if(OCR2A <= 250) { - 35e: d8 01 movw r26, r16 - 360: 8c 91 ld r24, X - 362: 8b 3f cpi r24, 0xFB ; 251 - 364: 20 f4 brcc .+8 ; 0x36e + 7e8: a3 eb ldi r26, 0xB3 ; 179 + 7ea: b0 e0 ldi r27, 0x00 ; 0 + 7ec: 8c 91 ld r24, X + 7ee: 8b 3f cpi r24, 0xFB ; 251 + 7f0: 20 f4 brcc .+8 ; 0x7fa OCR2A = OCR2A + 5; - 366: 8c 91 ld r24, X - 368: 8b 5f subi r24, 0xFB ; 251 - 36a: 8c 93 st X, r24 - 36c: 30 c1 rjmp .+608 ; 0x5ce <__stack+0xcf> + 7f2: 8c 91 ld r24, X + 7f4: 8b 5f subi r24, 0xFB ; 251 + 7f6: 8c 93 st X, r24 + 7f8: 9d c1 rjmp .+826 ; 0xb34 } else { OCR2A = 0; - 36e: d8 01 movw r26, r16 - 370: 1c 92 st X, r1 - 372: 2d c1 rjmp .+602 ; 0x5ce <__stack+0xcf> + 7fa: a3 eb ldi r26, 0xB3 ; 179 + 7fc: b0 e0 ldi r27, 0x00 ; 0 + 7fe: 1c 92 st X, r1 + 800: 99 c1 rjmp .+818 ; 0xb34 } void on() { this->timerOn(); } void lower() { if(OCR0B >= 5) { - 374: 88 b5 in r24, 0x28 ; 40 - 376: 85 30 cpi r24, 0x05 ; 5 - 378: 20 f0 brcs .+8 ; 0x382 + 802: 88 b5 in r24, 0x28 ; 40 + 804: 85 30 cpi r24, 0x05 ; 5 + 806: 20 f0 brcs .+8 ; 0x810 OCR0B = OCR0B - 5; - 37a: 88 b5 in r24, 0x28 ; 40 - 37c: 85 50 subi r24, 0x05 ; 5 - 37e: 88 bd out 0x28, r24 ; 40 - 380: 01 c0 rjmp .+2 ; 0x384 + 808: 88 b5 in r24, 0x28 ; 40 + 80a: 85 50 subi r24, 0x05 ; 5 + 80c: 88 bd out 0x28, r24 ; 40 + 80e: 01 c0 rjmp .+2 ; 0x812 } else { OCR0B = 0; - 382: 18 bc out 0x28, r1 ; 40 + 810: 18 bc out 0x28, r1 ; 40 } if(OCR2B >= 5) { - 384: d7 01 movw r26, r14 - 386: 8c 91 ld r24, X - 388: 85 30 cpi r24, 0x05 ; 5 - 38a: 20 f0 brcs .+8 ; 0x394 + 812: a4 eb ldi r26, 0xB4 ; 180 + 814: b0 e0 ldi r27, 0x00 ; 0 + 816: 8c 91 ld r24, X + 818: 85 30 cpi r24, 0x05 ; 5 + 81a: 20 f0 brcs .+8 ; 0x824 OCR2B = OCR2B - 5; - 38c: 8c 91 ld r24, X - 38e: 85 50 subi r24, 0x05 ; 5 - 390: 8c 93 st X, r24 - 392: 02 c0 rjmp .+4 ; 0x398 + 81c: 8c 91 ld r24, X + 81e: 85 50 subi r24, 0x05 ; 5 + 820: 8c 93 st X, r24 + 822: 03 c0 rjmp .+6 ; 0x82a } else { OCR2B = 0; - 394: d7 01 movw r26, r14 - 396: 1c 92 st X, r1 + 824: a4 eb ldi r26, 0xB4 ; 180 + 826: b0 e0 ldi r27, 0x00 ; 0 + 828: 1c 92 st X, r1 } if(OCR2A >= 5) { - 398: d8 01 movw r26, r16 - 39a: 8c 91 ld r24, X - 39c: 85 30 cpi r24, 0x05 ; 5 - 39e: 20 f0 brcs .+8 ; 0x3a8 + 82a: a3 eb ldi r26, 0xB3 ; 179 + 82c: b0 e0 ldi r27, 0x00 ; 0 + 82e: 8c 91 ld r24, X + 830: 85 30 cpi r24, 0x05 ; 5 + 832: 20 f0 brcs .+8 ; 0x83c OCR2A = OCR2A - 5; - 3a0: 8c 91 ld r24, X - 3a2: 85 50 subi r24, 0x05 ; 5 - 3a4: 8c 93 st X, r24 - 3a6: 13 c1 rjmp .+550 ; 0x5ce <__stack+0xcf> + 834: 8c 91 ld r24, X + 836: 85 50 subi r24, 0x05 ; 5 + 838: 8c 93 st X, r24 + 83a: 7c c1 rjmp .+760 ; 0xb34 } else { OCR2A = 0; - 3a8: d8 01 movw r26, r16 - 3aa: 1c 92 st X, r1 - 3ac: 10 c1 rjmp .+544 ; 0x5ce <__stack+0xcf> + 83c: a3 eb ldi r26, 0xB3 ; 179 + 83e: b0 e0 ldi r27, 0x00 ; 0 + 840: 1c 92 st X, r1 + 842: 78 c1 rjmp .+752 ; 0xb34 } void timerOff() { // OC0B output: Disconnected // OC2A output: Disconnected // OC2B output: Disconnected TCCR0A &= ~(1< + 85e: 23 9a sbi 0x04, 3 ; 4 + 860: 69 c1 rjmp .+722 ; 0xb34 } void timerOn() { // OC0B output: Non-Inverted PWM // OC2A output: Non-Inverted PWM // OC2B output: Non-Inverted PWM TCCR0A |= (1< - OCR0B=r; //ROT - OCR2B=g; //GRÜN - OCR2A=b; //BLAU + 868: a0 eb ldi r26, 0xB0 ; 176 + 86a: b0 e0 ldi r27, 0x00 ; 0 + 86c: 8c 91 ld r24, X + 86e: 80 6a ori r24, 0xA0 ; 160 + 870: 8c 93 st X, r24 + 872: 60 c1 rjmp .+704 ; 0xb34 + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; } - void setcolor(uint8_t mask) { - (mask & (1<<0)) ? OCR2A=0xFF : OCR2A=0x00; - 3da: d8 01 movw r26, r16 - 3dc: 1c 92 st X, r1 - (mask & (1<<1)) ? OCR2B=0xFF : OCR2B=0x00; - 3de: d7 01 movw r26, r14 - 3e0: 1c 92 st X, r1 - (mask & (1<<2)) ? OCR0B=0xFF : OCR0B=0x00; - 3e2: 68 bc out 0x28, r6 ; 40 - 3e4: f4 c0 rjmp .+488 ; 0x5ce <__stack+0xcf> - OCR0B=r; //ROT - OCR2B=g; //GRÜN - OCR2A=b; //BLAU + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 874: d7 01 movw r26, r14 + 876: bc 92 st X, r11 + this->fademap[1][index] = green; + 878: d8 01 movw r26, r16 + 87a: 1c 92 st X, r1 + this->fademap[2][index] = blue; + 87c: d4 01 movw r26, r8 + 87e: 1c 92 st X, r1 + this->fademap[3][index] = time; + 880: d3 01 movw r26, r6 + 882: 3c 92 st X, r3 + OCR2A = 0; + } } - void setcolor(uint8_t mask) { - (mask & (1<<0)) ? OCR2A=0xFF : OCR2A=0x00; - 3e6: d8 01 movw r26, r16 - 3e8: 1c 92 st X, r1 - (mask & (1<<1)) ? OCR2B=0xFF : OCR2B=0x00; - 3ea: d7 01 movw r26, r14 - 3ec: 6c 92 st X, r6 - (mask & (1<<2)) ? OCR0B=0xFF : OCR0B=0x00; - 3ee: 18 bc out 0x28, r1 ; 40 - 3f0: ee c0 rjmp .+476 ; 0x5ce <__stack+0xcf> - OCR0B=r; //ROT - OCR2B=g; //GRÜN - OCR2A=b; //BLAU + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 884: d2 01 movw r26, r4 + 886: cc 92 st X, r12 + 888: 55 c1 rjmp .+682 ; 0xb34 } - void setcolor(uint8_t mask) { - (mask & (1<<0)) ? OCR2A=0xFF : OCR2A=0x00; - 3f2: d8 01 movw r26, r16 - 3f4: 6c 92 st X, r6 - (mask & (1<<1)) ? OCR2B=0xFF : OCR2B=0x00; - 3f6: d7 01 movw r26, r14 - 3f8: 1c 92 st X, r1 - (mask & (1<<2)) ? OCR0B=0xFF : OCR0B=0x00; - 3fa: 18 bc out 0x28, r1 ; 40 - 3fc: e8 c0 rjmp .+464 ; 0x5ce <__stack+0xcf> - OCR0B=r; //ROT - OCR2B=g; //GRÜN - OCR2A=b; //BLAU + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 88a: d7 01 movw r26, r14 + 88c: 1c 92 st X, r1 + this->fademap[1][index] = green; + 88e: d8 01 movw r26, r16 + 890: bc 92 st X, r11 + this->fademap[2][index] = blue; + 892: d4 01 movw r26, r8 + 894: 1c 92 st X, r1 + this->fademap[3][index] = time; + 896: d3 01 movw r26, r6 + 898: 3c 92 st X, r3 + OCR2A = 0; + } } - void setcolor(uint8_t mask) { - (mask & (1<<0)) ? OCR2A=0xFF : OCR2A=0x00; - 3fe: d8 01 movw r26, r16 - 400: 6c 92 st X, r6 - (mask & (1<<1)) ? OCR2B=0xFF : OCR2B=0x00; - 402: d7 01 movw r26, r14 - 404: 6c 92 st X, r6 - (mask & (1<<2)) ? OCR0B=0xFF : OCR0B=0x00; - 406: 68 bc out 0x28, r6 ; 40 - 408: e2 c0 rjmp .+452 ; 0x5ce <__stack+0xcf> - public: - Stripe() { - this->init(); + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 89a: d2 01 movw r26, r4 + 89c: cc 92 st X, r12 + 89e: 4a c1 rjmp .+660 ; 0xb34 } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - 40a: 68 bc out 0x28, r6 ; 40 - OCR2B=g; //GRÜN - 40c: 20 e4 ldi r18, 0x40 ; 64 - 40e: d7 01 movw r26, r14 - 410: 2c 93 st X, r18 - OCR2A=b; //BLAU - 412: d8 01 movw r26, r16 - 414: 1c 92 st X, r1 - 416: db c0 rjmp .+438 ; 0x5ce <__stack+0xcf> - public: - Stripe() { - this->init(); + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 8a0: d7 01 movw r26, r14 + 8a2: 1c 92 st X, r1 + this->fademap[1][index] = green; + 8a4: d8 01 movw r26, r16 + 8a6: 1c 92 st X, r1 + this->fademap[2][index] = blue; + 8a8: d4 01 movw r26, r8 + 8aa: bc 92 st X, r11 + this->fademap[3][index] = time; + 8ac: d3 01 movw r26, r6 + 8ae: 3c 92 st X, r3 + OCR2A = 0; + } } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - 418: 18 bc out 0x28, r1 ; 40 - OCR2B=g; //GRÜN - 41a: d7 01 movw r26, r14 - 41c: 6c 92 st X, r6 - OCR2A=b; //BLAU - 41e: 20 e4 ldi r18, 0x40 ; 64 - 420: d8 01 movw r26, r16 - 422: 2c 93 st X, r18 - 424: d4 c0 rjmp .+424 ; 0x5ce <__stack+0xcf> - public: - Stripe() { - this->init(); + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 8b0: d2 01 movw r26, r4 + 8b2: cc 92 st X, r12 + 8b4: 3f c1 rjmp .+638 ; 0xb34 } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - 426: 30 e4 ldi r19, 0x40 ; 64 - 428: 38 bd out 0x28, r19 ; 40 - OCR2B=g; //GRÜN - 42a: d7 01 movw r26, r14 - 42c: 1c 92 st X, r1 - OCR2A=b; //BLAU - 42e: d8 01 movw r26, r16 - 430: 6c 92 st X, r6 - 432: cd c0 rjmp .+410 ; 0x5ce <__stack+0xcf> - public: - Stripe() { - this->init(); + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 8b6: d7 01 movw r26, r14 + 8b8: bc 92 st X, r11 + this->fademap[1][index] = green; + 8ba: d8 01 movw r26, r16 + 8bc: bc 92 st X, r11 + this->fademap[2][index] = blue; + 8be: d4 01 movw r26, r8 + 8c0: bc 92 st X, r11 + this->fademap[3][index] = time; + 8c2: d3 01 movw r26, r6 + 8c4: 3c 92 st X, r3 + OCR2A = 0; + } } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - 434: 68 bc out 0x28, r6 ; 40 - OCR2B=g; //GRÜN - 436: d7 01 movw r26, r14 - 438: 2c 92 st X, r2 - OCR2A=b; //BLAU - 43a: d8 01 movw r26, r16 - 43c: 1c 92 st X, r1 - 43e: c7 c0 rjmp .+398 ; 0x5ce <__stack+0xcf> - public: - Stripe() { - this->init(); + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 8c6: d2 01 movw r26, r4 + 8c8: cc 92 st X, r12 + 8ca: 34 c1 rjmp .+616 ; 0xb34 } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - 440: 18 bc out 0x28, r1 ; 40 - OCR2B=g; //GRÜN - 442: d7 01 movw r26, r14 - 444: 6c 92 st X, r6 - OCR2A=b; //BLAU - 446: d8 01 movw r26, r16 - 448: 2c 92 st X, r2 - 44a: c1 c0 rjmp .+386 ; 0x5ce <__stack+0xcf> - public: - Stripe() { - this->init(); + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 8cc: d7 01 movw r26, r14 + 8ce: bc 92 st X, r11 + this->fademap[1][index] = green; + 8d0: 20 e4 ldi r18, 0x40 ; 64 + 8d2: d8 01 movw r26, r16 + 8d4: 2c 93 st X, r18 + this->fademap[2][index] = blue; + 8d6: d4 01 movw r26, r8 + 8d8: 1c 92 st X, r1 + this->fademap[3][index] = time; + 8da: d3 01 movw r26, r6 + 8dc: 3c 92 st X, r3 + OCR2A = 0; + } } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - 44c: 28 bc out 0x28, r2 ; 40 - OCR2B=g; //GRÜN - 44e: d7 01 movw r26, r14 - 450: 1c 92 st X, r1 - OCR2A=b; //BLAU - 452: d8 01 movw r26, r16 - 454: 6c 92 st X, r6 - 456: bb c0 rjmp .+374 ; 0x5ce <__stack+0xcf> - public: - Stripe() { - this->init(); + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 8de: d2 01 movw r26, r4 + 8e0: cc 92 st X, r12 + 8e2: 28 c1 rjmp .+592 ; 0xb34 } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - 458: 68 bc out 0x28, r6 ; 40 - OCR2B=g; //GRÜN - 45a: d7 01 movw r26, r14 - 45c: 3c 92 st X, r3 - OCR2A=b; //BLAU - 45e: d8 01 movw r26, r16 - 460: 1c 92 st X, r1 - 462: b5 c0 rjmp .+362 ; 0x5ce <__stack+0xcf> - public: - Stripe() { - this->init(); + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 8e4: d7 01 movw r26, r14 + 8e6: 1c 92 st X, r1 + this->fademap[1][index] = green; + 8e8: d8 01 movw r26, r16 + 8ea: bc 92 st X, r11 + this->fademap[2][index] = blue; + 8ec: 20 e4 ldi r18, 0x40 ; 64 + 8ee: d4 01 movw r26, r8 + 8f0: 2c 93 st X, r18 + this->fademap[3][index] = time; + 8f2: d3 01 movw r26, r6 + 8f4: 3c 92 st X, r3 + OCR2A = 0; + } } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - 464: 18 bc out 0x28, r1 ; 40 - OCR2B=g; //GRÜN - 466: d7 01 movw r26, r14 - 468: 6c 92 st X, r6 - OCR2A=b; //BLAU - 46a: d8 01 movw r26, r16 - 46c: 3c 92 st X, r3 - 46e: af c0 rjmp .+350 ; 0x5ce <__stack+0xcf> - public: - Stripe() { - this->init(); + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 8f6: d2 01 movw r26, r4 + 8f8: cc 92 st X, r12 + 8fa: 1c c1 rjmp .+568 ; 0xb34 } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - 470: 38 bc out 0x28, r3 ; 40 - OCR2B=g; //GRÜN - 472: d7 01 movw r26, r14 - 474: 1c 92 st X, r1 - OCR2A=b; //BLAU - 476: d8 01 movw r26, r16 - 478: 6c 92 st X, r6 - 47a: a9 c0 rjmp .+338 ; 0x5ce <__stack+0xcf> - public: - Stripe() { - this->init(); + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 8fc: 20 e4 ldi r18, 0x40 ; 64 + 8fe: d7 01 movw r26, r14 + 900: 2c 93 st X, r18 + this->fademap[1][index] = green; + 902: d8 01 movw r26, r16 + 904: 1c 92 st X, r1 + this->fademap[2][index] = blue; + 906: d4 01 movw r26, r8 + 908: bc 92 st X, r11 + this->fademap[3][index] = time; + 90a: d3 01 movw r26, r6 + 90c: 3c 92 st X, r3 + OCR2A = 0; + } } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - 47c: 68 bc out 0x28, r6 ; 40 - OCR2B=g; //GRÜN - 47e: d7 01 movw r26, r14 - 480: 6c 92 st X, r6 - OCR2A=b; //BLAU - 482: d8 01 movw r26, r16 - 484: 1c 92 st X, r1 - 486: a3 c0 rjmp .+326 ; 0x5ce <__stack+0xcf> - public: - Stripe() { - this->init(); + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 90e: d2 01 movw r26, r4 + 910: cc 92 st X, r12 + 912: 10 c1 rjmp .+544 ; 0xb34 } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - 488: 18 bc out 0x28, r1 ; 40 - OCR2B=g; //GRÜN - 48a: d7 01 movw r26, r14 - 48c: 6c 92 st X, r6 - OCR2A=b; //BLAU - 48e: d8 01 movw r26, r16 - 490: 6c 92 st X, r6 - 492: 9d c0 rjmp .+314 ; 0x5ce <__stack+0xcf> - public: - Stripe() { - this->init(); + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 914: d7 01 movw r26, r14 + 916: bc 92 st X, r11 + this->fademap[1][index] = green; + 918: 20 e8 ldi r18, 0x80 ; 128 + 91a: d8 01 movw r26, r16 + 91c: 2c 93 st X, r18 + this->fademap[2][index] = blue; + 91e: d4 01 movw r26, r8 + 920: 1c 92 st X, r1 + this->fademap[3][index] = time; + 922: d3 01 movw r26, r6 + 924: 3c 92 st X, r3 + OCR2A = 0; + } } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - 494: 68 bc out 0x28, r6 ; 40 - OCR2B=g; //GRÜN - 496: d7 01 movw r26, r14 - 498: 1c 92 st X, r1 - OCR2A=b; //BLAU - 49a: d8 01 movw r26, r16 - 49c: 6c 92 st X, r6 - 49e: 97 c0 rjmp .+302 ; 0x5ce <__stack+0xcf> + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 926: d2 01 movw r26, r4 + 928: cc 92 st X, r12 + 92a: 04 c1 rjmp .+520 ; 0xb34 + } + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 92c: d7 01 movw r26, r14 + 92e: 1c 92 st X, r1 + this->fademap[1][index] = green; + 930: d8 01 movw r26, r16 + 932: bc 92 st X, r11 + this->fademap[2][index] = blue; + 934: 20 e8 ldi r18, 0x80 ; 128 + 936: d4 01 movw r26, r8 + 938: 2c 93 st X, r18 + this->fademap[3][index] = time; + 93a: d3 01 movw r26, r6 + 93c: 3c 92 st X, r3 + OCR2A = 0; + } + } + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 93e: d2 01 movw r26, r4 + 940: cc 92 st X, r12 + 942: f8 c0 rjmp .+496 ; 0xb34 + } + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 944: 20 e8 ldi r18, 0x80 ; 128 + 946: d7 01 movw r26, r14 + 948: 2c 93 st X, r18 + this->fademap[1][index] = green; + 94a: d8 01 movw r26, r16 + 94c: 1c 92 st X, r1 + this->fademap[2][index] = blue; + 94e: d4 01 movw r26, r8 + 950: bc 92 st X, r11 + this->fademap[3][index] = time; + 952: d3 01 movw r26, r6 + 954: 3c 92 st X, r3 + OCR2A = 0; + } + } + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 956: d2 01 movw r26, r4 + 958: cc 92 st X, r12 + 95a: ec c0 rjmp .+472 ; 0xb34 + } + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 95c: d7 01 movw r26, r14 + 95e: bc 92 st X, r11 + this->fademap[1][index] = green; + 960: 20 ec ldi r18, 0xC0 ; 192 + 962: d8 01 movw r26, r16 + 964: 2c 93 st X, r18 + this->fademap[2][index] = blue; + 966: d4 01 movw r26, r8 + 968: 1c 92 st X, r1 + this->fademap[3][index] = time; + 96a: d3 01 movw r26, r6 + 96c: 3c 92 st X, r3 + OCR2A = 0; + } + } + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 96e: d2 01 movw r26, r4 + 970: cc 92 st X, r12 + 972: e0 c0 rjmp .+448 ; 0xb34 + } + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 974: d7 01 movw r26, r14 + 976: 1c 92 st X, r1 + this->fademap[1][index] = green; + 978: d8 01 movw r26, r16 + 97a: bc 92 st X, r11 + this->fademap[2][index] = blue; + 97c: 20 ec ldi r18, 0xC0 ; 192 + 97e: d4 01 movw r26, r8 + 980: 2c 93 st X, r18 + this->fademap[3][index] = time; + 982: d3 01 movw r26, r6 + 984: 3c 92 st X, r3 + OCR2A = 0; + } + } + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 986: d2 01 movw r26, r4 + 988: cc 92 st X, r12 + 98a: d4 c0 rjmp .+424 ; 0xb34 + } + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 98c: 20 ec ldi r18, 0xC0 ; 192 + 98e: d7 01 movw r26, r14 + 990: 2c 93 st X, r18 + this->fademap[1][index] = green; + 992: d8 01 movw r26, r16 + 994: 1c 92 st X, r1 + this->fademap[2][index] = blue; + 996: d4 01 movw r26, r8 + 998: bc 92 st X, r11 + this->fademap[3][index] = time; + 99a: d3 01 movw r26, r6 + 99c: 3c 92 st X, r3 + OCR2A = 0; + } + } + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 99e: d2 01 movw r26, r4 + 9a0: cc 92 st X, r12 + 9a2: c8 c0 rjmp .+400 ; 0xb34 + } + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 9a4: d7 01 movw r26, r14 + 9a6: bc 92 st X, r11 + this->fademap[1][index] = green; + 9a8: d8 01 movw r26, r16 + 9aa: bc 92 st X, r11 + this->fademap[2][index] = blue; + 9ac: d4 01 movw r26, r8 + 9ae: 1c 92 st X, r1 + this->fademap[3][index] = time; + 9b0: d3 01 movw r26, r6 + 9b2: 3c 92 st X, r3 + OCR2A = 0; + } + } + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 9b4: d2 01 movw r26, r4 + 9b6: cc 92 st X, r12 + 9b8: bd c0 rjmp .+378 ; 0xb34 + } + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 9ba: d7 01 movw r26, r14 + 9bc: 1c 92 st X, r1 + this->fademap[1][index] = green; + 9be: d8 01 movw r26, r16 + 9c0: bc 92 st X, r11 + this->fademap[2][index] = blue; + 9c2: d4 01 movw r26, r8 + 9c4: bc 92 st X, r11 + this->fademap[3][index] = time; + 9c6: d3 01 movw r26, r6 + 9c8: 3c 92 st X, r3 + OCR2A = 0; + } + } + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 9ca: d2 01 movw r26, r4 + 9cc: cc 92 st X, r12 + 9ce: b2 c0 rjmp .+356 ; 0xb34 + } + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 9d0: d7 01 movw r26, r14 + 9d2: bc 92 st X, r11 + this->fademap[1][index] = green; + 9d4: d8 01 movw r26, r16 + 9d6: 1c 92 st X, r1 + this->fademap[2][index] = blue; + 9d8: d4 01 movw r26, r8 + 9da: bc 92 st X, r11 + this->fademap[3][index] = time; + 9dc: d3 01 movw r26, r6 + 9de: 3c 92 st X, r3 + OCR2A = 0; + } + } + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + 9e0: d2 01 movw r26, r4 + 9e2: cc 92 st X, r12 + 9e4: a7 c0 rjmp .+334 ; 0xb34 case 19: break; //Button FADE - case 20: stripe.color(0xFF,0xFF,0x00); break; //Color Red 100 % + Green 100 % - case 21: stripe.color(0x00,0xFF,0xFF); break; //Color Green 100 % + Blue 100 % - case 22: stripe.color(0xFF,0x00,0xFF); break; //Color Blue 100 % + Red 100 % + case 20: stripe.fadeto(0xFF,0xFF,0x00,remotetimer); break; //Color Red 100 % + Green 100 % + case 21: stripe.fadeto(0x00,0xFF,0xFF,remotetimer); break; //Color Green 100 % + Blue 100 % + case 22: stripe.fadeto(0xFF,0x00,0xFF,remotetimer); break; //Color Blue 100 % + Red 100 % case 23: break; //Button SMOOTH default: Serial.printDec(c); Serial.println(" Pressed!"); break; //Code den ich nicht kenne - 4a0: c8 2e mov r12, r24 - 4a2: d1 2c mov r13, r1 + 9e6: 28 2f mov r18, r24 + 9e8: 30 e0 ldi r19, 0x00 ; 0 + 9ea: 3a 83 std Y+2, r19 ; 0x02 + 9ec: 29 83 std Y+1, r18 ; 0x01 UCSR0A= (0< + 9ee: 80 81 ld r24, Z + 9f0: 85 ff sbrs r24, 5 + 9f2: fd cf rjmp .-6 ; 0x9ee UDR0 = c; - 4aa: 80 e3 ldi r24, 0x30 ; 48 - 4ac: da 01 movw r26, r20 - 4ae: 8c 93 st X, r24 + 9f4: 80 e3 ldi r24, 0x30 ; 48 + 9f6: a6 ec ldi r26, 0xC6 ; 198 + 9f8: b0 e0 ldi r27, 0x00 ; 0 + 9fa: 8c 93 st X, r24 text++; } } void printDec(uint16_t wert) { print((wert/10000)+'0'); print(((wert/1000)%10)+'0'); - 4b0: 60 e0 ldi r22, 0x00 ; 0 - 4b2: 70 e0 ldi r23, 0x00 ; 0 - 4b4: cb 01 movw r24, r22 - 4b6: 96 95 lsr r25 - 4b8: 87 95 ror r24 - 4ba: 96 95 lsr r25 - 4bc: 87 95 ror r24 - 4be: 96 95 lsr r25 - 4c0: 87 95 ror r24 - 4c2: 9c 01 movw r18, r24 - 4c4: 22 0f add r18, r18 - 4c6: 33 1f adc r19, r19 - 4c8: 88 0f add r24, r24 - 4ca: 99 1f adc r25, r25 - 4cc: 88 0f add r24, r24 - 4ce: 99 1f adc r25, r25 - 4d0: 88 0f add r24, r24 - 4d2: 99 1f adc r25, r25 - 4d4: 82 0f add r24, r18 - 4d6: 93 1f adc r25, r19 - 4d8: 68 1b sub r22, r24 - 4da: 79 0b sbc r23, r25 - 4dc: 60 5d subi r22, 0xD0 ; 208 + 9fc: 60 e0 ldi r22, 0x00 ; 0 + 9fe: 70 e0 ldi r23, 0x00 ; 0 + a00: cb 01 movw r24, r22 + a02: 96 95 lsr r25 + a04: 87 95 ror r24 + a06: 96 95 lsr r25 + a08: 87 95 ror r24 + a0a: 96 95 lsr r25 + a0c: 87 95 ror r24 + a0e: 9c 01 movw r18, r24 + a10: 22 0f add r18, r18 + a12: 33 1f adc r19, r19 + a14: 88 0f add r24, r24 + a16: 99 1f adc r25, r25 + a18: 88 0f add r24, r24 + a1a: 99 1f adc r25, r25 + a1c: 88 0f add r24, r24 + a1e: 99 1f adc r25, r25 + a20: 82 0f add r24, r18 + a22: 93 1f adc r25, r19 + a24: 68 1b sub r22, r24 + a26: 79 0b sbc r23, r25 + a28: 60 5d subi r22, 0xD0 ; 208 UCSR0A= (0< + a2a: 80 81 ld r24, Z + a2c: 85 ff sbrs r24, 5 + a2e: fd cf rjmp .-6 ; 0xa2a UDR0 = c; - 4e4: da 01 movw r26, r20 - 4e6: 6c 93 st X, r22 + a30: a6 ec ldi r26, 0xC6 ; 198 + a32: b0 e0 ldi r27, 0x00 ; 0 + a34: 6c 93 st X, r22 } } void printDec(uint16_t wert) { print((wert/10000)+'0'); print(((wert/1000)%10)+'0'); print(((wert/100)%10)+'0'); - 4e8: 96 01 movw r18, r12 - 4ea: 36 95 lsr r19 - 4ec: 27 95 ror r18 - 4ee: 36 95 lsr r19 - 4f0: 27 95 ror r18 - 4f2: ab e7 ldi r26, 0x7B ; 123 - 4f4: b4 e1 ldi r27, 0x14 ; 20 - 4f6: 0e 94 27 04 call 0x84e ; 0x84e <__umulhisi3> - 4fa: 96 95 lsr r25 - 4fc: 87 95 ror r24 - 4fe: 80 5d subi r24, 0xD0 ; 208 + a36: 29 81 ldd r18, Y+1 ; 0x01 + a38: 3a 81 ldd r19, Y+2 ; 0x02 + a3a: 36 95 lsr r19 + a3c: 27 95 ror r18 + a3e: 36 95 lsr r19 + a40: 27 95 ror r18 + a42: ab e7 ldi r26, 0x7B ; 123 + a44: b4 e1 ldi r27, 0x14 ; 20 + a46: 0e 94 9d 08 call 0x113a ; 0x113a <__umulhisi3> + a4a: 96 95 lsr r25 + a4c: 87 95 ror r24 + a4e: 80 5d subi r24, 0xD0 ; 208 UCSR0A= (0< + a50: 90 81 ld r25, Z + a52: 95 ff sbrs r25, 5 + a54: fd cf rjmp .-6 ; 0xa50 UDR0 = c; - 506: da 01 movw r26, r20 - 508: 8c 93 st X, r24 + a56: a6 ec ldi r26, 0xC6 ; 198 + a58: b0 e0 ldi r27, 0x00 ; 0 + a5a: 8c 93 st X, r24 } void printDec(uint16_t wert) { print((wert/10000)+'0'); print(((wert/1000)%10)+'0'); print(((wert/100)%10)+'0'); print(((wert/10)%10)+'0'); - 50a: 96 01 movw r18, r12 - 50c: ad ec ldi r26, 0xCD ; 205 - 50e: bc ec ldi r27, 0xCC ; 204 - 510: 0e 94 27 04 call 0x84e ; 0x84e <__umulhisi3> - 514: 5c 01 movw r10, r24 - 516: b6 94 lsr r11 - 518: a7 94 ror r10 - 51a: b6 94 lsr r11 - 51c: a7 94 ror r10 - 51e: b6 94 lsr r11 - 520: a7 94 ror r10 - 522: 95 01 movw r18, r10 - 524: 0e 94 27 04 call 0x84e ; 0x84e <__umulhisi3> - 528: 96 95 lsr r25 - 52a: 87 95 ror r24 - 52c: 96 95 lsr r25 - 52e: 87 95 ror r24 - 530: 96 95 lsr r25 - 532: 87 95 ror r24 - 534: 9c 01 movw r18, r24 - 536: 22 0f add r18, r18 - 538: 33 1f adc r19, r19 - 53a: 88 0f add r24, r24 - 53c: 99 1f adc r25, r25 - 53e: 88 0f add r24, r24 - 540: 99 1f adc r25, r25 - 542: 88 0f add r24, r24 - 544: 99 1f adc r25, r25 - 546: 82 0f add r24, r18 - 548: 93 1f adc r25, r19 - 54a: 95 01 movw r18, r10 - 54c: 28 1b sub r18, r24 - 54e: 39 0b sbc r19, r25 - 550: 92 2f mov r25, r18 - 552: 90 5d subi r25, 0xD0 ; 208 + a5c: 29 81 ldd r18, Y+1 ; 0x01 + a5e: 3a 81 ldd r19, Y+2 ; 0x02 + a60: ad ec ldi r26, 0xCD ; 205 + a62: bc ec ldi r27, 0xCC ; 204 + a64: 0e 94 9d 08 call 0x113a ; 0x113a <__umulhisi3> + a68: 96 95 lsr r25 + a6a: 87 95 ror r24 + a6c: 96 95 lsr r25 + a6e: 87 95 ror r24 + a70: 96 95 lsr r25 + a72: 87 95 ror r24 + a74: 9c 83 std Y+4, r25 ; 0x04 + a76: 8b 83 std Y+3, r24 ; 0x03 + a78: 9c 01 movw r18, r24 + a7a: 0e 94 9d 08 call 0x113a ; 0x113a <__umulhisi3> + a7e: 96 95 lsr r25 + a80: 87 95 ror r24 + a82: 96 95 lsr r25 + a84: 87 95 ror r24 + a86: 96 95 lsr r25 + a88: 87 95 ror r24 + a8a: 9c 01 movw r18, r24 + a8c: 22 0f add r18, r18 + a8e: 33 1f adc r19, r19 + a90: 88 0f add r24, r24 + a92: 99 1f adc r25, r25 + a94: 88 0f add r24, r24 + a96: 99 1f adc r25, r25 + a98: 88 0f add r24, r24 + a9a: 99 1f adc r25, r25 + a9c: 82 0f add r24, r18 + a9e: 93 1f adc r25, r19 + aa0: 2b 81 ldd r18, Y+3 ; 0x03 + aa2: 3c 81 ldd r19, Y+4 ; 0x04 + aa4: 28 1b sub r18, r24 + aa6: 39 0b sbc r19, r25 + aa8: c9 01 movw r24, r18 + aaa: 80 5d subi r24, 0xD0 ; 208 UCSR0A= (0< + aac: 90 81 ld r25, Z + aae: 95 ff sbrs r25, 5 + ab0: fd cf rjmp .-6 ; 0xaac UDR0 = c; - 55a: da 01 movw r26, r20 - 55c: 9c 93 st X, r25 + ab2: a6 ec ldi r26, 0xC6 ; 198 + ab4: b0 e0 ldi r27, 0x00 ; 0 + ab6: 8c 93 st X, r24 void printDec(uint16_t wert) { print((wert/10000)+'0'); print(((wert/1000)%10)+'0'); print(((wert/100)%10)+'0'); print(((wert/10)%10)+'0'); print((wert%10)+'0'); - 55e: 96 01 movw r18, r12 - 560: ad ec ldi r26, 0xCD ; 205 - 562: bc ec ldi r27, 0xCC ; 204 - 564: 0e 94 27 04 call 0x84e ; 0x84e <__umulhisi3> - 568: 96 95 lsr r25 - 56a: 87 95 ror r24 - 56c: 96 95 lsr r25 - 56e: 87 95 ror r24 - 570: 96 95 lsr r25 - 572: 87 95 ror r24 - 574: 9c 01 movw r18, r24 - 576: 22 0f add r18, r18 - 578: 33 1f adc r19, r19 - 57a: 88 0f add r24, r24 - 57c: 99 1f adc r25, r25 - 57e: 88 0f add r24, r24 - 580: 99 1f adc r25, r25 - 582: 88 0f add r24, r24 - 584: 99 1f adc r25, r25 - 586: 82 0f add r24, r18 - 588: 93 1f adc r25, r19 - 58a: 96 01 movw r18, r12 - 58c: 28 1b sub r18, r24 - 58e: 39 0b sbc r19, r25 - 590: 92 2f mov r25, r18 - 592: 90 5d subi r25, 0xD0 ; 208 + ab8: 29 81 ldd r18, Y+1 ; 0x01 + aba: 3a 81 ldd r19, Y+2 ; 0x02 + abc: ad ec ldi r26, 0xCD ; 205 + abe: bc ec ldi r27, 0xCC ; 204 + ac0: 0e 94 9d 08 call 0x113a ; 0x113a <__umulhisi3> + ac4: 96 95 lsr r25 + ac6: 87 95 ror r24 + ac8: 96 95 lsr r25 + aca: 87 95 ror r24 + acc: 96 95 lsr r25 + ace: 87 95 ror r24 + ad0: 9c 01 movw r18, r24 + ad2: 22 0f add r18, r18 + ad4: 33 1f adc r19, r19 + ad6: 88 0f add r24, r24 + ad8: 99 1f adc r25, r25 + ada: 88 0f add r24, r24 + adc: 99 1f adc r25, r25 + ade: 88 0f add r24, r24 + ae0: 99 1f adc r25, r25 + ae2: 82 0f add r24, r18 + ae4: 93 1f adc r25, r19 + ae6: 29 81 ldd r18, Y+1 ; 0x01 + ae8: 3a 81 ldd r19, Y+2 ; 0x02 + aea: 28 1b sub r18, r24 + aec: 39 0b sbc r19, r25 + aee: c9 01 movw r24, r18 + af0: 80 5d subi r24, 0xD0 ; 208 UCSR0A= (0< + af2: 90 81 ld r25, Z + af4: 95 ff sbrs r25, 5 + af6: fd cf rjmp .-6 ; 0xaf2 UDR0 = c; - 59a: da 01 movw r26, r20 - 59c: 9c 93 st X, r25 - 59e: a3 e6 ldi r26, 0x63 ; 99 - 5a0: b1 e0 ldi r27, 0x01 ; 1 + af8: a6 ec ldi r26, 0xC6 ; 198 + afa: b0 e0 ldi r27, 0x00 ; 0 + afc: 8c 93 st X, r24 + afe: a3 e6 ldi r26, 0x63 ; 99 + b00: b1 e0 ldi r27, 0x01 ; 1 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) - 5a2: 90 e2 ldi r25, 0x20 ; 32 - 5a4: 9d 01 movw r18, r26 + b02: 90 e2 ldi r25, 0x20 ; 32 + b04: 9d 01 movw r18, r26 UCSR0A= (0< + b06: 80 81 ld r24, Z + b08: 85 ff sbrs r24, 5 + b0a: fd cf rjmp .-6 ; 0xb06 UDR0 = c; - 5ac: da 01 movw r26, r20 - 5ae: 9c 93 st X, r25 + b0c: a6 ec ldi r26, 0xC6 ; 198 + b0e: b0 e0 ldi r27, 0x00 ; 0 + b10: 9c 93 st X, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) - 5b0: d9 01 movw r26, r18 - 5b2: 9d 91 ld r25, X+ - 5b4: 9d 01 movw r18, r26 - 5b6: 91 11 cpse r25, r1 - 5b8: f6 cf rjmp .-20 ; 0x5a6 <__stack+0xa7> + b12: d9 01 movw r26, r18 + b14: 9d 91 ld r25, X+ + b16: 9d 01 movw r18, r26 + b18: 91 11 cpse r25, r1 + b1a: f5 cf rjmp .-22 ; 0xb06 UCSR0A= (0< + b1c: 80 81 ld r24, Z + b1e: 85 ff sbrs r24, 5 + b20: fd cf rjmp .-6 ; 0xb1c UDR0 = c; - 5c0: da 01 movw r26, r20 - 5c2: 4c 92 st X, r4 + b22: a6 ec ldi r26, 0xC6 ; 198 + b24: b0 e0 ldi r27, 0x00 ; 0 + b26: dc 92 st X, r13 UCSR0A= (0< + b28: 80 81 ld r24, Z + b2a: 85 ff sbrs r24, 5 + b2c: fd cf rjmp .-6 ; 0xb28 UDR0 = c; - 5ca: da 01 movw r26, r20 - 5cc: 5c 92 st X, r5 - 5ce: 87 e8 ldi r24, 0x87 ; 135 - 5d0: 93 e1 ldi r25, 0x13 ; 19 - 5d2: 01 97 sbiw r24, 0x01 ; 1 - 5d4: f1 f7 brne .-4 ; 0x5d2 <__stack+0xd3> - 5d6: 00 c0 rjmp .+0 ; 0x5d8 <__stack+0xd9> - 5d8: 00 00 nop + b2e: a6 ec ldi r26, 0xC6 ; 198 + b30: b0 e0 ldi r27, 0x00 ; 0 + b32: 3c 92 st X, r3 + } + if(comp.is_active()) { + b34: 00 b6 in r0, 0x30 ; 48 + b36: 05 fe sbrs r0, 5 + b38: 2a c0 rjmp .+84 ; 0xb8e + if(doorstatus == 0) { + b3a: 21 10 cpse r2, r1 + b3c: 52 c0 rjmp .+164 ; 0xbe2 + } + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + b3e: d7 01 movw r26, r14 + b40: bc 92 st X, r11 + this->fademap[1][index] = green; + b42: d8 01 movw r26, r16 + b44: 1c 92 st X, r1 + this->fademap[2][index] = blue; + b46: d4 01 movw r26, r8 + b48: 1c 92 st X, r1 + this->fademap[3][index] = time; + b4a: 24 e6 ldi r18, 0x64 ; 100 + b4c: d3 01 movw r26, r6 + b4e: 2c 93 st X, r18 + OCR2A = 0; + } + } + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + b50: d2 01 movw r26, r4 + b52: cc 92 st X, r12 + b54: ad e6 ldi r26, 0x6D ; 109 + b56: b1 e0 ldi r27, 0x01 ; 1 + sei(); + init(); + println("Uart done!"); + } + void print(const char *text) { + while (*text) + b58: 94 e5 ldi r25, 0x54 ; 84 + b5a: 9d 01 movw r18, r26 + UCSR0A= (0< + UDR0 = c; + b62: a6 ec ldi r26, 0xC6 ; 198 + b64: b0 e0 ldi r27, 0x00 ; 0 + b66: 9c 93 st X, r25 + sei(); + init(); + println("Uart done!"); + } + void print(const char *text) { + while (*text) + b68: d9 01 movw r26, r18 + b6a: 9d 91 ld r25, X+ + b6c: 9d 01 movw r18, r26 + b6e: 91 11 cpse r25, r1 + b70: f5 cf rjmp .-22 ; 0xb5c + UCSR0A= (0< + UDR0 = c; + b78: a6 ec ldi r26, 0xC6 ; 198 + b7a: b0 e0 ldi r27, 0x00 ; 0 + b7c: dc 92 st X, r13 + UCSR0A= (0< + UDR0 = c; + b84: a6 ec ldi r26, 0xC6 ; 198 + b86: b0 e0 ldi r27, 0x00 ; 0 + b88: 3c 92 st X, r3 + doorstatus = 1; + b8a: 2c 2c mov r2, r12 + b8c: 2a c0 rjmp .+84 ; 0xbe2 + stripe.fadeto(0xFF,0x00,0x00,100); + Serial.println("Tür Zu..."); + } + } else { + if(doorstatus == 1) { + b8e: b1 e0 ldi r27, 0x01 ; 1 + b90: 2b 12 cpse r2, r27 + b92: 27 c0 rjmp .+78 ; 0xbe2 + b94: a7 e7 ldi r26, 0x77 ; 119 + b96: b1 e0 ldi r27, 0x01 ; 1 + sei(); + init(); + println("Uart done!"); + } + void print(const char *text) { + while (*text) + b98: 94 e5 ldi r25, 0x54 ; 84 + b9a: 9d 01 movw r18, r26 + UCSR0A= (0< + UDR0 = c; + ba2: a6 ec ldi r26, 0xC6 ; 198 + ba4: b0 e0 ldi r27, 0x00 ; 0 + ba6: 9c 93 st X, r25 + sei(); + init(); + println("Uart done!"); + } + void print(const char *text) { + while (*text) + ba8: d9 01 movw r26, r18 + baa: 9d 91 ld r25, X+ + bac: 9d 01 movw r18, r26 + bae: 91 11 cpse r25, r1 + bb0: f5 cf rjmp .-22 ; 0xb9c + UCSR0A= (0< + UDR0 = c; + bb8: a6 ec ldi r26, 0xC6 ; 198 + bba: b0 e0 ldi r27, 0x00 ; 0 + bbc: dc 92 st X, r13 + UCSR0A= (0< + UDR0 = c; + bc4: a6 ec ldi r26, 0xC6 ; 198 + bc6: b0 e0 ldi r27, 0x00 ; 0 + bc8: 3c 92 st X, r3 + } + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + bca: d7 01 movw r26, r14 + bcc: 1c 92 st X, r1 + this->fademap[1][index] = green; + bce: d8 01 movw r26, r16 + bd0: bc 92 st X, r11 + this->fademap[2][index] = blue; + bd2: d4 01 movw r26, r8 + bd4: 1c 92 st X, r1 + this->fademap[3][index] = time; + bd6: 22 e3 ldi r18, 0x32 ; 50 + bd8: d3 01 movw r26, r6 + bda: 2c 93 st X, r18 + OCR2A = 0; + } + } + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + bdc: d2 01 movw r26, r4 + bde: cc 92 st X, r12 + doorstatus = 0; + be0: 21 2c mov r2, r1 + be2: 87 e8 ldi r24, 0x87 ; 135 + be4: 93 e1 ldi r25, 0x13 ; 19 + be6: 01 97 sbiw r24, 0x01 ; 1 + be8: f1 f7 brne .-4 ; 0xbe6 + bea: 00 c0 rjmp .+0 ; 0xbec + bec: 00 00 nop namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 5da: 29 98 cbi 0x05, 1 ; 5 - 5dc: 9f ed ldi r25, 0xDF ; 223 - 5de: aa e0 ldi r26, 0x0A ; 10 - 5e0: b6 e0 ldi r27, 0x06 ; 6 - 5e2: 91 50 subi r25, 0x01 ; 1 - 5e4: a0 40 sbci r26, 0x00 ; 0 - 5e6: b0 40 sbci r27, 0x00 ; 0 - 5e8: e1 f7 brne .-8 ; 0x5e2 <__stack+0xe3> - 5ea: 00 c0 rjmp .+0 ; 0x5ec <__stack+0xed> - 5ec: 00 00 nop - 5ee: 29 9a sbi 0x05, 1 ; 5 - 5f0: 4d ce rjmp .-870 ; 0x28c + bee: 29 98 cbi 0x05, 1 ; 5 + bf0: 9f ed ldi r25, 0xDF ; 223 + bf2: aa e0 ldi r26, 0x0A ; 10 + bf4: b6 e0 ldi r27, 0x06 ; 6 + bf6: 91 50 subi r25, 0x01 ; 1 + bf8: a0 40 sbci r26, 0x00 ; 0 + bfa: b0 40 sbci r27, 0x00 ; 0 + bfc: e1 f7 brne .-8 ; 0xbf6 + bfe: 00 c0 rjmp .+0 ; 0xc00 + c00: 00 00 nop + c02: 29 9a sbi 0x05, 1 ; 5 + c04: 85 cd rjmp .-1270 ; 0x710 -000005f2 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv>: - 5f2: 55 9a sbi 0x0a, 5 ; 10 - 5f4: 53 9a sbi 0x0a, 3 ; 10 +00000c06 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv>: + c06: 55 9a sbi 0x0a, 5 ; 10 + c08: 53 9a sbi 0x0a, 3 ; 10 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 5f6: 23 9a sbi 0x04, 3 ; 4 + c0a: 23 9a sbi 0x04, 3 ; 4 + float fadesteps[3]; + void init() { + stripered::make_output(); + stripegreen::make_output(); + stripeblue::make_output(); + this->fade_zylk = 0; + c0c: fc 01 movw r30, r24 + c0e: 10 82 st Z, r1 // Mode: Phase correct PWM top=0xFF // OC0A output: Disconnected // Timer Period: 0,06375 ms // Output Pulse(s): // OC0B Period: 0,06375 ms Width: 0 us TCCR0A=(0<init(); } void color(uint8_t r, uint8_t g, uint8_t b) { OCR0B=r; //ROT - 62a: 18 bc out 0x28, r1 ; 40 + c58: 18 bc out 0x28, r1 ; 40 OCR2B=g; //GRÜN - 62c: 10 92 b4 00 sts 0x00B4, r1 + c5a: 10 92 b4 00 sts 0x00B4, r1 OCR2A=b; //BLAU - 630: 10 92 b3 00 sts 0x00B3, r1 - 634: 08 95 ret + c5e: 10 92 b3 00 sts 0x00B3, r1 + c62: 08 95 ret -00000636 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv>: +00000c64 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv>: // Interrupt on any change on pins PCINT16-23: Off EICRA=(0< + c6e: 4a 9b sbis 0x09, 2 ; 9 + c70: fe cf rjmp .-4 ; 0xc6e <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0xa> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 644: ef e9 ldi r30, 0x9F ; 159 - 646: ff e0 ldi r31, 0x0F ; 15 - 648: 31 97 sbiw r30, 0x01 ; 1 - 64a: f1 f7 brne .-4 ; 0x648 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x12> - 64c: 00 c0 rjmp .+0 ; 0x64e <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x18> - 64e: 00 00 nop + c72: ef e9 ldi r30, 0x9F ; 159 + c74: ff e0 ldi r31, 0x0F ; 15 + c76: 31 97 sbiw r30, 0x01 ; 1 + c78: f1 f7 brne .-4 ; 0xc76 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x12> + c7a: 00 c0 rjmp .+0 ; 0xc7c <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x18> + c7c: 00 00 nop uint8_t read8bit() { uint8_t r = 0; for (uint8_t i=0;i<8;i++) { intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { - 650: 4a 9b sbis 0x09, 2 ; 9 - 652: 08 c0 rjmp .+16 ; 0x664 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x2e> + c7e: 4a 9b sbis 0x09, 2 ; 9 + c80: 08 c0 rjmp .+16 ; 0xc92 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x2e> r |= (1< - 65a: 44 0f add r20, r20 - 65c: 55 1f adc r21, r21 - 65e: 0a 94 dec r0 - 660: e2 f7 brpl .-8 ; 0x65a <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x24> - 662: 84 2b or r24, r20 + c82: ab 01 movw r20, r22 + c84: 02 2e mov r0, r18 + c86: 02 c0 rjmp .+4 ; 0xc8c <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x28> + c88: 44 0f add r20, r20 + c8a: 55 1f adc r21, r21 + c8c: 0a 94 dec r0 + c8e: e2 f7 brpl .-8 ; 0xc88 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x24> + c90: 84 2b or r24, r20 } for(uint8_t j=0;j<50;j++) { if(!intpin::value()) { - 664: 4a 99 sbic 0x09, 2 ; 9 - 666: 0f c0 rjmp .+30 ; 0x686 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x50> - 668: 08 c0 rjmp .+16 ; 0x67a <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x44> - 66a: 4a 9b sbis 0x09, 2 ; 9 - 66c: 06 c0 rjmp .+12 ; 0x67a <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x44> - 66e: f5 e8 ldi r31, 0x85 ; 133 - 670: fa 95 dec r31 - 672: f1 f7 brne .-4 ; 0x670 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x3a> - 674: 00 00 nop - 676: 91 50 subi r25, 0x01 ; 1 + c92: 4a 99 sbic 0x09, 2 ; 9 + c94: 0f c0 rjmp .+30 ; 0xcb4 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x50> + c96: 08 c0 rjmp .+16 ; 0xca8 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x44> + c98: 4a 9b sbis 0x09, 2 ; 9 + c9a: 06 c0 rjmp .+12 ; 0xca8 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x44> + c9c: f5 e8 ldi r31, 0x85 ; 133 + c9e: fa 95 dec r31 + ca0: f1 f7 brne .-4 ; 0xc9e <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x3a> + ca2: 00 00 nop + ca4: 91 50 subi r25, 0x01 ; 1 intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< - 67a: 2f 5f subi r18, 0xFF ; 255 - 67c: 3f 4f sbci r19, 0xFF ; 255 + ca6: c1 f7 brne .-16 ; 0xc98 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x34> + ca8: 2f 5f subi r18, 0xFF ; 255 + caa: 3f 4f sbci r19, 0xFF ; 255 EIMSK=(0< - 684: 08 95 ret - 686: 45 e8 ldi r20, 0x85 ; 133 - 688: 4a 95 dec r20 - 68a: f1 f7 brne .-4 ; 0x688 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x52> - 68c: 00 00 nop - 68e: 91 e3 ldi r25, 0x31 ; 49 - 690: ec cf rjmp .-40 ; 0x66a <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x34> + cac: 28 30 cpi r18, 0x08 ; 8 + cae: 31 05 cpc r19, r1 + cb0: f1 f6 brne .-68 ; 0xc6e <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0xa> + cb2: 08 95 ret + cb4: 45 e8 ldi r20, 0x85 ; 133 + cb6: 4a 95 dec r20 + cb8: f1 f7 brne .-4 ; 0xcb6 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x52> + cba: 00 00 nop + cbc: 91 e3 ldi r25, 0x31 ; 49 + cbe: ec cf rjmp .-40 ; 0xc98 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x34> -00000692 <__vector_1>: +00000cc0 <__vector_1>: _delay_ms(99); led.green(1); } } ISR(INT0_vect) { - 692: 1f 92 push r1 - 694: 0f 92 push r0 - 696: 0f b6 in r0, 0x3f ; 63 - 698: 0f 92 push r0 - 69a: 11 24 eor r1, r1 - 69c: 2f 93 push r18 - 69e: 3f 93 push r19 - 6a0: 4f 93 push r20 - 6a2: 5f 93 push r21 - 6a4: 6f 93 push r22 - 6a6: 7f 93 push r23 - 6a8: 8f 93 push r24 - 6aa: 9f 93 push r25 - 6ac: af 93 push r26 - 6ae: bf 93 push r27 - 6b0: cf 93 push r28 - 6b2: ef 93 push r30 - 6b4: ff 93 push r31 + cc0: 1f 92 push r1 + cc2: 0f 92 push r0 + cc4: 0f b6 in r0, 0x3f ; 63 + cc6: 0f 92 push r0 + cc8: 11 24 eor r1, r1 + cca: 2f 93 push r18 + ccc: 3f 93 push r19 + cce: 4f 93 push r20 + cd0: 5f 93 push r21 + cd2: 6f 93 push r22 + cd4: 7f 93 push r23 + cd6: 8f 93 push r24 + cd8: 9f 93 push r25 + cda: af 93 push r26 + cdc: bf 93 push r27 + cde: cf 93 push r28 + ce0: ef 93 push r30 + ce2: ff 93 push r31 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 6b6: 28 9a sbi 0x05, 0 ; 5 + ce4: 28 9a sbi 0x05, 0 ; 5 public: IR() { this->init(); } int read() { if(intpin::value()) { //Is High, Abbort - 6b8: 4a 99 sbic 0x09, 2 ; 9 - 6ba: 79 c0 rjmp .+242 ; 0x7ae <__vector_1+0x11c> + ce6: 4a 99 sbic 0x09, 2 ; 9 + ce8: 79 c0 rjmp .+242 ; 0xddc <__vector_1+0x11c> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 6bc: 8f e1 ldi r24, 0x1F ; 31 - 6be: 9e e4 ldi r25, 0x4E ; 78 - 6c0: 01 97 sbiw r24, 0x01 ; 1 - 6c2: f1 f7 brne .-4 ; 0x6c0 <__vector_1+0x2e> - 6c4: 00 c0 rjmp .+0 ; 0x6c6 <__vector_1+0x34> - 6c6: 00 00 nop + cea: 8f e1 ldi r24, 0x1F ; 31 + cec: 9e e4 ldi r25, 0x4E ; 78 + cee: 01 97 sbiw r24, 0x01 ; 1 + cf0: f1 f7 brne .-4 ; 0xcee <__vector_1+0x2e> + cf2: 00 c0 rjmp .+0 ; 0xcf4 <__vector_1+0x34> + cf4: 00 00 nop return 254; } _delay_ms(4); //Wait 4ms if(intpin::value()) { //Is High, Abbort - 6c8: 4a 99 sbic 0x09, 2 ; 9 - 6ca: 71 c0 rjmp .+226 ; 0x7ae <__vector_1+0x11c> - 6cc: 4a 9b sbis 0x09, 2 ; 9 - 6ce: fe cf rjmp .-4 ; 0x6cc <__vector_1+0x3a> + cf6: 4a 99 sbic 0x09, 2 ; 9 + cf8: 71 c0 rjmp .+226 ; 0xddc <__vector_1+0x11c> + cfa: 4a 9b sbis 0x09, 2 ; 9 + cfc: fe cf rjmp .-4 ; 0xcfa <__vector_1+0x3a> static void wait_is_clear() { do {} while ((Port::pin() & (1< - 6d4: 80 e0 ldi r24, 0x00 ; 0 - 6d6: 90 e0 ldi r25, 0x00 ; 0 - 6d8: 60 e0 ldi r22, 0x00 ; 0 + cfe: 4a 99 sbic 0x09, 2 ; 9 + d00: fe cf rjmp .-4 ; 0xcfe <__vector_1+0x3e> + d02: 80 e0 ldi r24, 0x00 ; 0 + d04: 90 e0 ldi r25, 0x00 ; 0 + d06: 60 e0 ldi r22, 0x00 ; 0 uint8_t r = 0; for (uint8_t i=0;i<8;i++) { intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< + d0c: 4a 9b sbis 0x09, 2 ; 9 + d0e: fe cf rjmp .-4 ; 0xd0c <__vector_1+0x4c> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 6e2: ef e9 ldi r30, 0x9F ; 159 - 6e4: ff e0 ldi r31, 0x0F ; 15 - 6e6: 31 97 sbiw r30, 0x01 ; 1 - 6e8: f1 f7 brne .-4 ; 0x6e6 <__vector_1+0x54> - 6ea: 00 c0 rjmp .+0 ; 0x6ec <__vector_1+0x5a> - 6ec: 00 00 nop + d10: ef e9 ldi r30, 0x9F ; 159 + d12: ff e0 ldi r31, 0x0F ; 15 + d14: 31 97 sbiw r30, 0x01 ; 1 + d16: f1 f7 brne .-4 ; 0xd14 <__vector_1+0x54> + d18: 00 c0 rjmp .+0 ; 0xd1a <__vector_1+0x5a> + d1a: 00 00 nop uint8_t read8bit() { uint8_t r = 0; for (uint8_t i=0;i<8;i++) { intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { - 6ee: 4a 9b sbis 0x09, 2 ; 9 - 6f0: 08 c0 rjmp .+16 ; 0x702 <__vector_1+0x70> + d1c: 4a 9b sbis 0x09, 2 ; 9 + d1e: 08 c0 rjmp .+16 ; 0xd30 <__vector_1+0x70> r |= (1< - 6f8: 22 0f add r18, r18 - 6fa: 33 1f adc r19, r19 - 6fc: 0a 94 dec r0 - 6fe: e2 f7 brpl .-8 ; 0x6f8 <__vector_1+0x66> - 700: 62 2b or r22, r18 + d20: 9a 01 movw r18, r20 + d22: 08 2e mov r0, r24 + d24: 02 c0 rjmp .+4 ; 0xd2a <__vector_1+0x6a> + d26: 22 0f add r18, r18 + d28: 33 1f adc r19, r19 + d2a: 0a 94 dec r0 + d2c: e2 f7 brpl .-8 ; 0xd26 <__vector_1+0x66> + d2e: 62 2b or r22, r18 } for(uint8_t j=0;j<50;j++) { if(!intpin::value()) { - 702: 4a 99 sbic 0x09, 2 ; 9 - 704: 66 c0 rjmp .+204 ; 0x7d2 <__vector_1+0x140> - 706: 08 c0 rjmp .+16 ; 0x718 <__vector_1+0x86> - 708: 4a 9b sbis 0x09, 2 ; 9 - 70a: 06 c0 rjmp .+12 ; 0x718 <__vector_1+0x86> - 70c: f5 e8 ldi r31, 0x85 ; 133 - 70e: fa 95 dec r31 - 710: f1 f7 brne .-4 ; 0x70e <__vector_1+0x7c> - 712: 00 00 nop - 714: 21 50 subi r18, 0x01 ; 1 + d30: 4a 99 sbic 0x09, 2 ; 9 + d32: 66 c0 rjmp .+204 ; 0xe00 <__vector_1+0x140> + d34: 08 c0 rjmp .+16 ; 0xd46 <__vector_1+0x86> + d36: 4a 9b sbis 0x09, 2 ; 9 + d38: 06 c0 rjmp .+12 ; 0xd46 <__vector_1+0x86> + d3a: f5 e8 ldi r31, 0x85 ; 133 + d3c: fa 95 dec r31 + d3e: f1 f7 brne .-4 ; 0xd3c <__vector_1+0x7c> + d40: 00 00 nop + d42: 21 50 subi r18, 0x01 ; 1 intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< - 718: 01 96 adiw r24, 0x01 ; 1 + d44: c1 f7 brne .-16 ; 0xd36 <__vector_1+0x76> + d46: 01 96 adiw r24, 0x01 ; 1 EIMSK=(0< + d48: 88 30 cpi r24, 0x08 ; 8 + d4a: 91 05 cpc r25, r1 + d4c: f9 f6 brne .-66 ; 0xd0c <__vector_1+0x4c> } intpin::wait_is_set(); //Wait for the rest of the init. intpin::wait_is_clear(); // Init Complete, wait for first Byte //Read First Byte must be 0! if(this->read8bit() != 0) { //Is first Byte not 0 Abbort; - 720: 61 11 cpse r22, r1 - 722: 39 c0 rjmp .+114 ; 0x796 <__vector_1+0x104> - 724: 80 e0 ldi r24, 0x00 ; 0 - 726: 90 e0 ldi r25, 0x00 ; 0 + d4e: 61 11 cpse r22, r1 + d50: 39 c0 rjmp .+114 ; 0xdc4 <__vector_1+0x104> + d52: 80 e0 ldi r24, 0x00 ; 0 + d54: 90 e0 ldi r25, 0x00 ; 0 uint8_t r = 0; for (uint8_t i=0;i<8;i++) { intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< - 730: ef e9 ldi r30, 0x9F ; 159 - 732: ff e0 ldi r31, 0x0F ; 15 - 734: 31 97 sbiw r30, 0x01 ; 1 - 736: f1 f7 brne .-4 ; 0x734 <__vector_1+0xa2> - 738: 00 c0 rjmp .+0 ; 0x73a <__vector_1+0xa8> - 73a: 00 00 nop + d56: 41 e0 ldi r20, 0x01 ; 1 + d58: 50 e0 ldi r21, 0x00 ; 0 + d5a: 4a 9b sbis 0x09, 2 ; 9 + d5c: fe cf rjmp .-4 ; 0xd5a <__vector_1+0x9a> + d5e: ef e9 ldi r30, 0x9F ; 159 + d60: ff e0 ldi r31, 0x0F ; 15 + d62: 31 97 sbiw r30, 0x01 ; 1 + d64: f1 f7 brne .-4 ; 0xd62 <__vector_1+0xa2> + d66: 00 c0 rjmp .+0 ; 0xd68 <__vector_1+0xa8> + d68: 00 00 nop uint8_t read8bit() { uint8_t r = 0; for (uint8_t i=0;i<8;i++) { intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { - 73c: 4a 9b sbis 0x09, 2 ; 9 - 73e: 08 c0 rjmp .+16 ; 0x750 <__vector_1+0xbe> + d6a: 4a 9b sbis 0x09, 2 ; 9 + d6c: 08 c0 rjmp .+16 ; 0xd7e <__vector_1+0xbe> r |= (1< - 746: 22 0f add r18, r18 - 748: 33 1f adc r19, r19 - 74a: 0a 94 dec r0 - 74c: e2 f7 brpl .-8 ; 0x746 <__vector_1+0xb4> - 74e: 62 2b or r22, r18 + d6e: 9a 01 movw r18, r20 + d70: 08 2e mov r0, r24 + d72: 02 c0 rjmp .+4 ; 0xd78 <__vector_1+0xb8> + d74: 22 0f add r18, r18 + d76: 33 1f adc r19, r19 + d78: 0a 94 dec r0 + d7a: e2 f7 brpl .-8 ; 0xd74 <__vector_1+0xb4> + d7c: 62 2b or r22, r18 } for(uint8_t j=0;j<50;j++) { if(!intpin::value()) { - 750: 4a 99 sbic 0x09, 2 ; 9 - 752: 39 c0 rjmp .+114 ; 0x7c6 <__vector_1+0x134> - 754: 08 c0 rjmp .+16 ; 0x766 <__vector_1+0xd4> - 756: 4a 9b sbis 0x09, 2 ; 9 - 758: 06 c0 rjmp .+12 ; 0x766 <__vector_1+0xd4> - 75a: f5 e8 ldi r31, 0x85 ; 133 - 75c: fa 95 dec r31 - 75e: f1 f7 brne .-4 ; 0x75c <__vector_1+0xca> - 760: 00 00 nop - 762: 21 50 subi r18, 0x01 ; 1 + d7e: 4a 99 sbic 0x09, 2 ; 9 + d80: 39 c0 rjmp .+114 ; 0xdf4 <__vector_1+0x134> + d82: 08 c0 rjmp .+16 ; 0xd94 <__vector_1+0xd4> + d84: 4a 9b sbis 0x09, 2 ; 9 + d86: 06 c0 rjmp .+12 ; 0xd94 <__vector_1+0xd4> + d88: f5 e8 ldi r31, 0x85 ; 133 + d8a: fa 95 dec r31 + d8c: f1 f7 brne .-4 ; 0xd8a <__vector_1+0xca> + d8e: 00 00 nop + d90: 21 50 subi r18, 0x01 ; 1 intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< - 766: 01 96 adiw r24, 0x01 ; 1 + d92: c1 f7 brne .-16 ; 0xd84 <__vector_1+0xc4> + d94: 01 96 adiw r24, 0x01 ; 1 EIMSK=(0< + d96: 88 30 cpi r24, 0x08 ; 8 + d98: 91 05 cpc r25, r1 + d9a: f9 f6 brne .-66 ; 0xd5a <__vector_1+0x9a> //Read First Byte must be 0! if(this->read8bit() != 0) { //Is first Byte not 0 Abbort; return 255; } //Read Second Byte must be 239! if(this->read8bit() != 239) { - 76e: 6f 3e cpi r22, 0xEF ; 239 - 770: 91 f4 brne .+36 ; 0x796 <__vector_1+0x104> + d9c: 6f 3e cpi r22, 0xEF ; 239 + d9e: 91 f4 brne .+36 ; 0xdc4 <__vector_1+0x104> return 255; } //Read Byte 3 and 4 (Data Byte and Checksum Byte! uint8_t a = this->read8bit(); - 772: 8c e6 ldi r24, 0x6C ; 108 - 774: 91 e0 ldi r25, 0x01 ; 1 - 776: 0e 94 1b 03 call 0x636 ; 0x636 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv> - 77a: c8 2f mov r28, r24 + da0: 84 e8 ldi r24, 0x84 ; 132 + da2: 91 e0 ldi r25, 0x01 ; 1 + da4: 0e 94 32 06 call 0xc64 ; 0xc64 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv> + da8: c8 2f mov r28, r24 uint8_t b = this->read8bit(); - 77c: 8c e6 ldi r24, 0x6C ; 108 - 77e: 91 e0 ldi r25, 0x01 ; 1 - 780: 0e 94 1b 03 call 0x636 ; 0x636 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv> + daa: 84 e8 ldi r24, 0x84 ; 132 + dac: 91 e0 ldi r25, 0x01 ; 1 + dae: 0e 94 32 06 call 0xc64 ; 0xc64 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv> //Make Checksum Byte 3 + 4 must be 255! if(a+b != 255) { - 784: 28 2f mov r18, r24 - 786: 30 e0 ldi r19, 0x00 ; 0 - 788: 2c 0f add r18, r28 - 78a: 31 1d adc r19, r1 - 78c: 2f 3f cpi r18, 0xFF ; 255 - 78e: 31 05 cpc r19, r1 - 790: 11 f4 brne .+4 ; 0x796 <__vector_1+0x104> + db2: 28 2f mov r18, r24 + db4: 30 e0 ldi r19, 0x00 ; 0 + db6: 2c 0f add r18, r28 + db8: 31 1d adc r19, r1 + dba: 2f 3f cpi r18, 0xFF ; 255 + dbc: 31 05 cpc r19, r1 + dbe: 11 f4 brne .+4 ; 0xdc4 <__vector_1+0x104> } //The Interrupt Function void interrupt() { led.red(1); uint8_t code = this->read(); if(code == 255) { - 792: cf 3f cpi r28, 0xFF ; 255 - 794: 51 f4 brne .+20 ; 0x7aa <__vector_1+0x118> + dc0: cf 3f cpi r28, 0xFF ; 255 + dc2: 51 f4 brne .+20 ; 0xdd8 <__vector_1+0x118> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 796: 2f e7 ldi r18, 0x7F ; 127 - 798: 34 e8 ldi r19, 0x84 ; 132 - 79a: 8e e1 ldi r24, 0x1E ; 30 - 79c: 21 50 subi r18, 0x01 ; 1 - 79e: 30 40 sbci r19, 0x00 ; 0 - 7a0: 80 40 sbci r24, 0x00 ; 0 - 7a2: e1 f7 brne .-8 ; 0x79c <__vector_1+0x10a> - 7a4: 00 c0 rjmp .+0 ; 0x7a6 <__vector_1+0x114> - 7a6: 00 00 nop - 7a8: 0b c0 rjmp .+22 ; 0x7c0 <__vector_1+0x12e> + dc4: 2f e7 ldi r18, 0x7F ; 127 + dc6: 34 e8 ldi r19, 0x84 ; 132 + dc8: 8e e1 ldi r24, 0x1E ; 30 + dca: 21 50 subi r18, 0x01 ; 1 + dcc: 30 40 sbci r19, 0x00 ; 0 + dce: 80 40 sbci r24, 0x00 ; 0 + dd0: e1 f7 brne .-8 ; 0xdca <__vector_1+0x10a> + dd2: 00 c0 rjmp .+0 ; 0xdd4 <__vector_1+0x114> + dd4: 00 00 nop + dd6: 0b c0 rjmp .+22 ; 0xdee <__vector_1+0x12e> _delay_ms(500); } else if(code == 254) { - 7aa: ce 3f cpi r28, 0xFE ; 254 - 7ac: 39 f4 brne .+14 ; 0x7bc <__vector_1+0x12a> - 7ae: e7 e8 ldi r30, 0x87 ; 135 - 7b0: f3 e1 ldi r31, 0x13 ; 19 - 7b2: 31 97 sbiw r30, 0x01 ; 1 - 7b4: f1 f7 brne .-4 ; 0x7b2 <__vector_1+0x120> - 7b6: 00 c0 rjmp .+0 ; 0x7b8 <__vector_1+0x126> - 7b8: 00 00 nop - 7ba: 02 c0 rjmp .+4 ; 0x7c0 <__vector_1+0x12e> + dd8: ce 3f cpi r28, 0xFE ; 254 + dda: 39 f4 brne .+14 ; 0xdea <__vector_1+0x12a> + ddc: e7 e8 ldi r30, 0x87 ; 135 + dde: f3 e1 ldi r31, 0x13 ; 19 + de0: 31 97 sbiw r30, 0x01 ; 1 + de2: f1 f7 brne .-4 ; 0xde0 <__vector_1+0x120> + de4: 00 c0 rjmp .+0 ; 0xde6 <__vector_1+0x126> + de6: 00 00 nop + de8: 02 c0 rjmp .+4 ; 0xdee <__vector_1+0x12e> _delay_ms(1); } else { this->_code = code; - 7bc: c0 93 6d 01 sts 0x016D, r28 - 7c0: 28 98 cbi 0x05, 0 ; 5 + dea: c0 93 85 01 sts 0x0185, r28 + dee: 28 98 cbi 0x05, 0 ; 5 } led.red(0); EIFR |= (1< + df0: e0 9a sbi 0x1c, 0 ; 28 + df2: 0c c0 rjmp .+24 ; 0xe0c <__vector_1+0x14c> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 7c6: f5 e8 ldi r31, 0x85 ; 133 - 7c8: fa 95 dec r31 - 7ca: f1 f7 brne .-4 ; 0x7c8 <__vector_1+0x136> - 7cc: 00 00 nop - 7ce: 21 e3 ldi r18, 0x31 ; 49 - 7d0: c2 cf rjmp .-124 ; 0x756 <__vector_1+0xc4> - 7d2: 25 e8 ldi r18, 0x85 ; 133 - 7d4: 2a 95 dec r18 - 7d6: f1 f7 brne .-4 ; 0x7d4 <__vector_1+0x142> - 7d8: 00 00 nop - 7da: 21 e3 ldi r18, 0x31 ; 49 - 7dc: 95 cf rjmp .-214 ; 0x708 <__vector_1+0x76> + df4: f5 e8 ldi r31, 0x85 ; 133 + df6: fa 95 dec r31 + df8: f1 f7 brne .-4 ; 0xdf6 <__vector_1+0x136> + dfa: 00 00 nop + dfc: 21 e3 ldi r18, 0x31 ; 49 + dfe: c2 cf rjmp .-124 ; 0xd84 <__vector_1+0xc4> + e00: 25 e8 ldi r18, 0x85 ; 133 + e02: 2a 95 dec r18 + e04: f1 f7 brne .-4 ; 0xe02 <__vector_1+0x142> + e06: 00 00 nop + e08: 21 e3 ldi r18, 0x31 ; 49 + e0a: 95 cf rjmp .-214 ; 0xd36 <__vector_1+0x76> ir.interrupt(); } - 7de: ff 91 pop r31 - 7e0: ef 91 pop r30 - 7e2: cf 91 pop r28 - 7e4: bf 91 pop r27 - 7e6: af 91 pop r26 - 7e8: 9f 91 pop r25 - 7ea: 8f 91 pop r24 - 7ec: 7f 91 pop r23 - 7ee: 6f 91 pop r22 - 7f0: 5f 91 pop r21 - 7f2: 4f 91 pop r20 - 7f4: 3f 91 pop r19 - 7f6: 2f 91 pop r18 - 7f8: 0f 90 pop r0 - 7fa: 0f be out 0x3f, r0 ; 63 - 7fc: 0f 90 pop r0 - 7fe: 1f 90 pop r1 - 800: 18 95 reti + e0c: ff 91 pop r31 + e0e: ef 91 pop r30 + e10: cf 91 pop r28 + e12: bf 91 pop r27 + e14: af 91 pop r26 + e16: 9f 91 pop r25 + e18: 8f 91 pop r24 + e1a: 7f 91 pop r23 + e1c: 6f 91 pop r22 + e1e: 5f 91 pop r21 + e20: 4f 91 pop r20 + e22: 3f 91 pop r19 + e24: 2f 91 pop r18 + e26: 0f 90 pop r0 + e28: 0f be out 0x3f, r0 ; 63 + e2a: 0f 90 pop r0 + e2c: 1f 90 pop r1 + e2e: 18 95 reti -00000802 <_GLOBAL__sub_I_Serial>: +00000e30 <_GLOBAL__sub_I_Serial>: */ #include "peripheral.h" #include uartclass Serial; - 802: 81 e7 ldi r24, 0x71 ; 113 - 804: 91 e0 ldi r25, 0x01 ; 1 - 806: 0e 94 5f 00 call 0xbe ; 0xbe <_ZN4UartILm9600EEC1Ev> + e30: 89 ea ldi r24, 0xA9 ; 169 + e32: 91 e0 ldi r25, 0x01 ; 1 + e34: 0e 94 93 02 call 0x526 ; 0x526 <_ZN4UartILm9600EEC1Ev> template class Stripe { public: Stripe() { this->init(); - 80a: 80 e7 ldi r24, 0x70 ; 112 - 80c: 91 e0 ldi r25, 0x01 ; 1 - 80e: 0e 94 f9 02 call 0x5f2 ; 0x5f2 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv> + e38: 88 e8 ldi r24, 0x88 ; 136 + e3a: 91 e0 ldi r25, 0x01 ; 1 + e3c: 0e 94 03 06 call 0xc06 ; 0xc06 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv> static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 812: 20 9a sbi 0x04, 0 ; 4 - 814: 21 9a sbi 0x04, 1 ; 4 + e40: 20 9a sbi 0x04, 0 ; 4 + e42: 21 9a sbi 0x04, 1 ; 4 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 816: 28 98 cbi 0x05, 0 ; 5 - 818: 29 98 cbi 0x05, 1 ; 5 - 81a: 56 98 cbi 0x0a, 6 ; 10 + e44: 28 98 cbi 0x05, 0 ; 5 + e46: 29 98 cbi 0x05, 1 ; 5 + e48: 56 98 cbi 0x0a, 6 ; 10 namespace avrlib { struct portd { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } - 81c: 5e 98 cbi 0x0b, 6 ; 11 + e4a: 5e 98 cbi 0x0b, 6 ; 11 static uint8_t pin() { return PIND; } static void pin(uint8_t v) { PIND = v; } static uint8_t dir() { return DDRD; } static void dir(uint8_t v) { DDRD = v; } - 81e: 57 98 cbi 0x0a, 7 ; 10 + e4c: 57 98 cbi 0x0a, 7 ; 10 namespace avrlib { struct portd { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } - 820: 5f 98 cbi 0x0b, 7 ; 11 + e4e: 5f 98 cbi 0x0b, 7 ; 11 // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=(0<_code = 255; - 83a: 8f ef ldi r24, 0xFF ; 255 - 83c: 80 93 6d 01 sts 0x016D, r24 + e68: 8f ef ldi r24, 0xFF ; 255 + e6a: 80 93 85 01 sts 0x0185, r24 // INT0 Mode: Falling Edge // INT1: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-14: Off // Interrupt on any change on pins PCINT16-23: Off EICRA=(0<: - 84e: a2 9f mul r26, r18 - 850: b0 01 movw r22, r0 - 852: b3 9f mul r27, r19 - 854: c0 01 movw r24, r0 - 856: a3 9f mul r26, r19 - 858: 01 d0 rcall .+2 ; 0x85c <__umulhisi3+0xe> - 85a: b2 9f mul r27, r18 - 85c: 70 0d add r23, r0 - 85e: 81 1d adc r24, r1 - 860: 11 24 eor r1, r1 - 862: 91 1d adc r25, r1 - 864: 08 95 ret +00000e7c <__subsf3>: + e7c: 50 58 subi r21, 0x80 ; 128 -00000866 <__tablejump2__>: - 866: ee 0f add r30, r30 - 868: ff 1f adc r31, r31 +00000e7e <__addsf3>: + e7e: bb 27 eor r27, r27 + e80: aa 27 eor r26, r26 + e82: 0e d0 rcall .+28 ; 0xea0 <__addsf3x> + e84: 08 c1 rjmp .+528 ; 0x1096 <__fp_round> + e86: f9 d0 rcall .+498 ; 0x107a <__fp_pscA> + e88: 30 f0 brcs .+12 ; 0xe96 <__addsf3+0x18> + e8a: fe d0 rcall .+508 ; 0x1088 <__fp_pscB> + e8c: 20 f0 brcs .+8 ; 0xe96 <__addsf3+0x18> + e8e: 31 f4 brne .+12 ; 0xe9c <__addsf3+0x1e> + e90: 9f 3f cpi r25, 0xFF ; 255 + e92: 11 f4 brne .+4 ; 0xe98 <__addsf3+0x1a> + e94: 1e f4 brtc .+6 ; 0xe9c <__addsf3+0x1e> + e96: ee c0 rjmp .+476 ; 0x1074 <__fp_nan> + e98: 0e f4 brtc .+2 ; 0xe9c <__addsf3+0x1e> + e9a: e0 95 com r30 + e9c: e7 fb bst r30, 7 + e9e: e4 c0 rjmp .+456 ; 0x1068 <__fp_inf> -0000086a <__tablejump__>: - 86a: 05 90 lpm r0, Z+ - 86c: f4 91 lpm r31, Z - 86e: e0 2d mov r30, r0 - 870: 09 94 ijmp +00000ea0 <__addsf3x>: + ea0: e9 2f mov r30, r25 + ea2: 0a d1 rcall .+532 ; 0x10b8 <__fp_split3> + ea4: 80 f3 brcs .-32 ; 0xe86 <__addsf3+0x8> + ea6: ba 17 cp r27, r26 + ea8: 62 07 cpc r22, r18 + eaa: 73 07 cpc r23, r19 + eac: 84 07 cpc r24, r20 + eae: 95 07 cpc r25, r21 + eb0: 18 f0 brcs .+6 ; 0xeb8 <__addsf3x+0x18> + eb2: 71 f4 brne .+28 ; 0xed0 <__addsf3x+0x30> + eb4: 9e f5 brtc .+102 ; 0xf1c <__addsf3x+0x7c> + eb6: 22 c1 rjmp .+580 ; 0x10fc <__fp_zero> + eb8: 0e f4 brtc .+2 ; 0xebc <__addsf3x+0x1c> + eba: e0 95 com r30 + ebc: 0b 2e mov r0, r27 + ebe: ba 2f mov r27, r26 + ec0: a0 2d mov r26, r0 + ec2: 0b 01 movw r0, r22 + ec4: b9 01 movw r22, r18 + ec6: 90 01 movw r18, r0 + ec8: 0c 01 movw r0, r24 + eca: ca 01 movw r24, r20 + ecc: a0 01 movw r20, r0 + ece: 11 24 eor r1, r1 + ed0: ff 27 eor r31, r31 + ed2: 59 1b sub r21, r25 + ed4: 99 f0 breq .+38 ; 0xefc <__addsf3x+0x5c> + ed6: 59 3f cpi r21, 0xF9 ; 249 + ed8: 50 f4 brcc .+20 ; 0xeee <__addsf3x+0x4e> + eda: 50 3e cpi r21, 0xE0 ; 224 + edc: 68 f1 brcs .+90 ; 0xf38 <__addsf3x+0x98> + ede: 1a 16 cp r1, r26 + ee0: f0 40 sbci r31, 0x00 ; 0 + ee2: a2 2f mov r26, r18 + ee4: 23 2f mov r18, r19 + ee6: 34 2f mov r19, r20 + ee8: 44 27 eor r20, r20 + eea: 58 5f subi r21, 0xF8 ; 248 + eec: f3 cf rjmp .-26 ; 0xed4 <__addsf3x+0x34> + eee: 46 95 lsr r20 + ef0: 37 95 ror r19 + ef2: 27 95 ror r18 + ef4: a7 95 ror r26 + ef6: f0 40 sbci r31, 0x00 ; 0 + ef8: 53 95 inc r21 + efa: c9 f7 brne .-14 ; 0xeee <__addsf3x+0x4e> + efc: 7e f4 brtc .+30 ; 0xf1c <__addsf3x+0x7c> + efe: 1f 16 cp r1, r31 + f00: ba 0b sbc r27, r26 + f02: 62 0b sbc r22, r18 + f04: 73 0b sbc r23, r19 + f06: 84 0b sbc r24, r20 + f08: ba f0 brmi .+46 ; 0xf38 <__addsf3x+0x98> + f0a: 91 50 subi r25, 0x01 ; 1 + f0c: a1 f0 breq .+40 ; 0xf36 <__addsf3x+0x96> + f0e: ff 0f add r31, r31 + f10: bb 1f adc r27, r27 + f12: 66 1f adc r22, r22 + f14: 77 1f adc r23, r23 + f16: 88 1f adc r24, r24 + f18: c2 f7 brpl .-16 ; 0xf0a <__addsf3x+0x6a> + f1a: 0e c0 rjmp .+28 ; 0xf38 <__addsf3x+0x98> + f1c: ba 0f add r27, r26 + f1e: 62 1f adc r22, r18 + f20: 73 1f adc r23, r19 + f22: 84 1f adc r24, r20 + f24: 48 f4 brcc .+18 ; 0xf38 <__addsf3x+0x98> + f26: 87 95 ror r24 + f28: 77 95 ror r23 + f2a: 67 95 ror r22 + f2c: b7 95 ror r27 + f2e: f7 95 ror r31 + f30: 9e 3f cpi r25, 0xFE ; 254 + f32: 08 f0 brcs .+2 ; 0xf36 <__addsf3x+0x96> + f34: b3 cf rjmp .-154 ; 0xe9c <__addsf3+0x1e> + f36: 93 95 inc r25 + f38: 88 0f add r24, r24 + f3a: 08 f0 brcs .+2 ; 0xf3e <__addsf3x+0x9e> + f3c: 99 27 eor r25, r25 + f3e: ee 0f add r30, r30 + f40: 97 95 ror r25 + f42: 87 95 ror r24 + f44: 08 95 ret -00000872 <_exit>: - 872: f8 94 cli +00000f46 <__cmpsf2>: + f46: 6c d0 rcall .+216 ; 0x1020 <__fp_cmp> + f48: 08 f4 brcc .+2 ; 0xf4c <__cmpsf2+0x6> + f4a: 81 e0 ldi r24, 0x01 ; 1 + f4c: 08 95 ret -00000874 <__stop_program>: - 874: ff cf rjmp .-2 ; 0x874 <__stop_program> +00000f4e <__fixunssfsi>: + f4e: bc d0 rcall .+376 ; 0x10c8 <__fp_splitA> + f50: 88 f0 brcs .+34 ; 0xf74 <__fixunssfsi+0x26> + f52: 9f 57 subi r25, 0x7F ; 127 + f54: 90 f0 brcs .+36 ; 0xf7a <__fixunssfsi+0x2c> + f56: b9 2f mov r27, r25 + f58: 99 27 eor r25, r25 + f5a: b7 51 subi r27, 0x17 ; 23 + f5c: a0 f0 brcs .+40 ; 0xf86 <__fixunssfsi+0x38> + f5e: d1 f0 breq .+52 ; 0xf94 <__fixunssfsi+0x46> + f60: 66 0f add r22, r22 + f62: 77 1f adc r23, r23 + f64: 88 1f adc r24, r24 + f66: 99 1f adc r25, r25 + f68: 1a f0 brmi .+6 ; 0xf70 <__fixunssfsi+0x22> + f6a: ba 95 dec r27 + f6c: c9 f7 brne .-14 ; 0xf60 <__fixunssfsi+0x12> + f6e: 12 c0 rjmp .+36 ; 0xf94 <__fixunssfsi+0x46> + f70: b1 30 cpi r27, 0x01 ; 1 + f72: 81 f0 breq .+32 ; 0xf94 <__fixunssfsi+0x46> + f74: c3 d0 rcall .+390 ; 0x10fc <__fp_zero> + f76: b1 e0 ldi r27, 0x01 ; 1 + f78: 08 95 ret + f7a: c0 c0 rjmp .+384 ; 0x10fc <__fp_zero> + f7c: 67 2f mov r22, r23 + f7e: 78 2f mov r23, r24 + f80: 88 27 eor r24, r24 + f82: b8 5f subi r27, 0xF8 ; 248 + f84: 39 f0 breq .+14 ; 0xf94 <__fixunssfsi+0x46> + f86: b9 3f cpi r27, 0xF9 ; 249 + f88: cc f3 brlt .-14 ; 0xf7c <__fixunssfsi+0x2e> + f8a: 86 95 lsr r24 + f8c: 77 95 ror r23 + f8e: 67 95 ror r22 + f90: b3 95 inc r27 + f92: d9 f7 brne .-10 ; 0xf8a <__fixunssfsi+0x3c> + f94: 3e f4 brtc .+14 ; 0xfa4 <__fixunssfsi+0x56> + f96: 90 95 com r25 + f98: 80 95 com r24 + f9a: 70 95 com r23 + f9c: 61 95 neg r22 + f9e: 7f 4f sbci r23, 0xFF ; 255 + fa0: 8f 4f sbci r24, 0xFF ; 255 + fa2: 9f 4f sbci r25, 0xFF ; 255 + fa4: 08 95 ret + +00000fa6 <__floatunsisf>: + fa6: e8 94 clt + fa8: 09 c0 rjmp .+18 ; 0xfbc <__floatsisf+0x12> + +00000faa <__floatsisf>: + faa: 97 fb bst r25, 7 + fac: 3e f4 brtc .+14 ; 0xfbc <__floatsisf+0x12> + fae: 90 95 com r25 + fb0: 80 95 com r24 + fb2: 70 95 com r23 + fb4: 61 95 neg r22 + fb6: 7f 4f sbci r23, 0xFF ; 255 + fb8: 8f 4f sbci r24, 0xFF ; 255 + fba: 9f 4f sbci r25, 0xFF ; 255 + fbc: 99 23 and r25, r25 + fbe: a9 f0 breq .+42 ; 0xfea <__floatsisf+0x40> + fc0: f9 2f mov r31, r25 + fc2: 96 e9 ldi r25, 0x96 ; 150 + fc4: bb 27 eor r27, r27 + fc6: 93 95 inc r25 + fc8: f6 95 lsr r31 + fca: 87 95 ror r24 + fcc: 77 95 ror r23 + fce: 67 95 ror r22 + fd0: b7 95 ror r27 + fd2: f1 11 cpse r31, r1 + fd4: f8 cf rjmp .-16 ; 0xfc6 <__floatsisf+0x1c> + fd6: fa f4 brpl .+62 ; 0x1016 <__floatsisf+0x6c> + fd8: bb 0f add r27, r27 + fda: 11 f4 brne .+4 ; 0xfe0 <__floatsisf+0x36> + fdc: 60 ff sbrs r22, 0 + fde: 1b c0 rjmp .+54 ; 0x1016 <__floatsisf+0x6c> + fe0: 6f 5f subi r22, 0xFF ; 255 + fe2: 7f 4f sbci r23, 0xFF ; 255 + fe4: 8f 4f sbci r24, 0xFF ; 255 + fe6: 9f 4f sbci r25, 0xFF ; 255 + fe8: 16 c0 rjmp .+44 ; 0x1016 <__floatsisf+0x6c> + fea: 88 23 and r24, r24 + fec: 11 f0 breq .+4 ; 0xff2 <__floatsisf+0x48> + fee: 96 e9 ldi r25, 0x96 ; 150 + ff0: 11 c0 rjmp .+34 ; 0x1014 <__floatsisf+0x6a> + ff2: 77 23 and r23, r23 + ff4: 21 f0 breq .+8 ; 0xffe <__floatsisf+0x54> + ff6: 9e e8 ldi r25, 0x8E ; 142 + ff8: 87 2f mov r24, r23 + ffa: 76 2f mov r23, r22 + ffc: 05 c0 rjmp .+10 ; 0x1008 <__floatsisf+0x5e> + ffe: 66 23 and r22, r22 + 1000: 71 f0 breq .+28 ; 0x101e <__floatsisf+0x74> + 1002: 96 e8 ldi r25, 0x86 ; 134 + 1004: 86 2f mov r24, r22 + 1006: 70 e0 ldi r23, 0x00 ; 0 + 1008: 60 e0 ldi r22, 0x00 ; 0 + 100a: 2a f0 brmi .+10 ; 0x1016 <__floatsisf+0x6c> + 100c: 9a 95 dec r25 + 100e: 66 0f add r22, r22 + 1010: 77 1f adc r23, r23 + 1012: 88 1f adc r24, r24 + 1014: da f7 brpl .-10 ; 0x100c <__floatsisf+0x62> + 1016: 88 0f add r24, r24 + 1018: 96 95 lsr r25 + 101a: 87 95 ror r24 + 101c: 97 f9 bld r25, 7 + 101e: 08 95 ret + +00001020 <__fp_cmp>: + 1020: 99 0f add r25, r25 + 1022: 00 08 sbc r0, r0 + 1024: 55 0f add r21, r21 + 1026: aa 0b sbc r26, r26 + 1028: e0 e8 ldi r30, 0x80 ; 128 + 102a: fe ef ldi r31, 0xFE ; 254 + 102c: 16 16 cp r1, r22 + 102e: 17 06 cpc r1, r23 + 1030: e8 07 cpc r30, r24 + 1032: f9 07 cpc r31, r25 + 1034: c0 f0 brcs .+48 ; 0x1066 <__fp_cmp+0x46> + 1036: 12 16 cp r1, r18 + 1038: 13 06 cpc r1, r19 + 103a: e4 07 cpc r30, r20 + 103c: f5 07 cpc r31, r21 + 103e: 98 f0 brcs .+38 ; 0x1066 <__fp_cmp+0x46> + 1040: 62 1b sub r22, r18 + 1042: 73 0b sbc r23, r19 + 1044: 84 0b sbc r24, r20 + 1046: 95 0b sbc r25, r21 + 1048: 39 f4 brne .+14 ; 0x1058 <__fp_cmp+0x38> + 104a: 0a 26 eor r0, r26 + 104c: 61 f0 breq .+24 ; 0x1066 <__fp_cmp+0x46> + 104e: 23 2b or r18, r19 + 1050: 24 2b or r18, r20 + 1052: 25 2b or r18, r21 + 1054: 21 f4 brne .+8 ; 0x105e <__fp_cmp+0x3e> + 1056: 08 95 ret + 1058: 0a 26 eor r0, r26 + 105a: 09 f4 brne .+2 ; 0x105e <__fp_cmp+0x3e> + 105c: a1 40 sbci r26, 0x01 ; 1 + 105e: a6 95 lsr r26 + 1060: 8f ef ldi r24, 0xFF ; 255 + 1062: 81 1d adc r24, r1 + 1064: 81 1d adc r24, r1 + 1066: 08 95 ret + +00001068 <__fp_inf>: + 1068: 97 f9 bld r25, 7 + 106a: 9f 67 ori r25, 0x7F ; 127 + 106c: 80 e8 ldi r24, 0x80 ; 128 + 106e: 70 e0 ldi r23, 0x00 ; 0 + 1070: 60 e0 ldi r22, 0x00 ; 0 + 1072: 08 95 ret + +00001074 <__fp_nan>: + 1074: 9f ef ldi r25, 0xFF ; 255 + 1076: 80 ec ldi r24, 0xC0 ; 192 + 1078: 08 95 ret + +0000107a <__fp_pscA>: + 107a: 00 24 eor r0, r0 + 107c: 0a 94 dec r0 + 107e: 16 16 cp r1, r22 + 1080: 17 06 cpc r1, r23 + 1082: 18 06 cpc r1, r24 + 1084: 09 06 cpc r0, r25 + 1086: 08 95 ret + +00001088 <__fp_pscB>: + 1088: 00 24 eor r0, r0 + 108a: 0a 94 dec r0 + 108c: 12 16 cp r1, r18 + 108e: 13 06 cpc r1, r19 + 1090: 14 06 cpc r1, r20 + 1092: 05 06 cpc r0, r21 + 1094: 08 95 ret + +00001096 <__fp_round>: + 1096: 09 2e mov r0, r25 + 1098: 03 94 inc r0 + 109a: 00 0c add r0, r0 + 109c: 11 f4 brne .+4 ; 0x10a2 <__fp_round+0xc> + 109e: 88 23 and r24, r24 + 10a0: 52 f0 brmi .+20 ; 0x10b6 <__fp_round+0x20> + 10a2: bb 0f add r27, r27 + 10a4: 40 f4 brcc .+16 ; 0x10b6 <__fp_round+0x20> + 10a6: bf 2b or r27, r31 + 10a8: 11 f4 brne .+4 ; 0x10ae <__fp_round+0x18> + 10aa: 60 ff sbrs r22, 0 + 10ac: 04 c0 rjmp .+8 ; 0x10b6 <__fp_round+0x20> + 10ae: 6f 5f subi r22, 0xFF ; 255 + 10b0: 7f 4f sbci r23, 0xFF ; 255 + 10b2: 8f 4f sbci r24, 0xFF ; 255 + 10b4: 9f 4f sbci r25, 0xFF ; 255 + 10b6: 08 95 ret + +000010b8 <__fp_split3>: + 10b8: 57 fd sbrc r21, 7 + 10ba: 90 58 subi r25, 0x80 ; 128 + 10bc: 44 0f add r20, r20 + 10be: 55 1f adc r21, r21 + 10c0: 59 f0 breq .+22 ; 0x10d8 <__fp_splitA+0x10> + 10c2: 5f 3f cpi r21, 0xFF ; 255 + 10c4: 71 f0 breq .+28 ; 0x10e2 <__fp_splitA+0x1a> + 10c6: 47 95 ror r20 + +000010c8 <__fp_splitA>: + 10c8: 88 0f add r24, r24 + 10ca: 97 fb bst r25, 7 + 10cc: 99 1f adc r25, r25 + 10ce: 61 f0 breq .+24 ; 0x10e8 <__fp_splitA+0x20> + 10d0: 9f 3f cpi r25, 0xFF ; 255 + 10d2: 79 f0 breq .+30 ; 0x10f2 <__fp_splitA+0x2a> + 10d4: 87 95 ror r24 + 10d6: 08 95 ret + 10d8: 12 16 cp r1, r18 + 10da: 13 06 cpc r1, r19 + 10dc: 14 06 cpc r1, r20 + 10de: 55 1f adc r21, r21 + 10e0: f2 cf rjmp .-28 ; 0x10c6 <__fp_split3+0xe> + 10e2: 46 95 lsr r20 + 10e4: f1 df rcall .-30 ; 0x10c8 <__fp_splitA> + 10e6: 08 c0 rjmp .+16 ; 0x10f8 <__fp_splitA+0x30> + 10e8: 16 16 cp r1, r22 + 10ea: 17 06 cpc r1, r23 + 10ec: 18 06 cpc r1, r24 + 10ee: 99 1f adc r25, r25 + 10f0: f1 cf rjmp .-30 ; 0x10d4 <__fp_splitA+0xc> + 10f2: 86 95 lsr r24 + 10f4: 71 05 cpc r23, r1 + 10f6: 61 05 cpc r22, r1 + 10f8: 08 94 sec + 10fa: 08 95 ret + +000010fc <__fp_zero>: + 10fc: e8 94 clt + +000010fe <__fp_szero>: + 10fe: bb 27 eor r27, r27 + 1100: 66 27 eor r22, r22 + 1102: 77 27 eor r23, r23 + 1104: cb 01 movw r24, r22 + 1106: 97 f9 bld r25, 7 + 1108: 08 95 ret + +0000110a <__gesf2>: + 110a: 8a df rcall .-236 ; 0x1020 <__fp_cmp> + 110c: 08 f4 brcc .+2 ; 0x1110 <__gesf2+0x6> + 110e: 8f ef ldi r24, 0xFF ; 255 + 1110: 08 95 ret + +00001112 <__divmodhi4>: + 1112: 97 fb bst r25, 7 + 1114: 07 2e mov r0, r23 + 1116: 16 f4 brtc .+4 ; 0x111c <__divmodhi4+0xa> + 1118: 00 94 com r0 + 111a: 07 d0 rcall .+14 ; 0x112a <__divmodhi4_neg1> + 111c: 77 fd sbrc r23, 7 + 111e: 09 d0 rcall .+18 ; 0x1132 <__divmodhi4_neg2> + 1120: 0e 94 a9 08 call 0x1152 ; 0x1152 <__udivmodhi4> + 1124: 07 fc sbrc r0, 7 + 1126: 05 d0 rcall .+10 ; 0x1132 <__divmodhi4_neg2> + 1128: 3e f4 brtc .+14 ; 0x1138 <__divmodhi4_exit> + +0000112a <__divmodhi4_neg1>: + 112a: 90 95 com r25 + 112c: 81 95 neg r24 + 112e: 9f 4f sbci r25, 0xFF ; 255 + 1130: 08 95 ret + +00001132 <__divmodhi4_neg2>: + 1132: 70 95 com r23 + 1134: 61 95 neg r22 + 1136: 7f 4f sbci r23, 0xFF ; 255 + +00001138 <__divmodhi4_exit>: + 1138: 08 95 ret + +0000113a <__umulhisi3>: + 113a: a2 9f mul r26, r18 + 113c: b0 01 movw r22, r0 + 113e: b3 9f mul r27, r19 + 1140: c0 01 movw r24, r0 + 1142: a3 9f mul r26, r19 + 1144: 01 d0 rcall .+2 ; 0x1148 <__umulhisi3+0xe> + 1146: b2 9f mul r27, r18 + 1148: 70 0d add r23, r0 + 114a: 81 1d adc r24, r1 + 114c: 11 24 eor r1, r1 + 114e: 91 1d adc r25, r1 + 1150: 08 95 ret + +00001152 <__udivmodhi4>: + 1152: aa 1b sub r26, r26 + 1154: bb 1b sub r27, r27 + 1156: 51 e1 ldi r21, 0x11 ; 17 + 1158: 07 c0 rjmp .+14 ; 0x1168 <__udivmodhi4_ep> + +0000115a <__udivmodhi4_loop>: + 115a: aa 1f adc r26, r26 + 115c: bb 1f adc r27, r27 + 115e: a6 17 cp r26, r22 + 1160: b7 07 cpc r27, r23 + 1162: 10 f0 brcs .+4 ; 0x1168 <__udivmodhi4_ep> + 1164: a6 1b sub r26, r22 + 1166: b7 0b sbc r27, r23 + +00001168 <__udivmodhi4_ep>: + 1168: 88 1f adc r24, r24 + 116a: 99 1f adc r25, r25 + 116c: 5a 95 dec r21 + 116e: a9 f7 brne .-22 ; 0x115a <__udivmodhi4_loop> + 1170: 80 95 com r24 + 1172: 90 95 com r25 + 1174: bc 01 movw r22, r24 + 1176: cd 01 movw r24, r26 + 1178: 08 95 ret + +0000117a <__tablejump2__>: + 117a: ee 0f add r30, r30 + 117c: ff 1f adc r31, r31 + +0000117e <__tablejump__>: + 117e: 05 90 lpm r0, Z+ + 1180: f4 91 lpm r31, Z + 1182: e0 2d mov r30, r0 + 1184: 09 94 ijmp + +00001186 <_exit>: + 1186: f8 94 cli + +00001188 <__stop_program>: + 1188: ff cf rjmp .-2 ; 0x1188 <__stop_program> diff --git a/Door/Debug/Door.map b/Door/Debug/Door.map index aa869d9..f6a1f49 100644 --- a/Door/Debug/Door.map +++ b/Door/Debug/Door.map @@ -1,5 +1,35 @@ Archive member included because of file (symbol) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) + Door.o (__addsf3) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) + c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) (__addsf3x) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) + Door.o (__eqsf2) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) + Door.o (__fixunssfsi) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) + Door.o (__floatsisf) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) + c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) (__fp_cmp) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_inf.o) + c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_inf) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) + c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_nan) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o) + c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_pscA) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o) + c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_pscB) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_round.o) + c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) (__fp_round) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_split3.o) + c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_split3) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) + c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_zero) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(gesf2.o) + Door.o (__gesf2) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + Door.o (__divmodhi4) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm168a.o (exit) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o) @@ -10,6 +40,8 @@ c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu- Door.o (__do_global_ctors) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) Door.o (__umulhisi3) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) (__udivmodhi4) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o) (__tablejump__) @@ -22,6 +54,45 @@ Discarded input sections .group 0x00000000 0x8 Door.o .group 0x00000000 0x8 Door.o .text 0x00000000 0x0 Door.o + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_inf.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_inf.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_round.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_round.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_split3.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_split3.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(gesf2.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(gesf2.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + .text.libgcc.mul + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + .text.libgcc.prologue + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + .text.libgcc.builtins + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + .text.libgcc.fmul + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) .text.libgcc.mul @@ -85,6 +156,17 @@ Discarded input sections 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) .text.libgcc.fmul 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc.mul + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc.prologue + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc.builtins + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc.fmul + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o) .text.libgcc.mul @@ -214,7 +296,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .rela.plt *(.rela.plt) -.text 0x00000000 0x876 +.text 0x00000000 0x118a *(.vectors) .vectors 0x00000000 0x68 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm168a.o 0x00000000 __vector_default @@ -282,7 +364,6 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 0x000000ba __vector_23 0x000000ba __vector_25 0x000000ba __vector_11 - 0x000000ba __vector_13 0x000000ba __vector_17 0x000000ba __vector_19 0x000000ba __vector_7 @@ -300,40 +381,101 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 0x000000ba __vector_20 0x000000be . = ALIGN (0x2) *(.text.*) + .text.__vector_13 + 0x000000be 0x468 Door.o + 0x000000be __vector_13 .text._ZN4UartILm9600EEC2Ev - 0x000000be 0x5e Door.o - 0x000000be _ZN4UartILm9600EEC1Ev - 0x000000be _ZN4UartILm9600EEC2Ev + 0x00000526 0x5e Door.o + 0x00000526 _ZN4UartILm9600EEC1Ev + 0x00000526 _ZN4UartILm9600EEC2Ev .text._ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh - 0x0000011c 0x2e Door.o - 0x0000011c _ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh + 0x00000584 0x2e Door.o + 0x00000584 _ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh .text._ZN4UartILm9600EE7printlnEPKc - 0x0000014a 0x4c Door.o - 0x0000014a _ZN4UartILm9600EE7printlnEPKc - .text.main 0x00000196 0x45c Door.o - 0x00000196 main + 0x000005b2 0x4c Door.o + 0x000005b2 _ZN4UartILm9600EE7printlnEPKc + .text.main 0x000005fe 0x608 Door.o + 0x000005fe main .text._ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv - 0x000005f2 0x44 Door.o - 0x000005f2 _ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv + 0x00000c06 0x5e Door.o + 0x00000c06 _ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv .text._ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv - 0x00000636 0x5c Door.o - 0x00000636 _ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv + 0x00000c64 0x5c Door.o + 0x00000c64 _ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv .text.__vector_1 - 0x00000692 0x170 Door.o - 0x00000692 __vector_1 + 0x00000cc0 0x170 Door.o + 0x00000cc0 __vector_1 .text._GLOBAL__sub_I_Serial - 0x00000802 0x4c Door.o + 0x00000e30 0x4c Door.o + .text.avr-libc.fplib + 0x00000e7c 0xa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) + 0x00000e7c __subsf3 + 0x00000e7e __addsf3 + .text.avr-libc.fplib + 0x00000e86 0xc0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) + 0x00000ea0 __addsf3x + .text.avr-libc.fplib + 0x00000f46 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) + 0x00000f46 __nesf2 + 0x00000f46 __eqsf2 + 0x00000f46 __cmpsf2 + 0x00000f46 __ltsf2 + 0x00000f46 __lesf2 + .text.avr-libc.fplib + 0x00000f4e 0x58 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) + 0x00000f4e __fixunssfsi + .text.avr-libc.fplib + 0x00000fa6 0x7a c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) + 0x00000fa6 __floatunsisf + 0x00000faa __floatsisf + .text.avr-libc.fplib + 0x00001020 0x48 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) + 0x00001020 __fp_cmp + .text.avr-libc.fplib + 0x00001068 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_inf.o) + 0x00001068 __fp_inf + .text.avr-libc.fplib + 0x00001074 0x6 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) + 0x00001074 __fp_nan + .text.avr-libc.fplib + 0x0000107a 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o) + 0x0000107a __fp_pscA + .text.avr-libc.fplib + 0x00001088 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o) + 0x00001088 __fp_pscB + .text.avr-libc.fplib + 0x00001096 0x22 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_round.o) + 0x00001096 __fp_round + .text.avr-libc.fplib + 0x000010b8 0x44 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_split3.o) + 0x000010b8 __fp_split3 + 0x000010c8 __fp_splitA + .text.avr-libc.fplib + 0x000010fc 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) + 0x000010fc __fp_zero + 0x000010fe __fp_szero + .text.avr-libc.fplib + 0x0000110a 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(gesf2.o) + 0x0000110a __gesf2 + 0x0000110a __gtsf2 + .text.libgcc.div + 0x00001112 0x28 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + 0x00001112 _div + 0x00001112 __divmodhi4 .text.libgcc.mul - 0x0000084e 0x18 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) - 0x0000084e __umulhisi3 - .text.libgcc 0x00000866 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o) - 0x00000866 __tablejump2__ - 0x0000086a __tablejump__ - 0x00000872 . = ALIGN (0x2) + 0x0000113a 0x18 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) + 0x0000113a __umulhisi3 + .text.libgcc.div + 0x00001152 0x28 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + 0x00001152 __udivmodhi4 + .text.libgcc 0x0000117a 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o) + 0x0000117a __tablejump2__ + 0x0000117e __tablejump__ + 0x00001186 . = ALIGN (0x2) *(.fini9) - .fini9 0x00000872 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) - 0x00000872 _exit - 0x00000872 exit + .fini9 0x00001186 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) + 0x00001186 _exit + 0x00001186 exit *(.fini9) *(.fini8) *(.fini8) @@ -352,52 +494,69 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00000872 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) + .fini0 0x00001186 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) *(.fini0) - 0x00000876 _etext = . + 0x0000118a _etext = . -.data 0x00800100 0x6c load address 0x00000876 +.data 0x00800100 0x84 load address 0x0000118a 0x00800100 PROVIDE (__data_start, .) *(.data) .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm168a.o .data 0x00800100 0x0 Door.o + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_inf.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_round.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_split3.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(gesf2.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o) .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o) .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o) .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) + .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o) *(.data*) *(.rodata) *(.rodata*) .rodata.str1.1 - 0x00800100 0x6c Door.o + 0x00800100 0x83 Door.o *(.gnu.linkonce.d*) - 0x0080016c . = ALIGN (0x2) - 0x0080016c _edata = . - 0x0080016c PROVIDE (__data_end, .) + 0x00800184 . = ALIGN (0x2) + *fill* 0x00800183 0x1 + 0x00800184 _edata = . + 0x00800184 PROVIDE (__data_end, .) -.bss 0x0080016c 0x6 - 0x0080016c PROVIDE (__bss_start, .) +.bss 0x00800184 0x26 + 0x00800184 PROVIDE (__bss_start, .) *(.bss) - .bss 0x0080016c 0x6 Door.o - 0x0080016c ir - 0x0080016e comp - 0x0080016f led - 0x00800170 stripe - 0x00800171 Serial + .bss 0x00800184 0x26 Door.o + 0x00800184 ir + 0x00800186 comp + 0x00800187 led + 0x00800188 stripe + 0x008001a9 Serial *(.bss*) *(COMMON) - 0x00800172 PROVIDE (__bss_end, .) - 0x00000876 __data_load_start = LOADADDR (.data) - 0x000008e2 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x008001aa PROVIDE (__bss_end, .) + 0x0000118a __data_load_start = LOADADDR (.data) + 0x0000120e __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x00800172 0x0 - 0x00800172 PROVIDE (__noinit_start, .) +.noinit 0x008001aa 0x0 + 0x008001aa PROVIDE (__noinit_start, .) *(.noinit*) - 0x00800172 PROVIDE (__noinit_end, .) - 0x00800172 _end = . - 0x00800172 PROVIDE (__heap_start, .) + 0x008001aa PROVIDE (__noinit_end, .) + 0x008001aa _end = . + 0x008001aa PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 *(.eeprom*) @@ -418,13 +577,41 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .user_signatures *(.user_signatures*) -.stab 0x00000000 0x6cc +.stab 0x00000000 0x1968 *(.stab) .stab 0x00000000 0x6cc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm168a.o + .stab 0x000006cc 0x78 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) + 0x84 (size before relaxing) + .stab 0x00000744 0x4bc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) + 0x4c8 (size before relaxing) + .stab 0x00000c00 0x90 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) + 0x9c (size before relaxing) + .stab 0x00000c90 0x240 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) + 0x24c (size before relaxing) + .stab 0x00000ed0 0x318 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) + 0x324 (size before relaxing) + .stab 0x000011e8 0x1e0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) + 0x1ec (size before relaxing) + .stab 0x000013c8 0x78 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_inf.o) + 0x84 (size before relaxing) + .stab 0x00001440 0x54 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) + 0x60 (size before relaxing) + .stab 0x00001494 0x84 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o) + 0x90 (size before relaxing) + .stab 0x00001518 0x84 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o) + 0x90 (size before relaxing) + .stab 0x0000159c 0xfc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_round.o) + 0x108 (size before relaxing) + .stab 0x00001698 0x1d4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_split3.o) + 0x1e0 (size before relaxing) + .stab 0x0000186c 0x90 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) + 0x9c (size before relaxing) + .stab 0x000018fc 0x6c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(gesf2.o) + 0x78 (size before relaxing) -.stabstr 0x00000000 0x82 +.stabstr 0x00000000 0x5b5 *(.stabstr) - .stabstr 0x00000000 0x82 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm168a.o + .stabstr 0x00000000 0x5b5 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm168a.o .stab.excl *(.stab.excl) @@ -455,39 +642,39 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .debug_sfnames *(.debug_sfnames) -.debug_aranges 0x00000000 0x58 +.debug_aranges 0x00000000 0x60 *(.debug_aranges) .debug_aranges - 0x00000000 0x58 Door.o + 0x00000000 0x60 Door.o .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0x2bd2 +.debug_info 0x00000000 0x3546 *(.debug_info) - .debug_info 0x00000000 0x2bd2 Door.o + .debug_info 0x00000000 0x3546 Door.o *(.gnu.linkonce.wi.*) -.debug_abbrev 0x00000000 0x464 +.debug_abbrev 0x00000000 0x4bb *(.debug_abbrev) - .debug_abbrev 0x00000000 0x464 Door.o + .debug_abbrev 0x00000000 0x4bb Door.o -.debug_line 0x00000000 0x511 +.debug_line 0x00000000 0x5d5 *(.debug_line) - .debug_line 0x00000000 0x511 Door.o + .debug_line 0x00000000 0x5d5 Door.o -.debug_frame 0x00000000 0xf8 +.debug_frame 0x00000000 0x190 *(.debug_frame) - .debug_frame 0x00000000 0xf8 Door.o + .debug_frame 0x00000000 0x190 Door.o -.debug_str 0x00000000 0x1247 +.debug_str 0x00000000 0x13b1 *(.debug_str) - .debug_str 0x00000000 0x1247 Door.o - 0x12aa (size before relaxing) + .debug_str 0x00000000 0x13b1 Door.o + 0x1419 (size before relaxing) -.debug_loc 0x00000000 0xccb +.debug_loc 0x00000000 0x14d0 *(.debug_loc) - .debug_loc 0x00000000 0xccb Door.o + .debug_loc 0x00000000 0x14d0 Door.o .debug_macinfo *(.debug_macinfo) @@ -495,9 +682,9 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .debug_pubtypes *(.debug_pubtypes) -.debug_ranges 0x00000000 0x330 +.debug_ranges 0x00000000 0x2d8 *(.debug_ranges) - .debug_ranges 0x00000000 0x330 Door.o + .debug_ranges 0x00000000 0x2d8 Door.o .debug_macro *(.debug_macro) diff --git a/Door/Debug/Door.srec b/Door/Debug/Door.srec index b7a2677..1b82835 100644 --- a/Door/Debug/Door.srec +++ b/Door/Debug/Door.srec @@ -1,145 +1,292 @@ S00C0000446F6F722E7372656384 -S11300000C9435000C9449030C945D000C945D0031 +S11300000C9435000C9460060C945D000C945D0017 S11300100C945D000C945D000C945D000C945D00E8 S11300200C945D000C945D000C945D000C945D00D8 -S11300300C945D000C945D000C945D000C945D00C8 +S11300300C945D000C945F000C945D000C945D00C6 S11300400C945D000C945D000C945D000C945D00B8 S11300500C945D000C945D000C945D000C945D00A8 -S11300600C945D000C945D00010411241FBECFEFBD -S1130070D4E0DEBFCDBF11E0A0E0B1E0E6E7F8E0F8 -S113008002C005900D92AC36B107D9F721E0ACE679 -S1130090B1E001C01D92A237B207E1F710E0CAE651 -S11300A0D0E004C02297FE010E943504C836D1076F -S11300B0C9F70E94CB000C9439040C940000CF9330 -S11300C0DF93789481E88093C4001092C00088E0A4 -S11300D08093C10086E08093C200A1E0B1E095E581 -S11300E0E0ECF0E0C6ECD0E0808185FFFDCF9883A2 -S11300F09D919111F9CFE0ECF0E0808185FFFDCF77 -S11301008DE08093C600E0ECF0E0808185FFFDCFB8 -S11301108AE08093C600DF91CF91089560FF04C008 -S11301208FEF8093B30002C01092B30061FF04C04C -S11301308FEF8093B40002C01092B40062FF03C03A -S11301408FEF88BD089518BC0895CF93DF93FB010A -S11301509081992369F0DB011196E0ECF0E0C6ECA4 -S1130160D0E0808185FFFDCF98839D919111F9CFD7 -S1130170E0ECF0E0808185FFFDCF8DE08093C60048 -S1130180E0ECF0E0808185FFFDCF8AE08093C6003B -S1130190DF91CF910895789464E080E791E00E9424 -S11301A08E006BE071E081E791E00E94A5002FE7EB -S11301B03AE186E0215030408040E1F700C0000081 -S11301C062E080E791E00E948E0060E171E081E7E7 -S11301D091E00E94A5009FE7AAE1B6E09150A040FB -S11301E0B040E1F700C0000061E080E791E00E94C8 -S11301F08E0066E171E081E791E00E94A5002FE79F -S11302003AE186E0215030408040E1F700C0000030 -S113021067E080E791E00E948E006CE171E081E785 -S113022091E00E94A5009FE7AAE1B6E09150A040AA -S1130230B040E1F700C00000299A60E080E791E057 -S11302400E948E00CDE6D1E066246A94762C0F2EAF -S1130250F4EBEF2EF12CF02D6894222427F803EB15 -S113026010E0E0ECF0E046EC50E00F2EFDE04F2E05 -S1130270F02D0F2EFAE05F2EF02D0F2EF0EC3F2E16 -S1130280F02D0F2EF0EB8F2E912CF02D888178829B -S11302908C3009F4CFC038F5853009F4A4C090F44B -S11302A0823009F484C038F4882309F446C08130CC -S11302B009F0F6C05FC0833009F487C0843009F0C8 -S11302C0EFC08BC0883009F4A0C038F4863009F43C -S11302D090C0873009F0E4C092C08A3009F4A3C00A -S11302E008F075C199C0823109F4C2C090F48F300E -S11302F009F46DC138F48D3009F4A2C08E3009F0D0 -S1130300CFC0A4C0803109F4A7C0813109F0C8C0AE -S1130310A9C0853109F4B8C038F4833109F457C150 -S1130320843109F0BDC0AAC0873109F450C108F472 -S1130330B1C08F3F09F0B4C04AC188B58B3F20F4E7 -S113034088B58B5F88BD01C018BCD7018C918B3FE9 -S113035020F48C918B5F8C9302C0D7011C92D8013E -S11303608C918B3F20F48C918B5F8C9330C1D8019E -S11303701C922DC188B5853020F088B5855088BD84 -S113038001C018BCD7018C91853020F08C91855028 -S11303908C9302C0D7011C92D8018C91853020F037 -S11303A08C9185508C9313C1D8011C9210C184B5D3 -S11303B08F7D84BDD4018C918F758C935D98559AF3 -S11303C05B98539A2B98239A02C184B5806284BDAA -S11303D0D4018C91806A8C93FAC0D8011C92D70105 -S11303E01C9268BCF4C0D8011C92D7016C9218BC52 -S11303F0EEC0D8016C92D7011C9218BCE8C0D80199 -S11304006C92D7016C9268BCE2C068BC20E4D7014E -S11304102C93D8011C92DBC018BCD7016C9220E449 -S1130420D8012C93D4C030E438BDD7011C92D80134 -S11304306C92CDC068BCD7012C92D8011C92C7C065 -S113044018BCD7016C92D8012C92C1C028BCD7012A -S11304501C92D8016C92BBC068BCD7013C92D801F5 -S11304601C92B5C018BCD7016C92D8013C92AFC0A5 -S113047038BCD7011C92D8016C92A9C068BCD701C2 -S11304806C92D8011C92A3C018BCD7016C92D801FD -S11304906C929DC068BCD7011C92D8016C9297C025 -S11304A0C82ED12C808185FFFDCF80E3DA018C93A7 -S11304B060E070E0CB019695879596958795969523 -S11304C087959C01220F331F880F991F880F991F4E -S11304D0880F991F820F931F681B790B605D8081C1 -S11304E085FFFDCFDA016C939601369527953695F5 -S11304F02795ABE7B4E10E94270496958795805D24 -S1130500908195FFFDCFDA018C939601ADECBCECA4 -S11305100E9427045C01B694A794B694A794B69459 -S1130520A79495010E94270496958795969587959B -S1130530969587959C01220F331F880F991F880F6A -S1130540991F880F991F820F931F9501281B390B40 -S1130550922F905D808185FFFDCFDA019C939601F7 -S1130560ADECBCEC0E9427049695879596958795EB -S1130570969587959C01220F331F880F991F880F2A -S1130580991F880F991F820F931F9601281B390BFF -S1130590922F905D808185FFFDCFDA019C93A3E6C5 -S11305A0B1E090E29D01808185FFFDCFDA019C934B -S11305B0D9019D919D019111F6CF808185FFFDCFD9 -S11305C0DA014C92808185FFFDCFDA015C9287E8E5 -S11305D093E10197F1F700C0000029989FEDAAE08C -S11305E0B6E09150A040B040E1F700C00000299A65 -S11305F04DCE559A539A239A81E084BD94E095BDDB -S113060016BC1092B600E0EBF0E0808385E08093A6 -S1130610B1001092B20010926E001092700084B576 -S1130620806284BD8081806A808318BC1092B4008B -S11306301092B300089520E030E080E061E070E0C3 -S11306404A9BFECFEFE9FFE03197F1F700C00000CD -S11306504A9B08C0AB01022E02C0440F551F0A94E6 -S1130660E2F7842B4A990FC008C04A9B06C0F5E8FC -S1130670FA95F1F700009150C1F72F5F3F4F2830F2 -S11306803105F1F6089545E84A95F1F7000091E344 -S1130690ECCF1F920F920FB60F9211242F933F931A -S11306A04F935F936F937F938F939F93AF93BF9376 -S11306B0CF93EF93FF93289A4A9979C08FE19EE4F0 -S11306C00197F1F700C000004A9971C04A9BFECF20 -S11306D04A99FECF80E090E060E041E050E04A9B20 -S11306E0FECFEFE9FFE03197F1F700C000004A9B2D -S11306F008C09A01082E02C0220F331F0A94E2F7A1 -S1130700622B4A9966C008C04A9B06C0F5E8FA9570 -S1130710F1F700002150C1F7019688309105F9F6F0 -S1130720611139C080E090E041E050E04A9BFECF87 -S1130730EFE9FFE03197F1F700C000004A9B08C0E1 -S11307409A01082E02C0220F331F0A94E2F7622B8B -S11307504A9939C008C04A9B06C0F5E8FA95F1F7F2 -S113076000002150C1F7019688309105F9F66F3EDB -S113077091F48CE691E00E941B03C82F8CE691E073 -S11307800E941B03282F30E02C0F311D2F3F310511 -S113079011F4CF3F51F42FE734E88EE1215030407B -S11307A08040E1F700C000000BC0CE3F39F4E7E819 -S11307B0F3E13197F1F700C0000002C0C0936D016E -S11307C02898E09A0CC0F5E8FA95F1F7000021E3C7 -S11307D0C2CF25E82A95F1F7000021E395CFFF91D8 -S11307E0EF91CF91BF91AF919F918F917F916F9135 -S11307F05F914F913F912F910F900FBE0F901F90DB -S1130800189581E791E00E945F0080E791E00E94E3 -S1130810F902209A219A2898299856985E98579810 -S11308205F9810BE10927B0083E080937F00209A33 -S1130830219A2898299852985A988FEF80936D019D -S113084082E08093690081E08DBB1CBA0895A29F69 -S1130850B001B39FC001A39F01D0B29F700D811D51 -S11308601124911D0895EE0FFF1F0590F491E02DC2 -S10908700994F894FFCF87 -S11308765561727420646F6E652100526F74210095 -S11308864772FC6E2100426C61752100576569DF71 -S11308962C20616C6C657320496E697469616C699E -S11308A673657274212048616265204665727469B5 -S11308B66720756E642064616D6974206162207AB4 -S11308C6756D204E6F726D616C62657472696562D6 -S10F08D6210020507265737365642100DA +S11300600C945D000C945D00180711241FBECFEFA3 +S1130070D4E0DEBFCDBF11E0A0E0B1E0EAE8F1E1F9 +S113008002C005900D92A438B107D9F721E0A4E885 +S1130090B1E001C01D92AA3AB207E1F710E0CAE646 +S11300A0D0E004C02297FE010E94BF08C836D107E1 +S11300B0C9F70E94FF020C94C3080C9400001F921D +S11300C00F920FB60F9211248F929F92AF92BF920C +S11300D0CF92DF92EF92FF922F933F934F935F93D0 +S11300E06F937F938F939F93AF93BF93CF93DF933C +S11300F0EF93FF93C0918801CC2309F4F9C1C09018 +S11301009D01D0909E01E0909F01F090A00120E01D +S113011030E0A901C701B6010E94A30781116BC099 +S113012020E030E0A9016091A1017091A2018091C9 +S1130130A3019091A4010E94A30781115CC020E057 +S113014030E0A9016091A5017091A6018091A701F9 +S11301509091A8010E94A30781114DC0D0E028B559 +S1130160C957DE4FE888F12C898190E0821B910900 +S11301706E2D7F2D0E948908882777FD8095982F02 +S11301800E94D50760939D0170939E0180939F0107 +S11301909093A0012091B4008E8190E0821B91097C +S11301A06E2D7F2D0E948908882777FD8095982FD2 +S11301B00E94D5076093A1017093A2018093A301CB +S11301C09093A4012091B3008B8590E0821B910948 +S11301D06E2D7F2D0E948908882777FD8095982FA2 +S11301E00E94D5076093A5017093A6018093A7018F +S11301F09093A8017DC120E030E0A901C701B601B8 +S11302000E94850818160CF568B570E080E090E04F +S11302100E94D5079B01AC01C701B6010E943F07AC +S11302204B015C01EC2FF0E0E857FE4F608170E079 +S113023080E090E00E94D5079B01AC01C501B401A8 +S11302400E94A30718160CF0FEC020E030E0A901BC +S1130250C701B6010E94A30788230CF0E6C068B565 +S113026070E080E090E00E94D5079B01AC01C701DB +S1130270B6010E943F074B015C01EC2FF0E0E85708 +S1130280FE4F608170E080E090E00E94D5079B0102 +S1130290AC01C501B4010E94850888230CF0D3C0C9 +S11302A0C4C0C090A101D090A201E090A301F0903D +S11302B0A40120E030E0A901C701B6010E9485082D +S11302C018161CF56091B40070E080E090E00E9484 +S11302D0D5079B01AC01C701B6010E943F074B0142 +S11302E05C01E0918801F0E0E857FE4F658170E021 +S11302F080E090E00E94D5079B01AC01C501B401E8 +S11303000E94A30718160CF0AEC020E030E0A9014B +S1130310C701B6010E94A30788230CF0B6C0609100 +S1130320B40070E080E090E00E94D5079B01AC012E +S1130330C701B6010E943F074B015C01E0918801AF +S1130340F0E0E857FE4F658170E080E090E00E94A5 +S1130350D5079B01AC01C501B4010E94850888231F +S11303600CF081C092C0C090A501D090A601E0908D +S1130370A701F090A80120E030E0A901C701B6016F +S11303800E94850818161CF56091B30070E080E0A7 +S113039090E00E94D5079B01AC01C701B6010E9401 +S11303A03F074B015C01E0918801F0E0E857FE4F04 +S11303B0628570E080E090E00E94D5079B01AC016B +S11303C0C501B4010E94A30718160CF06FC020E009 +S11303D030E0A901C701B6010E94A30788230CF0ED +S11303E077C06091B30070E080E090E00E94D50790 +S11303F09B01AC01C701B6010E943F074B015C01A0 +S1130400E0918801F0E0E857FE4F628570E080E0FB +S113041090E00E94D5079B01AC01C501B4010E9484 +S1130420850888230CF042C053C0D0E0C857DE4F83 +S1130430888188BD10929D0110929E0110929F01A7 +S11304401092A0012ECF68B570E080E090E00E9489 +S1130450D5079B01AC01C701B6010E943F070E946A +S1130460A70768BD1ECFC4EBD0E0688170E080E0D0 +S113047090E00E94D5079B01AC01C701B6010E9420 +S11304803F070E94A70768836ECFE0918801F0E0E0 +S1130490E857FE4F85818093B4001092A101109219 +S11304A0A2011092A3011092A4015DCFC3EBD0E08E +S11304B0688170E080E090E00E94D5079B01AC0168 +S11304C0C701B6010E943F070E94A707688310C0B6 +S11304D0E0918801F0E0E857FE4F82858093B300F5 +S11304E01092A5011092A6011092A7011092A801E2 +S11304F0FF91EF91DF91CF91BF91AF919F918F9138 +S11305007F916F915F914F913F912F91FF90EF9069 +S1130510DF90CF90BF90AF909F908F900F900FBEC1 +S11305200F901F901895CF93DF93789481E8809370 +S1130530C4001092C00088E08093C10086E08093DC +S1130540C200A1E0B1E095E5E0ECF0E0C6ECD0E05B +S1130550808185FFFDCF98839D919111F9CFE0ECC7 +S1130560F0E0808185FFFDCF8DE08093C600E0EC54 +S1130570F0E0808185FFFDCF8AE08093C600DF91A3 +S1130580CF91089560FF04C08FEF8093B30002C041 +S11305901092B30061FF04C08FEF8093B40002C0D7 +S11305A01092B40062FF03C08FEF88BD089518BC99 +S11305B00895CF93DF93FB019081992369F0DB01C8 +S11305C01196E0ECF0E0C6ECD0E0808185FFFDCF31 +S11305D098839D919111F9CFE0ECF0E0808185FF43 +S11305E0FDCF8DE08093C600E0ECF0E0808185FFD4 +S11305F0FDCF8AE08093C600DF91CF910895CF9319 +S1130600DF9300D000D0CDB7DEB7789464E088E8FB +S113061091E00E94C2026BE071E089EA91E00E94DD +S1130620D9022FE73AE186E0215030408040E1F7DB +S113063000C0000062E088E891E00E94C20260E12C +S113064071E089EA91E00E94D9029FE7AAE1B6E04D +S11306509150A040B040E1F700C0000061E088E89C +S113066091E00E94C20266E171E089EA91E00E9491 +S1130670D9022FE73AE186E0215030408040E1F78B +S113068000C0000067E088E891E00E94C2026CE1CB +S113069071E089EA91E00E94D9029FE7AAE1B6E0FD +S11306A09150A040B040E1F700C00000299A60E0FA +S11306B088E891E00E94C202212C45E851E0BB2465 +S11306C0BA94AB2C0F2EF9E8EF2EF1E0FF2EF02DAB +S11306D00EE811E00F2EF3E98F2EF1E09F2EF02D9E +S11306E00F2EF8E96F2EF1E07F2EF02D0F2EFAE099 +S11306F03F2EF02D0F2EF8E84F2EF1E05F2EF02D57 +S1130700CC24C394E0ECF0E00F2EFDE0DF2EF02DBE +S1130710DA018C91AC928C3009F4FCC038F5853048 +S113072009F4B3C090F4823009F48CC038F48823FF +S113073009F446C0813009F056C163C0833009F41E +S113074090C0843009F04FC195C0883009F4BEC010 +S113075038F4863009F4A4C0873009F044C1ABC032 +S11307608A3009F4CBC008F0E5C1BCC0823109F479 +S11307700DC190F48F3009F4DDC138F48D3009F4E3 +S1130780D5C08E3009F02FC1DDC0803109F4E6C038 +S1130790813109F028C1EEC0853109F40EC138F465 +S11307A0833109F4C7C1843109F01DC1FBC087310D +S11307B009F4C0C108F40CC18F3F09F014C1BAC1D7 +S11307C088B58B3F20F488B58B5F88BD01C018BC09 +S11307D0A4EBB0E08C918B3F20F48C918B5F8C93D5 +S11307E003C0A4EBB0E01C92A3EBB0E08C918B3F70 +S11307F020F48C918B5F8C939DC1A3EBB0E01C9291 +S113080099C188B5853020F088B5855088BD01C070 +S113081018BCA4EBB0E08C91853020F08C9185500D +S11308208C9303C0A4EBB0E01C92A3EBB0E08C91DA +S1130830853020F08C9185508C937CC1A3EBB0E083 +S11308401C9278C184B58F7D84BDA0EBB0E08C91FF +S11308508F758C935D98559A5B98539A2B98239A2D +S113086069C184B5806284BDA0EBB0E08C91806ADC +S11308708C9360C1D701BC92D8011C92D4011C9204 +S1130880D3013C92D201CC9255C1D7011C92D8011C +S1130890BC92D4011C92D3013C92D201CC924AC1A5 +S11308A0D7011C92D8011C92D401BC92D3013C9272 +S11308B0D201CC923FC1D701BC92D801BC92D401E1 +S11308C0BC92D3013C92D201CC9234C1D701BC92E8 +S11308D020E4D8012C93D4011C92D3013C92D20180 +S11308E0CC9228C1D7011C92D801BC9220E4D40137 +S11308F02C93D3013C92D201CC921CC120E4D701A9 +S11309002C93D8011C92D401BC92D3013C92D20105 +S1130910CC9210C1D701BC9220E8D8012C93D40109 +S11309201C92D3013C92D201CC9204C1D7011C92F7 +S1130930D801BC9220E8D4012C93D3013C92D2017B +S1130940CC92F8C020E8D7012C93D8011C92D40192 +S1130950BC92D3013C92D201CC92ECC0D701BC92A0 +S113096020ECD8012C93D4011C92D3013C92D201E7 +S1130970CC92E0C0D7011C92D801BC9220ECD401E7 +S11309802C93D3013C92D201CC92D4C020ECD70159 +S11309902C93D8011C92D401BC92D3013C92D20175 +S11309A0CC92C8C0D701BC92D801BC92D4011C928D +S11309B0D3013C92D201CC92BDC0D7011C92D80184 +S11309C0BC92D401BC92D3013C92D201CC92B2C06D +S11309D0D701BC92D8011C92D401BC92D3013C92A1 +S11309E0D201CC92A7C0282F30E03A83298380819A +S11309F085FFFDCF80E3A6ECB0E08C9360E070E06F +S1130A00CB019695879596958795969587959C01A4 +S1130A10220F331F880F991F880F991F880F991F62 +S1130A20820F931F681B790B605D808185FFFDCF6A +S1130A30A6ECB0E06C9329813A81369527953695DA +S1130A402795ABE7B4E10E949D0896958795805D54 +S1130A50908195FFFDCFA6ECB0E08C9329813A817B +S1130A60ADECBCEC0E949D0896958795969587956C +S1130A70969587959C838B839C010E949D089695EF +S1130A80879596958795969587959C01220F331F98 +S1130A90880F991F880F991F880F991F820F931F22 +S1130AA02B813C81281B390BC901805D908195FF06 +S1130AB0FDCFA6ECB0E08C9329813A81ADECBCEC7F +S1130AC00E949D0896958795969587959695879506 +S1130AD09C01220F331F880F991F880F991F880FBD +S1130AE0991F820F931F29813A81281B390BC90151 +S1130AF0805D908195FFFDCFA6ECB0E08C93A3E6DA +S1130B00B1E090E29D01808185FFFDCFA6ECB0E0CD +S1130B109C93D9019D919D019111F5CF808185FF11 +S1130B20FDCFA6ECB0E0DC92808185FFFDCFA6EC82 +S1130B30B0E03C9200B605FE2AC0211052C0D70195 +S1130B40BC92D8011C92D4011C9224E6D3012C93AC +S1130B50D201CC92ADE6B1E094E59D01808185FFA0 +S1130B60FDCFA6ECB0E09C93D9019D919D0191111C +S1130B70F5CF808185FFFDCFA6ECB0E0DC928081CB +S1130B8085FFFDCFA6ECB0E03C922C2C2AC0B1E04E +S1130B902B1227C0A7E7B1E094E59D01808185FF72 +S1130BA0FDCFA6ECB0E09C93D9019D919D019111DC +S1130BB0F5CF808185FFFDCFA6ECB0E0DC9280818B +S1130BC085FFFDCFA6ECB0E03C92D7011C92D80182 +S1130BD0BC92D4011C9222E3D3012C93D201CC9277 +S1130BE0212C87E893E10197F1F700C000002998D0 +S1130BF09FEDAAE0B6E09150A040B040E1F700C0FC +S1130C000000299A85CD559A539A239AFC011082A3 +S1130C1081E084BD94E095BD16BC1092800092E002 +S1130C209093810010928500109284001092B60077 +S1130C30E0EBF0E0808395E09093B1001092B20075 +S1130C4010926E0080936F001092700084B58062E1 +S1130C5084BD8081806A808318BC1092B400109295 +S1130C60B300089520E030E080E061E070E04A9B4A +S1130C70FECFEFE9FFE03197F1F700C000004A9B97 +S1130C8008C0AB01022E02C0440F551F0A94E2F7BC +S1130C90842B4A990FC008C04A9B06C0F5E8FA9510 +S1130CA0F1F700009150C1F72F5F3F4F2830310515 +S1130CB0F1F6089545E84A95F1F7000091E3ECCF89 +S1130CC01F920F920FB60F9211242F933F934F93BD +S1130CD05F936F937F938F939F93AF93BF93CF93C0 +S1130CE0EF93FF93289A4A9979C08FE19EE4019784 +S1130CF0F1F700C000004A9971C04A9BFECF4A999F +S1130D00FECF80E090E060E041E050E04A9BFECFFF +S1130D10EFE9FFE03197F1F700C000004A9B08C0FB +S1130D209A01082E02C0220F331F0A94E2F7622BA5 +S1130D304A9966C008C04A9B06C0F5E8FA95F1F7DF +S1130D4000002150C1F7019688309105F9F6611130 +S1130D5039C080E090E041E050E04A9BFECFEFE9EB +S1130D60FFE03197F1F700C000004A9B08C09A01E8 +S1130D70082E02C0220F331F0A94E2F7622B4A990D +S1130D8039C008C04A9B06C0F5E8FA95F1F700009F +S1130D902150C1F7019688309105F9F66F3E91F420 +S1130DA084E891E00E943206C82F84E891E00E9412 +S1130DB03206282F30E02C0F311D2F3F310511F45E +S1130DC0CF3F51F42FE734E88EE12150304080408A +S1130DD0E1F700C000000BC0CE3F39F4E7E8F3E1CF +S1130DE03197F1F700C0000002C0C0938501289834 +S1130DF0E09A0CC0F5E8FA95F1F7000021E3C2CFC0 +S1130E0025E82A95F1F7000021E395CFFF91EF91B2 +S1130E10CF91BF91AF919F918F917F916F915F918E +S1130E204F913F912F910F900FBE0F901F901895E7 +S1130E3089EA91E00E94930288E891E00E94030607 +S1130E40209A219A2898299856985E9857985F98DE +S1130E5010BE10927B0083E080937F00209A219A39 +S1130E602898299852985A988FEF8093850182E0A8 +S1130E708093690081E08DBB1CBA08955058BB274C +S1130E80AA270ED008C1F9D030F0FED020F031F4FA +S1130E909F3F11F41EF4EEC00EF4E095E7FBE4C0AE +S1130EA0E92F0AD180F3BA176207730784079507FD +S1130EB018F071F49EF522C10EF4E0950B2EBA2FB2 +S1130EC0A02D0B01B90190010C01CA01A00111244C +S1130ED0FF27591B99F0593F50F4503E68F11A16F8 +S1130EE0F040A22F232F342F4427585FF3CF469589 +S1130EF037952795A795F0405395C9F77EF41F16AB +S1130F00BA0B620B730B840BBAF09150A1F0FF0F74 +S1130F10BB1F661F771F881FC2F70EC0BA0F621F60 +S1130F20731F841F48F4879577956795B795F79550 +S1130F309E3F08F0B3CF9395880F08F09927EE0FE2 +S1130F409795879508956CD008F481E00895BCD0F6 +S1130F5088F09F5790F0B92F9927B751A0F0D1F09E +S1130F60660F771F881F991F1AF0BA95C9F712C028 +S1130F70B13081F0C3D0B1E00895C0C0672F782F9D +S1130F808827B85F39F0B93FCCF386957795679594 +S1130F90B395D9F73EF490958095709561957F4F00 +S1130FA08F4F9F4F0895E89409C097FB3EF49095A6 +S1130FB08095709561957F4F8F4F9F4F9923A9F02E +S1130FC0F92F96E9BB279395F695879577956795BD +S1130FD0B795F111F8CFFAF4BB0F11F460FF1BC001 +S1130FE06F5F7F4F8F4F9F4F16C0882311F096E994 +S1130FF011C0772321F09EE8872F762F05C0662342 +S113100071F096E8862F70E060E02AF09A95660FFA +S1131010771F881FDAF7880F9695879597F90895B3 +S1131020990F0008550FAA0BE0E8FEEF16161706F5 +S1131030E807F907C0F012161306E407F50798F05D +S1131040621B730B840B950B39F40A2661F0232B76 +S1131050242B252B21F408950A2609F4A140A695F2 +S11310608FEF811D811D089597F99F6780E870E0D7 +S113107060E008959FEF80EC089500240A9416160A +S1131080170618060906089500240A941216130672 +S1131090140605060895092E0394000C11F4882300 +S11310A052F0BB0F40F4BF2B11F460FF04C06F5F1C +S11310B07F4F8F4F9F4F089557FD9058440F551FF2 +S11310C059F05F3F71F04795880F97FB991F61F0C6 +S11310D09F3F79F087950895121613061406551F3D +S11310E0F2CF4695F1DF08C0161617061806991FA9 +S11310F0F1CF86957105610508940895E894BB279E +S113110066277727CB0197F908958ADF08F48FEFD4 +S1131110089597FB072E16F4009407D077FD09D0A5 +S11311200E94A90807FC05D03EF4909581959F4F35 +S11311300895709561957F4F0895A29FB001B39F64 +S1131140C001A39F01D0B29F700D811D1124911D78 +S11311500895AA1BBB1B51E107C0AA1FBB1FA617FA +S1131160B70710F0A61BB70B881F991F5A95A9F74C +S113117080959095BC01CD010895EE0FFF1F059059 +S10D1180F491E02D0994F894FFCFD8 +S113118A5561727420646F6E652100526F74210078 +S113119A4772FC6E2100426C61752100576569DF54 +S11311AA2C20616C6C657320496E697469616C6981 +S11311BA7365727421204861626520466572746998 +S11311CA6720756E642064616D6974206162207A97 +S11311DA756D204E6F726D616C62657472696562B9 +S11311EA21002050726573736564210054FC7220D7 +S11311FA5A752E2E2E0054FC72204F6666656E2E8A +S107120A2E2E000080 S9030000FC diff --git a/Door/Door.cpp b/Door/Door.cpp index 374ecb9..d159587 100644 --- a/Door/Door.cpp +++ b/Door/Door.cpp @@ -17,6 +17,7 @@ irclass ir; int main(void) { sei(); + uint8_t doorstatus = 0; stripe.setcolor(stripe.RED); Serial.println("Rot!"); _delay_ms(100); @@ -31,6 +32,8 @@ int main(void) _delay_ms(100); led.green(1); stripe.setcolor(stripe.BLACK); + + uint8_t remotetimer = 10; while(1) { uint8_t c = ir.getCode(); @@ -40,28 +43,41 @@ int main(void) case 1: stripe.lower(); break; //Button Low case 2: stripe.off(); break; //Button OFF case 3: stripe.on(); break; //Button ON - case 4: stripe.setcolor(stripe.RED); break; //Button R - case 5: stripe.setcolor(stripe.GREEN); break; //Button G - case 6: stripe.setcolor(stripe.BLUE); break; //Button B - case 7: stripe.setcolor(stripe.WHITE); break; //Button W - case 8: stripe.color(0xFF,0x40,0x00); break; //Color Red 100 % + Green 25 % - case 9: stripe.color(0x00,0xFF,0x40); break; //Color Green 100 % + Blue 25 % - case 10: stripe.color(0x40,0x00,0xFF); break; //Color Blue 100 % + Red 25 % + case 4: stripe.fadeto(0xFF,0x00,0x00,remotetimer); break; //Button R + case 5: stripe.fadeto(0x00,0xFF,0x00,remotetimer); break; //Button G + case 6: stripe.fadeto(0x00,0x00,0xFF,remotetimer); break; //Button B + case 7: stripe.fadeto(0xFF,0xFF,0xFF,remotetimer); break; //Button W + case 8: stripe.fadeto(0xFF,0x40,0x00,remotetimer); break; //Color Red 100 % + Green 25 % + case 9: stripe.fadeto(0x00,0xFF,0x40,remotetimer); break; //Color Green 100 % + Blue 25 % + case 10: stripe.fadeto(0x40,0x00,0xFF,remotetimer); break; //Color Blue 100 % + Red 25 % case 11: break; //Button Flash - case 12: stripe.color(0xFF,0x80,0x00); break; //Color Red 100 % + Green 50 % - case 13: stripe.color(0x00,0xFF,0x80); break; //Color Green 100 % + Blue 50 % - case 14: stripe.color(0x80,0x00,0xFF); break; //Color Blue 100 % + Red 50 % + case 12: stripe.fadeto(0xFF,0x80,0x00,remotetimer); break; //Color Red 100 % + Green 50 % + case 13: stripe.fadeto(0x00,0xFF,0x80,remotetimer); break; //Color Green 100 % + Blue 50 % + case 14: stripe.fadeto(0x80,0x00,0xFF,remotetimer); break; //Color Blue 100 % + Red 50 % case 15: break; //Button STROBE - case 16: stripe.color(0xFF,0xC0,0x00); break; //Color Red 100 % + Green 75 % - case 17: stripe.color(0x00,0xFF,0xC0); break; //Color Green 100 % + Blue 75 % - case 18: stripe.color(0xC0,0x00,0xFF); break; //Color Blue 100 % + Red 75 % + case 16: stripe.fadeto(0xFF,0xC0,0x00,remotetimer); break; //Color Red 100 % + Green 75 % + case 17: stripe.fadeto(0x00,0xFF,0xC0,remotetimer); break; //Color Green 100 % + Blue 75 % + case 18: stripe.fadeto(0xC0,0x00,0xFF,remotetimer); break; //Color Blue 100 % + Red 75 % case 19: break; //Button FADE - case 20: stripe.color(0xFF,0xFF,0x00); break; //Color Red 100 % + Green 100 % - case 21: stripe.color(0x00,0xFF,0xFF); break; //Color Green 100 % + Blue 100 % - case 22: stripe.color(0xFF,0x00,0xFF); break; //Color Blue 100 % + Red 100 % + case 20: stripe.fadeto(0xFF,0xFF,0x00,remotetimer); break; //Color Red 100 % + Green 100 % + case 21: stripe.fadeto(0x00,0xFF,0xFF,remotetimer); break; //Color Green 100 % + Blue 100 % + case 22: stripe.fadeto(0xFF,0x00,0xFF,remotetimer); break; //Color Blue 100 % + Red 100 % case 23: break; //Button SMOOTH default: Serial.printDec(c); Serial.println(" Pressed!"); break; //Code den ich nicht kenne } + if(comp.is_active()) { + if(doorstatus == 0) { + doorstatus = 1; + stripe.fadeto(0xFF,0x00,0x00,100); + Serial.println("Tür Zu..."); + } + } else { + if(doorstatus == 1) { + doorstatus = 0; + Serial.println("Tür Offen..."); + stripe.fadeto(0x00,0xFF,0x00,50); + } + } _delay_ms(1); led.green(0); _delay_ms(99); @@ -73,29 +89,6 @@ ISR(INT0_vect) { ir.interrupt(); } - - - - - /*stripe.color(re, gr, 0); - if(comp.is_active()) { - if(status == 0) { - status = 1; - Serial.println("Tür Zu..."); - } - if(gr != 0) { - gr--; - re++; - _delay_ms(6); - } - } else { - if(status == 1) { - status = 0; - Serial.println("Tür Offen..."); - } - if(gr != 0xFF) { - gr++; - re--; - _delay_ms(2); - } - }*/ \ No newline at end of file +ISR(TIMER1_OVF_vect) { + stripe.interrupt(); +} \ No newline at end of file diff --git a/Door/io/Led.hpp b/Door/io/Led.hpp index 5b70fcc..d052ef6 100644 --- a/Door/io/Led.hpp +++ b/Door/io/Led.hpp @@ -26,6 +26,8 @@ class Led { void green(uint8_t g) { if(g==1) { ledgreen::set(); + } else if(g==2) { + ledgreen::toggle(); } else { ledgreen::clear(); } diff --git a/Door/io/Stripe.hpp b/Door/io/Stripe.hpp index cfdc982..9ecca33 100644 --- a/Door/io/Stripe.hpp +++ b/Door/io/Stripe.hpp @@ -79,11 +79,53 @@ class Stripe { OCR2A = 0; } } + void fadeto(uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->setfadecolor(0, red, green, blue, time); + this->fade_zylk = 1; + } + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + this->fademap[1][index] = green; + this->fademap[2][index] = blue; + this->fademap[3][index] = time; + } + void interrupt() { + if(this->fade_zylk > 0) { + if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { + this->fadesteps[0] = (this->fademap[0][this->fade_zylk-1]-OCR0B)/this->fademap[3][this->fade_zylk-1]; //Calc Red; + this->fadesteps[1] = (this->fademap[1][this->fade_zylk-1]-OCR2B)/this->fademap[3][this->fade_zylk-1]; //Calc Green; + this->fadesteps[2] = (this->fademap[2][this->fade_zylk-1]-OCR2A)/this->fademap[3][this->fade_zylk-1]; //Calc Blue; + } else { + if((this->fadesteps[0] > 0 && (OCR0B + this->fadesteps[0]) <= this->fademap[0][this->fade_zylk-1]) || (this->fadesteps[0] < 0 && (OCR0B + this->fadesteps[0]) >= this->fademap[0][this->fade_zylk-1])) { + OCR0B = OCR0B + this->fadesteps[0]; + } else { + OCR0B = this->fademap[0][this->fade_zylk-1]; + this->fadesteps[0] = 0; + } + if((this->fadesteps[1] > 0 && (OCR2B + this->fadesteps[1]) <= this->fademap[1][this->fade_zylk-1]) || (this->fadesteps[1] < 0 && (OCR2B + this->fadesteps[1]) >= this->fademap[1][this->fade_zylk-1])) { + OCR2B = OCR2B + this->fadesteps[1]; + } else { + OCR2B = this->fademap[1][this->fade_zylk-1]; + this->fadesteps[1] = 0; + } + if((this->fadesteps[2] > 0 && (OCR2A + this->fadesteps[2]) <= this->fademap[2][this->fade_zylk-1]) || (this->fadesteps[2] < 0 && (OCR2A + this->fadesteps[2]) >= this->fademap[2][this->fade_zylk-1])) { + OCR2A = OCR2A + this->fadesteps[2]; + } else { + OCR2A = this->fademap[2][this->fade_zylk-1]; + this->fadesteps[2] = 0; + } + } + } + } private: + uint8_t fade_zylk; + uint8_t fademap[4][5]; + float fadesteps[3]; void init() { stripered::make_output(); stripegreen::make_output(); stripeblue::make_output(); + this->fade_zylk = 0; this->initTimer(); this->color(0, 0, 0); } @@ -114,6 +156,23 @@ class Stripe { TCCR0A=(0<timerOn();