diff --git a/Door.atsuo b/Door.atsuo index 5fa081b..8302ca4 100644 Binary files a/Door.atsuo and b/Door.atsuo differ diff --git a/Door/Debug/Door.elf b/Door/Debug/Door.elf index c4c3001..20d0e08 100644 Binary files a/Door/Debug/Door.elf and b/Door/Debug/Door.elf differ 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();