diff --git a/Door.atsuo b/Door.atsuo index 8302ca4..317de3d 100644 Binary files a/Door.atsuo and b/Door.atsuo differ diff --git a/Door/Debug/Door.d b/Door/Debug/Door.d index a768e7f..ef4763d 100644 --- a/Door/Debug/Door.d +++ b/Door/Debug/Door.d @@ -13,10 +13,11 @@ Door.d Door.o: .././Door.cpp .././peripheral.h .././io/hardware/portb.hpp \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h \ .././io/hardware/portd.hpp .././io/Stripe.hpp .././io/hardware/pin.hpp \ + .././io/Led.hpp .././io/Comperator.hpp .././io/IR.hpp \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay_basic.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h \ - .././io/Led.hpp .././io/Comperator.hpp .././io/IR.hpp .././io/uart.hpp \ + .././io/uart.hpp \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/interrupt.h .././peripheral.h: @@ -55,18 +56,18 @@ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8- .././io/hardware/pin.hpp: -c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h: - -c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay_basic.h: - -c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h: - .././io/Led.hpp: .././io/Comperator.hpp: .././io/IR.hpp: +c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h: + +c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay_basic.h: + +c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h: + .././io/uart.hpp: c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/interrupt.h: diff --git a/Door/Debug/Door.elf b/Door/Debug/Door.elf index 20d0e08..06576b1 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 40c34bd..c748881 100644 --- a/Door/Debug/Door.hex +++ b/Door/Debug/Door.hex @@ -1,291 +1,293 @@ -:100000000C9435000C9460060C945D000C945D001B +:100000000C9435000C946D060C945D000C945D000E :100010000C945D000C945D000C945D000C945D00EC :100020000C945D000C945D000C945D000C945D00DC :100030000C945D000C945F000C945D000C945D00CA :100040000C945D000C945D000C945D000C945D00BC :100050000C945D000C945D000C945D000C945D00AC -:100060000C945D000C945D00180711241FBECFEFA7 -:10007000D4E0DEBFCDBF11E0A0E0B1E0EAE8F1E1FD +:100060000C945D000C945D00250711241FBECFEF9A +:10007000D4E0DEBFCDBF11E0A0E0B1E0E4EAF1E101 :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 +:10009000B1E001C01D92A63BB207E1F710E0CAE64D +:1000A000D0E004C02297FE010E94CC08C836D107D8 +:1000B000C9F70E940C030C94D0080C9400001F9206 +:1000C0000F920FB60F9211242F923F924F925F9290 +:1000D0006F927F928F929F92AF92BF92CF92DF9258 +:1000E000EF92FF920F931F932F933F934F935F9342 +:1000F0006F937F938F939F93AF93BF93CF93DF9330 +:10010000EF93FF93C0918801CC2309F4F6C120E05E +:1001100030E0A90160919D0170919E0180919F0145 +:100120009091A0010E94B0078111F0C020E030E062 +:10013000A9016091A1017091A2018091A301909108 +:10014000A4010E94B0078111E4C020E030E0A901C1 +:100150006091A5017091A6018091A7019091A801DD +:100160000E94B007882329F088248394D4C0B394D4 +:1001700011C0BB24B394D0E021970F2EF4EBCF2E07 +:10018000D12CF02D0F2EF8E96F2EF1E07F2EF02DFF +:100190006C0E7D1E1B2D1150E12EF12C9E01F701DE +:1001A000EE0FFF1FEE0FFF1FEE0DFF1DE857FE4F76 +:1001B000EC0FFD1F818190E0113009F120F0123029 +:1001C00009F057C039C048B59701220F331F220FDD +:1001D000331F890108571E4F841B9109F301608169 +:1001E00070E00E949608882777FD8095982F0E94DE +:1001F000E207F801658B768B878B908F5DC0F601E7 +:1002000040819701220F331F220F331F89010857A6 +:100210001E4F841B9109F301608170E00E949608D3 +:10022000882777FD8095982F0E94E207F801658B5B +:10023000768B878B908F42C04091B300E701CC0F43 +:10024000DD1FCC0FDD1FC857DE4F841B9109F9015C +:10025000E857FE4F608970E00E949608882777FD76 +:100260008095982F0E94E2076D8B7E8B8F8B988FE5 +:1002700028C09701220F331F220F331F0F2EF8E8DB +:100280008F2EF1E09F2EF02D820E931EF3016081E0 +:1002900070E00E949608882777FD8095982F0E942D +:1002A000E207F401658B768B878B908F113031F0EC +:1002B00018F01230C9F405C068B507C1F6016081B5 +:1002C00004C16091B300E701CC0FDD1FCC0FDD1F2F +:1002D000C857DE4F70E080E090E00E94E00769A31D +:1002E0007AA38BA39CA309C1F701EE0FFF1FEE0FAA +:1002F000FF1FE857FE4F11A212A213A214A2F2E0B0 +:10030000FB1508F034CFF9C0839410C0882483947F +:1003100002C0882483940F2EF8E8AF2EF1E0BF2EA0 +:10032000F02D0F2EF4EB2F2E312CF02D982C9A94CB +:10033000C92DD0E0FE01EE0FFF1FEE0FFF1FE857A3 +:10034000FE4FC588D688E788F08C20E030E0A90110 +:10035000C701B6010E94920818164CF58E01000FD5 +:10036000111F000F111FF801E857FE4F21A132A104 +:1003700043A154A1C701B6010E944C072B013C01C7 +:10038000F5018081F801EC0FFD1FE80FF11DE85722 +:10039000FE4F608170E080E090E00E94E2079B01E8 +:1003A000AC01C301B2010E94B00718169CF520E011 +:1003B00030E0A901C701B6010E94B00788230CF004 +:1003C00056C08E01000F111F000F111FF801E857D2 +:1003D000FE4F21A132A143A154A1C701B6010E9441 +:1003E0004C072B013C01F5018081F801EC0FFD1F4A +:1003F000E80FF11DE857FE4F608170E080E090E06B +:100400000E94E2079B01AC01C301B2010E94920865 +:1004100088236CF1CC0FDD1FCC0FDD1FC857DE4FDA +:1004200029A13AA14BA15CA1C701B6010E944C07CA +:10043000262F372F462F572F682F792F49A35AA3DE +:100440006BA37CA3622F732F0E94B407F1E09F1669 +:1004500041F09F1620F082E0981232C005C068BDBE +:1004600053CFF101608350CF6093B30046C0F501D4 +:100470008081FE01EE0FFF1FEE0FFF1FEC0FFD1F2F +:10048000E80FF11DE857FE4F8081F1E09F1641F023 +:100490009F1620F092E0991209C005C088BD06C0E1 +:1004A000F101808303C0E3EBF0E08083CC0FDD1F1C +:1004B000CC0FDD1FC857DE4F1D8A1E8A1F8A188E7B +:1004C000F2E0F81508F020CF18C0C701880F991F77 +:1004D000880F991F0F2EF8E8EF2EF1E0FF2EF02D78 +:1004E000E80EF91E70E080E090E00E94E007F7015E +:1004F00061A372A383A394A33ACEFF91EF91DF91FE +:10050000CF91BF91AF919F918F917F916F915F91AB +:100510004F913F912F911F910F91FF90EF90DF909E +:10052000CF90BF90AF909F908F907F906F905F9093 +:100530004F903F902F900F900FBE0F901F901895E7 +:10054000CF93DF93789481E88093C4001092C00029 +:1005500088E08093C10086E08093C200A1E0B1E012 +:1005600095E5E0ECF0E0C6ECD0E0808185FFFDCFC2 +:1005700098839D919111F9CFE0ECF0E0808185FFA7 +:10058000FDCF8DE08093C600E0ECF0E0808185FF38 +:10059000FDCF8AE08093C600DF91CF91089560FF80 +:1005A00004C08FEF8093B30002C01092B30061FFCC +:1005B00004C08FEF8093B40002C01092B40062FFB9 +:1005C00003C08FEF88BD089518BC0895CF93DF93C3 +:1005D000FB019081992369F0DB011196E0ECF0E0DA +:1005E000C6ECD0E0808185FFFDCF98839D9191116D +:1005F000F9CFE0ECF0E0808185FFFDCF8DE08093C6 +:10060000C600E0ECF0E0808185FFFDCF8AE08093BA +:10061000C600DF91CF910895CF93DF9300D000D033 +:10062000CDB7DEB7789464E088E891E00E94CF020D +:100630006BE071E085EB91E00E94E6022FE73AE182 +:1006400086E0215030408040E1F700C0000062E0C9 +:1006500088E891E00E94CF0260E171E085EB91E0D3 +:100660000E94E6029FE7AAE1B6E09150A040B040A8 +:10067000E1F700C0000061E088E891E00E94CF024D +:1006800066E171E085EB91E00E94E6022FE73AE136 +:1006900086E0215030408040E1F700C0000067E074 +:1006A00088E891E00E94CF026CE171E085EB91E077 +:1006B0000E94E6029FE7AAE1B6E09150A040B04058 +:1006C000E1F700C00000299A60E088E891E00E940C +:1006D000CF02212C45E851E0BB24BA94AB2C0F2E5D +:1006E000F9E8EF2EF1E0FF2EF02D0EE811E00F2ECD +:1006F000F3E98F2EF1E09F2EF02D0F2EF8E96F2EEB +:10070000F1E07F2EF02D0F2EFAE03F2EF02D0F2E70 +:10071000F8E84F2EF1E05F2EF02DCC24C394E0ECEE +:10072000F0E00F2EFDE0DF2EF02DDA018C91AC927F +:100730008C3009F4FCC038F5853009F4B3C090F46E +:10074000823009F48CC038F4882309F446C0813023 +:1007500009F056C163C0833009F490C0843009F0B9 +:100760004FC195C0883009F4BEC038F4863009F412 +:10077000A4C0873009F044C1ABC08A3009F4CBC0B3 +:1007800008F0E5C1BCC0823109F40DC190F48F308E +:1007900009F4DDC138F48D3009F4D5C08E3009F08C +:1007A0002FC1DDC0803109F4E6C0813109F028C1D4 +:1007B000EEC0853109F40EC138F4833109F4C7C1A4 +:1007C000843109F01DC1FBC0873109F4C0C108F4B0 +:1007D0000CC18F3F09F014C1BAC188B58B3F20F41A +:1007E00088B58B5F88BD01C018BCA4EBB0E08C91CC +:1007F0008B3F20F48C918B5F8C9303C0A4EBB0E013 +:100800001C92A3EBB0E08C918B3F20F48C918B5F1A +:100810008C939DC1A3EBB0E01C9299C188B5853043 +:1008200020F088B5855088BD01C018BCA4EBB0E0AD +:100830008C91853020F08C9185508C9303C0A4EB73 +:10084000B0E01C92A3EBB0E08C91853020F08C914D +:1008500085508C937CC1A3EBB0E01C9278C184B529 +:100860008F7D84BDA0EBB0E08C918F758C935D98EB +:10087000559A5B98539A2B98239A69C184B58062E4 +:1008800084BDA0EBB0E08C91806A8C9360C1D701ED +:10089000BC92D8011C92D4011C92D3013C92D2018B +:1008A000CC9255C1D7011C92D801BC92D4011C92A4 +:1008B000D3013C92D201CC924AC1D7011C92D801FB +:1008C0001C92D401BC92D3013C92D201CC923FC184 +:1008D000D701BC92D801BC92D401BC92D3013C9206 +:1008E000D201CC9234C1D701BC9220E4D8012C9320 +:1008F000D4011C92D3013C92D201CC9228C1D701E1 +:100900001C92D801BC9220E4D4012C93D3013C92D8 +:10091000D201CC921CC120E4D7012C93D8011C92A7 +:10092000D401BC92D3013C92D201CC9210C1D70128 +:10093000BC9220E8D8012C93D4011C92D3013C92A4 +:10094000D201CC9204C1D7011C92D801BC9220E8FC +:10095000D4012C93D3013C92D201CC92F8C020E870 +:10096000D7012C93D8011C92D401BC92D3013C92A4 +:10097000D201CC92ECC0D701BC9220ECD8012C93D0 +:10098000D4011C92D3013C92D201CC92E0C0D70199 +:100990001C92D801BC9220ECD4012C93D3013C9240 +:1009A000D201CC92D4C020ECD7012C93D8011C9258 +:1009B000D401BC92D3013C92D201CC92C8C0D701E1 +:1009C000BC92D801BC92D4011C92D3013C92D201BA +:1009D000CC92BDC0D7011C92D801BC92D401BC926C +:1009E000D3013C92D201CC92B2C0D701BC92D801C3 +:1009F0001C92D401BC92D3013C92D201CC92A7C0EC +:100A0000282F30E03A832983808185FFFDCF80E362 +:100A1000A6ECB0E08C9360E070E0CB0196958795F2 +:100A200096958795969587959C01220F331F880F81 +:100A3000991F880F991F880F991F820F931F681B9A +:100A4000790B605D808185FFFDCFA6ECB0E06C93F3 +:100A500029813A813695279536952795ABE7B4E1FC +:100A60000E94AA0896958795805D908195FFFDCF9D +:100A7000A6ECB0E08C9329813A81ADECBCEC0E94ED +:100A8000AA089695879596958795969587959C83C0 +:100A90008B839C010E94AA089695879596958795C9 +:100AA000969587959C01220F331F880F991F880FF9 +:100AB000991F880F991F820F931F2B813C81281B40 +:100AC000390BC901805D908195FFFDCFA6ECB0E0A8 +:100AD0008C9329813A81ADECBCEC0E94AA089695D2 +:100AE000879596958795969587959C01220F331F3C +:100AF000880F991F880F991F880F991F820F931FC6 +:100B000029813A81281B390BC901805D908195FFAD +:100B1000FDCFA6ECB0E08C93A3E6B1E090E29D019E +:100B2000808185FFFDCFA6ECB0E09C93D9019D911B +:100B30009D019111F5CF808185FFFDCFA6ECB0E03E +:100B4000DC92808185FFFDCFA6ECB0E03C9200B640 +:100B500005FE2AC0211052C0D701BC92D8011C92B8 +:100B6000D4011C9224E6D3012C93D201CC92ADE6A1 +:100B7000B1E094E59D01808185FFFDCFA6ECB0E05A +:100B80009C93D9019D919D019111F5CF808185FFA5 +:100B9000FDCFA6ECB0E0DC92808185FFFDCFA6EC16 +:100BA000B0E03C922C2C2AC0B1E02B1227C0A7E762 +:100BB000B1E094E59D01808185FFFDCFA6ECB0E01A +:100BC0009C93D9019D919D019111F5CF808185FF65 +:100BD000FDCFA6ECB0E0DC92808185FFFDCFA6ECD6 +:100BE000B0E03C92D7011C92D801BC92D4011C9277 +:100BF00022E3D3012C93D201CC92212C87E893E1FC +:100C00000197F1F700C0000029989FEDAAE0B6E037 +:100C10009150A040B040E1F700C00000299A85CD76 +:100C2000559A539A239AFC01108281E084BD94E086 +:100C300095BD16BC1092800092E0909381001092B6 +:100C40008500109284001092B600E0EBF0E0808303 +:100C500095E09093B1001092B20010926E008093D4 +:100C60006F001092700084B5806284BD8081806ABC +:100C7000808318BC1092B4001092B300089520E055 +:100C800030E080E061E070E04A9BFECFEFE9FFE0FA +:100C90003197F1F700C000004A9B08C0AB01022E5B +:100CA00002C0440F551F0A94E2F7842B4A990FC0E3 +:100CB00008C04A9B06C0F5E8FA95F1F7000091508C +:100CC000C1F72F5F3F4F28303105F1F6089545E811 +:100CD0004A95F1F7000091E3ECCF1F920F920FB607 +:100CE0000F9211242F933F934F935F936F937F93B2 +:100CF0008F939F93AF93BF93CF93EF93FF93289AD4 +:100D00004A9979C08FE19EE40197F1F700C0000095 +:100D10004A9971C04A9BFECF4A99FECF80E090E08D +:100D200060E041E050E04A9BFECFEFE9FFE0319701 +:100D3000F1F700C000004A9B08C09A01082E02C0CB +:100D4000220F331F0A94E2F7622B4A9966C008C04B +:100D50004A9B06C0F5E8FA95F1F700002150C1F76B +:100D6000019688309105F9F6611139C080E090E074 +:100D700041E050E04A9BFECFEFE9FFE03197F1F709 +:100D800000C000004A9B08C09A01082E02C0220F32 +:100D9000331F0A94E2F7622B4A9939C008C04A9B74 +:100DA00006C0F5E8FA95F1F700002150C1F7019669 +:100DB00088309105F9F66F3E91F484E891E00E9445 +:100DC0003F06C82F84E891E00E943F06282F30E0BC +:100DD0002C0F311D2F3F310511F4CF3F51F42FE778 +:100DE00034E88EE1215030408040E1F700C000003F +:100DF0000BC0CE3F39F4E7E8F3E13197F1F700C0DB +:100E0000000002C0C09385012898E09A0CC0F5E864 +:100E1000FA95F1F7000021E3C2CF25E82A95F1F712 +:100E2000000021E395CFFF91EF91CF91BF91AF915A +:100E30009F918F917F916F915F914F913F912F91F2 +:100E40000F900FBE0F901F90189585EB91E00E94B8 +:100E5000A00288E891E00E941006209A219A289822 +:100E6000299856985E9857985F9810BE10927B000C +:100E700083E080937F00209A219A2898299852989D +:100E80005A988FEF8093850182E08093690081E01A +:100E90008DBB1CBA08955058BB27AA270ED008C195 +:100EA000F9D030F0FED020F031F49F3F11F41EF461 +:100EB000EEC00EF4E095E7FBE4C0E92F0AD180F321 +:100EC000BA17620773078407950718F071F49EF547 +:100ED00022C10EF4E0950B2EBA2FA02D0B01B90103 +:100EE00090010C01CA01A0011124FF27591B99F0A0 +:100EF000593F50F4503E68F11A16F040A22F232FAC +:100F0000342F4427585FF3CF469537952795A795FB +:100F1000F0405395C9F77EF41F16BA0B620B730BA2 +:100F2000840BBAF09150A1F0FF0FBB1F661F771F13 +:100F3000881FC2F70EC0BA0F621F731F841F48F4C8 +:100F4000879577956795B795F7959E3F08F0B3CF4E +:100F50009395880F08F09927EE0F97958795089538 +:100F60006CD008F481E00895BCD088F09F5790F0D1 +:100F7000B92F9927B751A0F0D1F0660F771F881FBE +:100F8000991F1AF0BA95C9F712C0B13081F0C3D0D9 +:100F9000B1E00895C0C0672F782F8827B85F39F077 +:100FA000B93FCCF3869577956795B395D9F73EF41D +:100FB00090958095709561957F4F8F4F9F4F0895C5 +:100FC000E89409C097FB3EF49095809570956195E3 +:100FD0007F4F8F4F9F4F9923A9F0F92F96E9BB2799 +:100FE0009395F695879577956795B795F111F8CF15 +:100FF000FAF4BB0F11F460FF1BC06F5F7F4F8F4F80 +:101000009F4F16C0882311F096E911C0772321F075 +:101010009EE8872F762F05C0662371F096E8862F0D +:1010200070E060E02AF09A95660F771F881FDAF764 +:10103000880F9695879597F90895990F0008550F91 +:10104000AA0BE0E8FEEF16161706E807F907C0F04E +:1010500012161306E407F50798F0621B730B840B56 +:10106000950B39F40A2661F0232B242B252B21F430 +:1010700008950A2609F4A140A6958FEF811D811DD0 +:10108000089597F99F6780E870E060E008959FEF0A +:1010900080EC089500240A9416161706180609060F +:1010A000089500240A9412161306140605060895DE +:1010B000092E0394000C11F4882352F0BB0F40F466 +:1010C000BF2B11F460FF04C06F5F7F4F8F4F9F4FA6 +:1010D000089557FD9058440F551F59F05F3F71F028 +:1010E0004795880F97FB991F61F09F3F79F087958F +:1010F0000895121613061406551FF2CF4695F1DF18 +:1011000008C0161617061806991FF1CF86957105A7 +:10111000610508940895E894BB2766277727CB01DB +:1011200097F908958ADF08F48FEF089597FB072E4B +:1011300016F4009407D077FD09D00E94B60807FC8A +:1011400005D03EF4909581959F4F089570956195D7 +:101150007F4F0895A29FB001B39FC001A39F01D00C +:10116000B29F700D811D1124911D0895AA1BBB1BF8 +:1011700051E107C0AA1FBB1FA617B70710F0A61B97 +:10118000B70B881F991F5A95A9F780959095BC01B8 +:10119000CD010895EE0FFF1F0590F491E02D099405 +:0411A000F894FFCFF1 +:1011A4005561727420646F6E652100526F74210062 +:1011B4004772FC6E2100426C61752100576569DF3E +:1011C4002C20616C6C657320496E697469616C696B +:1011D4007365727421204861626520466572746982 +:1011E4006720756E642064616D6974206162207A81 +:1011F400756D204E6F726D616C62657472696562A3 +:1012040021002050726573736564210054FC7220C0 +:101214005A752E2E2E0054FC72204F6666656E2E73 +:041224002E2E00006A :00000001FF diff --git a/Door/Debug/Door.lss b/Door/Debug/Door.lss index 1468b5e..6e0f1b9 100644 --- a/Door/Debug/Door.lss +++ b/Door/Debug/Door.lss @@ -3,40 +3,40 @@ Door.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .data 00000084 00800100 0000118a 0000121e 2**0 + 0 .data 00000084 00800100 000011a4 00001238 2**0 CONTENTS, ALLOC, LOAD, DATA - 1 .text 0000118a 00000000 00000000 00000094 2**1 + 1 .text 000011a4 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .bss 00000026 00800184 00800184 000012a2 2**0 + 2 .bss 00000032 00800184 00800184 000012bc 2**0 ALLOC - 3 .stab 00001968 00000000 00000000 000012a4 2**2 + 3 .stab 00001968 00000000 00000000 000012bc 2**2 CONTENTS, READONLY, DEBUGGING - 4 .stabstr 000005b5 00000000 00000000 00002c0c 2**0 + 4 .stabstr 000005b5 00000000 00000000 00002c24 2**0 CONTENTS, READONLY, DEBUGGING - 5 .comment 0000002f 00000000 00000000 000031c1 2**0 + 5 .comment 0000002f 00000000 00000000 000031d9 2**0 CONTENTS, READONLY - 6 .debug_aranges 00000060 00000000 00000000 000031f0 2**0 + 6 .debug_aranges 00000060 00000000 00000000 00003208 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_info 00003546 00000000 00000000 00003250 2**0 + 7 .debug_info 0000384a 00000000 00000000 00003268 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_abbrev 000004bb 00000000 00000000 00006796 2**0 + 8 .debug_abbrev 000004fd 00000000 00000000 00006ab2 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_line 000005d5 00000000 00000000 00006c51 2**0 + 9 .debug_line 000005f9 00000000 00000000 00006faf 2**0 CONTENTS, READONLY, DEBUGGING - 10 .debug_frame 00000190 00000000 00000000 00007228 2**2 + 10 .debug_frame 000001b8 00000000 00000000 000075a8 2**2 CONTENTS, READONLY, DEBUGGING - 11 .debug_str 000013b1 00000000 00000000 000073b8 2**0 + 11 .debug_str 00001435 00000000 00000000 00007760 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_loc 000014d0 00000000 00000000 00008769 2**0 + 12 .debug_loc 000017a5 00000000 00000000 00008b95 2**0 CONTENTS, READONLY, DEBUGGING - 13 .debug_ranges 000002d8 00000000 00000000 00009c39 2**0 + 13 .debug_ranges 00000340 00000000 00000000 0000a33a 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 <__vectors>: 0: 0c 94 35 00 jmp 0x6a ; 0x6a <__ctors_end> - 4: 0c 94 60 06 jmp 0xcc0 ; 0xcc0 <__vector_1> + 4: 0c 94 6d 06 jmp 0xcda ; 0xcda <__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> @@ -63,7 +63,7 @@ Disassembly of section .text: 64: 0c 94 5d 00 jmp 0xba ; 0xba <__bad_interrupt> 00000068 <__ctors_start>: - 68: 18 07 cpc r17, r24 + 68: 25 07 cpc r18, r21 0000006a <__ctors_end>: 6a: 11 24 eor r1, r1 @@ -77,7 +77,7 @@ Disassembly of section .text: 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 + 7c: e4 ea ldi r30, 0xA4 ; 164 7e: f1 e1 ldi r31, 0x11 ; 17 80: 02 c0 rjmp .+4 ; 0x86 <__do_copy_data+0x10> 82: 05 90 lpm r0, Z+ @@ -96,7 +96,7 @@ Disassembly of section .text: 94: 1d 92 st X+, r1 00000096 <.do_clear_bss_start>: - 96: aa 3a cpi r26, 0xAA ; 170 + 96: a6 3b cpi r26, 0xB6 ; 182 98: b2 07 cpc r27, r18 9a: e1 f7 brne .-8 ; 0x94 <.do_clear_bss_loop> @@ -107,12 +107,12 @@ Disassembly of section .text: 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__> + a8: 0e 94 cc 08 call 0x1198 ; 0x1198 <__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> + b2: 0e 94 0c 03 call 0x618 ; 0x618
+ b6: 0c 94 d0 08 jmp 0x11a0 ; 0x11a0 <_exit> 000000ba <__bad_interrupt>: ba: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> @@ -129,3154 +129,3357 @@ ISR(TIMER1_OVF_vect) { 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 + c8: 2f 92 push r2 + ca: 3f 92 push r3 + cc: 4f 92 push r4 + ce: 5f 92 push r5 + d0: 6f 92 push r6 + d2: 7f 92 push r7 + d4: 8f 92 push r8 + d6: 9f 92 push r9 + d8: af 92 push r10 + da: bf 92 push r11 + dc: cf 92 push r12 + de: df 92 push r13 + e0: ef 92 push r14 + e2: ff 92 push r15 + e4: 0f 93 push r16 + e6: 1f 93 push r17 + e8: 2f 93 push r18 + ea: 3f 93 push r19 + ec: 4f 93 push r20 + ee: 5f 93 push r21 + f0: 6f 93 push r22 + f2: 7f 93 push r23 + f4: 8f 93 push r24 + f6: 9f 93 push r25 + f8: af 93 push r26 + fa: bf 93 push r27 + fc: cf 93 push r28 + fe: df 93 push r29 + 100: ef 93 push r30 + 102: 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> + 104: c0 91 88 01 lds r28, 0x0188 + 108: cc 23 and r28, r28 + 10a: 09 f4 brne .+2 ; 0x10e <__vector_13+0x50> + 10c: f6 c1 rjmp .+1004 ; 0x4fa <__vector_13+0x43c> 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 + 114: 60 91 9d 01 lds r22, 0x019D + 118: 70 91 9e 01 lds r23, 0x019E + 11c: 80 91 9f 01 lds r24, 0x019F + 120: 90 91 a0 01 lds r25, 0x01A0 + 124: 0e 94 b0 07 call 0xf60 ; 0xf60 <__cmpsf2> + 128: 81 11 cpse r24, r1 + 12a: f0 c0 rjmp .+480 ; 0x30c <__vector_13+0x24e> + 12c: 20 e0 ldi r18, 0x00 ; 0 + 12e: 30 e0 ldi r19, 0x00 ; 0 + 130: a9 01 movw r20, r18 + 132: 60 91 a1 01 lds r22, 0x01A1 + 136: 70 91 a2 01 lds r23, 0x01A2 + 13a: 80 91 a3 01 lds r24, 0x01A3 + 13e: 90 91 a4 01 lds r25, 0x01A4 + 142: 0e 94 b0 07 call 0xf60 ; 0xf60 <__cmpsf2> + 146: 81 11 cpse r24, r1 + 148: e4 c0 rjmp .+456 ; 0x312 <__vector_13+0x254> + 14a: 20 e0 ldi r18, 0x00 ; 0 + 14c: 30 e0 ldi r19, 0x00 ; 0 + 14e: a9 01 movw r20, r18 + 150: 60 91 a5 01 lds r22, 0x01A5 + 154: 70 91 a6 01 lds r23, 0x01A6 + 158: 80 91 a7 01 lds r24, 0x01A7 + 15c: 90 91 a8 01 lds r25, 0x01A8 + 160: 0e 94 b0 07 call 0xf60 ; 0xf60 <__cmpsf2> + 164: 88 23 and r24, r24 + 166: 29 f0 breq .+10 ; 0x172 <__vector_13+0xb4> + 168: 88 24 eor r8, r8 + 16a: 83 94 inc r8 + 16c: d4 c0 rjmp .+424 ; 0x316 <__vector_13+0x258> + 16e: b3 94 inc r11 + 170: 11 c0 rjmp .+34 ; 0x194 <__vector_13+0xd6> + 172: bb 24 eor r11, r11 + 174: b3 94 inc r11 + for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue + this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; + 176: d0 e0 ldi r29, 0x00 ; 0 + 178: 21 97 sbiw r28, 0x01 ; 1 + } + } + uint8_t gp(uint8_t i) { + switch(i) { + case 0: return OCR0B; //ROT + case 1: return OCR2B; //GRÜN + 17a: 0f 2e mov r0, r31 + 17c: f4 eb ldi r31, 0xB4 ; 180 + 17e: cf 2e mov r12, r31 + 180: d1 2c mov r13, r1 + 182: f0 2d mov r31, r0 + } + void interrupt() { + if(this->fade_zylk > 0) { + if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { + for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue + this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; + 184: 0f 2e mov r0, r31 + 186: f8 e9 ldi r31, 0x98 ; 152 + 188: 6f 2e mov r6, r31 + 18a: f1 e0 ldi r31, 0x01 ; 1 + 18c: 7f 2e mov r7, r31 + 18e: f0 2d mov r31, r0 + 190: 6c 0e add r6, r28 + 192: 7d 1e adc r7, r29 + 194: 1b 2d mov r17, r11 + 196: 11 50 subi r17, 0x01 ; 1 + 198: e1 2e mov r14, r17 + 19a: f1 2c mov r15, r1 + 19c: 9e 01 movw r18, r28 + 19e: f7 01 movw r30, r14 + 1a0: ee 0f add r30, r30 + 1a2: ff 1f adc r31, r31 + 1a4: ee 0f add r30, r30 + 1a6: ff 1f adc r31, r31 + 1a8: ee 0d add r30, r14 + 1aa: ff 1d adc r31, r15 + 1ac: e8 57 subi r30, 0x78 ; 120 + 1ae: fe 4f sbci r31, 0xFE ; 254 + 1b0: ec 0f add r30, r28 + 1b2: fd 1f adc r31, r29 + 1b4: 81 81 ldd r24, Z+1 ; 0x01 + 1b6: 90 e0 ldi r25, 0x00 ; 0 + case 1: OCR2B = c; break; //GRÜN + case 2: OCR2A = c; break; //BLAU + } + } + uint8_t gp(uint8_t i) { + switch(i) { + 1b8: 11 30 cpi r17, 0x01 ; 1 + 1ba: 09 f1 breq .+66 ; 0x1fe <__vector_13+0x140> + 1bc: 20 f0 brcs .+8 ; 0x1c6 <__vector_13+0x108> + 1be: 12 30 cpi r17, 0x02 ; 2 + 1c0: 09 f0 breq .+2 ; 0x1c4 <__vector_13+0x106> + 1c2: 57 c0 rjmp .+174 ; 0x272 <__vector_13+0x1b4> + 1c4: 39 c0 rjmp .+114 ; 0x238 <__vector_13+0x17a> + case 0: return OCR0B; //ROT + 1c6: 48 b5 in r20, 0x28 ; 40 + } + void interrupt() { + if(this->fade_zylk > 0) { + if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { + for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue + this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; + 1c8: 97 01 movw r18, r14 + 1ca: 22 0f add r18, r18 + 1cc: 33 1f adc r19, r19 + 1ce: 22 0f add r18, r18 + 1d0: 33 1f adc r19, r19 + 1d2: 89 01 movw r16, r18 + 1d4: 08 57 subi r16, 0x78 ; 120 + 1d6: 1e 4f sbci r17, 0xFE ; 254 + 1d8: 84 1b sub r24, r20 + 1da: 91 09 sbc r25, r1 + 1dc: f3 01 movw r30, r6 + 1de: 60 81 ld r22, Z + 1e0: 70 e0 ldi r23, 0x00 ; 0 + 1e2: 0e 94 96 08 call 0x112c ; 0x112c <__divmodhi4> + 1e6: 88 27 eor r24, r24 + 1e8: 77 fd sbrc r23, 7 + 1ea: 80 95 com r24 + 1ec: 98 2f mov r25, r24 + 1ee: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__floatsisf> + 1f2: f8 01 movw r30, r16 + 1f4: 65 8b std Z+21, r22 ; 0x15 + 1f6: 76 8b std Z+22, r23 ; 0x16 + 1f8: 87 8b std Z+23, r24 ; 0x17 + 1fa: 90 8f std Z+24, r25 ; 0x18 + 1fc: 5d c0 rjmp .+186 ; 0x2b8 <__vector_13+0x1fa> + } + } + uint8_t gp(uint8_t i) { + switch(i) { + case 0: return OCR0B; //ROT + case 1: return OCR2B; //GRÜN + 1fe: f6 01 movw r30, r12 + 200: 40 81 ld r20, Z + } + void interrupt() { + if(this->fade_zylk > 0) { + if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { + for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue + this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; + 202: 97 01 movw r18, r14 + 204: 22 0f add r18, r18 + 206: 33 1f adc r19, r19 + 208: 22 0f add r18, r18 + 20a: 33 1f adc r19, r19 + 20c: 89 01 movw r16, r18 + 20e: 08 57 subi r16, 0x78 ; 120 + 210: 1e 4f sbci r17, 0xFE ; 254 + 212: 84 1b sub r24, r20 + 214: 91 09 sbc r25, r1 + 216: f3 01 movw r30, r6 + 218: 60 81 ld r22, Z + 21a: 70 e0 ldi r23, 0x00 ; 0 + 21c: 0e 94 96 08 call 0x112c ; 0x112c <__divmodhi4> + 220: 88 27 eor r24, r24 + 222: 77 fd sbrc r23, 7 + 224: 80 95 com r24 + 226: 98 2f mov r25, r24 + 228: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__floatsisf> + 22c: f8 01 movw r30, r16 + 22e: 65 8b std Z+21, r22 ; 0x15 + 230: 76 8b std Z+22, r23 ; 0x16 + 232: 87 8b std Z+23, r24 ; 0x17 + 234: 90 8f std Z+24, r25 ; 0x18 + 236: 42 c0 rjmp .+132 ; 0x2bc <__vector_13+0x1fe> + } + uint8_t gp(uint8_t i) { + switch(i) { + case 0: return OCR0B; //ROT + case 1: return OCR2B; //GRÜN + case 2: return OCR2A; //BLAU + 238: 40 91 b3 00 lds r20, 0x00B3 + } + void interrupt() { + if(this->fade_zylk > 0) { + if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { + for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue + this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; + 23c: e7 01 movw r28, r14 + 23e: cc 0f add r28, r28 + 240: dd 1f adc r29, r29 + 242: cc 0f add r28, r28 + 244: dd 1f adc r29, r29 + 246: c8 57 subi r28, 0x78 ; 120 + 248: de 4f sbci r29, 0xFE ; 254 + 24a: 84 1b sub r24, r20 + 24c: 91 09 sbc r25, r1 + 24e: f9 01 movw r30, r18 + 250: e8 57 subi r30, 0x78 ; 120 + 252: fe 4f sbci r31, 0xFE ; 254 + 254: 60 89 ldd r22, Z+16 ; 0x10 + 256: 70 e0 ldi r23, 0x00 ; 0 + 258: 0e 94 96 08 call 0x112c ; 0x112c <__divmodhi4> + 25c: 88 27 eor r24, r24 + 25e: 77 fd sbrc r23, 7 + 260: 80 95 com r24 + 262: 98 2f mov r25, r24 + 264: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__floatsisf> + 268: 6d 8b std Y+21, r22 ; 0x15 + 26a: 7e 8b std Y+22, r23 ; 0x16 + 26c: 8f 8b std Y+23, r24 ; 0x17 + 26e: 98 8f std Y+24, r25 ; 0x18 + 270: 28 c0 rjmp .+80 ; 0x2c2 <__vector_13+0x204> + 272: 97 01 movw r18, r14 + 274: 22 0f add r18, r18 + 276: 33 1f adc r19, r19 + 278: 22 0f add r18, r18 + 27a: 33 1f adc r19, r19 + 27c: 0f 2e mov r0, r31 + 27e: f8 e8 ldi r31, 0x88 ; 136 + 280: 8f 2e mov r8, r31 + 282: f1 e0 ldi r31, 0x01 ; 1 + 284: 9f 2e mov r9, r31 + 286: f0 2d mov r31, r0 + 288: 82 0e add r8, r18 + 28a: 93 1e adc r9, r19 + 28c: f3 01 movw r30, r6 + 28e: 60 81 ld r22, Z + 290: 70 e0 ldi r23, 0x00 ; 0 + 292: 0e 94 96 08 call 0x112c ; 0x112c <__divmodhi4> + 296: 88 27 eor r24, r24 + 298: 77 fd sbrc r23, 7 + 29a: 80 95 com r24 + 29c: 98 2f mov r25, r24 + 29e: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__floatsisf> + 2a2: f4 01 movw r30, r8 + 2a4: 65 8b std Z+21, r22 ; 0x15 + 2a6: 76 8b std Z+22, r23 ; 0x16 + 2a8: 87 8b std Z+23, r24 ; 0x17 + 2aa: 90 8f std Z+24, r25 ; 0x18 + case 1: OCR2B = c; break; //GRÜN + case 2: OCR2A = c; break; //BLAU + } + } + uint8_t gp(uint8_t i) { + switch(i) { + 2ac: 11 30 cpi r17, 0x01 ; 1 + 2ae: 31 f0 breq .+12 ; 0x2bc <__vector_13+0x1fe> + 2b0: 18 f0 brcs .+6 ; 0x2b8 <__vector_13+0x1fa> + 2b2: 12 30 cpi r17, 0x02 ; 2 + 2b4: c9 f4 brne .+50 ; 0x2e8 <__vector_13+0x22a> + 2b6: 05 c0 rjmp .+10 ; 0x2c2 <__vector_13+0x204> + case 0: return OCR0B; //ROT + 2b8: 68 b5 in r22, 0x28 ; 40 + 2ba: 07 c1 rjmp .+526 ; 0x4ca <__vector_13+0x40c> + case 1: return OCR2B; //GRÜN + 2bc: f6 01 movw r30, r12 + 2be: 60 81 ld r22, Z + 2c0: 04 c1 rjmp .+520 ; 0x4ca <__vector_13+0x40c> + case 2: return OCR2A; //BLAU + 2c2: 60 91 b3 00 lds r22, 0x00B3 + void interrupt() { + if(this->fade_zylk > 0) { + if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { + for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue + this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; + this->virtualcolor[i] = this->gp(i); + 2c6: e7 01 movw r28, r14 + 2c8: cc 0f add r28, r28 + 2ca: dd 1f adc r29, r29 + 2cc: cc 0f add r28, r28 + 2ce: dd 1f adc r29, r29 + 2d0: c8 57 subi r28, 0x78 ; 120 + 2d2: de 4f sbci r29, 0xFE ; 254 + 2d4: 70 e0 ldi r23, 0x00 ; 0 + 2d6: 80 e0 ldi r24, 0x00 ; 0 + 2d8: 90 e0 ldi r25, 0x00 ; 0 + 2da: 0e 94 e0 07 call 0xfc0 ; 0xfc0 <__floatunsisf> + 2de: 69 a3 std Y+33, r22 ; 0x21 + 2e0: 7a a3 std Y+34, r23 ; 0x22 + 2e2: 8b a3 std Y+35, r24 ; 0x23 + 2e4: 9c a3 std Y+36, r25 ; 0x24 + 2e6: 09 c1 rjmp .+530 ; 0x4fa <__vector_13+0x43c> + 2e8: f7 01 movw r30, r14 + 2ea: ee 0f add r30, r30 + 2ec: ff 1f adc r31, r31 + 2ee: ee 0f add r30, r30 + 2f0: ff 1f adc r31, r31 + 2f2: e8 57 subi r30, 0x78 ; 120 + 2f4: fe 4f sbci r31, 0xFE ; 254 + 2f6: 11 a2 std Z+33, r1 ; 0x21 + 2f8: 12 a2 std Z+34, r1 ; 0x22 + 2fa: 13 a2 std Z+35, r1 ; 0x23 + 2fc: 14 a2 std Z+36, r1 ; 0x24 + 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) { + for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue + 2fe: f2 e0 ldi r31, 0x02 ; 2 + 300: fb 15 cp r31, r11 + 302: 08 f0 brcs .+2 ; 0x306 <__vector_13+0x248> + 304: 34 cf rjmp .-408 ; 0x16e <__vector_13+0xb0> + 306: f9 c0 rjmp .+498 ; 0x4fa <__vector_13+0x43c> + 308: 83 94 inc r8 + 30a: 10 c0 rjmp .+32 ; 0x32c <__vector_13+0x26e> + 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) { + 30c: 88 24 eor r8, r8 + 30e: 83 94 inc r8 + 310: 02 c0 rjmp .+4 ; 0x316 <__vector_13+0x258> + 312: 88 24 eor r8, r8 + 314: 83 94 inc r8 + /*this->fadesteps[0] = (this->fademap[0][this->fade_zylk-1]-this->gp(0))/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; - 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> + 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])) { - 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; + for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue + if((this->fadesteps[i] > 0 && (this->virtualcolor[i] + this->fadesteps[i]) <= this->fademap[i][this->fade_zylk-1]) || (this->fadesteps[i] < 0 && (this->virtualcolor[i] + this->fadesteps[i]) >= this->fademap[i][this->fade_zylk-1])) { + 316: 0f 2e mov r0, r31 + 318: f8 e8 ldi r31, 0x88 ; 136 + 31a: af 2e mov r10, r31 + 31c: f1 e0 ldi r31, 0x01 ; 1 + 31e: bf 2e mov r11, r31 + 320: f0 2d mov r31, r0 + this->color(0, 0, 0); + } + void sp(uint8_t i, uint8_t c) { + switch(i) { + case 0: OCR0B = c; break; //ROT + case 1: OCR2B = c; break; //GRÜN + 322: 0f 2e mov r0, r31 + 324: f4 eb ldi r31, 0xB4 ; 180 + 326: 2f 2e mov r2, r31 + 328: 31 2c mov r3, r1 + 32a: f0 2d mov r31, r0 + 32c: 98 2c mov r9, r8 + 32e: 9a 94 dec r9 + /*this->fadesteps[0] = (this->fademap[0][this->fade_zylk-1]-this->gp(0))/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; + 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; + for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue + if((this->fadesteps[i] > 0 && (this->virtualcolor[i] + this->fadesteps[i]) <= this->fademap[i][this->fade_zylk-1]) || (this->fadesteps[i] < 0 && (this->virtualcolor[i] + this->fadesteps[i]) >= this->fademap[i][this->fade_zylk-1])) { + 330: c9 2d mov r28, r9 + 332: d0 e0 ldi r29, 0x00 ; 0 + 334: fe 01 movw r30, r28 + 336: ee 0f add r30, r30 + 338: ff 1f adc r31, r31 + 33a: ee 0f add r30, r30 + 33c: ff 1f adc r31, r31 + 33e: e8 57 subi r30, 0x78 ; 120 + 340: fe 4f sbci r31, 0xFE ; 254 + 342: c5 88 ldd r12, Z+21 ; 0x15 + 344: d6 88 ldd r13, Z+22 ; 0x16 + 346: e7 88 ldd r14, Z+23 ; 0x17 + 348: f0 8c ldd r15, Z+24 ; 0x18 + 34a: 20 e0 ldi r18, 0x00 ; 0 + 34c: 30 e0 ldi r19, 0x00 ; 0 + 34e: a9 01 movw r20, r18 + 350: c7 01 movw r24, r14 + 352: b6 01 movw r22, r12 + 354: 0e 94 92 08 call 0x1124 ; 0x1124 <__gesf2> + 358: 18 16 cp r1, r24 + 35a: 4c f5 brge .+82 ; 0x3ae <__vector_13+0x2f0> + 35c: 8e 01 movw r16, r28 + 35e: 00 0f add r16, r16 + 360: 11 1f adc r17, r17 + 362: 00 0f add r16, r16 + 364: 11 1f adc r17, r17 + 366: f8 01 movw r30, r16 + 368: e8 57 subi r30, 0x78 ; 120 + 36a: fe 4f sbci r31, 0xFE ; 254 + 36c: 21 a1 ldd r18, Z+33 ; 0x21 + 36e: 32 a1 ldd r19, Z+34 ; 0x22 + 370: 43 a1 ldd r20, Z+35 ; 0x23 + 372: 54 a1 ldd r21, Z+36 ; 0x24 + 374: c7 01 movw r24, r14 + 376: b6 01 movw r22, r12 + 378: 0e 94 4c 07 call 0xe98 ; 0xe98 <__addsf3> + 37c: 2b 01 movw r4, r22 + 37e: 3c 01 movw r6, r24 + 380: f5 01 movw r30, r10 + 382: 80 81 ld r24, Z + 384: f8 01 movw r30, r16 + 386: ec 0f add r30, r28 + 388: fd 1f adc r31, r29 + 38a: e8 0f add r30, r24 + 38c: f1 1d adc r31, r1 + 38e: e8 57 subi r30, 0x78 ; 120 + 390: fe 4f sbci r31, 0xFE ; 254 + 392: 60 81 ld r22, Z + 394: 70 e0 ldi r23, 0x00 ; 0 + 396: 80 e0 ldi r24, 0x00 ; 0 + 398: 90 e0 ldi r25, 0x00 ; 0 + 39a: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__floatsisf> + 39e: 9b 01 movw r18, r22 + 3a0: ac 01 movw r20, r24 + 3a2: c3 01 movw r24, r6 + 3a4: b2 01 movw r22, r4 + 3a6: 0e 94 b0 07 call 0xf60 ; 0xf60 <__cmpsf2> + 3aa: 18 16 cp r1, r24 + 3ac: 9c f5 brge .+102 ; 0x414 <__vector_13+0x356> + 3ae: 20 e0 ldi r18, 0x00 ; 0 + 3b0: 30 e0 ldi r19, 0x00 ; 0 + 3b2: a9 01 movw r20, r18 + 3b4: c7 01 movw r24, r14 + 3b6: b6 01 movw r22, r12 + 3b8: 0e 94 b0 07 call 0xf60 ; 0xf60 <__cmpsf2> + 3bc: 88 23 and r24, r24 + 3be: 0c f0 brlt .+2 ; 0x3c2 <__vector_13+0x304> + 3c0: 56 c0 rjmp .+172 ; 0x46e <__vector_13+0x3b0> + 3c2: 8e 01 movw r16, r28 + 3c4: 00 0f add r16, r16 + 3c6: 11 1f adc r17, r17 + 3c8: 00 0f add r16, r16 + 3ca: 11 1f adc r17, r17 + 3cc: f8 01 movw r30, r16 + 3ce: e8 57 subi r30, 0x78 ; 120 + 3d0: fe 4f sbci r31, 0xFE ; 254 + 3d2: 21 a1 ldd r18, Z+33 ; 0x21 + 3d4: 32 a1 ldd r19, Z+34 ; 0x22 + 3d6: 43 a1 ldd r20, Z+35 ; 0x23 + 3d8: 54 a1 ldd r21, Z+36 ; 0x24 + 3da: c7 01 movw r24, r14 + 3dc: b6 01 movw r22, r12 + 3de: 0e 94 4c 07 call 0xe98 ; 0xe98 <__addsf3> + 3e2: 2b 01 movw r4, r22 + 3e4: 3c 01 movw r6, r24 + 3e6: f5 01 movw r30, r10 + 3e8: 80 81 ld r24, Z + 3ea: f8 01 movw r30, r16 + 3ec: ec 0f add r30, r28 + 3ee: fd 1f adc r31, r29 + 3f0: e8 0f add r30, r24 + 3f2: f1 1d adc r31, r1 + 3f4: e8 57 subi r30, 0x78 ; 120 + 3f6: fe 4f sbci r31, 0xFE ; 254 + 3f8: 60 81 ld r22, Z + 3fa: 70 e0 ldi r23, 0x00 ; 0 + 3fc: 80 e0 ldi r24, 0x00 ; 0 + 3fe: 90 e0 ldi r25, 0x00 ; 0 + 400: 0e 94 e2 07 call 0xfc4 ; 0xfc4 <__floatsisf> + 404: 9b 01 movw r18, r22 + 406: ac 01 movw r20, r24 + 408: c3 01 movw r24, r6 + 40a: b2 01 movw r22, r4 + 40c: 0e 94 92 08 call 0x1124 ; 0x1124 <__gesf2> + 410: 88 23 and r24, r24 + 412: 6c f1 brlt .+90 ; 0x46e <__vector_13+0x3b0> + this->virtualcolor[i] = this->virtualcolor[i] + this->fadesteps[i]; + 414: cc 0f add r28, r28 + 416: dd 1f adc r29, r29 + 418: cc 0f add r28, r28 + 41a: dd 1f adc r29, r29 + 41c: c8 57 subi r28, 0x78 ; 120 + 41e: de 4f sbci r29, 0xFE ; 254 + 420: 29 a1 ldd r18, Y+33 ; 0x21 + 422: 3a a1 ldd r19, Y+34 ; 0x22 + 424: 4b a1 ldd r20, Y+35 ; 0x23 + 426: 5c a1 ldd r21, Y+36 ; 0x24 + 428: c7 01 movw r24, r14 + 42a: b6 01 movw r22, r12 + 42c: 0e 94 4c 07 call 0xe98 ; 0xe98 <__addsf3> + 430: 26 2f mov r18, r22 + 432: 37 2f mov r19, r23 + 434: 46 2f mov r20, r22 + 436: 57 2f mov r21, r23 + 438: 68 2f mov r22, r24 + 43a: 79 2f mov r23, r25 + 43c: 49 a3 std Y+33, r20 ; 0x21 + 43e: 5a a3 std Y+34, r21 ; 0x22 + 440: 6b a3 std Y+35, r22 ; 0x23 + 442: 7c a3 std Y+36, r23 ; 0x24 + this->sp(i, this->virtualcolor[i]); + 444: 62 2f mov r22, r18 + 446: 73 2f mov r23, r19 + 448: 0e 94 b4 07 call 0xf68 ; 0xf68 <__fixunssfsi> + this->fade_zylk = 0; + this->initTimer(); + this->color(0, 0, 0); + } + void sp(uint8_t i, uint8_t c) { + switch(i) { + 44c: f1 e0 ldi r31, 0x01 ; 1 + 44e: 9f 16 cp r9, r31 + 450: 41 f0 breq .+16 ; 0x462 <__vector_13+0x3a4> + 452: 9f 16 cp r9, r31 + 454: 20 f0 brcs .+8 ; 0x45e <__vector_13+0x3a0> + 456: 82 e0 ldi r24, 0x02 ; 2 + 458: 98 12 cpse r9, r24 + 45a: 32 c0 rjmp .+100 ; 0x4c0 <__vector_13+0x402> + 45c: 05 c0 rjmp .+10 ; 0x468 <__vector_13+0x3aa> + case 0: OCR0B = c; break; //ROT + 45e: 68 bd out 0x28, r22 ; 40 + 460: 53 cf rjmp .-346 ; 0x308 <__vector_13+0x24a> + case 1: OCR2B = c; break; //GRÜN + 462: f1 01 movw r30, r2 + 464: 60 83 st Z, r22 + 466: 50 cf rjmp .-352 ; 0x308 <__vector_13+0x24a> + case 2: OCR2A = c; break; //BLAU + 468: 60 93 b3 00 sts 0x00B3, r22 + 46c: 46 c0 rjmp .+140 ; 0x4fa <__vector_13+0x43c> + for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue + if((this->fadesteps[i] > 0 && (this->virtualcolor[i] + this->fadesteps[i]) <= this->fademap[i][this->fade_zylk-1]) || (this->fadesteps[i] < 0 && (this->virtualcolor[i] + this->fadesteps[i]) >= this->fademap[i][this->fade_zylk-1])) { + this->virtualcolor[i] = this->virtualcolor[i] + this->fadesteps[i]; + this->sp(i, this->virtualcolor[i]); + } else { + this->sp(i, this->fademap[i][this->fade_zylk-1]); + 46e: f5 01 movw r30, r10 + 470: 80 81 ld r24, Z + 472: fe 01 movw r30, r28 + 474: ee 0f add r30, r30 + 476: ff 1f adc r31, r31 + 478: ee 0f add r30, r30 + 47a: ff 1f adc r31, r31 + 47c: ec 0f add r30, r28 + 47e: fd 1f adc r31, r29 + 480: e8 0f add r30, r24 + 482: f1 1d adc r31, r1 + 484: e8 57 subi r30, 0x78 ; 120 + 486: fe 4f sbci r31, 0xFE ; 254 + 488: 80 81 ld r24, Z + this->fade_zylk = 0; + this->initTimer(); + this->color(0, 0, 0); + } + void sp(uint8_t i, uint8_t c) { + switch(i) { + 48a: f1 e0 ldi r31, 0x01 ; 1 + 48c: 9f 16 cp r9, r31 + 48e: 41 f0 breq .+16 ; 0x4a0 <__vector_13+0x3e2> + 490: 9f 16 cp r9, r31 + 492: 20 f0 brcs .+8 ; 0x49c <__vector_13+0x3de> + 494: 92 e0 ldi r25, 0x02 ; 2 + 496: 99 12 cpse r9, r25 + 498: 09 c0 rjmp .+18 ; 0x4ac <__vector_13+0x3ee> + 49a: 05 c0 rjmp .+10 ; 0x4a6 <__vector_13+0x3e8> + case 0: OCR0B = c; break; //ROT + 49c: 88 bd out 0x28, r24 ; 40 + 49e: 06 c0 rjmp .+12 ; 0x4ac <__vector_13+0x3ee> + case 1: OCR2B = c; break; //GRÜN + 4a0: f1 01 movw r30, r2 + 4a2: 80 83 st Z, r24 + 4a4: 03 c0 rjmp .+6 ; 0x4ac <__vector_13+0x3ee> + case 2: OCR2A = c; break; //BLAU + 4a6: e3 eb ldi r30, 0xB3 ; 179 + 4a8: f0 e0 ldi r31, 0x00 ; 0 + 4aa: 80 83 st Z, r24 + if((this->fadesteps[i] > 0 && (this->virtualcolor[i] + this->fadesteps[i]) <= this->fademap[i][this->fade_zylk-1]) || (this->fadesteps[i] < 0 && (this->virtualcolor[i] + this->fadesteps[i]) >= this->fademap[i][this->fade_zylk-1])) { + this->virtualcolor[i] = this->virtualcolor[i] + this->fadesteps[i]; + this->sp(i, this->virtualcolor[i]); + } else { + this->sp(i, this->fademap[i][this->fade_zylk-1]); + this->fadesteps[i] = 0; + 4ac: cc 0f add r28, r28 + 4ae: dd 1f adc r29, r29 + 4b0: cc 0f add r28, r28 + 4b2: dd 1f adc r29, r29 + 4b4: c8 57 subi r28, 0x78 ; 120 + 4b6: de 4f sbci r29, 0xFE ; 254 + 4b8: 1d 8a std Y+21, r1 ; 0x15 + 4ba: 1e 8a std Y+22, r1 ; 0x16 + 4bc: 1f 8a std Y+23, r1 ; 0x17 + 4be: 18 8e std Y+24, r1 ; 0x18 } - 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 + /*this->fadesteps[0] = (this->fademap[0][this->fade_zylk-1]-this->gp(0))/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 { + for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue + 4c0: f2 e0 ldi r31, 0x02 ; 2 + 4c2: f8 15 cp r31, r8 + 4c4: 08 f0 brcs .+2 ; 0x4c8 <__vector_13+0x40a> + 4c6: 20 cf rjmp .-448 ; 0x308 <__vector_13+0x24a> + 4c8: 18 c0 rjmp .+48 ; 0x4fa <__vector_13+0x43c> + void interrupt() { + if(this->fade_zylk > 0) { + if(this->fadesteps[0] == 0 && this->fadesteps[1] == 0 && this->fadesteps[2] == 0) { + for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue + this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; + this->virtualcolor[i] = this->gp(i); + 4ca: c7 01 movw r24, r14 + 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: 0f 2e mov r0, r31 + 4d6: f8 e8 ldi r31, 0x88 ; 136 + 4d8: ef 2e mov r14, r31 + 4da: f1 e0 ldi r31, 0x01 ; 1 + 4dc: ff 2e mov r15, r31 + 4de: f0 2d mov r31, r0 + 4e0: e8 0e add r14, r24 + 4e2: f9 1e adc r15, r25 + 4e4: 70 e0 ldi r23, 0x00 ; 0 + 4e6: 80 e0 ldi r24, 0x00 ; 0 + 4e8: 90 e0 ldi r25, 0x00 ; 0 + 4ea: 0e 94 e0 07 call 0xfc0 ; 0xfc0 <__floatunsisf> + 4ee: f7 01 movw r30, r14 + 4f0: 61 a3 std Z+33, r22 ; 0x21 + 4f2: 72 a3 std Z+34, r23 ; 0x22 + 4f4: 83 a3 std Z+35, r24 ; 0x23 + 4f6: 94 a3 std Z+36, r25 ; 0x24 + 4f8: 3a ce rjmp .-908 ; 0x16e <__vector_13+0xb0> 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 + 4fa: ff 91 pop r31 + 4fc: ef 91 pop r30 + 4fe: df 91 pop r29 + 500: cf 91 pop r28 + 502: bf 91 pop r27 + 504: af 91 pop r26 + 506: 9f 91 pop r25 + 508: 8f 91 pop r24 + 50a: 7f 91 pop r23 + 50c: 6f 91 pop r22 + 50e: 5f 91 pop r21 + 510: 4f 91 pop r20 + 512: 3f 91 pop r19 + 514: 2f 91 pop r18 + 516: 1f 91 pop r17 + 518: 0f 91 pop r16 + 51a: ff 90 pop r15 + 51c: ef 90 pop r14 + 51e: df 90 pop r13 + 520: cf 90 pop r12 + 522: bf 90 pop r11 + 524: af 90 pop r10 + 526: 9f 90 pop r9 + 528: 8f 90 pop r8 + 52a: 7f 90 pop r7 + 52c: 6f 90 pop r6 + 52e: 5f 90 pop r5 + 530: 4f 90 pop r4 + 532: 3f 90 pop r3 + 534: 2f 90 pop r2 + 536: 0f 90 pop r0 + 538: 0f be out 0x3f, r0 ; 63 + 53a: 0f 90 pop r0 + 53c: 1f 90 pop r1 + 53e: 18 95 reti -00000526 <_ZN4UartILm9600EEC1Ev>: +00000540 <_ZN4UartILm9600EEC1Ev>: #include template class Uart { public: Uart() { - 526: cf 93 push r28 - 528: df 93 push r29 + 540: cf 93 push r28 + 542: df 93 push r29 sei(); - 52a: 78 94 sei + 544: 78 94 sei void print(uint8_t wert) { uart_putchar(wert); } private: void init() { UBRR0L = (F_CPU / (baudrate * 16L) - 1); //Teiler wird gesetzt - 52c: 81 e8 ldi r24, 0x81 ; 129 - 52e: 80 93 c4 00 sts 0x00C4, r24 + 546: 81 e8 ldi r24, 0x81 ; 129 + 548: 80 93 c4 00 sts 0x00C4, r24 UCSR0A= (0< + 56a: 80 81 ld r24, Z + 56c: 85 ff sbrs r24, 5 + 56e: fd cf rjmp .-6 ; 0x56a <_ZN4UartILm9600EEC1Ev+0x2a> UDR0 = c; - 556: 98 83 st Y, r25 + 570: 98 83 st Y, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) - 558: 9d 91 ld r25, X+ - 55a: 91 11 cpse r25, r1 - 55c: f9 cf rjmp .-14 ; 0x550 <_ZN4UartILm9600EEC1Ev+0x2a> + 572: 9d 91 ld r25, X+ + 574: 91 11 cpse r25, r1 + 576: f9 cf rjmp .-14 ; 0x56a <_ZN4UartILm9600EEC1Ev+0x2a> UCSR0A= (0< + 578: e0 ec ldi r30, 0xC0 ; 192 + 57a: f0 e0 ldi r31, 0x00 ; 0 + 57c: 80 81 ld r24, Z + 57e: 85 ff sbrs r24, 5 + 580: fd cf rjmp .-6 ; 0x57c <_ZN4UartILm9600EEC1Ev+0x3c> UDR0 = c; - 568: 8d e0 ldi r24, 0x0D ; 13 - 56a: 80 93 c6 00 sts 0x00C6, r24 + 582: 8d e0 ldi r24, 0x0D ; 13 + 584: 80 93 c6 00 sts 0x00C6, r24 UCSR0A= (0< + 588: e0 ec ldi r30, 0xC0 ; 192 + 58a: f0 e0 ldi r31, 0x00 ; 0 + 58c: 80 81 ld r24, Z + 58e: 85 ff sbrs r24, 5 + 590: fd cf rjmp .-6 ; 0x58c <_ZN4UartILm9600EEC1Ev+0x4c> UDR0 = c; - 578: 8a e0 ldi r24, 0x0A ; 10 - 57a: 80 93 c6 00 sts 0x00C6, r24 + 592: 8a e0 ldi r24, 0x0A ; 10 + 594: 80 93 c6 00 sts 0x00C6, r24 public: Uart() { sei(); init(); println("Uart done!"); } - 57e: df 91 pop r29 - 580: cf 91 pop r28 - 582: 08 95 ret + 598: df 91 pop r29 + 59a: cf 91 pop r28 + 59c: 08 95 ret -00000584 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh>: - OCR0B=r; //ROT - OCR2B=g; //GRÜN - OCR2A=b; //BLAU +0000059e <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh>: + this->sp(0, r); //ROT + this->sp(1, g); //GRÜN + this->sp(2, b); //BLAU } void setcolor(uint8_t mask) { - (mask & (1<<0)) ? OCR2A=0xFF : OCR2A=0x00; - 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; - 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; - 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 + (mask & (1<<0)) ? this->sp(2, 0xFF) : this->sp(2, 0x00); //Blau + 59e: 60 ff sbrs r22, 0 + 5a0: 04 c0 rjmp .+8 ; 0x5aa <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0xc> + } + void sp(uint8_t i, uint8_t c) { + switch(i) { + case 0: OCR0B = c; break; //ROT + case 1: OCR2B = c; break; //GRÜN + case 2: OCR2A = c; break; //BLAU + 5a2: 8f ef ldi r24, 0xFF ; 255 + 5a4: 80 93 b3 00 sts 0x00B3, r24 + 5a8: 02 c0 rjmp .+4 ; 0x5ae <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x10> + 5aa: 10 92 b3 00 sts 0x00B3, r1 + this->sp(1, g); //GRÜN + this->sp(2, b); //BLAU + } + void setcolor(uint8_t mask) { + (mask & (1<<0)) ? this->sp(2, 0xFF) : this->sp(2, 0x00); //Blau + (mask & (1<<1)) ? this->sp(1, 0xFF) : this->sp(1, 0x00); //Grün + 5ae: 61 ff sbrs r22, 1 + 5b0: 04 c0 rjmp .+8 ; 0x5ba <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x1c> + this->color(0, 0, 0); + } + void sp(uint8_t i, uint8_t c) { + switch(i) { + case 0: OCR0B = c; break; //ROT + case 1: OCR2B = c; break; //GRÜN + 5b2: 8f ef ldi r24, 0xFF ; 255 + 5b4: 80 93 b4 00 sts 0x00B4, r24 + 5b8: 02 c0 rjmp .+4 ; 0x5be <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x20> + 5ba: 10 92 b4 00 sts 0x00B4, r1 + this->sp(2, b); //BLAU + } + void setcolor(uint8_t mask) { + (mask & (1<<0)) ? this->sp(2, 0xFF) : this->sp(2, 0x00); //Blau + (mask & (1<<1)) ? this->sp(1, 0xFF) : this->sp(1, 0x00); //Grün + (mask & (1<<2)) ? this->sp(0, 0xFF) : this->sp(0, 0x00); //Rot + 5be: 62 ff sbrs r22, 2 + 5c0: 03 c0 rjmp .+6 ; 0x5c8 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh+0x2a> + this->initTimer(); + this->color(0, 0, 0); + } + void sp(uint8_t i, uint8_t c) { + switch(i) { + case 0: OCR0B = c; break; //ROT + 5c2: 8f ef ldi r24, 0xFF ; 255 + 5c4: 88 bd out 0x28, r24 ; 40 + 5c6: 08 95 ret + 5c8: 18 bc out 0x28, r1 ; 40 + 5ca: 08 95 ret -000005b2 <_ZN4UartILm9600EE7printlnEPKc>: +000005cc <_ZN4UartILm9600EE7printlnEPKc>: } else { print("0"); } } } void println(const char *text) { - 5b2: cf 93 push r28 - 5b4: df 93 push r29 + 5cc: cf 93 push r28 + 5ce: df 93 push r29 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) - 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> + 5d0: fb 01 movw r30, r22 + 5d2: 90 81 ld r25, Z + 5d4: 99 23 and r25, r25 + 5d6: 69 f0 breq .+26 ; 0x5f2 <_ZN4UartILm9600EE7printlnEPKc+0x26> } else { print("0"); } } } void println(const char *text) { - 5be: db 01 movw r26, r22 - 5c0: 11 96 adiw r26, 0x01 ; 1 + 5d8: db 01 movw r26, r22 + 5da: 11 96 adiw r26, 0x01 ; 1 UCSR0A= (0< + 5e4: 80 81 ld r24, Z + 5e6: 85 ff sbrs r24, 5 + 5e8: fd cf rjmp .-6 ; 0x5e4 <_ZN4UartILm9600EE7printlnEPKc+0x18> UDR0 = c; - 5d0: 98 83 st Y, r25 + 5ea: 98 83 st Y, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) - 5d2: 9d 91 ld r25, X+ - 5d4: 91 11 cpse r25, r1 - 5d6: f9 cf rjmp .-14 ; 0x5ca <_ZN4UartILm9600EE7printlnEPKc+0x18> + 5ec: 9d 91 ld r25, X+ + 5ee: 91 11 cpse r25, r1 + 5f0: f9 cf rjmp .-14 ; 0x5e4 <_ZN4UartILm9600EE7printlnEPKc+0x18> UCSR0A= (0< + 5f2: e0 ec ldi r30, 0xC0 ; 192 + 5f4: f0 e0 ldi r31, 0x00 ; 0 + 5f6: 80 81 ld r24, Z + 5f8: 85 ff sbrs r24, 5 + 5fa: fd cf rjmp .-6 ; 0x5f6 <_ZN4UartILm9600EE7printlnEPKc+0x2a> UDR0 = c; - 5e2: 8d e0 ldi r24, 0x0D ; 13 - 5e4: 80 93 c6 00 sts 0x00C6, r24 + 5fc: 8d e0 ldi r24, 0x0D ; 13 + 5fe: 80 93 c6 00 sts 0x00C6, r24 UCSR0A= (0< + 602: e0 ec ldi r30, 0xC0 ; 192 + 604: f0 e0 ldi r31, 0x00 ; 0 + 606: 80 81 ld r24, Z + 608: 85 ff sbrs r24, 5 + 60a: fd cf rjmp .-6 ; 0x606 <_ZN4UartILm9600EE7printlnEPKc+0x3a> UDR0 = c; - 5f2: 8a e0 ldi r24, 0x0A ; 10 - 5f4: 80 93 c6 00 sts 0x00C6, r24 + 60c: 8a e0 ldi r24, 0x0A ; 10 + 60e: 80 93 c6 00 sts 0x00C6, r24 } void println(const char *text) { print(text); print("\r"); print("\n"); } - 5f8: df 91 pop r29 - 5fa: cf 91 pop r28 - 5fc: 08 95 ret + 612: df 91 pop r29 + 614: cf 91 pop r28 + 616: 08 95 ret -000005fe
: +00000618
: 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 + 618: cf 93 push r28 + 61a: df 93 push r29 + 61c: 00 d0 rcall .+0 ; 0x61e + 61e: 00 d0 rcall .+0 ; 0x620 + 620: cd b7 in r28, 0x3d ; 61 + 622: de b7 in r29, 0x3e ; 62 sei(); - 60a: 78 94 sei + 624: 78 94 sei uint8_t doorstatus = 0; stripe.setcolor(stripe.RED); - 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> + 626: 64 e0 ldi r22, 0x04 ; 4 + 628: 88 e8 ldi r24, 0x88 ; 136 + 62a: 91 e0 ldi r25, 0x01 ; 1 + 62c: 0e 94 cf 02 call 0x59e ; 0x59e <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Rot!"); - 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> + 630: 6b e0 ldi r22, 0x0B ; 11 + 632: 71 e0 ldi r23, 0x01 ; 1 + 634: 85 eb ldi r24, 0xB5 ; 181 + 636: 91 e0 ldi r25, 0x01 ; 1 + 638: 0e 94 e6 02 call 0x5cc ; 0x5cc <_ZN4UartILm9600EE7printlnEPKc> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 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 + 63c: 2f e7 ldi r18, 0x7F ; 127 + 63e: 3a e1 ldi r19, 0x1A ; 26 + 640: 86 e0 ldi r24, 0x06 ; 6 + 642: 21 50 subi r18, 0x01 ; 1 + 644: 30 40 sbci r19, 0x00 ; 0 + 646: 80 40 sbci r24, 0x00 ; 0 + 648: e1 f7 brne .-8 ; 0x642 + 64a: 00 c0 rjmp .+0 ; 0x64c + 64c: 00 00 nop _delay_ms(100); stripe.setcolor(stripe.GREEN); - 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> + 64e: 62 e0 ldi r22, 0x02 ; 2 + 650: 88 e8 ldi r24, 0x88 ; 136 + 652: 91 e0 ldi r25, 0x01 ; 1 + 654: 0e 94 cf 02 call 0x59e ; 0x59e <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Grün!"); - 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 + 658: 60 e1 ldi r22, 0x10 ; 16 + 65a: 71 e0 ldi r23, 0x01 ; 1 + 65c: 85 eb ldi r24, 0xB5 ; 181 + 65e: 91 e0 ldi r25, 0x01 ; 1 + 660: 0e 94 e6 02 call 0x5cc ; 0x5cc <_ZN4UartILm9600EE7printlnEPKc> + 664: 9f e7 ldi r25, 0x7F ; 127 + 666: aa e1 ldi r26, 0x1A ; 26 + 668: b6 e0 ldi r27, 0x06 ; 6 + 66a: 91 50 subi r25, 0x01 ; 1 + 66c: a0 40 sbci r26, 0x00 ; 0 + 66e: b0 40 sbci r27, 0x00 ; 0 + 670: e1 f7 brne .-8 ; 0x66a + 672: 00 c0 rjmp .+0 ; 0x674 + 674: 00 00 nop _delay_ms(100); stripe.setcolor(stripe.BLUE); - 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> + 676: 61 e0 ldi r22, 0x01 ; 1 + 678: 88 e8 ldi r24, 0x88 ; 136 + 67a: 91 e0 ldi r25, 0x01 ; 1 + 67c: 0e 94 cf 02 call 0x59e ; 0x59e <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Blau!"); - 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 + 680: 66 e1 ldi r22, 0x16 ; 22 + 682: 71 e0 ldi r23, 0x01 ; 1 + 684: 85 eb ldi r24, 0xB5 ; 181 + 686: 91 e0 ldi r25, 0x01 ; 1 + 688: 0e 94 e6 02 call 0x5cc ; 0x5cc <_ZN4UartILm9600EE7printlnEPKc> + 68c: 2f e7 ldi r18, 0x7F ; 127 + 68e: 3a e1 ldi r19, 0x1A ; 26 + 690: 86 e0 ldi r24, 0x06 ; 6 + 692: 21 50 subi r18, 0x01 ; 1 + 694: 30 40 sbci r19, 0x00 ; 0 + 696: 80 40 sbci r24, 0x00 ; 0 + 698: e1 f7 brne .-8 ; 0x692 + 69a: 00 c0 rjmp .+0 ; 0x69c + 69c: 00 00 nop _delay_ms(100); stripe.setcolor(stripe.WHITE); - 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> + 69e: 67 e0 ldi r22, 0x07 ; 7 + 6a0: 88 e8 ldi r24, 0x88 ; 136 + 6a2: 91 e0 ldi r25, 0x01 ; 1 + 6a4: 0e 94 cf 02 call 0x59e ; 0x59e <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> Serial.println("Weiß, alles Initialisert! Habe Fertig und damit ab zum Normalbetrieb!"); - 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 + 6a8: 6c e1 ldi r22, 0x1C ; 28 + 6aa: 71 e0 ldi r23, 0x01 ; 1 + 6ac: 85 eb ldi r24, 0xB5 ; 181 + 6ae: 91 e0 ldi r25, 0x01 ; 1 + 6b0: 0e 94 e6 02 call 0x5cc ; 0x5cc <_ZN4UartILm9600EE7printlnEPKc> + 6b4: 9f e7 ldi r25, 0x7F ; 127 + 6b6: aa e1 ldi r26, 0x1A ; 26 + 6b8: b6 e0 ldi r27, 0x06 ; 6 + 6ba: 91 50 subi r25, 0x01 ; 1 + 6bc: a0 40 sbci r26, 0x00 ; 0 + 6be: b0 40 sbci r27, 0x00 ; 0 + 6c0: e1 f7 brne .-8 ; 0x6ba + 6c2: 00 c0 rjmp .+0 ; 0x6c4 + 6c4: 00 00 nop namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 6ac: 29 9a sbi 0x05, 1 ; 5 + 6c6: 29 9a sbi 0x05, 1 ; 5 _delay_ms(100); led.green(1); stripe.setcolor(stripe.BLACK); - 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> + 6c8: 60 e0 ldi r22, 0x00 ; 0 + 6ca: 88 e8 ldi r24, 0x88 ; 136 + 6cc: 91 e0 ldi r25, 0x01 ; 1 + 6ce: 0e 94 cf 02 call 0x59e ; 0x59e <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh> irclass ir; int main(void) { sei(); uint8_t doorstatus = 0; - 6b8: 21 2c mov r2, r1 + 6d2: 21 2c mov r2, r1 } led.red(0); EIFR |= (1<_code; - 6ba: 45 e8 ldi r20, 0x85 ; 133 - 6bc: 51 e0 ldi r21, 0x01 ; 1 + 6d4: 45 e8 ldi r20, 0x85 ; 133 + 6d6: 51 e0 ldi r21, 0x01 ; 1 this->_code = 255; - 6be: bb 24 eor r11, r11 - 6c0: ba 94 dec r11 - 6c2: ab 2c mov r10, r11 + 6d8: bb 24 eor r11, r11 + 6da: ba 94 dec r11 + 6dc: 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 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 + 6de: 0f 2e mov r0, r31 + 6e0: f9 e8 ldi r31, 0x89 ; 137 + 6e2: ef 2e mov r14, r31 + 6e4: f1 e0 ldi r31, 0x01 ; 1 + 6e6: ff 2e mov r15, r31 + 6e8: f0 2d mov r31, r0 this->fademap[1][index] = green; - 6d0: 0e e8 ldi r16, 0x8E ; 142 - 6d2: 11 e0 ldi r17, 0x01 ; 1 + 6ea: 0e e8 ldi r16, 0x8E ; 142 + 6ec: 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 + 6ee: 0f 2e mov r0, r31 + 6f0: f3 e9 ldi r31, 0x93 ; 147 + 6f2: 8f 2e mov r8, r31 + 6f4: f1 e0 ldi r31, 0x01 ; 1 + 6f6: 9f 2e mov r9, r31 + 6f8: 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 + 6fa: 0f 2e mov r0, r31 + 6fc: f8 e9 ldi r31, 0x98 ; 152 + 6fe: 6f 2e mov r6, r31 + 700: f1 e0 ldi r31, 0x01 ; 1 + 702: 7f 2e mov r7, r31 + 704: f0 2d mov r31, r0 + 706: 0f 2e mov r0, r31 + 708: fa e0 ldi r31, 0x0A ; 10 + 70a: 3f 2e mov r3, r31 + 70c: 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 + 70e: 0f 2e mov r0, r31 + 710: f8 e8 ldi r31, 0x88 ; 136 + 712: 4f 2e mov r4, r31 + 714: f1 e0 ldi r31, 0x01 ; 1 + 716: 5f 2e mov r5, r31 + 718: f0 2d mov r31, r0 + 71a: cc 24 eor r12, r12 + 71c: c3 94 inc r12 UCSR0A= (0<_code; - 710: da 01 movw r26, r20 - 712: 8c 91 ld r24, X + 72a: da 01 movw r26, r20 + 72c: 8c 91 ld r24, X this->_code = 255; - 714: ac 92 st X, r10 + 72e: ac 92 st X, r10 uint8_t remotetimer = 10; while(1) { uint8_t c = ir.getCode(); switch(c) { - 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 + 730: 8c 30 cpi r24, 0x0C ; 12 + 732: 09 f4 brne .+2 ; 0x736 + 734: fc c0 rjmp .+504 ; 0x92e + 736: 38 f5 brcc .+78 ; 0x786 + 738: 85 30 cpi r24, 0x05 ; 5 + 73a: 09 f4 brne .+2 ; 0x73e + 73c: b3 c0 rjmp .+358 ; 0x8a4 + 73e: 90 f4 brcc .+36 ; 0x764 + 740: 82 30 cpi r24, 0x02 ; 2 + 742: 09 f4 brne .+2 ; 0x746 + 744: 8c c0 rjmp .+280 ; 0x85e + 746: 38 f4 brcc .+14 ; 0x756 + 748: 88 23 and r24, r24 + 74a: 09 f4 brne .+2 ; 0x74e + 74c: 46 c0 rjmp .+140 ; 0x7da + 74e: 81 30 cpi r24, 0x01 ; 1 + 750: 09 f0 breq .+2 ; 0x754 + 752: 56 c1 rjmp .+684 ; 0xa00 + 754: 63 c0 rjmp .+198 ; 0x81c + 756: 83 30 cpi r24, 0x03 ; 3 + 758: 09 f4 brne .+2 ; 0x75c + 75a: 90 c0 rjmp .+288 ; 0x87c + 75c: 84 30 cpi r24, 0x04 ; 4 + 75e: 09 f0 breq .+2 ; 0x762 + 760: 4f c1 rjmp .+670 ; 0xa00 + 762: 95 c0 rjmp .+298 ; 0x88e + 764: 88 30 cpi r24, 0x08 ; 8 + 766: 09 f4 brne .+2 ; 0x76a + 768: be c0 rjmp .+380 ; 0x8e6 + 76a: 38 f4 brcc .+14 ; 0x77a + 76c: 86 30 cpi r24, 0x06 ; 6 + 76e: 09 f4 brne .+2 ; 0x772 + 770: a4 c0 rjmp .+328 ; 0x8ba + 772: 87 30 cpi r24, 0x07 ; 7 + 774: 09 f0 breq .+2 ; 0x778 + 776: 44 c1 rjmp .+648 ; 0xa00 + 778: ab c0 rjmp .+342 ; 0x8d0 + 77a: 8a 30 cpi r24, 0x0A ; 10 + 77c: 09 f4 brne .+2 ; 0x780 + 77e: cb c0 rjmp .+406 ; 0x916 + 780: 08 f0 brcs .+2 ; 0x784 + 782: e5 c1 rjmp .+970 ; 0xb4e + 784: bc c0 rjmp .+376 ; 0x8fe + 786: 82 31 cpi r24, 0x12 ; 18 + 788: 09 f4 brne .+2 ; 0x78c + 78a: 0d c1 rjmp .+538 ; 0x9a6 + 78c: 90 f4 brcc .+36 ; 0x7b2 + 78e: 8f 30 cpi r24, 0x0F ; 15 + 790: 09 f4 brne .+2 ; 0x794 + 792: dd c1 rjmp .+954 ; 0xb4e + 794: 38 f4 brcc .+14 ; 0x7a4 + 796: 8d 30 cpi r24, 0x0D ; 13 + 798: 09 f4 brne .+2 ; 0x79c + 79a: d5 c0 rjmp .+426 ; 0x946 + 79c: 8e 30 cpi r24, 0x0E ; 14 + 79e: 09 f0 breq .+2 ; 0x7a2 + 7a0: 2f c1 rjmp .+606 ; 0xa00 + 7a2: dd c0 rjmp .+442 ; 0x95e + 7a4: 80 31 cpi r24, 0x10 ; 16 + 7a6: 09 f4 brne .+2 ; 0x7aa + 7a8: e6 c0 rjmp .+460 ; 0x976 + 7aa: 81 31 cpi r24, 0x11 ; 17 + 7ac: 09 f0 breq .+2 ; 0x7b0 + 7ae: 28 c1 rjmp .+592 ; 0xa00 + 7b0: ee c0 rjmp .+476 ; 0x98e + 7b2: 85 31 cpi r24, 0x15 ; 21 + 7b4: 09 f4 brne .+2 ; 0x7b8 + 7b6: 0e c1 rjmp .+540 ; 0x9d4 + 7b8: 38 f4 brcc .+14 ; 0x7c8 + 7ba: 83 31 cpi r24, 0x13 ; 19 + 7bc: 09 f4 brne .+2 ; 0x7c0 + 7be: c7 c1 rjmp .+910 ; 0xb4e + 7c0: 84 31 cpi r24, 0x14 ; 20 + 7c2: 09 f0 breq .+2 ; 0x7c6 + 7c4: 1d c1 rjmp .+570 ; 0xa00 + 7c6: fb c0 rjmp .+502 ; 0x9be + 7c8: 87 31 cpi r24, 0x17 ; 23 + 7ca: 09 f4 brne .+2 ; 0x7ce + 7cc: c0 c1 rjmp .+896 ; 0xb4e + 7ce: 08 f4 brcc .+2 ; 0x7d2 + 7d0: 0c c1 rjmp .+536 ; 0x9ea + 7d2: 8f 3f cpi r24, 0xFF ; 255 + 7d4: 09 f0 breq .+2 ; 0x7d8 + 7d6: 14 c1 rjmp .+552 ; 0xa00 + 7d8: ba c1 rjmp .+884 ; 0xb4e } else { OCR2A = 0; } } void higher() { if(OCR0B <= 250) { - 7c0: 88 b5 in r24, 0x28 ; 40 - 7c2: 8b 3f cpi r24, 0xFB ; 251 - 7c4: 20 f4 brcc .+8 ; 0x7ce + 7da: 88 b5 in r24, 0x28 ; 40 + 7dc: 8b 3f cpi r24, 0xFB ; 251 + 7de: 20 f4 brcc .+8 ; 0x7e8 OCR0B = OCR0B + 5; - 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 + 7e0: 88 b5 in r24, 0x28 ; 40 + 7e2: 8b 5f subi r24, 0xFB ; 251 + 7e4: 88 bd out 0x28, r24 ; 40 + 7e6: 01 c0 rjmp .+2 ; 0x7ea } else { OCR0B = 0; - 7ce: 18 bc out 0x28, r1 ; 40 + 7e8: 18 bc out 0x28, r1 ; 40 } if(OCR2B <= 250) { - 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 + 7ea: a4 eb ldi r26, 0xB4 ; 180 + 7ec: b0 e0 ldi r27, 0x00 ; 0 + 7ee: 8c 91 ld r24, X + 7f0: 8b 3f cpi r24, 0xFB ; 251 + 7f2: 20 f4 brcc .+8 ; 0x7fc OCR2B = OCR2B + 5; - 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 + 7f4: 8c 91 ld r24, X + 7f6: 8b 5f subi r24, 0xFB ; 251 + 7f8: 8c 93 st X, r24 + 7fa: 03 c0 rjmp .+6 ; 0x802 } else { OCR2B = 0; - 7e2: a4 eb ldi r26, 0xB4 ; 180 - 7e4: b0 e0 ldi r27, 0x00 ; 0 - 7e6: 1c 92 st X, r1 + 7fc: a4 eb ldi r26, 0xB4 ; 180 + 7fe: b0 e0 ldi r27, 0x00 ; 0 + 800: 1c 92 st X, r1 } if(OCR2A <= 250) { - 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 + 802: a3 eb ldi r26, 0xB3 ; 179 + 804: b0 e0 ldi r27, 0x00 ; 0 + 806: 8c 91 ld r24, X + 808: 8b 3f cpi r24, 0xFB ; 251 + 80a: 20 f4 brcc .+8 ; 0x814 OCR2A = OCR2A + 5; - 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 + 80c: 8c 91 ld r24, X + 80e: 8b 5f subi r24, 0xFB ; 251 + 810: 8c 93 st X, r24 + 812: 9d c1 rjmp .+826 ; 0xb4e } else { OCR2A = 0; - 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 + 814: a3 eb ldi r26, 0xB3 ; 179 + 816: b0 e0 ldi r27, 0x00 ; 0 + 818: 1c 92 st X, r1 + 81a: 99 c1 rjmp .+818 ; 0xb4e } void on() { this->timerOn(); } void lower() { if(OCR0B >= 5) { - 802: 88 b5 in r24, 0x28 ; 40 - 804: 85 30 cpi r24, 0x05 ; 5 - 806: 20 f0 brcs .+8 ; 0x810 + 81c: 88 b5 in r24, 0x28 ; 40 + 81e: 85 30 cpi r24, 0x05 ; 5 + 820: 20 f0 brcs .+8 ; 0x82a OCR0B = OCR0B - 5; - 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 + 822: 88 b5 in r24, 0x28 ; 40 + 824: 85 50 subi r24, 0x05 ; 5 + 826: 88 bd out 0x28, r24 ; 40 + 828: 01 c0 rjmp .+2 ; 0x82c } else { OCR0B = 0; - 810: 18 bc out 0x28, r1 ; 40 + 82a: 18 bc out 0x28, r1 ; 40 } if(OCR2B >= 5) { - 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 + 82c: a4 eb ldi r26, 0xB4 ; 180 + 82e: b0 e0 ldi r27, 0x00 ; 0 + 830: 8c 91 ld r24, X + 832: 85 30 cpi r24, 0x05 ; 5 + 834: 20 f0 brcs .+8 ; 0x83e OCR2B = OCR2B - 5; - 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 + 836: 8c 91 ld r24, X + 838: 85 50 subi r24, 0x05 ; 5 + 83a: 8c 93 st X, r24 + 83c: 03 c0 rjmp .+6 ; 0x844 } else { OCR2B = 0; - 824: a4 eb ldi r26, 0xB4 ; 180 - 826: b0 e0 ldi r27, 0x00 ; 0 - 828: 1c 92 st X, r1 + 83e: a4 eb ldi r26, 0xB4 ; 180 + 840: b0 e0 ldi r27, 0x00 ; 0 + 842: 1c 92 st X, r1 } if(OCR2A >= 5) { - 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 + 844: a3 eb ldi r26, 0xB3 ; 179 + 846: b0 e0 ldi r27, 0x00 ; 0 + 848: 8c 91 ld r24, X + 84a: 85 30 cpi r24, 0x05 ; 5 + 84c: 20 f0 brcs .+8 ; 0x856 OCR2A = OCR2A - 5; - 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 + 84e: 8c 91 ld r24, X + 850: 85 50 subi r24, 0x05 ; 5 + 852: 8c 93 st X, r24 + 854: 7c c1 rjmp .+760 ; 0xb4e } else { OCR2A = 0; - 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 + 856: a3 eb ldi r26, 0xB3 ; 179 + 858: b0 e0 ldi r27, 0x00 ; 0 + 85a: 1c 92 st X, r1 + 85c: 78 c1 rjmp .+752 ; 0xb4e } void timerOff() { // OC0B output: Disconnected // OC2A output: Disconnected // OC2B output: Disconnected TCCR0A &= ~(1< + 878: 23 9a sbi 0x04, 3 ; 4 + 87a: 69 c1 rjmp .+722 ; 0xb4e } void timerOn() { // OC0B output: Non-Inverted PWM // OC2A output: Non-Inverted PWM // OC2B output: Non-Inverted PWM TCCR0A |= (1< + 882: a0 eb ldi r26, 0xB0 ; 176 + 884: b0 e0 ldi r27, 0x00 ; 0 + 886: 8c 91 ld r24, X + 888: 80 6a ori r24, 0xA0 ; 160 + 88a: 8c 93 st X, r24 + 88c: 60 c1 rjmp .+704 ; 0xb4e 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; - 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 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 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 + 88e: d7 01 movw r26, r14 890: bc 92 st X, r11 - this->fademap[2][index] = blue; - 892: d4 01 movw r26, r8 + this->fademap[1][index] = green; + 892: d8 01 movw r26, r16 894: 1c 92 st X, r1 + this->fademap[2][index] = blue; + 896: d4 01 movw r26, r8 + 898: 1c 92 st X, r1 this->fademap[3][index] = time; - 896: d3 01 movw r26, r6 - 898: 3c 92 st X, r3 + 89a: d3 01 movw r26, r6 + 89c: 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; - 89a: d2 01 movw r26, r4 - 89c: cc 92 st X, r12 - 89e: 4a c1 rjmp .+660 ; 0xb34 + 89e: d2 01 movw r26, r4 + 8a0: cc 92 st X, r12 + 8a2: 55 c1 rjmp .+682 ; 0xb4e } 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 + 8a4: d7 01 movw r26, r14 8a6: 1c 92 st X, r1 - this->fademap[2][index] = blue; - 8a8: d4 01 movw r26, r8 + this->fademap[1][index] = green; + 8a8: d8 01 movw r26, r16 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 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 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 + 8ac: d4 01 movw r26, r8 + 8ae: 1c 92 st X, r1 this->fademap[3][index] = time; - 8c2: d3 01 movw r26, r6 - 8c4: 3c 92 st X, r3 + 8b0: d3 01 movw r26, r6 + 8b2: 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; - 8c6: d2 01 movw r26, r4 - 8c8: cc 92 st X, r12 - 8ca: 34 c1 rjmp .+616 ; 0xb34 + 8b4: d2 01 movw r26, r4 + 8b6: cc 92 st X, r12 + 8b8: 4a c1 rjmp .+660 ; 0xb4e } 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 + 8ba: d7 01 movw r26, r14 + 8bc: 1c 92 st X, r1 this->fademap[1][index] = green; - 8d0: 20 e4 ldi r18, 0x40 ; 64 - 8d2: d8 01 movw r26, r16 - 8d4: 2c 93 st X, r18 + 8be: d8 01 movw r26, r16 + 8c0: 1c 92 st X, r1 this->fademap[2][index] = blue; - 8d6: d4 01 movw r26, r8 - 8d8: 1c 92 st X, r1 + 8c2: d4 01 movw r26, r8 + 8c4: bc 92 st X, r11 this->fademap[3][index] = time; - 8da: d3 01 movw r26, r6 - 8dc: 3c 92 st X, r3 + 8c6: d3 01 movw r26, r6 + 8c8: 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; - 8de: d2 01 movw r26, r4 - 8e0: cc 92 st X, r12 - 8e2: 28 c1 rjmp .+592 ; 0xb34 + 8ca: d2 01 movw r26, r4 + 8cc: cc 92 st X, r12 + 8ce: 3f c1 rjmp .+638 ; 0xb4e } 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 + 8d0: d7 01 movw r26, r14 + 8d2: bc 92 st X, r11 this->fademap[1][index] = green; - 8e8: d8 01 movw r26, r16 - 8ea: bc 92 st X, r11 + 8d4: d8 01 movw r26, r16 + 8d6: 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 + 8d8: d4 01 movw r26, r8 + 8da: bc 92 st X, r11 this->fademap[3][index] = time; - 8f2: d3 01 movw r26, r6 - 8f4: 3c 92 st X, r3 + 8dc: d3 01 movw r26, r6 + 8de: 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; - 8f6: d2 01 movw r26, r4 - 8f8: cc 92 st X, r12 - 8fa: 1c c1 rjmp .+568 ; 0xb34 + 8e0: d2 01 movw r26, r4 + 8e2: cc 92 st X, r12 + 8e4: 34 c1 rjmp .+616 ; 0xb4e + } + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 8e6: d7 01 movw r26, r14 + 8e8: bc 92 st X, r11 + this->fademap[1][index] = green; + 8ea: 20 e4 ldi r18, 0x40 ; 64 + 8ec: d8 01 movw r26, r16 + 8ee: 2c 93 st X, r18 + this->fademap[2][index] = blue; + 8f0: d4 01 movw r26, r8 + 8f2: 1c 92 st X, r1 + this->fademap[3][index] = time; + 8f4: d3 01 movw r26, r6 + 8f6: 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; + 8f8: d2 01 movw r26, r4 + 8fa: cc 92 st X, r12 + 8fc: 28 c1 rjmp .+592 ; 0xb4e } 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 + 900: 1c 92 st X, r1 this->fademap[1][index] = green; 902: d8 01 movw r26, r16 - 904: 1c 92 st X, r1 + 904: bc 92 st X, r11 this->fademap[2][index] = blue; - 906: d4 01 movw r26, r8 - 908: bc 92 st X, r11 + 906: 20 e4 ldi r18, 0x40 ; 64 + 908: d4 01 movw r26, r8 + 90a: 2c 93 st X, r18 this->fademap[3][index] = time; - 90a: d3 01 movw r26, r6 - 90c: 3c 92 st X, r3 + 90c: d3 01 movw r26, r6 + 90e: 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; - 90e: d2 01 movw r26, r4 - 910: cc 92 st X, r12 - 912: 10 c1 rjmp .+544 ; 0xb34 + 910: d2 01 movw r26, r4 + 912: cc 92 st X, r12 + 914: 1c c1 rjmp .+568 ; 0xb4e } 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 + 916: 20 e4 ldi r18, 0x40 ; 64 + 918: d7 01 movw r26, r14 + 91a: 2c 93 st X, r18 this->fademap[1][index] = green; - 918: 20 e8 ldi r18, 0x80 ; 128 - 91a: d8 01 movw r26, r16 - 91c: 2c 93 st X, r18 + 91c: d8 01 movw r26, r16 + 91e: 1c 92 st X, r1 this->fademap[2][index] = blue; - 91e: d4 01 movw r26, r8 - 920: 1c 92 st X, r1 + 920: d4 01 movw r26, r8 + 922: bc 92 st X, r11 this->fademap[3][index] = time; - 922: d3 01 movw r26, r6 - 924: 3c 92 st X, r3 + 924: d3 01 movw r26, r6 + 926: 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; - 926: d2 01 movw r26, r4 - 928: cc 92 st X, r12 - 92a: 04 c1 rjmp .+520 ; 0xb34 + 928: d2 01 movw r26, r4 + 92a: cc 92 st X, r12 + 92c: 10 c1 rjmp .+544 ; 0xb4e } 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 + 92e: d7 01 movw r26, r14 + 930: bc 92 st X, r11 this->fademap[1][index] = green; - 930: d8 01 movw r26, r16 - 932: bc 92 st X, r11 + 932: 20 e8 ldi r18, 0x80 ; 128 + 934: d8 01 movw r26, r16 + 936: 2c 93 st X, r18 this->fademap[2][index] = blue; - 934: 20 e8 ldi r18, 0x80 ; 128 - 936: d4 01 movw r26, r8 - 938: 2c 93 st X, r18 + 938: d4 01 movw r26, r8 + 93a: 1c 92 st X, r1 this->fademap[3][index] = time; - 93a: d3 01 movw r26, r6 - 93c: 3c 92 st X, r3 + 93c: d3 01 movw r26, r6 + 93e: 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 + 940: d2 01 movw r26, r4 + 942: cc 92 st X, r12 + 944: 04 c1 rjmp .+520 ; 0xb4e } 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 + 948: 1c 92 st X, r1 this->fademap[1][index] = green; 94a: d8 01 movw r26, r16 - 94c: 1c 92 st X, r1 + 94c: bc 92 st X, r11 this->fademap[2][index] = blue; - 94e: d4 01 movw r26, r8 - 950: bc 92 st X, r11 + 94e: 20 e8 ldi r18, 0x80 ; 128 + 950: d4 01 movw r26, r8 + 952: 2c 93 st X, r18 this->fademap[3][index] = time; - 952: d3 01 movw r26, r6 - 954: 3c 92 st X, r3 + 954: d3 01 movw r26, r6 + 956: 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 + 958: d2 01 movw r26, r4 + 95a: cc 92 st X, r12 + 95c: f8 c0 rjmp .+496 ; 0xb4e } 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 + 95e: 20 e8 ldi r18, 0x80 ; 128 + 960: d7 01 movw r26, r14 + 962: 2c 93 st X, r18 this->fademap[1][index] = green; - 960: 20 ec ldi r18, 0xC0 ; 192 - 962: d8 01 movw r26, r16 - 964: 2c 93 st X, r18 + 964: d8 01 movw r26, r16 + 966: 1c 92 st X, r1 this->fademap[2][index] = blue; - 966: d4 01 movw r26, r8 - 968: 1c 92 st X, r1 + 968: d4 01 movw r26, r8 + 96a: bc 92 st X, r11 this->fademap[3][index] = time; - 96a: d3 01 movw r26, r6 - 96c: 3c 92 st X, r3 + 96c: d3 01 movw r26, r6 + 96e: 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 + 970: d2 01 movw r26, r4 + 972: cc 92 st X, r12 + 974: ec c0 rjmp .+472 ; 0xb4e } 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 + 976: d7 01 movw r26, r14 + 978: bc 92 st X, r11 this->fademap[1][index] = green; - 978: d8 01 movw r26, r16 - 97a: bc 92 st X, r11 + 97a: 20 ec ldi r18, 0xC0 ; 192 + 97c: d8 01 movw r26, r16 + 97e: 2c 93 st X, r18 this->fademap[2][index] = blue; - 97c: 20 ec ldi r18, 0xC0 ; 192 - 97e: d4 01 movw r26, r8 - 980: 2c 93 st X, r18 + 980: d4 01 movw r26, r8 + 982: 1c 92 st X, r1 this->fademap[3][index] = time; - 982: d3 01 movw r26, r6 - 984: 3c 92 st X, r3 + 984: d3 01 movw r26, r6 + 986: 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 + 988: d2 01 movw r26, r4 + 98a: cc 92 st X, r12 + 98c: e0 c0 rjmp .+448 ; 0xb4e } 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 + 990: 1c 92 st X, r1 this->fademap[1][index] = green; 992: d8 01 movw r26, r16 - 994: 1c 92 st X, r1 + 994: bc 92 st X, r11 this->fademap[2][index] = blue; - 996: d4 01 movw r26, r8 - 998: bc 92 st X, r11 + 996: 20 ec ldi r18, 0xC0 ; 192 + 998: d4 01 movw r26, r8 + 99a: 2c 93 st X, r18 this->fademap[3][index] = time; - 99a: d3 01 movw r26, r6 - 99c: 3c 92 st X, r3 + 99c: d3 01 movw r26, r6 + 99e: 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 + 9a0: d2 01 movw r26, r4 + 9a2: cc 92 st X, r12 + 9a4: d4 c0 rjmp .+424 ; 0xb4e } 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 + 9a6: 20 ec ldi r18, 0xC0 ; 192 + 9a8: d7 01 movw r26, r14 + 9aa: 2c 93 st X, r18 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 + 9ac: d8 01 movw r26, r16 9ae: 1c 92 st X, r1 + this->fademap[2][index] = blue; + 9b0: d4 01 movw r26, r8 + 9b2: bc 92 st X, r11 this->fademap[3][index] = time; - 9b0: d3 01 movw r26, r6 - 9b2: 3c 92 st X, r3 + 9b4: d3 01 movw r26, r6 + 9b6: 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 + 9b8: d2 01 movw r26, r4 + 9ba: cc 92 st X, r12 + 9bc: c8 c0 rjmp .+400 ; 0xb4e } 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 + 9be: d7 01 movw r26, r14 9c0: bc 92 st X, r11 - this->fademap[2][index] = blue; - 9c2: d4 01 movw r26, r8 + this->fademap[1][index] = green; + 9c2: d8 01 movw r26, r16 9c4: bc 92 st X, r11 + this->fademap[2][index] = blue; + 9c6: d4 01 movw r26, r8 + 9c8: 1c 92 st X, r1 this->fademap[3][index] = time; - 9c6: d3 01 movw r26, r6 - 9c8: 3c 92 st X, r3 + 9ca: d3 01 movw r26, r6 + 9cc: 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 + 9ce: d2 01 movw r26, r4 + 9d0: cc 92 st X, r12 + 9d2: bd c0 rjmp .+378 ; 0xb4e } 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 + 9d4: d7 01 movw r26, r14 9d6: 1c 92 st X, r1 - this->fademap[2][index] = blue; - 9d8: d4 01 movw r26, r8 + this->fademap[1][index] = green; + 9d8: d8 01 movw r26, r16 9da: bc 92 st X, r11 + this->fademap[2][index] = blue; + 9dc: d4 01 movw r26, r8 + 9de: bc 92 st X, r11 this->fademap[3][index] = time; - 9dc: d3 01 movw r26, r6 - 9de: 3c 92 st X, r3 + 9e0: d3 01 movw r26, r6 + 9e2: 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 + 9e4: d2 01 movw r26, r4 + 9e6: cc 92 st X, r12 + 9e8: b2 c0 rjmp .+356 ; 0xb4e + } + void setfadecolor(uint8_t index, uint8_t red, uint8_t green, uint8_t blue, uint8_t time) { + this->fademap[0][index] = red; + 9ea: d7 01 movw r26, r14 + 9ec: bc 92 st X, r11 + this->fademap[1][index] = green; + 9ee: d8 01 movw r26, r16 + 9f0: 1c 92 st X, r1 + this->fademap[2][index] = blue; + 9f2: d4 01 movw r26, r8 + 9f4: bc 92 st X, r11 + this->fademap[3][index] = time; + 9f6: d3 01 movw r26, r6 + 9f8: 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; + 9fa: d2 01 movw r26, r4 + 9fc: cc 92 st X, r12 + 9fe: a7 c0 rjmp .+334 ; 0xb4e case 19: break; //Button FADE 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 - 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 + a00: 28 2f mov r18, r24 + a02: 30 e0 ldi r19, 0x00 ; 0 + a04: 3a 83 std Y+2, r19 ; 0x02 + a06: 29 83 std Y+1, r18 ; 0x01 UCSR0A= (0< + a08: 80 81 ld r24, Z + a0a: 85 ff sbrs r24, 5 + a0c: fd cf rjmp .-6 ; 0xa08 UDR0 = c; - 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 + a0e: 80 e3 ldi r24, 0x30 ; 48 + a10: a6 ec ldi r26, 0xC6 ; 198 + a12: b0 e0 ldi r27, 0x00 ; 0 + a14: 8c 93 st X, r24 text++; } } void printDec(uint16_t wert) { print((wert/10000)+'0'); print(((wert/1000)%10)+'0'); - 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 + a16: 60 e0 ldi r22, 0x00 ; 0 + a18: 70 e0 ldi r23, 0x00 ; 0 + a1a: cb 01 movw r24, r22 + a1c: 96 95 lsr r25 + a1e: 87 95 ror r24 + a20: 96 95 lsr r25 + a22: 87 95 ror r24 + a24: 96 95 lsr r25 + a26: 87 95 ror r24 + a28: 9c 01 movw r18, r24 + a2a: 22 0f add r18, r18 + a2c: 33 1f adc r19, r19 + a2e: 88 0f add r24, r24 + a30: 99 1f adc r25, r25 + a32: 88 0f add r24, r24 + a34: 99 1f adc r25, r25 + a36: 88 0f add r24, r24 + a38: 99 1f adc r25, r25 + a3a: 82 0f add r24, r18 + a3c: 93 1f adc r25, r19 + a3e: 68 1b sub r22, r24 + a40: 79 0b sbc r23, r25 + a42: 60 5d subi r22, 0xD0 ; 208 UCSR0A= (0< + a44: 80 81 ld r24, Z + a46: 85 ff sbrs r24, 5 + a48: fd cf rjmp .-6 ; 0xa44 UDR0 = c; - a30: a6 ec ldi r26, 0xC6 ; 198 - a32: b0 e0 ldi r27, 0x00 ; 0 - a34: 6c 93 st X, r22 + a4a: a6 ec ldi r26, 0xC6 ; 198 + a4c: b0 e0 ldi r27, 0x00 ; 0 + a4e: 6c 93 st X, r22 } } void printDec(uint16_t wert) { print((wert/10000)+'0'); print(((wert/1000)%10)+'0'); print(((wert/100)%10)+'0'); - 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 + a50: 29 81 ldd r18, Y+1 ; 0x01 + a52: 3a 81 ldd r19, Y+2 ; 0x02 + a54: 36 95 lsr r19 + a56: 27 95 ror r18 + a58: 36 95 lsr r19 + a5a: 27 95 ror r18 + a5c: ab e7 ldi r26, 0x7B ; 123 + a5e: b4 e1 ldi r27, 0x14 ; 20 + a60: 0e 94 aa 08 call 0x1154 ; 0x1154 <__umulhisi3> + a64: 96 95 lsr r25 + a66: 87 95 ror r24 + a68: 80 5d subi r24, 0xD0 ; 208 UCSR0A= (0< + a6a: 90 81 ld r25, Z + a6c: 95 ff sbrs r25, 5 + a6e: fd cf rjmp .-6 ; 0xa6a UDR0 = c; - a56: a6 ec ldi r26, 0xC6 ; 198 - a58: b0 e0 ldi r27, 0x00 ; 0 - a5a: 8c 93 st X, r24 + a70: a6 ec ldi r26, 0xC6 ; 198 + a72: b0 e0 ldi r27, 0x00 ; 0 + a74: 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'); - 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 + a76: 29 81 ldd r18, Y+1 ; 0x01 + a78: 3a 81 ldd r19, Y+2 ; 0x02 + a7a: ad ec ldi r26, 0xCD ; 205 + a7c: bc ec ldi r27, 0xCC ; 204 + a7e: 0e 94 aa 08 call 0x1154 ; 0x1154 <__umulhisi3> 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 + a8a: 96 95 lsr r25 + a8c: 87 95 ror r24 + a8e: 9c 83 std Y+4, r25 ; 0x04 + a90: 8b 83 std Y+3, r24 ; 0x03 + a92: 9c 01 movw r18, r24 + a94: 0e 94 aa 08 call 0x1154 ; 0x1154 <__umulhisi3> + a98: 96 95 lsr r25 + a9a: 87 95 ror r24 + a9c: 96 95 lsr r25 + a9e: 87 95 ror r24 + aa0: 96 95 lsr r25 + aa2: 87 95 ror r24 + aa4: 9c 01 movw r18, r24 + aa6: 22 0f add r18, r18 + aa8: 33 1f adc r19, r19 + aaa: 88 0f add r24, r24 + aac: 99 1f adc r25, r25 + aae: 88 0f add r24, r24 + ab0: 99 1f adc r25, r25 + ab2: 88 0f add r24, r24 + ab4: 99 1f adc r25, r25 + ab6: 82 0f add r24, r18 + ab8: 93 1f adc r25, r19 + aba: 2b 81 ldd r18, Y+3 ; 0x03 + abc: 3c 81 ldd r19, Y+4 ; 0x04 + abe: 28 1b sub r18, r24 + ac0: 39 0b sbc r19, r25 + ac2: c9 01 movw r24, r18 + ac4: 80 5d subi r24, 0xD0 ; 208 UCSR0A= (0< + ac6: 90 81 ld r25, Z + ac8: 95 ff sbrs r25, 5 + aca: fd cf rjmp .-6 ; 0xac6 UDR0 = c; - ab2: a6 ec ldi r26, 0xC6 ; 198 - ab4: b0 e0 ldi r27, 0x00 ; 0 - ab6: 8c 93 st X, r24 + acc: a6 ec ldi r26, 0xC6 ; 198 + ace: b0 e0 ldi r27, 0x00 ; 0 + ad0: 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'); - 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 + ad2: 29 81 ldd r18, Y+1 ; 0x01 + ad4: 3a 81 ldd r19, Y+2 ; 0x02 + ad6: ad ec ldi r26, 0xCD ; 205 + ad8: bc ec ldi r27, 0xCC ; 204 + ada: 0e 94 aa 08 call 0x1154 ; 0x1154 <__umulhisi3> + ade: 96 95 lsr r25 + ae0: 87 95 ror r24 + ae2: 96 95 lsr r25 + ae4: 87 95 ror r24 + ae6: 96 95 lsr r25 + ae8: 87 95 ror r24 + aea: 9c 01 movw r18, r24 + aec: 22 0f add r18, r18 + aee: 33 1f adc r19, r19 + af0: 88 0f add r24, r24 + af2: 99 1f adc r25, r25 + af4: 88 0f add r24, r24 + af6: 99 1f adc r25, r25 + af8: 88 0f add r24, r24 + afa: 99 1f adc r25, r25 + afc: 82 0f add r24, r18 + afe: 93 1f adc r25, r19 + b00: 29 81 ldd r18, Y+1 ; 0x01 + b02: 3a 81 ldd r19, Y+2 ; 0x02 + b04: 28 1b sub r18, r24 + b06: 39 0b sbc r19, r25 + b08: c9 01 movw r24, r18 + b0a: 80 5d subi r24, 0xD0 ; 208 UCSR0A= (0< + b0c: 90 81 ld r25, Z + b0e: 95 ff sbrs r25, 5 + b10: fd cf rjmp .-6 ; 0xb0c UDR0 = c; - 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 + b12: a6 ec ldi r26, 0xC6 ; 198 + b14: b0 e0 ldi r27, 0x00 ; 0 + b16: 8c 93 st X, r24 + b18: a3 e6 ldi r26, 0x63 ; 99 + b1a: b1 e0 ldi r27, 0x01 ; 1 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) - b02: 90 e2 ldi r25, 0x20 ; 32 - b04: 9d 01 movw r18, r26 + b1c: 90 e2 ldi r25, 0x20 ; 32 + b1e: 9d 01 movw r18, r26 UCSR0A= (0< + b20: 80 81 ld r24, Z + b22: 85 ff sbrs r24, 5 + b24: fd cf rjmp .-6 ; 0xb20 UDR0 = c; - b0c: a6 ec ldi r26, 0xC6 ; 198 - b0e: b0 e0 ldi r27, 0x00 ; 0 - b10: 9c 93 st X, r25 + b26: a6 ec ldi r26, 0xC6 ; 198 + b28: b0 e0 ldi r27, 0x00 ; 0 + b2a: 9c 93 st X, r25 sei(); init(); println("Uart done!"); } void print(const char *text) { while (*text) - 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 + b2c: d9 01 movw r26, r18 + b2e: 9d 91 ld r25, X+ + b30: 9d 01 movw r18, r26 + b32: 91 11 cpse r25, r1 + b34: f5 cf rjmp .-22 ; 0xb20 UCSR0A= (0< + b36: 80 81 ld r24, Z + b38: 85 ff sbrs r24, 5 + b3a: fd cf rjmp .-6 ; 0xb36 UDR0 = c; - b22: a6 ec ldi r26, 0xC6 ; 198 - b24: b0 e0 ldi r27, 0x00 ; 0 - b26: dc 92 st X, r13 + b3c: a6 ec ldi r26, 0xC6 ; 198 + b3e: b0 e0 ldi r27, 0x00 ; 0 + b40: dc 92 st X, r13 UCSR0A= (0< + b42: 80 81 ld r24, Z + b44: 85 ff sbrs r24, 5 + b46: fd cf rjmp .-6 ; 0xb42 UDR0 = c; - b2e: a6 ec ldi r26, 0xC6 ; 198 - b30: b0 e0 ldi r27, 0x00 ; 0 - b32: 3c 92 st X, r3 + b48: a6 ec ldi r26, 0xC6 ; 198 + b4a: b0 e0 ldi r27, 0x00 ; 0 + b4c: 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 + b4e: 00 b6 in r0, 0x30 ; 48 + b50: 05 fe sbrs r0, 5 + b52: 2a c0 rjmp .+84 ; 0xba8 if(doorstatus == 0) { - b3a: 21 10 cpse r2, r1 - b3c: 52 c0 rjmp .+164 ; 0xbe2 + b54: 21 10 cpse r2, r1 + b56: 52 c0 rjmp .+164 ; 0xbfc } 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 + b58: d7 01 movw r26, r14 + b5a: bc 92 st X, r11 this->fademap[1][index] = green; - b42: d8 01 movw r26, r16 - b44: 1c 92 st X, r1 + b5c: d8 01 movw r26, r16 + b5e: 1c 92 st X, r1 this->fademap[2][index] = blue; - b46: d4 01 movw r26, r8 - b48: 1c 92 st X, r1 + b60: d4 01 movw r26, r8 + b62: 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 + b64: 24 e6 ldi r18, 0x64 ; 100 + b66: d3 01 movw r26, r6 + b68: 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 + b6a: d2 01 movw r26, r4 + b6c: cc 92 st X, r12 + b6e: ad e6 ldi r26, 0x6D ; 109 + b70: 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 + b72: 94 e5 ldi r25, 0x54 ; 84 + b74: 9d 01 movw r18, r26 UCSR0A= (0< + b76: 80 81 ld r24, Z + b78: 85 ff sbrs r24, 5 + b7a: fd cf rjmp .-6 ; 0xb76 UDR0 = c; - b62: a6 ec ldi r26, 0xC6 ; 198 - b64: b0 e0 ldi r27, 0x00 ; 0 - b66: 9c 93 st X, r25 + b7c: a6 ec ldi r26, 0xC6 ; 198 + b7e: b0 e0 ldi r27, 0x00 ; 0 + b80: 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 + b82: d9 01 movw r26, r18 + b84: 9d 91 ld r25, X+ + b86: 9d 01 movw r18, r26 + b88: 91 11 cpse r25, r1 + b8a: f5 cf rjmp .-22 ; 0xb76 UCSR0A= (0< + b8c: 80 81 ld r24, Z + b8e: 85 ff sbrs r24, 5 + b90: fd cf rjmp .-6 ; 0xb8c UDR0 = c; - b78: a6 ec ldi r26, 0xC6 ; 198 - b7a: b0 e0 ldi r27, 0x00 ; 0 - b7c: dc 92 st X, r13 + b92: a6 ec ldi r26, 0xC6 ; 198 + b94: b0 e0 ldi r27, 0x00 ; 0 + b96: dc 92 st X, r13 UCSR0A= (0< + b98: 80 81 ld r24, Z + b9a: 85 ff sbrs r24, 5 + b9c: fd cf rjmp .-6 ; 0xb98 UDR0 = c; - b84: a6 ec ldi r26, 0xC6 ; 198 - b86: b0 e0 ldi r27, 0x00 ; 0 - b88: 3c 92 st X, r3 + b9e: a6 ec ldi r26, 0xC6 ; 198 + ba0: b0 e0 ldi r27, 0x00 ; 0 + ba2: 3c 92 st X, r3 doorstatus = 1; - b8a: 2c 2c mov r2, r12 - b8c: 2a c0 rjmp .+84 ; 0xbe2 + ba4: 2c 2c mov r2, r12 + ba6: 2a c0 rjmp .+84 ; 0xbfc 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 + ba8: b1 e0 ldi r27, 0x01 ; 1 + baa: 2b 12 cpse r2, r27 + bac: 27 c0 rjmp .+78 ; 0xbfc + bae: a7 e7 ldi r26, 0x77 ; 119 + bb0: 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 + bb2: 94 e5 ldi r25, 0x54 ; 84 + bb4: 9d 01 movw r18, r26 UCSR0A= (0< + bb6: 80 81 ld r24, Z + bb8: 85 ff sbrs r24, 5 + bba: fd cf rjmp .-6 ; 0xbb6 UDR0 = c; - ba2: a6 ec ldi r26, 0xC6 ; 198 - ba4: b0 e0 ldi r27, 0x00 ; 0 - ba6: 9c 93 st X, r25 + bbc: a6 ec ldi r26, 0xC6 ; 198 + bbe: b0 e0 ldi r27, 0x00 ; 0 + bc0: 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 + bc2: d9 01 movw r26, r18 + bc4: 9d 91 ld r25, X+ + bc6: 9d 01 movw r18, r26 + bc8: 91 11 cpse r25, r1 + bca: f5 cf rjmp .-22 ; 0xbb6 UCSR0A= (0< + bcc: 80 81 ld r24, Z + bce: 85 ff sbrs r24, 5 + bd0: fd cf rjmp .-6 ; 0xbcc UDR0 = c; - bb8: a6 ec ldi r26, 0xC6 ; 198 - bba: b0 e0 ldi r27, 0x00 ; 0 - bbc: dc 92 st X, r13 + bd2: a6 ec ldi r26, 0xC6 ; 198 + bd4: b0 e0 ldi r27, 0x00 ; 0 + bd6: dc 92 st X, r13 UCSR0A= (0< + bd8: 80 81 ld r24, Z + bda: 85 ff sbrs r24, 5 + bdc: fd cf rjmp .-6 ; 0xbd8 UDR0 = c; - bc4: a6 ec ldi r26, 0xC6 ; 198 - bc6: b0 e0 ldi r27, 0x00 ; 0 - bc8: 3c 92 st X, r3 + bde: a6 ec ldi r26, 0xC6 ; 198 + be0: b0 e0 ldi r27, 0x00 ; 0 + be2: 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 + be4: d7 01 movw r26, r14 + be6: 1c 92 st X, r1 this->fademap[1][index] = green; - bce: d8 01 movw r26, r16 - bd0: bc 92 st X, r11 + be8: d8 01 movw r26, r16 + bea: bc 92 st X, r11 this->fademap[2][index] = blue; - bd2: d4 01 movw r26, r8 - bd4: 1c 92 st X, r1 + bec: d4 01 movw r26, r8 + bee: 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 + bf0: 22 e3 ldi r18, 0x32 ; 50 + bf2: d3 01 movw r26, r6 + bf4: 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 + bf6: d2 01 movw r26, r4 + bf8: 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 + bfa: 21 2c mov r2, r1 + bfc: 87 e8 ldi r24, 0x87 ; 135 + bfe: 93 e1 ldi r25, 0x13 ; 19 + c00: 01 97 sbiw r24, 0x01 ; 1 + c02: f1 f7 brne .-4 ; 0xc00 + c04: 00 c0 rjmp .+0 ; 0xc06 + c06: 00 00 nop namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 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 + c08: 29 98 cbi 0x05, 1 ; 5 + c0a: 9f ed ldi r25, 0xDF ; 223 + c0c: aa e0 ldi r26, 0x0A ; 10 + c0e: b6 e0 ldi r27, 0x06 ; 6 + c10: 91 50 subi r25, 0x01 ; 1 + c12: a0 40 sbci r26, 0x00 ; 0 + c14: b0 40 sbci r27, 0x00 ; 0 + c16: e1 f7 brne .-8 ; 0xc10 + c18: 00 c0 rjmp .+0 ; 0xc1a + c1a: 00 00 nop + c1c: 29 9a sbi 0x05, 1 ; 5 + c1e: 85 cd rjmp .-1270 ; 0x72a -00000c06 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv>: - c06: 55 9a sbi 0x0a, 5 ; 10 - c08: 53 9a sbi 0x0a, 3 ; 10 +00000c20 <_ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv>: + c20: 55 9a sbi 0x0a, 5 ; 10 + c22: 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; } - c0a: 23 9a sbi 0x04, 3 ; 4 - float fadesteps[3]; + c24: 23 9a sbi 0x04, 3 ; 4 + float virtualcolor[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 + c26: fc 01 movw r30, r24 + c28: 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(); + c6c: 80 81 ld r24, Z + c6e: 80 6a ori r24, 0xA0 ; 160 + c70: 80 83 st Z, r24 + this->initTimer(); + this->color(0, 0, 0); } - void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - c58: 18 bc out 0x28, r1 ; 40 - OCR2B=g; //GRÜN - c5a: 10 92 b4 00 sts 0x00B4, r1 - OCR2A=b; //BLAU - c5e: 10 92 b3 00 sts 0x00B3, r1 - c62: 08 95 ret + void sp(uint8_t i, uint8_t c) { + switch(i) { + case 0: OCR0B = c; break; //ROT + c72: 18 bc out 0x28, r1 ; 40 + case 1: OCR2B = c; break; //GRÜN + c74: 10 92 b4 00 sts 0x00B4, r1 + case 2: OCR2A = c; break; //BLAU + c78: 10 92 b3 00 sts 0x00B3, r1 + c7c: 08 95 ret -00000c64 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv>: +00000c7e <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv>: // Interrupt on any change on pins PCINT16-23: Off EICRA=(0< + c88: 4a 9b sbis 0x09, 2 ; 9 + c8a: fe cf rjmp .-4 ; 0xc88 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0xa> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 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 + c8c: ef e9 ldi r30, 0x9F ; 159 + c8e: ff e0 ldi r31, 0x0F ; 15 + c90: 31 97 sbiw r30, 0x01 ; 1 + c92: f1 f7 brne .-4 ; 0xc90 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x12> + c94: 00 c0 rjmp .+0 ; 0xc96 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x18> + c96: 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()) { - c7e: 4a 9b sbis 0x09, 2 ; 9 - c80: 08 c0 rjmp .+16 ; 0xc92 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x2e> + c98: 4a 9b sbis 0x09, 2 ; 9 + c9a: 08 c0 rjmp .+16 ; 0xcac <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x2e> r |= (1< - 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 + c9c: ab 01 movw r20, r22 + c9e: 02 2e mov r0, r18 + ca0: 02 c0 rjmp .+4 ; 0xca6 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x28> + ca2: 44 0f add r20, r20 + ca4: 55 1f adc r21, r21 + ca6: 0a 94 dec r0 + ca8: e2 f7 brpl .-8 ; 0xca2 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x24> + caa: 84 2b or r24, r20 } for(uint8_t j=0;j<50;j++) { if(!intpin::value()) { - 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 + cac: 4a 99 sbic 0x09, 2 ; 9 + cae: 0f c0 rjmp .+30 ; 0xcce <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x50> + cb0: 08 c0 rjmp .+16 ; 0xcc2 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x44> + cb2: 4a 9b sbis 0x09, 2 ; 9 + cb4: 06 c0 rjmp .+12 ; 0xcc2 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x44> + cb6: f5 e8 ldi r31, 0x85 ; 133 + cb8: fa 95 dec r31 + cba: f1 f7 brne .-4 ; 0xcb8 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x3a> + cbc: 00 00 nop + cbe: 91 50 subi r25, 0x01 ; 1 intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< - ca8: 2f 5f subi r18, 0xFF ; 255 - caa: 3f 4f sbci r19, 0xFF ; 255 + cc0: c1 f7 brne .-16 ; 0xcb2 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x34> + cc2: 2f 5f subi r18, 0xFF ; 255 + cc4: 3f 4f sbci r19, 0xFF ; 255 EIMSK=(0< - 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> + cc6: 28 30 cpi r18, 0x08 ; 8 + cc8: 31 05 cpc r19, r1 + cca: f1 f6 brne .-68 ; 0xc88 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0xa> + ccc: 08 95 ret + cce: 45 e8 ldi r20, 0x85 ; 133 + cd0: 4a 95 dec r20 + cd2: f1 f7 brne .-4 ; 0xcd0 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x52> + cd4: 00 00 nop + cd6: 91 e3 ldi r25, 0x31 ; 49 + cd8: ec cf rjmp .-40 ; 0xcb2 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv+0x34> -00000cc0 <__vector_1>: +00000cda <__vector_1>: _delay_ms(99); led.green(1); } } ISR(INT0_vect) { - 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 + cda: 1f 92 push r1 + cdc: 0f 92 push r0 + cde: 0f b6 in r0, 0x3f ; 63 + ce0: 0f 92 push r0 + ce2: 11 24 eor r1, r1 + ce4: 2f 93 push r18 + ce6: 3f 93 push r19 + ce8: 4f 93 push r20 + cea: 5f 93 push r21 + cec: 6f 93 push r22 + cee: 7f 93 push r23 + cf0: 8f 93 push r24 + cf2: 9f 93 push r25 + cf4: af 93 push r26 + cf6: bf 93 push r27 + cf8: cf 93 push r28 + cfa: ef 93 push r30 + cfc: ff 93 push r31 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - ce4: 28 9a sbi 0x05, 0 ; 5 + cfe: 28 9a sbi 0x05, 0 ; 5 public: IR() { this->init(); } int read() { if(intpin::value()) { //Is High, Abbort - ce6: 4a 99 sbic 0x09, 2 ; 9 - ce8: 79 c0 rjmp .+242 ; 0xddc <__vector_1+0x11c> + d00: 4a 99 sbic 0x09, 2 ; 9 + d02: 79 c0 rjmp .+242 ; 0xdf6 <__vector_1+0x11c> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 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 + d04: 8f e1 ldi r24, 0x1F ; 31 + d06: 9e e4 ldi r25, 0x4E ; 78 + d08: 01 97 sbiw r24, 0x01 ; 1 + d0a: f1 f7 brne .-4 ; 0xd08 <__vector_1+0x2e> + d0c: 00 c0 rjmp .+0 ; 0xd0e <__vector_1+0x34> + d0e: 00 00 nop return 254; } _delay_ms(4); //Wait 4ms if(intpin::value()) { //Is High, Abbort - 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> + d10: 4a 99 sbic 0x09, 2 ; 9 + d12: 71 c0 rjmp .+226 ; 0xdf6 <__vector_1+0x11c> + d14: 4a 9b sbis 0x09, 2 ; 9 + d16: fe cf rjmp .-4 ; 0xd14 <__vector_1+0x3a> static void wait_is_clear() { do {} while ((Port::pin() & (1< - d02: 80 e0 ldi r24, 0x00 ; 0 - d04: 90 e0 ldi r25, 0x00 ; 0 - d06: 60 e0 ldi r22, 0x00 ; 0 + d18: 4a 99 sbic 0x09, 2 ; 9 + d1a: fe cf rjmp .-4 ; 0xd18 <__vector_1+0x3e> + d1c: 80 e0 ldi r24, 0x00 ; 0 + d1e: 90 e0 ldi r25, 0x00 ; 0 + d20: 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< + d26: 4a 9b sbis 0x09, 2 ; 9 + d28: fe cf rjmp .-4 ; 0xd26 <__vector_1+0x4c> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 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 + d2a: ef e9 ldi r30, 0x9F ; 159 + d2c: ff e0 ldi r31, 0x0F ; 15 + d2e: 31 97 sbiw r30, 0x01 ; 1 + d30: f1 f7 brne .-4 ; 0xd2e <__vector_1+0x54> + d32: 00 c0 rjmp .+0 ; 0xd34 <__vector_1+0x5a> + d34: 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()) { - d1c: 4a 9b sbis 0x09, 2 ; 9 - d1e: 08 c0 rjmp .+16 ; 0xd30 <__vector_1+0x70> + d36: 4a 9b sbis 0x09, 2 ; 9 + d38: 08 c0 rjmp .+16 ; 0xd4a <__vector_1+0x70> r |= (1< - 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 + d3a: 9a 01 movw r18, r20 + d3c: 08 2e mov r0, r24 + d3e: 02 c0 rjmp .+4 ; 0xd44 <__vector_1+0x6a> + d40: 22 0f add r18, r18 + d42: 33 1f adc r19, r19 + d44: 0a 94 dec r0 + d46: e2 f7 brpl .-8 ; 0xd40 <__vector_1+0x66> + d48: 62 2b or r22, r18 } for(uint8_t j=0;j<50;j++) { if(!intpin::value()) { - 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 + d4a: 4a 99 sbic 0x09, 2 ; 9 + d4c: 66 c0 rjmp .+204 ; 0xe1a <__vector_1+0x140> + d4e: 08 c0 rjmp .+16 ; 0xd60 <__vector_1+0x86> + d50: 4a 9b sbis 0x09, 2 ; 9 + d52: 06 c0 rjmp .+12 ; 0xd60 <__vector_1+0x86> + d54: f5 e8 ldi r31, 0x85 ; 133 + d56: fa 95 dec r31 + d58: f1 f7 brne .-4 ; 0xd56 <__vector_1+0x7c> + d5a: 00 00 nop + d5c: 21 50 subi r18, 0x01 ; 1 intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< - d46: 01 96 adiw r24, 0x01 ; 1 + d5e: c1 f7 brne .-16 ; 0xd50 <__vector_1+0x76> + d60: 01 96 adiw r24, 0x01 ; 1 EIMSK=(0< + d62: 88 30 cpi r24, 0x08 ; 8 + d64: 91 05 cpc r25, r1 + d66: f9 f6 brne .-66 ; 0xd26 <__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; - 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 + d68: 61 11 cpse r22, r1 + d6a: 39 c0 rjmp .+114 ; 0xdde <__vector_1+0x104> + d6c: 80 e0 ldi r24, 0x00 ; 0 + d6e: 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< - 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 + d70: 41 e0 ldi r20, 0x01 ; 1 + d72: 50 e0 ldi r21, 0x00 ; 0 + d74: 4a 9b sbis 0x09, 2 ; 9 + d76: fe cf rjmp .-4 ; 0xd74 <__vector_1+0x9a> + d78: ef e9 ldi r30, 0x9F ; 159 + d7a: ff e0 ldi r31, 0x0F ; 15 + d7c: 31 97 sbiw r30, 0x01 ; 1 + d7e: f1 f7 brne .-4 ; 0xd7c <__vector_1+0xa2> + d80: 00 c0 rjmp .+0 ; 0xd82 <__vector_1+0xa8> + d82: 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()) { - d6a: 4a 9b sbis 0x09, 2 ; 9 - d6c: 08 c0 rjmp .+16 ; 0xd7e <__vector_1+0xbe> + d84: 4a 9b sbis 0x09, 2 ; 9 + d86: 08 c0 rjmp .+16 ; 0xd98 <__vector_1+0xbe> r |= (1< - 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 + d88: 9a 01 movw r18, r20 + d8a: 08 2e mov r0, r24 + d8c: 02 c0 rjmp .+4 ; 0xd92 <__vector_1+0xb8> + d8e: 22 0f add r18, r18 + d90: 33 1f adc r19, r19 + d92: 0a 94 dec r0 + d94: e2 f7 brpl .-8 ; 0xd8e <__vector_1+0xb4> + d96: 62 2b or r22, r18 } for(uint8_t j=0;j<50;j++) { if(!intpin::value()) { - 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 + d98: 4a 99 sbic 0x09, 2 ; 9 + d9a: 39 c0 rjmp .+114 ; 0xe0e <__vector_1+0x134> + d9c: 08 c0 rjmp .+16 ; 0xdae <__vector_1+0xd4> + d9e: 4a 9b sbis 0x09, 2 ; 9 + da0: 06 c0 rjmp .+12 ; 0xdae <__vector_1+0xd4> + da2: f5 e8 ldi r31, 0x85 ; 133 + da4: fa 95 dec r31 + da6: f1 f7 brne .-4 ; 0xda4 <__vector_1+0xca> + da8: 00 00 nop + daa: 21 50 subi r18, 0x01 ; 1 intpin::wait_is_set(); _delay_us(800); if(intpin::read()) { r |= (1< - d94: 01 96 adiw r24, 0x01 ; 1 + dac: c1 f7 brne .-16 ; 0xd9e <__vector_1+0xc4> + dae: 01 96 adiw r24, 0x01 ; 1 EIMSK=(0< + db0: 88 30 cpi r24, 0x08 ; 8 + db2: 91 05 cpc r25, r1 + db4: f9 f6 brne .-66 ; 0xd74 <__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) { - d9c: 6f 3e cpi r22, 0xEF ; 239 - d9e: 91 f4 brne .+36 ; 0xdc4 <__vector_1+0x104> + db6: 6f 3e cpi r22, 0xEF ; 239 + db8: 91 f4 brne .+36 ; 0xdde <__vector_1+0x104> return 255; } //Read Byte 3 and 4 (Data Byte and Checksum Byte! uint8_t a = this->read8bit(); - 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 + dba: 84 e8 ldi r24, 0x84 ; 132 + dbc: 91 e0 ldi r25, 0x01 ; 1 + dbe: 0e 94 3f 06 call 0xc7e ; 0xc7e <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv> + dc2: c8 2f mov r28, r24 uint8_t b = this->read8bit(); - daa: 84 e8 ldi r24, 0x84 ; 132 - dac: 91 e0 ldi r25, 0x01 ; 1 - dae: 0e 94 32 06 call 0xc64 ; 0xc64 <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv> + dc4: 84 e8 ldi r24, 0x84 ; 132 + dc6: 91 e0 ldi r25, 0x01 ; 1 + dc8: 0e 94 3f 06 call 0xc7e ; 0xc7e <_ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv> //Make Checksum Byte 3 + 4 must be 255! if(a+b != 255) { - 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> + dcc: 28 2f mov r18, r24 + dce: 30 e0 ldi r19, 0x00 ; 0 + dd0: 2c 0f add r18, r28 + dd2: 31 1d adc r19, r1 + dd4: 2f 3f cpi r18, 0xFF ; 255 + dd6: 31 05 cpc r19, r1 + dd8: 11 f4 brne .+4 ; 0xdde <__vector_1+0x104> } //The Interrupt Function void interrupt() { led.red(1); uint8_t code = this->read(); if(code == 255) { - dc0: cf 3f cpi r28, 0xFF ; 255 - dc2: 51 f4 brne .+20 ; 0xdd8 <__vector_1+0x118> + dda: cf 3f cpi r28, 0xFF ; 255 + ddc: 51 f4 brne .+20 ; 0xdf2 <__vector_1+0x118> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 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> + dde: 2f e7 ldi r18, 0x7F ; 127 + de0: 34 e8 ldi r19, 0x84 ; 132 + de2: 8e e1 ldi r24, 0x1E ; 30 + de4: 21 50 subi r18, 0x01 ; 1 + de6: 30 40 sbci r19, 0x00 ; 0 + de8: 80 40 sbci r24, 0x00 ; 0 + dea: e1 f7 brne .-8 ; 0xde4 <__vector_1+0x10a> + dec: 00 c0 rjmp .+0 ; 0xdee <__vector_1+0x114> + dee: 00 00 nop + df0: 0b c0 rjmp .+22 ; 0xe08 <__vector_1+0x12e> _delay_ms(500); } else if(code == 254) { - 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> + df2: ce 3f cpi r28, 0xFE ; 254 + df4: 39 f4 brne .+14 ; 0xe04 <__vector_1+0x12a> + df6: e7 e8 ldi r30, 0x87 ; 135 + df8: f3 e1 ldi r31, 0x13 ; 19 + dfa: 31 97 sbiw r30, 0x01 ; 1 + dfc: f1 f7 brne .-4 ; 0xdfa <__vector_1+0x120> + dfe: 00 c0 rjmp .+0 ; 0xe00 <__vector_1+0x126> + e00: 00 00 nop + e02: 02 c0 rjmp .+4 ; 0xe08 <__vector_1+0x12e> _delay_ms(1); } else { this->_code = code; - dea: c0 93 85 01 sts 0x0185, r28 - dee: 28 98 cbi 0x05, 0 ; 5 + e04: c0 93 85 01 sts 0x0185, r28 + e08: 28 98 cbi 0x05, 0 ; 5 } led.red(0); EIFR |= (1< + e0a: e0 9a sbi 0x1c, 0 ; 28 + e0c: 0c c0 rjmp .+24 ; 0xe26 <__vector_1+0x14c> #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - 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> + e0e: f5 e8 ldi r31, 0x85 ; 133 + e10: fa 95 dec r31 + e12: f1 f7 brne .-4 ; 0xe10 <__vector_1+0x136> + e14: 00 00 nop + e16: 21 e3 ldi r18, 0x31 ; 49 + e18: c2 cf rjmp .-124 ; 0xd9e <__vector_1+0xc4> + e1a: 25 e8 ldi r18, 0x85 ; 133 + e1c: 2a 95 dec r18 + e1e: f1 f7 brne .-4 ; 0xe1c <__vector_1+0x142> + e20: 00 00 nop + e22: 21 e3 ldi r18, 0x31 ; 49 + e24: 95 cf rjmp .-214 ; 0xd50 <__vector_1+0x76> ir.interrupt(); } - 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 + e26: ff 91 pop r31 + e28: ef 91 pop r30 + e2a: cf 91 pop r28 + e2c: bf 91 pop r27 + e2e: af 91 pop r26 + e30: 9f 91 pop r25 + e32: 8f 91 pop r24 + e34: 7f 91 pop r23 + e36: 6f 91 pop r22 + e38: 5f 91 pop r21 + e3a: 4f 91 pop r20 + e3c: 3f 91 pop r19 + e3e: 2f 91 pop r18 + e40: 0f 90 pop r0 + e42: 0f be out 0x3f, r0 ; 63 + e44: 0f 90 pop r0 + e46: 1f 90 pop r1 + e48: 18 95 reti -00000e30 <_GLOBAL__sub_I_Serial>: +00000e4a <_GLOBAL__sub_I_Serial>: */ #include "peripheral.h" #include uartclass Serial; - e30: 89 ea ldi r24, 0xA9 ; 169 - e32: 91 e0 ldi r25, 0x01 ; 1 - e34: 0e 94 93 02 call 0x526 ; 0x526 <_ZN4UartILm9600EEC1Ev> + e4a: 85 eb ldi r24, 0xB5 ; 181 + e4c: 91 e0 ldi r25, 0x01 ; 1 + e4e: 0e 94 a0 02 call 0x540 ; 0x540 <_ZN4UartILm9600EEC1Ev> template class Stripe { public: Stripe() { this->init(); - 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> + e52: 88 e8 ldi r24, 0x88 ; 136 + e54: 91 e0 ldi r25, 0x01 ; 1 + e56: 0e 94 10 06 call 0xc20 ; 0xc20 <_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; } - e40: 20 9a sbi 0x04, 0 ; 4 - e42: 21 9a sbi 0x04, 1 ; 4 + e5a: 20 9a sbi 0x04, 0 ; 4 + e5c: 21 9a sbi 0x04, 1 ; 4 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - e44: 28 98 cbi 0x05, 0 ; 5 - e46: 29 98 cbi 0x05, 1 ; 5 - e48: 56 98 cbi 0x0a, 6 ; 10 + e5e: 28 98 cbi 0x05, 0 ; 5 + e60: 29 98 cbi 0x05, 1 ; 5 + e62: 56 98 cbi 0x0a, 6 ; 10 namespace avrlib { struct portd { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } - e4a: 5e 98 cbi 0x0b, 6 ; 11 + e64: 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; } - e4c: 57 98 cbi 0x0a, 7 ; 10 + e66: 57 98 cbi 0x0a, 7 ; 10 namespace avrlib { struct portd { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } - e4e: 5f 98 cbi 0x0b, 7 ; 11 + e68: 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; - e68: 8f ef ldi r24, 0xFF ; 255 - e6a: 80 93 85 01 sts 0x0185, r24 + e82: 8f ef ldi r24, 0xFF ; 255 + e84: 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<: - e7c: 50 58 subi r21, 0x80 ; 128 +00000e96 <__subsf3>: + e96: 50 58 subi r21, 0x80 ; 128 -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> +00000e98 <__addsf3>: + e98: bb 27 eor r27, r27 + e9a: aa 27 eor r26, r26 + e9c: 0e d0 rcall .+28 ; 0xeba <__addsf3x> + e9e: 08 c1 rjmp .+528 ; 0x10b0 <__fp_round> + ea0: f9 d0 rcall .+498 ; 0x1094 <__fp_pscA> + ea2: 30 f0 brcs .+12 ; 0xeb0 <__addsf3+0x18> + ea4: fe d0 rcall .+508 ; 0x10a2 <__fp_pscB> + ea6: 20 f0 brcs .+8 ; 0xeb0 <__addsf3+0x18> + ea8: 31 f4 brne .+12 ; 0xeb6 <__addsf3+0x1e> + eaa: 9f 3f cpi r25, 0xFF ; 255 + eac: 11 f4 brne .+4 ; 0xeb2 <__addsf3+0x1a> + eae: 1e f4 brtc .+6 ; 0xeb6 <__addsf3+0x1e> + eb0: ee c0 rjmp .+476 ; 0x108e <__fp_nan> + eb2: 0e f4 brtc .+2 ; 0xeb6 <__addsf3+0x1e> + eb4: e0 95 com r30 + eb6: e7 fb bst r30, 7 + eb8: e4 c0 rjmp .+456 ; 0x1082 <__fp_inf> -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 +00000eba <__addsf3x>: + eba: e9 2f mov r30, r25 + ebc: 0a d1 rcall .+532 ; 0x10d2 <__fp_split3> + ebe: 80 f3 brcs .-32 ; 0xea0 <__addsf3+0x8> + ec0: ba 17 cp r27, r26 + ec2: 62 07 cpc r22, r18 + ec4: 73 07 cpc r23, r19 + ec6: 84 07 cpc r24, r20 + ec8: 95 07 cpc r25, r21 + eca: 18 f0 brcs .+6 ; 0xed2 <__addsf3x+0x18> + ecc: 71 f4 brne .+28 ; 0xeea <__addsf3x+0x30> + ece: 9e f5 brtc .+102 ; 0xf36 <__addsf3x+0x7c> + ed0: 22 c1 rjmp .+580 ; 0x1116 <__fp_zero> + ed2: 0e f4 brtc .+2 ; 0xed6 <__addsf3x+0x1c> + ed4: e0 95 com r30 + ed6: 0b 2e mov r0, r27 + ed8: ba 2f mov r27, r26 + eda: a0 2d mov r26, r0 + edc: 0b 01 movw r0, r22 + ede: b9 01 movw r22, r18 + ee0: 90 01 movw r18, r0 + ee2: 0c 01 movw r0, r24 + ee4: ca 01 movw r24, r20 + ee6: a0 01 movw r20, r0 + ee8: 11 24 eor r1, r1 + eea: ff 27 eor r31, r31 + eec: 59 1b sub r21, r25 + eee: 99 f0 breq .+38 ; 0xf16 <__addsf3x+0x5c> + ef0: 59 3f cpi r21, 0xF9 ; 249 + ef2: 50 f4 brcc .+20 ; 0xf08 <__addsf3x+0x4e> + ef4: 50 3e cpi r21, 0xE0 ; 224 + ef6: 68 f1 brcs .+90 ; 0xf52 <__addsf3x+0x98> + ef8: 1a 16 cp r1, r26 + efa: f0 40 sbci r31, 0x00 ; 0 + efc: a2 2f mov r26, r18 + efe: 23 2f mov r18, r19 + f00: 34 2f mov r19, r20 + f02: 44 27 eor r20, r20 + f04: 58 5f subi r21, 0xF8 ; 248 + f06: f3 cf rjmp .-26 ; 0xeee <__addsf3x+0x34> + f08: 46 95 lsr r20 + f0a: 37 95 ror r19 + f0c: 27 95 ror r18 + f0e: a7 95 ror r26 + f10: f0 40 sbci r31, 0x00 ; 0 + f12: 53 95 inc r21 + f14: c9 f7 brne .-14 ; 0xf08 <__addsf3x+0x4e> + f16: 7e f4 brtc .+30 ; 0xf36 <__addsf3x+0x7c> + f18: 1f 16 cp r1, r31 + f1a: ba 0b sbc r27, r26 + f1c: 62 0b sbc r22, r18 + f1e: 73 0b sbc r23, r19 + f20: 84 0b sbc r24, r20 + f22: ba f0 brmi .+46 ; 0xf52 <__addsf3x+0x98> + f24: 91 50 subi r25, 0x01 ; 1 + f26: a1 f0 breq .+40 ; 0xf50 <__addsf3x+0x96> + f28: ff 0f add r31, r31 + f2a: bb 1f adc r27, r27 + f2c: 66 1f adc r22, r22 + f2e: 77 1f adc r23, r23 + f30: 88 1f adc r24, r24 + f32: c2 f7 brpl .-16 ; 0xf24 <__addsf3x+0x6a> + f34: 0e c0 rjmp .+28 ; 0xf52 <__addsf3x+0x98> + f36: ba 0f add r27, r26 + f38: 62 1f adc r22, r18 + f3a: 73 1f adc r23, r19 + f3c: 84 1f adc r24, r20 + f3e: 48 f4 brcc .+18 ; 0xf52 <__addsf3x+0x98> + f40: 87 95 ror r24 + f42: 77 95 ror r23 + f44: 67 95 ror r22 + f46: b7 95 ror r27 + f48: f7 95 ror r31 + f4a: 9e 3f cpi r25, 0xFE ; 254 + f4c: 08 f0 brcs .+2 ; 0xf50 <__addsf3x+0x96> + f4e: b3 cf rjmp .-154 ; 0xeb6 <__addsf3+0x1e> + f50: 93 95 inc r25 + f52: 88 0f add r24, r24 + f54: 08 f0 brcs .+2 ; 0xf58 <__addsf3x+0x9e> + f56: 99 27 eor r25, r25 + f58: ee 0f add r30, r30 + f5a: 97 95 ror r25 + f5c: 87 95 ror r24 + f5e: 08 95 ret -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 +00000f60 <__cmpsf2>: + f60: 6c d0 rcall .+216 ; 0x103a <__fp_cmp> + f62: 08 f4 brcc .+2 ; 0xf66 <__cmpsf2+0x6> + f64: 81 e0 ldi r24, 0x01 ; 1 + f66: 08 95 ret -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 +00000f68 <__fixunssfsi>: + f68: bc d0 rcall .+376 ; 0x10e2 <__fp_splitA> + f6a: 88 f0 brcs .+34 ; 0xf8e <__fixunssfsi+0x26> + f6c: 9f 57 subi r25, 0x7F ; 127 + f6e: 90 f0 brcs .+36 ; 0xf94 <__fixunssfsi+0x2c> + f70: b9 2f mov r27, r25 + f72: 99 27 eor r25, r25 + f74: b7 51 subi r27, 0x17 ; 23 + f76: a0 f0 brcs .+40 ; 0xfa0 <__fixunssfsi+0x38> + f78: d1 f0 breq .+52 ; 0xfae <__fixunssfsi+0x46> + f7a: 66 0f add r22, r22 + f7c: 77 1f adc r23, r23 + f7e: 88 1f adc r24, r24 + f80: 99 1f adc r25, r25 + f82: 1a f0 brmi .+6 ; 0xf8a <__fixunssfsi+0x22> + f84: ba 95 dec r27 + f86: c9 f7 brne .-14 ; 0xf7a <__fixunssfsi+0x12> + f88: 12 c0 rjmp .+36 ; 0xfae <__fixunssfsi+0x46> + f8a: b1 30 cpi r27, 0x01 ; 1 + f8c: 81 f0 breq .+32 ; 0xfae <__fixunssfsi+0x46> + f8e: c3 d0 rcall .+390 ; 0x1116 <__fp_zero> + f90: b1 e0 ldi r27, 0x01 ; 1 + f92: 08 95 ret + f94: c0 c0 rjmp .+384 ; 0x1116 <__fp_zero> + f96: 67 2f mov r22, r23 + f98: 78 2f mov r23, r24 + f9a: 88 27 eor r24, r24 + f9c: b8 5f subi r27, 0xF8 ; 248 + f9e: 39 f0 breq .+14 ; 0xfae <__fixunssfsi+0x46> + fa0: b9 3f cpi r27, 0xF9 ; 249 + fa2: cc f3 brlt .-14 ; 0xf96 <__fixunssfsi+0x2e> + fa4: 86 95 lsr r24 + fa6: 77 95 ror r23 + fa8: 67 95 ror r22 + faa: b3 95 inc r27 + fac: d9 f7 brne .-10 ; 0xfa4 <__fixunssfsi+0x3c> + fae: 3e f4 brtc .+14 ; 0xfbe <__fixunssfsi+0x56> + fb0: 90 95 com r25 + fb2: 80 95 com r24 + fb4: 70 95 com r23 + fb6: 61 95 neg r22 + fb8: 7f 4f sbci r23, 0xFF ; 255 + fba: 8f 4f sbci r24, 0xFF ; 255 + fbc: 9f 4f sbci r25, 0xFF ; 255 + fbe: 08 95 ret -00000fa6 <__floatunsisf>: - fa6: e8 94 clt - fa8: 09 c0 rjmp .+18 ; 0xfbc <__floatsisf+0x12> +00000fc0 <__floatunsisf>: + fc0: e8 94 clt + fc2: 09 c0 rjmp .+18 ; 0xfd6 <__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 +00000fc4 <__floatsisf>: + fc4: 97 fb bst r25, 7 + fc6: 3e f4 brtc .+14 ; 0xfd6 <__floatsisf+0x12> + fc8: 90 95 com r25 + fca: 80 95 com r24 + fcc: 70 95 com r23 + fce: 61 95 neg r22 + fd0: 7f 4f sbci r23, 0xFF ; 255 + fd2: 8f 4f sbci r24, 0xFF ; 255 + fd4: 9f 4f sbci r25, 0xFF ; 255 + fd6: 99 23 and r25, r25 + fd8: a9 f0 breq .+42 ; 0x1004 <__floatsisf+0x40> + fda: f9 2f mov r31, r25 + fdc: 96 e9 ldi r25, 0x96 ; 150 + fde: bb 27 eor r27, r27 + fe0: 93 95 inc r25 + fe2: f6 95 lsr r31 + fe4: 87 95 ror r24 + fe6: 77 95 ror r23 + fe8: 67 95 ror r22 + fea: b7 95 ror r27 + fec: f1 11 cpse r31, r1 + fee: f8 cf rjmp .-16 ; 0xfe0 <__floatsisf+0x1c> + ff0: fa f4 brpl .+62 ; 0x1030 <__floatsisf+0x6c> + ff2: bb 0f add r27, r27 + ff4: 11 f4 brne .+4 ; 0xffa <__floatsisf+0x36> + ff6: 60 ff sbrs r22, 0 + ff8: 1b c0 rjmp .+54 ; 0x1030 <__floatsisf+0x6c> + ffa: 6f 5f subi r22, 0xFF ; 255 + ffc: 7f 4f sbci r23, 0xFF ; 255 + ffe: 8f 4f sbci r24, 0xFF ; 255 + 1000: 9f 4f sbci r25, 0xFF ; 255 + 1002: 16 c0 rjmp .+44 ; 0x1030 <__floatsisf+0x6c> + 1004: 88 23 and r24, r24 + 1006: 11 f0 breq .+4 ; 0x100c <__floatsisf+0x48> + 1008: 96 e9 ldi r25, 0x96 ; 150 + 100a: 11 c0 rjmp .+34 ; 0x102e <__floatsisf+0x6a> + 100c: 77 23 and r23, r23 + 100e: 21 f0 breq .+8 ; 0x1018 <__floatsisf+0x54> + 1010: 9e e8 ldi r25, 0x8E ; 142 + 1012: 87 2f mov r24, r23 + 1014: 76 2f mov r23, r22 + 1016: 05 c0 rjmp .+10 ; 0x1022 <__floatsisf+0x5e> + 1018: 66 23 and r22, r22 + 101a: 71 f0 breq .+28 ; 0x1038 <__floatsisf+0x74> + 101c: 96 e8 ldi r25, 0x86 ; 134 + 101e: 86 2f mov r24, r22 + 1020: 70 e0 ldi r23, 0x00 ; 0 + 1022: 60 e0 ldi r22, 0x00 ; 0 + 1024: 2a f0 brmi .+10 ; 0x1030 <__floatsisf+0x6c> + 1026: 9a 95 dec r25 + 1028: 66 0f add r22, r22 + 102a: 77 1f adc r23, r23 + 102c: 88 1f adc r24, r24 + 102e: da f7 brpl .-10 ; 0x1026 <__floatsisf+0x62> + 1030: 88 0f add r24, r24 + 1032: 96 95 lsr r25 + 1034: 87 95 ror r24 + 1036: 97 f9 bld r25, 7 + 1038: 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 +0000103a <__fp_cmp>: + 103a: 99 0f add r25, r25 + 103c: 00 08 sbc r0, r0 + 103e: 55 0f add r21, r21 + 1040: aa 0b sbc r26, r26 + 1042: e0 e8 ldi r30, 0x80 ; 128 + 1044: fe ef ldi r31, 0xFE ; 254 + 1046: 16 16 cp r1, r22 + 1048: 17 06 cpc r1, r23 + 104a: e8 07 cpc r30, r24 + 104c: f9 07 cpc r31, r25 + 104e: c0 f0 brcs .+48 ; 0x1080 <__fp_cmp+0x46> + 1050: 12 16 cp r1, r18 + 1052: 13 06 cpc r1, r19 + 1054: e4 07 cpc r30, r20 + 1056: f5 07 cpc r31, r21 + 1058: 98 f0 brcs .+38 ; 0x1080 <__fp_cmp+0x46> + 105a: 62 1b sub r22, r18 + 105c: 73 0b sbc r23, r19 + 105e: 84 0b sbc r24, r20 + 1060: 95 0b sbc r25, r21 + 1062: 39 f4 brne .+14 ; 0x1072 <__fp_cmp+0x38> + 1064: 0a 26 eor r0, r26 + 1066: 61 f0 breq .+24 ; 0x1080 <__fp_cmp+0x46> + 1068: 23 2b or r18, r19 + 106a: 24 2b or r18, r20 + 106c: 25 2b or r18, r21 + 106e: 21 f4 brne .+8 ; 0x1078 <__fp_cmp+0x3e> + 1070: 08 95 ret + 1072: 0a 26 eor r0, r26 + 1074: 09 f4 brne .+2 ; 0x1078 <__fp_cmp+0x3e> + 1076: a1 40 sbci r26, 0x01 ; 1 + 1078: a6 95 lsr r26 + 107a: 8f ef ldi r24, 0xFF ; 255 + 107c: 81 1d adc r24, r1 + 107e: 81 1d adc r24, r1 + 1080: 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 +00001082 <__fp_inf>: + 1082: 97 f9 bld r25, 7 + 1084: 9f 67 ori r25, 0x7F ; 127 + 1086: 80 e8 ldi r24, 0x80 ; 128 + 1088: 70 e0 ldi r23, 0x00 ; 0 + 108a: 60 e0 ldi r22, 0x00 ; 0 + 108c: 08 95 ret -00001074 <__fp_nan>: - 1074: 9f ef ldi r25, 0xFF ; 255 - 1076: 80 ec ldi r24, 0xC0 ; 192 - 1078: 08 95 ret +0000108e <__fp_nan>: + 108e: 9f ef ldi r25, 0xFF ; 255 + 1090: 80 ec ldi r24, 0xC0 ; 192 + 1092: 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 +00001094 <__fp_pscA>: + 1094: 00 24 eor r0, r0 + 1096: 0a 94 dec r0 + 1098: 16 16 cp r1, r22 + 109a: 17 06 cpc r1, r23 + 109c: 18 06 cpc r1, r24 + 109e: 09 06 cpc r0, r25 + 10a0: 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 +000010a2 <__fp_pscB>: + 10a2: 00 24 eor r0, r0 + 10a4: 0a 94 dec r0 + 10a6: 12 16 cp r1, r18 + 10a8: 13 06 cpc r1, r19 + 10aa: 14 06 cpc r1, r20 + 10ac: 05 06 cpc r0, r21 + 10ae: 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 +000010b0 <__fp_round>: + 10b0: 09 2e mov r0, r25 + 10b2: 03 94 inc r0 + 10b4: 00 0c add r0, r0 + 10b6: 11 f4 brne .+4 ; 0x10bc <__fp_round+0xc> + 10b8: 88 23 and r24, r24 + 10ba: 52 f0 brmi .+20 ; 0x10d0 <__fp_round+0x20> + 10bc: bb 0f add r27, r27 + 10be: 40 f4 brcc .+16 ; 0x10d0 <__fp_round+0x20> + 10c0: bf 2b or r27, r31 + 10c2: 11 f4 brne .+4 ; 0x10c8 <__fp_round+0x18> + 10c4: 60 ff sbrs r22, 0 + 10c6: 04 c0 rjmp .+8 ; 0x10d0 <__fp_round+0x20> + 10c8: 6f 5f subi r22, 0xFF ; 255 + 10ca: 7f 4f sbci r23, 0xFF ; 255 + 10cc: 8f 4f sbci r24, 0xFF ; 255 + 10ce: 9f 4f sbci r25, 0xFF ; 255 + 10d0: 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 +000010d2 <__fp_split3>: + 10d2: 57 fd sbrc r21, 7 + 10d4: 90 58 subi r25, 0x80 ; 128 + 10d6: 44 0f add r20, r20 + 10d8: 55 1f adc r21, r21 + 10da: 59 f0 breq .+22 ; 0x10f2 <__fp_splitA+0x10> + 10dc: 5f 3f cpi r21, 0xFF ; 255 + 10de: 71 f0 breq .+28 ; 0x10fc <__fp_splitA+0x1a> + 10e0: 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 +000010e2 <__fp_splitA>: + 10e2: 88 0f add r24, r24 + 10e4: 97 fb bst r25, 7 + 10e6: 99 1f adc r25, r25 + 10e8: 61 f0 breq .+24 ; 0x1102 <__fp_splitA+0x20> + 10ea: 9f 3f cpi r25, 0xFF ; 255 + 10ec: 79 f0 breq .+30 ; 0x110c <__fp_splitA+0x2a> + 10ee: 87 95 ror r24 + 10f0: 08 95 ret + 10f2: 12 16 cp r1, r18 + 10f4: 13 06 cpc r1, r19 + 10f6: 14 06 cpc r1, r20 + 10f8: 55 1f adc r21, r21 + 10fa: f2 cf rjmp .-28 ; 0x10e0 <__fp_split3+0xe> + 10fc: 46 95 lsr r20 + 10fe: f1 df rcall .-30 ; 0x10e2 <__fp_splitA> + 1100: 08 c0 rjmp .+16 ; 0x1112 <__fp_splitA+0x30> + 1102: 16 16 cp r1, r22 + 1104: 17 06 cpc r1, r23 + 1106: 18 06 cpc r1, r24 + 1108: 99 1f adc r25, r25 + 110a: f1 cf rjmp .-30 ; 0x10ee <__fp_splitA+0xc> + 110c: 86 95 lsr r24 + 110e: 71 05 cpc r23, r1 + 1110: 61 05 cpc r22, r1 + 1112: 08 94 sec + 1114: 08 95 ret -000010fc <__fp_zero>: - 10fc: e8 94 clt +00001116 <__fp_zero>: + 1116: 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 +00001118 <__fp_szero>: + 1118: bb 27 eor r27, r27 + 111a: 66 27 eor r22, r22 + 111c: 77 27 eor r23, r23 + 111e: cb 01 movw r24, r22 + 1120: 97 f9 bld r25, 7 + 1122: 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 +00001124 <__gesf2>: + 1124: 8a df rcall .-236 ; 0x103a <__fp_cmp> + 1126: 08 f4 brcc .+2 ; 0x112a <__gesf2+0x6> + 1128: 8f ef ldi r24, 0xFF ; 255 + 112a: 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> +0000112c <__divmodhi4>: + 112c: 97 fb bst r25, 7 + 112e: 07 2e mov r0, r23 + 1130: 16 f4 brtc .+4 ; 0x1136 <__divmodhi4+0xa> + 1132: 00 94 com r0 + 1134: 07 d0 rcall .+14 ; 0x1144 <__divmodhi4_neg1> + 1136: 77 fd sbrc r23, 7 + 1138: 09 d0 rcall .+18 ; 0x114c <__divmodhi4_neg2> + 113a: 0e 94 b6 08 call 0x116c ; 0x116c <__udivmodhi4> + 113e: 07 fc sbrc r0, 7 + 1140: 05 d0 rcall .+10 ; 0x114c <__divmodhi4_neg2> + 1142: 3e f4 brtc .+14 ; 0x1152 <__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 +00001144 <__divmodhi4_neg1>: + 1144: 90 95 com r25 + 1146: 81 95 neg r24 + 1148: 9f 4f sbci r25, 0xFF ; 255 + 114a: 08 95 ret -00001132 <__divmodhi4_neg2>: - 1132: 70 95 com r23 - 1134: 61 95 neg r22 - 1136: 7f 4f sbci r23, 0xFF ; 255 +0000114c <__divmodhi4_neg2>: + 114c: 70 95 com r23 + 114e: 61 95 neg r22 + 1150: 7f 4f sbci r23, 0xFF ; 255 -00001138 <__divmodhi4_exit>: - 1138: 08 95 ret +00001152 <__divmodhi4_exit>: + 1152: 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 +00001154 <__umulhisi3>: + 1154: a2 9f mul r26, r18 + 1156: b0 01 movw r22, r0 + 1158: b3 9f mul r27, r19 + 115a: c0 01 movw r24, r0 + 115c: a3 9f mul r26, r19 + 115e: 01 d0 rcall .+2 ; 0x1162 <__umulhisi3+0xe> + 1160: b2 9f mul r27, r18 + 1162: 70 0d add r23, r0 + 1164: 81 1d adc r24, r1 + 1166: 11 24 eor r1, r1 + 1168: 91 1d adc r25, r1 + 116a: 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> +0000116c <__udivmodhi4>: + 116c: aa 1b sub r26, r26 + 116e: bb 1b sub r27, r27 + 1170: 51 e1 ldi r21, 0x11 ; 17 + 1172: 07 c0 rjmp .+14 ; 0x1182 <__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 +00001174 <__udivmodhi4_loop>: + 1174: aa 1f adc r26, r26 + 1176: bb 1f adc r27, r27 + 1178: a6 17 cp r26, r22 + 117a: b7 07 cpc r27, r23 + 117c: 10 f0 brcs .+4 ; 0x1182 <__udivmodhi4_ep> + 117e: a6 1b sub r26, r22 + 1180: 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 +00001182 <__udivmodhi4_ep>: + 1182: 88 1f adc r24, r24 + 1184: 99 1f adc r25, r25 + 1186: 5a 95 dec r21 + 1188: a9 f7 brne .-22 ; 0x1174 <__udivmodhi4_loop> + 118a: 80 95 com r24 + 118c: 90 95 com r25 + 118e: bc 01 movw r22, r24 + 1190: cd 01 movw r24, r26 + 1192: 08 95 ret -0000117a <__tablejump2__>: - 117a: ee 0f add r30, r30 - 117c: ff 1f adc r31, r31 +00001194 <__tablejump2__>: + 1194: ee 0f add r30, r30 + 1196: 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 +00001198 <__tablejump__>: + 1198: 05 90 lpm r0, Z+ + 119a: f4 91 lpm r31, Z + 119c: e0 2d mov r30, r0 + 119e: 09 94 ijmp -00001186 <_exit>: - 1186: f8 94 cli +000011a0 <_exit>: + 11a0: f8 94 cli -00001188 <__stop_program>: - 1188: ff cf rjmp .-2 ; 0x1188 <__stop_program> +000011a2 <__stop_program>: + 11a2: ff cf rjmp .-2 ; 0x11a2 <__stop_program> diff --git a/Door/Debug/Door.map b/Door/Debug/Door.map index f6a1f49..55dd186 100644 --- a/Door/Debug/Door.map +++ b/Door/Debug/Door.map @@ -9,7 +9,7 @@ c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu- c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(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) + Door.o (__floatunsisf) c:/program files (x86)/atmel/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) @@ -296,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 0x118a +.text 0x00000000 0x11a4 *(.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 @@ -382,100 +382,100 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 0x000000be . = ALIGN (0x2) *(.text.*) .text.__vector_13 - 0x000000be 0x468 Door.o + 0x000000be 0x482 Door.o 0x000000be __vector_13 .text._ZN4UartILm9600EEC2Ev - 0x00000526 0x5e Door.o - 0x00000526 _ZN4UartILm9600EEC1Ev - 0x00000526 _ZN4UartILm9600EEC2Ev + 0x00000540 0x5e Door.o + 0x00000540 _ZN4UartILm9600EEC1Ev + 0x00000540 _ZN4UartILm9600EEC2Ev .text._ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh - 0x00000584 0x2e Door.o - 0x00000584 _ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh + 0x0000059e 0x2e Door.o + 0x0000059e _ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE8setcolorEh .text._ZN4UartILm9600EE7printlnEPKc - 0x000005b2 0x4c Door.o - 0x000005b2 _ZN4UartILm9600EE7printlnEPKc - .text.main 0x000005fe 0x608 Door.o - 0x000005fe main + 0x000005cc 0x4c Door.o + 0x000005cc _ZN4UartILm9600EE7printlnEPKc + .text.main 0x00000618 0x608 Door.o + 0x00000618 main .text._ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv - 0x00000c06 0x5e Door.o - 0x00000c06 _ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv + 0x00000c20 0x5e Door.o + 0x00000c20 _ZN6StripeIN6avrlib5portdELi5ES1_Li3ENS0_5portbELi3EE4initEv .text._ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv - 0x00000c64 0x5c Door.o - 0x00000c64 _ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv + 0x00000c7e 0x5c Door.o + 0x00000c7e _ZN2IRIN6avrlib5portdELi2E3LedINS0_5portbELi0ELi1EEE8read8bitEv .text.__vector_1 - 0x00000cc0 0x170 Door.o - 0x00000cc0 __vector_1 + 0x00000cda 0x170 Door.o + 0x00000cda __vector_1 .text._GLOBAL__sub_I_Serial - 0x00000e30 0x4c Door.o + 0x00000e4a 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 + 0x00000e96 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) + 0x00000e96 __subsf3 + 0x00000e98 __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 + 0x00000ea0 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) + 0x00000eba __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 + 0x00000f60 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) + 0x00000f60 __nesf2 + 0x00000f60 __eqsf2 + 0x00000f60 __cmpsf2 + 0x00000f60 __ltsf2 + 0x00000f60 __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 + 0x00000f68 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) + 0x00000f68 __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 + 0x00000fc0 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) + 0x00000fc0 __floatunsisf + 0x00000fc4 __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 + 0x0000103a 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) + 0x0000103a __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 + 0x00001082 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) + 0x00001082 __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 + 0x0000108e 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) + 0x0000108e __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 + 0x00001094 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) + 0x00001094 __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 + 0x000010a2 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) + 0x000010a2 __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 + 0x000010b0 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) + 0x000010b0 __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 + 0x000010d2 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) + 0x000010d2 __fp_split3 + 0x000010e2 __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 + 0x00001116 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) + 0x00001116 __fp_zero + 0x00001118 __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 + 0x00001124 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) + 0x00001124 __gesf2 + 0x00001124 __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 + 0x0000112c 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) + 0x0000112c _div + 0x0000112c __divmodhi4 .text.libgcc.mul - 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 + 0x00001154 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) + 0x00001154 __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) + 0x0000116c 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) + 0x0000116c __udivmodhi4 + .text.libgcc 0x00001194 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) + 0x00001194 __tablejump2__ + 0x00001198 __tablejump__ + 0x000011a0 . = ALIGN (0x2) *(.fini9) - .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 0x000011a0 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) + 0x000011a0 _exit + 0x000011a0 exit *(.fini9) *(.fini8) *(.fini8) @@ -494,11 +494,11 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 *(.fini1) *(.fini1) *(.fini0) - .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 0x000011a0 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) - 0x0000118a _etext = . + 0x000011a4 _etext = . -.data 0x00800100 0x84 load address 0x0000118a +.data 0x00800100 0x84 load address 0x000011a4 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 @@ -536,27 +536,27 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 0x00800184 _edata = . 0x00800184 PROVIDE (__data_end, .) -.bss 0x00800184 0x26 +.bss 0x00800184 0x32 0x00800184 PROVIDE (__bss_start, .) *(.bss) - .bss 0x00800184 0x26 Door.o + .bss 0x00800184 0x32 Door.o 0x00800184 ir 0x00800186 comp 0x00800187 led 0x00800188 stripe - 0x008001a9 Serial + 0x008001b5 Serial *(.bss*) *(COMMON) - 0x008001aa PROVIDE (__bss_end, .) - 0x0000118a __data_load_start = LOADADDR (.data) - 0x0000120e __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x008001b6 PROVIDE (__bss_end, .) + 0x000011a4 __data_load_start = LOADADDR (.data) + 0x00001228 __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x008001aa 0x0 - 0x008001aa PROVIDE (__noinit_start, .) +.noinit 0x008001b6 0x0 + 0x008001b6 PROVIDE (__noinit_start, .) *(.noinit*) - 0x008001aa PROVIDE (__noinit_end, .) - 0x008001aa _end = . - 0x008001aa PROVIDE (__heap_start, .) + 0x008001b6 PROVIDE (__noinit_end, .) + 0x008001b6 _end = . + 0x008001b6 PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 *(.eeprom*) @@ -650,31 +650,31 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0x3546 +.debug_info 0x00000000 0x384a *(.debug_info) - .debug_info 0x00000000 0x3546 Door.o + .debug_info 0x00000000 0x384a Door.o *(.gnu.linkonce.wi.*) -.debug_abbrev 0x00000000 0x4bb +.debug_abbrev 0x00000000 0x4fd *(.debug_abbrev) - .debug_abbrev 0x00000000 0x4bb Door.o + .debug_abbrev 0x00000000 0x4fd Door.o -.debug_line 0x00000000 0x5d5 +.debug_line 0x00000000 0x5f9 *(.debug_line) - .debug_line 0x00000000 0x5d5 Door.o + .debug_line 0x00000000 0x5f9 Door.o -.debug_frame 0x00000000 0x190 +.debug_frame 0x00000000 0x1b8 *(.debug_frame) - .debug_frame 0x00000000 0x190 Door.o + .debug_frame 0x00000000 0x1b8 Door.o -.debug_str 0x00000000 0x13b1 +.debug_str 0x00000000 0x1435 *(.debug_str) - .debug_str 0x00000000 0x13b1 Door.o - 0x1419 (size before relaxing) + .debug_str 0x00000000 0x1435 Door.o + 0x149d (size before relaxing) -.debug_loc 0x00000000 0x14d0 +.debug_loc 0x00000000 0x17a5 *(.debug_loc) - .debug_loc 0x00000000 0x14d0 Door.o + .debug_loc 0x00000000 0x17a5 Door.o .debug_macinfo *(.debug_macinfo) @@ -682,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 0x2d8 +.debug_ranges 0x00000000 0x340 *(.debug_ranges) - .debug_ranges 0x00000000 0x2d8 Door.o + .debug_ranges 0x00000000 0x340 Door.o .debug_macro *(.debug_macro) diff --git a/Door/Debug/Door.srec b/Door/Debug/Door.srec index 1b82835..a9f6e14 100644 --- a/Door/Debug/Door.srec +++ b/Door/Debug/Door.srec @@ -1,292 +1,294 @@ S00C0000446F6F722E7372656384 -S11300000C9435000C9460060C945D000C945D0017 +S11300000C9435000C946D060C945D000C945D000A S11300100C945D000C945D000C945D000C945D00E8 S11300200C945D000C945D000C945D000C945D00D8 S11300300C945D000C945F000C945D000C945D00C6 S11300400C945D000C945D000C945D000C945D00B8 S11300500C945D000C945D000C945D000C945D00A8 -S11300600C945D000C945D00180711241FBECFEFA3 -S1130070D4E0DEBFCDBF11E0A0E0B1E0EAE8F1E1F9 +S11300600C945D000C945D00250711241FBECFEF96 +S1130070D4E0DEBFCDBF11E0A0E0B1E0E4EAF1E1FD 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 +S1130090B1E001C01D92A63BB207E1F710E0CAE649 +S11300A0D0E004C02297FE010E94CC08C836D107D4 +S11300B0C9F70E940C030C94D0080C9400001F9202 +S11300C00F920FB60F9211242F923F924F925F928C +S11300D06F927F928F929F92AF92BF92CF92DF9254 +S11300E0EF92FF920F931F932F933F934F935F933E +S11300F06F937F938F939F93AF93BF93CF93DF932C +S1130100EF93FF93C0918801CC2309F4F6C120E05A +S113011030E0A90160919D0170919E0180919F0141 +S11301209091A0010E94B0078111F0C020E030E05E +S1130130A9016091A1017091A2018091A301909104 +S1130140A4010E94B0078111E4C020E030E0A901BD +S11301506091A5017091A6018091A7019091A801D9 +S11301600E94B007882329F088248394D4C0B394D0 +S113017011C0BB24B394D0E021970F2EF4EBCF2E03 +S1130180D12CF02D0F2EF8E96F2EF1E07F2EF02DFB +S11301906C0E7D1E1B2D1150E12EF12C9E01F701DA +S11301A0EE0FFF1FEE0FFF1FEE0DFF1DE857FE4F72 +S11301B0EC0FFD1F818190E0113009F120F0123025 +S11301C009F057C039C048B59701220F331F220FD9 +S11301D0331F890108571E4F841B9109F301608165 +S11301E070E00E949608882777FD8095982F0E94DA +S11301F0E207F801658B768B878B908F5DC0F601E3 +S113020040819701220F331F220F331F89010857A2 +S11302101E4F841B9109F301608170E00E949608CF +S1130220882777FD8095982F0E94E207F801658B57 +S1130230768B878B908F42C04091B300E701CC0F3F +S1130240DD1FCC0FDD1FC857DE4F841B9109F90158 +S1130250E857FE4F608970E00E949608882777FD72 +S11302608095982F0E94E2076D8B7E8B8F8B988FE1 +S113027028C09701220F331F220F331F0F2EF8E8D7 +S11302808F2EF1E09F2EF02D820E931EF3016081DC +S113029070E00E949608882777FD8095982F0E9429 +S11302A0E207F401658B768B878B908F113031F0E8 +S11302B018F01230C9F405C068B507C1F6016081B1 +S11302C004C16091B300E701CC0FDD1FCC0FDD1F2B +S11302D0C857DE4F70E080E090E00E94E00769A319 +S11302E07AA38BA39CA309C1F701EE0FFF1FEE0FA6 +S11302F0FF1FE857FE4F11A212A213A214A2F2E0AC +S1130300FB1508F034CFF9C0839410C0882483947B +S113031002C0882483940F2EF8E8AF2EF1E0BF2E9C +S1130320F02D0F2EF4EB2F2E312CF02D982C9A94C7 +S1130330C92DD0E0FE01EE0FFF1FEE0FFF1FE8579F +S1130340FE4FC588D688E788F08C20E030E0A9010C +S1130350C701B6010E94920818164CF58E01000FD1 +S1130360111F000F111FF801E857FE4F21A132A100 +S113037043A154A1C701B6010E944C072B013C01C3 +S1130380F5018081F801EC0FFD1FE80FF11DE8571E +S1130390FE4F608170E080E090E00E94E2079B01E4 +S11303A0AC01C301B2010E94B00718169CF520E00D +S11303B030E0A901C701B6010E94B00788230CF000 +S11303C056C08E01000F111F000F111FF801E857CE +S11303D0FE4F21A132A143A154A1C701B6010E943D +S11303E04C072B013C01F5018081F801EC0FFD1F46 +S11303F0E80FF11DE857FE4F608170E080E090E067 +S11304000E94E2079B01AC01C301B2010E94920861 +S113041088236CF1CC0FDD1FCC0FDD1FC857DE4FD6 +S113042029A13AA14BA15CA1C701B6010E944C07C6 +S1130430262F372F462F572F682F792F49A35AA3DA +S11304406BA37CA3622F732F0E94B407F1E09F1665 +S113045041F09F1620F082E0981232C005C068BDBA +S113046053CFF101608350CF6093B30046C0F501D0 +S11304708081FE01EE0FFF1FEE0FFF1FEC0FFD1F2B +S1130480E80FF11DE857FE4F8081F1E09F1641F01F +S11304909F1620F092E0991209C005C088BD06C0DD +S11304A0F101808303C0E3EBF0E08083CC0FDD1F18 +S11304B0CC0FDD1FC857DE4F1D8A1E8A1F8A188E77 +S11304C0F2E0F81508F020CF18C0C701880F991F73 +S11304D0880F991F0F2EF8E8EF2EF1E0FF2EF02D74 +S11304E0E80EF91E70E080E090E00E94E007F7015A +S11304F061A372A383A394A33ACEFF91EF91DF91FA +S1130500CF91BF91AF919F918F917F916F915F91A7 +S11305104F913F912F911F910F91FF90EF90DF909A +S1130520CF90BF90AF909F908F907F906F905F908F +S11305304F903F902F900F900FBE0F901F901895E3 +S1130540CF93DF93789481E88093C4001092C00025 +S113055088E08093C10086E08093C200A1E0B1E00E +S113056095E5E0ECF0E0C6ECD0E0808185FFFDCFBE +S113057098839D919111F9CFE0ECF0E0808185FFA3 +S1130580FDCF8DE08093C600E0ECF0E0808185FF34 +S1130590FDCF8AE08093C600DF91CF91089560FF7C +S11305A004C08FEF8093B30002C01092B30061FFC8 +S11305B004C08FEF8093B40002C01092B40062FFB5 +S11305C003C08FEF88BD089518BC0895CF93DF93BF +S11305D0FB019081992369F0DB011196E0ECF0E0D6 +S11305E0C6ECD0E0808185FFFDCF98839D91911169 +S11305F0F9CFE0ECF0E0808185FFFDCF8DE08093C2 +S1130600C600E0ECF0E0808185FFFDCF8AE08093B6 +S1130610C600DF91CF910895CF93DF9300D000D02F +S1130620CDB7DEB7789464E088E891E00E94CF0209 +S11306306BE071E085EB91E00E94E6022FE73AE17E +S113064086E0215030408040E1F700C0000062E0C5 +S113065088E891E00E94CF0260E171E085EB91E0CF +S11306600E94E6029FE7AAE1B6E09150A040B040A4 +S1130670E1F700C0000061E088E891E00E94CF0249 +S113068066E171E085EB91E00E94E6022FE73AE132 +S113069086E0215030408040E1F700C0000067E070 +S11306A088E891E00E94CF026CE171E085EB91E073 +S11306B00E94E6029FE7AAE1B6E09150A040B04054 +S11306C0E1F700C00000299A60E088E891E00E9408 +S11306D0CF02212C45E851E0BB24BA94AB2C0F2E59 +S11306E0F9E8EF2EF1E0FF2EF02D0EE811E00F2EC9 +S11306F0F3E98F2EF1E09F2EF02D0F2EF8E96F2EE7 +S1130700F1E07F2EF02D0F2EFAE03F2EF02D0F2E6C +S1130710F8E84F2EF1E05F2EF02DCC24C394E0ECEA +S1130720F0E00F2EFDE0DF2EF02DDA018C91AC927B +S11307308C3009F4FCC038F5853009F4B3C090F46A +S1130740823009F48CC038F4882309F446C081301F +S113075009F056C163C0833009F490C0843009F0B5 +S11307604FC195C0883009F4BEC038F4863009F40E +S1130770A4C0873009F044C1ABC08A3009F4CBC0AF +S113078008F0E5C1BCC0823109F40DC190F48F308A +S113079009F4DDC138F48D3009F4D5C08E3009F088 +S11307A02FC1DDC0803109F4E6C0813109F028C1D0 +S11307B0EEC0853109F40EC138F4833109F4C7C1A0 +S11307C0843109F01DC1FBC0873109F4C0C108F4AC +S11307D00CC18F3F09F014C1BAC188B58B3F20F416 +S11307E088B58B5F88BD01C018BCA4EBB0E08C91C8 +S11307F08B3F20F48C918B5F8C9303C0A4EBB0E00F +S11308001C92A3EBB0E08C918B3F20F48C918B5F16 +S11308108C939DC1A3EBB0E01C9299C188B585303F +S113082020F088B5855088BD01C018BCA4EBB0E0A9 +S11308308C91853020F08C9185508C9303C0A4EB6F +S1130840B0E01C92A3EBB0E08C91853020F08C9149 +S113085085508C937CC1A3EBB0E01C9278C184B525 +S11308608F7D84BDA0EBB0E08C918F758C935D98E7 +S1130870559A5B98539A2B98239A69C184B58062E0 +S113088084BDA0EBB0E08C91806A8C9360C1D701E9 +S1130890BC92D8011C92D4011C92D3013C92D20187 +S11308A0CC9255C1D7011C92D801BC92D4011C92A0 +S11308B0D3013C92D201CC924AC1D7011C92D801F7 +S11308C01C92D401BC92D3013C92D201CC923FC180 +S11308D0D701BC92D801BC92D401BC92D3013C9202 +S11308E0D201CC9234C1D701BC9220E4D8012C931C +S11308F0D4011C92D3013C92D201CC9228C1D701DD +S11309001C92D801BC9220E4D4012C93D3013C92D4 +S1130910D201CC921CC120E4D7012C93D8011C92A3 +S1130920D401BC92D3013C92D201CC9210C1D70124 +S1130930BC9220E8D8012C93D4011C92D3013C92A0 +S1130940D201CC9204C1D7011C92D801BC9220E8F8 +S1130950D4012C93D3013C92D201CC92F8C020E86C +S1130960D7012C93D8011C92D401BC92D3013C92A0 +S1130970D201CC92ECC0D701BC9220ECD8012C93CC +S1130980D4011C92D3013C92D201CC92E0C0D70195 +S11309901C92D801BC9220ECD4012C93D3013C923C +S11309A0D201CC92D4C020ECD7012C93D8011C9254 +S11309B0D401BC92D3013C92D201CC92C8C0D701DD +S11309C0BC92D801BC92D4011C92D3013C92D201B6 +S11309D0CC92BDC0D7011C92D801BC92D401BC9268 +S11309E0D3013C92D201CC92B2C0D701BC92D801BF +S11309F01C92D401BC92D3013C92D201CC92A7C0E8 +S1130A00282F30E03A832983808185FFFDCF80E35E +S1130A10A6ECB0E08C9360E070E0CB0196958795EE +S1130A2096958795969587959C01220F331F880F7D +S1130A30991F880F991F880F991F820F931F681B96 +S1130A40790B605D808185FFFDCFA6ECB0E06C93EF +S1130A5029813A813695279536952795ABE7B4E1F8 +S1130A600E94AA0896958795805D908195FFFDCF99 +S1130A70A6ECB0E08C9329813A81ADECBCEC0E94E9 +S1130A80AA089695879596958795969587959C83BC +S1130A908B839C010E94AA089695879596958795C5 +S1130AA0969587959C01220F331F880F991F880FF5 +S1130AB0991F880F991F820F931F2B813C81281B3C +S1130AC0390BC901805D908195FFFDCFA6ECB0E0A4 +S1130AD08C9329813A81ADECBCEC0E94AA089695CE +S1130AE0879596958795969587959C01220F331F38 +S1130AF0880F991F880F991F880F991F820F931FC2 +S1130B0029813A81281B390BC901805D908195FFA9 +S1130B10FDCFA6ECB0E08C93A3E6B1E090E29D019A +S1130B20808185FFFDCFA6ECB0E09C93D9019D9117 +S1130B309D019111F5CF808185FFFDCFA6ECB0E03A +S1130B40DC92808185FFFDCFA6ECB0E03C9200B63C +S1130B5005FE2AC0211052C0D701BC92D8011C92B4 +S1130B60D4011C9224E6D3012C93D201CC92ADE69D +S1130B70B1E094E59D01808185FFFDCFA6ECB0E056 +S1130B809C93D9019D919D019111F5CF808185FFA1 +S1130B90FDCFA6ECB0E0DC92808185FFFDCFA6EC12 +S1130BA0B0E03C922C2C2AC0B1E02B1227C0A7E75E +S1130BB0B1E094E59D01808185FFFDCFA6ECB0E016 +S1130BC09C93D9019D919D019111F5CF808185FF61 +S1130BD0FDCFA6ECB0E0DC92808185FFFDCFA6ECD2 +S1130BE0B0E03C92D7011C92D801BC92D4011C9273 +S1130BF022E3D3012C93D201CC92212C87E893E1F8 +S1130C000197F1F700C0000029989FEDAAE0B6E033 +S1130C109150A040B040E1F700C00000299A85CD72 +S1130C20559A539A239AFC01108281E084BD94E082 +S1130C3095BD16BC1092800092E0909381001092B2 +S1130C408500109284001092B600E0EBF0E08083FF +S1130C5095E09093B1001092B20010926E008093D0 +S1130C606F001092700084B5806284BD8081806AB8 +S1130C70808318BC1092B4001092B300089520E051 +S1130C8030E080E061E070E04A9BFECFEFE9FFE0F6 +S1130C903197F1F700C000004A9B08C0AB01022E57 +S1130CA002C0440F551F0A94E2F7842B4A990FC0DF +S1130CB008C04A9B06C0F5E8FA95F1F70000915088 +S1130CC0C1F72F5F3F4F28303105F1F6089545E80D +S1130CD04A95F1F7000091E3ECCF1F920F920FB603 +S1130CE00F9211242F933F934F935F936F937F93AE +S1130CF08F939F93AF93BF93CF93EF93FF93289AD0 +S1130D004A9979C08FE19EE40197F1F700C0000091 +S1130D104A9971C04A9BFECF4A99FECF80E090E089 +S1130D2060E041E050E04A9BFECFEFE9FFE03197FD +S1130D30F1F700C000004A9B08C09A01082E02C0C7 +S1130D40220F331F0A94E2F7622B4A9966C008C047 +S1130D504A9B06C0F5E8FA95F1F700002150C1F767 +S1130D60019688309105F9F6611139C080E090E070 +S1130D7041E050E04A9BFECFEFE9FFE03197F1F705 +S1130D8000C000004A9B08C09A01082E02C0220F2E +S1130D90331F0A94E2F7622B4A9939C008C04A9B70 +S1130DA006C0F5E8FA95F1F700002150C1F7019665 +S1130DB088309105F9F66F3E91F484E891E00E9441 +S1130DC03F06C82F84E891E00E943F06282F30E0B8 +S1130DD02C0F311D2F3F310511F4CF3F51F42FE774 +S1130DE034E88EE1215030408040E1F700C000003B +S1130DF00BC0CE3F39F4E7E8F3E13197F1F700C0D7 +S1130E00000002C0C09385012898E09A0CC0F5E860 +S1130E10FA95F1F7000021E3C2CF25E82A95F1F70E +S1130E20000021E395CFFF91EF91CF91BF91AF9156 +S1130E309F918F917F916F915F914F913F912F91EE +S1130E400F900FBE0F901F90189585EB91E00E94B4 +S1130E50A00288E891E00E941006209A219A28981E +S1130E60299856985E9857985F9810BE10927B0008 +S1130E7083E080937F00209A219A28982998529899 +S1130E805A988FEF8093850182E08093690081E016 +S1130E908DBB1CBA08955058BB27AA270ED008C191 +S1130EA0F9D030F0FED020F031F49F3F11F41EF45D +S1130EB0EEC00EF4E095E7FBE4C0E92F0AD180F31D +S1130EC0BA17620773078407950718F071F49EF543 +S1130ED022C10EF4E0950B2EBA2FA02D0B01B901FF +S1130EE090010C01CA01A0011124FF27591B99F09C +S1130EF0593F50F4503E68F11A16F040A22F232FA8 +S1130F00342F4427585FF3CF469537952795A795F7 +S1130F10F0405395C9F77EF41F16BA0B620B730B9E +S1130F20840BBAF09150A1F0FF0FBB1F661F771F0F +S1130F30881FC2F70EC0BA0F621F731F841F48F4C4 +S1130F40879577956795B795F7959E3F08F0B3CF4A +S1130F509395880F08F09927EE0F97958795089534 +S1130F606CD008F481E00895BCD088F09F5790F0CD +S1130F70B92F9927B751A0F0D1F0660F771F881FBA +S1130F80991F1AF0BA95C9F712C0B13081F0C3D0D5 +S1130F90B1E00895C0C0672F782F8827B85F39F073 +S1130FA0B93FCCF3869577956795B395D9F73EF419 +S1130FB090958095709561957F4F8F4F9F4F0895C1 +S1130FC0E89409C097FB3EF49095809570956195DF +S1130FD07F4F8F4F9F4F9923A9F0F92F96E9BB2795 +S1130FE09395F695879577956795B795F111F8CF11 +S1130FF0FAF4BB0F11F460FF1BC06F5F7F4F8F4F7C +S11310009F4F16C0882311F096E911C0772321F071 +S11310109EE8872F762F05C0662371F096E8862F09 +S113102070E060E02AF09A95660F771F881FDAF760 +S1131030880F9695879597F90895990F0008550F8D +S1131040AA0BE0E8FEEF16161706E807F907C0F04A +S113105012161306E407F50798F0621B730B840B52 +S1131060950B39F40A2661F0232B242B252B21F42C +S113107008950A2609F4A140A6958FEF811D811DCC +S1131080089597F99F6780E870E060E008959FEF06 +S113109080EC089500240A9416161706180609060B +S11310A0089500240A9412161306140605060895DA +S11310B0092E0394000C11F4882352F0BB0F40F462 +S11310C0BF2B11F460FF04C06F5F7F4F8F4F9F4FA2 +S11310D0089557FD9058440F551F59F05F3F71F024 +S11310E04795880F97FB991F61F09F3F79F087958B +S11310F00895121613061406551FF2CF4695F1DF14 +S113110008C0161617061806991FF1CF86957105A3 +S1131110610508940895E894BB2766277727CB01D7 +S113112097F908958ADF08F48FEF089597FB072E47 +S113113016F4009407D077FD09D00E94B60807FC86 +S113114005D03EF4909581959F4F089570956195D3 +S11311507F4F0895A29FB001B39FC001A39F01D008 +S1131160B29F700D811D1124911D0895AA1BBB1BF4 +S113117051E107C0AA1FBB1FA617B70710F0A61B93 +S1131180B70B881F991F5A95A9F780959095BC01B4 +S1131190CD010895EE0FFF1F0590F491E02D099401 +S10711A0F894FFCFED +S11311A45561727420646F6E652100526F7421005E +S11311B44772FC6E2100426C61752100576569DF3A +S11311C42C20616C6C657320496E697469616C6967 +S11311D4736572742120486162652046657274697E +S11311E46720756E642064616D6974206162207A7D +S11311F4756D204E6F726D616C626574726965629F +S113120421002050726573736564210054FC7220BC +S11312145A752E2E2E0054FC72204F6666656E2E6F +S10712242E2E000066 S9030000FC diff --git a/Door/Door.cppproj b/Door/Door.cppproj index 91df6e9..d20f6f3 100644 --- a/Door/Door.cppproj +++ b/Door/Door.cppproj @@ -18,8 +18,7 @@ Native true false - - + exception_table 0 true 0x20000000 @@ -116,42 +115,42 @@ - True - True - True - True - True - True - - - DEBUG - - - Optimize (-O1) - True - True - Default (-g2) - True - True - True - - - DEBUG - - - Optimize (-O1) - True - True - Default (-g2) - True - - - libm - - - <segmentname>=<address>, for example .boot=0xff - Default (-Wa,-g) - + True + True + True + True + True + True + + + DEBUG + + + Optimize (-O1) + True + True + Default (-g2) + True + True + True + + + DEBUG + + + Optimize (-O1) + True + True + Default (-g2) + True + + + libm + + + <segmentname>=<address>, for example .boot=0xff + Default (-Wa,-g) + diff --git a/Door/io/Stripe.hpp b/Door/io/Stripe.hpp index 9ecca33..cbebaee 100644 --- a/Door/io/Stripe.hpp +++ b/Door/io/Stripe.hpp @@ -10,8 +10,6 @@ #include "hardware/pin.hpp" -#include - template class Stripe { public: @@ -19,14 +17,14 @@ class Stripe { this->init(); } void color(uint8_t r, uint8_t g, uint8_t b) { - OCR0B=r; //ROT - OCR2B=g; //GRÜN - OCR2A=b; //BLAU + this->sp(0, r); //ROT + this->sp(1, g); //GRÜN + this->sp(2, b); //BLAU } void setcolor(uint8_t mask) { - (mask & (1<<0)) ? OCR2A=0xFF : OCR2A=0x00; - (mask & (1<<1)) ? OCR2B=0xFF : OCR2B=0x00; - (mask & (1<<2)) ? OCR0B=0xFF : OCR0B=0x00; + (mask & (1<<0)) ? this->sp(2, 0xFF) : this->sp(2, 0x00); //Blau + (mask & (1<<1)) ? this->sp(1, 0xFF) : this->sp(1, 0x00); //Grün + (mask & (1<<2)) ? this->sp(0, 0xFF) : this->sp(0, 0x00); //Rot } static const uint8_t BLACK = 0; static const uint8_t BLUE = 1; @@ -92,11 +90,24 @@ class Stripe { 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; + for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue + this->fadesteps[i] = (this->fademap[i][this->fade_zylk-1]-this->gp(i))/this->fademap[3][this->fade_zylk-1]; + this->virtualcolor[i] = this->gp(i); + } + /*this->fadesteps[0] = (this->fademap[0][this->fade_zylk-1]-this->gp(0))/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; + 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])) { + for(uint8_t i = 0; i<3; i++) { //0=red,1=green,2=blue + if((this->fadesteps[i] > 0 && (this->virtualcolor[i] + this->fadesteps[i]) <= this->fademap[i][this->fade_zylk-1]) || (this->fadesteps[i] < 0 && (this->virtualcolor[i] + this->fadesteps[i]) >= this->fademap[i][this->fade_zylk-1])) { + this->virtualcolor[i] = this->virtualcolor[i] + this->fadesteps[i]; + this->sp(i, this->virtualcolor[i]); + } else { + this->sp(i, this->fademap[i][this->fade_zylk-1]); + this->fadesteps[i] = 0; + } + } + /*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]; @@ -113,7 +124,7 @@ class Stripe { } else { OCR2A = this->fademap[2][this->fade_zylk-1]; this->fadesteps[2] = 0; - } + }*/ } } } @@ -121,6 +132,7 @@ class Stripe { uint8_t fade_zylk; uint8_t fademap[4][5]; float fadesteps[3]; + float virtualcolor[3]; void init() { stripered::make_output(); stripegreen::make_output(); @@ -129,6 +141,21 @@ class Stripe { this->initTimer(); this->color(0, 0, 0); } + void sp(uint8_t i, uint8_t c) { + switch(i) { + case 0: OCR0B = c; break; //ROT + case 1: OCR2B = c; break; //GRÜN + case 2: OCR2A = c; break; //BLAU + } + } + uint8_t gp(uint8_t i) { + switch(i) { + case 0: return OCR0B; //ROT + case 1: return OCR2B; //GRÜN + case 2: return OCR2A; //BLAU + } + return 0; + } void timerOff() { // OC0B output: Disconnected // OC2A output: Disconnected