/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/Flight-Ctrl_MEGA644_V0_76g_SVN.elf |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/Flight-Ctrl_MEGA644_V0_76g_SVN.hex |
---|
0,0 → 1,3013 |
:100000000C94A6040C94C3040C94C3040C94C30471 |
:100010000C94C3040C94C3040C94C3040C94C30444 |
:100020000C94C3040C9467500C94C3040C94C30444 |
:100030000C94CA4C0C94C3040C94C3040C94C304D5 |
:100040000C94C3040C94C3040C94684F0C94C30424 |
:100050000C946B520C94C3040C9432520C94C30451 |
:100060000C94F70B0C94C3040C94784B0C94C304BD |
:10007000950C8A0C800C6A0C500C300C420C5C0FF6 |
:100080009E0E9B0E300C920E840E680E480EFB0DD9 |
:10009000B20D9C0C3143D943954352450F458144E1 |
:1000A00019440643D3478847E14688461247FC4532 |
:1000B0009345E94BDC4B2B4C114C054C9A4BAB4B0D |
:1000C000AB4BB24BCE4BC94BAE4BB64BB24BC54B09 |
:1000D000D24BAE4BB64BB24BC14BD74BAE4B3D4C5C |
:1000E0000756F454F454F454F454F454F454F454BB |
:1000F000F454F454F454F454F454F454F454F454C0 |
:10010000F454F454F454F454F454F454FB55E855B2 |
:10011000CF55BB55F454F454B755E054F454F4544B |
:10012000F454A955F454F454F454F454F454F454D9 |
:10013000F4542456F454A5550A0D426174743A00DF |
:1001400020332043656C6C732020002034204365ED |
:100150006C6C73202000204C6F77207761726E6981 |
:100160006E67206C6576656C3A2025642E256400E8 |
:100170000A0D3D3D3D3D3D3D3D3D3D3D3D3D3D3D12 |
:100180003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D9F |
:100190003D3D3D3D3D000A0D466C69676874436F07 |
:1001A0006E74726F6C0A0D48617264776172653AA1 |
:1001B00025642E25640A0D536F6674776172653A63 |
:1001C0005625642E2564256320000A0D6578706528 |
:1001D00072696D656E74616C2076657273696F6E9D |
:1001E000000A0D3D3D3D3D3D3D3D3D3D3D3D3D3DDF |
:1001F0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2F |
:100200003D3D3D3D3D3D000A0D65727A6575677463 |
:100210002064656661756C74204D69786572205440 |
:1002200061626C65000A0D4D697865722D436F6ED1 |
:100230006669673A202725732720282575204D6F8A |
:10024000746F727329000A0D2E2E2E424C2D4374AA |
:10025000726C2E2E2E2E00256420000A0D0A0D2110 |
:1002600021206D697373696E6720424C2D4354528F |
:100270004C3A202564202121000A0D3D3D3D3D3DA5 |
:100280003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D9E |
:100290003D3D3D3D3D3D3D3D3D3D3D3D3D3D000AFE |
:1002A0000D496E69742E20454550524F4D003A203D |
:1002B00047656E65726174696E6720446566617535 |
:1002C0006C742D506172616D65746572207573690F |
:1002D0006E67206F6C6420537469636B2053657480 |
:1002E00074696E6773000A0D466C696768742D74D3 |
:1002F000696D65202575206D696E2020546F7461CD |
:100300006C3A2575206D696E000A0D414343206EDD |
:100310006F6368206E696368742063616C696272E0 |
:10032000696572742021000A0D5573696E6720702B |
:100330006172616D65746572736574202564000A6D |
:100340000D4B616C696272696572656E20646573DC |
:1003500020447275636B73656E736F72732E004FFA |
:100360004B0A0D000A0D436F6E74726F6C3A2000D9 |
:1003700048656164696E67486F6C64006E6F726D8A |
:10038000616C657220284143432D4D6F64652900DF |
:100390000A0D3D3D3D3D3D3D3D3D3D3D3D3D3D3DF0 |
:1003A0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D7D |
:1003B0003D3D3D3D3D0A0D002E000A0D20444143C8 |
:1003C000206F7220493243204552524F5221204320 |
:1003D0006865636B204932432C2033567265662C66 |
:1003E0002044414320616E6420424C2D4374726C62 |
:1003F000005B25695D005B25695D002B204D696B05 |
:10040000726F4B6F70746572202B0048573A5625F7 |
:10041000642E25642053573A25642E2564256300F5 |
:1004200053657474696E673A2564202573004932F8 |
:1004300043204552524F52212121004D6973736967 |
:100440006E6720424C2D4374726C3A256421210062 |
:100450002D2D2D2D424C2D4374726C206F6B2D2D44 |
:100460002D00444143204F6666736574002535694D |
:10047000002535690025356900476C6F62616C4362 |
:100480006F6E6669670025356900454550524F4DCE |
:1004900033313000253569004B313A25346920204D |
:1004A0004B323A25346920004B333A2534692020F9 |
:1004B0004B343A25346920004B353A2534692020E5 |
:1004C000202020202020200041644E657574726138 |
:1004D0006C2E2E2E004E69636B3A202020202020A7 |
:1004E00025356900526F6C6C3A2020202020202591 |
:1004F000356900476965723A202020202020253583 |
:1005000069004779726F202D2053656E736F7200FA |
:100510004E69636B202534692028253369290052F0 |
:100520006F6C6C20253469202825336929004769C0 |
:100530006572202534692028253369290041434309 |
:10054000202D2053656E736F72004E69636B2025FA |
:10055000346920282533692900526F6C6C202534BA |
:100560006920282533692900476965722025346987 |
:10057000202825336929005370616E6E756E673AC5 |
:10058000202025356900456D70662E506567656CC5 |
:100590003A253569004B6F6D706173732E2E2E00F6 |
:1005A0005269636874756E673A2025346900566134 |
:1005B0006C75653A202534690053746172747765EF |
:1005C00072743A2025346900506F7469313A2020E2 |
:1005D00025336900506F7469323A20202533690051 |
:1005E000506F7469333A202025336900506F746965 |
:1005F000343A202025336900536572766F2020003D |
:10060000536574706F696E742020253369005261E0 |
:100610006E67653A2533692D25336900486F656833 |
:10062000653A202020202025356900536F6C6C48E6 |
:100630006F6568653A20253569004C75667464728B |
:1006400075636B3A20253569004F666620202020AF |
:1006500020203A20253569004B65696E65200048E9 |
:10066000F668656E726567656C756E6700424C2D45 |
:100670004374726C204572726F72732000202533B0 |
:100680006420202533642020253364202025336412 |
:100690002000202533642020253364202025336466 |
:1006A0002020253364200020253364202025336456 |
:1006B000202025336420202533642000424C2D4324 |
:1006C00074726C20666F756E642000202563202094 |
:1006D0002025632020202563202020256320002062 |
:1006E000256320202025632020202563202020252D |
:1006F0006320002025632020202D2020202D202075 |
:10070000202D00313000313100313200466C6967F4 |
:1007100068742D54696D6520200020202020202041 |
:100720002535756D696E00546F74616C3A253575A9 |
:100730006D696E00287265736574290000010203FB |
:10074000040405060708090A0B0B0C0D0E0F101107 |
:1007500011121314151516171818191A1B1B1C1D26 |
:100760001D1E1F1F20212122232324242525262767 |
:1007700027282829292A2A2B2B2C2C2D2D2D2E2ECB |
:100780002F2F30303031313232323333333434344E |
:1007900035353536363637373737383838393939E9 |
:1007A000393A3A3A3A3B3B3B3B3C3C3C3C3C3D3D96 |
:1007B0003D3D3E3E3E3E3E3F3F3F3F3F3F4040404F |
:1007C0004040404141414141414242424242424215 |
:1007D00043434343434343444444444444444445DF |
:1007E00045454545454545454646464646464646B1 |
:1007F0004647474747474747474747474848484886 |
:10080000484848484848484949494949494949495F |
:1008100049494949494A4A4A4A4A4A4A4A4A4A4A3D |
:100820004A4A4A4B4B4B4B4B4B4B4B4B4B4B4B4B1B |
:100830004B4B4B4B4C4C4C4C4C4C4C4C4C4C4C4CFC |
:100840004C4C4C4C4C4C4C4D4D4D4D4D4D4D4D4DDF |
:100850004D4D4D4D4D4D4D4D4D4D4D4D4D4E4E4EC5 |
:100860004E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4EA8 |
:100870004E4E4E4E4E4E4E4F4F4F4F4F4F4F4F4F8F |
:100880004F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F78 |
:100890004F4F4F4F4F4F00008F001E01AD013B02E5 |
:1008A000CA025803E603740402058F051B06A70657 |
:1008B0003307BE074808D2085B09E3096B0AF20A4E |
:1008C000780BFD0B810C040D860D070E870E060FAD |
:1008D000840F00107B10F5106E11E5115B12CF1222 |
:1008E0004213B31323149214FE146A15D3153B1646 |
:1008F000A11605176717C81727188318DE183719A8 |
:100900008E19E319361A871AD61A231B6E1BB61BCB |
:10091000FD1B411C831CC31C001D3C1D751DAB1D14 |
:10092000E01D121E421E6F1E9A1EC31EE91E0D1FE1 |
:100930002E1F4D1F691F841F9B1FB01FC31FD31F76 |
:10094000E11FEC1FF51FFB1FFF1F002011241FBE1E |
:10095000CFEFD0E1DEBFCDBF13E0A0E0B1E0E2E633 |
:10096000F9EB02C005900D92A03DB107D9F719E04F |
:10097000A0EDB3E001C01D92AF32B107E1F70E94D4 |
:1009800099050C94B05C0C940000F999FECF92BDCF |
:1009900081BDF89A80B599270895F999FECF1FBABD |
:1009A00092BD81BD60BD0FB6F894FA9AF99A0FBE58 |
:1009B00008958091D905E82FFF27EE0FFF1FE3541C |
:1009C000F94F808191818D5E9F4F14F01092030149 |
:1009D000808191818A5B9F4F24F480910301882359 |
:1009E00019F02091470817C081E0809303012091FE |
:1009F0004708280F20934708253038F088EE93E009 |
:100A000090934C0580934B0506C066E970E0822FF9 |
:100A10000E944613E6CF822F992790931509809361 |
:100A2000140908951F93CF93DF93182F882351F44F |
:100A30008091F7058233A0F080930001112309F41F |
:100A400074C037C088E391E09F938F931F920E94F8 |
:100A5000CB480F900F900F908091F705823360F78D |
:100A600084EF91E00E94154FEC011123F1F5809184 |
:100A70001A0190911B01823891050CF042C08091BF |
:100A8000F70523E0829FC001112480930001112308 |
:100A9000A9F268EC70E0822F0E94461380E491E096 |
:100AA0009F938F931F920E94CB480F900F900F90AF |
:100AB000C5CF809100016AE00E94035C892F9927CD |
:100AC0009F938F93809100010E94035C99279F93CD |
:100AD0008F9386E591E09F938F931F920E94CB485E |
:100AE0008DB79EB707968DBF20C0CE010E94354FAF |
:100AF000882309F0BCCFCE010E94354F8823A9F38B |
:100B0000B6CF8091F7059927880F991F880F991FF5 |
:100B100080930001112309F491CF68EC70E084E028 |
:100B20000E9446138BE491E0BBCFDF91CF911F91E0 |
:100B30000895CFEFD0E1DEBFCDBFEE24FF2414B87F |
:100B400015B8C7EED3E0E297D7FFFDCF2DE0209395 |
:100B5000020181E887B98FEF88B98BE184B981E020 |
:100B600085B98EE38AB987E48BB9469884B7877FC5 |
:100B700084BF809160008861809360001092600063 |
:100B800080ED97E090934C0580934B0510925904AB |
:100B9000109258041092C2061092C10610925B0483 |
:100BA00010925A0410925D0410925C048BE095E060 |
:100BB000A0E0B0E08093200190932101A093220156 |
:100BC000B0932301289A0E941E4F0E9438500E9421 |
:100BD000F6510E94B54C0E94BD0A0E94374B789492 |
:100BE00080E791E09F938F931F920E94CB480F90D4 |
:100BF0000F900F9087E690E09F938F938CE490E0A6 |
:100C00009F938F931F921F92809102016AE00E942E |
:100C1000035C892F99279F938F93809102010E94F3 |
:100C2000035C99279F938F9386E991E09F938F931D |
:100C30001F920E94CB488DB79EB70D968DBF8AEC50 |
:100C400091E09F938F931F920E94CB480F900F903B |
:100C50000F9081EE91E09F938F931F920E94CB485B |
:100C6000809102010F900F900F908C3008F039C0E6 |
:100C7000299A49E069ED75E083E00E94A612F9998E |
:100C8000FECF88EE93E092BD81BDF89A80B58130A9 |
:100C900051F5F999FECF81E090E092BD81BDF89ABF |
:100CA00080B58F3F01F110921F0125EC34E04DE437 |
:100CB00050E068EE73E085E795E00E944D5A909110 |
:100CC0001F01E2E8F5E02FE08081349618160CF45D |
:100CD0009F5F215027FFF8CF90931F01C6E7D5E013 |
:100CE00051C02998C6CF87E092E09F938F931F92BF |
:100CF0000E94CB480F900F900F90E5E7F5E08FE052 |
:100D0000158616861786108A8150349687FFF8CF8D |
:100D100080E48093820580938305109284058093FC |
:100D200085058093860590EC909387051092880541 |
:100D30008093890580938A0510928B0590938C058A |
:100D400090938D0580938E0510928F05809390056A |
:100D50009093910581E080937505C6E7D5E08BE01F |
:100D6000E4E0F1E0DE0101900D928A95E1F72DECCF |
:100D700034E04DE450E0BE016150704088EE93E0F5 |
:100D80000E94725A80911F0199279F938F93DF933E |
:100D9000CF9385E292E09F938F931F920E94CB485E |
:100DA000EDB7FEB73796EDBF86E492E09F938F9341 |
:100DB0001F920E94CB4810923C0510924F050E9452 |
:100DC000FA200F900F900F9080914F058823E1F348 |
:100DD00010923C0580ED97E00E94154FEC01CC2469 |
:100DE000DD24B7E5AB2EB2E0BB2E10924F050E947A |
:100DF000FA2080914F058823E1F3F601EE0FFF1FE3 |
:100E0000EE0FFF1FEB58FA4F858518160CF06BC0DC |
:100E100086010654194FCE010E94354F882389F46C |
:100E2000D8018C91882369F480934F050E94FA20A1 |
:100E300080914F058823E1F3CE010E94354F88232E |
:100E400079F3F80180818823F1F586010F5F1F4F48 |
:100E500068010230110548F2CC24DD24EBE5AE2E0A |
:100E6000E2E0BE2EC1E025C0F601EE0FFF1FEE0F3F |
:100E7000FF1FEB58FA4F858518160CF586010F5F9A |
:100E80001F4F1F930F93BF92AF929F930E94CB4827 |
:100E9000C09349050F900F900F900F900F9088EA24 |
:100EA00096E0C80ED91ED6011C92680102301105C9 |
:100EB000F0F4F601E654F94F90819923A9F28601E6 |
:100EC0000F5F1F4FECCF86010F5F1F4F1F930F93D4 |
:100ED000BF92AF921F920E94CB480F900F900F903D |
:100EE0000F900F90B5CF86010654194FAACF89E70E |
:100EF00092E09F938F931F920E94CB480E94FA200A |
:100F00000F900F900F90F999FECF81E090E092BD85 |
:100F100081BDF89A80B5803509F031C2F999FECFCC |
:100F20008EE090E092BD81BDF89A80B59927382F68 |
:100F30002227F999FECF8FE090E092BD81BDF89A0B |
:100F400080B5B901680F711DF999FECF8AE090E074 |
:100F500092BD81BDF89A80B59927382F22278FB38B |
:100F60009927AC014270507081FDF9CF8BE090E081 |
:100F700092BD81BDF89A80B5280F311DC9012F5F40 |
:100F80003F4F09F4BFC27093D3036093D2039B0118 |
:100F90006F5F7F4F09F4B6C29093D1038093D00363 |
:100FA0008091D0039091D1039F938F933F932F9380 |
:100FB00086EE92E09F938F931F920E94CB488DB74D |
:100FC0009EB707968DBFF999FECF84E090E092BD61 |
:100FD00081BDF89A80B5853008F0C2C20E941B130B |
:100FE00045E669ED75E00E94A6120E941B13992741 |
:100FF0009F938F9387E293E09F938F931F920E941A |
:10100000CB488091E1050F900F900F900F900F90BB |
:1010100080FD85C20E94641E809102018A3009F41D |
:10102000AAC2843109F4A7C2289A80ED97E0909370 |
:101030004C0580934B0585E58093490884E693E051 |
:101040009F938F931F920E94CB488091E1050F9050 |
:101050000F900F9082FF60C280E793E09F938F9381 |
:101060001F920E94CB480F900F900F900E949842C1 |
:1010700088E893E1909347018093460181E0809353 |
:1010800048080E94120580E993E09F938F931F9276 |
:101090000E94CB4880ED97E00E94154FEC010F9025 |
:1010A0000F900F9080914F058823E1F380910C0100 |
:1010B0008823C1F310924F0580914708882309F4D3 |
:1010C000E5C00E94D9040E94FA20209102012A3032 |
:1010D00009F4E5C0243109F4E2C0289A80915F0444 |
:1010E000882309F4CDC080915F04815080935F0410 |
:1010F0008091460190914701019790934701809319 |
:1011000046018091460190914701892B29F08091F9 |
:101110003B05882309F4F3C0809146019091470173 |
:10112000892B09F4F2C08091C4019091C5018F5FB1 |
:101130009F4F09F403C180914F05882321F08091CE |
:101140006C04882311F40E9462570E94C054CE019F |
:101150000E94354F8823A9F164968091CC0388239F |
:1011600009F4A5C081508093CC0380910001282F01 |
:10117000332780911A0190911B01821793070CF07D |
:1011800090C080912F04806280932F048091C401CD |
:101190009091C5018F5F9F4F09F4E4C084E0809374 |
:1011A0004A0580916C04882321F44AEAE42E45E044 |
:1011B000F42E0894E11CF11CF2E7EF16FBE0FF06A9 |
:1011C00019F00E94F8416ECFEE24FF248091D203E3 |
:1011D0009091D30301969093D3038093D2032091EF |
:1011E000D0033091D1032F5F3F4F3093D103209331 |
:1011F000D003892F9927282FF999FECF1FBA8EE0A7 |
:1012000090E092BD81BD20BD0FB6F894FA9AF99A8C |
:101210000FBE2091D203F999FECF1FBA8FE090E064 |
:1012200092BD81BD20BD0FB6F894FA9AF99A0FBE0F |
:101230002091D0033091D1034091D103F999FECF91 |
:101240001FBA8AE090E092BD81BD40BD0FB6F89410 |
:10125000FA9AF99A0FBEF999FECF1FBA8BE090E087 |
:1012600092BD81BD20BD0FB6F894FA9AF99A0FBECF |
:1012700084E190E00E94154FEC010E94F84112CFEA |
:1012800080916F00806280936F0032CF0E94FC24B7 |
:101290000E94FA20209102012A3009F01BCF2898E1 |
:1012A0001DCF80912F048F7D80932F0477CF809363 |
:1012B000530810923B0410923A0410923904109291 |
:1012C000380410923704109236048091C401909132 |
:1012D000C5018F5F9F4F09F048CF80915F0488233D |
:1012E00009F043CF88E99AE390934C0580934B052E |
:1012F00080E09CE09093C5018093C40136CF2A30F2 |
:1013000079F1243169F1289A16CF0E944D4B85E07E |
:1013100090E0909347018093460180912609909137 |
:101320002709019690932709809326098091C4018B |
:101330009091C5018F5F9F4F09F0FDCE80916C04A5 |
:10134000882309F4F8CE80E197E290934C058093CE |
:101350004B0580E890E09093C5018093C401EBCEEB |
:101360002898E9CE80E797E190934C0580934B0550 |
:1013700080E093E09093C5018093C4010FCF0E9459 |
:10138000D9118FE992E09F938F931F920E94CB48CF |
:10139000C1E00F900F900F900EEA12E0C23009F4F6 |
:1013A000ABC0C33009F4ABC0C43008F0A5C0F99994 |
:1013B000FECF80E590E092BD81BDF89A80B58C307B |
:1013C00008F07CC0F999FECF81E590E092BD81BD27 |
:1013D000F89A80B58C3008F071C0F999FECF82E59B |
:1013E00090E092BD81BDF89A80B58C3008F066C05F |
:1013F000F999FECF83E590E092BD81BDF89A80B562 |
:101400008C3008F05BC0F999FECF80E590E092BD8A |
:1014100081BDF89A80B58093D905F999FECF81E511 |
:1014200090E092BD81BDF89A80B58093DA05F99974 |
:10143000FECF82E590E092BD81BDF89A80B58093A1 |
:10144000DB05F999FECF83E590E092BD81BDF89A66 |
:1014500080B58093DC05F999FECF84E590E092BDDC |
:1014600081BDF89A80B58093DD05F999FECF85E5B9 |
:1014700090E092BD81BDF89A80B58093DE05F99920 |
:10148000FECF86E590E092BD81BDF89A80B580934D |
:10149000DF05F999FECF87E590E092BD81BDF89A0E |
:1014A00080B58093E005C13059F41F930F931F92CC |
:1014B0000E94CB480F900F900F9002C00E942B10FB |
:1014C00045E669ED75E08C2F0E94D812CF5FC630DB |
:1014D00008F464CF83E00E94C312F999FECF1FBACB |
:1014E00081E090E092BD81BD80E580BD0FB6F894AB |
:1014F000FA9AF99A0FBE12CD0E940E1158CF0E948F |
:10150000441055CF5093D3034093D2035093D1034B |
:101510004093D0039A0144CD8CE793E09FCD8FE3B5 |
:1015200093E09F938F931F920E94CB4888EE93E0A5 |
:101530000E94154FEC010E94C30A0F900F900F906C |
:10154000CE010E94354F8823D9F38FE593E09F9316 |
:101550008F931F920E94CB480F900F900F905ACDFF |
:1015600089E093E09F938F931F920E94CB480F9046 |
:101570000F900F9033CD289858CD10927C008FECAF |
:1015800080937A0008950F931F93CF93DF938FB3C7 |
:1015900099278C010270107081FDF9CF83E090E0F3 |
:1015A00092BD81BDF89A80B5C82FDD27C531D10520 |
:1015B00008F02A97C7BD1092DB0384E690E00E94F2 |
:1015C0004E4F80911001909111018052934008F488 |
:1015D000E801CA3FD105D0F408EB13E0C7BD82E3B0 |
:1015E00090E00E944E4F1F930F931F920E94CB4892 |
:1015F00080911001909111010F900F900F908052E7 |
:10160000934020F02196CA3FD10540F32C2FF99941 |
:10161000FECF1FBA83E090E092BD81BD20BD0FB622 |
:10162000F894FA9AF99A0FBEC093CE058CE291E035 |
:101630000E944E4FDF91CF911F910F910895EF922D |
:10164000FF920F931F93CF93DF9300E00093D60395 |
:101650000093D5030093D40380ED97E00E94154FCB |
:10166000EC011CE891E0F92E85EFE82E033009F437 |
:10167000ABC000E08091EB039091EC038C5F934052 |
:101680000CF091C080910F01815080930F018091E7 |
:10169000E9039091EA038C5F93400CF079C080914C |
:1016A0000E01815080930E018091E7039091E80331 |
:1016B0008C5F93400CF04AC080910D018150809363 |
:1016C0000D0188E080933E050E943D4B80910F0103 |
:1016D0008A3008F055C0F092D6038AE080930F015B |
:1016E00080910E018A3008F043C0F092D5038AE061 |
:1016F00080930E0180910D018A3098F5F092D40309 |
:101700008AE080930D0180913E05882379F0CE0117 |
:101710000E94354F8823B9F38AEB93E09F938F9310 |
:101720001F920E94CB480F900F900F9010920C01C7 |
:101730008FEC80937A0080910C018823E1F31A30BA |
:1017400008F447C0115009F091CF48C08091E703D9 |
:101750009091E803875094408CF180910D018F5F48 |
:10176000AECF863F80F2F092D403E0920D01CBCF52 |
:10177000863F08F4BFCFF092D503E0920E01BACFB6 |
:10178000863F08F4ADCFF092D603E0920F01A8CFC8 |
:101790008091E9039091EA03875094408CF0809106 |
:1017A0000E018F5F7FCF8091EB039091EC03875008 |
:1017B000944044F080910F018F5F67CF0F5F81CF1E |
:1017C0000F5F72CF01E063CF1B3008F452CF19E0F6 |
:1017D00050CF8AE090E00E944E4FB4CF86E490E074 |
:1017E0000E944E4FE6E0CDB7DEB70C949B5C1F9293 |
:1017F0000F920FB60F921124AF92BF92CF92DF9249 |
:10180000EF92FF920F931F932F933F934F935F930A |
:101810006F937F938F939F93AF93BF93EF93FF93B8 |
:101820002091F403822F9927AA27BB272F5FFC0161 |
:10183000429720F4E85CFF4F0C94AA5C1092F403EA |
:1018400082E08093F3038091F30380937C00809186 |
:10185000F403882309F4D2C38FEC80937A00CEC3BB |
:101860002093F40380917800909179002091F903FE |
:101870003091FA03820F931F9093FA038093F90338 |
:1018800081E0DFCF2093F4038091F7039091F80378 |
:1018900080509E4F9093F8038093F70384E0D1CF5C |
:1018A0002093F40380917800909179002091B904FD |
:1018B0003091BA04821B930B9093CD058093CC0595 |
:1018C0008091CC059091CD05909302048093010402 |
:1018D00082E0B7CF2093F4038091B7049091B804CD |
:1018E000805092409093C3058093C2058091C205B9 |
:1018F0009091C305909300048093FF0387E0A1CFEC |
:101900002093F40380E092E09093F6038093F50334 |
:1019100086E097CF2093F40380E092E09093F80361 |
:101920008093F7031092F3038ECF2093F4038091FA |
:10193000780090917900A0CF1092F40381E0809319 |
:101940000C018091D7039091D80301969093D8030E |
:101950008093D70380E092E090931101809310016F |
:1019600080911001909111015C01CC24DD248091C3 |
:10197000030490910404A0910504B0910604A80EFC |
:10198000B91ECA1EDB1E809107048F5F823108F4E6 |
:10199000B2C28091120190911301A0911401B091F3 |
:1019A00015017C018D0123E0EE0CFF1C001F111FAF |
:1019B0002A95D1F7E81AF90A0A0B1B0BEA0CFB1C53 |
:1019C0000C1D1D1D8091DB03992787FD9095A92F84 |
:1019D000B92FBC01CD0126EC34E240E050E00E947A |
:1019E000E45BDC01CB01E81AF90A0A0B1B0BD801F6 |
:1019F000C7010496A11DB11DB7FDE1C213E0B59565 |
:101A0000A795979587951A95D1F780931201909392 |
:101A10001301A0931401B09315018091C605909114 |
:101A2000C7057C010027F7FC0095102F809112015B |
:101A300090911301A0911401B0911501E81AF90ACF |
:101A40000A0B1B0BE0925204F092530400935404CF |
:101A5000109355042091DC033091DD034091DE03A7 |
:101A60005091DF0357FDBBC2A4E0559547953795CC |
:101A70002795AA95D1F78091DC039091DD03A09181 |
:101A8000DE03B091DF03821B930BA40BB50B809395 |
:101A9000DC039093DD03A093DE03B093DF0380911A |
:101AA000DC039091DD03A091DE03B091DF038E0D86 |
:101AB0009F1DA01FB11F8093DC039093DD03A093B3 |
:101AC000DE03B093DF038091D9039091DA03BC0168 |
:101AD00062957295707F7627607F7627681B790BF9 |
:101AE0002091DC033091DD034091DE035091DF0350 |
:101AF00057FD70C2E4E05595479537952795EA95CF |
:101B0000D1F78091520490915304821B930B880F5C |
:101B1000991F880F991F880F991F860F971F97FD90 |
:101B20006BC295958795959587959595879595958C |
:101B300087959093DA038093D903D601C501D7FC2A |
:101B400057C2B595A7959795879580930304909371 |
:101B50000404A0930504B093060489E0809307046D |
:101B600082E06FCE2093F4032091F7033091F803C5 |
:101B700020503E4F220F331F220F331F3093F803A4 |
:101B80002093F703C90137FD31C295958795959547 |
:101B90008795959587959093EA038093E9038091C3 |
:101BA000FD039091FE03820F931F97FD1DC2959533 |
:101BB00087959093FE038093FD032091C10430919B |
:101BC000C204821B930B90931701809316012091FE |
:101BD000EF033091F0038091160190911701280FC7 |
:101BE000391F37FDE2C1359527953093F0032093D7 |
:101BF000EF0383E026CE2093F40320917800309108 |
:101C000079008091F9039091FA03280F391F220F70 |
:101C1000331F220F331F3093FA032093F903C901B6 |
:101C200037FDCBC195958795959587959595879522 |
:101C30009093EC038093EB038091FB039091FC0362 |
:101C4000820F931F97FDB7C1959587959093FC03DD |
:101C50008093FB032091C3043091C404821B930B37 |
:101C600090931901809318012091F1033091F203B0 |
:101C70008091180190911901280F391F37FD98C1E3 |
:101C8000359527953093F2032093F10381E0D9CD68 |
:101C90002093F40380917800909179002091B90409 |
:101CA0003091BA04821B930B9093CD058093CC05A1 |
:101CB0008091CC059091CD052091010430910204D2 |
:101CC000820F931F9093E4038093E30382E0B9CDE6 |
:101CD0002093F4038091B7049091B804805092400F |
:101CE0009093C3058093C2058091C2059091C3056E |
:101CF0002091FF0330910004820F931F9093E6031D |
:101D00008093E50387E09DCD2093F4038091F50354 |
:101D10009091F60380509E4F9093E8038093E703E1 |
:101D200086E08FCD2093F4038091F7039091F80320 |
:101D300080509E4FF3CD2093F4030CCE2093F403F8 |
:101D40008091B1049091B204A091B304B091B40415 |
:101D50009C01AD0160E070E080E094E40E94945A40 |
:101D6000DC01CB01BC01CD010E94FD5ADC01CB019D |
:101D70009093E2038093E1038091E1039091E20369 |
:101D800002970CF4C4C08091B1049091B204A09168 |
:101D9000B304B091B40420E030E84BE354E4BC0158 |
:101DA000CD010E94F95A8823DCF58091B10490910D |
:101DB000B204A091B304B091B4042AE037ED43EA31 |
:101DC0005CE3BC01CD010E94955ADC01CB018093FC |
:101DD000B1049093B204A093B304B093B40480917F |
:101DE000300490913104845F9140D0F48091B1042B |
:101DF0009091B204A091B304B091B4042DEC3CECEA |
:101E00004CEC5DE3BC01CD010E94955ADC01CB0195 |
:101E10008093B1049093B204A093B304B093B4043C |
:101E200081E08093E00380E092E09093C505809389 |
:101E3000C4058091E1039091E203AA2797FDA09544 |
:101E4000BA2F20917304309174044091750450911D |
:101E50007604820F931FA41FB51F80937304909381 |
:101E60007404A0937504B0937604209173043091A8 |
:101E70007404409175045091760457FDA6C01AE091 |
:101E800055954795379527951A95D1F78091730405 |
:101E900090917404A0917504B0917604821B930B09 |
:101EA000A40BB50B8093730490937404A0937504F2 |
:101EB000B093760483E0C5CC2093F40380911A019B |
:101EC00090911B019C01220F331F280F391F809115 |
:101ED00078009091790063E070E00E940F5C260F1B |
:101EE000371F369527953695279530931B012093FC |
:101EF0001A0185E0A6CC80930704A0920304B09257 |
:101F00000404C0920504D092060482E09ACC809129 |
:101F1000E1039091E2038F5F9F4F0CF081CF80919E |
:101F2000B1049091B204A091B304B091B40420E044 |
:101F300030E849E054E4BC01CD010E94E05B181692 |
:101F40000CF06ECF8091B1049091B204A091B304D3 |
:101F5000B091B4042AE037ED43EA5CE3BC01CD0163 |
:101F60000E94945ADC01CB018093B1049093B20497 |
:101F7000A093B304B093B4048091300490913104E1 |
:101F8000845F914008F04CCF8091B1049091B204ED |
:101F9000A091B304B091B4042DEC3CEC4CEC5DE3A7 |
:101FA000BC01CD010E94945A31CF2F5F3F4F1BCE11 |
:101FB0002F5F3F4F65CE019647CE079633CED801AF |
:101FC000C7010B96A11DB11D19CD21503C4F4F4F9C |
:101FD0005F4F55CF215F3F4F4F4F5F4F8BCD215FFD |
:101FE0003F4F4F4F5F4F40CD0196E1CD0796CDCD8E |
:101FF0000196A11DB11DA5CD0F9693CDFF91EF9137 |
:10200000BF91AF919F918F917F916F915F914F9110 |
:102010003F912F911F910F91FF90EF90DF90CF9004 |
:10202000BF90AF900F900FBE0F901F901895F99929 |
:10203000FECF92BD81BDF89A80B599270895F99990 |
:10204000FECF1FBA92BD81BD60BD0FB6F894FA9A5B |
:10205000F99A0FBE089583E08093D90582E08093BA |
:10206000DA0581E08093DB0584E08093DC0585E080 |
:102070008093DD0586E08093DE0587E08093DF05B1 |
:1020800088E08093E005089568E06093E10571E0E1 |
:10209000709331064EE14093E2058BEF8093E405A7 |
:1020A0008AE08093E5054093E3054093E70585E0EA |
:1020B0008093E80580E48093E9051092EA058FE0BB |
:1020C0008093E6056093EB0520E12093EC0556E054 |
:1020D0005093ED056093EE0586EE8093EF054093F7 |
:1020E000F00580E88093F10534E63093F20598E737 |
:1020F0009093F30583E08093F4053093F505909376 |
:10210000F60581E28093F70583E28093F80584E188 |
:102110008093F9051092FA052093FB051092FC05B7 |
:102120001092FD051092FE051092FF051092140604 |
:10213000109215061092160610921706309300069C |
:1021400098E29093010670933006109202068AEF8F |
:102150008093030650930806309304069093050677 |
:10216000109206068093070692E3909309062AE5EB |
:1021700020930A0690930B0610922F0620930C06CC |
:1021800080E580930D0686E480930E0685E58093B6 |
:102190000F068093100680E280931106809312064A |
:1021A000909313068FE58093180683EF80931A06A9 |
:1021B0008AEA80931C0680931D064093190640937B |
:1021C0001B068CEF80931E0630931F06209320067B |
:1021D00020932106209322068BE48093230680938C |
:1021E00024068093250610922606509327066093B6 |
:1021F00028062093290640932A0630932B06309315 |
:102200002C0684E080932D068CE0A8E4B1E0E2E3A4 |
:10221000F6E00D9001928A95E1F708958AE68093A1 |
:10222000E10571E0709331065EE15093E2058BEFBA |
:102230008093E4059AE09093E5055093E30550936D |
:10224000E70585E08093E80580E48093E905109236 |
:10225000EA058FE08093E6059093EB0580E180939B |
:10226000EC0566E06093ED05E8E0E093EE0586EEB0 |
:102270008093EF055093F00580E88093F1052AE5FF |
:102280002093F20598E79093F30583E08093F4059B |
:102290002093F5059093F60581E28093F70583E29C |
:1022A0008093F8055093F9051092FA0540E24093A7 |
:1022B000FB051092FC051092FD051092FE05109290 |
:1022C000FF05109214061092150610921606109231 |
:1022D000170634E63093000698E290930106709357 |
:1022E0003006109202068AEF809303066093080678 |
:1022F0003093040690930506109206068093070615 |
:1023000082E38093090620930A0680930B061092BD |
:102310002F0620930C0680E580930D068CE38093B6 |
:102320000E0685E580930F068093100640931106F4 |
:10233000409312069BE4909313068FE58093180652 |
:1023400083EF80931A068AEA80931C0680931D0609 |
:1023500084E18093190680931B068CEF80931E0600 |
:1023600030931F06209320062093210620932206F7 |
:1023700090932306909324069093250610922606A8 |
:1023800060932706E09328062093290650932A0697 |
:1023900030932B0630932C0684E080932D068CE03E |
:1023A000A2E5B1E0E2E3F6E00D9001928A95E1F753 |
:1023B00008951F938AE68093E10551E0509331061A |
:1023C0004EE14093E2058BEF8093E4058AE0809331 |
:1023D000E5054093E3054093E70585E08093E80534 |
:1023E00080E48093E9051092EA0584E18093E60594 |
:1023F0008EE08093EB05E0E1E093EC051CE01093A8 |
:10240000ED05F8E0F093EE0586EE8093EF0540933E |
:10241000F00580E88093F10530E53093F20596E908 |
:102420009093F30583E08093F4053093F505909342 |
:10243000F60581E28093F70583E28093F8054093E7 |
:10244000F9051092FA0560E26093FB051092FC0515 |
:102450001092FD051092FE051092FF0510921406D1 |
:1024600010921506109216061092170624E6209375 |
:10247000000698E2909301065093300610920206EF |
:102480008AEF8093030676E0709308062093040693 |
:1024900090930506109206068093070682E38093C8 |
:1024A00009069AE590930A0680930B0610922F0670 |
:1024B00090930C0630930D0650930E0685E580939D |
:1024C0000F0680931006E093110660931206209386 |
:1024D00013068FE58093180683EF80931A068AEA25 |
:1024E00080931C0680931D068FE0809319068093CD |
:1024F0001B068CEF80931E0620931F0690932006E8 |
:1025000090932106909322068BE480932306809378 |
:102510002406809325061092260670932706F093D2 |
:1025200028069093290640932A0620932B06209391 |
:102530002C0684E080932D06AAE5B1E0E2E3F6E004 |
:102540000D9001921A95E1F71F910895282FFB0134 |
:102550008150853008F023E0842F992733272150BC |
:102560003040829FB001839F700D929F700D1124A7 |
:102570006C597F4F27E130E1AC01CF010E944D5AE9 |
:102580000E94E9410895282F863078F025E0F999D6 |
:10259000FECF1FBA82E090E092BD81BD20BD0FB694 |
:1025A000F894FA9AF99A0FBE0895882381F708954E |
:1025B000FF920F931F93CF93C82F8B01F42E863079 |
:1025C00098F1C5E08F2D99272C2F332721503040CB |
:1025D000829FF001839FF00D929FF00D11242FE157 |
:1025E00030E1AC01B801CF018C599F4F0E94725A63 |
:1025F000F999FECF1FBA82E690E092BD81BDF0BC92 |
:102600000FB6F894FA9AF99A0FBE2FE130E148E03C |
:1026100050E0B80180E590E00E94725A8C2F0E9431 |
:10262000C3120E94E94102C0882361F6CF911F9135 |
:102630000F91FF900895CF93F999FECF82E090E03B |
:1026400092BD81BDF89A80B5C82F8150853020F0A9 |
:10265000C3E08C2F0E94C3128C2F9927CF9108952D |
:102660006817790744F4680F791F77FD09C0CB011B |
:10267000959587950895681B790B861B970B089590 |
:102680006F5F7F4FCB01959587950895EF92FF92ED |
:102690000F931F93CF93C82F8B0180916C048823D5 |
:1026A000A9F4C150CF3F91F07B01E60EF71E1093C5 |
:1026B0004C0500934B0580914B0590914C05892B5F |
:1026C000D1F7C7010E94414FC15088F7CF911F91A8 |
:1026D0000F91FF90EF900895ADE3B0E0E2E7F3E1F2 |
:1026E0000C94735C2091E7033091E8038091BF0460 |
:1026F0009091C004281B390B3A87298730938706AD |
:10270000209386062091F1033091F20337FDD4C760 |
:102710003595279535952795359527953AA729A776 |
:102720003C872B8779012091EF033091F00337FD2F |
:10273000C0C73595279535952795359527953CA79D |
:102740002BA73E872D87F0925F06E0925E063093BE |
:1027500055062093540680917F0690918006AA2703 |
:1027600097FDA095BA2F7C018D01EE0CFF1C001F78 |
:10277000111FE80EF91E0A1F1B1F8091E3039091A1 |
:10278000E4039C01442737FD4095542FDA01C90129 |
:10279000880F991FAA1FBB1F880F991FAA1FBB1F55 |
:1027A000820F931FA41FB51F820F931FA41FB51F75 |
:1027B000E80EF91E0A1F1B1F17FD9CC715950795EC |
:1027C000F794E79415950795F794E794F0928006AF |
:1027D000E0927F068091910690919206AA2797FD3C |
:1027E000A095BA2F7C018D01EE0CFF1C001F111F5C |
:1027F000E80EF91E0A1F1B1F8091E5039091E60366 |
:102800009C01442737FD4095542FDA01C901880FF8 |
:10281000991FAA1FBB1F880F991FAA1FBB1F820FDA |
:10282000931FA41FB51F820F931FA41FB51FE80E8F |
:10283000F91E0A1F1B1F17FD54C715950795F7941E |
:10284000E79415950795F794E794F0929206E09235 |
:10285000910680915C0690915D06AA2797FDA09550 |
:10286000BA2F9C01AD01220F331F441F551F280FA3 |
:10287000391F4A1F5B1F8091E1039091E203AA2751 |
:1028800097FDA095BA2F280F391F4A1F5B1F57FDD0 |
:1028900016C755954795379527955595479537957B |
:1028A000279530935D0620935C062091E3033091D9 |
:1028B000E403C901880F991F880F991F820F931F86 |
:1028C000820F931FAA2797FDA095BA2F20919B04F2 |
:1028D00030919C0440919D0450919E04820F931F5F |
:1028E000A41FB51F80939B0490939C04A0939D0408 |
:1028F000B0939E042091E5033091E603C901880F4F |
:10290000991F880F991F820F931F820F931FAA2769 |
:1029100097FDA095BA2F209197043091980440918B |
:10292000990450919A04820F931FA41FB51F80939E |
:10293000970490939804A0939904B0939A0480917B |
:10294000690690916A062091E3033091E403820FB7 |
:10295000931F90936A0680936906809189069091EF |
:102960008A062091E5033091E603820F931F90932E |
:102970008A06809389068091B5049091B6040196E9 |
:102980009093B6048093B50480919304909194043D |
:10299000A0919504B0919604BC01CD010E94305BDA |
:1029A0005B016C018091C4059091C505AA2797FD34 |
:1029B000A095BA2FBC01CD010E94305B7B018C0138 |
:1029C0008091B1049091B204A091B304B091B40489 |
:1029D0009C01AD01C801B7010E94945ADC01CB01F2 |
:1029E0009C01AD01C601B5010E94955ADC01CB01E5 |
:1029F000BC01CD010E94FD5ADC01CB018093930400 |
:102A000090939404A0939504B09396048FEC8093D4 |
:102A10007A0010920C01209083043090840440903E |
:102A200085045090860439E423163BE6330631E0F2 |
:102A3000430630E053060CF414C188E49BE6A1E0A1 |
:102A4000B0E08D839E83AF83B88760908B047090D5 |
:102A50008C0480908D0490908E0439E463163BE6DC |
:102A6000730631E0830630E093060CF4DCC488E49E |
:102A70009BE6A1E0B0E089839A83AB83BC83498560 |
:102A80005A85CA01AA2797FDA095BA2F20917B04E9 |
:102A900030917C0440917D0450917E04280F391FB1 |
:102AA0004A1F5B1F2DA33EA34FA358A7A0908D06DE |
:102AB000B0908E06C0908F06D0909006A80EB91EDA |
:102AC000CA1EDB1E86017501309149043BA33323E6 |
:102AD00009F0DAC080914804882309F0C2C440910B |
:102AE000E1054CA346FF13C6EBA5FCA5CF01AA2721 |
:102AF00097FDA095BA2FBC01CD0129813A814B8168 |
:102B00005C810E94E45B9B01AC0197FD2CC7BBE09C |
:102B10005595479537952795BA95D1F78091280116 |
:102B2000E82EFF2400271127C801B7010E94E45BAB |
:102B300097FD14C7ACE09595879577956795AA950D |
:102B4000D1F76F87788B898B9A8B6093CF047093C2 |
:102B5000D0048093D1049093D20429A53AA5C90149 |
:102B6000AA2797FDA095BA2FBC01CD012D813E81EA |
:102B70004F8158850E94E45B9B01AC0197FD01C722 |
:102B8000FBE05595479537952795FA95D1F7C801FC |
:102B9000B7010E94E45B97FDEFC6DC01CB01ECE0DE |
:102BA000B595A79597958795EA95D1F78093D30426 |
:102BB0009093D404A093D504B093D6042091CF046D |
:102BC0003091D0043093D2052093D1052091D304C5 |
:102BD0003091D4043093D8052093D7052F853889B8 |
:102BE00049895A89821B930BA40BB50B8AAF9BAF03 |
:102BF000ACAFBDAF8093D3049093D404A093D5041D |
:102C0000B093D604A80EB91ECA1EDB1E860175013C |
:102C1000309127013DA7332309F0A3C58EA79FA7B5 |
:102C2000A8ABB9ABB7FD61C62EA53FA548A959A968 |
:102C300055954795379527958DA19EA1AFA1B8A52C |
:102C4000821B930BA40BB50B8DA39EA3AFA3B8A7B8 |
:102C500080937B0490937C04A0937D04B0937E04C6 |
:102C60008CC598EB291694E939069EEF49069FEF2B |
:102C700059060CF0F1C328EB34E94EEF5FEF2D83DA |
:102C80003E834F835887E1CE2DA13EA14FA158A589 |
:102C900020937B0430937C0440937D0450937E0406 |
:102CA0003091E1053CA31092D8051092D7051092FF |
:102CB000D2051092D1051092CB041092CC04109240 |
:102CC000CD041092CE041092C7041092C804109242 |
:102CD000C9041092CA04309127013DA78091CB040A |
:102CE0009091CC04A091CD04B091CE04BC01CD0153 |
:102CF00024E630E040E050E00E94585CDA01C9016F |
:102D00004091C7045091C804481B590B58A34F8FDA |
:102D10008091C7049091C804A091C904B091CA04DD |
:102D2000BC01CD0124E630E040E050E00E94585C58 |
:102D3000DA01C9012091CB043091CC04821B930BA2 |
:102D40009AA389A38091200190912101A091220151 |
:102D5000B0912301BC01CD0128E631E040E050E014 |
:102D60000E94E45BE616F7060807190744F05701CE |
:102D70006801A61AB70AC80AD90A8601750117FDA3 |
:102D8000A3C4A0928D06B0928E06C0928F06D092F8 |
:102D900090062BA53CA58F8D98A1280F391F79018E |
:102DA0000027F7FC0095102F80917F0490918004FC |
:102DB000A0918104B0918204E80EF91E0A1F1B1F26 |
:102DC0005701680180914C0490914D04281B390BE8 |
:102DD000C901AA2797FDA095BA2F280E391E4A1EB1 |
:102DE0005B1E20913C0130913D0140913E0150918C |
:102DF0003F01221533054405550574F4A8EAEA2E6F |
:102E0000A1E6FA2E012D112DE21AF30A040B150B7F |
:102E1000170128015701680188279927DC01821BC7 |
:102E2000930BA40BB50B281639064A065B060CF06B |
:102E3000E9C2F8E52F2EFEE93F2EFFEF4F2EFFEF00 |
:102E40005F2E220E331E441E551E209283043092A4 |
:102E5000840440928504509286048201710120927C |
:102E60007F0430928004409281045092820429A50C |
:102E70003AA5A9A1BAA12A0F3B1FA901662757FDB0 |
:102E80006095762F8091870490918804A0918904A1 |
:102E9000B0918A04480F591F6A1F7B1F5A016B01AA |
:102EA00080914A0490914B04281B390BC901AA2731 |
:102EB00097FDA095BA2F680E791E8A1E9B1E8091E1 |
:102EC000400190914101A0914201B09143018EAB2C |
:102ED0009FABA8AFB9AF86159705A805B90564F4EF |
:102EE00048EA51E660E070E0481B590B6A0B7B0B27 |
:102EF0003A014B015A016B018EA99FA9A8ADB9AD4A |
:102F0000B095A095909581959F4FAF4FBF4F681694 |
:102F100079068A069B060CF064C2E8E56E2EEEE99F |
:102F20007E2EEFEF8E2EEFEF9E2E2EA93FA948ADFD |
:102F300059AD620E731E841E951E60928B047092B2 |
:102F40008C0480928D0490928E04B401A30160924F |
:102F50008704709288048092890490928A048DA1DB |
:102F60009EA1AFA1B8A580938F0490939004A093E5 |
:102F70009104B09392046092AB047092AC0480927E |
:102F8000AD049092AE042092A3043092A404409227 |
:102F9000A5045092A6044093A7045093A8046093FC |
:102FA000A9047093AA04E0929F04F092A0040093F5 |
:102FB000A1041093A204809118019091190197FD2A |
:102FC000A4C37C01F594E794F594E794F594E79411 |
:102FD000FAA6E9A6809116019091170197FD93C377 |
:102FE0008C011595079515950795159507951CA7BF |
:102FF0000BA78091EB039091EC030F9734F458E109 |
:10300000E52E5CEFF52EFAA6E9A68091EB039091F0 |
:10301000EC03079734F440E3E42E48EFF42EFAA6CD |
:10302000E9A6209102012A3009F46BC28091EB03DA |
:103030009091EC03815D97400CF007C28091EB0307 |
:103040009091EC03805E974034F080EDE82E87E0AD |
:10305000F82EFAA6E9A68091E9039091EA030F976A |
:1030600024F408E11CEF1CA70BA78091E9039091C1 |
:10307000EA03079724F400E318EF1CA70BA72A30F4 |
:1030800009F455C28091E9039091EA03815D97406C |
:1030900024F008EE13E01CA70BA78091E9039091A0 |
:1030A000EA03805E974024F000ED17E01CA70BA711 |
:1030B000A0913301AA2309F497C06091180170917F |
:1030C00019018091D7049091D804681B790B209145 |
:1030D000180130911901280F391F37FD3FC335956D |
:1030E00027953093D8042093D704613871050CF4E8 |
:1030F0003AC260E870E07093DE046093DD048A2FCA |
:103100009927869FF001879FF00D969FF00D11245F |
:10311000CF01F7FD21C37C01F594E794F594E79482 |
:10312000F594E794F594E79429A53AA5E20EF31EE9 |
:10313000FAA6E9A640911601509117018091D90491 |
:103140009091DA04481B590B209116013091170118 |
:10315000280F391F37FDFDC2359527953093DA04C6 |
:103160002093D904413851050CF4F5C140E850E0F2 |
:103170005093DC044093DB048A2F9927849FD0016D |
:10318000859FB00D949FB00D1124AD019D01B7FD39 |
:10319000DDC2890115950795159507951595079534 |
:1031A00015950795EBA5FCA50E0F1F1F1CA70BA7D8 |
:1031B000869F9001879F300D969F300D1124C90185 |
:1031C0002091180130911901820F931F90931901DA |
:1031D000809318018091160190911701480F591F93 |
:1031E00050931701409316014D855E851416150600 |
:1031F0000CF0C1C18091D1059091D20597FDA2C27A |
:10320000AA2797FDA095BA2F6DA5262F332744270F |
:103210005527BC01CD010E94E45B97FD8EC2E6E01C |
:103220009595879577956795EA95D1F7AF8DB8A174 |
:10323000A60FB71FB0934E06A0934D064B855C8535 |
:10324000141615060CF0C1C18091D7059091D805D0 |
:1032500097FD6FC2AA2797FDA095BA2F6DA5262FBF |
:10326000332744275527BC01CD010E94E45B97FD1D |
:103270005BC246E095958795779567954A95D1F716 |
:10328000A9A1BAA1A60FB71FB0934306A093420607 |
:103290003CA137FDC1C11093410600934006F09256 |
:1032A0005006E0924F068091DD05E82FFF27EE0FD4 |
:1032B000FF1FE354F94F8081918182599F4FA09164 |
:1032C0006604B0916704A817B9070CF0EEC0CD01F1 |
:1032D00001969093670480936604DC018091DE057B |
:1032E000E82FFF27EE0FFF1FE354F94F80819181F4 |
:1032F00082599F4F60916404709165046817790743 |
:103300000CF0C4C0CB0101969093650480936404D3 |
:10331000BC018091DF05E82FFF27EE0FFF1FE3546C |
:10332000F94F8081918182599F4F40916204509161 |
:103330006304481759070CF0D5C0CA010196909351 |
:10334000630480936204AC018091E005E82FFF27BD |
:10335000EE0FFF1FE354F94F8081918182599F4FF7 |
:103360002091600430916104281739070CF0ABC03C |
:10337000C901019690936104809360049C01B7FD9C |
:1033800093C1AF3FB10539F034F08FEF90E09093E7 |
:1033900067048093660477FD76C16F3F710539F04D |
:1033A00034F08FEF90E0909365048093640457FDB0 |
:1033B00070C14F3F510539F034F08FEF90E090939A |
:1033C00063048093620437FD6AC12F3F310509F021 |
:1033D0000CF4EEC28FEF90E0909361048093600450 |
:1033E000E7C260928B0470928C0480928D0490925C |
:1033F0008E04A0928704B0928804C0928904D0926F |
:103400008A04ADCD209283043092840440928504D6 |
:1034100050928604A0927F04B0928004C0928104EE |
:10342000D092820424CD98EB691694E979069EEF38 |
:1034300089069FEF99062CF528EB34E94EEF5FEFF4 |
:1034400029833A834B835C831ACB98EEE92E93E071 |
:10345000F92EFAA6E9A6F2CD2D823E824F82588639 |
:10346000F4CA8DA19EA1AFA1B8A580937B049093CF |
:103470007C04A0937D04B0937E049091E1059CA30D |
:1034800012CC69827A828B829C82F9CA8081918176 |
:1034900082599F4F861797070CF03BCF6115710536 |
:1034A00009F437CFCB0101972FCF808191818259C9 |
:1034B0009F4F8A179B070CF011CF109709F40ECF7E |
:1034C000CD01019706CF8081918182599F4F82174C |
:1034D00093070CF054CF2115310509F450CFC901E1 |
:1034E000019748CF8081918182599F4F841795071A |
:1034F0000CF02ACF4115510509F426CFCA010197D6 |
:103500001ECF8091EB039091EC03835F934034F0E6 |
:1035100038EEE32E33E0F32EFAA6E9A68091EB0312 |
:103520009091EC038A5F93400CF495CD8ECD809101 |
:10353000E9039091EA03835F934024F008EE13E0DF |
:103540001CA70BA78091E9039091EA038A5F93403F |
:103550000CF4AECDA9CD3FEF403853070CF008CEA8 |
:1035600040E85FEF05CE8FEF603878070CF0C3CDF1 |
:1035700060E87FEFC0CD8091D1059091D20597FD95 |
:103580009BC1AA2797FDA095BA2FEDA52E2F332713 |
:1035900044275527BC01CD010E94E45B97FDADC1D6 |
:1035A00056E095958795779567955A95D1F72F8D24 |
:1035B00038A1261B370B30934E0620934D064B85C2 |
:1035C0005C85141615060CF43FCE8091D7059091BA |
:1035D000D80597FD6DC1AA2797FDA095BA2FEDA537 |
:1035E0002E2F332744275527BC01CD010E94E45BD1 |
:1035F00097FD88C136E095958795779567953A95BB |
:10360000D1F729A13AA1261B370B3093430620930B |
:1036100042063CA137FF3FCE4BA1442309F03BCEED |
:1036200080914804882309F036CE8B859C85A1E0E3 |
:1036300081309A070CF044C12B853C854FEF203038 |
:1036400034070CF0A3C189A59AA5280F391F3C8720 |
:103650002B8720503F4F3093500620934F06AD8567 |
:10366000BE85E1E0A130BE070CF465C12BA53CA5E9 |
:10367000A20FB31FBE87AD87A050B140B0934106E3 |
:10368000A093400610CE109265041092640457FF78 |
:1036900090CE109263041092620437FF96CE10927F |
:1036A00061041092600484C1109267041092660451 |
:1036B00072CE295F3F4F3DC8295F3F4F29C82D5F1C |
:1036C0003F4F4F4F5F4FE5C8E60EF71E081F191F0B |
:1036D000E0928D06F0928E0600938F06109390066E |
:1036E00058CB23E030E040E050E0E20EF31E041F30 |
:1036F000151FA3C883E090E0A0E0B0E0E80EF91E3B |
:103700000A1F1B1F5BC807966BCC07965ACC2DA1CE |
:103710003EA14FA158A520937B0430937C04409395 |
:103720007D0450937E04BFCA615C7F4F8F4F9F4FD3 |
:10373000A0CD909581959F4F8DCD615C7F4F8F4F30 |
:103740009F4F6DCD909581959F4F5ACD215F3F4FF3 |
:1037500020CD2F5F3F4F00CD0F96DDCC2F5F3F4F29 |
:10376000BECC2DA13EA14FA158A520937B04309340 |
:103770007C0440937D0450937E0489859A85AA2712 |
:1037800097FDA095BA2F2AAD3BAD4CAD5DAD820F34 |
:10379000931FA41FB51F8B8B9C8BAD8BBE8BBC0165 |
:1037A000CD0129813A814B815C810E94E45B9B01C0 |
:1037B000AC0197FDBBC06BE05595479537952795B4 |
:1037C0006A95D1F760912901862F9927AA27BB27EF |
:1037D0008F8B988FA98FBA8FBC01CD010E94E45BBB |
:1037E00097FD9FC02CE095958795779567952A95CD |
:1037F000D1F76B8F7C8F8D8F9E8F6093C7047093F2 |
:10380000C8048093C9049093CA046B897C898D890C |
:103810009E892D813E814F8158850E94E45B9B01EA |
:10382000AC0197FD79C08BE0559547953795279565 |
:103830008A95D1F76F89788D898D9A8D0E94E45B86 |
:1038400097FD65C0BCE09595879577956795BA9586 |
:10385000D1F76AAB7BAB8CAB9DAB6093CB04709321 |
:10386000CC048093CD049093CE0429853A8537FD0E |
:103870007FC0213431050CF431CA6B8D7C8D8D8D68 |
:103880009E8D97FD2AC0613871058105910564F40C |
:103890006AA97BA98CA99DA997FD82C06138710591 |
:1038A000810591050CF41ACA81E080936A0416CA56 |
:1038B000909581959F4F8FCE909581959F4F61CE2A |
:1038C000E9A5FAA58E0F9F1F9C878B87805091409A |
:1038D0009093500680934F06C2CE90958095709538 |
:1038E00061957F4F8F4F9F4FCECF0196A11DB11D88 |
:1038F0008EA79FA7A8ABB9AB97C9615C7F4F8F4FCD |
:103900009F4F4ECE615C7F4F8F4F9F4F73CE615064 |
:10391000704F8F4F9F4F96CF2150384F4F4F5F4F73 |
:1039200082CF6150704F8F4F9F4F5CCF2150384FE7 |
:103930004F4F5F4F40CF4D855E856FEF403056074C |
:1039400054F58BA59CA5480F591F5E874D874050A5 |
:103950005F4F5093410640934006A5CC6150704F95 |
:103960008F4F9F4FE7C82150384F4F4F5F4FCFC801 |
:10397000309521953F4F7DCF6150704F8F4F9F4FB6 |
:103980000CC92150384F4F4F5F4FFAC8F092500684 |
:10399000E0924F0664CE109341060093400683CC1C |
:1039A00090958095709561957F4F8F4F9F4F76CF03 |
:1039B000E2E1C35C0C948F5C809102018D3009F4CC |
:1039C00055C110927A008091EB039091EC03909393 |
:1039D000500680934F068091E9039091EA039093FB |
:1039E0004106809340068091E7039091E80390930D |
:1039F0008706809386068091E3039091E4039C01FF |
:103A0000442737FD4095542FDA01C901880F991FCB |
:103A1000AA1FBB1F880F991FAA1FBB1F820F931FCE |
:103A2000A41FB51F820F931FA41FB51F909380067C |
:103A300080937F068091E5039091E6039C014427E3 |
:103A400037FD4095542FDA01C901880F991FAA1F2D |
:103A5000BB1F880F991FAA1FBB1F820F931FA41F94 |
:103A6000B51F820F931FA41FB51F909392068093DA |
:103A700091068091E1039091E20390935D0680931B |
:103A80005C068FEC80937A008091DD05E82FFF279C |
:103A9000EE0FFF1FE354F94F8081918182599F4FB0 |
:103AA000A0916604B0916704A817B9070CF085C00F |
:103AB000CD0101969093670480936604DC018091A8 |
:103AC000DE05E82FFF27EE0FFF1FE354F94F80813B |
:103AD000918182599F4F60916404709165046817C9 |
:103AE00079070CF096C0CB01019690936504809302 |
:103AF0006404BC018091DF05E82FFF27EE0FFF1F54 |
:103B0000E354F94F8081918182599F4F4091620423 |
:103B100050916304481759070CF06CC0CA01019614 |
:103B20009093630480936204AC018091E005E82FD8 |
:103B3000FF27EE0FFF1FE354F94F808191818259D7 |
:103B40009F4F2091600430916104281739070CF0D1 |
:103B500042C0C901019690936104809360049C0166 |
:103B6000B7FD7FC0AF3FB10511F00CF061C077FD2C |
:103B700067C06F3F710539F034F08FEF90E090939C |
:103B800065048093640457FD61C04F3F510539F0CF |
:103B900034F08FEF90E0909363048093620437FDDC |
:103BA0005BC02F3F310509F00CF463C08FEF90E04C |
:103BB00090936104809360045CC0808191818259FC |
:103BC0009F4F8A179B070CF07ACF109709F477CF95 |
:103BD000CD0101976FCF8081918182599F4F8217CC |
:103BE00093070CF0BDCF2115310509F4B9CFC901F8 |
:103BF0000197B1CF8081918182599F4F841795079A |
:103C00000CF093CF4115510509F48FCFCA010197EC |
:103C100087CF8081918182599F4F861797070CF03B |
:103C200069CF6115710509F465CFCB0101975DCFAF |
:103C30008FEF90E0909367048093660477FF99CFAD |
:103C4000109265041092640457FF9FCF1092630492 |
:103C50001092620437FFA5CF1092610410926004A5 |
:103C600008C0109267041092660481CF0E941F0B57 |
:103C7000A8CE80910F069927AA27BB27BC01CD01AA |
:103C800024EC39E040E050E00E94E45BDC01CB0131 |
:103C90008093400190934101A0934201B09343016E |
:103CA000809110069927AA27BB27BC01CD010E944D |
:103CB000E45BDC01CB0180933C0190933D01A09338 |
:103CC0003E01B0933F010895A0E0B0E0EAE6FEE1D6 |
:103CD0000C94775CC0E0D0E07E016E01469AD093F0 |
:103CE000BA04C093B904D093B804C093B70480E079 |
:103CF00090E0A0E0B0E08093B1049093B204A09370 |
:103D0000B304B093B404D093C404C093C304D09359 |
:103D1000C204C093C104D093C004C093BF04D09325 |
:103D20007106C0937006109229011092280110921A |
:103D3000DB030E94DC1C84E690E00E944E4F0E9450 |
:103D4000DC1C8091E10580FF10C0809110019091F2 |
:103D50001101875B934008F0F0C1809110019091B0 |
:103D600011018E5E924008F4E8C10FE18AE090E014 |
:103D70000E944E4F8091E7039091E803C80FD91F2E |
:103D80008091EB039091EC03E80EF91E8091E9031A |
:103D90009091EA03C80ED91E015007FFE7CFA70193 |
:103DA000405F5F4F56954795569547955093C4048D |
:103DB0004093C3049601205F3F4F36952795369573 |
:103DC00027953093C2042093C104CE014096969566 |
:103DD0008795929582958F7089279F7089279093F8 |
:103DE000C0048093BF049093710680937006309353 |
:103DF000BE042093BD045093BC044093BB04F999C6 |
:103E0000FECF84E090E092BD81BDF89A80B5853008 |
:103E100008F496C1809191069091920697FDE1C1B8 |
:103E20006CE070E00E94235C7093B8046093B70468 |
:103E300080917F069091800697FDCFC16CE070E085 |
:103E40000E94235C7093BA046093B9048091C40506 |
:103E50009091C505AA2797FDA095BA2FBC01CD0169 |
:103E60000E94305BDC01CB018093B1049093B204DB |
:103E7000A093B304B093B4041092500610924F066E |
:103E80001092410610924006109287061092860604 |
:103E900084E690E00E944E4F8091E3039091E4030A |
:103EA000AA2797FDA095BA2F9C01AD01220F331FC1 |
:103EB000441F551F220F331F441F551F280F391F42 |
:103EC0004A1F5B1F280F391F4A1F5B1F3093800654 |
:103ED00020937F068091E5039091E603AA2797FD42 |
:103EE000A095BA2F7C018D01EE0CFF1C001F111F45 |
:103EF000EE0CFF1C001F111FE80EF91E0A1F1B1FEE |
:103F0000E80EF91E0A1F1B1FF0929206E09291061E |
:103F10008091F005682E772488249924C9019C019A |
:103F2000442737FD4095542FC401B3010E94E45B40 |
:103F30005B016C016093AB047093AC048093AD049F |
:103F40009093AE049701442737FD4095542FC40148 |
:103F5000B3010E94E45BDC01CB018093A304909346 |
:103F6000A404A093A504B093A604A0928704B092E1 |
:103F70008804C0928904D0928A0480937F0490932D |
:103F80008004A0938104B093820410927B04109269 |
:103F90007C0410927D0410927E0480911201909115 |
:103FA0001301A0911401B09115019093C70580935E |
:103FB000C6051092DA031092D9031092730410927E |
:103FC000740410927504109276040091710410919B |
:103FD00072041093700400936F0482E390E0909356 |
:103FE0004C0580934B0580910F069927AA27BB2784 |
:103FF000BC01CD0124EC39E040E050E00E94E45BDC |
:10400000DC01CB018856954CAF4FBF4F80934001E8 |
:1040100090934101A0934201B09343018091100617 |
:104020009927AA27BB27BC01CD010E94E45BDC01D4 |
:10403000CB018856954CAF4FBF4F80933C01909376 |
:104040003D01A0933E01B0933F01109225011092D3 |
:104050002401C801AA2797FDA095BA2F209120011D |
:10406000309121014091220150912301BC01CD01E9 |
:104070000E94E45BDC01CB0180938D0690938E0659 |
:10408000A0938F06B0939006109269041092680472 |
:1040900081E0809301010E94E94180912F048460B6 |
:1040A00080932F048091DD05E82FFF27EE0FFF1F7F |
:1040B000E354F94F8081918182599F4F9093670417 |
:1040C000809366048091DE05E82FFF27EE0FFF1F27 |
:1040D000E354F94F8081918182599F4F90936504F9 |
:1040E000809364048091DF05E82FFF27EE0FFF1F08 |
:1040F000E354F94F8081918182599F4F90936304DB |
:10410000809362048091E005E82FFF27EE0FFF1FE8 |
:10411000E354F94F8081918182599F4F90936104BC |
:104120008093600484E680935F048091490588232E |
:1041300009F45BC0469A579A58C00E94C30A15CE2C |
:10414000F999FECF84E090E092BD81BDF89A80B5E8 |
:104150009927382F2227F999FECF85E090E092BD6C |
:1041600081BDF89A80B5280F311D3093BA04209391 |
:10417000B904F999FECF86E090E092BD81BDF89A2E |
:1041800080B59927382F2227F999FECF87E090E054 |
:1041900092BD81BDF89A80B5280F311D3093B804C7 |
:1041A0002093B704F999FECF88E090E092BD81BDDD |
:1041B000F89A80B59927382F2227F999FECF89E000 |
:1041C00090E092BD81BDF89A80B5280F311DC901DC |
:1041D000AA2797FDA095BA2F41CE909581959F4F24 |
:1041E0002DCE909581959F4F1BCEEEE0CDB7DEB7DB |
:1041F0000C94935C90916C04992319F580912F0491 |
:104200008C7F80932F0480915C05882301F5A92F72 |
:10421000BB27FD01EF5CF74F8083FD01EF5CF74F9B |
:104220008081AE57B94F8C939F5F923060F380913D |
:104230005C05882379F080915C05815080935C0552 |
:1042400009C080912F04816080932F0403C0A92F9F |
:10425000BB27E3CF8091820699279093070980932B |
:10426000060980918306992790930909809308098C |
:1042700010923E0510923D050E943D4B089580919D |
:10428000E4058B3F68F08B3F09F4D5C28C3F09F4FD |
:1042900074C38D3F09F4F6C28E3F21F4809160040F |
:1042A000809338018091E3058B3F08F439C28B3F3E |
:1042B00009F434C28C3F09F448C38D3F09F4D9C2D4 |
:1042C0008E3F09F478C380913901882309F02DC20B |
:1042D000809339018091E5058B3F08F42DC28B3F17 |
:1042E00009F428C28C3F09F442C38D3F09F4C4C2CB |
:1042F0008E3F09F45AC380913701882309F021C207 |
:10430000809337018091E7058B3F68F08B3F09F47C |
:1043100095C28C3F09F42EC38D3F09F4B0C28E3F85 |
:1043200021F480916004809336018091E9058B3FF0 |
:1043300068F08B3F09F479C28C3F09F4E2C28D3FEB |
:1043400009F4BEC28E3F21F4809160048093340151 |
:104350008091F1058B3F68F08B3F09F469C28C3F77 |
:1043600009F4FCC28D3F09F490C28E3F21F4809184 |
:104370006004809335018091F2058B3F08F4E8C119 |
:104380008B3F09F4E3C18C3F09F4EEC28D3F09F481 |
:1043900094C28E3F09F412C3809132018B3008F42D |
:1043A000DCC18F3F11F4809332018091F3058B3F84 |
:1043B00068F08B3F09F427C28C3F09F4D2C28D3FCD |
:1043C00009F466C28E3F21F480916004809331012C |
:1043D0008091F4058B3F68F08B3F09F417C28C3F46 |
:1043E00009F489C28D3F09F46EC28E3F21F4809199 |
:1043F0006004809333018091F5058B3F68F08B3F1B |
:1044000009F407C28C3F09F479C28D3F09F452C206 |
:104410008E3F21F480916004809330018091F605F5 |
:104420008B3F68F08B3F09F4F7C18C3F09F4ABC2B6 |
:104430008D3F09F43CC28E3F21F48091600480934B |
:104440002F012091FB052B3F08F48BC12B3F09F472 |
:1044500086C12C3F09F47CC22D3F09F404C22E3FD3 |
:1044600009F4A6C220912D018091FC058B3F08F034 |
:104470007FC1809343048091FD058B3F68F08B3FA3 |
:1044800009F4D0C18C3F09F466C28D3F09F4EEC136 |
:104490008E3F21F480916004809342048091FE0558 |
:1044A0008B3F68F08B3F09F484C18C3F09F471C2E3 |
:1044B0008D3F09F4D2C18E3F21F480916004809336 |
:1044C00041048091FF058B3F68F08B3F09F474C174 |
:1044D0008C3F09F461C28D3F09F4C2C18E3F21F4C3 |
:1044E0008091600480934004809114068B3F68F0B3 |
:1044F0008B3F09F464C18C3F09F454C28D3F09F429 |
:10450000A3C18E3F21F48091600480933F04809189 |
:1045100015068B3F68F08B3F09F454C18C3F09F4BA |
:104520002FC28D3F09F493C18E3F21F48091600426 |
:1045300080933E04809116068B3F68F08B3F09F410 |
:1045400044C18C3F09F4ECC18D3F09F4C5C18E3FD5 |
:1045500021F48091600480933D04809117068B3F85 |
:1045600068F08B3F09F434C18C3F09F4DCC18D3F06 |
:1045700009F4B5C18E3F21F48091600480933C041E |
:10458000809100068B3F68F08B3F09F424C18C3F7B |
:1045900009F4CFC18D3F09F484C18E3F21F480918D |
:1045A000600480932C01809104068B3F68F08B3F60 |
:1045B00009F414C18C3F09F4BFC18D3F09F474C1E3 |
:1045C0008E3F21F48091600480932B018091090635 |
:1045D0008B3F68F08B3F09F404C18C3F09F4AFC1F5 |
:1045E0008D3F09F458C18E3F21F48091600480937F |
:1045F0002A0180910C068B3F68F08B3F09F4F4C0D0 |
:104600008C3F09F49FC18D3F09F448C18E3F21F4CE |
:10461000809160048093290180910D068B3F68F0A2 |
:104620008B3F09F4E4C08C3F09F46EC18D3F09F45F |
:104630004DC18E3F21F480916004809328018091C8 |
:104640000E068B3F68F08B3F09F4D4C08C3F09F411 |
:1046500064C18D3F09F43DC18E3F21F48091600417 |
:1046600080932701809113068B3F68F08B3F09F4FC |
:10467000C4C08C3F09F45AC18D3F09F433C18E3F49 |
:1046800021F48091600480932601809119068B3F6C |
:1046900008F47FC08B3F09F47AC08C3F09F437C11E |
:1046A0008D3F09F422C18E3F09F48BC180916B06C6 |
:1046B000823008F473C08F3F11F480936B068091B1 |
:1046C0001B068B3F08F46EC08B3F09F469C08C3F1A |
:1046D00009F420C18D3F09F40BC18E3F09F474C168 |
:1046E00080918406823008F462C08F3F11F4809379 |
:1046F000840680912E068B3F70F08B3F09F480C0BA |
:104700008C3F09F44CC18D3F09F49BC08E3F09F0EA |
:104710005EC1809160048093940659C180916604C3 |
:1047200080933901882309F4D3CD843608F4D2CD9F |
:1047300084E6CECD8091660480933701882309F406 |
:10474000DFCD843608F4DECD84E6DACD80916604D0 |
:10475000809332018B3008F024CE8AE024CE209161 |
:10476000660420932D018091FC058B3F08F481CED7 |
:104770008B3F09F454C08C3F09F408C18D3F09F404 |
:1047800069C08E3F09F077CE8091600472CE80912F |
:10479000660480936B06823008F08DCF81E08DCF68 |
:1047A0008091660480938406823008F09ECF81E079 |
:1047B0009ECF8091660483CE8091660493CE8091D3 |
:1047C0006604A3CE80916604B3CE80916604C3CE06 |
:1047D00080916604D3CE80916604E3CE8091660416 |
:1047E000F3CE8091660403CF8091660413CF80914D |
:1047F000660423CF8091660433CF8091660443CF53 |
:104800008091660488CF80916604E0CD8091660433 |
:10481000F0CD8091660400CE8091660410CE809128 |
:10482000660427CE8091660437CE809166048ECDD3 |
:10483000809166049ECD8091660432CD809166049D |
:1048400072CD8091620467CF809162045ECE8091C8 |
:1048500062046ECE809162040CCE809162042FCEF1 |
:10486000809162043FCE209162047BCF80916204EC |
:1048700013CE8091620454CF809162045DCF809109 |
:10488000620451CD809162040BCD8091620471CDA0 |
:10489000809162049BCD80916204A9CE80916204D4 |
:1048A000B9CE809162047DCE809162048DCE8091DC |
:1048B0006204C5CD80916204AFCD8091620448CF7F |
:1048C0008091620443CD8091620493CD8091620413 |
:1048D000B4CE80916204C4CE809162043CCE8091BB |
:1048E00062044CCE80916204CECE8091620451CF9E |
:1048F0008091620457CF809164047BCD80916404E1 |
:104900008BCD8091640422CD8091640496CE8091F9 |
:1049100064043FCF8091640445CF80916404A0CEAD |
:104920008091640418CE8091640428CE8091640440 |
:10493000AACE8091640435CE8091640445CE8091E6 |
:10494000640455CE8091640465CE80916404E8CE01 |
:104950002091640406CF809164049ECD809164040C |
:1049600008CD8091640432CD80916404F1CE8091B1 |
:104970006404E2CE80916404D6CC8091640490CC2F |
:1049800080916404D5CD8091640459CD80916404F4 |
:1049900070CD8091640493CD80916404A3CD809107 |
:1049A0006404B9CE80916404B0CD80916004C4CE1B |
:1049B00020916004D6CE80916004B2CE80916004D4 |
:1049C000C7CE80916004E5CE80916004EBCE3327A2 |
:1049D0002F5F3F4F8CE398E2B9010E94235C7093F4 |
:1049E0003B0160933A018091EF05809385068091A9 |
:1049F000EE05809356060895A8E2B0E0E2E0F5E205 |
:104A00000C94735C80912E04815009F485E08093AE |
:104A10002E040E946C13209102012C3008F0A4C2D5 |
:104A2000299AE0905604F0905704FA82E982809126 |
:104A3000560699270A96E816F90614F49A8389838C |
:104A400080915F04843608F091C28091FB049091BC |
:104A5000FC04009709F06BC410926C0480912F0441 |
:104A60008F7E80932F042A3009F469C4243109F41D |
:104A700066C428988091300490913104895E9340F7 |
:104A800008F466C48091F805282F33273A832983D8 |
:104A900080912F04806180932F048091D905A82FE5 |
:104AA000BB27AA0FBB1FFD01ED52F94F11821082E7 |
:104AB0008091DA05282F3327220F331FC9018D5229 |
:104AC000994FFC0111821082A354B94F11961C9288 |
:104AD0001E922354394FD90111961C921E92809137 |
:104AE000DC05E82FFF27EE0FFF1FE354F94F11827B |
:104AF00010828091C30181508093C3018091C301D2 |
:104B00008F3F21F080912F0484FF25C40E943F2114 |
:104B100080910A0590910B059C01220F331F280FED |
:104B2000391F0091D905A02FBB27AA0FBB1FFD017C |
:104B3000E354F94FE090EB056E2D7727808191814A |
:104B4000869FA001879F500D969F500D1124240F22 |
:104B5000351F37FF02C00C94793935952795359567 |
:104B60002795AD52B94F8091EC05482F55278D916F |
:104B70009C91849FD001859FB00D949FB00D11240E |
:104B8000CD01820F931F90930B0580930A0590939C |
:104B90005D0480935C0480910C0590910D059C014F |
:104BA000220F331F280F391F1091DA05A12FBB27C1 |
:104BB000AA0FBB1FFD01E354F94F80819181869FAD |
:104BC000F001879FF00D969FF00D11242E0F3F1FCF |
:104BD00037FF02C00C947D3935952795359527957B |
:104BE000AD52B94F8D919C91849FB001859F700DFE |
:104BF000949F700D1124CB01820F931F90930D058C |
:104C000080930C0590935B0480935A048091DC059B |
:104C1000E82FFF27EE0FFF1FE354F94F80819181AA |
:104C2000909581959F4F8330910514F40C9430300A |
:104C3000029790935904809358048091DB05E82FE4 |
:104C4000FF27EE0FFF1FE354F94FC080D18088E7A4 |
:104C500090E0C80ED91E809132019927AA2797FDAE |
:104C6000A095BA2FBC01CD010E94305BDC01CB01C5 |
:104C700020E030E040E251E4BC01CD010E94955AB1 |
:104C8000DC01CB01BC01CD010E94025BDC01CB0148 |
:104C900080938B06F0903101809130019927AA27EB |
:104CA00097FDA095BA2FBC01CD010E94305BDC01BD |
:104CB000CB0120E030E040E251E4BC01CD010E9494 |
:104CC000955ADC01CB01BC01CD010E94025BDC01E5 |
:104CD000CB018093470690912F01909360068091BD |
:104CE000530880FF06C080919406813810F00C9420 |
:104CF000BF30D0925704C0925604809156049091D0 |
:104D0000570497FF02C00C9473395091E105588BFA |
:104D100052FD02C00C947A301092720640915C04ED |
:104D200050915D04CA0157FF02C00C9485309595DF |
:104D300087959595879597FF02C00C948E302091AA |
:104D40003404309135042817390714F00C943830A6 |
:104D5000CA0157FF02C00C946F3C97FF02C00C942D |
:104D60006C3CBC01759567957595679565367105C1 |
:104D700014F40C943B3064E670E040915A04509176 |
:104D80005B04CA0157FD02C00C944430039695950C |
:104D900087959595879597FD02C00C944C3090951A |
:104DA00081959F4F209132043091330428173907A1 |
:104DB00014F40C9455302150304080912F0484FD20 |
:104DC00002C00C947030109235041092340410928A |
:104DD000330410923204E12FFF27EE0FFF1FE3543C |
:104DE000F94F40910A06242F33278081918128179B |
:104DF000390734F480912F0682FF02C00C94BA3038 |
:104E0000E12FFF27EE0FFF1FE354F94F842F99275F |
:104E100020910B06821B91092081318128173907C7 |
:104E200014F410924704E12FFF27EE0FFF1FE35405 |
:104E3000F94F842F992722273327281B390B80818C |
:104E400091818217930734F480912F0683FF02C06B |
:104E50000C94B53080914604882391F0E12FFF2710 |
:104E6000EE0FFF1FE354F94F80910B069927841B27 |
:104E70009109208131818217930714F40C94373102 |
:104E8000E02FFF27EE0FFF1FE354F94F242F3327A6 |
:104E9000808191812817390734F480912F0680FF93 |
:104EA00002C00C94AF3050914404552399F0E02F88 |
:104EB000FF27EE0FFF1FE354F94F842F992720910E |
:104EC0000B06821B9109208131812817390714F4C0 |
:104ED0000C943F31E02FFF27EE0FFF1FE354F94FF3 |
:104EE000842F992722273327281B390B8081918112 |
:104EF0008217930734F480912F0681FF02C00C942F |
:104F0000AA3080914504882391F0E02FFF27EE0F0F |
:104F1000FF1FE354F94F80910B069927841B9109D9 |
:104F2000208131818217930714F40C943B318091D6 |
:104F30004704882331F480914604882311F40C94AB |
:104F4000A73091E0552331F480914504882311F472 |
:104F50000C949C3081E08093490410924804109294 |
:104F6000470410924604FAC129985BCD80915F04F2 |
:104F70008D3808F4BECD80912F048F7E80932F044E |
:104F80009091F90582E3989FC00111249093FC044D |
:104F90008093FB04E981FA81B99714F00C942031D5 |
:104FA00080913004909131048F3F910519F010F0F9 |
:104FB0000C946C391092DF041092E0041092E1041A |
:104FC0001092E2041092E3041092E4041092E504BB |
:104FD0001092E6048A3F910511F40C94E53D30915E |
:104FE000DB05E32FFF27EE0FFF1FE354F94F80810E |
:104FF0009181813591050CF4E9C040916C04442302 |
:1050000009F0E4C08091DC05E82FFF27EE0FFF1FB9 |
:10501000E354F94F808191818C34910514F40C9400 |
:10502000F43C8091FD048F5F893C10F40C941C3E8D |
:105030002C3010F00C94B23F299810926C0410920E |
:10504000FD0410923104109230040091D905E02F34 |
:10505000FF27EE0FFF1FE354F94F808191818734C2 |
:10506000910514F00C94AE3F1091DA05E12FFF2763 |
:10507000EE0FFF1FE354F94F808191810190F08181 |
:10508000E02DF7FF02C00C942C41E734F1050CF43D |
:1050900070C021E0A12FBB27AA0FBB1FA354B94F9B |
:1050A0008D919C9111978734910544F0E02FFF2753 |
:1050B000EE0FFF1FE354F94F808191818D919C91F8 |
:1050C0008734910564F0E02FFF27EE0FFF1FE354B4 |
:1050D000F94F80819181873491050CF022E0E12F16 |
:1050E000FF27EE0FFF1FE354F94F80819181863433 |
:1050F000910564F4E02FFF27EE0FFF1FE354F94FF3 |
:1051000080819181873491050CF023E0E12FFF2706 |
:10511000EE0FFF1FE354F94F808191818A5B9F4F0F |
:1051200064F4E02FFF27EE0FFF1FE354F94F808157 |
:105130009181873491050CF024E0E12FFF27EE0FD9 |
:10514000FF1FE354F94F808191818A5B9F4F64F484 |
:10515000E02FFF27EE0FFF1FE354F94F808191816D |
:10516000863491050CF425E0822F0E94C312109121 |
:10517000DA05E12FFF27EE0FFF1FE354F94F80817F |
:1051800091810190F081E02DF7FF02C00C949740CF |
:105190007E9714F00C94A53E8091D905E82FFF2747 |
:1051A000EE0FFF1FE354F94F808191818A5B9F4F7F |
:1051B00014F00C94A53E81E08093470888EE93E0BC |
:1051C00090934C0580934B053091DB05E32FFF272F |
:1051D000EE0FFF1FE354F94F808191818B5A9F4F4F |
:1051E0000CF087CCD090DC05ED2DFF27EE0FFF1FD4 |
:1051F000E354F94F80819181855B9F4F14F00C94AB |
:1052000090398091FE048F5F893C10F40C94CE3C61 |
:1052100088EC8093FE0481E090E0909331048093C9 |
:10522000300481E080936C041092E7041092E8044B |
:105230001092E9041092EA0410927B0410927C040C |
:1052400010927D0410927E041092770410927804DC |
:105250001092790410927A048091F005E82EFF24D0 |
:105260000027112780917F06909180069C0144279A |
:1052700037FD4095542FC801B7010E94E45BDC0163 |
:10528000CB0180938B0490938C04A0938D04B093F6 |
:105290008E0480919106909192069C01442737FDDF |
:1052A0004095542FC801B7010E94E45BDC01CB019B |
:1052B0008093830490938404A0938504B093860420 |
:1052C0008091AB049091AC04A091AD04B091AE0478 |
:1052D0008093870490938804A0938904B0938A04F0 |
:1052E0008091A3049091A404A091A504B091A60478 |
:1052F00080937F0490938004A0938104B0938204F0 |
:105300001092DF041092E0041092E1041092E20483 |
:105310001092E3041092E4041092E5041092E60463 |
:1053200080912F04886080932F040C949239019708 |
:105330009093FC048093FB042A3009F097CB289AC1 |
:105340008091300490913104895E934008F09ACBAB |
:1053500010926C04CECB6091E105688B709148048B |
:105360007B8F772321F480914904882369F0809111 |
:1053700009069927A981BA818A179B0714F49A8391 |
:10538000898381E080936A0480912F0484FF64C63E |
:10539000109259041092580410925D0410925C040B |
:1053A00010925B0410925A049AE590938B0688E75A |
:1053B00080937206909347068A8F809360061092BE |
:1053C0004804109249041B8E2091630630916406B4 |
:1053D0004091650650916606E090AB04F090AC04F5 |
:1053E0000091AD041091AE04ED8EFE8E0F8F18A3C8 |
:1053F0002E0D3F1D401F511F80916C0690916D0630 |
:10540000A0916E06B0916F06E090A304F090A40402 |
:105410000091A5041091A604EC86FD860E871F87D7 |
:105420008E0D9F1DA01FB11F209058063090590669 |
:1054300040905A0650905B06E090A704F090A804B4 |
:105440000091A9041091AA04EE8AFF8A088F198F8F |
:105450002E0C3F1C401E511E60904806709049065D |
:1054600080904A0690904B06E0909F04F090A00434 |
:105470000091A1041091A204E9A2FAA20BA31CA31B |
:105480006E0C7F1C801E911EF0904904FB86FF204D |
:1054900009F088C50B8D002309F084C580936C0644 |
:1054A00090936D06A0936E06B0936F0620936306EB |
:1054B0003093640640936506509366068091C40558 |
:1054C0009091C505815092400CF051C480916C04BC |
:1054D000882309F04CC48091D7039091D8038F3F63 |
:1054E000910509F008F43FC58B85882309F0CCC6E7 |
:1054F0009B8D992309F0C8C6A0916A04AC8FAA239A |
:1055000009F0C2C6B0911206B98BBB2309F4BCC620 |
:10551000209258063092590640925A0650925B06E5 |
:10552000609248067092490680924A0690924B0615 |
:105530008091630690916406A0916506B09166061D |
:10554000B7FF02C00C940540292E3A2E4B2E55244D |
:1055500047FC5A9420926306309264064092650696 |
:105560005092660680916C0690916D06A0916E0631 |
:10557000B0916F06B7FF02C00C94F03F892F9A2FAD |
:10558000AB2FBB27A7FDBA958B839C83AD83BE83CE |
:1055900080936C0690936D06A0936E06B0936F0691 |
:1055A0008091F005E82EFF240027112720919B040D |
:1055B00030919C0440919D0450919E04C801B70114 |
:1055C0000E94E45B97FF02C00C94EA3F672E782E9E |
:1055D000892E992487FC9A942091970430919804FD |
:1055E0004091990450919A04C801B7010E94E45B6C |
:1055F00097FF02C00C94E43FA72EB82EC92EDD24DD |
:10560000C7FCDA94D201C10186199709A809B90922 |
:1056100020911106E22EFF2400271127BC01CD01A5 |
:10562000A80197010E94585C39014A0119012A0119 |
:105630008B819C81AD81BE818A199B09AC09BD0912 |
:10564000BC01CD01A80197010E94585CD401C3019F |
:1056500097FE02C00C94DE3F892F9A2FAB2FBB27F9 |
:10566000A7FDBA95BC01DA01C90157FF02C00C942D |
:10567000FF3F892F9A2FAB2FBB27A7FDBA956C014F |
:10568000809134049091350481349105D4F4809153 |
:10569000320490913304813491059CF48091DC05AF |
:1056A000E82FFF27EE0FFF1FE354F94F8081918110 |
:1056B0000190F081E02DF7FF02C00C9431417A9700 |
:1056C000C4F070934B0460934A04D0924D04C0928E |
:1056D0004C04CB0177FF02C00C940E40BC017595C1 |
:1056E0006795C601D7FE02C00C940B406C01D5949F |
:1056F000C794EE88FF88088D198D2D8D3E8D4F8DB6 |
:1057000058A1E21AF30A040B150BEDA2FEA20FA397 |
:1057100018A7E092EB04F092EC040093ED041093D0 |
:10572000EE0489A19AA1ABA1BCA1EC84FD840E85F5 |
:105730001F858E199F09A00BB10B8F839887A987AE |
:10574000BA878093EF049093F004A093F104B09390 |
:10575000F2040DA11EA12FA138A50093F30410930C |
:10576000F4042093F5043093F6048093F7049093A7 |
:10577000F804A093F904B093FA04809187049091FF |
:105780008804A0918904B0918A04801B910BA20B1C |
:10579000B30B8093870490938804A0938904B093FB |
:1057A0008A0480917F0490918004A0918104B0913B |
:1057B00082042F81388549855A85821B930BA40B5F |
:1057C000B50B80937F0490938004A0938104B093E1 |
:1057D00082043989332371F120916804309169047E |
:1057E0002138310594F08091BF049091C004019656 |
:1057F0009093C0048093BF048091700690917106CD |
:105800000196909371068093700620583F4F94F450 |
:105810008091BF049091C00401979093C00480933D |
:10582000BF04809170069091710601979093710664 |
:1058300080937006109269041092680441E0A42ECF |
:10584000B12C8DA19EA1AFA1B8A5B7FF02C00C9449 |
:10585000F63F81509240A040B0401CF034E0A32EAF |
:10586000B12C8091140590911505A0911605B09169 |
:105870001705E0906306F0906406009165061091AC |
:1058800066068E199F09A00BB10B815E914BAF4F3D |
:10589000BF4F8F539C49A040B04010F00C943C3E49 |
:1058A000B0920F05A0920E052DA13EA14FA158A5C3 |
:1058B000213080E1380780E0480780E0580714F481 |
:1058C0000C94CD3F80911005882311F40C948D40E9 |
:1058D00070934B0460934A04DA01C90157FF02C078 |
:1058E0000C945741B7FF02C00C94514129E0B59583 |
:1058F000A795979587952A95D1F7A80EB91EB092CE |
:105900000F05A0920E052DA13EA14FA158A557FF4E |
:1059100002C00C948D4139014A01A3E0959487940B |
:1059200077946794AA95D1F71301240199E8691631 |
:1059300093E1790690E0890690E0990644F0F8E852 |
:105940006F2EF3E17F2E812C912C13012401D401C1 |
:10595000C30197FE02C00C948741892F9A2FAB2F69 |
:10596000BB27A7FDBA95680F791F2DA13EA14FA1B6 |
:1059700058A5203080EF38078FEF48078FEF580782 |
:1059800014F00C94C13F80911105882311F40C94FC |
:10599000804070934B0460934A04DA01C90157FFB9 |
:1059A00002C00C94AA419C01AD01B7FF02C00C9447 |
:1059B000A44169E055954795379527956A95D1F7A4 |
:1059C00080910E0590910F05820F931F90930F0504 |
:1059D00080930E052DA13EA14FA158A557FF02C0EF |
:1059E0000C949E4139014A0143E095948794779441 |
:1059F00067944A95D1F798E769169CEE79069FEF70 |
:105A000089069FEF990644F438E7632E3CEE732E27 |
:105A10003FEF832E3FEF932E6092020570920305B5 |
:105A20008092040590920505D401C30197FE02C03F |
:105A30000C949841892F9A2FAB2FBB27A7FDBA95BD |
:105A400060914A0470914B04680F791FA9892A2F2D |
:105A5000332780910E0590910F052817390724F4FC |
:105A600030930F0520930E052DA13EA14FA158A5FF |
:105A7000213831054105510574F08091C30490919E |
:105A8000C40420910E0530910F05820F931F90934F |
:105A9000C4048093C3048DA19EA1AFA1B8A5805872 |
:105AA0009F4FAF4FBF4F74F48091C3049091C404D3 |
:105AB00020910E0530910F05821B930B9093C40427 |
:105AC0008093C304B1E0AB2EB12C8F819885A9855A |
:105AD000BA85B7FF02C00C94D13F81509240A040DC |
:105AE000B0401CF0A4E0AA2EB12C20E030E040E051 |
:105AF00050E08091180590911905A0911A05B09178 |
:105B00001B0560906C0670906D0680906E069090FC |
:105B10006F0686199709A809B909815E914BAF4FA5 |
:105B2000BF4F8F539C49A040B04010F00C94523EA0 |
:105B3000B0920F05A0920E058F819885A985BA8530 |
:105B400081509041A040B04014F40C94B53F809136 |
:105B50001205882311F40C945B40D0924D04C0923E |
:105B60004C048F819885A985BA85B7FF02C00C9433 |
:105B70004841B7FF02C00C944241F9E0B595A795A2 |
:105B800097958795FA95D1F7A80EB91EB0920F0593 |
:105B9000A0920E052F81388549855A8557FF02C08E |
:105BA0000C947B41E3E05595479537952795EA9509 |
:105BB000D1F72938F3E13F07F0E04F07F0E05F0746 |
:105BC00014F40C940A4188E893E1A0E0B0E08093DB |
:105BD000060590930705A0930805B09309058091E9 |
:105BE000060590910705A0910805B0910905B7FF3A |
:105BF00002C00C948141892F9A2FAB2FBB27A7FDA0 |
:105C0000BA95C0904C04D0904D04C80ED91E2F8177 |
:105C1000388549855A85203080EF38078FEF48074F |
:105C20008FEF580714F00C94893F80911305882357 |
:105C300011F40C945640D0924D04C0924C04DA01F9 |
:105C4000C90157FF02C00C9460419C01AD01B7FF30 |
:105C500002C00C947541B9E0559547953795279545 |
:105C6000BA95D1F780910E0590910F05820F931F81 |
:105C700090930F0580930E052F81388549855A85AD |
:105C800057FF02C00C946F41A3E055954795379597 |
:105C90002795AA95D1F728379CEE39079FEF49073A |
:105CA0009FEF590714F00C94004188E79CEEAFEF8A |
:105CB000BFEF8093060590930705A0930805B09366 |
:105CC00009058091060590910705A0910805B091FE |
:105CD0000905B7FF02C00C946941892F9A2FAB2F99 |
:105CE000BB27A7FDBA95C0904C04D0904D04C80EB8 |
:105CF000D91EA9892A2F332780910E0590910F056F |
:105D00002817390724F430930F0520930E052F81AF |
:105D1000388549855A85213831054105510574F08A |
:105D20008091C1049091C20420910E0530910F051D |
:105D3000820F931F9093C2048093C1048F81988532 |
:105D4000A985BA8580589F4FAF4FBF4F0CF0B2C2A4 |
:105D50008091C1049091C20420910E0530910F05ED |
:105D6000821B930B9093C2048093C104A3C28091C1 |
:105D7000F005E82EFF24002711276D8D7E8D8F8D75 |
:105D800098A1A80197010E94585C59016A0180916D |
:105D90007F0690918006AA2797FDA095BA2FA81A92 |
:105DA000B90ACA0ADB0A6C857D858E859F85A801A4 |
:105DB00097010E94585C79018A0180919106909127 |
:105DC0009206AA2797FDA095BA2FE81AF90A0A0B9E |
:105DD0001B0BD601C501D7FE02C00C9481395C01B2 |
:105DE0006D01A4E0D594C794B794A794AA95D1F770 |
:105DF000D801C70117FF02C00C9486397C018D01C0 |
:105E0000F4E015950795F794E794FA95D1F780910A |
:105E1000340490913504813491050CF484C1C60199 |
:105E2000B50123E030E040E050E00E94585C5901A9 |
:105E30006A01C801B70123E030E040E050E00E9471 |
:105E4000585C79018A018091DC05E82FFF27EE0F6D |
:105E5000FF1FE354F94F808191810190F081E02D83 |
:105E6000F7FF02C00C948B397A97A4F0C601B501F4 |
:105E700023E030E040E050E00E94585C59016A01A4 |
:105E8000C801B70123E030E040E050E00E94585CD8 |
:105E900079018A0141E2A416B104C104D1042CF0B5 |
:105EA000E0E2AE2EB12CC12CD12C50EEA5165FEF46 |
:105EB000B5065FEFC5065FEFD50644F470EEA72E7A |
:105EC0007FEFB72E7FEFC72E7FEFD72E61E2E6166A |
:105ED000F104010511052CF060E2E62EF12C012DF4 |
:105EE000112D70EEE7167FEFF7067FEF07077FEFC4 |
:105EF000170744F450EEE52E5FEFF52E5FEF052F08 |
:105F00005FEF152F80918B0490918C04A0918D04EC |
:105F1000B0918E048A199B09AC09BD0980938B044A |
:105F200090938C04A0938D04B0938E04809183048D |
:105F300090918404A0918504B09186048E199F09E4 |
:105F4000A00BB10B8093830490938404A0938504E9 |
:105F5000B09386048091D7039091D8038F3F910529 |
:105F600011F008F0C1CA20925806309259064092AA |
:105F70005A0650925B0660924806709249068092DB |
:105F80004A0690924B06F0916A04FC8F00915804E7 |
:105F900010915904C80117FFEDC188279927801B6C |
:105FA000910BE8C110929B0410929C0410929D04E6 |
:105FB00010929E04109297041092980410929904E3 |
:105FC00010929A041092630610926406109265066D |
:105FD0001092660610926C0610926D0610926E0674 |
:105FE00010926F06662477244301130124018091E7 |
:105FF0008B0490918C04A0918D04B0918E048093B9 |
:10600000870490938804A0938904B0938A048091B4 |
:10601000830490918404A0918504B09186048093B8 |
:106020007F0490938004A0938104B0938204109223 |
:10603000D8031092D70310924B0410924A04109286 |
:106040004D0410924C041B85112309F044CA2B8D7A |
:10605000222309F040CA32CAB0916006BA8FB4C98F |
:106060007FEF8E3F97070CF06CC002960C941926B8 |
:10607000B9016150704040915A0450915B04CA01CB |
:1060800057FF02C00C94C6269595879595958795E0 |
:1060900097FF02C00C94CF26209132043091330434 |
:1060A0002817390714F00C94DB26CA0157FF02C0E9 |
:1060B0000C94673C97FF02C00C94743C9C0135958E |
:1060C0002795359527952536310514F40C94DD2652 |
:1060D00024E630E080912F0484FF02C00C94E32674 |
:1060E0003093330420933204709335046093340466 |
:1060F0000C94EB26F092720640915C0450915D0482 |
:10610000CA0157FD02C00C94972603969595879572 |
:106110009595879597FD02C00C949F269095819543 |
:106120009F4F0C949F2680913204909133048134C8 |
:1061300091050CF488CE73CE909348048093490463 |
:106140000DC910925904109258040C941D26982FD2 |
:106150000C94A22781E0809345040C94972781E05A |
:1061600080934404582F0C946A2781E0809346045E |
:106170000C94402781E0809347040C94132780916E |
:106180004C08992787FD90954E2D5527849FD00167 |
:10619000859FB00D949FB00D1124CD0120915C041A |
:1061A00030915D04820F931F90935D0480935C0493 |
:1061B00080914D08992787FD9095849FF001859FD8 |
:1061C000F00D949FF00D1124CF0120915A043091CD |
:1061D0005B04820F931F90935B0480935A04809119 |
:1061E0004E08992787FD90952091580430915904C5 |
:1061F000820F931F90935904809358048091500804 |
:10620000282F332727FD30958091E6059927289F71 |
:10621000A001299F500D389F500D11245093250146 |
:106220004093240180914F0899278C159D0514F007 |
:106230000C94792690935704809356040C947D26F1 |
:1062400080916C04882311F40C94D0278091300441 |
:1062500090913104FFEF8F3F9F0711F40C94D427E6 |
:10626000019690933104809330040C94D4271092BB |
:1062700046040C944027109245040C9497271092E2 |
:10628000440450E00C946A2760E070E06B011092C7 |
:106290006A041C8EE0906306F09064060091650627 |
:1062A0001091660660906C0670906D0680906E0688 |
:1062B00090906F0680917206882309F0B1C7109202 |
:1062C0004D0410924C0410924B0410924A04E09238 |
:1062D0001405F092150500931605109317056092AA |
:1062E00018057092190580921A0590921B0510925C |
:1062F0009B0410929C0410929D0410929E04109294 |
:106300009704109298041092990410929A04109293 |
:106310009304109294041092950410929604109293 |
:10632000630610926406109265061092660610923B |
:106330006C0610926D0610926E0610926F06109207 |
:1063400058061092590610925A0610925B06109247 |
:1063500048061092490610924A0610924B06109277 |
:10636000D8031092D7030091580410915904C80122 |
:1063700017FD13CE409774F068EE262E63E0362E9C |
:106380003092450120924401E888E4FC03C081E09A |
:1063900080930105B090ED05CB2CDD24EE24FF2485 |
:1063A000B801882777FD8095982F980117FD6DC754 |
:1063B000442737FD4095542F0E94E45B9B01AC01BC |
:1063C000C701B6010E94E45B97FD5AC759E0959555 |
:1063D0008795779567955A95D1F79B018B2D9927CE |
:1063E000809FA001819F500D909F500D1124CA01E4 |
:1063F00057FD44C79595879595958795280F391F23 |
:10640000C901AA2797FDA095BA2F8093E70490931E |
:10641000E804A093E904B093EA0420917B0430914E |
:106420007C0440917D0450917E04281B390B4A0B5B |
:106430005B0B213563EC360760E0460760E05607EA |
:106440000CF4EFC580E593ECA0E0B0E080937B0412 |
:1064500090937C04A0937D04B0937E0480917B0490 |
:1064600090917C04A0917D04B0917E04805B9C435C |
:10647000AF4FBF4F64F480EB9CE3AFEFBFEF80936F |
:106480007B0490937C04A0937D04B0937E04809160 |
:106490007104909172049EA38DA3892B09F452C1BB |
:1064A000988993FF4FC18D8D9E8DAF8DB8A1B7FF99 |
:1064B00002C00C94923C29E0B595A79597958795D5 |
:1064C0002A95D1F76C0197FF02C00C948C3C8C8507 |
:1064D0009D85AE85BF85B7FF02C00C94863C09E060 |
:1064E000B595A795979587950A95D1F7BC0197FF24 |
:1064F00002C00C94813CC616D7060CF46B01B601A1 |
:10650000D7FE02C00C947D3C5B01B594A794B59472 |
:10651000A794B594A7940894A11CB11CADA1BEA1E9 |
:10652000A45EBD4F7D010027F7FC0095102FAC51F4 |
:10653000B240BEA3ADA340908D0650908E066090F1 |
:106540008F0670909006209120013091210140919A |
:106550002201509123012A8B3B8B4C8B5D8BC30115 |
:10656000B2010E94585CE21AF30A040B150BC80131 |
:10657000B70128E631E040E050E00E94585CDC01C1 |
:10658000CB018C01045B10408090860690908706BA |
:10659000C40197FE02C00C94773C8138910514F039 |
:1065A00000E010E0209044013090450121143104B6 |
:1065B000A1F439E1C316D10484F480916804909168 |
:1065C0006904800F911F90936904809368048091FF |
:1065D0000105882311F00C94D93CC801880F991F3C |
:1065E000880F991F880F991FB5010E94235C9B019A |
:1065F000442737FD4095542F240D351D461D571D4A |
:1066000020938D0630938E0640938F06509390060C |
:1066100010913501612F77276C9DC0016D9D900D04 |
:106620007C9D900D112497FF02C00C94A03C6C013E |
:10663000D594C794D594C794D594C794D594C7944A |
:10664000D594C7946C197D096B0177FF02C00C9437 |
:10665000983C2114310411F00C94CE3DE0903404A8 |
:10666000F09035048091320490913304E80EF91EC5 |
:10667000F7FE02C00C94253EF594E794F594E79458 |
:10668000F594E79480E490E0E80EF91ECA01B901A0 |
:106690002A893B894C895D890E94585CDA01C901CD |
:1066A00020916F0430917004442737FD4095542F9A |
:1066B000821B930BA40BB50B845E9D4FAF4FBF4F56 |
:1066C000BC01CD0128E631E040E050E00E94585C7A |
:1066D000DC01CB01845B90408C9DD0018D9DB00D81 |
:1066E0009C9DB00D1124CD01B7010E94235C83E075 |
:1066F000189F60011124C616D70614F40C94A33C0D |
:10670000882799278C199D09681779070CF4BC0113 |
:10671000CB01AA2797FDA095BA2F20917B04309139 |
:106720007C0440917D0450917E04820F931FA41F2E |
:10673000B51F80937B0490937C04A0937D04B09359 |
:106740007E0404C0809086069090870680910005A4 |
:1067500081508F3F09F46EC480930005A0904F06CE |
:10676000B0905006BC8DBB2381F01092E3041092D0 |
:10677000E4041092E5041092E6041092DF041092F3 |
:10678000E0041092E1041092E204EB85EE2309F09C |
:106790002AC4809172069927AA27BB27BC01CD0184 |
:1067A0002D8D3E8D4F8D58A10E94E45BDC01CB0105 |
:1067B000BC01CD0128EF3AE240E050E00E94585C75 |
:1067C0002901FB8DFF2309F00BC4809172069927E4 |
:1067D000AA27BB27BC01CD012C853D854E855F8551 |
:1067E0000E94E45BDC01CB01BC01CD0128EF3AE261 |
:1067F00040E050E00E94585C19010091420610915F |
:106800004306093C11050CF4E3C308EC10E01093B7 |
:1068100043060093420640914D0650914E065EA3FA |
:106820004DA3493C51050CF4C4C368EC70E07EA351 |
:106830006DA370934E0660934D06C501AA2797FD80 |
:10684000A095BA2F20918B06C22EDD24EE24FF24C2 |
:10685000BC01CD01A70196010E94E45B9B01AC0144 |
:10686000C801AA2797FDA095BA2F67E0880F991F46 |
:10687000AA1FBB1F6A95D1F7280F391F4A1F5B1F3C |
:1068800057FDEEC486E055954795379527958A952F |
:10689000D1F75201A20EB31E3501809140069091AE |
:1068A0004106AA2797FDA095BA2FBC01CD01A701EB |
:1068B00096010E94E45B9B01AC01EDA0FEA0C70124 |
:1068C000AA2797FDA095BA2F07E0880F991FAA1F46 |
:1068D000BB1F0A95D1F7280F391F4A1F5B1F57FDB1 |
:1068E000BAC416E055954795379527951A95D1F76F |
:1068F0008101020F131F1EA30DA36801880C991CB0 |
:10690000C401AA2797FDA095BA2F209147063327E7 |
:1069100044275527BC01CD010E94E45B7B018C011B |
:1069200097FDA3C4B6E015950795F794E794BA953B |
:10693000D1F73A8D832F9927AA27BB2720918F045F |
:10694000309190044091910450919204BC01CD018A |
:106950000E94E45BDC01CB01BC01CD0120EF35E5F9 |
:1069600040E050E00E94585C4701820E931EC40133 |
:1069700041E0A41640E4B40624F0A12CA0E4BA2E11 |
:10698000350150E0A51650ECB5060CF039C3A12C2A |
:10699000F0ECBF2EB0925006A0924F066DA17EA1E2 |
:1069A000615070442CF0E0E0F0E4FEA3EDA36F0131 |
:1069B0000DA11EA10050104C0CF01DC340E050EC86 |
:1069C0005EA34DA3509341064093400651E08516C7 |
:1069D00050E4950624F0812CE0E49E2EC40160E092 |
:1069E000861660EC96060CF001C3812C70EC972E95 |
:1069F000909287068092860680910001482F552745 |
:106A000080911A0190911B014817590794F4209125 |
:106A10001A0130911B01A981BA814A9FC0014B9F85 |
:106A2000900D5A9F900D1124B9010E940F5C7A833A |
:106A30006983E981FA81EE0FFF1FEE0FFF1FFA83D2 |
:106A4000E983F889F0FF3EC00B8D0023D9F51B8543 |
:106A50001123C1F52091C5043091C60421153105DB |
:106A600009F07DC4809110019091110189599340E2 |
:106A700008F097C78091100190911101843691051B |
:106A800010F00C94363E87B58B3010F40C948D3F8B |
:106A90008091DB038F5F8093DB039AE08902900192 |
:106AA00011248091CE05821B87BD8CE291E09093EA |
:106AB0004C0580934B058EE591E09093C60480933E |
:106AC000C5046EC4D0908506809156069927880F1C |
:106AD000991F880F991F889669817A8168177907AD |
:106AE00014F49A8389838D2D9927880F991F880F15 |
:106AF000991F80559040A981BA818A179B0714F489 |
:106B00009A83898380913B05882391F0809130049A |
:106B1000909131040297C09758F4E981FA811E16CA |
:106B20001F0634F481E090E09093310480933004A8 |
:106B300080915C0490915D04B501681B790B7093A2 |
:106B4000620660936106E0917206EE2309F45DC26D |
:106B5000481A590AC201AA2797FDA095BA2F209179 |
:106B6000DF043091E0044091E1045091E204820F8F |
:106B7000931FA41FB51F8093DF049093E004A0939C |
:106B8000E104B093E2048091DF049091E004A091CD |
:106B9000E104B091E2048130FAEF9F07F0E0AF0723 |
:106BA000F0E0BF0764F080E09AEFA0E0B0E08093EF |
:106BB000DF049093E004A093E104B093E2048050DA |
:106BC0009640AF4FBF4F64F480E096E0AFEFBFEF69 |
:106BD0008093DF049093E004A093E104B093E20477 |
:106BE00080915A0490915B046DA17EA1681B790B82 |
:106BF00070933F0660933E06EE2309F40CC2281AF8 |
:106C0000390AC101AA2797FDA095BA2F2091E30464 |
:106C10003091E4044091E5045091E604820F931F03 |
:106C2000A41FB51F8093E3049093E404A093E504AC |
:106C3000B093E6048091E3049091E404A091E5040C |
:106C4000B091E60481301AEF910710E0A10710E03F |
:106C5000B10764F080E09AEFA0E0B0E08093E30435 |
:106C60009093E404A093E504B093E604805096402A |
:106C7000AF4FBF4F64F480E096E0AFEFBFEF80937B |
:106C8000E3049093E404A093E504B093E6048091B8 |
:106C9000C1069091C206845C9F4F2CF480911D0127 |
:106CA000813009F4F7C28091C1069091C2068D5ED1 |
:106CB0009F4F4CF08091C1069091C20644971CF4FE |
:106CC00081E080931D018091C7069091C806805B8A |
:106CD0009F4F2CF480911C01813009F4E6C2809111 |
:106CE000C7069091C806813591051CF081E080931C |
:106CF0001C0100912804109129041093270400938B |
:106D00002604E0902A04F0902B04F0922504E092EF |
:106D10002404C0902C04D0902D04D0922304C0925F |
:106D20002204A090BF06B090C0066FE770E0A60EE8 |
:106D3000B71EC5017AE0A716B10424F4EAE0AE2E2E |
:106D4000B12CC501A3E3AA16B1040CF41AC172E375 |
:106D5000A72EB12CB0927B06A0927A06B092FD08C5 |
:106D6000A092FC0810926806109267068091F005C8 |
:106D70009927880F991F880F991F9C01442737FD79 |
:106D80004095542F6D8D7E8D8F8D98A10E94585CFB |
:106D90003093780620937706A0911801B0911901DD |
:106DA000B0930D04A0930C046091C1067091C206CB |
:106DB00077FD4EC27595679575956795C901222730 |
:106DC0003327281B390B37FD40C23595279535955C |
:106DD00027953595279535952795209FF001219F7B |
:106DE000F00D309FF00D1124E60FF71FF0932104F2 |
:106DF000E093200480911E0490911F048E179F073A |
:106E000024F4F0931F04E0931E0480911C049091DD |
:106E10001D04E817F90724F4F0931D04E0931C0403 |
:106E2000882799278A1B9B0B8E9D80018F9D100DB3 |
:106E30009E9D100D1124C80117FD04C2BC01672FCF |
:106E4000770F770B659570931B0460931A048091FC |
:106E50001804909119048617970724F47093190465 |
:106E600060931804809116049091170468177907AD |
:106E700024F4709317046093160480910E0490918B |
:106E80000F048A1B9B0B8C9DA0018D9D500D9C9D1A |
:106E9000500D112480910A0490910B042091080454 |
:106EA00030910904821B930B840F951F90930B0460 |
:106EB00080930A0497FDC4C195958795959587950C |
:106EC00095958795909309048093080497FDB1C127 |
:106ED0009C01022E232F000C221F330B000C221FBB |
:106EE000331F3093150420931404B0930F04A09320 |
:106EF0000E0480911204909113048217930724F4D6 |
:106F00003093130420931204809110049091110483 |
:106F10002817390724F43093110420931004A50195 |
:106F2000460F571F420F531F4E0F5F1FC501861B91 |
:106F3000970B821B930B8E1B9F0B8333910514F0D1 |
:106F400082E390E09093D6058093D5058091D50596 |
:106F50009091D605181619060CF06DC143335105F2 |
:106F6000ACF082E390E090935206809351068091BA |
:106F70005106909152061816190614F40C94DD412E |
:106F800012C090937B0680937A06E8CE5093520607 |
:106F90004093510680915106909152061816190699 |
:106FA00014F40C94DD4110925206109251060C9488 |
:106FB000DD418DA19EA188539F4F0CF03ECCE8E3AC |
:106FC000FFEFFEA3EDA3F0934E06E0934D0635CC04 |
:106FD0002FEF083312070CF01ECC08E31FEF17CC7D |
:106FE000222433240ACC44245524EBCB90938706E7 |
:106FF0008093860601CDD0924106C0924006E6CC31 |
:107000007092500660924F06C9CCCB01AA2797FD1B |
:10701000A095BA2FA4CDCB01AA2797FDA095BA2F92 |
:10702000F5CD20937B0430937C0440937D045093F2 |
:107030007E0414CA88E1809300058091F0059927A9 |
:10704000880F991F880F991F9C01442737FD409591 |
:10705000542F6D8D7E8D8F8D98A10E94585C30933A |
:10706000EF082093EE0880917F069091800697FDAF |
:107070002CC495958795959587959093F108809365 |
:10708000F00880911204909113049093F308809378 |
:10709000F20880911004909111049093F508809368 |
:1070A000F408A0904F06B0905006B092F708A09256 |
:1070B000F60880911801909119019093F908809336 |
:1070C000F8088091E3039091E4039093FB08809388 |
:1070D000FA081092FF081092FE0880911A01909110 |
:1070E0001B01909301098093000980915F04992707 |
:1070F00090930309809302098091200490912104C8 |
:10710000909305098093040980911A0490911B04BF |
:1071100090930B0980930A098091140490911504AF |
:1071200090930D0980930C098091C3069091C40639 |
:1071300090930F0980930E0980912804909129045F |
:10714000909311098093100980912A0490912B0447 |
:10715000909313098093120980912C0490912D042F |
:10716000909315098093140980911E01992790939B |
:107170001709809316098091C7069091C8069093CD |
:10718000190980931809B0921B09A0921A098091DD |
:1071900018049091190490931D0980931C09809103 |
:1071A00016049091170490931F0980931E098091F3 |
:1071B000EB039091EC039093210980932009809137 |
:1071C0001E0490911F0490932309809322098091BB |
:1071D0001C0490911D0490932509809324098091AB |
:1071E000C5069091C6069093270980932609809141 |
:1071F000C3069091C4069093290980932809809131 |
:10720000C1069091C20690932B0980932A09809120 |
:10721000BF069091C00690932D0980932C09A2CAB5 |
:10722000D0924D04C0924C0470934B0460934A0476 |
:107230004EC8CF964DCE1092D6051092D5058ECE63 |
:1072400007963ACE81509E4FF9CD215F3F4FBDCD7D |
:107250006D5F7F4FAFCD215C3F4F4F4F5F4F41CBB5 |
:10726000215C3F4F4F4F5F4F0DCB2FE330E040E0AD |
:1072700050E0E20EF31E041F151F54CB0396BAC84C |
:1072800061507E4F8F4F9F4FA1C822273327201B6D |
:10729000310B8EC810921D0180911E01823009F4BD |
:1072A00091C48F5F80931E01FECC10921C01E0916F |
:1072B0001E01E33008F013CDFF27EE0FFF1FE85D3E |
:1072C000FB4F808191812091C3063091C406820FCB |
:1072D000931F9183808303CD80912F0482608093DC |
:1072E0002F040C94EF2710925704109256040C941C |
:1072F00085262D5F3F4F0C94AD252D5F3F4F0C949D |
:10730000EC250F96A11DB11D0C94EF2E0F96A11D1B |
:10731000B11D0C94FE2EF095E195FF4F0C94342F87 |
:107320001092FE04ED2DFF27EE0FFF1FE354F94FDF |
:10733000808191818C3491050CF454C08091FF04BC |
:107340008F5F893C08F426C310926C0488EC80930C |
:10735000FF0410923104109230040C94792580912E |
:10736000520490915304A0915404B091550454E0F8 |
:10737000880F991FAA1FBB1F5A95D1F78093DC0372 |
:107380009093DD03A093DE03B093DF031092DA0342 |
:107390001092D903215030403093C6042093C50485 |
:1073A000488941FF23C080913801823308F0EBC245 |
:1073B00080916501815098F410926B048091520481 |
:1073C00090915304A0915404B091550480934E04BD |
:1073D00090934F04A0935004B093510481E08093A4 |
:1073E000650126C01092FF040C9479252091380184 |
:1073F0008091240190912501820F911D2091E60535 |
:107400003327829FB001839F700D929F700D1124CE |
:10741000CB01AA2797FDA095BA2F80934E04909395 |
:107420004F04A0935004B093510481E080936B0407 |
:10743000E0902001F09021010091220110912301A0 |
:107440006D8D7E8D8F8D98A1A80197010E94585C4B |
:1074500059016A016C857D858E859F85A8019701FC |
:107460000E94585CB901C5010E94165A5C01CD9773 |
:107470001CF04CE3A42EB12CC5010E94134E5C01FC |
:1074800080916B04882309F446C180912F049927C9 |
:107490009C012071307084FD3EC1C0903106C0FC5B |
:1074A00004C08091E10581FD77C409811A81309380 |
:1074B0001D0520931C056090520470905304809029 |
:1074C00054049090550480914E0490914F04A091E3 |
:1074D0005004B091510486159705A805B90514F01C |
:1074E000C0FC2FC1E0905204F090530480914E04F0 |
:1074F00090914F04E81AF90A8091370199278E9DDF |
:1075000090018F9D300D9E9D300D1124C90137FDD6 |
:10751000A1C5959587959595879595958795959509 |
:107520008795081B190B2091D9033091DA0337FD99 |
:107530008EC535952795359527953595279529300D |
:1075400031050CF4EAC328E030E0229FA001239F1C |
:10755000500D329F500D11249A0157FD7DC5359570 |
:107560002795359527958091D9039091DA03280FB7 |
:10757000391F809139019927AA27BB27442737FD56 |
:107580004095542FBC01CD010E94E45B97FD5AC584 |
:10759000A7E09595879577956795AA95D1F79B0173 |
:1075A0005FEF613875070CF0B0C321E83FEF021BB5 |
:1075B000130B609073047090740480907504909025 |
:1075C000760497FC36C5F7E0959487947794679492 |
:1075D000FA95D1F780913601282F33274427552774 |
:1075E000C401B3010E94E45B97FD1EC5E5E09595DB |
:1075F000879577956795EA95D1F79B017FEF2138BD |
:1076000037070CF069C321E83FEF021B130B85E934 |
:1076100090E0E80EF91E9BE2E91691E0F906E8F425 |
:1076200080911C0590911D05892BB9F4809120054E |
:10763000909121051816190684F4809122059091E5 |
:107640002305081719070CF48FC2809163019091EC |
:107650006401801791070CF487C28091C504909152 |
:10766000C604892B21F00091200510912105C80145 |
:10767000AA2797FDA095BA2F5DE0880F991FAA1F32 |
:10768000BB1F5A95D1F79501442737FD4095542FDC |
:10769000BC01CD010E94585C2093EF043093F004AC |
:1076A0004093F1045093F2040091EF041091F00420 |
:1076B00080911E0590911F059C01220F331F280FFA |
:1076C000391F200F311F37FDACC4A90155954795CF |
:1076D00055954795BA018091E205282F3327220F4F |
:1076E000331F220F331F421753070CF0FDC2A901AD |
:1076F000B901D0908506C0FEAEC2A981BA81A41797 |
:10770000B5070CF0A8C2AD01B0931F05A0931E05EC |
:107710005A83498318C06091EA05662309F416C1AB |
:107720007727663471050CF042C226E430E03093CE |
:10773000620120936101E980FA80F0921F05E092D6 |
:107740001E05D090850680912F0481FF0FC2809185 |
:107750002F0484FDA3C0E0902405F090250500913E |
:10776000260510912705E114F10401051105B1F476 |
:1077700029813A8179010027F7FC0095102FECE070 |
:10778000EE0CFF1C001F111FEA95D1F7E0922405B3 |
:10779000F092250500932605109327058091D903C3 |
:1077A0009091DA038091D9039091DA0397FD02C496 |
:1077B000843691050CF028C269817A819B014427A7 |
:1077C00037FD4095542FC501AA2797FDA095BA2FE4 |
:1077D000BC01CD010E94E45B97FDA4C49B01AC01F8 |
:1077E0007DE055954795379527957A95D1F7209364 |
:1077F000EF043093F0044093F1045093F20480912D |
:1078000030049091310477E0803D970708F089C3F8 |
:10781000D801C70169E0B695A795979587956A95B0 |
:10782000D1F7E81AF90A0A0B1B0BDA01C90123E0A8 |
:10783000880F991FAA1FBB1F2A95D1F7E80EF91EC2 |
:107840000A1F1B1FE0922405F092250500932605D0 |
:1078500010932705D801C7011CE0B695A795979509 |
:1078600087951A95D1F79093210580932005409133 |
:10787000E805442309F4BEC155279C01BA010E94C2 |
:10788000235CC901861B970B9093230580932205E7 |
:10789000260F371F3093640120936301E090AB04FF |
:1078A000F090AC040091AD041091AE04ED8EFE8E0C |
:1078B0000F8F18A3A0904F06B0905006009140067D |
:1078C000109141061EA30DA3FFC80396D2CB90953D |
:1078D00081959F4F0C945A3003960C94B126909545 |
:1078E00081959F4F0C94AD2603960C945E308827AB |
:1078F0009927881999090C94CD32695F7F4F0C94B0 |
:107900008432709561957F4F0C947B3281509E4FED |
:10791000AF4FBF4F0C946F32D094C194D108D39421 |
:107920000C94673281509E4FAF4FBF4F0C945B3227 |
:1079300084EF91E090934501809344010C94A63329 |
:107940004F960C941733B6010C9488334091200560 |
:107950005091210557FD1DC2559547955595479561 |
:1079600080911A0190911B01209100013327489FBB |
:10797000F001499FF00D589FF00D1124CF01B9017E |
:107980000E94235CCECE81E080936B0488EC8093D0 |
:1079900065014ECD8093FF040C9479258093FE04FD |
:1079A000C1CC87B5853F08F05DC18091DB03815074 |
:1079B00072C84DA15EA1CA01AA2797FDA095BA2F52 |
:1079C000BC01CD012A893B894C895D890E94E45B19 |
:1079D0002B013C010E94585C3093700420936F048B |
:1079E000109201050C94ED3280819181855B9F4F4F |
:1079F0000CF06EC18091FD048F5F893C08F41CC1BE |
:107A00002C3008F051C329988FB399279C0122701C |
:107A1000307081FDF9CF1FBA84E090E092BD81BD46 |
:107A20008FEF80BD0FB6F894FA9AF99A0FBE1092B4 |
:107A30006C041092FD0430933104209330040E94B2 |
:107A4000641E2091B9043091BA04C90137FD0EC4F7 |
:107A5000892F990F990B482FF999FECF1FBA84E00F |
:107A600090E092BD81BD40BD0FB6F894FA9AF99AA4 |
:107A70000FBEF999FECF1FBA85E090E092BD81BD9F |
:107A800020BD0FB6F894FA9AF99A0FBE2091B70468 |
:107A90003091B804C90137FDDCC3892F990F990BC8 |
:107AA000482FF999FECF1FBA86E090E092BD81BDC4 |
:107AB00040BD0FB6F894FA9AF99A0FBEF999FECF25 |
:107AC0001FBA87E090E092BD81BD20BD0FB6F8944B |
:107AD000FA9AF99A0FBE8091B1049091B204A091E4 |
:107AE000B304B091B404BC01CD010E94FD5ADC0185 |
:107AF000CB019C0197FDAAC3832F992787FD9A95F7 |
:107B0000282FF999FECF1FBA88E090E092BD81BD81 |
:107B100020BD0FB6F894FA9AF99A0FBE8091B1047D |
:107B20009091B204A091B304B091B404BC01CD0112 |
:107B30000E94FD5ADC01CB01282FF999FECF1FBA14 |
:107B400089E090E092BD81BD20BD0FB6F894FA9A0D |
:107B5000F99A0FBE0E941B1368E770E00E9446135B |
:107B60003091DB050C94E6288C0177CD6091AB0455 |
:107B70007091AC048091AD049091AE046D8F7E8FB6 |
:107B80008F8F98A3A0904F06B0905006809140062A |
:107B9000909141069EA38DA30C946435089421080E |
:107BA000310830924501209244010C94A633673984 |
:107BB00071050CF445C086E990E0909362018093D2 |
:107BC0006101B9CD10921E016EC881E0809301055C |
:107BD0001092E7041092E8041092E9041092EA046B |
:107BE00010927B0410927C0410927D0410927E040B |
:107BF0000C94EF2710922305109222058FEF93E04B |
:107C000090936401809363012091AB043091AC04A4 |
:107C10004091AD045091AE042D8F3E8F4F8F58A3ED |
:107C2000A0904F06B09050064091400650914106FA |
:107C30005EA34DA30C9464358093FD040C94E62858 |
:107C4000709362016093610176CD67E070E0E60EAB |
:107C5000F71E0C943C3370931F0560931E055A83E6 |
:107C6000498371CD81E0809329059ACB3B85309380 |
:107C700028053093290594CB609202057092030584 |
:107C8000809204059092050510920F0510920E0542 |
:107C900088EE282E83E0382E309245012092440150 |
:107CA0000C94262D20930605309307054093080574 |
:107CB0005093090510920F0510920E05E8EE2E2E36 |
:107CC000E3E03E2E30924501209244010C94792E3F |
:107CD0004093FD040C94E6282F3F310509F00CF485 |
:107CE00094CC2FEF30E091CCD09085062D2D33270A |
:107CF000220F331F220F331F205530402417350722 |
:107D00000CF0F9CCA901B901F6CC6F3F710509F06F |
:107D10000CF44DCC2FEF30E04ACC121613060CF4C5 |
:107D200014CC229FC001239F900D329F900D1124EF |
:107D300097FD19C395958795959587952091D903BA |
:107D40003091DA03281B390B14CC0E941B1345E633 |
:107D500069ED75E00E94A6128091E10580FF10C0D8 |
:107D60008091100190911101875B934038F48091CC |
:107D70001001909111018E5E924010F40E94C30A8E |
:107D8000109249050E94641E81E080934905579A2C |
:107D9000E1CE4D5F5F4FE0CD80912F0481FF5FC149 |
:107DA0002091610130916201C9010F964091560402 |
:107DB00050915704841795070CF0C3C18091280592 |
:107DC000882309F0BEC180912A0581FFCEC28D7F34 |
:107DD0006090520470905304809054049090550425 |
:107DE00060924E0470924F0480925004909251041D |
:107DF000816080932A05421B530B9A012F5030401B |
:107E000037FDCBC280911C0590911D05280F391FAD |
:107E100030931D0520931C0520911C0530911D05F4 |
:107E2000C90137FD80C2815092400CF485C1809118 |
:107E3000E6059927829FF001839FF00D929FF00D38 |
:107E40001124CF0160E075E00E94235CCB01AA27DA |
:107E500097FDA095BA2F20914E0430914F04409188 |
:107E6000500450915104820F931FA41FB51F80939B |
:107E70004E0490934F04A0935004B0935104109279 |
:107E80001D0510921C05C1FE06C08BE490E0909386 |
:107E90004C0580934B058091EA05882309F04CC17D |
:107EA0000091200510912105A80117FD7AC2559572 |
:107EB00047955595479580911A0190911B01209106 |
:107EC00000013327489F7001499FF00C589FF00C28 |
:107ED0001124C701B9010E94235C663471050CF0BE |
:107EE0004DC226E430E0309362012093610180911D |
:107EF000C5049091C604892B09F4E5CAD401C301D5 |
:107F000060924E0470924F048092500490925104FB |
:107F1000E2CA109213050C94792E81E08093280513 |
:107F20003FCAAFE0803A9A0708F0D2C0D801C70133 |
:107F3000FAE0B695A79597958795FA95D1F7E81A3F |
:107F4000F90A0A0B1B0BDA01C901880F991FAA1F36 |
:107F5000BB1F880F991FAA1FBB1F70CC1091DA0599 |
:107F60000C944928299A0C941D28209306053093D7 |
:107F700007054093080550930905109212050C94CB |
:107F8000072E20920205309203054092040550927C |
:107F90000505109211050C94262D109210050C94D5 |
:107FA000B52CB095A095909581959F4FAF4FBF4F41 |
:107FB0000C946D2D909581959F4FFACB81509F4FDA |
:107FC000AF4FBF4F0C942C2B61507F4F8F4F9F4F63 |
:107FD0000C94FC2A61507F4F8F4F9F4F0C94E62AE0 |
:107FE00081509F4FAF4FBF4F0C94BE2AB095A095C4 |
:107FF000909581959F4FAF4FBF4F0C94292C815086 |
:108000009F4FAF4FBF4F0C94392B81509F4FAF4FB5 |
:10801000BF4F0C94A42A01960C94762B01960C94D5 |
:108020006E2B2D5F3F4F51CB615E7F4F8F4F9F4F28 |
:10803000DDCA6FE770E080E090E0660E771E881E74 |
:10804000991EC1CA61587F4F8F4F9F4FA1CA295FA8 |
:108050003F4F6FCA0F965DCA2D5F3F4F80CA609039 |
:108060005204709053048090540490905504D401AD |
:10807000C30180599140A040B04080934E0490933A |
:108080004F04A0935004B09351042091EA05222399 |
:1080900009F4B3C03327309362012093610100914A |
:1080A00020051091210517CA299AAECC81E0809352 |
:1080B00013050C94792E2093060530930705409301 |
:1080C00008055093090581E0809312050C94072E52 |
:1080D00080549F4108F0A8C0D801C7017BE0B69545 |
:1080E000A795979587957A95D1F7E81AF90A0A0B1B |
:1080F0001B0BDA01C901820F931FA41FB51F9ECB72 |
:108100002092020530920305409204055092050525 |
:1081100081E0809311050C94262D81E08093100559 |
:108120000C94B52C6150704E8F4F9F4F57CBF095EC |
:10813000E195FF4F0C94C82800912005109121056E |
:10814000D6CEC9010F974817590774F580912905B4 |
:10815000882351F580912A0580FF16C18E7F60909B |
:10816000520470905304809054049090550460928F |
:108170004E0470924F048092500490925104826099 |
:1081800080932A05421B530B9A01215F3F4F37FD15 |
:108190000BC180911C0590911D05821B930B909340 |
:1081A0001D0580931C0538CE20912A05822F992722 |
:1081B00083709070892B09F45CC02C7F20932A0572 |
:1081C00010921D0510921C0560905204709053048B |
:1081D000809054049090550460924E0470924F0425 |
:1081E0008092500490925104C1FE16CE84EF91E02B |
:1081F00090934C0580934B050FCE28E730E04BCF92 |
:108200002093060530930705409308055093090510 |
:108210000C94612E209306053093070540930805C2 |
:10822000509309050C94EF2DD801C7016CE0B69569 |
:10823000A795979587956A95D1F7E81AF90A0A0BD9 |
:108240001B0BE20EF31E041F151FFCCA21503F4FEB |
:1082500053CC81509F4F21CCF095E195FF4F0C946A |
:108260004528F095E195FF4F0C945F2B81509F4F6F |
:10827000EFCB60905204709053048090540490901F |
:108280005504CACD81509E4FAF4FBF4F0C94BD2DAA |
:10829000B095A095909581959F4FAF4FBF4F0C948F |
:1082A000B92D81509E4FAF4FBF4F0C94762CB09597 |
:1082B000A095909581959F4FAF4FBF4F0C94722C16 |
:1082C000B095A095909581959F4FAF4FBF4F0C945F |
:1082D000252E81509F4FAF4FBF4F0C946D2E295FBD |
:1082E0003F4F4F4F5F4F0C94442E21503E4F4F4F06 |
:1082F0005F4F0C942B2E295F3F4F4F4F5F4F0C94D5 |
:10830000D22D81509F4FAF4FBF4F0C94FB2D81500A |
:108310009F4FAF4FBF4F0C94AD2C295F3F4F4F4F36 |
:108320005F4F0C948B2C88279927821B930B7BCD56 |
:1083300081509F4FAF4FBF4F0C941A2D295F3F4F75 |
:108340004F4F5F4F0C94F22C21503E4F4F4F5F4FD9 |
:108350000C94D92CB095A095909581959F4FAF4FD7 |
:10836000BF4F0C94D32C0396E5CC609052047090D0 |
:10837000530480905404909055043ACD67397105A8 |
:10838000BCF026E930E0AFCD609052047090530409 |
:108390008090540490905504F2CE309521953F4F33 |
:1083A00031CD4D5F5F4F83CD309521953F4FF1CE5D |
:1083B00070936201609361019ACD80915106809320 |
:1083C00083068091D50580938206E2E1C85D0C9416 |
:1083D0008F5C87B18C6087B94298439810922C05C6 |
:1083E00080E88093670110922B05809366010895C1 |
:1083F0008091310581508F3F19F0809331050895A8 |
:1084000084E08093310580912F0485FF16C0409150 |
:108410001C064093320560911D0660933305509110 |
:108420002F06252F332724FF13C080916C04882347 |
:1084300079F425FF17C0429A33C080915F048823E6 |
:1084400034F7409118064093320560911A06E5CF43 |
:10845000909119069B3FB8F080916B068D3D98F086 |
:1084600047FDE9CF4298252F332724FD1DC0909169 |
:108470001B069B3F08F180918406873EE8F067FD6C |
:1084800019C0439808959B3F20F080916B068A3075 |
:1084900008F180912C0581508F3F21F180932C05AC |
:1084A000252F332724FFE3CF80916C048823F9F62E |
:1084B00026FFE7CF439A08959B3F20F080918406E2 |
:1084C0008A3060F080912B0581508F3FE1F08093DE |
:1084D0002B05089547FDC6CF429AE2CF67FDD1CF65 |
:1084E000439A089580916B06815080932C0580916A |
:1084F00067018130C9F0869580936701842309F470 |
:10850000B1CF429ACDCF80918406815080932B05C4 |
:1085100080916601813051F08695809366018623B3 |
:1085200009F4AFCF439A089580E8E6CF80E8F5CF0D |
:1085300090E2E9E6F1E08FE49193815087FFFCCF70 |
:1085400008951F938091350520916801281710F434 |
:10855000209335059091340590FF08C08091350532 |
:10856000882309F44AC081508093350591FF08C0E3 |
:1085700080913505821709F446C08F5F80933505D9 |
:10858000892F992780FF02C081FD3AC00E9498423E |
:10859000909135059A3008F581E180933605892F51 |
:1085A00099279F938F9381EF93E09F938F9381E01F |
:1085B0008F930E94CB480F900F900F900F900F90C9 |
:1085C00020913505822F9927AA27BB27FC010F97F9 |
:1085D00070F4E65BFF4F0C94AA5C80E18093360553 |
:1085E000892F99279F938F9386EF93E0DECF2150B9 |
:1085F000209368011092350561C520933505B6CFEB |
:1086000010923505C3CF10923505BACF84E180931F |
:10861000360580911A0190911B019F938F9387E7F4 |
:1086200095E09F938F9311E01F930E94CB4888E2BF |
:10863000809336050F900F900F900F900F908091C0 |
:108640005F0499279F938F9386E895E09F938F937C |
:108650001F930E94CB480F900F900F900F900F9098 |
:108660002DC5109236058BEF93E09F938F9311E009 |
:108670001F930E94CB4884E1809336050F900F90A2 |
:108680000F9087E690E09F938F938CE490E09F9308 |
:108690008F931F921F92809102016AE00E94035CF7 |
:1086A000892F99279F938F93809102010E94035CE9 |
:1086B00099279F938F938BE094E09F938F931F93C1 |
:1086C0000E94CB4888E2809336052DB73EB7235FE2 |
:1086D0003F4F2DBF86E795E09F938F930E941B131A |
:1086E00099279F938F9380E294E09F938F931F939A |
:1086F0000E94CB4880914601909147012DB73EB72B |
:10870000295F3F4F2DBF069708F4AAC490913B05FF |
:10871000992309F49FC48CE380933605892F992708 |
:108720009F938F938BE394E091CF1092360589E766 |
:1087300094E09F938F9311E01F930E94CB4884E1B4 |
:10874000809336050F900F900F908091E105992747 |
:108750009F938F9386E894E09F938F931F930E943B |
:10876000CB4888E2809336050F900F900F900F90C2 |
:108770000F908AE894E09F938F931F930E94CB48B9 |
:108780000F900F900F90F999FECF86E391E092BD84 |
:1087900081BDF89A90B58CE380933605892F99278F |
:1087A0009F938F9384E994E09F938F9381E08F93BD |
:1087B00050CF1092360582E694E09F938F9311E09C |
:1087C0001F930E94CB4884E1809336050F900F9051 |
:1087D0000F9080910F0199279F938F938DE694E0DE |
:1087E0009F938F931F930E94CB4888E28093360516 |
:1087F0000F900F900F900F900F9080910E0199277E |
:108800009F938F9381E794E09F938F931F930E9490 |
:10881000CB488CE3809336050F900F900F900F900C |
:108820000F9080910D0199279F938F9385E794E096 |
:108830000DCF109236058DE395E09F938F9311E055 |
:108840001F930E94CB4884E1809336050F900F90D0 |
:108850000F908091B9049091BA049F938F93809167 |
:10886000E3039091E4039F938F938AE495E09F93B1 |
:108870008F931F930E94CB4888E2809336052DB7D3 |
:108880003EB7295F3F4F2DBF8091B7049091B80448 |
:108890009F938F938091E5039091E6039F938F932D |
:1088A00089E595E09F938F931F930E94CB488CE3BB |
:1088B000809336058DB79EB707968DBF8091B10422 |
:1088C0009091B204A091B304B091B404BC01CD0165 |
:1088D0000E94FD5ADC01CB019F938F9380915C062F |
:1088E00090915D069F938F9388E695E09F938F9379 |
:1088F0001F930E94CB482DB73EB7295F3F4F2DBF36 |
:10890000DDC31092360582E095E09F938F9311E0CE |
:108910001F930E94CB4884E1809336050F900F90FF |
:108920000F902091C3043091C404C90137FDBFC327 |
:10893000959587959595879595958795959587951F |
:108940009F938F9337FDB0C3359527953595279520 |
:10895000359527958091EB039091EC03821B930B47 |
:108960009F938F9380E195E09F938F931F930E9435 |
:10897000CB4888E2809336058DB79EB707968DBFAA |
:108980002091C1043091C204C90137FD95C395956A |
:1089900087959595879595958795959587959F93B7 |
:1089A0008F9337FD86C33595279535952795359552 |
:1089B00027958091E9039091EA03821B930B9F9383 |
:1089C0008F938FE195E09F938F931F930E94CB48E5 |
:1089D0008CE3809336052DB73EB7295F3F4F2DBFFF |
:1089E0002091BF043091C004C90137FD5BC3959548 |
:1089F00087959F938F938091E7039091E803281BBD |
:108A0000390B3F932F938EE295E09F938F931F93A3 |
:108A10000E94CB488DB79EB707968DBF4FC310926B |
:108A2000360588EC94E09F938F9311E01F930E948A |
:108A3000CB4884E1809336050F900F900F90809182 |
:108A4000C3049091C4049F938F9385ED94E09F930A |
:108A50008F931F930E94CB4888E2809336050F9036 |
:108A60000F900F900F900F908091C1049091C204CD |
:108A70009F938F9384EE94E09F938F931F930E9414 |
:108A8000CB488CE3809336050F900F900F900F909A |
:108A90000F908091BF049091C0049F938F9383EFB8 |
:108AA00094E0D4CD109236058091C1069091C20613 |
:108AB0009F938F938091BF069091C0069F938F9351 |
:108AC00088E994E09F938F9311E01F930E94CB4815 |
:108AD00084E1809336058DB79EB707968DBF809150 |
:108AE000C5069091C6069F938F938091C30690917F |
:108AF000C4069F938F9388EA94E09F938F931F936C |
:108B00000E94CB4888E2809336052DB73EB7295F97 |
:108B10003F4F2DBF8091C7069091C8069F938F93BA |
:108B200088EB94E093CD109236058CE097E09F930C |
:108B30008F9311E01F930E94CB4884E18093360508 |
:108B40000F900F900F908091D2039091D3039F9339 |
:108B50008F938AE197E09F938F931F930E94CB4856 |
:108B600088E2809336050F900F900F900F900F9032 |
:108B70008091D0039091D1039F938F9387E297E0E8 |
:108B80009F938F931F930E94CB4889E4809336056F |
:108B90000F900F900F900F900F9084E397E09F93AA |
:108BA0008F931F930E94CB48809134050F900F90B4 |
:108BB0000F9083FF83C21092D3031092D203F999CE |
:108BC000FECF1FBA8EE090E092BD81BD10BC0FB603 |
:108BD000F894FA9AF99A0FBE2091D203F999FECF30 |
:108BE0001FBA8FE090E092BD81BD20BD0FB6F89412 |
:108BF000FA9AF99A0FBE62C2109236058CEB96E093 |
:108C00009F938F9311E01F930E94CB4884E1809340 |
:108C100036050F900F900F908091BD0699278D9685 |
:108C20009F938F938091BC0699278D969F938F93E6 |
:108C30008091BB0699278D969F938F938091BA065A |
:108C400099278D969F938F938BEC96E09F938F93AC |
:108C50001F930E94CB4888E2809336058DB79EB75C |
:108C60000B968DBF8091C10699278D969F938F9308 |
:108C70008091C00699278D969F938F938091BF0610 |
:108C800099278D969F938F938091BE0699278D96F5 |
:108C90009F938F938FED96E09F938F931F930E94E6 |
:108CA000CB488CE3809336052DB73EB7255F3F4F09 |
:108CB0002DBF8091C20699278D969F938F9383EF46 |
:108CC00096E09F938F931F930E94CB480F900F9035 |
:108CD0000F900F900F908091C306882309F0D4C1A4 |
:108CE0008091C406882309F0C1C18091C5068823FC |
:108CF00009F4E4C188E48093360589E097E09F9306 |
:108D00008F931F930E94CB480F900F900F90D6C166 |
:108D10008091E10580FF8AC110923605809152044E |
:108D200090915304A0915404B0915504BF93AF9314 |
:108D30009F938F938CE196E09F938F9311E01F9305 |
:108D40000E94CB4884E1809336052DB73EB7295F5A |
:108D50003F4F2DBF80914E0490914F04A09150043D |
:108D6000B0915104BF93AF939F938F938BE296E0A2 |
:108D70009F938F931F930E94CB4888E28093360580 |
:108D80008DB79EB707968DBF80911001909111010C |
:108D90009F938F938AE396E09F938F931F930E94F4 |
:108DA000CB488CE3809336050F900F900F900F9077 |
:108DB0000F908091CE0599279F938F9389E496E039 |
:108DC00045CC1092360588EF95E09F938F9311E084 |
:108DD0001F930E94CB4884E1809336050F900F903B |
:108DE0000F9080912C0199279F938F9380E096E0BC |
:108DF0009F938F931F930E94CB488CE380933605FB |
:108E00000F900F900F900F900F908091030699276D |
:108E10009F938F938091020699279F938F938EE063 |
:108E200096E0F3CD109236058DE696E09F938F93F2 |
:108E300011E01F930E94CB4884E1809336050F9088 |
:108E40000F900F908091AB0699279F938F938091FD |
:108E5000AA0699279F938F938091A90699279F939C |
:108E60008F938091A80699279F938F938DE796E023 |
:108E70009F938F931F930E94CB4888E2809336057F |
:108E80002DB73EB7255F3F4F2DBF8091AF06992785 |
:108E90009F938F938091AE0699279F938F93809194 |
:108EA000AD0699279F938F938091AC0699279F9346 |
:108EB0008F9382E996E09F938F931F930E94CB48F4 |
:108EC0008CE3809336058DB79EB70B968DBF80914E |
:108ED000B30699279F938F938091B20699279F930A |
:108EE0008F938091B10699279F938F938091B006BD |
:108EF00099279F938F9387EA96E09F938F931F9371 |
:108F00000E94CB482DB73EB7255F3F4F2DBFD6C03F |
:108F10001092360580916604909167049F938F9319 |
:108F200088EC95E09F938F9311E01F930E94CB48AC |
:108F300084E1809336050F900F900F900F900F9063 |
:108F400080916404909165049F938F9384ED95E0E4 |
:108F50009F938F931F930E94CB4888E2809336059E |
:108F60000F900F900F900F900F908091620490914E |
:108F700063049F938F9380EE95E09F938F931F934D |
:108F80000E94CB488CE3809336050F900F900F9092 |
:108F90000F900F9080916004909161049F938F9344 |
:108FA0008CEE95E053CB1092360585E995E09F93C2 |
:108FB0008F9311E01F930E94CB4884E18093360584 |
:108FC0000F900F900F9080916D0490916E049F937D |
:108FD0008F9380EA95E09F938F931F930E94CB48D5 |
:108FE00088E2809336050F900F900F900F900F90AE |
:108FF00080917104909172049F938F938EEA95E013 |
:109000009F938F931F930E94CB488CE380933605E8 |
:109010000F900F900F900F900F9080916F04909190 |
:1090200070049F938F9389EB95E010CB84E180933C |
:10903000360588E596E09F938F9311E01F930E9479 |
:10904000CB4888E2809336050F900F900F908FE504 |
:1090500096E055CE8CE38093360580E594E04FCEC4 |
:109060008CE3809336058EE294E049CE84E48093CD |
:10907000360586E097E09F938F931F930E94CB481D |
:109080000F900F900F9031CE80E48093360583E0EF |
:1090900097E09F938F931F930E94CB480F900F9060 |
:1090A0000F901ECE0196A3CC295F3F4F4DCC0F965B |
:1090B0003FCC295F3F4F77CC0F9669CC1092340597 |
:1090C0001F910895982F80919706813031F0892F54 |
:1090D0000E944F57282F33270CC080913605E82F68 |
:1090E000FF27E759FE4F90838F5F8093360521E07D |
:1090F00030E0C90108950F931F93CF93DF938C0144 |
:10910000EB01672B71F0F80181918F010E94624899 |
:10911000219739F0F80181918F010E9462482197CF |
:1091200091F7DF91CF911F910F9108950F931F93A6 |
:10913000CF93DF938C01EB01672B81F0F8010F5F78 |
:109140001F4F84910E946248219741F0F8010F5F00 |
:109150001F4F84910E946248219781F7DF91CF9140 |
:109160001F910F910895CF93C82F181634F480E201 |
:109170000E946248C1501C16D4F3CF910895CF933A |
:10918000C82F181634F480E30E946248C1501C16A0 |
:10919000D4F3CF910895A0E3B0E0E1EDF8E40C94AE |
:1091A000735C26968FAD26972896EEADFFAD289777 |
:1091B0008824992454018093970648E4C42ED12C26 |
:1091C000CC0EDD1E7F01C701F7011491112331F090 |
:1091D000153221F00894E11CF11CF6CFB701681B91 |
:1091E000790B09F095C0112309F43DC20894E11CE4 |
:1091F000F11C1FA63FA4232C0FEF39A6F7010894FA |
:10920000E11CF11C14911537C9F1812F8062883758 |
:10921000A9F1103209F440C0133209F48DC01A329A |
:1092200009F479C01D3209F476C01B32C9F11E322F |
:10923000C9F1103309F48AC0812F8153893008F0B5 |
:109240007EC060E070E0CB01880F991F880F991FE6 |
:10925000880F991F860F971F680F791F610F711D67 |
:1092600060537040F7010894E11CF11C1491812FA8 |
:1092700080538A3040F3262E153739F630FE3DC034 |
:10928000F60184E090E0C80ED91E80809180A28013 |
:10929000B380103209F0C0CF89A5882309F0AECF82 |
:1092A00019A7ACCFF7010894E11CF11C14911A32F4 |
:1092B00009F451C060E070E014C0CB01880F991F21 |
:1092C000880F991F880F991F860F971F680F791FA6 |
:1092D000610F711D60537040F7010894E11CF11C8F |
:1092E0001491812F80538A3040F3EFEF6F3F7E0758 |
:1092F00014F46FEF7FEF062F86CFF60182E090E047 |
:10930000C80ED91E808191814C01AA24BB2481CF33 |
:109310000E94964868CF1A3251F4F60182E090E03C |
:10932000C80ED91E208022200CF068CF219490E135 |
:10933000392AEFED3E2262CF98E0392A5FCF183606 |
:10934000C9F01C36D1F481E0382A58CF34FC56CF0E |
:10935000F0E23F2A53CFF60182E090E0C80ED91E1A |
:10936000608171819FEF6F3F790714F46FEF7FEF9A |
:10937000062F44CF24E0322A41CF133609F44DC1E1 |
:10938000143409F41FC1143609F41CC1193609F448 |
:1093900019C11F3409F40FC11F3609F40CC110376D |
:1093A00009F4F9C0133709F4B2C0153509F4ECC05B |
:1093B000153709F4E9C0183509F444C0183709F421 |
:1093C00041C0112309F44FC1CE0101969DA78CA77E |
:1093D000198381E0482E19A6632C7724042D5FA4FD |
:1093E000541857FC2DC029A5222331F10F5F050D1C |
:1093F000C30180739070892B09F42FC1222309F0D7 |
:1094000027C166FC1BC1C30180739070809709F46B |
:1094100010C1852D0E94BF48842D992787FD909506 |
:10942000BC018CA59DA50E947B4864FECCCE822DFC |
:10943000801B0E94B348C7CE66FED9CF0E5FD7CF40 |
:109440005524D1CFE0E1EEA733FE07C0811491048B |
:10945000A104B10411F0F0E43F2A19A60FA707FDFB |
:1094600002C02FED3222CE0189969DA78CA78114D0 |
:109470009104A104B10419F49FA5992361F1EEA50B |
:109480004E2E55246624772418AA84149504A60425 |
:10949000B70410F0F1E0F8ABC501B401A3019201EB |
:1094A0000E94365CDC01CB01082F8A30F0F4005DAD |
:1094B000ECA5FDA50293FDA7ECA7C501B401A3018E |
:1094C00092010E94365C49015A01F8A9FF23E1F696 |
:1094D0002EA5283079F0632C7724CE010196482EF2 |
:1094E000FCA54F1A28E2420E79CF095A183501F728 |
:1094F0000F7DDECF632C772463FEEFCF003369F35B |
:1095000080E3ECA5FDA58293FDA7ECA7E6CFF601CD |
:1095100082E090E0C80ED91E0190F081E02DFDA7F9 |
:10952000ECA7EF2B81F4FE013196FDA7ECA788E2B2 |
:1095300089838EE6818385E78B838CE68C838D839C |
:1095400089E28E831F8207FD15C0802F992787FD32 |
:109550009095AC0160E070E08CA59DA50E94405AFA |
:10956000009731F0482EFCA54F1A04150CF033CFAC |
:10957000402E31CFECA5FDA501900020E9F73197F1 |
:109580004E2E2CA5421A27CF153511F481E0382A2A |
:109590009AE09EA762CFF60182E090E0C80ED91E45 |
:1095A000808191814C01AA24BB2490E19EA7E0E434 |
:1095B0003E2A18E752CF1F3411F4E1E03E2AF8E0CA |
:1095C000FEA74BCF143411F491E0392A30FE18C0B5 |
:1095D000F60184E090E0C80ED91E80809180A280C0 |
:1095E000B380B7FE0AC0B094A09490948094811C7C |
:1095F000911CA11CB11C8DE289A79AE09EA72ECFD9 |
:10960000F60182E090E0C80ED91E808191814C0164 |
:10961000AA2497FCA094BA2CE4CFFE013196FDA7B2 |
:10962000ECA7F60182E090E0C80ED91E8081898304 |
:10963000D0CE822D801B0E94BF48EBCE80E38AA74C |
:109640001BA762E070E0CE018A960E947B48DBCEC9 |
:1096500061E070E0CE018996F8CF822D801B0E94D8 |
:10966000B34829A5CBCEE2E1C05D0C948F5C10928B |
:10967000B9008AE28093B800089585EA8093BC001F |
:10968000089584E98093BC0008951092B9008093F6 |
:10969000BB0085E88093BC0008950E94414B109266 |
:1096A0003E058091BB0010923D0580E88093BC0090 |
:1096B0001092BD001092BA001092BB001092B90037 |
:1096C0001092B8000E94374B0E943D4B80E00E94F0 |
:1096D000454B08958093BB0085E88093BC000895B6 |
:1096E00085EC8093BC00089585E88093BC000895C4 |
:1096F0001F920F920FB60F9211242F933F934F9307 |
:109700005F936F937F938F939F93AF93BF93EF93E9 |
:10971000FF9380913E05282F3327442755278F5FDD |
:1097200080933E05F90127313105A8F4E75AFF4F30 |
:109730000C94AA5C80913C05E82FFF27E856F94F6E |
:109740009091BB0090838F5F823008F49FC010928D |
:109750003C050E94414B10923E05F1C080E80E94FA |
:10976000454BEDC088E90E94454BE9C00E94414B42 |
:109770008AE090E090934701809346010E943D4B20 |
:10978000DEC084E10E94454BDAC082E10E94454B75 |
:10979000D6C080910F010E94454BD1C080E10E944C |
:1097A000454BCDC080910E010E94454BC8C08091B1 |
:1097B0000D010E94454BC3C080913D05E82FFF2756 |
:1097C000EE57F94F8F5F80933D0580810E94454B96 |
:1097D000B6C090913D05292FE92FFF27EE0FFF1FFF |
:1097E000EE0FFF1FEB58FA4F858518160CF056C088 |
:1097F000923009F469C0992309F487C0913009F0C7 |
:109800009EC086E50E94454B9AC080913C05E82F9A |
:10981000FF27E655F94F8091BB0080830E94744B6F |
:109820008EC08091B900803409F475C080913C05E8 |
:10983000E82FFF27E654F94F10828F5F823058F1EE |
:1098400010923C050E94414B10923E0510923B0540 |
:1098500010923F0574C08091B900803309F443C071 |
:109860000E94414B8AE090E090934701809346012B |
:1098700010923E050E943D4B62C00E94414B8AE01F |
:1098800090E0909347018093460165CF80933C051B |
:109890000E94414B60CF80933C05D4CF923008F0BA |
:1098A000A7CF922F9F5FE92FFF27EE0FFF1FEE0F2D |
:1098B000FF1FEB58FA4F858518161CF0292F9230A0 |
:1098C00080F390933D0594CF10923D0583E0809303 |
:1098D0003E0580913C05882361F1813081F587E563 |
:1098E0000E94454B2CC080913F058823F9F490914C |
:1098F0003D0590933F05E92FFF27E955F94F8081FA |
:109900008F5F09F48FEF8083ABCF82E50E94454BD8 |
:1099100090913D0573CF80913C05E82FFF27E654D9 |
:10992000F94F8C5F80830E94704B90CF90913D05E2 |
:10993000E2CF83E50E94454B80913C05CECF8091DC |
:10994000BC0080688093BC00FF91EF91BF91AF9104 |
:109950009F918F917F916F915F914F913F912F9147 |
:109960000F900FBE0F901F90189583EC809381008D |
:1099700080916F00806280936F001092C0041092FB |
:10998000BF041092C2041092C1041092C404109239 |
:10999000C30408951F920F920FB60F921124EF92F5 |
:1099A000FF920F931F932F933F934F935F936F9368 |
:1099B0007F938F939F93AF93BF93CF93DF93EF9357 |
:1099C000FF9320918600309187008091410590910E |
:1099D0004205281B390B8091860090918700909357 |
:1099E000420580934105C9018D549440835F9A419B |
:1099F00098F4809143058093BC0680914305909133 |
:109A00004405049714F01092C301C1E0D0E0D09354 |
:109A10004405C0934305A3C0C0914305D0914405BC |
:109A2000CA30D1050CF09BC0C9018B5F9040845BAC |
:109A30009140A8F0FE013196F0934405E093430570 |
:109A4000E530F10509F46DC05D98E630F10509F4E3 |
:109A500066C05C98379709F460C05B9880C0225D4F |
:109A60003140FE01EC0FFD1FE354F94F80819181DD |
:109A7000F901E81BF90BCF01F7FD6DC0069754F40F |
:109A800080915F04883C08F05FC080915F04865F2E |
:109A900080935F04FE01EC0FFD1FE354F94F8081BA |
:109AA0009181AC01440F551F480F591F420F531F9E |
:109AB00057FD4EC07A01F594E794F594E794C901F7 |
:109AC00001968E159F05BCF50894E108F108809178 |
:109AD0005F04833C40F18E010C0F1D1FF801E3541D |
:109AE000F94F808191819701281B390BC90163E0EF |
:109AF00070E00E94235CCB01880F991F860F971F8F |
:109B00000D52194FF80191838083FE01EC0FFD1F68 |
:109B1000E354F94FF182E0828DCF5B9A20C05C9ACA |
:109B200099CF5D9A92CFFE01EC0FFD1FED52F94FD8 |
:109B300011821082EACF21503040E216F3063CF643 |
:109B40000894E11CF11CC3CF88EC80935F04A2CF82 |
:109B50004D5F5F4FAFCF909581959F4F8FCFFF9116 |
:109B6000EF91DF91CF91BF91AF919F918F917F91B5 |
:109B70006F915F914F913F912F911F910F91FF90A6 |
:109B8000EF900F900FBE0F901F901895CF93FC0190 |
:109B900097FD21C0C1E028E631E0CF01B9010E9464 |
:109BA000235CFC018B35910554F08B5590408A3530 |
:109BB000910538F484EB90E08E1B9F0BFC0141E093 |
:109BC00013C0CF01855B90408A35910548F4E45B72 |
:109BD000F0404FEF09C0CFEFF095E195FF4FDBCF9D |
:109BE0002E1B3F0BF9014FEFEE0FFF1FEA56F74F09 |
:109BF000259134918C2F992787FD9095829FB001F4 |
:109C0000839F700D929F700D1124842F992787FDDB |
:109C10009095689FA001699F500D789F500D112469 |
:109C2000CA01CF9108952AE530E0281B390BC901FC |
:109C30000E94C64D08951F93CF93DF93EB016115EA |
:109C4000710519F4009709F494C097FD3EC011E026 |
:109C5000209729F48AE51802B00111248AC0AA27A6 |
:109C600097FDA095BA2F26E0880F991FAA1FBB1F4A |
:109C70002A95D1F79E01442737FD4095542FBC010A |
:109C8000CD010E94585CF90137FD2CC081E0EA3516 |
:109C9000F807ACF08CE1E73AF807CCF02AE530E0C1 |
:109CA0001C161D061CF5812F992787FD9095829F14 |
:109CB000B001839F700D929F700D11245AC0E45C17 |
:109CC000F84F8491282F3327EBCF1FEFC1CF89E0C6 |
:109CD000ED38F8078CF485E0EA3BF80784F028E5D6 |
:109CE00030E0DECFF095E195FF4FD0CFD7FD0EC02D |
:109CF000B901645B70403DC029E530E0D1CF84E01C |
:109D0000E731F80754F027E530E0CACF111684F7A1 |
:109D100064EB70E0621B730B2CC083E0EE32F8073B |
:109D20001CF026E530E0BCCF82E0E939F8071CF0F2 |
:109D300025E530E0B5CF82E0E233F8071CF024E5FA |
:109D400030E0AECF81E0E73EF8071CF023E530E0DD |
:109D5000A7CF81E0ED3AF8071CF022E530E0A0CF74 |
:109D6000EF57F1401CF021E530E09ACF20E530E0DC |
:109D700097CFCB01DF91CF911F910895EF92FF9282 |
:109D80000F931F93CF93DF937B018C0120E030E092 |
:109D900040E050E0FA01E9016FE00BC0C21BD30BB9 |
:109DA000E40BF50B2F5F3F4F4F4F5F4F615067FD47 |
:109DB00031C0220F331F441F551FCC0FDD1FEE1F74 |
:109DC000FF1FCC0FDD1FEE1FFF1FD801C7017EE173 |
:109DD000B695A795979587957A95D1F7C80FD91F0E |
:109DE000EA1FFB1FEE0CFF1C001F111FEE0CFF1CD7 |
:109DF000001F111F2F5F3F4F4F4F5F4FC217D307F9 |
:109E0000E407F50758F6215030404040504061507B |
:109E100067FFCFCF5695479537952795CA01B9016A |
:109E2000E6E0CDB7DEB70C949B5C209150053091F5 |
:109E30005105280F391FC901019608958AE090E065 |
:109E40000E94154F909359058093580582E085BD77 |
:109E500083EA84BD17BC88E788BD86E086BD809113 |
:109E60006E00816080936E000895209150053091BE |
:109E70005105821B930B892F9927869580749070CA |
:109E80000895CF93DF930E94154FEC01CE010E94FD |
:109E9000354F8823D9F3DF91CF9108951F93CF9346 |
:109EA000DF930E94154FEC011FEC08C080910C015C |
:109EB000882321F090930C0110937A00CE010E9428 |
:109EC000354F982F882391F3DF91CF911F910895FB |
:109ED0001F920F920FB60F9211242F933F935F930F |
:109EE0006F937F938F939F93AF93BF93EF93FF9362 |
:109EF00080914A05882329F080914A0581508093FA |
:109F00004A058091520581508F3FE1F180935205BF |
:109F100080914B0590914C05892B59F180914B050F |
:109F200090914C05019790934C0580934B0580913F |
:109F30004B0590914C052091C4013091C5018223BD |
:109F40009323892BE9F447988091E10583FF80C032 |
:109F500086B19927FC01E071F07084FF2BC08091DD |
:109F60004D0590914E05019690934E0580934D05B9 |
:109F70006FC08FEF9FEF9093C5018093C401E3CF33 |
:109F8000479AE2CF89E0809352058091C6018F5FA6 |
:109F900081708093C601882319F481E080934F0576 |
:109FA00080915005909151050196909351058093B1 |
:109FB0005005AECF80914D0590914E05892B41F112 |
:109FC00080914D0590914E058A56914008F58091FB |
:109FD0004D0590914E0569E270E00E940F5C809102 |
:109FE0004D0590914E05860F971F90934E058093D7 |
:109FF0004D0580914D0590914E050B9720F1809174 |
:10A000004D0590914E050A979093720480937104C8 |
:10A01000809171049091720420916F0430917004CA |
:10A02000821B930B845E9D4F68E671E00E94235C67 |
:10A03000845B904090936E0480936D0410924E0563 |
:10A0400010924D0505C0F0937204E0937104E0CFC7 |
:10A05000FF91EF91BF91AF919F918F917F916F9100 |
:10A060005F913F912F910F900FBE0F901F90189509 |
:10A070009FB7F8945F983E9A469A8091B0008F708F |
:10A080008093B0008091B00083608093B000809195 |
:10A09000B1008B738093B1008091B1008B6080938D |
:10A0A000B1001092B2008FEF8093B3008091B000A6 |
:10A0B00080688093B000809170008A7F80937000E8 |
:10A0C000809170008260809370009FBF08951F92FE |
:10A0D0000F920FB60F9211242F933F934F935F93DC |
:10A0E0006F937F938F939F93AF93BF93EF93FF9360 |
:10A0F000809153058823D1F58091B00086FD53C02F |
:10A100008091B00080648093B00080910806282F71 |
:10A1100033278DED96E0289FA001299F500D389F91 |
:10A12000500D1124CA012091560530915705821B0C |
:10A13000930B90935505809354059C0181E0809387 |
:10A14000530551E02F373507C8F42F3F310501F192 |
:10A15000F8F0A9014F5F50404F37510508F0D1C0CA |
:10A1600080E88093B300205830400DC02091540502 |
:10A170003091550551E02F37350738F38FEF809335 |
:10A18000B3002F5F3040309355052093540511C123 |
:10A19000809154058093B300109255051092540598 |
:10A1A0001092530506C18091B0008F7B8093B00060 |
:10A1B00089EA93E090935505809354058091C701F7 |
:10A1C0009091C8019C01220F331F280F391F8091E5 |
:10A1D0002C019927880F991F880F991F280F391F65 |
:10A1E00037FD97C0C901959587959595879590936B |
:10A1F000C8018093C70190934805809347058091DB |
:10A20000300680FF89C080910106682F7727882754 |
:10A2100099272091AB043091AC044091AD0450914A |
:10A22000AE0457FDB2C0A7E05595479537952795E1 |
:10A23000AA95D1F70E94E45B9B01AC0197FDB4C0E5 |
:10A24000F6E05595479537952795FA95D1F7809182 |
:10A25000470590914805820F931F9093480580937E |
:10A26000470580910206282F3327220F331F220F24 |
:10A27000331F8091470590914805821793077CF022 |
:10A2800080910306282F3327220F331F220F331FFD |
:10A2900080914705909148052817390724F4309399 |
:10A2A0004805209347052091470530914805809146 |
:10A2B000540590915505280F391F20503240809148 |
:10A2C00047059091480597FD5EC0959587959595B2 |
:10A2D0008795909348058093470545E02D3D3407C9 |
:10A2E00008F445C08CED95E0909355058093540596 |
:10A2F000209154053091550530935705209356050C |
:10A300001DCF8FEF8093B3005093550540935405B4 |
:10A3100050C02D5F3F4F66CF80910106682F772791 |
:10A32000882799272091AB043091AC044091AD046B |
:10A330005091AE0457FD33C0E7E0559547953795EA |
:10A340002795EA95D1F70E94E45B9B01AC0197FD4C |
:10A3500021C076E055954795379527957A95D1F7A1 |
:10A360008091470590914805821B930B76CF51E071 |
:10A370002737350718F487E791E0B6CF30935505B6 |
:10A3800020935405B5CF0396A0CF21583F4F4F4F90 |
:10A390005F4F49CF215C3F4F4F4F5F4FDACF21587E |
:10A3A0003F4F4F4F5F4FC8CF215C3F4F4F4F5F4FE5 |
:10A3B00047CFFF91EF91BF91AF919F918F917F9187 |
:10A3C0006F915F914F913F912F910F900FBE0F9022 |
:10A3D0001F901895F999FECF1FBA92BD81BD60BD3F |
:10A3E0000FB6F894FA9AF99A0FBE089588E180930F |
:10A3F000C1008091C00082608093C0008091C10044 |
:10A4000080688093C1008091C10080648093C10006 |
:10A410008AE28093C4008091C9039091CA030E948C |
:10A42000154F90932608809325088CED90E00E94AC |
:10A43000154F9093550880935408109227088CE488 |
:10A440008093280886E080932B088AE0809329086F |
:10A4500081E080932A081092600510925F051092A7 |
:10A460005E0508951F920F920FB60F9211248F93DD |
:10A470009F93EF93FF938091CE038823A9F480915B |
:10A480006D0590916E050196FC01E750F94FE08152 |
:10A49000ED3079F08639910561F090936E058093E7 |
:10A4A0006D05E093C6000EC010926E0510926D050A |
:10A4B00009C010926E0510926D0581E08093CE0365 |
:10A4C000E093C600FF91EF919F918F910F900FBE87 |
:10A4D0000F901F9018951F920F920FB60F92112494 |
:10A4E0002F933F934F935F938F939F93AF93BF931C |
:10A4F000EF93FF9390E08091C600809365055091A3 |
:10A500007305563910F090937405809165058D3070 |
:10A5100091F020917405822F99278130910509F4DB |
:10A520006CC0823091050CF48EC0029709F47FC094 |
:10A5300010927405A8C020917405223061F79093A1 |
:10A540007405852F99278A5A974FFC0132974081CD |
:10A5500020916F0530917005241B3109DC011197A2 |
:10A560008C91281B3109C9019F70909370058093CD |
:10A570006F050024880F991F001C880F991F001C6D |
:10A58000892F902D982F935C909371052F733070C5 |
:10A59000235C209372058081891709F46EC090E0D6 |
:10A5A000809162058F5F809362053091640533234B |
:10A5B00009F069C0992309F466C081E080936405BD |
:10A5C000580F509361055150E52FFF27EA5AF74F76 |
:10A5D0008DE0808380915808823509F054C088E16D |
:10A5E00090E02CE00FB6F894A895809360000FBE21 |
:10A5F000209360003093490546C02F5F2093740577 |
:10A60000E52FFF27EA5AF74F8091650580835F5F4A |
:10A61000509373052091650580916F0590917005A9 |
:10A62000820F911D9093700580936F052CC0E52FCC |
:10A63000FF27EA5AF74F809165058083563938F332 |
:10A6400010927405E7CF892B09F072CF80916505D0 |
:10A65000833259F0809165058093560881E080939C |
:10A660007305809165059927DDCF80916405882366 |
:10A6700089F781E080937405EDCF8C91821709F002 |
:10A680008ECF91E092CFFF91EF91BF91AF919F91CB |
:10A690008F915F914F913F912F910F900FBE0F902F |
:10A6A0001F901895AC01A0E0B0E09D01A817B90774 |
:10A6B00048F4E9EFF6E08191280F311D1196A417B7 |
:10A6C000B507C8F33F70FD01E750F94FC9010024F9 |
:10A6D000880F991F001C880F991F001C892F902D2F |
:10A6E000835C80831196FD01E750F94F2F73307022 |
:10A6F000822F835C8083A650B94F8DE08C9310929B |
:10A70000CE038091F9068093C6000895A0E0B0E0E2 |
:10A71000ECE8F3E50C947C5C2C859D857E85BB2460 |
:10A7200083E28093F9069F599093FA062093FB06E3 |
:10A7300003E010E0772309F4ADC0CF84D88843E16B |
:10A74000E42EF12CEC0EFD1EA989BA8971501097E8 |
:10A7500009F4A0C0109709F43CC0F601EB0DF11DFF |
:10A76000B3949081119789F47723A1F1F70122E046 |
:10A7700030E0E20EF31ED701C080D180E20EF31E5E |
:10A780000D90BC91A02DBB247150109719F1F601CA |
:10A79000EB0DF11DB3944081119709F466C0109739 |
:10A7A000D1F0F601EB0DF11DB39460811197A1F486 |
:10A7B000772391F0F7013296D701CD90DC9032E00B |
:10A7C000E32EF12CEE0EFF1EA081B181BB2471504F |
:10A7D00003C090E040E060E0F801E750F94F892FB6 |
:10A7E00086958695835C80830F5F1F4FF801E75045 |
:10A7F000F94F892F99278370907082959295907F59 |
:10A800009827807F982755279A01329522952F7097 |
:10A8100023273F702327822B835C80830F5F1F4F8A |
:10A82000F801E750F94F4F705070440F551F440F17 |
:10A83000551F862F99270024880F991F001C880F09 |
:10A84000991F001C892F902D842B835C80830F5FC0 |
:10A850001F4FF801E750F94F6F73635C60830F5F20 |
:10A860001F4F109709F076CF15C0772309F4B3CFA7 |
:10A87000F701A2E0B0E0EA0EFB1ED701C080D18054 |
:10A8800022E030E0E20EF31E0D90BC91A02DBB241F |
:10A89000715085CFC8010E945253E9E00C94985C36 |
:10A8A000A3E07A2F40916105465009F45FC0E72F7D |
:10A8B000FF27EA5AF74F80818D537F5FE72FFF27ED |
:10A8C000EA5AF74F20812D537F5FE72FFF27EA5A7F |
:10A8D000F74F30813D537F5FE72FFF27EA5AF74F4D |
:10A8E00060816D537F5F9927880F991F880F991F8B |
:10A8F000522F52955F70582B822F99278F7090702E |
:10A9000082959295907F9827807F9827232F269570 |
:10A910002695282B832F9927837090700024969575 |
:10A9200087950794969587950794982F802D682B87 |
:10A9300041504F3FD9F0EA2FFF27EA5AF74F508393 |
:10A94000AF5F41504F3F91F0EA2FFF27EA5AF74F90 |
:10A950002083AF5F41504F3F49F0EA2FFF27EA5A6B |
:10A96000F74F6083AF5F442309F0A1CF89E598E0FA |
:10A970009093600580935F05A350A0935E050895B2 |
:10A98000A2E0B0E0E6ECF4E50C94825C8091640512 |
:10A99000882309F480C20E9450548091570882365F |
:10A9A00061F1809158089927AA27BB27FC01EB5435 |
:10A9B000F040EC32F105C0F4E059FF4F0C94AA5C72 |
:10A9C0008FEF8093CC03E0915F05F091600580816B |
:10A9D00090913405892B80933405882311F01092CF |
:10A9E000660581E080936A05109264051092600507 |
:10A9F00010925F0510925E054EC28091580899270B |
:10AA00008037910509F446C1813791050CF454C093 |
:10AA10008337910509F472C1843791050CF053C155 |
:10AA20008137910509F0BDCFA0915F05B091600518 |
:10AA30008C918F3F09F423C28C91882309F008C2BE |
:10AA400081E08C93A0915F05B091600545E669EDCA |
:10AA500075E08C910E94A6128091CE038823E1F3C9 |
:10AA6000E0915F05F09160058081898380E58A83AC |
:10AA700085E690E09F938F9389ED95E09F938F9368 |
:10AA800021E030E03F932F93CE0102969F938F9366 |
:10AA90003F932F93CE01820F931F9F938F9383E059 |
:10AAA0008F9381E08F9381E58F930E948653ADB79A |
:10AAB000BEB71F96ADBF75CF8D36910529F18E3685 |
:10AAC00091050CF0EBC08B34910509F06ACFA09191 |
:10AAD0005F05B09160058D919C9190937204809375 |
:10AAE000710420916F0430917004821B930B845E7B |
:10AAF0009D4F68E671E00E94235C845B90409093D8 |
:10AB00006E0480936D044DCF8091CE038823E1F3D2 |
:10AB1000A0915F05B09160051C91113009F49DC1B1 |
:10AB2000198281E090E09F938F93CE0101969F93CD |
:10AB30008F9381E08F938F938DE48F930E94865340 |
:10AB40008DB79EB707968DBF2CCF81E080936805A7 |
:10AB50004BCF8FEF8093CC03E0915F05F0916005C0 |
:10AB600080818093350581E080936B053DCF81E046 |
:10AB700080936C0539CFE0915F05F091600590817D |
:10AB80008AE0989FC00111249093CA038093C9035F |
:10AB9000892B09F429CF81E08093690525CF809125 |
:10ABA0005A0590915B05892B09F027C1A0915F059B |
:10ABB000B09160059C91992309F015C19C918AE0A0 |
:10ABC000989FC001112490935B0580935A050CCF88 |
:10ABD000A0915F05B09160058BE0E9E4F8E00D908D |
:10ABE00001928A95E1F78091520880932E098FEFA8 |
:10ABF0008093CC03F9CEE0915F05F0916005E08190 |
:10AC0000E03208F410C18FE18093CD03F0CFE091E2 |
:10AC10005F05F0916005808191819093720480932B |
:10AC2000710420916F0430917004821B930B845E39 |
:10AC30009D4F68E671E00E94235C845B9040909396 |
:10AC40006E0480936D04D0CE80916105853108F447 |
:10AC5000D9C0E0915F05F091600580E1A1E3B8E023 |
:10AC600001900D928A95E1F78091CE038823E1F35C |
:10AC70001F928091CB038F9384E58F930E9486531C |
:10AC80008AEF80935C058FEF8093CC030F900F9039 |
:10AC90000F90AACE81E08093670583CE8E36910512 |
:10ACA00009F07FCE8091CE038823E1F38DE490E01C |
:10ACB0009F938F9385E795E09F938F9381E08F9388 |
:10ACC0008F938EE43ACF8437910509F06ACE809154 |
:10ACD0006105853108F4AAC0A0915F05B0916005B7 |
:10ACE00080E1E1E3F8E00D9001928A95E1F780EFD1 |
:10ACF00080935C058FEF8093CC0353CE20915F054A |
:10AD000030916005F90180818150853018F481818E |
:10AD10008035C9F019828091CE038823E1F381E068 |
:10AD200090E09F938F93CE0101969F938F9381E044 |
:10AD30008F938F9383E58F930E948653EDB7FEB771 |
:10AD40003796EDBF2ECE69ED75E085E62E5F3F4F5D |
:10AD5000DB01F901982F01900D929A95E1F72250AD |
:10AD60003040482FD9018C910E94D81280910F0653 |
:10AD70009927AA27BB27BC01CD0124EC39E040E08C |
:10AD800050E00E94E45BDC01CB0180934001909392 |
:10AD90004101A0934201B09343018091100699278D |
:10ADA000AA27BB27BC01CD010E94E45BDC01CB01DB |
:10ADB00080933C0190933D01A0933E01B0933F01ED |
:10ADC000E0915F05F091600580810E94C3120E94AE |
:10ADD0001B13898380E00E9412056EE670E0898172 |
:10ADE0000E94461398CF8AE0989FC00111240E94C8 |
:10ADF000154F9093F8068093F706A0915F05B091E8 |
:10AE00006005DCCEE0915F05F09160058081918165 |
:10AE1000A281B3818093310890933208A0933308C4 |
:10AE2000B093340821CFE093CD03E1CEA0915F052C |
:10AE3000B09160058D919D910D90BC91A02D809356 |
:10AE4000310890933208A0933308B09334084FCF61 |
:10AE5000863008F4FBCD85E0F4CD65E775E08DE440 |
:10AE6000FB010D9001928A95E1F72AEE31E54DE460 |
:10AE700050E088EE93E00E94725A198352CE0E94ED |
:10AE80001B13E0915F05F09160058083A0915F0541 |
:10AE9000B0916005D1CDE3E0CE5F0C949E5CCF9382 |
:10AEA000C82F8A3029F08091C00085FFFCCF04C0F4 |
:10AEB0008DE00E944F57F7CFC093C60080E090E02E |
:10AEC000CF910895EF92FF920F931F938091CE033D |
:10AED000882309F450C280916A05882309F07EC056 |
:10AEE00080916B05882329F08091CE03882309F097 |
:10AEF00063C180916805882329F08091CE0388235F |
:10AF000009F043C180916C05882329F08091CE031C |
:10AF1000882309F022C180915408909155080E941D |
:10AF2000354F882329F08091CE03882309F0B8C0DB |
:10AF30008091C9039091CA03892B09F064C1809163 |
:10AF40006905882329F08091CE03882309F0EBC19D |
:10AF500080915A0590915B05892B09F05EC1209183 |
:10AF6000CD032F3F39F180E190E09F938F93822FA3 |
:10AF7000992782959295907F9827807F982787536D |
:10AF80009E4F9F938F9381E090E09F938F938DECE2 |
:10AF900093E09F938F9382E08F9381E08F9381E47E |
:10AFA0008F930E9486538FEF8093CD038DB79EB70A |
:10AFB0000B968DBF80912E09882329F08091CE03B6 |
:10AFC000882309F056C080916705882309F4D3C10E |
:10AFD0008091CE03882309F4CEC135C08091CE0381 |
:10AFE000882309F47DCF0E94A14284E190E09F93E1 |
:10AFF0008F939091660584E1989FC0011124875931 |
:10B000009E4F9F938F9381E090E09F938F9386E66E |
:10B0100095E09F938F9382E08F9381E08F9388E4F4 |
:10B020008F930E948653809166058F5F2DB73EB740 |
:10B03000255F3F4F2DBF843008F498C110926605FC |
:10B0400010926A054DCF86E190E09F938F938DEB30 |
:10B0500096E09F938F9381E08F938F9380E58F93FA |
:10B060000E948653109267058DB79EB707968DBFD5 |
:10B0700082C181E090E09F938F938EE299E09F934D |
:10B080008F9381E08F938F9382E48F930E948653F6 |
:10B0900010922E092DB73EB7295F3F4F2DBF93CF9A |
:10B0A0008091F0059927880F991F880F991F7C01BF |
:10B0B0000027F7FC0095102F8091AB049091AC0411 |
:10B0C000A091AD04B091AE04BC01CD01A8019701DF |
:10B0D0000E94585C30934208209341088091A30459 |
:10B0E0009091A404A091A504B091A604BC01CD0147 |
:10B0F000A80197010E94585C3093440820934308AC |
:10B1000080914304809345088091420480934608CF |
:10B1100088E090E09F938F9381E498E09F938F93D2 |
:10B1200081E08F9383E08F9387E78F930E9486530C |
:10B13000809147082DB73EB7295F3F4F2DBF85301F |
:10B1400018F086E08093470883E690E00E94154F50 |
:10B150009093550880935408EBCE8BE090E09F933A |
:10B160008F9389E498E09F938F9381E08F938091F0 |
:10B17000CB038F9387E48F930E94865310926C05C4 |
:10B180008DB79EB707968DBFC6CE8AE090E09F939D |
:10B190008F9387E298E09F938F9381E08F938F93B3 |
:10B1A00086E58F930E948653109268052DB73EB7AF |
:10B1B000295F3F4F2DBFA6CE0E94A14280E590E0BF |
:10B1C0009F938F9389E691E09F938F9321E030E0E6 |
:10B1D0003F932F9388E691E09F938F933F932F9314 |
:10B1E00085E395E09F938F9383E08F9381E08F9326 |
:10B1F0008CE48F930E94865310926B058DB79EB797 |
:10B200000F968DBF76CE80912508909126080E94DA |
:10B21000354F882309F097CE92CE8091F706909112 |
:10B22000F8060E94354F882309F499CE8091CE0309 |
:10B23000882309F494CE8091F0059927880F991FEF |
:10B24000880F991F7C010027F7FC0095102F809133 |
:10B25000AB049091AC04A091AD04B091AE04BC01DC |
:10B26000CD01A80197010E94585C3093EA06209313 |
:10B27000E9068091A3049091A404A091A504B09143 |
:10B28000A604BC01CD01A80197010E94585C30932F |
:10B29000EC062093EB0620918D0630918E064091AE |
:10B2A0008F0650919006DA01C90103E0880F991FBB |
:10B2B000AA1FBB1F0A95D1F7820F931FA41FB51FAA |
:10B2C000820F931FA41FB51F2091200130912101EF |
:10B2D0004091220150912301BC01CD010E94585C94 |
:10B2E0003093EE062093ED068EE090E09F938F93CF |
:10B2F00089EE96E09F938F9381E08F938F9383E401 |
:10B300008F930E94865380915A0590915B050E940D |
:10B31000154F9093F8068093F7062DB73EB7295F37 |
:10B320003F4F2DBF1CCE82E490E09F938F938CEE15 |
:10B3300098E09F938F9381E08F938F9384E48F9312 |
:10B340000E948653109269058DB79EB707968DBFF0 |
:10B350008091C9039091CA03009709F4F9CD0E9426 |
:10B36000154F9093260880932508F2CD80936605AB |
:10B3700010926A05B5CD1F910F91FF90EF9008953F |
:10B38000002422273327442751E0BB27EE27FF273D |
:10B39000A0E1660F771F881F991F001C221F331F13 |
:10B3A000441F660F771F881F991F001C221F331F21 |
:10B3B000441F2AF4050E2B1F3E1F4F1F04C0051A01 |
:10B3C0002B0B3E0B4F0B550FBB1FEE1F587F5560CD |
:10B3D00047FD5250AA95E9F6E695B7955795E6953B |
:10B3E000B7955795852F9B2F08952227332741E046 |
:10B3F000552768E0880F991F221F331F880F991F58 |
:10B40000221F331F1AF4240F351F02C0241B350BD3 |
:10B41000440F551F487F456037FD42506A9551F7EC |
:10B420005695479556954795842F0895AA2797FFD7 |
:10B4300004C0809590958A1F9A1F77FF04C060957D |
:10B4400070956A1F7A1F669F9001779FA001679F82 |
:10B45000300D411D5A1F300D411D5A1F889FF001AC |
:10B46000999F2E0F3F1F401D511D899F300D411D7B |
:10B470005A1F300D411D5A1FCA01B901112480CF36 |
:10B48000FC014150504030F001900616D1F7319741 |
:10B49000CF010895882799270895A0E0B0E0E3E55B |
:10B4A000FAE50C947B5C6C017B01EA015901219760 |
:10B4B0008FEFCF3FD80789F086010894C11CD11CBB |
:10B4C000C7010894E11CF11CF5010995F80180837E |
:10B4D0002197FFEFCF3FDF0779F7EAE0CDB7DEB77F |
:10B4E0000C94975CA0E0B0E0E8E7FAE50C947D5C92 |
:10B4F0008C017B01EA01690121978FEFCF3FD807CB |
:10B5000071F0F70121917F01C8010F5F1F4F622F7A |
:10B51000F60109952197FFEFCF3FDF0791F7E8E0AC |
:10B52000CDB7DEB70C94995C5058BB27AA270ED034 |
:10B530000DC1FED030F003D120F031F49F3F11F463 |
:10B540001EF4F3C00EF4E095E7FBE9C0E92F0FD13C |
:10B5500080F3BA17620773078407950718F071F430 |
:10B560009EF527C10EF4E0950B2EBA2FA02D0B01EE |
:10B57000B90190010C01CA01A0011124FF27591B38 |
:10B5800099F0593F50F4503E68F11A16F040A22F3E |
:10B59000232F342F4427585FF3CF469537952795AF |
:10B5A000A795F0405395C9F77EF41F16BA0B620BAE |
:10B5B000730B840BBAF09150A1F0FF0FBB1F661FF5 |
:10B5C000771F881FC2F70EC0BA0F621F731F841F38 |
:10B5D00048F4879577956795B795F7959E3F08F05E |
:10B5E000B3CF9395880F08F09927EE0F979587951D |
:10B5F000089571D008F481E0089504D06894B111E1 |
:10B60000D9C00895BCD088F09F5790F0B92F9927E2 |
:10B61000B751A0F0D1F0660F771F881F991F1AF05D |
:10B62000BA95C9F712C0B13081F0C3D0B1E0089526 |
:10B63000C0C0672F782F8827B85F39F0B93FCCF3A7 |
:10B64000869577956795B395D9F73EF49095809553 |
:10B65000709561957F4F8F4F9F4F0895E89409C073 |
:10B6600097FB3EF490958095709561957F4F8F4F35 |
:10B670009F4F9923A9F0F92F96E9BB279395F6954B |
:10B68000879577956795B795F111F8CFFAF4BB0FC9 |
:10B6900011F460FF1BC06F5F7F4F8F4F9F4F16C02D |
:10B6A000882311F096E911C0772321F09EE8872FB7 |
:10B6B000762F05C0662371F096E8862F70E060E073 |
:10B6C0002AF09A95660F771F881FDAF7880F9695EC |
:10B6D000879597F90895990F0008550FAA0BE0E890 |
:10B6E000FEEF16161706E807F907C0F01216130644 |
:10B6F000E407F50798F0621B730B840B950B39F484 |
:10B700000A2661F0232B242B252B21F408950A26E9 |
:10B7100009F4A140A6958FEF811D811D089597F929 |
:10B720009F6780E870E060E008959FEF80EC0895E7 |
:10B7300000240A9416161706180609060895002410 |
:10B740000A9412161306140605060895092E03948A |
:10B75000000C11F4882352F0BB0F40F4BF2B11F4FE |
:10B7600060FF04C06F5F7F4F8F4F9F4F089557FD5D |
:10B770009058440F551F59F05F3F71F04795880F5F |
:10B7800097FB991F61F09F3F79F0879508951216F6 |
:10B7900013061406551FF2CF4695F1DF08C01616A2 |
:10B7A00017061806991FF1CF869571056105089453 |
:10B7B0000895E894BB2766277727CB0197F908956A |
:10B7C0008ADF08F48FEF0895629FD001739FF00124 |
:10B7D000829FE00DF11D649FE00DF11D929FF00D21 |
:10B7E000839FF00D749FF00D659FF00D9927729F58 |
:10B7F000B00DE11DF91F639FB00DE11DF91FBD01E3 |
:10B80000CF0111240895991B79E004C0991F961760 |
:10B8100008F0961B881F7A95C9F780950895AA1B92 |
:10B82000BB1B51E107C0AA1FBB1FA617B70710F02B |
:10B83000A61BB70B881F991F5A95A9F7809590955D |
:10B84000BC01CD01089597FB092E07260AD077FD8C |
:10B8500004D0E5DF06D000201AF4709561957F4F83 |
:10B860000895F6F7909581959F4F0895A1E21A2EBD |
:10B87000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F94 |
:10B88000A217B307E407F50720F0A21BB30BE40BE4 |
:10B89000F50B661F771F881F991F1A9469F760952B |
:10B8A0007095809590959B01AC01BD01CF010895E5 |
:10B8B00097FB092E05260ED057FD04D0D7DF0AD0FE |
:10B8C000001C38F450954095309521953F4F4F4FCF |
:10B8D0005F4F0895F6F790958095709561957F4F2D |
:10B8E0008F4F9F4F08952F923F924F925F926F928A |
:10B8F0007F928F929F92AF92BF92CF92DF92EF9200 |
:10B90000FF920F931F93CF93DF93CDB7DEB7CA1B80 |
:10B91000DB0B0FB6F894DEBF0FBECDBF09942A88AB |
:10B92000398848885F846E847D848C849B84AA8453 |
:10B93000B984C884DF80EE80FD800C811B81AA81E0 |
:10B94000B981CE0FD11D0FB6F894DEBF0FBECDBFAB |
:10B95000ED010895EE0FFF1F0590F491E02D09947D |
:02B96000FFCF17 |
:10B962005E010D0151756164726F000001737373A2 |
:10B97200FF03007D0000C409C40964000101010441 |
:10B982000B050000ECFF6440415A4664640A0296CB |
:10B992009696960840403A10FB30380190D003004A |
:10B9A20090D00300F4016400426567696E6E6572AF |
:10B9B20000004E6F726D616C000053706F72740004 |
:10B9C200007800FF036401010E6371206465206446 |
:10B9D2006B396E77000000000000000000000000DC |
:10B9E2000000000000000000000000000000000055 |
:10B9F2000000000000000000000000000000000045 |
:10BA02000000000000000000000000000000000034 |
:10BA12000000000000000000000102030405060708 |
:10BA220008090A01FFFF01FC013344204E69636BE0 |
:10BA32002D57696E6B656C20204163634E69636BA1 |
:10BA42002020202020202020206D6178636F6E74DA |
:10BA5200726F6C6C65724444206D696E636F6E74B4 |
:10BA6200726F6C6C65724444204D657373776572B6 |
:10BA7200744E69636B2020202048695265734E69B9 |
:10BA8200636B20202020202020416457657274417E |
:10BA920063634E69636B202020476173203D2074ED |
:10BAA20068727573742020202020202020202020FE |
:10BAB2002020202020202020205370616E6E756E81 |
:10BAC200672056202020202020456D7066616E6719 |
:10BAD200202020202020202020636F6E74726F6C43 |
:10BAE2006C65725020202020204D6F746F7220767A |
:10BAF2006F726E6520202020204D6F746F72206857 |
:10BB0200696E74656E20202020636F6E74726F6C94 |
:10BB12006C6572442020202020636F6E74726F6CFB |
:10BB22006C657244442020202050504D5F696E5B4A |
:10BB3200335D204E69636B202069706B5B305D2042 |
:10BB420020202020202020202069706B5B315D2086 |
:10BB520020202020202020202069706B5B325D2075 |
:10BB62002020202020202020207563666C67312051 |
:10BB7200202020202020202020537469636B204B3A |
:10BB8200616E616C20352020204D6573737765727C |
:10BB9200744E69636B202020206D6178636F6E7430 |
:10BBA200726F6C6C65724420206D696E636F6E7487 |
:10BBB200726F6C6C65724420204164576572744EDA |
:10BBC20069636B2020202020206D6178636F6E7482 |
:10BBD200726F6C6C65725020206D696E636F6E744B |
:10BBE200726F6C6C657250202050504D5F696E5BB5 |
:10BBF200345D2047696572202050504D5F696E5B4D |
:10BC0200335D204E69636B202050504D5F696E5B3F |
:10BC1200325D20526F6C6C202050504D5F696E5B1C |
:10BC2200315D20476173202020C8000164FF0100BC |
:00000001FF |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/Flight-Ctrl_MEGA644_V0_76g_SVN.map |
---|
0,0 → 1,1884 |
Archive member included because of file (symbol) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) |
analog.o (__subsf3) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) (__addsf3x) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(cmpsf2.o) |
analog.o (__ltsf2) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
analog.o (__fixsfsi) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) |
fc.o (__fixunssfsi) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
fc.o (__floatsisf) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(cmpsf2.o) (__fp_cmp) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_inf.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_inf) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_nan) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_pscA.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_pscA) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_pscB.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_pscB) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_round.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) (__fp_round) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split3.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_split3) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_zero) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(gesf2.o) |
analog.o (__gtsf2) |
C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_mulsi3.o) |
analog.o (__mulsi3) |
C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodqi4.o) |
main.o (__udivmodqi4) |
C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodhi4.o) |
analog.o (__udivmodhi4) |
C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodhi4.o) |
fc.o (__divmodhi4) |
C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodsi4.o) |
printf_P.o (__udivmodsi4) |
C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodsi4.o) |
fc.o (__divmodsi4) |
C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_prologue.o) |
fc.o (__prologue_saves__) |
C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_epilogue.o) |
analog.o (__epilogue_restores__) |
C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_exit.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o (exit) |
C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_tablejump.o) |
analog.o (__tablejump2__) |
C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o) |
main.o (__do_copy_data) |
C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_clear_bss.o) |
main.o (__do_clear_bss) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(memchr.o) |
printf_P.o (memchr) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
main.o (__eerd_block) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
main.o (__eewr_block) |
Allocating common symbols |
Common symbol size file |
KopplungsteilNickRoll |
0x2 fc.o |
MesswertGierBias 0x2 fc.o |
motorOutFront 0x2 fc.o |
KopplungsteilRollNick |
0x2 fc.o |
EE_Parameter 0x65 fc.o |
DiffRoll 0x2 fc.o |
MesswertRoll 0x2 fc.o |
TrimNick 0x2 fc.o |
Parameter_NaviGpsP 0x1 fc.o |
ErsatzKompassInGrad |
0x2 fc.o |
motor_rx2 0x10 twimaster.o |
GyroFaktorGier 0x1 fc.o |
MittelIntegralRoll2 |
0x4 fc.o |
Parameter_NaviGpsModeControl |
0x1 fc.o |
TrimRoll 0x2 fc.o |
MesswertNick 0x2 fc.o |
Aktuell_ay 0x2 analog.o |
motorOutRear 0x2 fc.o |
Data3D 0xe uart.o |
Parameter_NaviGpsI 0x1 fc.o |
Timer3D 0x2 uart.o |
RohMesswertRoll 0x2 fc.o |
MIN_GAS 0x1 fc.o |
SendeBuffer 0x96 uart.o |
NMEABuffer 0x96 uart.o |
Parameter_NaviGpsACC |
0x1 fc.o |
MittelIntegralNick2 |
0x4 fc.o |
Channels 0x1 rc.o |
Debug_Timer 0x2 uart.o |
Mittelwert_AccHoch 0x2 fc.o |
RohMesswertNick 0x2 fc.o |
IntegralFaktorGier 0x1 fc.o |
DiffNick 0x2 fc.o |
MittelIntegralNick 0x4 fc.o |
MotorError 0x2 twimaster.o |
desiredAngle 0x2 fc.o |
VersionInfo 0xa uart.o |
MotorTest 0x10 uart.o |
NaviAccNick 0x2 fc.o |
Parameter_J16Timing |
0x1 fc.o |
MittelIntegralRoll 0x4 fc.o |
motor_rx 0x10 twimaster.o |
AdNeutralGierBias 0x2 fc.o |
PPM_in 0x16 rc.o |
WinkelOut 0x8 uart.o |
ExternControl 0xb uart.o |
IntegralFaktor 0x1 fc.o |
Aktuell_az 0x2 analog.o |
StartLuftdruck 0x2 analog.o |
tmp_motorwert 0x4 fc.o |
Kompass_Timer 0x2 uart.o |
RxdBuffer 0x96 uart.o |
Mixer 0x4d main.o |
angle 0x2 fc.o |
Parameter_NaviOperatingRadius |
0x1 fc.o |
PrintZiel 0x1 printf_P.o |
Aktuell_Nick 0x2 analog.o |
Aktuell_Roll 0x2 analog.o |
thrust 0x2 fc.o |
Aktuell_ax 0x2 analog.o |
Parameter_NaviWindCorrection |
0x1 fc.o |
MotorPresent 0x2 twimaster.o |
s 0x1 fc.o |
h 0x1 fc.o |
Mittelwert_AccNick 0x2 fc.o |
Parameter_NaviSpeedCompensation |
0x1 fc.o |
DebugOut 0x42 uart.o |
DruckOffsetSetting 0x1 analog.o |
Motor 0x2 fc.o |
Aktuell_Gier 0x2 analog.o |
Parameter_J17Timing |
0x1 fc.o |
MAX_GAS 0x1 fc.o |
MesswertGier 0x2 fc.o |
Parameter_J16Bitmask |
0x1 fc.o |
ConfirmFrame 0x1 uart.o |
NaviAccRoll 0x2 fc.o |
GyroFaktor 0x1 fc.o |
m 0x1 fc.o |
ErsatzKompass 0x4 fc.o |
Mittelwert_AccRoll 0x2 fc.o |
Parameter_NaviGpsGain |
0x1 fc.o |
PPM_diff 0x16 rc.o |
Parameter_ExternalControl |
0x1 fc.o |
Parameter_J17Bitmask |
0x1 fc.o |
Parameter_NaviGpsD 0x1 fc.o |
Memory Configuration |
Name Origin Length Attributes |
text 0x00000000 0x00020000 xr |
data 0x00800060 0x0000ffa0 rw !x |
eeprom 0x00810000 0x00010000 rw !x |
fuse 0x00820000 0x00000400 rw !x |
lock 0x00830000 0x00000400 rw !x |
signature 0x00840000 0x00000400 rw !x |
*default* 0x00000000 0xffffffff |
Linker script and memory map |
Address of section .data set to 0x800100 |
LOAD C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
LOAD main.o |
LOAD analog.o |
LOAD fc.o |
LOAD led.o |
LOAD menu.o |
LOAD printf_P.o |
LOAD twimaster.o |
LOAD rc.o |
LOAD mymath.o |
LOAD timer0.o |
LOAD uart.o |
LOAD isqrt.o |
LOAD C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a |
LOAD C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a |
LOAD C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a |
LOAD C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a |
.hash |
*(.hash) |
.dynsym |
*(.dynsym) |
.dynstr |
*(.dynstr) |
.gnu.version |
*(.gnu.version) |
.gnu.version_d |
*(.gnu.version_d) |
.gnu.version_r |
*(.gnu.version_r) |
.rel.init |
*(.rel.init) |
.rela.init |
*(.rela.init) |
.rel.text |
*(.rel.text) |
*(.rel.text.*) |
*(.rel.gnu.linkonce.t*) |
.rela.text |
*(.rela.text) |
*(.rela.text.*) |
*(.rela.gnu.linkonce.t*) |
.rel.fini |
*(.rel.fini) |
.rela.fini |
*(.rela.fini) |
.rel.rodata |
*(.rel.rodata) |
*(.rel.rodata.*) |
*(.rel.gnu.linkonce.r*) |
.rela.rodata |
*(.rela.rodata) |
*(.rela.rodata.*) |
*(.rela.gnu.linkonce.r*) |
.rel.data |
*(.rel.data) |
*(.rel.data.*) |
*(.rel.gnu.linkonce.d*) |
.rela.data |
*(.rela.data) |
*(.rela.data.*) |
*(.rela.gnu.linkonce.d*) |
.rel.ctors |
*(.rel.ctors) |
.rela.ctors |
*(.rela.ctors) |
.rel.dtors |
*(.rel.dtors) |
.rela.dtors |
*(.rela.dtors) |
.rel.got |
*(.rel.got) |
.rela.got |
*(.rela.got) |
.rel.bss |
*(.rel.bss) |
.rela.bss |
*(.rela.bss) |
.rel.plt |
*(.rel.plt) |
.rela.plt |
*(.rela.plt) |
.text 0x00000000 0xb962 |
*(.vectors) |
.vectors 0x00000000 0x70 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
0x00000000 __vectors |
0x00000000 __vector_default |
*(.vectors) |
*(.progmem.gcc*) |
.progmem.gcc_sw_table |
0x00000070 0x24 analog.o |
.progmem.gcc_sw_table |
0x00000094 0x1e menu.o |
.progmem.gcc_sw_table |
0x000000b2 0x2e twimaster.o |
.progmem.gcc_sw_table |
0x000000e0 0x58 uart.o |
*(.progmem*) |
.progmem.data 0x00000138 0x280 main.o |
.progmem.data 0x000003b8 0x39 analog.o |
.progmem.data 0x000003f1 0x34b menu.o |
.progmem.data 0x0000073c 0x210 mymath.o |
0x0000073c pgm_atanlookup |
0x00000896 pgm_sinlookup |
0x0000094c . = ALIGN (0x2) |
0x0000094c __trampolines_start = . |
*(.trampolines) |
.trampolines 0x0000094c 0x0 linker stubs |
*(.trampolines*) |
0x0000094c __trampolines_end = . |
*(.jumptables) |
*(.jumptables*) |
*(.lowtext) |
*(.lowtext*) |
0x0000094c __ctors_start = . |
*(.ctors) |
0x0000094c __ctors_end = . |
0x0000094c __dtors_start = . |
*(.dtors) |
0x0000094c __dtors_end = . |
SORT(*)(.ctors) |
SORT(*)(.dtors) |
*(.init0) |
.init0 0x0000094c 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
0x0000094c __init |
*(.init0) |
*(.init1) |
*(.init1) |
*(.init2) |
.init2 0x0000094c 0xc C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
*(.init2) |
*(.init3) |
*(.init3) |
*(.init4) |
.init4 0x00000958 0x16 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o) |
0x00000958 __do_copy_data |
.init4 0x0000096e 0x10 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_clear_bss.o) |
0x0000096e __do_clear_bss |
*(.init4) |
*(.init5) |
*(.init5) |
*(.init6) |
*(.init6) |
*(.init7) |
*(.init7) |
*(.init8) |
*(.init8) |
*(.init9) |
.init9 0x0000097e 0x8 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
*(.init9) |
*(.text) |
.text 0x00000986 0x4 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
0x00000986 __vector_1 |
0x00000986 __bad_interrupt |
0x00000986 __vector_6 |
0x00000986 __vector_3 |
0x00000986 __vector_23 |
0x00000986 __vector_25 |
0x00000986 __vector_11 |
0x00000986 __vector_13 |
0x00000986 __vector_17 |
0x00000986 __vector_19 |
0x00000986 __vector_7 |
0x00000986 __vector_27 |
0x00000986 __vector_5 |
0x00000986 __vector_4 |
0x00000986 __vector_2 |
0x00000986 __vector_21 |
0x00000986 __vector_15 |
0x00000986 __vector_8 |
0x00000986 __vector_14 |
0x00000986 __vector_10 |
0x00000986 __vector_16 |
.text 0x0000098a 0xbf0 main.o |
0x00000a24 LipoDetection |
0x000009b2 CalMk3Mag |
0x00000b32 main |
.text 0x0000157a 0xab4 analog.o |
0x000017ee __vector_24 |
0x0000163e SucheGyroOffset |
0x0000157a ADC_Init |
0x00001586 SucheLuftruckOffset |
.text 0x0000202e 0x63a4 fc.o |
0x000025b0 WriteParameterSet |
0x00002056 DefaultStickMapping |
0x00002660 MotorSmoothing |
0x00002088 DefaultKonstanten3 |
0x000023b2 DefaultKonstanten1 |
0x000041f4 SendMotorData |
0x00002586 SetActiveParamSetNumber |
0x0000254c ReadParameterSet |
0x000026d8 Mittelwert |
0x00002636 GetActiveParamSetNumber |
0x0000268c Piep |
0x000039b8 CalibrierMittelwert |
0x00003cc8 SetNeutral |
0x0000221c DefaultKonstanten2 |
0x0000427e ParameterZuordnung |
0x000049f8 MotorRegler |
.text 0x000083d2 0x15e led.o |
0x000083d2 LED_Init |
0x000083f0 LED_Update |
.text 0x00008530 0xb94 menu.o |
0x00008530 LcdClear |
0x00008542 Menu |
.text 0x000090c4 0x5aa printf_P.o |
0x000090c4 Putchar |
0x00009196 _printf_P |
0x0000917e PAD_0 |
0x0000912c PRINTP |
0x000090f6 PRINT |
0x00009166 PAD_SP |
.text 0x0000966e 0x2fc twimaster.o |
0x0000967a i2c_start |
0x0000969a i2c_reset |
0x000096e8 I2C_ReceiveLastByte |
0x00009682 i2c_stop |
0x000096e0 I2C_ReceiveByte |
0x000096d4 I2C_WriteByte |
0x0000966e i2c_init |
0x000096f0 __vector_26 |
0x0000968a i2c_write_byte |
.text 0x0000996a 0x222 rc.o |
0x00009994 __vector_12 |
0x0000996a rc_sum_init |
.text 0x00009b8c 0x29e mymath.o |
0x00009d7c c_sqrt |
0x00009c26 c_cos_8192 |
0x00009b8c c_sin_8192 |
0x00009c36 c_atan2 |
.text 0x00009e2a 0x5aa timer0.o |
0x00009e2a SetDelay |
0x0000a070 TIMER2_Init |
0x00009e3c Timer_Init |
0x00009e6a CheckDelay |
0x00009e82 Delay_ms |
0x00009e9c Delay_ms_Mess |
0x0000a0ce __vector_9 |
0x00009ed0 __vector_18 |
.text 0x0000a3d4 0xfac uart.o |
0x0000a464 __vector_22 |
0x0000a3ec UART_Init |
0x0000a980 BearbeiteRxDaten |
0x0000a6a4 AddCRC |
0x0000aec4 DatenUebertragung |
0x0000a8a0 Decode64 |
0x0000a70c SendOutData |
0x0000a4d6 __vector_20 |
0x0000ae9e uart_putchar |
.text 0x0000b380 0x100 isqrt.o |
0x0000b380 isqrt32 |
0x0000b42c ihypot |
0x0000b3ea isqrt16 |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(cmpsf2.o) |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_inf.o) |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_pscA.o) |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_pscB.o) |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_round.o) |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split3.o) |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
.text 0x0000b480 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(gesf2.o) |
.text 0x0000b480 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_mulsi3.o) |
.text 0x0000b480 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodqi4.o) |
.text 0x0000b480 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodhi4.o) |
.text 0x0000b480 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodhi4.o) |
.text 0x0000b480 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodsi4.o) |
.text 0x0000b480 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodsi4.o) |
.text 0x0000b480 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_prologue.o) |
.text 0x0000b480 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_epilogue.o) |
.text 0x0000b480 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_exit.o) |
.text 0x0000b480 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_tablejump.o) |
.text 0x0000b480 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o) |
.text 0x0000b480 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_clear_bss.o) |
.text 0x0000b480 0x1a C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(memchr.o) |
0x0000b480 memchr |
.text 0x0000b49a 0x4a C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
0x0000b49a __eerd_block |
.text 0x0000b4e4 0x44 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
0x0000b4e4 __eewr_block |
0x0000b528 . = ALIGN (0x2) |
*(.text.*) |
.text.fplib 0x0000b528 0xa C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) |
0x0000b528 __subsf3 |
0x0000b52a __addsf3 |
.text.fplib 0x0000b532 0xc0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
0x0000b54c __addsf3x |
.text.fplib 0x0000b5f2 0x8 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(cmpsf2.o) |
0x0000b5f2 __lesf2 |
0x0000b5f2 __nesf2 |
0x0000b5f2 __eqsf2 |
0x0000b5f2 __cmpsf2 |
0x0000b5f2 __ltsf2 |
.text.fplib 0x0000b5fa 0xa C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
0x0000b5fa __fixsfsi |
.text.fplib 0x0000b604 0x58 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) |
0x0000b604 __fixunssfsi |
.text.fplib 0x0000b65c 0x7a C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
0x0000b660 __floatsisf |
0x0000b65c __floatunsisf |
.text.fplib 0x0000b6d6 0x48 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
0x0000b6d6 __fp_cmp |
.text.fplib 0x0000b71e 0xc C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_inf.o) |
0x0000b71e __fp_inf |
.text.fplib 0x0000b72a 0x6 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
0x0000b72a __fp_nan |
.text.fplib 0x0000b730 0xe C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_pscA.o) |
0x0000b730 __fp_pscA |
.text.fplib 0x0000b73e 0xe C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_pscB.o) |
0x0000b73e __fp_pscB |
.text.fplib 0x0000b74c 0x22 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_round.o) |
0x0000b74c __fp_round |
.text.fplib 0x0000b76e 0x44 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split3.o) |
0x0000b76e __fp_split3 |
0x0000b77e __fp_splitA |
.text.fplib 0x0000b7b2 0xe C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
0x0000b7b2 __fp_zero |
0x0000b7b4 __fp_szero |
.text.fplib 0x0000b7c0 0x8 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(gesf2.o) |
0x0000b7c0 __gtsf2 |
0x0000b7c0 __gesf2 |
.text.libgcc 0x0000b7c8 0x3e C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_mulsi3.o) |
0x0000b7c8 __mulsi3 |
.text.libgcc 0x0000b806 0x18 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodqi4.o) |
0x0000b806 __udivmodqi4 |
.text.libgcc 0x0000b81e 0x28 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodhi4.o) |
0x0000b81e __udivmodhi4 |
.text.libgcc 0x0000b846 0x26 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodhi4.o) |
0x0000b846 __divmodhi4 |
0x0000b846 _div |
.text.libgcc 0x0000b86c 0x44 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodsi4.o) |
0x0000b86c __udivmodsi4 |
.text.libgcc 0x0000b8b0 0x36 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodsi4.o) |
0x0000b8b0 __divmodsi4 |
.text.libgcc 0x0000b8e6 0x38 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_prologue.o) |
0x0000b8e6 __prologue_saves__ |
.text.libgcc 0x0000b91e 0x36 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_epilogue.o) |
0x0000b91e __epilogue_restores__ |
.text.libgcc 0x0000b954 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_exit.o) |
.text.libgcc 0x0000b954 0xc C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_tablejump.o) |
0x0000b958 __tablejump__ |
0x0000b954 __tablejump2__ |
.text.libgcc 0x0000b960 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o) |
.text.libgcc 0x0000b960 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_clear_bss.o) |
0x0000b960 . = ALIGN (0x2) |
*(.fini9) |
.fini9 0x0000b960 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_exit.o) |
0x0000b960 exit |
0x0000b960 _exit |
*(.fini9) |
*(.fini8) |
*(.fini8) |
*(.fini7) |
*(.fini7) |
*(.fini6) |
*(.fini6) |
*(.fini5) |
*(.fini5) |
*(.fini4) |
*(.fini4) |
*(.fini3) |
*(.fini3) |
*(.fini2) |
*(.fini2) |
*(.fini1) |
*(.fini1) |
*(.fini0) |
.fini0 0x0000b960 0x2 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_exit.o) |
*(.fini0) |
0x0000b962 _etext = . |
.data 0x00800100 0x2d0 load address 0x0000b962 |
0x00800100 PROVIDE (__data_start, .) |
*(.data) |
.data 0x00800100 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
.data 0x00800100 0xc main.o |
0x00800102 PlatinenVersion |
0x00800100 BattLowVoltageWarning |
0x00800101 SendVersionToNavi |
.data 0x0080010c 0x10 analog.o |
0x0080011a UBat |
0x0080010f AnalogOffsetNick |
0x0080010d AnalogOffsetGier |
0x00800116 HiResRoll |
0x0080010c AdReady |
0x0080010e AnalogOffsetRoll |
0x00800110 MessLuftdruck |
0x00800112 Luftdruck |
0x00800118 HiResNick |
.data 0x0080011c 0x4a fc.o |
0x0080011f RequiredMotors |
0x00800127 Parameter_CouplingYawCorrection |
0x00800140 Umschlag180Nick |
0x0080013a Ki |
0x00800139 Parameter_Luftdruck_D |
0x00800126 Parameter_DynamicStability |
0x00800130 Parameter_Gyro_Gier_P |
0x00800135 Parameter_KompassWirkung |
0x0080012c Parameter_ServoNickControl |
0x0080011d ucflg2 |
0x00800132 Parameter_Gyro_P |
0x00800133 Parameter_Gyro_D |
0x00800137 Parameter_Hoehe_P |
0x00800128 Parameter_AchsKopplung2 |
0x00800124 ExternHoehenValue |
0x0080011e ucflg1 |
0x00800136 Parameter_Hoehe_ACC_Wirkung |
0x00800120 GIER_GRAD_FAKTOR |
0x0080012a Parameter_LoopGasLimit |
0x00800129 Parameter_AchsKopplung1 |
0x0080011c ucflg3 |
0x00800146 I2CTimeout |
0x00800131 Parameter_Gyro_I |
0x0080012f Parameter_Gyro_Gier_I |
0x0080013c Umschlag180Roll |
0x00800138 Parameter_MaxHoehe |
0x0080012d Parameter_I_Faktor |
0x00800134 Parameter_Hoehe_GPS_Z |
0x0080012b Parameter_ServoRollControl |
0x00800144 KompassSignalSchlecht |
0x0080012e Parameter_Gier_P |
.data 0x00800166 0x2 led.o |
0x00800167 J16Mask |
0x00800166 J17Mask |
.data 0x00800168 0x5b menu.o |
0x008001b9 Array |
0x00800168 MaxMenue |
0x00800169 DisplayBuff |
.data 0x008001c3 0x0 printf_P.o |
.data 0x008001c3 0x0 twimaster.o |
.data 0x008001c3 0x1 rc.o |
0x008001c3 NewPpmData |
.data 0x008001c4 0x0 mymath.o |
.data 0x008001c4 0x5 timer0.o |
0x008001c4 BeepMuster |
.data 0x008001c9 0x206 uart.o |
0x008003cb MeineSlaveAdresse |
0x008001c9 ANALOG_TEXT |
0x008003cc PcZugriff |
0x008003ce UebertragungAbgeschlossen |
0x008003cd DebugTextAnforderung |
0x008003c9 DebugDataIntervall |
.data 0x008003cf 0x0 isqrt.o |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(cmpsf2.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_inf.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_pscA.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_pscB.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_round.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split3.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(gesf2.o) |
.data 0x008003cf 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_mulsi3.o) |
.data 0x008003cf 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodqi4.o) |
.data 0x008003cf 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodhi4.o) |
.data 0x008003cf 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodhi4.o) |
.data 0x008003cf 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodsi4.o) |
.data 0x008003cf 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodsi4.o) |
.data 0x008003cf 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_prologue.o) |
.data 0x008003cf 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_epilogue.o) |
.data 0x008003cf 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_exit.o) |
.data 0x008003cf 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_tablejump.o) |
.data 0x008003cf 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o) |
.data 0x008003cf 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_clear_bss.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(memchr.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
.data 0x008003cf 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
*(.data*) |
*(.rodata) |
*(.rodata*) |
*(.gnu.linkonce.d*) |
0x008003d0 . = ALIGN (0x2) |
*fill* 0x008003cf 0x1 00 |
0x008003d0 _edata = . |
0x008003d0 PROVIDE (__data_end, .) |
.bss 0x008003d0 0x55f |
0x008003d0 PROVIDE (__bss_start, .) |
*(.bss) |
.bss 0x008003d0 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
.bss 0x008003d0 0x4 main.o |
0x008003d2 FlugMinuten |
0x008003d0 FlugMinutenGesamt |
.bss 0x008003d4 0x34 analog.o |
0x008003e0 messanzahl_AccHoch |
0x008003d7 ZaehlMessungen |
0x008003d9 VarioMeter |
0x008003db ExpandBaro |
0x008003d5 GyroDefektR |
0x008003e9 AdWertRoll |
0x008003e3 AdWertAccNick |
0x008003d4 GyroDefektG |
0x008003eb AdWertNick |
0x008003ed AdWertGierFilter |
0x008003e7 AdWertGier |
0x008003d6 GyroDefektN |
0x008003f1 AdWertNickFilter |
0x008003e5 AdWertAccRoll |
0x008003dc SummenHoehe |
0x008003ef AdWertRollFilter |
0x008003e1 AdWertAccHoch |
.bss 0x00800408 0x123 fc.o |
0x00800477 Mess_Integral_Gier2 |
0x0080044c LageKorrekturRoll |
0x00800408 filterDD |
0x00800420 controllerP |
0x00800458 StickGier |
0x00800444 Looping_Oben |
0x00800424 kd |
0x00800487 Mess_IntegralNick2 |
0x008004a7 IntegralNick2 |
0x00800422 kdd |
0x0080045f SenderOkay |
0x0080043f Parameter_UserParam5 |
0x00800493 IntegralAccZ |
0x00800428 ipk |
0x0080048f Integral_Gier |
0x0080045c StickNick |
0x00800464 Poti2 |
0x0080041c mincontrollerP |
0x0080046c MotorenEin |
0x00800449 Looping_Nick |
0x0080049b IntegralAccNick |
0x008004b0 CosinusNickWinkel |
0x00800452 HoehenWert |
0x0080047f Mess_IntegralRoll2 |
0x00800436 ExternStickGier |
0x00800462 Poti3 |
0x00800445 Looping_Unten |
0x0080041a controllerD |
0x00800432 MaxStickRoll |
0x00800430 modell_fliegt |
0x00800443 Parameter_UserParam1 |
0x008004c1 AdNeutralRoll |
0x00800447 Looping_Links |
0x00800416 mincontrollerD |
0x008004ab IntegralNick |
0x00800473 Mess_Integral_Hoch |
0x0080043d Parameter_UserParam7 |
0x0080040e gyroScaledOld |
0x008004c5 BaroExpandActive |
0x008004b5 NaviCntAcc |
0x0080046a TrichterFlug |
0x008004b9 NeutralAccX |
0x00800412 maxcontrollerDD |
0x0080047b Mess_Integral_Gier |
0x0080042e LoadHandler |
0x0080044a LageKorrekturNick |
0x00800440 Parameter_UserParam4 |
0x0080046f KompassStartwert |
0x00800456 StickGas |
0x00800418 maxcontrollerD |
0x00800448 Looping_Roll |
0x0080040c gyroScaled |
0x0080040a filtersum |
0x0080043a ExternStickNick |
0x00800442 Parameter_UserParam2 |
0x008004bb StartNeutralNick |
0x00800471 KompassValue |
0x00800497 IntegralAccRoll |
0x0080046d KompassRichtung |
0x00800483 Mess_IntegralRoll |
0x00800410 mincontrollerDD |
0x0080045a StickRoll |
0x008004c3 AdNeutralNick |
0x008004b7 NeutralAccY |
0x0080042f MikroKopterFlags |
0x0080041e maxcontrollerP |
0x008004b1 NeutralAccZ |
0x0080043e Parameter_UserParam6 |
0x0080045e SenderRSSI |
0x0080049f IntegralRoll2 |
0x00800434 MaxStickNick |
0x00800466 Poti1 |
0x00800441 Parameter_UserParam3 |
0x008004bf AdNeutralGier |
0x008004bd StartNeutralRoll |
0x00800446 Looping_Rechts |
0x00800414 controllerDD |
0x00800438 ExternStickRoll |
0x008004af CosinusRollWinkel |
0x0080046b HoehenReglerAktiv |
0x0080044e SollHoehe |
0x0080043c Parameter_UserParam8 |
0x00800426 kp |
0x00800468 GierGyroFehler |
0x0080048b Mess_IntegralNick |
0x00800460 Poti4 |
0x008004a3 IntegralRoll |
.bss 0x0080052b 0x9 led.o |
0x0080052d LED2_Timing |
0x0080052f LED1_Timing |
0x0080052b J17Blinkcount |
0x0080052c J16Blinkcount |
.bss 0x00800534 0x5 menu.o |
0x00800536 DispPtr |
0x00800535 MenuePunkt |
0x00800534 RemoteKeys |
0x00800537 TestInt |
.bss 0x00800539 0x0 printf_P.o |
.bss 0x00800539 0x7 twimaster.o |
0x0080053e twi_state |
0x00800539 I2CError |
0x0080053b MissingMotor |
0x0080053c motorread |
0x0080053d motor |
.bss 0x00800540 0x5 rc.o |
0x00800540 tmpChannels |
.bss 0x00800545 0x0 mymath.o |
.bss 0x00800545 0x15 timer0.o |
0x0080054a SendSPI |
0x0080054b beeptime |
0x00800547 ServoNickValue |
0x00800550 CountMilliseconds |
0x00800549 ServoActive |
0x0080054d cntKompass |
0x0080054f UpdateMotor |
0x00800545 ServoRollValue |
.bss 0x0080055a 0x1b uart.o |
0x00800565 SioTmp |
0x0080055d PC_DebugTimeout |
0x00800568 GetVersionAnforderung |
0x00800563 NeueKoordinateEmpfangen |
0x0080055a Intervall3D |
0x00800569 DebugDataAnforderung |
0x0080055c PC_MotortestActive |
0x00800564 NeuerDatensatzEmpfangen |
0x0080056a DebugDisplayAnforderung |
0x00800562 CntCrcError |
0x00800567 GetPPMChannelAnforderung |
0x0080056b DebugDisplayAnforderung1 |
0x00800566 DisplayLine |
0x0080056c GetExternalControl |
0x0080055f pRxData |
0x0080055e RxDataLen |
0x00800561 AnzahlEmpfangsBytes |
.bss 0x00800575 0x0 isqrt.o |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(cmpsf2.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_inf.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_pscA.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_pscB.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_round.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split3.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(gesf2.o) |
.bss 0x00800575 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_mulsi3.o) |
.bss 0x00800575 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodqi4.o) |
.bss 0x00800575 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodhi4.o) |
.bss 0x00800575 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodhi4.o) |
.bss 0x00800575 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodsi4.o) |
.bss 0x00800575 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodsi4.o) |
.bss 0x00800575 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_prologue.o) |
.bss 0x00800575 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_epilogue.o) |
.bss 0x00800575 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_exit.o) |
.bss 0x00800575 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_tablejump.o) |
.bss 0x00800575 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o) |
.bss 0x00800575 0x0 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_clear_bss.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(memchr.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
.bss 0x00800575 0x0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
*(.bss*) |
*(COMMON) |
COMMON 0x00800575 0x4d main.o |
0x00800575 Mixer |
COMMON 0x008005c2 0xf analog.o |
0x008005c2 Aktuell_ay |
0x008005c4 Aktuell_az |
0x008005c6 StartLuftdruck |
0x008005c8 Aktuell_Nick |
0x008005ca Aktuell_Roll |
0x008005cc Aktuell_ax |
0x008005ce DruckOffsetSetting |
0x008005cf Aktuell_Gier |
COMMON 0x008005d1 0xc6 fc.o |
0x008005d1 KopplungsteilNickRoll |
0x008005d3 MesswertGierBias |
0x008005d5 motorOutFront |
0x008005d7 KopplungsteilRollNick |
0x008005d9 EE_Parameter |
0x0080063e DiffRoll |
0x00800640 MesswertRoll |
0x00800642 TrimNick |
0x00800644 Parameter_NaviGpsP |
0x00800645 ErsatzKompassInGrad |
0x00800647 GyroFaktorGier |
0x00800648 MittelIntegralRoll2 |
0x0080064c Parameter_NaviGpsModeControl |
0x0080064d TrimRoll |
0x0080064f MesswertNick |
0x00800651 motorOutRear |
0x00800653 Parameter_NaviGpsI |
0x00800654 RohMesswertRoll |
0x00800656 MIN_GAS |
0x00800657 Parameter_NaviGpsACC |
0x00800658 MittelIntegralNick2 |
0x0080065c Mittelwert_AccHoch |
0x0080065e RohMesswertNick |
0x00800660 IntegralFaktorGier |
0x00800661 DiffNick |
0x00800663 MittelIntegralNick |
0x00800667 desiredAngle |
0x00800669 NaviAccNick |
0x0080066b Parameter_J16Timing |
0x0080066c MittelIntegralRoll |
0x00800670 AdNeutralGierBias |
0x00800672 IntegralFaktor |
0x00800673 tmp_motorwert |
0x00800677 angle |
0x00800679 Parameter_NaviOperatingRadius |
0x0080067a thrust |
0x0080067c Parameter_NaviWindCorrection |
0x0080067d s |
0x0080067e h |
0x0080067f Mittelwert_AccNick |
0x00800681 Parameter_NaviSpeedCompensation |
0x00800682 Motor |
0x00800684 Parameter_J17Timing |
0x00800685 MAX_GAS |
0x00800686 MesswertGier |
0x00800688 Parameter_J16Bitmask |
0x00800689 NaviAccRoll |
0x0080068b GyroFaktor |
0x0080068c m |
0x0080068d ErsatzKompass |
0x00800691 Mittelwert_AccRoll |
0x00800693 Parameter_NaviGpsGain |
0x00800694 Parameter_ExternalControl |
0x00800695 Parameter_J17Bitmask |
0x00800696 Parameter_NaviGpsD |
COMMON 0x00800697 0x1 printf_P.o |
0x00800697 PrintZiel |
COMMON 0x00800698 0x24 twimaster.o |
0x00800698 motor_rx2 |
0x008006a8 MotorError |
0x008006aa motor_rx |
0x008006ba MotorPresent |
COMMON 0x008006bc 0x2d rc.o |
0x008006bc Channels |
0x008006bd PPM_in |
0x008006d3 PPM_diff |
COMMON 0x008006e9 0x246 uart.o |
0x008006e9 Data3D |
0x008006f7 Timer3D |
0x008006f9 SendeBuffer |
0x0080078f NMEABuffer |
0x00800825 Debug_Timer |
0x00800827 VersionInfo |
0x00800831 MotorTest |
0x00800841 WinkelOut |
0x00800849 ExternControl |
0x00800854 Kompass_Timer |
0x00800856 RxdBuffer |
0x008008ec DebugOut |
0x0080092e ConfirmFrame |
0x0080092f PROVIDE (__bss_end, .) |
0x0000b962 __data_load_start = LOADADDR (.data) |
0x0000bc32 __data_load_end = (__data_load_start + SIZEOF (.data)) |
.noinit 0x0080092f 0x0 |
0x0080092f PROVIDE (__noinit_start, .) |
*(.noinit*) |
0x0080092f PROVIDE (__noinit_end, .) |
0x0080092f _end = . |
0x0080092f PROVIDE (__heap_start, .) |
.eeprom 0x00810000 0x800 |
*(.eeprom*) |
.eeprom 0x00810000 0x800 fc.o |
0x00810000 EEPromArray |
0x00810800 __eeprom_end = . |
.fuse |
*(.fuse) |
*(.lfuse) |
*(.hfuse) |
*(.efuse) |
.lock |
*(.lock*) |
.signature |
*(.signature*) |
.stab 0x00000000 0x20dc |
*(.stab) |
.stab 0x00000000 0x6b4 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
.stab 0x000006b4 0x66c isqrt.o |
0x678 (size before relaxing) |
.stab 0x00000d20 0x78 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) |
0x84 (size before relaxing) |
.stab 0x00000d98 0x4bc C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
0x4c8 (size before relaxing) |
.stab 0x00001254 0x90 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(cmpsf2.o) |
0x9c (size before relaxing) |
.stab 0x000012e4 0x6c C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
0x78 (size before relaxing) |
.stab 0x00001350 0x240 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) |
0x24c (size before relaxing) |
.stab 0x00001590 0x318 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
0x324 (size before relaxing) |
.stab 0x000018a8 0x1e0 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
0x1ec (size before relaxing) |
.stab 0x00001a88 0x78 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_inf.o) |
0x84 (size before relaxing) |
.stab 0x00001b00 0x54 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
0x60 (size before relaxing) |
.stab 0x00001b54 0x84 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_pscA.o) |
0x90 (size before relaxing) |
.stab 0x00001bd8 0x84 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_pscB.o) |
0x90 (size before relaxing) |
.stab 0x00001c5c 0xfc C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_round.o) |
0x108 (size before relaxing) |
.stab 0x00001d58 0x1d4 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split3.o) |
0x1e0 (size before relaxing) |
.stab 0x00001f2c 0x90 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
0x9c (size before relaxing) |
.stab 0x00001fbc 0x6c C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(gesf2.o) |
0x78 (size before relaxing) |
.stab 0x00002028 0xb4 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(memchr.o) |
0xc0 (size before relaxing) |
.stabstr 0x00000000 0x566 |
*(.stabstr) |
.stabstr 0x00000000 0x566 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
.stab.excl |
*(.stab.excl) |
.stab.exclstr |
*(.stab.exclstr) |
.stab.index |
*(.stab.index) |
.stab.indexstr |
*(.stab.indexstr) |
.comment |
*(.comment) |
.debug |
*(.debug) |
.line |
*(.line) |
.debug_srcinfo |
*(.debug_srcinfo) |
.debug_sfnames |
*(.debug_sfnames) |
.debug_aranges 0x00000000 0x28 |
*(.debug_aranges) |
.debug_aranges |
0x00000000 0x14 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
.debug_aranges |
0x00000014 0x14 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
.debug_pubnames |
0x00000000 0x46 |
*(.debug_pubnames) |
.debug_pubnames |
0x00000000 0x23 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
.debug_pubnames |
0x00000023 0x23 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
.debug_info 0x00000000 0x1f6 |
*(.debug_info) |
.debug_info 0x00000000 0xfd C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
.debug_info 0x000000fd 0xf9 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
*(.gnu.linkonce.wi.*) |
.debug_abbrev 0x00000000 0x12b |
*(.debug_abbrev) |
.debug_abbrev 0x00000000 0x9a C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
.debug_abbrev 0x0000009a 0x91 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
.debug_line 0x00000000 0x1aa |
*(.debug_line) |
.debug_line 0x00000000 0xd5 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
.debug_line 0x000000d5 0xd5 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
.debug_frame |
*(.debug_frame) |
.debug_str 0x00000000 0xe7 |
*(.debug_str) |
.debug_str 0x00000000 0xb5 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
0xe9 (size before relaxing) |
.debug_str 0x000000b5 0x32 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
0xe9 (size before relaxing) |
.debug_loc |
*(.debug_loc) |
.debug_macinfo |
*(.debug_macinfo) |
OUTPUT(Flight-Ctrl_MEGA644_V0_76g_SVN.elf elf32-avr) |
LOAD linker stubs |
Cross Reference Table |
Symbol File |
ADC_Init analog.o |
main.o |
ANALOG_TEXT uart.o |
AdNeutralGier fc.o |
rc.o |
menu.o |
AdNeutralGierBias fc.o |
AdNeutralNick fc.o |
rc.o |
menu.o |
analog.o |
AdNeutralRoll fc.o |
rc.o |
menu.o |
analog.o |
AdReady analog.o |
timer0.o |
fc.o |
main.o |
AdWertAccHoch analog.o |
fc.o |
AdWertAccNick analog.o |
menu.o |
fc.o |
AdWertAccRoll analog.o |
menu.o |
fc.o |
AdWertGier analog.o |
menu.o |
fc.o |
AdWertGierFilter analog.o |
AdWertNick analog.o |
menu.o |
fc.o |
AdWertNickFilter analog.o |
fc.o |
AdWertRoll analog.o |
menu.o |
fc.o |
AdWertRollFilter analog.o |
fc.o |
AddCRC uart.o |
Aktuell_Gier analog.o |
Aktuell_Nick analog.o |
Aktuell_Roll analog.o |
Aktuell_ax analog.o |
Aktuell_ay analog.o |
Aktuell_az fc.o |
analog.o |
AnalogOffsetGier analog.o |
twimaster.o |
menu.o |
AnalogOffsetNick analog.o |
twimaster.o |
menu.o |
AnalogOffsetRoll analog.o |
twimaster.o |
menu.o |
AnzahlEmpfangsBytes uart.o |
Array menu.o |
BaroExpandActive fc.o |
BattLowVoltageWarning main.o |
fc.o |
BearbeiteRxDaten uart.o |
main.o |
BeepMuster timer0.o |
main.o |
CalMk3Mag main.o |
CalibrierMittelwert fc.o |
Channels rc.o |
CheckDelay timer0.o |
uart.o |
analog.o |
main.o |
CntCrcError uart.o |
ConfirmFrame uart.o |
CosinusNickWinkel fc.o |
CosinusRollWinkel fc.o |
CountMilliseconds timer0.o |
Data3D uart.o |
DatenUebertragung uart.o |
main.o |
DebugDataAnforderung uart.o |
DebugDataIntervall uart.o |
DebugDisplayAnforderung uart.o |
DebugDisplayAnforderung1 uart.o |
DebugOut uart.o |
fc.o |
main.o |
DebugTextAnforderung uart.o |
Debug_Timer uart.o |
Decode64 uart.o |
DefaultKonstanten1 fc.o |
main.o |
DefaultKonstanten2 fc.o |
main.o |
DefaultKonstanten3 fc.o |
main.o |
DefaultStickMapping fc.o |
main.o |
Delay_ms timer0.o |
fc.o |
Delay_ms_Mess timer0.o |
fc.o |
analog.o |
DiffNick fc.o |
DiffRoll fc.o |
DispPtr menu.o |
printf_P.o |
DisplayBuff menu.o |
uart.o |
printf_P.o |
DisplayLine uart.o |
DruckOffsetSetting menu.o |
fc.o |
analog.o |
EEPromArray fc.o |
uart.o |
menu.o |
analog.o |
main.o |
EE_Parameter uart.o |
timer0.o |
menu.o |
led.o |
fc.o |
main.o |
ErsatzKompass uart.o |
fc.o |
ErsatzKompassInGrad fc.o |
ExpandBaro analog.o |
fc.o |
ExternControl uart.o |
fc.o |
main.o |
ExternHoehenValue fc.o |
ExternStickGier fc.o |
main.o |
ExternStickNick fc.o |
main.o |
ExternStickRoll fc.o |
main.o |
FlugMinuten main.o |
menu.o |
FlugMinutenGesamt main.o |
menu.o |
GIER_GRAD_FAKTOR fc.o |
uart.o |
main.o |
GetActiveParamSetNumber fc.o |
uart.o |
menu.o |
main.o |
GetExternalControl uart.o |
GetPPMChannelAnforderung uart.o |
GetVersionAnforderung uart.o |
GierGyroFehler fc.o |
GyroDefektG analog.o |
GyroDefektN analog.o |
GyroDefektR analog.o |
GyroFaktor fc.o |
GyroFaktorGier fc.o |
HiResNick analog.o |
fc.o |
HiResRoll analog.o |
fc.o |
HoehenReglerAktiv fc.o |
HoehenWert fc.o |
menu.o |
analog.o |
I2CError twimaster.o |
I2CTimeout fc.o |
twimaster.o |
menu.o |
main.o |
I2C_ReceiveByte twimaster.o |
I2C_ReceiveLastByte twimaster.o |
I2C_WriteByte twimaster.o |
IntegralAccNick fc.o |
IntegralAccRoll fc.o |
IntegralAccZ fc.o |
IntegralFaktor fc.o |
IntegralFaktorGier fc.o |
IntegralNick fc.o |
uart.o |
timer0.o |
IntegralNick2 fc.o |
IntegralRoll fc.o |
uart.o |
IntegralRoll2 fc.o |
Integral_Gier fc.o |
Intervall3D uart.o |
J16Blinkcount led.o |
J16Mask led.o |
J17Blinkcount led.o |
J17Mask led.o |
Ki fc.o |
KompassRichtung fc.o |
uart.o |
timer0.o |
menu.o |
KompassSignalSchlecht fc.o |
KompassStartwert fc.o |
uart.o |
timer0.o |
menu.o |
KompassValue fc.o |
uart.o |
timer0.o |
menu.o |
Kompass_Timer uart.o |
KopplungsteilNickRoll fc.o |
KopplungsteilRollNick fc.o |
LED1_Timing led.o |
LED2_Timing led.o |
LED_Init led.o |
fc.o |
LED_Update led.o |
main.o |
LageKorrekturNick fc.o |
LageKorrekturRoll fc.o |
LcdClear menu.o |
main.o |
LipoDetection main.o |
uart.o |
LoadHandler fc.o |
Looping_Links fc.o |
Looping_Nick fc.o |
Looping_Oben fc.o |
Looping_Rechts fc.o |
Looping_Roll fc.o |
Looping_Unten fc.o |
Luftdruck analog.o |
fc.o |
MAX_GAS fc.o |
MIN_GAS fc.o |
MaxMenue menu.o |
uart.o |
MaxStickNick fc.o |
MaxStickRoll fc.o |
MeineSlaveAdresse uart.o |
Menu menu.o |
uart.o |
MenuePunkt menu.o |
uart.o |
MessLuftdruck analog.o |
menu.o |
fc.o |
Mess_IntegralNick fc.o |
Mess_IntegralNick2 fc.o |
Mess_IntegralRoll fc.o |
Mess_IntegralRoll2 fc.o |
Mess_Integral_Gier fc.o |
Mess_Integral_Gier2 fc.o |
Mess_Integral_Hoch fc.o |
analog.o |
MesswertGier fc.o |
MesswertGierBias fc.o |
MesswertNick fc.o |
MesswertRoll fc.o |
MikroKopterFlags fc.o |
led.o |
main.o |
MissingMotor twimaster.o |
menu.o |
fc.o |
main.o |
MittelIntegralNick fc.o |
MittelIntegralNick2 fc.o |
MittelIntegralRoll fc.o |
MittelIntegralRoll2 fc.o |
Mittelwert fc.o |
Mittelwert_AccHoch menu.o |
fc.o |
Mittelwert_AccNick fc.o |
Mittelwert_AccRoll fc.o |
Mixer uart.o |
timer0.o |
rc.o |
twimaster.o |
printf_P.o |
menu.o |
led.o |
fc.o |
analog.o |
main.o |
Motor twimaster.o |
fc.o |
MotorError twimaster.o |
menu.o |
main.o |
MotorPresent twimaster.o |
menu.o |
main.o |
MotorRegler fc.o |
main.o |
MotorSmoothing fc.o |
MotorTest uart.o |
fc.o |
MotorenEin fc.o |
led.o |
main.o |
NMEABuffer uart.o |
NaviAccNick fc.o |
NaviAccRoll fc.o |
NaviCntAcc fc.o |
NeueKoordinateEmpfangen uart.o |
NeuerDatensatzEmpfangen uart.o |
NeutralAccX fc.o |
menu.o |
analog.o |
NeutralAccY fc.o |
menu.o |
analog.o |
NeutralAccZ fc.o |
menu.o |
analog.o |
NewPpmData rc.o |
fc.o |
PAD_0 printf_P.o |
PAD_SP printf_P.o |
PC_DebugTimeout uart.o |
PC_MotortestActive uart.o |
fc.o |
PPM_diff rc.o |
fc.o |
PPM_in uart.o |
rc.o |
menu.o |
fc.o |
main.o |
PRINT printf_P.o |
PRINTP printf_P.o |
ParameterZuordnung fc.o |
Parameter_AchsKopplung1 fc.o |
Parameter_AchsKopplung2 fc.o |
Parameter_CouplingYawCorrection fc.o |
Parameter_DynamicStability fc.o |
Parameter_ExternalControl fc.o |
Parameter_Gier_P fc.o |
Parameter_Gyro_D fc.o |
Parameter_Gyro_Gier_I fc.o |
Parameter_Gyro_Gier_P fc.o |
Parameter_Gyro_I fc.o |
Parameter_Gyro_P fc.o |
Parameter_Hoehe_ACC_Wirkung fc.o |
Parameter_Hoehe_GPS_Z fc.o |
Parameter_Hoehe_P fc.o |
Parameter_I_Faktor fc.o |
Parameter_J16Bitmask fc.o |
Parameter_J16Timing led.o |
fc.o |
Parameter_J17Bitmask fc.o |
Parameter_J17Timing led.o |
fc.o |
Parameter_KompassWirkung fc.o |
Parameter_LoopGasLimit fc.o |
Parameter_Luftdruck_D fc.o |
Parameter_MaxHoehe fc.o |
Parameter_NaviGpsACC fc.o |
Parameter_NaviGpsD fc.o |
Parameter_NaviGpsGain fc.o |
Parameter_NaviGpsI fc.o |
Parameter_NaviGpsModeControl fc.o |
Parameter_NaviGpsP fc.o |
Parameter_NaviOperatingRadius fc.o |
Parameter_NaviSpeedCompensation fc.o |
Parameter_NaviWindCorrection fc.o |
Parameter_ServoNickControl fc.o |
timer0.o |
menu.o |
Parameter_ServoRollControl fc.o |
Parameter_UserParam1 fc.o |
uart.o |
Parameter_UserParam2 fc.o |
uart.o |
Parameter_UserParam3 fc.o |
Parameter_UserParam4 fc.o |
Parameter_UserParam5 fc.o |
Parameter_UserParam6 fc.o |
Parameter_UserParam7 fc.o |
Parameter_UserParam8 fc.o |
PcZugriff uart.o |
main.o |
Piep fc.o |
uart.o |
main.o |
PlatinenVersion main.o |
menu.o |
fc.o |
Poti1 fc.o |
menu.o |
Poti2 fc.o |
menu.o |
Poti3 fc.o |
menu.o |
Poti4 fc.o |
menu.o |
PrintZiel printf_P.o |
Putchar printf_P.o |
ReadParameterSet fc.o |
uart.o |
main.o |
RemoteKeys menu.o |
uart.o |
RequiredMotors fc.o |
main.o |
RohMesswertNick fc.o |
RohMesswertRoll fc.o |
RxDataLen uart.o |
RxdBuffer uart.o |
SendMotorData fc.o |
main.o |
SendOutData uart.o |
SendSPI timer0.o |
main.o |
SendVersionToNavi main.o |
fc.o |
SendeBuffer uart.o |
SenderOkay fc.o |
rc.o |
menu.o |
led.o |
main.o |
SenderRSSI fc.o |
ServoActive timer0.o |
uart.o |
fc.o |
main.o |
ServoNickValue timer0.o |
ServoRollValue timer0.o |
SetActiveParamSetNumber fc.o |
uart.o |
main.o |
SetDelay timer0.o |
uart.o |
analog.o |
main.o |
SetNeutral fc.o |
main.o |
SioTmp uart.o |
SollHoehe fc.o |
menu.o |
StartLuftdruck fc.o |
analog.o |
StartNeutralNick fc.o |
StartNeutralRoll fc.o |
StickGas fc.o |
StickGier fc.o |
main.o |
StickNick fc.o |
main.o |
StickRoll fc.o |
main.o |
SucheGyroOffset analog.o |
fc.o |
SucheLuftruckOffset analog.o |
fc.o |
main.o |
SummenHoehe analog.o |
fc.o |
TIMER2_Init timer0.o |
main.o |
TestInt menu.o |
Timer3D uart.o |
Timer_Init timer0.o |
main.o |
TrichterFlug fc.o |
TrimNick fc.o |
TrimRoll fc.o |
UART_Init uart.o |
main.o |
UBat analog.o |
menu.o |
fc.o |
main.o |
UebertragungAbgeschlossen uart.o |
Umschlag180Nick fc.o |
uart.o |
Umschlag180Roll fc.o |
uart.o |
UpdateMotor timer0.o |
main.o |
VarioMeter analog.o |
fc.o |
VersionInfo uart.o |
WinkelOut uart.o |
fc.o |
main.o |
WriteParameterSet fc.o |
uart.o |
main.o |
ZaehlMessungen analog.o |
fc.o |
__addsf3 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) |
fc.o |
analog.o |
__addsf3x C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) |
__bad_interrupt C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__bss_end C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_clear_bss.o) |
__bss_start C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_clear_bss.o) |
__cmpsf2 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(cmpsf2.o) |
__data_end C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o) |
__data_load_start C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o) |
__data_start C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o) |
__divmodhi4 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodhi4.o) |
uart.o |
timer0.o |
mymath.o |
rc.o |
fc.o |
__divmodsi4 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodsi4.o) |
uart.o |
mymath.o |
fc.o |
__do_clear_bss C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_clear_bss.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
uart.o |
timer0.o |
mymath.o |
rc.o |
twimaster.o |
printf_P.o |
menu.o |
led.o |
fc.o |
analog.o |
main.o |
__do_copy_data C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
uart.o |
timer0.o |
mymath.o |
rc.o |
twimaster.o |
printf_P.o |
menu.o |
led.o |
fc.o |
analog.o |
main.o |
__eerd_block C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
fc.o |
main.o |
__eewr_block C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
uart.o |
fc.o |
main.o |
__epilogue_restores__ C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_epilogue.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
uart.o |
mymath.o |
printf_P.o |
fc.o |
analog.o |
__eqsf2 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(cmpsf2.o) |
__fixsfsi C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
menu.o |
fc.o |
analog.o |
__fixunssfsi C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
fc.o |
__floatsisf C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
fc.o |
__floatunsisf C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
__fp_cmp C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(gesf2.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(cmpsf2.o) |
__fp_inf C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_inf.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
__fp_nan C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
__fp_pscA C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_pscA.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
__fp_pscB C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_pscB.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
__fp_round C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_round.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) |
__fp_split3 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split3.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
__fp_splitA C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split3.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) |
__fp_szero C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
__fp_zero C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
__gesf2 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(gesf2.o) |
__gtsf2 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(gesf2.o) |
analog.o |
__heap_end C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__init C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__lesf2 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(cmpsf2.o) |
__ltsf2 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(cmpsf2.o) |
analog.o |
__mulsi3 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_mulsi3.o) |
uart.o |
timer0.o |
fc.o |
analog.o |
__nesf2 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(cmpsf2.o) |
__prologue_saves__ C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_prologue.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eewr_block.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(eerd_block.o) |
uart.o |
printf_P.o |
fc.o |
__stack C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
main.o |
__subsf3 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) |
fc.o |
analog.o |
__tablejump2__ C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_tablejump.o) |
uart.o |
twimaster.o |
menu.o |
analog.o |
__tablejump__ C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_tablejump.o) |
__udivmodhi4 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodhi4.o) |
C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodhi4.o) |
timer0.o |
fc.o |
analog.o |
__udivmodqi4 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodqi4.o) |
menu.o |
main.o |
__udivmodsi4 C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodsi4.o) |
C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodsi4.o) |
printf_P.o |
__vector_1 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_10 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_11 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_12 rc.o |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_13 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_14 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_15 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_16 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_17 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_18 timer0.o |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_19 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_2 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_20 uart.o |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_21 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_22 uart.o |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_23 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_24 analog.o |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_25 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_26 twimaster.o |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_27 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_3 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_4 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_5 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_6 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_7 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_8 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_9 timer0.o |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vector_default C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
__vectors C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
_div C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodhi4.o) |
_exit C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_exit.o) |
_printf_P printf_P.o |
menu.o |
analog.o |
main.o |
angle fc.o |
beeptime timer0.o |
fc.o |
main.o |
c_atan2 mymath.o |
c_cos_8192 mymath.o |
fc.o |
c_sin_8192 mymath.o |
c_sqrt mymath.o |
cntKompass timer0.o |
controllerD fc.o |
controllerDD fc.o |
controllerP fc.o |
desiredAngle fc.o |
exit C:/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_exit.o) |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
filterDD fc.o |
filtersum fc.o |
gyroScaled fc.o |
gyroScaledOld fc.o |
h fc.o |
i2c_init twimaster.o |
main.o |
i2c_reset twimaster.o |
main.o |
i2c_start twimaster.o |
fc.o |
analog.o |
i2c_stop twimaster.o |
i2c_write_byte twimaster.o |
ihypot isqrt.o |
fc.o |
ipk fc.o |
isqrt16 isqrt.o |
isqrt32 isqrt.o |
kd fc.o |
kdd fc.o |
kp fc.o |
m fc.o |
main main.o |
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644.o |
maxcontrollerD fc.o |
maxcontrollerDD fc.o |
maxcontrollerP fc.o |
memchr C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(memchr.o) |
printf_P.o |
messanzahl_AccHoch analog.o |
mincontrollerD fc.o |
mincontrollerDD fc.o |
mincontrollerP fc.o |
modell_fliegt fc.o |
analog.o |
motor twimaster.o |
fc.o |
motorOutFront fc.o |
motorOutRear fc.o |
motor_rx twimaster.o |
motor_rx2 twimaster.o |
motorread twimaster.o |
main.o |
pRxData uart.o |
pgm_atanlookup mymath.o |
pgm_sinlookup mymath.o |
rc_sum_init rc.o |
main.o |
s fc.o |
thrust fc.o |
tmpChannels rc.o |
tmp_motorwert fc.o |
twi_state twimaster.o |
fc.o |
analog.o |
uart_putchar uart.o |
printf_P.o |
ucflg1 fc.o |
ucflg2 fc.o |
ucflg3 fc.o |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/Settings.h |
---|
--- _Settings.h (nonexistent) |
+++ _Settings.h (revision 2248) |
@@ -0,0 +1,18 @@ |
+// -------------------------------------- |
+// for fine tuning of amplfier |
+// -------------------------------------- |
+#define ACC_AMPLIFY 6 |
+ |
+// -------------------------------------- |
+// Radio Control Setup |
+// -------------------------------------- |
+ #define K_NICK 0 |
+ #define K_ROLL 1 |
+ #define K_GAS 2 |
+ #define K_GIER 3 |
+ #define K_POTI1 4 |
+ #define K_POTI2 5 |
+ #define K_POTI3 6 |
+ #define K_POTI4 7 |
+ |
+// *** EOF ****************************** |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/analog.c |
---|
0,0 → 1,316 |
/***************************************************************************************************************************** |
* File: analog.c |
* |
* Purpose: collecting ADC analog inputs from PORTA |
* |
* Functions: void ADC_Init(void) |
* void SucheLuftruckOffset(void) |
* void SucheGyroOffset(void) |
* ISR(ADC_vect) |
* |
*****************************************************************************************************************************/ |
#include "analog.h" |
#include "main.h" |
volatile int Aktuell_Nick, Aktuell_Roll, Aktuell_Gier, Aktuell_ax, Aktuell_ay, Aktuell_az, UBat = 100; |
volatile int AdWertNickFilter = 0, AdWertRollFilter = 0, AdWertGierFilter = 0; |
volatile int HiResNick = 2500, HiResRoll = 2500; |
volatile int AdWertNick = 0, AdWertRoll = 0, AdWertGier = 0; |
volatile int AdWertAccRoll = 0, AdWertAccNick = 0, AdWertAccHoch = 0; |
volatile char messanzahl_AccHoch = 0; |
volatile long Luftdruck = 32000; |
volatile long SummenHoehe = 0; |
volatile int StartLuftdruck; |
volatile unsigned int MessLuftdruck = 1023; |
unsigned char DruckOffsetSetting; |
signed char ExpandBaro = 0; |
volatile int VarioMeter = 0; |
volatile unsigned int ZaehlMessungen = 0; |
unsigned char AnalogOffsetNick = 115, AnalogOffsetRoll = 115, AnalogOffsetGier = 115; |
unsigned char GyroDefektN = 0, GyroDefektR = 0, GyroDefektG = 0; |
volatile unsigned char AdReady = 1; |
// ************************************************************************************************************************************* |
// initialize the analog digital converter ADC |
// ------------------------------------------------------------------------------------------------------------------------------------- |
void ADC_Init(void) |
{ |
// ADMUX = ADC Multiplexer Selection Register –> REFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0 |
// ----------------------------------------------------------------------------------------- |
// REFS1:0 = Reference Selection Bits |
// ADLAR = ADC Left Adjust Result |
// MUX4:0 = Analog Channel and Gain Selection Bits |
// |
ADMUX = 0; // AREF, Internal Vref is turned off |
// // the result is right adjusted |
// // MUX = 00000 = ADC0 |
// ADCSRA = Analog Digital Conversion Status Register A -> ADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS0 |
// --------------------------------------------------------------------------------------------------- |
// ADEN = Writing this bit to one enables the ADC |
// ADSC = start conversion |
// ADATE = When this bit is written to one, Auto Triggering of the ADC is enabled |
// ADIE = ADC Interrupt Enable. When this bit is written to one and the I-bit in SREG is set, the ADC Conversion Complete Interrupt is activated. |
// ADPS = These bits determine the division factor between the XTAL frequency and the input clock to the ADC. |
// Prescaler with ADPS2 ADPS1 ADPS0 = 111 = Division Factor 128 = 156.25 kHz |
// |
ANALOG_ON; // #define ANALOG_ON ADCSRA=(1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0) |
} |
// *** EOF: void ADC_Init(void) ************************************************************************************ |
#define DESIRED_H_ADC 800 |
// ********************************************************************************************************************************* |
// initialize the air pressure offset |
// ------------------------------------ |
void SucheLuftruckOffset(void) |
{ |
unsigned int off; |
off = eeprom_read_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET]); |
if(off > 20) off -= 10; |
OCR0A = off; // Timer/Counter0 Output Compare Register A |
ExpandBaro = 0; |
Delay_ms_Mess(100); // -> timer0.c |
if(MessLuftdruck < DESIRED_H_ADC) off = 0; // #define DESIRED_H_ADC 800 |
for(; off < 250;off++) |
{ |
OCR0A = off; |
Delay_ms_Mess(50); |
printf("."); |
if(MessLuftdruck < DESIRED_H_ADC) break; |
} |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET], off); |
DruckOffsetSetting = off; |
Delay_ms_Mess(300); |
} |
// *** EOF: SucheLuftruckOffset(void) ********************************************************************************************** |
// ********************************************************************************************************************************* |
// initialize the Gyro-Offset |
// --------------------------- |
void SucheGyroOffset(void) |
{ |
unsigned char i, ready = 0; |
int timeout; |
GyroDefektN = 0; GyroDefektR = 0; GyroDefektG = 0; |
timeout = SetDelay(2000); |
for(i=140; i != 0; i--) |
{ |
if(ready==3 && i>10) i = 9; |
ready = 0; |
if(AdWertNick < 1020) AnalogOffsetNick--; else if(AdWertNick > 1030) AnalogOffsetNick++; else ready++; |
if(AdWertRoll < 1020) AnalogOffsetRoll--; else if(AdWertRoll > 1030) AnalogOffsetRoll++; else ready++; |
if(AdWertGier < 1020) AnalogOffsetGier--; else if(AdWertGier > 1030) AnalogOffsetGier++; else ready++; |
twi_state = 8; |
i2c_start(); |
if(AnalogOffsetNick < 10) { GyroDefektN = 1; AnalogOffsetNick = 10;}; if(AnalogOffsetNick > 245) { GyroDefektN = 1; AnalogOffsetNick = 245;}; |
if(AnalogOffsetRoll < 10) { GyroDefektR = 1; AnalogOffsetRoll = 10;}; if(AnalogOffsetRoll > 245) { GyroDefektR = 1; AnalogOffsetRoll = 245;}; |
if(AnalogOffsetGier < 10) { GyroDefektG = 1; AnalogOffsetGier = 10;}; if(AnalogOffsetGier > 245) { GyroDefektG = 1; AnalogOffsetGier = 245;}; |
while(twi_state) if(CheckDelay(timeout)) {printf("\n\r DAC or I2C ERROR! Check I2C, 3Vref, DAC and BL-Ctrl"); break;} |
AdReady = 0; |
ANALOG_ON; // #define ANALOG_ON ADCSRA=(1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE) |
while(!AdReady); |
if(i<10) Delay_ms_Mess(10); |
} |
Delay_ms_Mess(70); |
} |
// *** EOF: SucheGyroOffset(void) ************************************************************************************************** |
// ********************************************************************************************************************************* |
// read analog input with the following sequence: |
// --------------------------------------------------------------------------------------------------- |
// case: |
// 0 nick-gyro |
// 1 roll-gyro |
// 2 gier-gyro |
// 3 y acc roll |
// 4 x acc nick |
// 5 nick-gyro |
// 6 roll-gyro |
// 7 voltage V |
// 8 z acc |
// 9 air pressure |
// 10 nick-gyro |
// 11 roll-gyro |
// 12 gier-gyro |
// 13 y acc roll |
// 14 x acc nick |
// 15 nick-gyro |
// 16 roll-gyro |
// 17 air pressure |
// --------------------------------------------------------------------------------------------------- |
ISR(ADC_vect) |
{ |
static unsigned char kanal=0,state = 0; |
static signed int gier1, roll1, nick1, nick_filter, roll_filter; |
static signed int accy, accx; |
static long tmpLuftdruck = 0; |
static char messanzahl_Druck = 0; |
switch(state++) |
{ |
case 0: // nick gyro |
nick1 = ADC; // Messwert Nick aus dem Gyroskop (kippen nach vorne-hinten) |
kanal = AD_ROLL; // #define AD_ROLL 1 |
break; |
case 1: // roll gyro |
roll1 = 512; // Messwert Roll aus dem Gyroskop (kippen nach rechts-links) |
kanal = AD_GIER; // #define AD_GIER 0 |
break; |
case 2: // gier gyro |
gier1 = 512; // Messwert Gier aus dem Gyroskop (drehen um Hochachse) |
kanal = AD_ACC_Y; // #define AD_ACC_Y 6 // Rollen |
break; |
case 3: // y acc roll |
Aktuell_ay = NeutralAccY - 512; |
accy = Aktuell_ay; // Messwert Y=Roll des ACC Sensors |
kanal = AD_ACC_X; // #define AD_ACC_X 7 // Nicken |
break; |
case 4: |
Aktuell_ax = ADC - NeutralAccX; // Messwert X=Nick des ACC Sensors |
accx = Aktuell_ax; |
kanal = AD_NICK; // #define AD_NICK 2 |
break; |
case 5: |
nick1 += ADC; // Messwert Nick aus dem Gyroskop (kippen nach vorne-hinten) |
kanal = AD_ROLL; // #define AD_ROLL 1 |
break; |
case 6: |
roll1 += 512; // Messwert Roll aus dem Gyroskop (kippen nach rechts-links) |
kanal = AD_UBAT; // #define AD_UBAT 4 |
break; |
case 7: |
UBat = (3 * UBat + ADC / 3) / 4; // Voltage |
kanal = AD_ACC_Z; // #define AD_ACC_Z 5 |
break; |
case 8: // Z acc Sensor |
AdWertAccHoch = 512 - NeutralAccZ; |
if(AdWertAccHoch > 1) |
{ |
if(NeutralAccZ < 750) |
{ |
NeutralAccZ += 0.02; |
if(modell_fliegt < 500) NeutralAccZ += 0.1; |
} |
} |
else if(AdWertAccHoch < -1) |
{ |
if(NeutralAccZ > 550) |
{ |
NeutralAccZ-= 0.02; |
if(modell_fliegt < 500) NeutralAccZ -= 0.1; |
} |
} |
messanzahl_AccHoch = 1; // Messwert Z des ACC Sensors |
Aktuell_az = 512; |
Mess_Integral_Hoch += AdWertAccHoch; // Integrieren |
Mess_Integral_Hoch -= Mess_Integral_Hoch / 1024; // dämfen |
kanal = AD_DRUCK; |
break; |
// "case 9:" fehlt hier absichtlich |
case 10: |
nick1 += ADC; |
kanal = AD_ROLL; // #define AD_ROLL 1 |
break; |
case 11: |
roll1 += 512; |
kanal = AD_GIER; // #define AD_GIER 0 |
break; |
case 12: |
AdWertGier = (512 + gier1); // AdWertGier müsste so um die 1020 liegen |
kanal = AD_ACC_Y; // #define AD_ACC_Y 6 |
break; |
case 13: |
Aktuell_ay = NeutralAccY - 512; |
AdWertAccRoll = (Aktuell_ay + accy); // Messwert Roll des ACC Sensors |
kanal = AD_ACC_X; // #define AD_ACC_X 7 |
break; |
case 14: |
Aktuell_ax = ADC - NeutralAccX; |
AdWertAccNick = (Aktuell_ax + accx); // 2nd measure of ACC Nick Sensor 0...512 |
kanal = AD_NICK; // #define AD_NICK 2 |
break; |
case 15: |
nick1 += ADC; |
nick1 *= 4; |
AdWertNick = nick1 / 8; // dieser Wert ist doppelt so hoch wie ADC |
nick_filter = (nick_filter + nick1) / 2; // nick_filter müsste mit ca 500 passen |
HiResNick = nick_filter - AdNeutralNick; // der Wert wird hier auf den Nullpunkt normiert |
AdWertNickFilter = (AdWertNickFilter + HiResNick) / 2; // und gefiltert |
kanal = AD_ROLL; // #define AD_ROLL 1 |
break; |
case 16: |
roll1 += 512; |
roll1 *= 4; |
AdWertRoll = roll1 / 8; // dieser Wert ist doppelt so hoch wie ADC |
roll_filter = (roll_filter + roll1) / 2; // ähnlich wie bei Nick in case 15 |
HiResRoll = roll_filter - AdNeutralRoll; // der Wert wird hier auf den Nullpunkt normiert |
AdWertRollFilter = (AdWertRollFilter + HiResRoll) / 2; // und gefiltert |
kanal = AD_DRUCK; // #define AD_DRUCK 3 |
break; |
case 17: |
state = 0; |
AdReady = 1; // alle Analogeingänge sind nun bedient worden |
ZaehlMessungen++; // counts one up as all cases have been passed through |
// "break" fehlt hier absichtlich |
case 9: |
MessLuftdruck = 512; |
tmpLuftdruck += MessLuftdruck; |
if(++messanzahl_Druck >= 18) |
{ |
Luftdruck = (7 * Luftdruck + tmpLuftdruck - (18 * 523) * (long)ExpandBaro + 4) / 8; // -523.19 counts per 10 counts offset step |
HoehenWert = StartLuftdruck - Luftdruck; |
SummenHoehe -= SummenHoehe / SM_FILTER; // #define SM_FILTER 16 |
SummenHoehe += HoehenWert; |
VarioMeter = (15 * VarioMeter + 8 * (int)(HoehenWert - SummenHoehe/SM_FILTER))/16; |
tmpLuftdruck /= 2; |
messanzahl_Druck = 18/2; |
} |
kanal = AD_NICK; // #define AD_NICK 2 |
break; |
default: |
kanal = 0; state = 0; kanal = AD_NICK; // #define AD_NICK 2 |
break; |
} |
ADMUX = kanal; |
if(state != 0) ANALOG_ON; // #define ANALOG_ON ADCSRA=(1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE) |
} |
// EOF : ISR(ADC_vect) **************************************************************************************************************** |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/analog.d |
---|
0,0 → 1,2 |
analog.o analog.d : analog.c analog.h main.h old_macros.h _Settings.h printf_P.h \ |
timer0.h uart.h eeprom.h twimaster.h menu.h rc.h fc.h led.h |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/analog.h |
---|
0,0 → 1,54 |
/***************************************************************************************************************************** |
* File: analog.h |
* Purpose: header of analog.c |
*****************************************************************************************************************************/ |
#ifndef _ANALOG_H |
#define _ANALOG_H |
#define SM_FILTER 16 |
extern volatile int UBat; // Voltage |
extern volatile int AdWertNick, AdWertRoll, AdWertGier; |
extern volatile int AdWertAccRoll,AdWertAccNick,AdWertAccHoch; |
extern volatile int HiResNick, HiResRoll; |
extern volatile int AdWertNickFilter, AdWertRollFilter, AdWertGierFilter; |
extern volatile int Aktuell_Nick,Aktuell_Roll,Aktuell_Gier,Aktuell_ax, Aktuell_ay,Aktuell_az; |
extern volatile char MessanzahlNick; |
extern unsigned char AnalogOffsetNick, AnalogOffsetRoll, AnalogOffsetGier; // to be passed to DAC |
extern volatile unsigned char AdReady; // ready with ADC in analog.c |
extern volatile int StartLuftdruck; |
extern volatile long Luftdruck; |
extern volatile long SummenHoehe; |
extern volatile char messanzahl_Druck; |
extern volatile unsigned int ZaehlMessungen; |
extern unsigned char DruckOffsetSetting; |
extern signed char ExpandBaro; |
extern volatile int VarioMeter; |
extern volatile unsigned int MessLuftdruck; |
// ----------------------------------------------- functions ------------------------------------ |
unsigned int ReadADC(unsigned char adc_input); |
void ADC_Init(void); |
void SucheLuftruckOffset(void); |
void SucheGyroOffset(void); |
//------------------------------------ definitions ---------------------------------------------- |
#define AD_GIER 0 |
#define AD_ROLL 1 |
#define AD_NICK 2 |
#define AD_DRUCK 3 |
#define AD_UBAT 4 |
#define AD_ACC_Z 5 |
#define AD_ACC_Y 6 |
#define AD_ACC_X 7 |
#define ANALOG_OFF ADCSRA=0 |
// switch on ADCs at Single trigger Mode, Interrupt on |
#define ANALOG_ON ADCSRA=(1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE) |
#endif |
// *** EOF: _ANALOG_H ****************************************************************************************************** |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/analog.lst |
---|
0,0 → 1,1393 |
1 .file "analog.c" |
2 .arch atmega644 |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .global AdReady |
11 .data |
14 AdReady: |
15 0000 01 .byte 1 |
16 .global GyroDefektG |
17 .global GyroDefektG |
18 .section .bss |
21 GyroDefektG: |
22 0000 00 .skip 1,0 |
23 .global GyroDefektR |
24 .global GyroDefektR |
27 GyroDefektR: |
28 0001 00 .skip 1,0 |
29 .global GyroDefektN |
30 .global GyroDefektN |
33 GyroDefektN: |
34 0002 00 .skip 1,0 |
35 .global AnalogOffsetGier |
36 .data |
39 AnalogOffsetGier: |
40 0001 73 .byte 115 |
41 .global AnalogOffsetRoll |
44 AnalogOffsetRoll: |
45 0002 73 .byte 115 |
46 .global AnalogOffsetNick |
49 AnalogOffsetNick: |
50 0003 73 .byte 115 |
51 .global ZaehlMessungen |
52 .global ZaehlMessungen |
53 .section .bss |
56 ZaehlMessungen: |
57 0003 0000 .skip 2,0 |
58 .global VarioMeter |
59 .global VarioMeter |
62 VarioMeter: |
63 0005 0000 .skip 2,0 |
64 .global ExpandBaro |
65 .global ExpandBaro |
68 ExpandBaro: |
69 0007 00 .skip 1,0 |
70 .global MessLuftdruck |
71 .data |
74 MessLuftdruck: |
75 0004 FF03 .word 1023 |
76 .global SummenHoehe |
77 .global SummenHoehe |
78 .section .bss |
81 SummenHoehe: |
82 0008 0000 0000 .skip 4,0 |
83 .global Luftdruck |
84 .data |
87 Luftdruck: |
88 0006 007D 0000 .long 32000 |
89 .global messanzahl_AccHoch |
90 .global messanzahl_AccHoch |
91 .section .bss |
94 messanzahl_AccHoch: |
95 000c 00 .skip 1,0 |
96 .global AdWertAccHoch |
97 .global AdWertAccHoch |
100 AdWertAccHoch: |
101 000d 0000 .skip 2,0 |
102 .global AdWertAccNick |
103 .global AdWertAccNick |
106 AdWertAccNick: |
107 000f 0000 .skip 2,0 |
108 .global AdWertAccRoll |
109 .global AdWertAccRoll |
112 AdWertAccRoll: |
113 0011 0000 .skip 2,0 |
114 .global AdWertGier |
115 .global AdWertGier |
118 AdWertGier: |
119 0013 0000 .skip 2,0 |
120 .global AdWertRoll |
121 .global AdWertRoll |
124 AdWertRoll: |
125 0015 0000 .skip 2,0 |
126 .global AdWertNick |
127 .global AdWertNick |
130 AdWertNick: |
131 0017 0000 .skip 2,0 |
132 .global HiResRoll |
133 .data |
136 HiResRoll: |
137 000a C409 .word 2500 |
138 .global HiResNick |
141 HiResNick: |
142 000c C409 .word 2500 |
143 .global AdWertGierFilter |
144 .global AdWertGierFilter |
145 .section .bss |
148 AdWertGierFilter: |
149 0019 0000 .skip 2,0 |
150 .global AdWertRollFilter |
151 .global AdWertRollFilter |
154 AdWertRollFilter: |
155 001b 0000 .skip 2,0 |
156 .global AdWertNickFilter |
157 .global AdWertNickFilter |
160 AdWertNickFilter: |
161 001d 0000 .skip 2,0 |
162 .global UBat |
163 .data |
166 UBat: |
167 000e 6400 .word 100 |
168 .text |
169 .global ADC_Init |
171 ADC_Init: |
172 /* prologue: frame size=0 */ |
173 /* prologue end (size=0) */ |
174 0000 1092 7C00 sts 124,__zero_reg__ |
175 0004 8FEC ldi r24,lo8(-49) |
176 0006 8093 7A00 sts 122,r24 |
177 /* epilogue: frame size=0 */ |
178 000a 0895 ret |
179 /* epilogue end (size=1) */ |
180 /* function ADC_Init size 6 (5) */ |
182 .section .progmem.data,"a",@progbits |
185 __c.12: |
186 0000 2E00 .string "." |
187 .text |
188 .global SucheLuftruckOffset |
190 SucheLuftruckOffset: |
191 /* prologue: frame size=0 */ |
192 000c 0F93 push r16 |
193 000e 1F93 push r17 |
194 0010 CF93 push r28 |
195 0012 DF93 push r29 |
196 /* prologue end (size=4) */ |
197 .L3: |
198 0014 8FB3 in r24,63-0x20 |
199 0016 9927 clr r25 |
200 0018 8C01 movw r16,r24 |
201 001a 0270 andi r16,lo8(2) |
202 001c 1070 andi r17,hi8(2) |
203 001e 81FD sbrc r24,1 |
204 0020 00C0 rjmp .L3 |
205 0022 80E0 ldi r24,lo8(EEPromArray+3) |
206 0024 90E0 ldi r25,hi8(EEPromArray+3) |
207 0026 92BD out (65)+1-0x20,r25 |
208 0028 81BD out 65-0x20,r24 |
209 /* #APP */ |
210 /* START EEPROM READ CRITICAL SECTION */ |
211 002a F89A sbi 31, 0 |
212 002c 80B5 in r24, 32 |
213 /* END EEPROM READ CRITICAL SECTION */ |
214 |
215 /* #NOAPP */ |
216 002e C82F mov r28,r24 |
217 0030 DD27 clr r29 |
218 0032 C531 cpi r28,21 |
219 0034 D105 cpc r29,__zero_reg__ |
220 0036 00F0 brlo .L7 |
221 0038 2A97 sbiw r28,10 |
222 .L7: |
223 003a C7BD out 71-0x20,r28 |
224 003c 1092 0000 sts ExpandBaro,__zero_reg__ |
225 0040 84E6 ldi r24,lo8(100) |
226 0042 90E0 ldi r25,hi8(100) |
227 0044 0E94 0000 call Delay_ms_Mess |
228 0048 8091 0000 lds r24,MessLuftdruck |
229 004c 9091 0000 lds r25,(MessLuftdruck)+1 |
230 0050 8052 subi r24,lo8(800) |
231 0052 9340 sbci r25,hi8(800) |
232 0054 00F4 brsh .L8 |
233 0056 E801 movw r28,r16 |
234 .L8: |
235 0058 CA3F cpi r28,250 |
236 005a D105 cpc r29,__zero_reg__ |
237 005c 00F4 brsh .L10 |
238 005e 00E0 ldi r16,lo8(__c.12) |
239 0060 10E0 ldi r17,hi8(__c.12) |
240 .L13: |
241 0062 C7BD out 71-0x20,r28 |
242 0064 82E3 ldi r24,lo8(50) |
243 0066 90E0 ldi r25,hi8(50) |
244 0068 0E94 0000 call Delay_ms_Mess |
245 006c 1F93 push r17 |
246 006e 0F93 push r16 |
247 0070 1F92 push __zero_reg__ |
248 0072 0E94 0000 call _printf_P |
249 0076 8091 0000 lds r24,MessLuftdruck |
250 007a 9091 0000 lds r25,(MessLuftdruck)+1 |
251 007e 0F90 pop __tmp_reg__ |
252 0080 0F90 pop __tmp_reg__ |
253 0082 0F90 pop __tmp_reg__ |
254 0084 8052 subi r24,lo8(800) |
255 0086 9340 sbci r25,hi8(800) |
256 0088 00F0 brlo .L10 |
257 008a 2196 adiw r28,1 |
258 008c CA3F cpi r28,250 |
259 008e D105 cpc r29,__zero_reg__ |
260 0090 00F0 brlo .L13 |
261 .L10: |
262 0092 2C2F mov r18,r28 |
263 .L14: |
264 0094 F999 sbic 63-0x20,1 |
265 0096 00C0 rjmp .L14 |
266 0098 1FBA out 63-0x20,__zero_reg__ |
267 009a 80E0 ldi r24,lo8(EEPromArray+3) |
268 009c 90E0 ldi r25,hi8(EEPromArray+3) |
269 009e 92BD out (65)+1-0x20,r25 |
270 00a0 81BD out 65-0x20,r24 |
271 00a2 20BD out 64-0x20,r18 |
272 /* #APP */ |
273 /* START EEPROM WRITE CRITICAL SECTION */ |
274 00a4 0FB6 in r0, 63 |
275 00a6 F894 cli |
276 00a8 FA9A sbi 31, 2 |
277 00aa F99A sbi 31, 1 |
278 00ac 0FBE out 63, r0 |
279 /* END EEPROM WRITE CRITICAL SECTION */ |
280 /* #NOAPP */ |
281 00ae C093 0000 sts DruckOffsetSetting,r28 |
282 00b2 8CE2 ldi r24,lo8(300) |
283 00b4 91E0 ldi r25,hi8(300) |
284 00b6 0E94 0000 call Delay_ms_Mess |
285 /* epilogue: frame size=0 */ |
286 00ba DF91 pop r29 |
287 00bc CF91 pop r28 |
288 00be 1F91 pop r17 |
289 00c0 0F91 pop r16 |
290 00c2 0895 ret |
291 /* epilogue end (size=5) */ |
292 /* function SucheLuftruckOffset size 111 (102) */ |
294 .section .progmem.data |
297 __c.11: |
298 0002 0A0D 2044 .string "\n\r DAC or I2C ERROR! Check I2C, 3Vref, DAC and BL-Ctrl" |
298 4143 206F |
298 7220 4932 |
298 4320 4552 |
298 524F 5221 |
299 .text |
300 .global SucheGyroOffset |
302 SucheGyroOffset: |
303 /* prologue: frame size=0 */ |
304 00c4 EF92 push r14 |
305 00c6 FF92 push r15 |
306 00c8 0F93 push r16 |
307 00ca 1F93 push r17 |
308 00cc CF93 push r28 |
309 00ce DF93 push r29 |
310 /* prologue end (size=6) */ |
311 00d0 00E0 ldi r16,lo8(0) |
312 00d2 0093 0000 sts GyroDefektN,r16 |
313 00d6 0093 0000 sts GyroDefektR,r16 |
314 00da 0093 0000 sts GyroDefektG,r16 |
315 00de 80ED ldi r24,lo8(2000) |
316 00e0 97E0 ldi r25,hi8(2000) |
317 00e2 0E94 0000 call SetDelay |
318 00e6 EC01 movw r28,r24 |
319 00e8 1CE8 ldi r17,lo8(-116) |
320 00ea 91E0 ldi r25,lo8(1) |
321 00ec F92E mov r15,r25 |
322 00ee 85EF ldi r24,lo8(-11) |
323 00f0 E82E mov r14,r24 |
324 .L51: |
325 00f2 0330 cpi r16,lo8(3) |
326 00f4 01F4 brne .+2 |
327 00f6 00C0 rjmp .L59 |
328 .L24: |
329 00f8 00E0 ldi r16,lo8(0) |
330 00fa 8091 0000 lds r24,AdWertNick |
331 00fe 9091 0000 lds r25,(AdWertNick)+1 |
332 0102 8C5F subi r24,lo8(1020) |
333 0104 9340 sbci r25,hi8(1020) |
334 0106 04F0 brlt .+2 |
335 0108 00C0 rjmp .L25 |
336 010a 8091 0000 lds r24,AnalogOffsetNick |
337 010e 8150 subi r24,lo8(-(-1)) |
338 .L56: |
339 0110 8093 0000 sts AnalogOffsetNick,r24 |
340 .L26: |
341 0114 8091 0000 lds r24,AdWertRoll |
342 0118 9091 0000 lds r25,(AdWertRoll)+1 |
343 011c 8C5F subi r24,lo8(1020) |
344 011e 9340 sbci r25,hi8(1020) |
345 0120 04F0 brlt .+2 |
346 0122 00C0 rjmp .L29 |
347 0124 8091 0000 lds r24,AnalogOffsetRoll |
348 0128 8150 subi r24,lo8(-(-1)) |
349 .L57: |
350 012a 8093 0000 sts AnalogOffsetRoll,r24 |
351 .L30: |
352 012e 8091 0000 lds r24,AdWertGier |
353 0132 9091 0000 lds r25,(AdWertGier)+1 |
354 0136 8C5F subi r24,lo8(1020) |
355 0138 9340 sbci r25,hi8(1020) |
356 013a 04F0 brlt .+2 |
357 013c 00C0 rjmp .L33 |
358 013e 8091 0000 lds r24,AnalogOffsetGier |
359 0142 8150 subi r24,lo8(-(-1)) |
360 .L58: |
361 0144 8093 0000 sts AnalogOffsetGier,r24 |
362 .L34: |
363 0148 88E0 ldi r24,lo8(8) |
364 014a 8093 0000 sts twi_state,r24 |
365 014e 0E94 0000 call i2c_start |
366 0152 8091 0000 lds r24,AnalogOffsetNick |
367 0156 8A30 cpi r24,lo8(10) |
368 0158 00F0 brlo .+2 |
369 015a 00C0 rjmp .L37 |
370 015c F092 0000 sts GyroDefektN,r15 |
371 0160 8AE0 ldi r24,lo8(10) |
372 0162 8093 0000 sts AnalogOffsetNick,r24 |
373 .L38: |
374 0166 8091 0000 lds r24,AnalogOffsetRoll |
375 016a 8A30 cpi r24,lo8(10) |
376 016c 00F0 brlo .+2 |
377 016e 00C0 rjmp .L39 |
378 0170 F092 0000 sts GyroDefektR,r15 |
379 0174 8AE0 ldi r24,lo8(10) |
380 0176 8093 0000 sts AnalogOffsetRoll,r24 |
381 .L40: |
382 017a 8091 0000 lds r24,AnalogOffsetGier |
383 017e 8A30 cpi r24,lo8(10) |
384 0180 00F4 brsh .L41 |
385 0182 F092 0000 sts GyroDefektG,r15 |
386 0186 8AE0 ldi r24,lo8(10) |
387 0188 8093 0000 sts AnalogOffsetGier,r24 |
388 .L42: |
389 018c 8091 0000 lds r24,twi_state |
390 0190 8823 tst r24 |
391 0192 01F0 breq .L44 |
392 0194 CE01 movw r24,r28 |
393 0196 0E94 0000 call CheckDelay |
394 019a 8823 tst r24 |
395 019c 01F0 breq .L42 |
396 019e 80E0 ldi r24,lo8(__c.11) |
397 01a0 90E0 ldi r25,hi8(__c.11) |
398 01a2 9F93 push r25 |
399 01a4 8F93 push r24 |
400 01a6 1F92 push __zero_reg__ |
401 01a8 0E94 0000 call _printf_P |
402 01ac 0F90 pop __tmp_reg__ |
403 01ae 0F90 pop __tmp_reg__ |
404 01b0 0F90 pop __tmp_reg__ |
405 .L44: |
406 01b2 1092 0000 sts AdReady,__zero_reg__ |
407 01b6 8FEC ldi r24,lo8(-49) |
408 01b8 8093 7A00 sts 122,r24 |
409 .L47: |
410 01bc 8091 0000 lds r24,AdReady |
411 01c0 8823 tst r24 |
412 01c2 01F0 breq .L47 |
413 01c4 1A30 cpi r17,lo8(10) |
414 01c6 00F4 brsh .+2 |
415 01c8 00C0 rjmp .L60 |
416 .L23: |
417 01ca 1150 subi r17,lo8(-(-1)) |
418 01cc 01F0 breq .+2 |
419 01ce 00C0 rjmp .L51 |
420 01d0 00C0 rjmp .L61 |
421 .L33: |
422 01d2 8091 0000 lds r24,AdWertGier |
423 01d6 9091 0000 lds r25,(AdWertGier)+1 |
424 01da 8750 subi r24,lo8(1031) |
425 01dc 9440 sbci r25,hi8(1031) |
426 01de 04F0 brlt .L35 |
427 01e0 8091 0000 lds r24,AnalogOffsetGier |
428 01e4 8F5F subi r24,lo8(-(1)) |
429 01e6 00C0 rjmp .L58 |
430 .L41: |
431 01e8 863F cpi r24,lo8(-10) |
432 01ea 00F0 brlo .L42 |
433 01ec F092 0000 sts GyroDefektG,r15 |
434 01f0 E092 0000 sts AnalogOffsetGier,r14 |
435 01f4 00C0 rjmp .L42 |
436 .L39: |
437 01f6 863F cpi r24,lo8(-10) |
438 01f8 00F4 brsh .+2 |
439 01fa 00C0 rjmp .L40 |
440 01fc F092 0000 sts GyroDefektR,r15 |
441 0200 E092 0000 sts AnalogOffsetRoll,r14 |
442 0204 00C0 rjmp .L40 |
443 .L37: |
444 0206 863F cpi r24,lo8(-10) |
445 0208 00F4 brsh .+2 |
446 020a 00C0 rjmp .L38 |
447 020c F092 0000 sts GyroDefektN,r15 |
448 0210 E092 0000 sts AnalogOffsetNick,r14 |
449 0214 00C0 rjmp .L38 |
450 .L29: |
451 0216 8091 0000 lds r24,AdWertRoll |
452 021a 9091 0000 lds r25,(AdWertRoll)+1 |
453 021e 8750 subi r24,lo8(1031) |
454 0220 9440 sbci r25,hi8(1031) |
455 0222 04F0 brlt .L31 |
456 0224 8091 0000 lds r24,AnalogOffsetRoll |
457 0228 8F5F subi r24,lo8(-(1)) |
458 022a 00C0 rjmp .L57 |
459 .L25: |
460 022c 8091 0000 lds r24,AdWertNick |
461 0230 9091 0000 lds r25,(AdWertNick)+1 |
462 0234 8750 subi r24,lo8(1031) |
463 0236 9440 sbci r25,hi8(1031) |
464 0238 04F0 brlt .L27 |
465 023a 8091 0000 lds r24,AnalogOffsetNick |
466 023e 8F5F subi r24,lo8(-(1)) |
467 0240 00C0 rjmp .L56 |
468 .L35: |
469 0242 0F5F subi r16,lo8(-(1)) |
470 0244 00C0 rjmp .L34 |
471 .L31: |
472 0246 0F5F subi r16,lo8(-(1)) |
473 0248 00C0 rjmp .L30 |
474 .L27: |
475 024a 01E0 ldi r16,lo8(1) |
476 024c 00C0 rjmp .L26 |
477 .L59: |
478 024e 1B30 cpi r17,lo8(11) |
479 0250 00F4 brsh .+2 |
480 0252 00C0 rjmp .L24 |
481 0254 19E0 ldi r17,lo8(9) |
482 0256 00C0 rjmp .L24 |
483 .L60: |
484 0258 8AE0 ldi r24,lo8(10) |
485 025a 90E0 ldi r25,hi8(10) |
486 025c 0E94 0000 call Delay_ms_Mess |
487 0260 00C0 rjmp .L23 |
488 .L61: |
489 0262 86E4 ldi r24,lo8(70) |
490 0264 90E0 ldi r25,hi8(70) |
491 0266 0E94 0000 call Delay_ms_Mess |
492 /* epilogue: frame size=0 */ |
493 026a E6E0 ldi r30,6 |
494 026c CDB7 in r28,__SP_L__ |
495 026e DEB7 in r29,__SP_H__ |
496 0270 0C94 0000 jmp __epilogue_restores__+24 |
497 /* epilogue end (size=5) */ |
498 /* function SucheGyroOffset size 223 (212) */ |
500 .lcomm kanal.0,1 |
501 .lcomm state.1,1 |
502 .lcomm gier1.2,2 |
503 .lcomm roll1.3,2 |
504 .lcomm nick1.4,2 |
505 .lcomm nick_filter.5,2 |
506 .lcomm roll_filter.6,2 |
507 .lcomm accy.7,2 |
508 .lcomm accx.8,2 |
509 .lcomm tmpLuftdruck.9,4 |
510 .lcomm messanzahl_Druck.10,1 |
511 .global __vector_24 |
513 __vector_24: |
514 /* prologue: frame size=0 */ |
515 0274 1F92 push __zero_reg__ |
516 0276 0F92 push __tmp_reg__ |
517 0278 0FB6 in __tmp_reg__,__SREG__ |
518 027a 0F92 push __tmp_reg__ |
519 027c 1124 clr __zero_reg__ |
520 027e AF92 push r10 |
521 0280 BF92 push r11 |
522 0282 CF92 push r12 |
523 0284 DF92 push r13 |
524 0286 EF92 push r14 |
525 0288 FF92 push r15 |
526 028a 0F93 push r16 |
527 028c 1F93 push r17 |
528 028e 2F93 push r18 |
529 0290 3F93 push r19 |
530 0292 4F93 push r20 |
531 0294 5F93 push r21 |
532 0296 6F93 push r22 |
533 0298 7F93 push r23 |
534 029a 8F93 push r24 |
535 029c 9F93 push r25 |
536 029e AF93 push r26 |
537 02a0 BF93 push r27 |
538 02a2 EF93 push r30 |
539 02a4 FF93 push r31 |
540 /* prologue end (size=25) */ |
541 02a6 2091 0000 lds r18,state.1 |
542 02aa 822F mov r24,r18 |
543 02ac 9927 clr r25 |
544 02ae AA27 clr r26 |
545 02b0 BB27 clr r27 |
546 02b2 2F5F subi r18,lo8(-(1)) |
547 02b4 FC01 movw r30,r24 |
548 02b6 4297 sbiw r24,18 |
549 02b8 00F4 brsh .L104 |
550 02ba E050 subi r30,lo8(-(pm(.L105))) |
551 02bc F040 sbci r31,hi8(-(pm(.L105))) |
552 02be 0C94 0000 jmp __tablejump2__ |
553 .data |
554 .section .progmem.gcc_sw_table, "a", @progbits |
555 .p2align 1 |
556 .L105: |
557 0000 0000 .word pm(.L64) |
558 0002 0000 .word pm(.L65) |
559 0004 0000 .word pm(.L66) |
560 0006 0000 .word pm(.L67) |
561 0008 0000 .word pm(.L68) |
562 000a 0000 .word pm(.L69) |
563 000c 0000 .word pm(.L70) |
564 000e 0000 .word pm(.L71) |
565 0010 0000 .word pm(.L72) |
566 0012 0000 .word pm(.L107) |
567 0014 0000 .word pm(.L69) |
568 0016 0000 .word pm(.L84) |
569 0018 0000 .word pm(.L85) |
570 001a 0000 .word pm(.L86) |
571 001c 0000 .word pm(.L87) |
572 001e 0000 .word pm(.L88) |
573 0020 0000 .word pm(.L92) |
574 0022 0000 .word pm(.L96) |
575 .text |
576 .L104: |
577 02c2 1092 0000 sts state.1,__zero_reg__ |
578 02c6 82E0 ldi r24,lo8(2) |
579 .L111: |
580 02c8 8093 0000 sts kanal.0,r24 |
581 .L63: |
582 02cc 8091 0000 lds r24,kanal.0 |
583 02d0 8093 7C00 sts 124,r24 |
584 02d4 8091 0000 lds r24,state.1 |
585 02d8 8823 tst r24 |
586 02da 01F4 brne .+2 |
587 02dc 00C0 rjmp .L62 |
588 02de 8FEC ldi r24,lo8(-49) |
589 02e0 8093 7A00 sts 122,r24 |
590 02e4 00C0 rjmp .L62 |
591 .L69: |
592 02e6 2093 0000 sts state.1,r18 |
593 02ea 8091 7800 lds r24,120 |
594 02ee 9091 7900 lds r25,(120)+1 |
595 02f2 2091 0000 lds r18,nick1.4 |
596 02f6 3091 0000 lds r19,(nick1.4)+1 |
597 02fa 820F add r24,r18 |
598 02fc 931F adc r25,r19 |
599 .L113: |
600 02fe 9093 0000 sts (nick1.4)+1,r25 |
601 0302 8093 0000 sts nick1.4,r24 |
602 0306 81E0 ldi r24,lo8(1) |
603 0308 00C0 rjmp .L111 |
604 .L70: |
605 030a 2093 0000 sts state.1,r18 |
606 030e 8091 0000 lds r24,roll1.3 |
607 0312 9091 0000 lds r25,(roll1.3)+1 |
608 0316 8050 subi r24,lo8(-(512)) |
609 0318 9E4F sbci r25,hi8(-(512)) |
610 031a 9093 0000 sts (roll1.3)+1,r25 |
611 031e 8093 0000 sts roll1.3,r24 |
612 0322 84E0 ldi r24,lo8(4) |
613 0324 00C0 rjmp .L111 |
614 .L68: |
615 0326 2093 0000 sts state.1,r18 |
616 032a 8091 7800 lds r24,120 |
617 032e 9091 7900 lds r25,(120)+1 |
618 0332 2091 0000 lds r18,NeutralAccX |
619 0336 3091 0000 lds r19,(NeutralAccX)+1 |
620 033a 821B sub r24,r18 |
621 033c 930B sbc r25,r19 |
622 033e 9093 0000 sts (Aktuell_ax)+1,r25 |
623 0342 8093 0000 sts Aktuell_ax,r24 |
624 0346 8091 0000 lds r24,Aktuell_ax |
625 034a 9091 0000 lds r25,(Aktuell_ax)+1 |
626 034e 9093 0000 sts (accx.8)+1,r25 |
627 0352 8093 0000 sts accx.8,r24 |
628 0356 82E0 ldi r24,lo8(2) |
629 0358 00C0 rjmp .L111 |
630 .L67: |
631 035a 2093 0000 sts state.1,r18 |
632 035e 8091 0000 lds r24,NeutralAccY |
633 0362 9091 0000 lds r25,(NeutralAccY)+1 |
634 0366 8050 subi r24,lo8(-(-512)) |
635 0368 9240 sbci r25,hi8(-(-512)) |
636 036a 9093 0000 sts (Aktuell_ay)+1,r25 |
637 036e 8093 0000 sts Aktuell_ay,r24 |
638 0372 8091 0000 lds r24,Aktuell_ay |
639 0376 9091 0000 lds r25,(Aktuell_ay)+1 |
640 037a 9093 0000 sts (accy.7)+1,r25 |
641 037e 8093 0000 sts accy.7,r24 |
642 0382 87E0 ldi r24,lo8(7) |
643 0384 00C0 rjmp .L111 |
644 .L66: |
645 0386 2093 0000 sts state.1,r18 |
646 038a 80E0 ldi r24,lo8(512) |
647 038c 92E0 ldi r25,hi8(512) |
648 038e 9093 0000 sts (gier1.2)+1,r25 |
649 0392 8093 0000 sts gier1.2,r24 |
650 0396 86E0 ldi r24,lo8(6) |
651 0398 00C0 rjmp .L111 |
652 .L65: |
653 039a 2093 0000 sts state.1,r18 |
654 039e 80E0 ldi r24,lo8(512) |
655 03a0 92E0 ldi r25,hi8(512) |
656 .L112: |
657 03a2 9093 0000 sts (roll1.3)+1,r25 |
658 03a6 8093 0000 sts roll1.3,r24 |
659 03aa 1092 0000 sts kanal.0,__zero_reg__ |
660 03ae 00C0 rjmp .L63 |
661 .L64: |
662 03b0 2093 0000 sts state.1,r18 |
663 03b4 8091 7800 lds r24,120 |
664 03b8 9091 7900 lds r25,(120)+1 |
665 03bc 00C0 rjmp .L113 |
666 .L96: |
667 03be 1092 0000 sts state.1,__zero_reg__ |
668 03c2 81E0 ldi r24,lo8(1) |
669 03c4 8093 0000 sts AdReady,r24 |
670 03c8 8091 0000 lds r24,ZaehlMessungen |
671 03cc 9091 0000 lds r25,(ZaehlMessungen)+1 |
672 03d0 0196 adiw r24,1 |
673 03d2 9093 0000 sts (ZaehlMessungen)+1,r25 |
674 03d6 8093 0000 sts ZaehlMessungen,r24 |
675 .L97: |
676 03da 80E0 ldi r24,lo8(512) |
677 03dc 92E0 ldi r25,hi8(512) |
678 03de 9093 0000 sts (MessLuftdruck)+1,r25 |
679 03e2 8093 0000 sts MessLuftdruck,r24 |
680 03e6 8091 0000 lds r24,MessLuftdruck |
681 03ea 9091 0000 lds r25,(MessLuftdruck)+1 |
682 03ee 5C01 movw r10,r24 |
683 03f0 CC24 clr r12 |
684 03f2 DD24 clr r13 |
685 03f4 8091 0000 lds r24,tmpLuftdruck.9 |
686 03f8 9091 0000 lds r25,(tmpLuftdruck.9)+1 |
687 03fc A091 0000 lds r26,(tmpLuftdruck.9)+2 |
688 0400 B091 0000 lds r27,(tmpLuftdruck.9)+3 |
689 0404 A80E add r10,r24 |
690 0406 B91E adc r11,r25 |
691 0408 CA1E adc r12,r26 |
692 040a DB1E adc r13,r27 |
693 040c 8091 0000 lds r24,messanzahl_Druck.10 |
694 0410 8F5F subi r24,lo8(-(1)) |
695 0412 8231 cpi r24,lo8(18) |
696 0414 00F4 brsh .+2 |
697 0416 00C0 rjmp .L108 |
698 0418 8091 0000 lds r24,Luftdruck |
699 041c 9091 0000 lds r25,(Luftdruck)+1 |
700 0420 A091 0000 lds r26,(Luftdruck)+2 |
701 0424 B091 0000 lds r27,(Luftdruck)+3 |
702 0428 7C01 movw r14,r24 |
703 042a 8D01 movw r16,r26 |
704 042c 23E0 ldi r18,3 |
705 042e EE0C 1: lsl r14 |
706 0430 FF1C rol r15 |
707 0432 001F rol r16 |
708 0434 111F rol r17 |
709 0436 2A95 dec r18 |
710 0438 01F4 brne 1b |
711 043a E81A sub r14,r24 |
712 043c F90A sbc r15,r25 |
713 043e 0A0B sbc r16,r26 |
714 0440 1B0B sbc r17,r27 |
715 0442 EA0C add r14,r10 |
716 0444 FB1C adc r15,r11 |
717 0446 0C1D adc r16,r12 |
718 0448 1D1D adc r17,r13 |
719 044a 8091 0000 lds r24,ExpandBaro |
720 044e 9927 clr r25 |
721 0450 87FD sbrc r24,7 |
722 0452 9095 com r25 |
723 0454 A92F mov r26,r25 |
724 0456 B92F mov r27,r25 |
725 0458 BC01 movw r22,r24 |
726 045a CD01 movw r24,r26 |
727 045c 26EC ldi r18,lo8(9414) |
728 045e 34E2 ldi r19,hi8(9414) |
729 0460 40E0 ldi r20,hlo8(9414) |
730 0462 50E0 ldi r21,hhi8(9414) |
731 0464 0E94 0000 call __mulsi3 |
732 0468 DC01 movw r26,r24 |
733 046a CB01 movw r24,r22 |
734 046c E81A sub r14,r24 |
735 046e F90A sbc r15,r25 |
736 0470 0A0B sbc r16,r26 |
737 0472 1B0B sbc r17,r27 |
738 0474 D801 movw r26,r16 |
739 0476 C701 movw r24,r14 |
740 0478 0496 adiw r24,4 |
741 047a A11D adc r26,__zero_reg__ |
742 047c B11D adc r27,__zero_reg__ |
743 047e B7FD sbrc r27,7 |
744 0480 00C0 rjmp .L118 |
745 .L99: |
746 0482 13E0 ldi r17,3 |
747 0484 B595 1: asr r27 |
748 0486 A795 ror r26 |
749 0488 9795 ror r25 |
750 048a 8795 ror r24 |
751 048c 1A95 dec r17 |
752 048e 01F4 brne 1b |
753 0490 8093 0000 sts Luftdruck,r24 |
754 0494 9093 0000 sts (Luftdruck)+1,r25 |
755 0498 A093 0000 sts (Luftdruck)+2,r26 |
756 049c B093 0000 sts (Luftdruck)+3,r27 |
757 04a0 8091 0000 lds r24,StartLuftdruck |
758 04a4 9091 0000 lds r25,(StartLuftdruck)+1 |
759 04a8 7C01 movw r14,r24 |
760 04aa 0027 clr r16 |
761 04ac F7FC sbrc r15,7 |
762 04ae 0095 com r16 |
763 04b0 102F mov r17,r16 |
764 04b2 8091 0000 lds r24,Luftdruck |
765 04b6 9091 0000 lds r25,(Luftdruck)+1 |
766 04ba A091 0000 lds r26,(Luftdruck)+2 |
767 04be B091 0000 lds r27,(Luftdruck)+3 |
768 04c2 E81A sub r14,r24 |
769 04c4 F90A sbc r15,r25 |
770 04c6 0A0B sbc r16,r26 |
771 04c8 1B0B sbc r17,r27 |
772 04ca E092 0000 sts HoehenWert,r14 |
773 04ce F092 0000 sts (HoehenWert)+1,r15 |
774 04d2 0093 0000 sts (HoehenWert)+2,r16 |
775 04d6 1093 0000 sts (HoehenWert)+3,r17 |
776 04da 2091 0000 lds r18,SummenHoehe |
777 04de 3091 0000 lds r19,(SummenHoehe)+1 |
778 04e2 4091 0000 lds r20,(SummenHoehe)+2 |
779 04e6 5091 0000 lds r21,(SummenHoehe)+3 |
780 04ea 57FD sbrc r21,7 |
781 04ec 00C0 rjmp .L119 |
782 .L100: |
783 04ee A4E0 ldi r26,4 |
784 04f0 5595 1: asr r21 |
785 04f2 4795 ror r20 |
786 04f4 3795 ror r19 |
787 04f6 2795 ror r18 |
788 04f8 AA95 dec r26 |
789 04fa 01F4 brne 1b |
790 04fc 8091 0000 lds r24,SummenHoehe |
791 0500 9091 0000 lds r25,(SummenHoehe)+1 |
792 0504 A091 0000 lds r26,(SummenHoehe)+2 |
793 0508 B091 0000 lds r27,(SummenHoehe)+3 |
794 050c 821B sub r24,r18 |
795 050e 930B sbc r25,r19 |
796 0510 A40B sbc r26,r20 |
797 0512 B50B sbc r27,r21 |
798 0514 8093 0000 sts SummenHoehe,r24 |
799 0518 9093 0000 sts (SummenHoehe)+1,r25 |
800 051c A093 0000 sts (SummenHoehe)+2,r26 |
801 0520 B093 0000 sts (SummenHoehe)+3,r27 |
802 0524 8091 0000 lds r24,SummenHoehe |
803 0528 9091 0000 lds r25,(SummenHoehe)+1 |
804 052c A091 0000 lds r26,(SummenHoehe)+2 |
805 0530 B091 0000 lds r27,(SummenHoehe)+3 |
806 0534 8E0D add r24,r14 |
807 0536 9F1D adc r25,r15 |
808 0538 A01F adc r26,r16 |
809 053a B11F adc r27,r17 |
810 053c 8093 0000 sts SummenHoehe,r24 |
811 0540 9093 0000 sts (SummenHoehe)+1,r25 |
812 0544 A093 0000 sts (SummenHoehe)+2,r26 |
813 0548 B093 0000 sts (SummenHoehe)+3,r27 |
814 054c 8091 0000 lds r24,VarioMeter |
815 0550 9091 0000 lds r25,(VarioMeter)+1 |
816 0554 BC01 movw r22,r24 |
817 0556 6295 swap r22 |
818 0558 7295 swap r23 |
819 055a 707F andi r23,0xf0 |
820 055c 7627 eor r23,r22 |
821 055e 607F andi r22,0xf0 |
822 0560 7627 eor r23,r22 |
823 0562 681B sub r22,r24 |
824 0564 790B sbc r23,r25 |
825 0566 2091 0000 lds r18,SummenHoehe |
826 056a 3091 0000 lds r19,(SummenHoehe)+1 |
827 056e 4091 0000 lds r20,(SummenHoehe)+2 |
828 0572 5091 0000 lds r21,(SummenHoehe)+3 |
829 0576 57FD sbrc r21,7 |
830 0578 00C0 rjmp .L120 |
831 .L101: |
832 057a E4E0 ldi r30,4 |
833 057c 5595 1: asr r21 |
834 057e 4795 ror r20 |
835 0580 3795 ror r19 |
836 0582 2795 ror r18 |
837 0584 EA95 dec r30 |
838 0586 01F4 brne 1b |
839 0588 8091 0000 lds r24,HoehenWert |
840 058c 9091 0000 lds r25,(HoehenWert)+1 |
841 0590 821B sub r24,r18 |
842 0592 930B sbc r25,r19 |
843 0594 880F lsl r24 |
844 0596 991F rol r25 |
845 0598 880F lsl r24 |
846 059a 991F rol r25 |
847 059c 880F lsl r24 |
848 059e 991F rol r25 |
849 05a0 860F add r24,r22 |
850 05a2 971F adc r25,r23 |
851 05a4 97FD sbrc r25,7 |
852 05a6 00C0 rjmp .L121 |
853 .L102: |
854 05a8 9595 asr r25 |
855 05aa 8795 ror r24 |
856 05ac 9595 asr r25 |
857 05ae 8795 ror r24 |
858 05b0 9595 asr r25 |
859 05b2 8795 ror r24 |
860 05b4 9595 asr r25 |
861 05b6 8795 ror r24 |
862 05b8 9093 0000 sts (VarioMeter)+1,r25 |
863 05bc 8093 0000 sts VarioMeter,r24 |
864 05c0 D601 movw r26,r12 |
865 05c2 C501 movw r24,r10 |
866 05c4 D7FC sbrc r13,7 |
867 05c6 00C0 rjmp .L122 |
868 .L103: |
869 05c8 B595 asr r27 |
870 05ca A795 ror r26 |
871 05cc 9795 ror r25 |
872 05ce 8795 ror r24 |
873 05d0 8093 0000 sts tmpLuftdruck.9,r24 |
874 05d4 9093 0000 sts (tmpLuftdruck.9)+1,r25 |
875 05d8 A093 0000 sts (tmpLuftdruck.9)+2,r26 |
876 05dc B093 0000 sts (tmpLuftdruck.9)+3,r27 |
877 05e0 89E0 ldi r24,lo8(9) |
878 05e2 8093 0000 sts messanzahl_Druck.10,r24 |
879 05e6 82E0 ldi r24,lo8(2) |
880 05e8 00C0 rjmp .L111 |
881 .L92: |
882 05ea 2093 0000 sts state.1,r18 |
883 05ee 2091 0000 lds r18,roll1.3 |
884 05f2 3091 0000 lds r19,(roll1.3)+1 |
885 05f6 2050 subi r18,lo8(-(512)) |
886 05f8 3E4F sbci r19,hi8(-(512)) |
887 05fa 220F lsl r18 |
888 05fc 331F rol r19 |
889 05fe 220F lsl r18 |
890 0600 331F rol r19 |
891 0602 3093 0000 sts (roll1.3)+1,r19 |
892 0606 2093 0000 sts roll1.3,r18 |
893 060a C901 movw r24,r18 |
894 060c 37FD sbrc r19,7 |
895 060e 00C0 rjmp .L123 |
896 .L93: |
897 0610 9595 asr r25 |
898 0612 8795 ror r24 |
899 0614 9595 asr r25 |
900 0616 8795 ror r24 |
901 0618 9595 asr r25 |
902 061a 8795 ror r24 |
903 061c 9093 0000 sts (AdWertRoll)+1,r25 |
904 0620 8093 0000 sts AdWertRoll,r24 |
905 0624 8091 0000 lds r24,roll_filter.6 |
906 0628 9091 0000 lds r25,(roll_filter.6)+1 |
907 062c 820F add r24,r18 |
908 062e 931F adc r25,r19 |
909 0630 97FD sbrc r25,7 |
910 0632 00C0 rjmp .L124 |
911 .L94: |
912 0634 9595 asr r25 |
913 0636 8795 ror r24 |
914 0638 9093 0000 sts (roll_filter.6)+1,r25 |
915 063c 8093 0000 sts roll_filter.6,r24 |
916 0640 2091 0000 lds r18,AdNeutralRoll |
917 0644 3091 0000 lds r19,(AdNeutralRoll)+1 |
918 0648 821B sub r24,r18 |
919 064a 930B sbc r25,r19 |
920 064c 9093 0000 sts (HiResRoll)+1,r25 |
921 0650 8093 0000 sts HiResRoll,r24 |
922 0654 2091 0000 lds r18,AdWertRollFilter |
923 0658 3091 0000 lds r19,(AdWertRollFilter)+1 |
924 065c 8091 0000 lds r24,HiResRoll |
925 0660 9091 0000 lds r25,(HiResRoll)+1 |
926 0664 280F add r18,r24 |
927 0666 391F adc r19,r25 |
928 0668 37FD sbrc r19,7 |
929 066a 00C0 rjmp .L125 |
930 .L95: |
931 066c 3595 asr r19 |
932 066e 2795 ror r18 |
933 0670 3093 0000 sts (AdWertRollFilter)+1,r19 |
934 0674 2093 0000 sts AdWertRollFilter,r18 |
935 0678 83E0 ldi r24,lo8(3) |
936 067a 00C0 rjmp .L111 |
937 .L88: |
938 067c 2093 0000 sts state.1,r18 |
939 0680 2091 7800 lds r18,120 |
940 0684 3091 7900 lds r19,(120)+1 |
941 0688 8091 0000 lds r24,nick1.4 |
942 068c 9091 0000 lds r25,(nick1.4)+1 |
943 0690 280F add r18,r24 |
944 0692 391F adc r19,r25 |
945 0694 220F lsl r18 |
946 0696 331F rol r19 |
947 0698 220F lsl r18 |
948 069a 331F rol r19 |
949 069c 3093 0000 sts (nick1.4)+1,r19 |
950 06a0 2093 0000 sts nick1.4,r18 |
951 06a4 C901 movw r24,r18 |
952 06a6 37FD sbrc r19,7 |
953 06a8 00C0 rjmp .L126 |
954 .L89: |
955 06aa 9595 asr r25 |
956 06ac 8795 ror r24 |
957 06ae 9595 asr r25 |
958 06b0 8795 ror r24 |
959 06b2 9595 asr r25 |
960 06b4 8795 ror r24 |
961 06b6 9093 0000 sts (AdWertNick)+1,r25 |
962 06ba 8093 0000 sts AdWertNick,r24 |
963 06be 8091 0000 lds r24,nick_filter.5 |
964 06c2 9091 0000 lds r25,(nick_filter.5)+1 |
965 06c6 820F add r24,r18 |
966 06c8 931F adc r25,r19 |
967 06ca 97FD sbrc r25,7 |
968 06cc 00C0 rjmp .L127 |
969 .L90: |
970 06ce 9595 asr r25 |
971 06d0 8795 ror r24 |
972 06d2 9093 0000 sts (nick_filter.5)+1,r25 |
973 06d6 8093 0000 sts nick_filter.5,r24 |
974 06da 2091 0000 lds r18,AdNeutralNick |
975 06de 3091 0000 lds r19,(AdNeutralNick)+1 |
976 06e2 821B sub r24,r18 |
977 06e4 930B sbc r25,r19 |
978 06e6 9093 0000 sts (HiResNick)+1,r25 |
979 06ea 8093 0000 sts HiResNick,r24 |
980 06ee 2091 0000 lds r18,AdWertNickFilter |
981 06f2 3091 0000 lds r19,(AdWertNickFilter)+1 |
982 06f6 8091 0000 lds r24,HiResNick |
983 06fa 9091 0000 lds r25,(HiResNick)+1 |
984 06fe 280F add r18,r24 |
985 0700 391F adc r19,r25 |
986 0702 37FD sbrc r19,7 |
987 0704 00C0 rjmp .L128 |
988 .L91: |
989 0706 3595 asr r19 |
990 0708 2795 ror r18 |
991 070a 3093 0000 sts (AdWertNickFilter)+1,r19 |
992 070e 2093 0000 sts AdWertNickFilter,r18 |
993 0712 81E0 ldi r24,lo8(1) |
994 0714 00C0 rjmp .L111 |
995 .L87: |
996 0716 2093 0000 sts state.1,r18 |
997 071a 8091 7800 lds r24,120 |
998 071e 9091 7900 lds r25,(120)+1 |
999 0722 2091 0000 lds r18,NeutralAccX |
1000 0726 3091 0000 lds r19,(NeutralAccX)+1 |
1001 072a 821B sub r24,r18 |
1002 072c 930B sbc r25,r19 |
1003 072e 9093 0000 sts (Aktuell_ax)+1,r25 |
1004 0732 8093 0000 sts Aktuell_ax,r24 |
1005 0736 8091 0000 lds r24,Aktuell_ax |
1006 073a 9091 0000 lds r25,(Aktuell_ax)+1 |
1007 073e 2091 0000 lds r18,accx.8 |
1008 0742 3091 0000 lds r19,(accx.8)+1 |
1009 0746 820F add r24,r18 |
1010 0748 931F adc r25,r19 |
1011 074a 9093 0000 sts (AdWertAccNick)+1,r25 |
1012 074e 8093 0000 sts AdWertAccNick,r24 |
1013 0752 82E0 ldi r24,lo8(2) |
1014 0754 00C0 rjmp .L111 |
1015 .L86: |
1016 0756 2093 0000 sts state.1,r18 |
1017 075a 8091 0000 lds r24,NeutralAccY |
1018 075e 9091 0000 lds r25,(NeutralAccY)+1 |
1019 0762 8050 subi r24,lo8(-(-512)) |
1020 0764 9240 sbci r25,hi8(-(-512)) |
1021 0766 9093 0000 sts (Aktuell_ay)+1,r25 |
1022 076a 8093 0000 sts Aktuell_ay,r24 |
1023 076e 8091 0000 lds r24,Aktuell_ay |
1024 0772 9091 0000 lds r25,(Aktuell_ay)+1 |
1025 0776 2091 0000 lds r18,accy.7 |
1026 077a 3091 0000 lds r19,(accy.7)+1 |
1027 077e 820F add r24,r18 |
1028 0780 931F adc r25,r19 |
1029 0782 9093 0000 sts (AdWertAccRoll)+1,r25 |
1030 0786 8093 0000 sts AdWertAccRoll,r24 |
1031 078a 87E0 ldi r24,lo8(7) |
1032 078c 00C0 rjmp .L111 |
1033 .L85: |
1034 078e 2093 0000 sts state.1,r18 |
1035 0792 8091 0000 lds r24,gier1.2 |
1036 0796 9091 0000 lds r25,(gier1.2)+1 |
1037 079a 8050 subi r24,lo8(-(512)) |
1038 079c 9E4F sbci r25,hi8(-(512)) |
1039 079e 9093 0000 sts (AdWertGier)+1,r25 |
1040 07a2 8093 0000 sts AdWertGier,r24 |
1041 07a6 86E0 ldi r24,lo8(6) |
1042 07a8 00C0 rjmp .L111 |
1043 .L84: |
1044 07aa 2093 0000 sts state.1,r18 |
1045 07ae 8091 0000 lds r24,roll1.3 |
1046 07b2 9091 0000 lds r25,(roll1.3)+1 |
1047 07b6 8050 subi r24,lo8(-(512)) |
1048 07b8 9E4F sbci r25,hi8(-(512)) |
1049 07ba 00C0 rjmp .L112 |
1050 .L107: |
1051 07bc 2093 0000 sts state.1,r18 |
1052 07c0 00C0 rjmp .L97 |
1053 .L72: |
1054 07c2 2093 0000 sts state.1,r18 |
1055 07c6 8091 0000 lds r24,NeutralAccZ |
1056 07ca 9091 0000 lds r25,(NeutralAccZ)+1 |
1057 07ce A091 0000 lds r26,(NeutralAccZ)+2 |
1058 07d2 B091 0000 lds r27,(NeutralAccZ)+3 |
1059 07d6 9C01 movw r18,r24 |
1060 07d8 AD01 movw r20,r26 |
1061 07da 60E0 ldi r22,lo8(0x44000000) |
1062 07dc 70E0 ldi r23,hi8(0x44000000) |
1063 07de 80E0 ldi r24,hlo8(0x44000000) |
1064 07e0 94E4 ldi r25,hhi8(0x44000000) |
1065 07e2 0E94 0000 call __subsf3 |
1066 07e6 DC01 movw r26,r24 |
1067 07e8 CB01 movw r24,r22 |
1068 07ea BC01 movw r22,r24 |
1069 07ec CD01 movw r24,r26 |
1070 07ee 0E94 0000 call __fixsfsi |
1071 07f2 DC01 movw r26,r24 |
1072 07f4 CB01 movw r24,r22 |
1073 07f6 9093 0000 sts (AdWertAccHoch)+1,r25 |
1074 07fa 8093 0000 sts AdWertAccHoch,r24 |
1075 07fe 8091 0000 lds r24,AdWertAccHoch |
1076 0802 9091 0000 lds r25,(AdWertAccHoch)+1 |
1077 0806 0297 sbiw r24,2 |
1078 0808 04F4 brge .+2 |
1079 080a 00C0 rjmp .L73 |
1080 080c 8091 0000 lds r24,NeutralAccZ |
1081 0810 9091 0000 lds r25,(NeutralAccZ)+1 |
1082 0814 A091 0000 lds r26,(NeutralAccZ)+2 |
1083 0818 B091 0000 lds r27,(NeutralAccZ)+3 |
1084 081c 20E0 ldi r18,lo8(0x443b8000) |
1085 081e 30E8 ldi r19,hi8(0x443b8000) |
1086 0820 4BE3 ldi r20,hlo8(0x443b8000) |
1087 0822 54E4 ldi r21,hhi8(0x443b8000) |
1088 0824 BC01 movw r22,r24 |
1089 0826 CD01 movw r24,r26 |
1090 0828 0E94 0000 call __ltsf2 |
1091 082c 8823 tst r24 |
1092 082e 04F4 brge .L77 |
1093 0830 8091 0000 lds r24,NeutralAccZ |
1094 0834 9091 0000 lds r25,(NeutralAccZ)+1 |
1095 0838 A091 0000 lds r26,(NeutralAccZ)+2 |
1096 083c B091 0000 lds r27,(NeutralAccZ)+3 |
1097 0840 2AE0 ldi r18,lo8(0x3ca3d70a) |
1098 0842 37ED ldi r19,hi8(0x3ca3d70a) |
1099 0844 43EA ldi r20,hlo8(0x3ca3d70a) |
1100 0846 5CE3 ldi r21,hhi8(0x3ca3d70a) |
1101 0848 BC01 movw r22,r24 |
1102 084a CD01 movw r24,r26 |
1103 084c 0E94 0000 call __addsf3 |
1104 0850 DC01 movw r26,r24 |
1105 0852 CB01 movw r24,r22 |
1106 0854 8093 0000 sts NeutralAccZ,r24 |
1107 0858 9093 0000 sts (NeutralAccZ)+1,r25 |
1108 085c A093 0000 sts (NeutralAccZ)+2,r26 |
1109 0860 B093 0000 sts (NeutralAccZ)+3,r27 |
1110 0864 8091 0000 lds r24,modell_fliegt |
1111 0868 9091 0000 lds r25,(modell_fliegt)+1 |
1112 086c 845F subi r24,lo8(500) |
1113 086e 9140 sbci r25,hi8(500) |
1114 0870 00F4 brsh .L77 |
1115 0872 8091 0000 lds r24,NeutralAccZ |
1116 0876 9091 0000 lds r25,(NeutralAccZ)+1 |
1117 087a A091 0000 lds r26,(NeutralAccZ)+2 |
1118 087e B091 0000 lds r27,(NeutralAccZ)+3 |
1119 0882 2DEC ldi r18,lo8(0x3dcccccd) |
1120 0884 3CEC ldi r19,hi8(0x3dcccccd) |
1121 0886 4CEC ldi r20,hlo8(0x3dcccccd) |
1122 0888 5DE3 ldi r21,hhi8(0x3dcccccd) |
1123 088a BC01 movw r22,r24 |
1124 088c CD01 movw r24,r26 |
1125 088e 0E94 0000 call __addsf3 |
1126 .L109: |
1127 0892 DC01 movw r26,r24 |
1128 0894 CB01 movw r24,r22 |
1129 0896 8093 0000 sts NeutralAccZ,r24 |
1130 089a 9093 0000 sts (NeutralAccZ)+1,r25 |
1131 089e A093 0000 sts (NeutralAccZ)+2,r26 |
1132 08a2 B093 0000 sts (NeutralAccZ)+3,r27 |
1133 .L77: |
1134 08a6 81E0 ldi r24,lo8(1) |
1135 08a8 8093 0000 sts messanzahl_AccHoch,r24 |
1136 08ac 80E0 ldi r24,lo8(512) |
1137 08ae 92E0 ldi r25,hi8(512) |
1138 08b0 9093 0000 sts (Aktuell_az)+1,r25 |
1139 08b4 8093 0000 sts Aktuell_az,r24 |
1140 08b8 8091 0000 lds r24,AdWertAccHoch |
1141 08bc 9091 0000 lds r25,(AdWertAccHoch)+1 |
1142 08c0 AA27 clr r26 |
1143 08c2 97FD sbrc r25,7 |
1144 08c4 A095 com r26 |
1145 08c6 BA2F mov r27,r26 |
1146 08c8 2091 0000 lds r18,Mess_Integral_Hoch |
1147 08cc 3091 0000 lds r19,(Mess_Integral_Hoch)+1 |
1148 08d0 4091 0000 lds r20,(Mess_Integral_Hoch)+2 |
1149 08d4 5091 0000 lds r21,(Mess_Integral_Hoch)+3 |
1150 08d8 820F add r24,r18 |
1151 08da 931F adc r25,r19 |
1152 08dc A41F adc r26,r20 |
1153 08de B51F adc r27,r21 |
1154 08e0 8093 0000 sts Mess_Integral_Hoch,r24 |
1155 08e4 9093 0000 sts (Mess_Integral_Hoch)+1,r25 |
1156 08e8 A093 0000 sts (Mess_Integral_Hoch)+2,r26 |
1157 08ec B093 0000 sts (Mess_Integral_Hoch)+3,r27 |
1158 08f0 2091 0000 lds r18,Mess_Integral_Hoch |
1159 08f4 3091 0000 lds r19,(Mess_Integral_Hoch)+1 |
1160 08f8 4091 0000 lds r20,(Mess_Integral_Hoch)+2 |
1161 08fc 5091 0000 lds r21,(Mess_Integral_Hoch)+3 |
1162 0900 57FD sbrc r21,7 |
1163 0902 00C0 rjmp .L129 |
1164 .L82: |
1165 0904 1AE0 ldi r17,10 |
1166 0906 5595 1: asr r21 |
1167 0908 4795 ror r20 |
1168 090a 3795 ror r19 |
1169 090c 2795 ror r18 |
1170 090e 1A95 dec r17 |
1171 0910 01F4 brne 1b |
1172 0912 8091 0000 lds r24,Mess_Integral_Hoch |
1173 0916 9091 0000 lds r25,(Mess_Integral_Hoch)+1 |
1174 091a A091 0000 lds r26,(Mess_Integral_Hoch)+2 |
1175 091e B091 0000 lds r27,(Mess_Integral_Hoch)+3 |
1176 0922 821B sub r24,r18 |
1177 0924 930B sbc r25,r19 |
1178 0926 A40B sbc r26,r20 |
1179 0928 B50B sbc r27,r21 |
1180 092a 8093 0000 sts Mess_Integral_Hoch,r24 |
1181 092e 9093 0000 sts (Mess_Integral_Hoch)+1,r25 |
1182 0932 A093 0000 sts (Mess_Integral_Hoch)+2,r26 |
1183 0936 B093 0000 sts (Mess_Integral_Hoch)+3,r27 |
1184 093a 83E0 ldi r24,lo8(3) |
1185 093c 00C0 rjmp .L111 |
1186 .L71: |
1187 093e 2093 0000 sts state.1,r18 |
1188 0942 8091 0000 lds r24,UBat |
1189 0946 9091 0000 lds r25,(UBat)+1 |
1190 094a 9C01 movw r18,r24 |
1191 094c 220F lsl r18 |
1192 094e 331F rol r19 |
1193 0950 280F add r18,r24 |
1194 0952 391F adc r19,r25 |
1195 0954 8091 7800 lds r24,120 |
1196 0958 9091 7900 lds r25,(120)+1 |
1197 095c 63E0 ldi r22,lo8(3) |
1198 095e 70E0 ldi r23,hi8(3) |
1199 0960 0E94 0000 call __udivmodhi4 |
1200 0964 260F add r18,r22 |
1201 0966 371F adc r19,r23 |
1202 0968 3695 lsr r19 |
1203 096a 2795 ror r18 |
1204 096c 3695 lsr r19 |
1205 096e 2795 ror r18 |
1206 0970 3093 0000 sts (UBat)+1,r19 |
1207 0974 2093 0000 sts UBat,r18 |
1208 0978 85E0 ldi r24,lo8(5) |
1209 097a 00C0 rjmp .L111 |
1210 .L108: |
1211 097c 8093 0000 sts messanzahl_Druck.10,r24 |
1212 0980 A092 0000 sts tmpLuftdruck.9,r10 |
1213 0984 B092 0000 sts (tmpLuftdruck.9)+1,r11 |
1214 0988 C092 0000 sts (tmpLuftdruck.9)+2,r12 |
1215 098c D092 0000 sts (tmpLuftdruck.9)+3,r13 |
1216 0990 82E0 ldi r24,lo8(2) |
1217 0992 00C0 rjmp .L111 |
1218 .L73: |
1219 0994 8091 0000 lds r24,AdWertAccHoch |
1220 0998 9091 0000 lds r25,(AdWertAccHoch)+1 |
1221 099c 8F5F subi r24,lo8(-1) |
1222 099e 9F4F sbci r25,hi8(-1) |
1223 09a0 04F0 brlt .+2 |
1224 09a2 00C0 rjmp .L77 |
1225 09a4 8091 0000 lds r24,NeutralAccZ |
1226 09a8 9091 0000 lds r25,(NeutralAccZ)+1 |
1227 09ac A091 0000 lds r26,(NeutralAccZ)+2 |
1228 09b0 B091 0000 lds r27,(NeutralAccZ)+3 |
1229 09b4 20E0 ldi r18,lo8(0x44098000) |
1230 09b6 30E8 ldi r19,hi8(0x44098000) |
1231 09b8 49E0 ldi r20,hlo8(0x44098000) |
1232 09ba 54E4 ldi r21,hhi8(0x44098000) |
1233 09bc BC01 movw r22,r24 |
1234 09be CD01 movw r24,r26 |
1235 09c0 0E94 0000 call __gtsf2 |
1236 09c4 1816 cp __zero_reg__,r24 |
1237 09c6 04F0 brlt .+2 |
1238 09c8 00C0 rjmp .L77 |
1239 09ca 8091 0000 lds r24,NeutralAccZ |
1240 09ce 9091 0000 lds r25,(NeutralAccZ)+1 |
1241 09d2 A091 0000 lds r26,(NeutralAccZ)+2 |
1242 09d6 B091 0000 lds r27,(NeutralAccZ)+3 |
1243 09da 2AE0 ldi r18,lo8(0x3ca3d70a) |
1244 09dc 37ED ldi r19,hi8(0x3ca3d70a) |
1245 09de 43EA ldi r20,hlo8(0x3ca3d70a) |
1246 09e0 5CE3 ldi r21,hhi8(0x3ca3d70a) |
1247 09e2 BC01 movw r22,r24 |
1248 09e4 CD01 movw r24,r26 |
1249 09e6 0E94 0000 call __subsf3 |
1250 09ea DC01 movw r26,r24 |
1251 09ec CB01 movw r24,r22 |
1252 09ee 8093 0000 sts NeutralAccZ,r24 |
1253 09f2 9093 0000 sts (NeutralAccZ)+1,r25 |
1254 09f6 A093 0000 sts (NeutralAccZ)+2,r26 |
1255 09fa B093 0000 sts (NeutralAccZ)+3,r27 |
1256 09fe 8091 0000 lds r24,modell_fliegt |
1257 0a02 9091 0000 lds r25,(modell_fliegt)+1 |
1258 0a06 845F subi r24,lo8(500) |
1259 0a08 9140 sbci r25,hi8(500) |
1260 0a0a 00F0 brlo .+2 |
1261 0a0c 00C0 rjmp .L77 |
1262 0a0e 8091 0000 lds r24,NeutralAccZ |
1263 0a12 9091 0000 lds r25,(NeutralAccZ)+1 |
1264 0a16 A091 0000 lds r26,(NeutralAccZ)+2 |
1265 0a1a B091 0000 lds r27,(NeutralAccZ)+3 |
1266 0a1e 2DEC ldi r18,lo8(0x3dcccccd) |
1267 0a20 3CEC ldi r19,hi8(0x3dcccccd) |
1268 0a22 4CEC ldi r20,hlo8(0x3dcccccd) |
1269 0a24 5DE3 ldi r21,hhi8(0x3dcccccd) |
1270 0a26 BC01 movw r22,r24 |
1271 0a28 CD01 movw r24,r26 |
1272 0a2a 0E94 0000 call __subsf3 |
1273 0a2e 00C0 rjmp .L109 |
1274 .L125: |
1275 0a30 2F5F subi r18,lo8(-(1)) |
1276 0a32 3F4F sbci r19,hi8(-(1)) |
1277 0a34 00C0 rjmp .L95 |
1278 .L128: |
1279 0a36 2F5F subi r18,lo8(-(1)) |
1280 0a38 3F4F sbci r19,hi8(-(1)) |
1281 0a3a 00C0 rjmp .L91 |
1282 .L127: |
1283 0a3c 0196 adiw r24,1 |
1284 0a3e 00C0 rjmp .L90 |
1285 .L126: |
1286 0a40 0796 adiw r24,7 |
1287 0a42 00C0 rjmp .L89 |
1288 .L118: |
1289 0a44 D801 movw r26,r16 |
1290 0a46 C701 movw r24,r14 |
1291 0a48 0B96 adiw r24,11 |
1292 0a4a A11D adc r26,__zero_reg__ |
1293 0a4c B11D adc r27,__zero_reg__ |
1294 0a4e 00C0 rjmp .L99 |
1295 .L129: |
1296 0a50 2150 subi r18,lo8(-(1023)) |
1297 0a52 3C4F sbci r19,hi8(-(1023)) |
1298 0a54 4F4F sbci r20,hlo8(-(1023)) |
1299 0a56 5F4F sbci r21,hhi8(-(1023)) |
1300 0a58 00C0 rjmp .L82 |
1301 .L120: |
1302 0a5a 215F subi r18,lo8(-(15)) |
1303 0a5c 3F4F sbci r19,hi8(-(15)) |
1304 0a5e 4F4F sbci r20,hlo8(-(15)) |
1305 0a60 5F4F sbci r21,hhi8(-(15)) |
1306 0a62 00C0 rjmp .L101 |
1307 .L119: |
1308 0a64 215F subi r18,lo8(-(15)) |
1309 0a66 3F4F sbci r19,hi8(-(15)) |
1310 0a68 4F4F sbci r20,hlo8(-(15)) |
1311 0a6a 5F4F sbci r21,hhi8(-(15)) |
1312 0a6c 00C0 rjmp .L100 |
1313 .L124: |
1314 0a6e 0196 adiw r24,1 |
1315 0a70 00C0 rjmp .L94 |
1316 .L123: |
1317 0a72 0796 adiw r24,7 |
1318 0a74 00C0 rjmp .L93 |
1319 .L122: |
1320 0a76 0196 adiw r24,1 |
1321 0a78 A11D adc r26,__zero_reg__ |
1322 0a7a B11D adc r27,__zero_reg__ |
1323 0a7c 00C0 rjmp .L103 |
1324 .L121: |
1325 0a7e 0F96 adiw r24,15 |
1326 0a80 00C0 rjmp .L102 |
1327 .L62: |
1328 /* epilogue: frame size=0 */ |
1329 0a82 FF91 pop r31 |
1330 0a84 EF91 pop r30 |
1331 0a86 BF91 pop r27 |
1332 0a88 AF91 pop r26 |
1333 0a8a 9F91 pop r25 |
1334 0a8c 8F91 pop r24 |
1335 0a8e 7F91 pop r23 |
1336 0a90 6F91 pop r22 |
1337 0a92 5F91 pop r21 |
1338 0a94 4F91 pop r20 |
1339 0a96 3F91 pop r19 |
1340 0a98 2F91 pop r18 |
1341 0a9a 1F91 pop r17 |
1342 0a9c 0F91 pop r16 |
1343 0a9e FF90 pop r15 |
1344 0aa0 EF90 pop r14 |
1345 0aa2 DF90 pop r13 |
1346 0aa4 CF90 pop r12 |
1347 0aa6 BF90 pop r11 |
1348 0aa8 AF90 pop r10 |
1349 0aaa 0F90 pop __tmp_reg__ |
1350 0aac 0FBE out __SREG__,__tmp_reg__ |
1351 0aae 0F90 pop __tmp_reg__ |
1352 0ab0 1F90 pop __zero_reg__ |
1353 0ab2 1895 reti |
1354 /* epilogue end (size=25) */ |
1355 /* function __vector_24 size 1081 (1031) */ |
1357 .comm Aktuell_Nick,2,1 |
1358 .comm Aktuell_Roll,2,1 |
1359 .comm Aktuell_Gier,2,1 |
1360 .comm Aktuell_ax,2,1 |
1361 .comm Aktuell_ay,2,1 |
1362 .comm Aktuell_az,2,1 |
1363 .comm StartLuftdruck,2,1 |
1364 .comm DruckOffsetSetting,1,1 |
1365 .comm Mixer,77,1 |
1366 /* File "analog.c": code 1421 = 0x058d (1350), prologues 35, epilogues 36 */ |
DEFINED SYMBOLS |
*ABS*:00000000 analog.c |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:3 *ABS*:0000003f __SREG__ |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:4 *ABS*:0000003e __SP_H__ |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:5 *ABS*:0000003d __SP_L__ |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:14 .data:00000000 AdReady |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:21 .bss:00000000 GyroDefektG |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:27 .bss:00000001 GyroDefektR |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:33 .bss:00000002 GyroDefektN |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:39 .data:00000001 AnalogOffsetGier |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:44 .data:00000002 AnalogOffsetRoll |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:49 .data:00000003 AnalogOffsetNick |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:56 .bss:00000003 ZaehlMessungen |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:62 .bss:00000005 VarioMeter |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:68 .bss:00000007 ExpandBaro |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:74 .data:00000004 MessLuftdruck |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:81 .bss:00000008 SummenHoehe |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:87 .data:00000006 Luftdruck |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:94 .bss:0000000c messanzahl_AccHoch |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:100 .bss:0000000d AdWertAccHoch |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:106 .bss:0000000f AdWertAccNick |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:112 .bss:00000011 AdWertAccRoll |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:118 .bss:00000013 AdWertGier |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:124 .bss:00000015 AdWertRoll |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:130 .bss:00000017 AdWertNick |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:136 .data:0000000a HiResRoll |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:141 .data:0000000c HiResNick |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:148 .bss:00000019 AdWertGierFilter |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:154 .bss:0000001b AdWertRollFilter |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:160 .bss:0000001d AdWertNickFilter |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:166 .data:0000000e UBat |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:171 .text:00000000 ADC_Init |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:185 .progmem.data:00000000 __c.12 |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:190 .text:0000000c SucheLuftruckOffset |
*COM*:00000001 DruckOffsetSetting |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:297 .progmem.data:00000002 __c.11 |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:302 .text:000000c4 SucheGyroOffset |
.bss:0000001f kanal.0 |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:500 .bss:00000020 state.1 |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:501 .bss:00000021 gier1.2 |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:502 .bss:00000023 roll1.3 |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:503 .bss:00000025 nick1.4 |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:504 .bss:00000027 nick_filter.5 |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:505 .bss:00000029 roll_filter.6 |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:506 .bss:0000002b accy.7 |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:507 .bss:0000002d accx.8 |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:508 .bss:0000002f tmpLuftdruck.9 |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:509 .bss:00000033 messanzahl_Druck.10 |
C:\Users\Bernd\AppData\Local\Temp/ccuiIOA0.s:513 .text:00000274 __vector_24 |
*COM*:00000002 Aktuell_ax |
*COM*:00000002 Aktuell_ay |
*COM*:00000002 StartLuftdruck |
*COM*:00000002 Aktuell_az |
*COM*:00000002 Aktuell_Nick |
*COM*:00000002 Aktuell_Roll |
*COM*:00000002 Aktuell_Gier |
*COM*:0000004d Mixer |
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
EEPromArray |
Delay_ms_Mess |
_printf_P |
SetDelay |
twi_state |
i2c_start |
CheckDelay |
__epilogue_restores__ |
__tablejump2__ |
NeutralAccX |
NeutralAccY |
__mulsi3 |
HoehenWert |
AdNeutralRoll |
AdNeutralNick |
NeutralAccZ |
__subsf3 |
__fixsfsi |
__ltsf2 |
__addsf3 |
modell_fliegt |
Mess_Integral_Hoch |
__udivmodhi4 |
__gtsf2 |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/eeprom.c |
---|
0,0 → 1,412 |
/***************************************************************************************************************************** |
* File: eeprom.c |
* |
* Purpose: storing or loading the EEPROM values to RAM or writing them to EE_Parameter |
* |
* Functions: void DefaultStickMapping(void) // stick setting at RC control for incoming sum signal chain |
* void DefaultKonstanten3(void) // |
* void DefaultKonstanten2(void) // |
* void DefaultKonstanten1(void) // |
* void ReadParameterSet(unsigned char number, unsigned char *buffer, unsigned char length) |
* void WriteParameterSet(unsigned char number, unsigned char *buffer, unsigned char length) |
* unsigned char GetActiveParamSetNumber(void) |
* void SetActiveParamSetNumber(unsigned char number) |
* |
*****************************************************************************************************************************/ |
#include "eeprom.h" |
unsigned char EEPromArray[E2END+1] EEMEM; // E2END = 2047 |
// wird im EEPROM deklariert |
// in den I/O-Headern wird die letzte EEPROM-Adresse als E2END definiert |
// #define EEMEM __attribute__ ((section (".eeprom"))) |
// EEPROM Size = 2 Kbytes // Page Size = 8 bytes // No. of Pages = 256 // siehe Atmega644 manual S287 |
// --------------------------------------------------------------------------------------------------------------------------- |
// + Konstanten |
// + 0-250 -> normale Werte |
// + 251 -> Poti1 |
// + 252 -> Poti2 |
// + 253 -> Poti3 |
// --------------------------------------------------------------------------------------------------------------------------- |
//----------------------------------------------------------------------------------------------------------------------------- |
// stick setting at RC control for incoming sum signal chain |
//----------------------------------------------------------------------------------------------------------------------------- |
void DefaultStickMapping(void) // remote control is set to mode 2 |
{ |
EE_Parameter.Kanalbelegung[K_NICK] = 3; // #define K_NICK 0 // Koptertool -> Einstellungen -> Kanäle -> "NICK" |
EE_Parameter.Kanalbelegung[K_ROLL] = 2; // #define K_ROLL 1 // Koptertool -> Einstellungen -> Kanäle -> "ROLL" |
EE_Parameter.Kanalbelegung[K_GAS] = 1; // #define K_GAS 2 // Koptertool -> Einstellungen -> Kanäle -> "GAS" |
EE_Parameter.Kanalbelegung[K_GIER] = 4; // #define K_GIER 3 // Koptertool -> Einstellungen -> Kanäle -> "Gier" |
EE_Parameter.Kanalbelegung[K_POTI1] = 5; // #define K_POTI1 4 // Koptertool -> Einstellungen -> Kanäle -> "POTI1" |
EE_Parameter.Kanalbelegung[K_POTI2] = 6; // #define K_POTI2 5 // Koptertool -> Einstellungen -> Kanäle -> "POTI2" |
EE_Parameter.Kanalbelegung[K_POTI3] = 7; // #define K_POTI3 6 // Koptertool -> Einstellungen -> Kanäle -> "POTI3" |
EE_Parameter.Kanalbelegung[K_POTI4] = 8; // #define K_POTI4 7 // Koptertool -> Einstellungen -> Kanäle -> "POTI4" |
} |
//----------------------------------------------------------------------------------------------------------------------------- |
//----------------------------------------------------------------------------------------------------------------------------- |
void DefaultKonstanten3(void) |
{ |
EE_Parameter.GlobalConfig = CFG_KOMPASS_AKTIV; |
// |
// #define CFG_HOEHENREGELUNG 0x01 |
// #define CFG_HOEHEN_SCHALTER 0x02 |
// #define CFG_HEADING_HOLD 0x04 |
// #define CFG_KOMPASS_AKTIV 0x08 |
// #define CFG_KOMPASS_FIX 0x10 |
// #define CFG_GPS_AKTIV 0x20 |
// #define CFG_ACHSENKOPPLUNG_AKTIV 0x40 |
// #define CFG_DREHRATEN_BEGRENZER 0x80 |
EE_Parameter.ExtraConfig = CFG2_HEIGHT_LIMIT; |
// |
// #define CFG2_HEIGHT_LIMIT 0x01 // Koptertool -> Einstellungen -> Höhe -> Höhenregelung aktiv -> "Höhenbegrenzung" |
// #define CFG2_VARIO_BEEP 0x02 // Koptertool -> Einstellungen -> Höhe -> Höhenregelung aktiv -> "akustisches Variometer" |
// #define CFG_SENSITIVE_RC 0x04 // Koptertool -> Einstellungen -> Konfiguration -> "Erweiterte Empfangssignalprüfung" |
// #define CFG_3_3V_REFERENCE 0x08 // Koptertool -> Einstellungen -> Verschiedenes -> "Voltage Reference" 3.0V |
// #define CFG_NO_RCOFF_BEEPING 0x10 // Koptertool -> Einstellungen -> Verschiedenes -> "kein Signalton ohne aktiven Empfänger" |
// #define CFG_GPS_AID 0x20 // Koptertool -> ??? |
// #define CFG_LEARNABLE_CAREFREE 0x40 // Koptertool -> Einstellungen -> Easy Setup -> "Teachable Carefree" |
// #define CFG_IGNORE_MAG_ERR_AT_STARTUP 0x80 |
EE_Parameter.Hoehe_MinGas = 30; |
EE_Parameter.MaxHoehe = 251; // Wert : 0-250 251 -> Poti1 |
EE_Parameter.Hoehe_P = 10; // Wert : 0-32 |
EE_Parameter.Luftdruck_D = 30; // Wert : 0-250 |
EE_Parameter.Hoehe_ACC_Wirkung = 30; // Wert : 0-250 |
EE_Parameter.Hoehe_HoverBand = 5; // Wert : 0-250 |
EE_Parameter.Hoehe_GPS_Z = 64; // Wert : 0-250 |
EE_Parameter.Hoehe_StickNeutralPoint = 0; // Wert : 0-250 (0 = Hoover-Estimation) |
EE_Parameter.Hoehe_Verstaerkung = 15; // Wert : 0-50 |
EE_Parameter.Stick_P = 8; // Wert : 1-6 |
EE_Parameter.Stick_D = 16; // Wert : 0-64 |
EE_Parameter.Gier_P = 6; // Wert : 1-20 |
EE_Parameter.Gas_Min = 8; // Wert : 0-32 |
EE_Parameter.Gas_Max = 230; // Wert : 33-250 |
EE_Parameter.GyroAccFaktor = 30; // Wert : 1-64 |
EE_Parameter.KompassWirkung = 128; // Wert : 0-250 |
EE_Parameter.Gyro_P = 100; // Wert : 0-250 |
EE_Parameter.Gyro_I = 120; // Wert : 0-250 |
EE_Parameter.Gyro_D = 3; // Wert : 0-250 |
EE_Parameter.Gyro_Gier_P = 100; // Wert : 0-250 |
EE_Parameter.Gyro_Gier_I = 120; // Wert : 0-250 |
EE_Parameter.UnterspannungsWarnung = 33; // Wert : 0-250 // Automatische Zellenerkennung bei < 50 |
EE_Parameter.NotGas = 35; // Wert : 0-250 // Gaswert bei Empangsverlust |
EE_Parameter.NotGasZeit = 20; // Wert : 0-250 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen |
EE_Parameter.UfoAusrichtung = 0; // X oder + Formation |
EE_Parameter.I_Faktor = 16; |
EE_Parameter.UserParam1 = 0; // zur freien Verwendung |
EE_Parameter.UserParam2 = 0; // zur freien Verwendung |
EE_Parameter.UserParam3 = 0; // zur freien Verwendung |
EE_Parameter.UserParam4 = 0; // zur freien Verwendung |
EE_Parameter.UserParam5 = 0; // zur freien Verwendung |
EE_Parameter.UserParam6 = 0; // zur freien Verwendung |
EE_Parameter.UserParam7 = 0; // zur freien Verwendung |
EE_Parameter.UserParam8 = 0; // zur freien Verwendung |
EE_Parameter.ServoNickControl = 100; // Wert : 0-250 // Stellung des Servos |
EE_Parameter.ServoNickComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo |
EE_Parameter.ServoCompInvert = 1; // Wert : 0-250 // Richtung Einfluss Gyro/Servo |
EE_Parameter.ServoNickMin = 0; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoNickMax = 250; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoNickRefresh = 6; |
EE_Parameter.ServoRollControl = 100; // Wert : 0-250 // Stellung des Servos |
EE_Parameter.ServoRollComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo |
EE_Parameter.ServoRollMin = 0; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoRollMax = 250; // Wert : 0-250 // Anschlag |
EE_Parameter.LoopGasLimit = 50; |
EE_Parameter.LoopThreshold = 90; // Wert: 0-250 Schwelle für Stickausschlag |
EE_Parameter.LoopHysterese = 50; |
EE_Parameter.BitConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts |
EE_Parameter.AchsKopplung1 = 90; |
EE_Parameter.AchsKopplung2 = 80; |
EE_Parameter.CouplingYawCorrection = 70; |
EE_Parameter.WinkelUmschlagNick = 85; |
EE_Parameter.WinkelUmschlagRoll = 85; |
EE_Parameter.GyroAccAbgleich = 32; // 1/k |
EE_Parameter.Driftkomp = 32; |
EE_Parameter.DynamicStability = 50; |
EE_Parameter.J16Bitmask = 95; |
EE_Parameter.J17Bitmask = 243; |
EE_Parameter.WARN_J16_Bitmask = 0xAA; |
EE_Parameter.WARN_J17_Bitmask = 0xAA; |
EE_Parameter.J16Timing = 30; |
EE_Parameter.J17Timing = 30; |
EE_Parameter.NaviGpsModeControl = 252; |
EE_Parameter.NaviGpsGain = 100; |
EE_Parameter.NaviGpsP = 90; |
EE_Parameter.NaviGpsI = 90; |
EE_Parameter.NaviGpsD = 90; |
EE_Parameter.NaviGpsPLimit = 75; |
EE_Parameter.NaviGpsILimit = 75; |
EE_Parameter.NaviGpsDLimit = 75; |
EE_Parameter.NaviGpsACC = 0; |
EE_Parameter.NaviGpsMinSat = 6; |
EE_Parameter.NaviStickThreshold = 8; |
EE_Parameter.NaviWindCorrection = 90; |
EE_Parameter.NaviSpeedCompensation = 30; |
EE_Parameter.NaviOperatingRadius = 100; |
EE_Parameter.NaviAngleLimitation = 100; |
EE_Parameter.NaviPH_LoginTime = 4; |
memcpy(EE_Parameter.Name, "Beginner\0", 12); |
} |
//----------------------------------------------------------------------------------------------------------------------------- |
//----------------------------------------------------------------------------------------------------------------------------- |
void DefaultKonstanten2(void) |
{ |
EE_Parameter.GlobalConfig = CFG_ACHSENKOPPLUNG_AKTIV | CFG_KOMPASS_AKTIV | CFG_GPS_AKTIV | CFG_HOEHEN_SCHALTER; |
EE_Parameter.ExtraConfig = CFG2_HEIGHT_LIMIT;// | CFG2_VARIO_BEEP | CFG_SENSITIVE_RC |
EE_Parameter.Hoehe_MinGas = 30; |
EE_Parameter.MaxHoehe = 251; // Wert : 0-250 251 -> Poti1 |
EE_Parameter.Hoehe_P = 10; // Wert : 0-32 |
EE_Parameter.Luftdruck_D = 30; // Wert : 0-250 |
EE_Parameter.Hoehe_ACC_Wirkung = 30; // Wert : 0-250 |
EE_Parameter.Hoehe_HoverBand = 5; // Wert : 0-250 |
EE_Parameter.Hoehe_GPS_Z = 64; // Wert : 0-250 |
EE_Parameter.Hoehe_StickNeutralPoint = 0; // Wert : 0-250 (0 = Hoover-Estimation) |
EE_Parameter.Hoehe_Verstaerkung = 15; // Wert : 0-50 |
EE_Parameter.Stick_P = 10; // Wert : 1-6 |
EE_Parameter.Stick_D = 16; // Wert : 0-64 |
EE_Parameter.Gier_P = 6; // Wert : 1-20 |
EE_Parameter.Gas_Min = 8; // Wert : 0-32 |
EE_Parameter.Gas_Max = 230; // Wert : 33-250 |
EE_Parameter.GyroAccFaktor = 30; // Wert : 1-64 |
EE_Parameter.KompassWirkung = 128; // Wert : 0-250 |
EE_Parameter.Gyro_P = 90; // Wert : 0-250 |
EE_Parameter.Gyro_I = 120; // Wert : 0-250 |
EE_Parameter.Gyro_D = 3; // Wert : 0-250 |
EE_Parameter.Gyro_Gier_P = 90; // Wert : 0-250 |
EE_Parameter.Gyro_Gier_I = 120; // Wert : 0-250 |
EE_Parameter.UnterspannungsWarnung = 33; // Wert : 0-250 ( Automatische Zellenerkennung bei < 50) |
EE_Parameter.NotGas = 35; // Wert : 0-250 // Gaswert bei Empangsverlust |
EE_Parameter.NotGasZeit = 30; // Wert : 0-250 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen |
EE_Parameter.UfoAusrichtung = 0; // X oder + Formation |
EE_Parameter.I_Faktor = 32; |
EE_Parameter.UserParam1 = 0; // zur freien Verwendung |
EE_Parameter.UserParam2 = 0; // zur freien Verwendung |
EE_Parameter.UserParam3 = 0; // zur freien Verwendung |
EE_Parameter.UserParam4 = 0; // zur freien Verwendung |
EE_Parameter.UserParam5 = 0; // zur freien Verwendung |
EE_Parameter.UserParam6 = 0; // zur freien Verwendung |
EE_Parameter.UserParam7 = 0; // zur freien Verwendung |
EE_Parameter.UserParam8 = 0; // zur freien Verwendung |
EE_Parameter.ServoNickControl = 100; // Wert : 0-250 // Stellung des Servos |
EE_Parameter.ServoNickComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo |
EE_Parameter.ServoCompInvert = 1; // Wert : 0-250 // Richtung Einfluss Gyro/Servo |
EE_Parameter.ServoNickMin = 0; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoNickMax = 250; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoNickRefresh = 6; |
EE_Parameter.ServoRollControl = 100; // Wert : 0-250 // Stellung des Servos |
EE_Parameter.ServoRollComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo |
EE_Parameter.ServoRollMin = 0; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoRollMax = 250; // Wert : 0-250 // Anschlag |
EE_Parameter.LoopGasLimit = 50; |
EE_Parameter.LoopThreshold = 90; // Wert: 0-250 Schwelle für Stickausschlag |
EE_Parameter.LoopHysterese = 50; |
EE_Parameter.BitConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts |
EE_Parameter.AchsKopplung1 = 90; |
EE_Parameter.AchsKopplung2 = 80; |
EE_Parameter.CouplingYawCorrection = 60; |
EE_Parameter.WinkelUmschlagNick = 85; |
EE_Parameter.WinkelUmschlagRoll = 85; |
EE_Parameter.GyroAccAbgleich = 32; // 1/k |
EE_Parameter.Driftkomp = 32; |
EE_Parameter.DynamicStability = 75; |
EE_Parameter.J16Bitmask = 95; |
EE_Parameter.J17Bitmask = 243; |
EE_Parameter.WARN_J16_Bitmask = 0xAA; |
EE_Parameter.WARN_J17_Bitmask = 0xAA; |
EE_Parameter.J16Timing = 20; |
EE_Parameter.J17Timing = 20; |
EE_Parameter.NaviGpsModeControl = 252; |
EE_Parameter.NaviGpsGain = 100; |
EE_Parameter.NaviGpsP = 90; |
EE_Parameter.NaviGpsI = 90; |
EE_Parameter.NaviGpsD = 90; |
EE_Parameter.NaviGpsPLimit = 75; |
EE_Parameter.NaviGpsILimit = 75; |
EE_Parameter.NaviGpsDLimit = 75; |
EE_Parameter.NaviGpsACC = 0; |
EE_Parameter.NaviGpsMinSat = 6; |
EE_Parameter.NaviStickThreshold = 8; |
EE_Parameter.NaviWindCorrection = 90; |
EE_Parameter.NaviSpeedCompensation = 30; |
EE_Parameter.NaviOperatingRadius = 100; |
EE_Parameter.NaviAngleLimitation = 100; |
EE_Parameter.NaviPH_LoginTime = 4; |
memcpy(EE_Parameter.Name, "Normal\0", 12); |
} |
//----------------------------------------------------------------------------------------------------------------------------- |
//----------------------------------------------------------------------------------------------------------------------------- |
void DefaultKonstanten1(void) |
{ |
EE_Parameter.GlobalConfig = CFG_ACHSENKOPPLUNG_AKTIV | CFG_KOMPASS_AKTIV | CFG_GPS_AKTIV | CFG_HOEHEN_SCHALTER; |
EE_Parameter.ExtraConfig = CFG2_HEIGHT_LIMIT;// | CFG2_VARIO_BEEP | CFG_SENSITIVE_RC |
EE_Parameter.Hoehe_MinGas = 30; |
EE_Parameter.MaxHoehe = 251; // Wert : 0-250 251 -> Poti1 |
EE_Parameter.Hoehe_P = 10; // Wert : 0-32 |
EE_Parameter.Luftdruck_D = 30; // Wert : 0-250 |
EE_Parameter.Hoehe_ACC_Wirkung = 30; // Wert : 0-250 |
EE_Parameter.Hoehe_HoverBand = 5; // Wert : 0-250 |
EE_Parameter.Hoehe_GPS_Z = 64; // Wert : 0-250 |
EE_Parameter.Hoehe_StickNeutralPoint = 0; // Wert : 0-250 (0 = Hoover-Estimation) |
EE_Parameter.Hoehe_Verstaerkung = 20; // Wert : 0-50 |
EE_Parameter.Stick_P = 14; // Wert : 1-6 |
EE_Parameter.Stick_D = 16; // Wert : 0-64 |
EE_Parameter.Gier_P = 12; // Wert : 1-20 |
EE_Parameter.Gas_Min = 8; // Wert : 0-32 |
EE_Parameter.Gas_Max = 230; // Wert : 33-250 |
EE_Parameter.GyroAccFaktor = 30; // Wert : 1-64 |
EE_Parameter.KompassWirkung = 128; // Wert : 0-250 |
EE_Parameter.Gyro_P = 80; // Wert : 0-250 |
EE_Parameter.Gyro_I = 150; // Wert : 0-250 |
EE_Parameter.Gyro_D = 3; // Wert : 0-250 |
EE_Parameter.Gyro_Gier_P = 80; // Wert : 0-250 |
EE_Parameter.Gyro_Gier_I = 150; // Wert : 0-250 |
EE_Parameter.UnterspannungsWarnung = 33; // Wert : 0-250 ( Automatische Zellenerkennung bei < 50) |
EE_Parameter.NotGas = 35; // Wert : 0-250 // Gaswert bei Empangsverlust |
EE_Parameter.NotGasZeit = 30; // Wert : 0-250 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen |
EE_Parameter.UfoAusrichtung = 0; // X oder + Formation |
EE_Parameter.I_Faktor = 32; |
EE_Parameter.UserParam1 = 0; // zur freien Verwendung |
EE_Parameter.UserParam2 = 0; // zur freien Verwendung |
EE_Parameter.UserParam3 = 0; // zur freien Verwendung |
EE_Parameter.UserParam4 = 0; // zur freien Verwendung |
EE_Parameter.UserParam5 = 0; // zur freien Verwendung |
EE_Parameter.UserParam6 = 0; // zur freien Verwendung |
EE_Parameter.UserParam7 = 0; // zur freien Verwendung |
EE_Parameter.UserParam8 = 0; // zur freien Verwendung |
EE_Parameter.ServoNickControl = 100; // Wert : 0-250 // Stellung des Servos |
EE_Parameter.ServoNickComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo |
EE_Parameter.ServoCompInvert = 1; // Wert : 0-250 // Richtung Einfluss Gyro/Servo |
EE_Parameter.ServoNickMin = 0; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoNickMax = 250; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoNickRefresh = 6; |
EE_Parameter.ServoRollControl = 100; // Wert : 0-250 // Stellung des Servos |
EE_Parameter.ServoRollComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo |
EE_Parameter.ServoRollMin = 0; // Wert : 0-250 // Anschlag |
EE_Parameter.ServoRollMax = 250; // Wert : 0-250 // Anschlag |
EE_Parameter.LoopGasLimit = 50; |
EE_Parameter.LoopThreshold = 90; // Wert: 0-250 Schwelle für Stickausschlag |
EE_Parameter.LoopHysterese = 50; |
EE_Parameter.BitConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt |
EE_Parameter.AchsKopplung1 = 90; |
EE_Parameter.AchsKopplung2 = 80; |
EE_Parameter.CouplingYawCorrection = 1; |
EE_Parameter.WinkelUmschlagNick = 85; |
EE_Parameter.WinkelUmschlagRoll = 85; |
EE_Parameter.GyroAccAbgleich = 16; // 1/k |
EE_Parameter.Driftkomp = 32; |
EE_Parameter.DynamicStability = 100; |
EE_Parameter.J16Bitmask = 95; |
EE_Parameter.J17Bitmask = 243; |
EE_Parameter.WARN_J16_Bitmask = 0xAA; |
EE_Parameter.WARN_J17_Bitmask = 0xAA; |
EE_Parameter.J16Timing = 15; |
EE_Parameter.J17Timing = 15; |
EE_Parameter.NaviGpsModeControl = 252; |
EE_Parameter.NaviGpsGain = 100; |
EE_Parameter.NaviGpsP = 90; |
EE_Parameter.NaviGpsI = 90; |
EE_Parameter.NaviGpsD = 90; |
EE_Parameter.NaviGpsPLimit = 75; |
EE_Parameter.NaviGpsILimit = 75; |
EE_Parameter.NaviGpsDLimit = 75; |
EE_Parameter.NaviGpsACC = 0; |
EE_Parameter.NaviGpsMinSat = 6; |
EE_Parameter.NaviStickThreshold = 8; |
EE_Parameter.NaviWindCorrection = 90; |
EE_Parameter.NaviSpeedCompensation = 30; |
EE_Parameter.NaviOperatingRadius = 100; |
EE_Parameter.NaviAngleLimitation = 100; |
EE_Parameter.NaviPH_LoginTime = 4; |
memcpy(EE_Parameter.Name, "Sport\0", 12); |
} |
//----------------------------------------------------------------------------------------------------------------------------- |
//----------------------------------------------------------------------------------------------------- |
// Parametersatz aus dem EEPROM lesen |
// Nummer [1..5] möglich |
//----------------------------------------------------------------------------------------------------- |
void ReadParameterSet(unsigned char number, unsigned char *buffer, unsigned char length) |
{ |
if((number > 5)||(number < 1)) number = 3; |
eeprom_read_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * (number - 1)], length); // #define EEPROM_ADR_PARAM_BEGIN 100 |
LED_Init (); // initialisiert die Schalt-Ausgänge PORTC2 und PORTC3 an SV2 (control of J16 & J17) |
} |
//----------------------------------------------------------------------------------------------------- |
//----------------------------------------------------------------------------------------------------- |
// Parametersatz vom ROM ins EEPROM schreiben |
// Nummer [1..5] ist die mögliche Nummer des Paramtersatzes |
// *buffer ist die Adresse, woher die Bytes kommen, die kopiert werden sollen |
// length ist die Anzahl der zu kopierenden Bytes |
//------------------------------------------------------------------------------------------------------------------------------------ |
void WriteParameterSet(unsigned char number, unsigned char *buffer, unsigned char length) |
{ |
if(number > 5) number = 5; |
if(number < 1) return; |
eeprom_write_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * (number - 1)], length); // #define EEPROM_ADR_PARAM_BEGIN 100 |
// eeprom_write_block(buffer, &EEPromArray[100 + length * (number - 1)], length); // aufgelöst |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_PARAM_LENGTH], length); // Länge der Datensätze merken // #define EEPROM_ADR_PARAM_LENGTH 98 |
// eeprom_write_byte(&EEPromArray[98], length); // aufgelöst // lenght = 101 |
eeprom_write_block(buffer, &EEPromArray[EEPROM_ADR_CHANNELS], 8); // 8 Kanäle merken // #define EEPROM_ADR_CHANNELS 80 |
// eeprom_write_block(buffer, &EEPromArray[80], 8); // aufgelöst |
SetActiveParamSetNumber(number); |
LED_Init(); // initialisiert die Schalt-Ausgänge PORTC2 und PORTC3 an SV2 (control of J16 & J17) |
} |
//------------------------------------------------------------------------------------------------------------------------------------ |
//------------------------------------------------------------------------------------------------------------------------------------- |
unsigned char GetActiveParamSetNumber(void) // hier wird herausgelesen, mit welchem Parametersatz gefolgen werden soll |
{ // Beginner=3,Normal=2,Sport=1 |
unsigned char set; |
set = eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET]); // #define EEPROM_ADR_ACTIVE_SET 2 |
if((set > 5) || (set < 1)) |
{ |
set = 3; // default = Beginner |
SetActiveParamSetNumber(set); // diesen Parametersatz als aktuell merken |
} |
return(set); |
} |
//------------------------------------------------------------------------------------------------------------------------------------- |
//------------------------------------------------------------------------------------------------------------------------------------- |
void SetActiveParamSetNumber(unsigned char number) |
{ |
if(number > 5) number = 5; |
if(number < 1) return; // #define EEPROM_ADR_ACTIVE_SET 2 |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], number); // diesen Parametersatz im EEPROM als aktuell merken |
} |
//------------------------------------------------------------------------------------------------------------------------------------- |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/eeprom.h |
---|
0,0 → 1,39 |
/***************************************************************************************************************************** |
* File: eeprom.h |
* Purpose: header of eeprom.c |
*****************************************************************************************************************************/ |
#ifndef _EEPROM_H |
#define _EEPROM_H |
#define EE_DATENREVISION 80 // Parameter fürs Koptertool; entspricht den EEPROM-Daten von FlightCtrl Version V0.76g |
#define MIXER_REVISION 1 // wird angepasst, wenn sich die Mixer-Daten geändert haben |
#define EEPROM_ADR_VALID 1 // für EEPROM Datenrevision = 80 bei V0.76g |
#define EEPROM_ADR_ACTIVE_SET 2 // für den aktiven Parametersatz 3=Beginner 2=Normal 1=Sport |
#define EEPROM_ADR_LAST_OFFSET 3 // Luftdruck Offset siehe analog.c Zeile 44 |
#define EEPROM_ADR_ACC_NICK 4 |
#define EEPROM_ADR_ACC_ROLL 6 |
#define EEPROM_ADR_ACC_Z 8 |
#define EEPROM_ADR_MINUTES 10 // FlugMinuten Gesamt über alle Flüge |
#define EEPROM_ADR_MINUTES2 14 // FlugMinuten Einzelflug |
#define EEPROM_ADR_CHANNELS 80 // Ablageadresse der Kanäle |
#define EEPROM_ADR_PARAM_LENGTH 98 // Länge des structs mk_param_struct verwendet für EE_Parameter = 101 |
#define EEPROM_ADR_PARAM_BEGIN 100 // Startadresse der Abbilder vom struct mk_param_struct also EE_Parameter |
#define EEPROM_ADR_MIXER_TABLE 1000 // 1001 - 1100 |
#ifndef EEMEM |
#define EEMEM __attribute__ ((section (".eeprom"))) |
#endif |
//----------------------------------------------------------------------------------------------------------------------------------- |
extern unsigned char EEPromArray[]; |
//----------------------------------------- declaration of functions -------------------------- |
void ReadParameterSet (unsigned char number, unsigned char *buffer, unsigned char length); |
void WriteParameterSet(unsigned char number, unsigned char *buffer, unsigned char length); |
extern unsigned char GetActiveParamSetNumber(void); |
void SetActiveParamSetNumber(unsigned char number); |
#endif |
//*** EOF: __EEPROM_H *********************************************************************************************************** |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/fc.c |
---|
0,0 → 1,1817 |
/***************************************************************************************************************************** |
* File: fc.c |
* |
* Purpose: Flight Control |
* |
* Functions: int MotorSmoothing(int neu, int alt) |
* void Piep(unsigned char Anzahl, unsigned int dauer) |
* void SetNeutral(void) |
* void Mittelwert(void) |
* void CalibrierMittelwert(void) |
* void SendMotorData(void) |
* void ParameterZuordnung(void) |
* void MotorRegler(void) |
* |
*****************************************************************************************************************************/ |
#include "fc.h" |
#include "main.h" |
#include "eeprom.c" |
#include "mymath.h" |
#include "isqrt.h" // wird nur gebraucht wegen Zeile 1265 // CosAttitude = (int16_t)ihypot(tmp_int, tmp_int2); |
unsigned char h,m,s; |
unsigned int BaroExpandActive = 0; |
volatile unsigned int I2CTimeout = 100; |
int MesswertNick,MesswertRoll,MesswertGier,MesswertGierBias, RohMesswertNick,RohMesswertRoll; |
int TrimNick, TrimRoll; |
int AdNeutralGierBias; |
int AdNeutralNick = 0,AdNeutralRoll = 0,AdNeutralGier = 0,StartNeutralRoll = 0,StartNeutralNick = 0; |
int Mittelwert_AccNick, Mittelwert_AccRoll,Mittelwert_AccHoch, NeutralAccX=0, NeutralAccY=0; |
int NaviAccNick, NaviAccRoll,NaviCntAcc = 0; |
volatile float NeutralAccZ = 0; |
unsigned char CosinusNickWinkel = 0, CosinusRollWinkel = 0; |
long IntegralNick = 0; // dieser Wert wird im 3D Koptertool angezeigt |
long IntegralNick2 = 0; |
long IntegralRoll = 0; |
long IntegralRoll2 = 0; |
long IntegralAccNick = 0,IntegralAccRoll = 0,IntegralAccZ = 0; |
long Integral_Gier = 0; |
long Mess_IntegralNick = 0,Mess_IntegralNick2 = 0; |
long Mess_IntegralRoll = 0,Mess_IntegralRoll2 = 0; |
long Mess_Integral_Gier = 0,Mess_Integral_Gier2 = 0; |
long MittelIntegralNick, MittelIntegralRoll, MittelIntegralNick2, MittelIntegralRoll2; |
volatile long Mess_Integral_Hoch = 0; |
int KompassValue = 0; |
int KompassStartwert = 0; |
int KompassRichtung = 0; |
unsigned int KompassSignalSchlecht = 500; |
long ErsatzKompass; |
int ErsatzKompassInGrad; // Kompasswert in Grad |
char MotorenEin = 0; |
unsigned char MAX_GAS,MIN_GAS; |
unsigned char HoehenReglerAktiv = 0; |
unsigned char TrichterFlug = 0; |
long Umschlag180Nick = 250000L, Umschlag180Roll = 250000L; |
int GierGyroFehler = 0; |
char GyroFaktor,GyroFaktorGier; |
char IntegralFaktor,IntegralFaktorGier; |
int DiffNick,DiffRoll; |
int Poti1 = 0, Poti2 = 0, Poti3 = 0, Poti4 = 0; |
volatile unsigned char SenderOkay = 0; |
volatile unsigned char SenderRSSI = 0; |
int StickNick = 0,StickRoll = 0,StickGier = 0,StickGas = 0; // Stick aus der Fernsteuerung |
long HoehenWert = 0; |
long SollHoehe = 0; |
int LageKorrekturRoll = 0,LageKorrekturNick = 0; |
int Ki = 10300 / 33; |
unsigned char Looping_Nick = 0,Looping_Roll = 0; |
unsigned char Looping_Links = 0, Looping_Rechts = 0, Looping_Unten = 0, Looping_Oben = 0; |
unsigned char Parameter_Luftdruck_D = 48; // Wert : 0-250 |
unsigned char Parameter_MaxHoehe = 251; // Wert : 0-250 |
unsigned char Parameter_Hoehe_P = 16; // Wert : 0-32 |
unsigned char Parameter_Hoehe_ACC_Wirkung = 58; // Wert : 0-250 |
unsigned char Parameter_KompassWirkung = 64; // Wert : 0-250 |
unsigned char Parameter_Hoehe_GPS_Z = 64; // Wert : 0-250 |
unsigned char Parameter_Gyro_D = 8; // Wert : 0-250 |
unsigned char Parameter_Gyro_P = 150; // Wert : 10-250 |
unsigned char Parameter_Gyro_I = 150; // Wert : 0-250 |
unsigned char Parameter_Gyro_Gier_P = 150; // Wert : 10-250 |
unsigned char Parameter_Gyro_Gier_I = 150; // Wert : 10-250 |
unsigned char Parameter_Gier_P = 2; // Wert : 1-20 |
unsigned char Parameter_I_Faktor = 10; // Wert : 1-20 |
unsigned char Parameter_UserParam1 = 0; |
unsigned char Parameter_UserParam2 = 0; |
unsigned char Parameter_UserParam3 = 0; |
unsigned char Parameter_UserParam4 = 0; |
unsigned char Parameter_UserParam5 = 0; |
unsigned char Parameter_UserParam6 = 0; |
unsigned char Parameter_UserParam7 = 0; |
unsigned char Parameter_UserParam8 = 0; |
unsigned char Parameter_ServoNickControl = 100; |
unsigned char Parameter_ServoRollControl = 100; |
unsigned char Parameter_LoopGasLimit = 70; |
unsigned char Parameter_AchsKopplung1 = 90; |
unsigned char Parameter_AchsKopplung2 = 65; |
unsigned char Parameter_CouplingYawCorrection = 64; |
unsigned char Parameter_DynamicStability = 100; |
unsigned char Parameter_J16Bitmask; // for the J16 Output |
unsigned char Parameter_J16Timing; // for the J16 Output |
unsigned char Parameter_J17Bitmask; // for the J17 Output |
unsigned char Parameter_J17Timing; // for the J17 Output |
unsigned char Parameter_NaviGpsModeControl; // Parameters for the Naviboard |
unsigned char Parameter_NaviGpsGain; |
unsigned char Parameter_NaviGpsP; |
unsigned char Parameter_NaviGpsI; |
unsigned char Parameter_NaviGpsD; |
unsigned char Parameter_NaviGpsACC; |
unsigned char Parameter_NaviOperatingRadius; |
unsigned char Parameter_NaviWindCorrection; |
unsigned char Parameter_NaviSpeedCompensation; |
unsigned char Parameter_ExternalControl; |
struct mk_param_struct EE_Parameter; // definiert in fc.h Zeile 80 |
signed int ExternStickNick = 0,ExternStickRoll = 0,ExternStickGier = 0, ExternHoehenValue = -20; |
int MaxStickNick = 0,MaxStickRoll = 0; |
unsigned int modell_fliegt = 0; |
volatile unsigned char MikroKopterFlags = 0; |
long GIER_GRAD_FAKTOR = 1291; |
signed int KopplungsteilNickRoll,KopplungsteilRollNick; |
unsigned char RequiredMotors = 4; |
unsigned char Motor[MAX_MOTORS]; |
signed int tmp_motorwert[MAX_MOTORS]; |
unsigned char LoadHandler = 0; |
//------------------------------------------------------------ Definitionen -------------------------------------- |
#define LIMIT_MIN(value, min) {if(value < min) value = min;} |
#define LIMIT_MAX(value, max) {if(value > max) value = max;} |
#define LIMIT_MIN_MAX(value, min, max) {if(value < min) value = min; else if(value > max) value = max;} |
// ***************************************************************************************************************** |
int MotorSmoothing(int neu, int alt) |
{ |
int motor; |
if(neu > alt) motor = (1*(int)alt + neu) / 2; |
else motor = neu - (alt - neu)*1; |
return(motor); |
} |
//------------------------------------------------------ |
// *********************************************************** |
// erzeugt einen Piepton |
//------------------------------------------------------ |
void Piep(unsigned char Anzahl, unsigned int dauer) |
{ |
if(MotorenEin) return; //auf keinen Fall im Flug! |
while(Anzahl--) |
{ |
beeptime = dauer; |
while(beeptime); |
Delay_ms(dauer * 2); |
} |
} |
//------------------------------------------------------ |
// ******************************************************************************************************************* |
// Nullwerte ermitteln und Startwerte festlegen |
// ----------------------------------------------- |
void SetNeutral(void) |
{ |
unsigned char i; |
unsigned int gier_neutral=0, nick_neutral=0, roll_neutral=0; |
HEF4017R_ON; |
NeutralAccX = 0; |
NeutralAccY = 0; |
NeutralAccZ = 0; |
AdNeutralNick = 0; |
AdNeutralRoll = 0; |
AdNeutralGier = 0; |
AdNeutralGierBias = 0; |
Parameter_AchsKopplung1 = 0; |
Parameter_AchsKopplung2 = 0; |
ExpandBaro = 0; |
CalibrierMittelwert(); |
Delay_ms_Mess(100); |
CalibrierMittelwert(); |
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert? |
{ |
if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset(); |
} |
#define NEUTRAL_FILTER 32 |
for(i=0; i<NEUTRAL_FILTER; i++) |
{ |
Delay_ms_Mess(10); |
gier_neutral += AdWertGier; |
nick_neutral += AdWertNick; |
roll_neutral += AdWertRoll; |
} |
AdNeutralNick= (nick_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER / 8); |
AdNeutralRoll= (roll_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER / 8); |
AdNeutralGier= (gier_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER); |
AdNeutralGierBias = AdNeutralGier; |
StartNeutralRoll = AdNeutralRoll; |
StartNeutralNick = AdNeutralNick; |
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) > 4) |
{ |
NeutralAccY = abs(Mittelwert_AccRoll) / (2*ACC_AMPLIFY); // #define ACC_AMPLIFY 6 |
NeutralAccX = abs(Mittelwert_AccNick) / (2*ACC_AMPLIFY); |
NeutralAccZ = Aktuell_az; |
} |
else |
{ |
NeutralAccX = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK+1]); |
NeutralAccY = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL+1]); |
NeutralAccZ = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_Z]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_Z+1]); |
} |
MesswertNick = 0; |
MesswertRoll = 0; |
MesswertGier = 0; |
Delay_ms_Mess(100); |
Mittelwert_AccNick = ACC_AMPLIFY * (long)AdWertAccNick; // #define ACC_AMPLIFY 6 |
Mittelwert_AccRoll = ACC_AMPLIFY * (long)AdWertAccRoll; |
IntegralNick = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccNick; |
IntegralRoll = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccRoll; |
Mess_IntegralNick2 = IntegralNick; |
Mess_IntegralRoll2 = IntegralRoll; |
Mess_Integral_Gier = 0; |
StartLuftdruck = Luftdruck; |
VarioMeter = 0; |
Mess_Integral_Hoch = 0; |
KompassStartwert = KompassValue; |
//GPS_Neutral(); // no GPS available |
beeptime = 50; |
Umschlag180Nick = ((long) EE_Parameter.WinkelUmschlagNick * 2500L) + 15000L; |
Umschlag180Roll = ((long) EE_Parameter.WinkelUmschlagRoll * 2500L) + 15000L; |
ExternHoehenValue = 0; |
ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR; // long GIER_GRAD_FAKTOR = 1291; |
GierGyroFehler = 0; |
SendVersionToNavi = 1; |
LED_Init(); |
MikroKopterFlags |= FLAG_CALIBRATE; |
Poti1 = PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110; |
Poti2 = PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110; |
Poti3 = PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110; |
Poti4 = PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110; |
SenderOkay = 100; |
//---------------------------------------------- |
if(ServoActive) |
{ |
HEF4017R_ON; |
DDRD |=0x80; // enable J7 -> Servo signal |
} |
//---------------------------------------------- |
} |
//*** EOF: SetNeutral(void) ******************************************************************************************************* |
// ******************************************************************************************************************************** |
// Bearbeitet die Messwerte und legt die Mittelwerte fest |
// ---------------------------------------------------------- |
void Mittelwert(void) |
{ |
static signed long tmpl,tmpl2,tmpl3,tmpl4; |
static signed int oldNick, oldRoll, d2Roll, d2Nick; |
signed long winkel_nick, winkel_roll; |
// MesswertGier = (signed int) AdNeutralGier - AdWertGier; // Orginalcode vorher |
MesswertGier = AdWertGier - (signed int) AdNeutralGier; // Gyro ist um 180 Grad gedreht eingebaut |
// MesswertGierBias = (signed int) AdNeutralGierBias - AdWertGier; |
MesswertNick = (signed int) AdWertNickFilter / 8; |
MesswertRoll = (signed int) AdWertRollFilter / 8; |
RohMesswertNick = MesswertNick; |
RohMesswertRoll = MesswertRoll; |
// Beschleunigungssensor -------------------------------------------------------------------------- |
Mittelwert_AccNick = ((long)Mittelwert_AccNick * 3 + ((ACC_AMPLIFY * (long)AdWertAccNick))) / 4L; // #define ACC_AMPLIFY 6 |
Mittelwert_AccRoll = ((long)Mittelwert_AccRoll * 3 + ((ACC_AMPLIFY * (long)AdWertAccRoll))) / 4L; |
Mittelwert_AccHoch = ((long)Mittelwert_AccHoch * 3 + ((long)AdWertAccHoch)) / 4L; |
IntegralAccNick += ACC_AMPLIFY * AdWertAccNick; // #define ACC_AMPLIFY 6 |
IntegralAccRoll += ACC_AMPLIFY * AdWertAccRoll; // #define ACC_AMPLIFY 6 |
NaviAccNick += AdWertAccNick; |
NaviAccRoll += AdWertAccRoll; |
NaviCntAcc++; |
IntegralAccZ += Aktuell_az - NeutralAccZ; |
//------------------------------------------------------------ |
// Single Conversion at ADC |
// |
// ADCSRA = Analog Digital Conversion Status Register A -> ADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS0 |
// --------------------------------------------------------------------------------------------------- |
// ADEN = Writing this bit to one enables the ADC |
// ADSC = start conversion |
// ADATE = When this bit is written to one, Auto Triggering of the ADC is enabled |
// ADIE = ADC Interrupt Enable. When this bit is written to one and the I-bit in SREG is set, the ADC Conversion Complete Interrupt is activated. |
// ADPS = These bits determine the division factor between the XTAL frequency and the input clock to the ADC. |
// |
ANALOG_ON; // #define ANALOG_ON ADCSRA=(1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE) |
AdReady = 0; |
//------------------------------------------------------------ |
if(Mess_IntegralRoll > 93000L) winkel_roll = 93000L; |
else if(Mess_IntegralRoll <-93000L) winkel_roll = -93000L; |
else winkel_roll = Mess_IntegralRoll; |
if(Mess_IntegralNick > 93000L) winkel_nick = 93000L; |
else if(Mess_IntegralNick <-93000L) winkel_nick = -93000L; |
else winkel_nick = Mess_IntegralNick; |
// Gier ----------------------------------------------------------------------------------------- |
Mess_Integral_Gier += MesswertGier; |
ErsatzKompass += MesswertGier; |
// Kopplungsanteil ----------------------------------------------------------------------------- |
if(!Looping_Nick && !Looping_Roll && (EE_Parameter.GlobalConfig & CFG_ACHSENKOPPLUNG_AKTIV)) |
{ |
tmpl3 = (MesswertRoll * winkel_nick) / 2048L; |
tmpl3 *= Parameter_AchsKopplung2; //65 |
tmpl3 /= 4096L; |
tmpl4 = (MesswertNick * winkel_roll) / 2048L; |
tmpl4 *= Parameter_AchsKopplung2; //65 |
tmpl4 /= 4096L; |
KopplungsteilNickRoll = tmpl3; |
KopplungsteilRollNick = tmpl4; |
tmpl4 -= tmpl3; |
ErsatzKompass += tmpl4; |
if(!Parameter_CouplingYawCorrection) Mess_Integral_Gier -= tmpl4/2; // Gier nachhelfen |
tmpl = ((MesswertGier + tmpl4) * winkel_nick) / 2048L; |
tmpl *= Parameter_AchsKopplung1; // 90 |
tmpl /= 4096L; |
tmpl2 = ((MesswertGier + tmpl4) * winkel_roll) / 2048L; |
tmpl2 *= Parameter_AchsKopplung1; |
tmpl2 /= 4096L; |
if(abs(MesswertGier) > 64) if(labs(tmpl) > 128 || labs(tmpl2) > 128) TrichterFlug = 1; |
// MesswertGier += (Parameter_CouplingYawCorrection * tmpl4) / 256; |
} |
else tmpl = tmpl2 = KopplungsteilNickRoll = KopplungsteilRollNick = 0; |
TrimRoll = tmpl - tmpl2 / 100L; |
TrimNick = -tmpl2 + tmpl / 100L; |
// Kompasswert begrenzen ----------------------------------------------------------------------------------------------- |
if(ErsatzKompass >= (360L * GIER_GRAD_FAKTOR)) ErsatzKompass -= 360L * GIER_GRAD_FAKTOR; // 360° Umschlag |
if(ErsatzKompass < 0) ErsatzKompass += 360L * GIER_GRAD_FAKTOR; |
// Roll ------------------------------------------------------------ |
Mess_IntegralRoll2 += MesswertRoll + TrimRoll; |
Mess_IntegralRoll += MesswertRoll + TrimRoll - LageKorrekturRoll; |
if(Mess_IntegralRoll > Umschlag180Roll) |
{ |
Mess_IntegralRoll = -(Umschlag180Roll - 25000L); |
Mess_IntegralRoll2 = Mess_IntegralRoll; |
} |
if(Mess_IntegralRoll <-Umschlag180Roll) |
{ |
Mess_IntegralRoll = (Umschlag180Roll - 25000L); |
Mess_IntegralRoll2 = Mess_IntegralRoll; |
} |
// Nick ------------------------------------------------------------------- |
Mess_IntegralNick2 += MesswertNick + TrimNick; |
Mess_IntegralNick += MesswertNick + TrimNick - LageKorrekturNick; |
if(Mess_IntegralNick > Umschlag180Nick) |
{ |
Mess_IntegralNick = -(Umschlag180Nick - 25000L); |
Mess_IntegralNick2 = Mess_IntegralNick; |
} |
if(Mess_IntegralNick <-Umschlag180Nick) |
{ |
Mess_IntegralNick = (Umschlag180Nick - 25000L); |
Mess_IntegralNick2 = Mess_IntegralNick; |
} |
Integral_Gier = Mess_Integral_Gier; |
IntegralNick = Mess_IntegralNick; |
IntegralRoll = Mess_IntegralRoll; |
IntegralNick2 = Mess_IntegralNick2; |
IntegralRoll2 = Mess_IntegralRoll2; |
#define D_LIMIT 128 |
MesswertNick = HiResNick / 8; |
MesswertRoll = HiResRoll / 8; |
if(AdWertNick < 15) MesswertNick = -1000; if(AdWertNick < 7) MesswertNick = -2000; |
if(PlatinenVersion == 10) { if(AdWertNick > 1010) MesswertNick = +1000; if(AdWertNick > 1017) MesswertNick = +2000; } |
else { if(AdWertNick > 2000) MesswertNick = +1000; if(AdWertNick > 2015) MesswertNick = +2000; } |
if(AdWertRoll < 15) MesswertRoll = -1000; if(AdWertRoll < 7) MesswertRoll = -2000; |
if(PlatinenVersion == 10) { if(AdWertRoll > 1010) MesswertRoll = +1000; if(AdWertRoll > 1017) MesswertRoll = +2000; } |
else { if(AdWertRoll > 2000) MesswertRoll = +1000; if(AdWertRoll > 2015) MesswertRoll = +2000; } |
if(Parameter_Gyro_D) |
{ |
d2Nick = HiResNick - oldNick; |
oldNick = (oldNick + HiResNick)/2; |
if(d2Nick > D_LIMIT) d2Nick = D_LIMIT; |
else if(d2Nick < -D_LIMIT) d2Nick = -D_LIMIT; |
MesswertNick += (d2Nick * (signed int) Parameter_Gyro_D) / 16; |
d2Roll = HiResRoll - oldRoll; |
oldRoll = (oldRoll + HiResRoll)/2; |
if(d2Roll > D_LIMIT) d2Roll = D_LIMIT; |
else if(d2Roll < -D_LIMIT) d2Roll = -D_LIMIT; |
MesswertRoll += (d2Roll * (signed int) Parameter_Gyro_D) / 16; |
HiResNick += (d2Nick * (signed int) Parameter_Gyro_D); |
HiResRoll += (d2Roll * (signed int) Parameter_Gyro_D); |
} |
if(RohMesswertRoll > 0) TrimRoll += ((long) abs(KopplungsteilNickRoll) * Parameter_CouplingYawCorrection) / 64L; |
else TrimRoll -= ((long) abs(KopplungsteilNickRoll) * Parameter_CouplingYawCorrection) / 64L; |
if(RohMesswertNick > 0) TrimNick += ((long) abs(KopplungsteilRollNick) * Parameter_CouplingYawCorrection) / 64L; |
else TrimNick -= ((long) abs(KopplungsteilRollNick) * Parameter_CouplingYawCorrection) / 64L; |
if(EE_Parameter.GlobalConfig & CFG_DREHRATEN_BEGRENZER && !Looping_Nick && !Looping_Roll) |
{ |
if(RohMesswertNick > 256) MesswertNick += 1 * (RohMesswertNick - 256); |
else if(RohMesswertNick < -256) MesswertNick += 1 * (RohMesswertNick + 256); |
if(RohMesswertRoll > 256) MesswertRoll += 1 * (RohMesswertRoll - 256); |
else if(RohMesswertRoll < -256) MesswertRoll += 1 * (RohMesswertRoll + 256); |
} |
if(Poti1 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110) Poti1++; else if(Poti1 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110 && Poti1) Poti1--; |
if(Poti2 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110) Poti2++; else if(Poti2 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110 && Poti2) Poti2--; |
if(Poti3 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110) Poti3++; else if(Poti3 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110 && Poti3) Poti3--; |
if(Poti4 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110) Poti4++; else if(Poti4 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110 && Poti4) Poti4--; |
if(Poti1 < 0) Poti1 = 0; else if(Poti1 > 255) Poti1 = 255; |
if(Poti2 < 0) Poti2 = 0; else if(Poti2 > 255) Poti2 = 255; |
if(Poti3 < 0) Poti3 = 0; else if(Poti3 > 255) Poti3 = 255; |
if(Poti4 < 0) Poti4 = 0; else if(Poti4 > 255) Poti4 = 255; |
} |
// *** EOF: Mittelwert(void) ******************************************************************************************************** |
// ********************************************************************************************************************************** |
// Messwerte beim Ermitteln der Nullage |
// ---------------------------------------- |
void CalibrierMittelwert(void) |
{ |
if(PlatinenVersion == 13) SucheGyroOffset(); |
ANALOG_OFF; // ADC auschalten, damit die Werte sich nicht während der Berechnung ändern |
MesswertNick = AdWertNick; |
MesswertRoll = AdWertRoll; |
MesswertGier = AdWertGier; |
Mittelwert_AccNick = ACC_AMPLIFY * (long)AdWertAccNick; // #define ACC_AMPLIFY 6 |
Mittelwert_AccRoll = ACC_AMPLIFY * (long)AdWertAccRoll; |
Mittelwert_AccHoch = (long)AdWertAccHoch; |
// ADCSRA = Analog Digital Conversion Status Register A -> ADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS0 |
// --------------------------------------------------------------------------------------------------- |
// ADEN = Writing this bit to one enables the ADC |
// ADSC = start conversion |
// ADATE = When this bit is written to one, Auto Triggering of the ADC is enabled |
// ADIE = ADC Interrupt Enable. When this bit is written to one and the I-bit in SREG is set, the ADC Conversion Complete Interrupt is activated. |
// ADPS = These bits determine the division factor between the XTAL frequency and the input clock to the ADC. |
// |
ANALOG_ON; // swich on ADC // #define ANALOG_ON ADCSRA=(1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE) |
if(Poti1 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110) Poti1++; else if(Poti1 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110 && Poti1) Poti1--; |
if(Poti2 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110) Poti2++; else if(Poti2 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110 && Poti2) Poti2--; |
if(Poti3 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110) Poti3++; else if(Poti3 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110 && Poti3) Poti3--; |
if(Poti4 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110) Poti4++; else if(Poti4 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110 && Poti4) Poti4--; |
if(Poti1 < 0) Poti1 = 0; else if(Poti1 > 255) Poti1 = 255; |
if(Poti2 < 0) Poti2 = 0; else if(Poti2 > 255) Poti2 = 255; |
if(Poti3 < 0) Poti3 = 0; else if(Poti3 > 255) Poti3 = 255; |
if(Poti4 < 0) Poti4 = 0; else if(Poti4 > 255) Poti4 = 255; |
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L; |
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L; |
} |
// *** EOF: CalibrierMittelwert() *************************************************************************************************** |
// *************************************************************************************************************************** |
// take over the motor values from Motor[] and start I2C-Bus |
// ---------------------------------------------------------- |
void SendMotorData(void) |
{ |
unsigned char i; |
if(!MotorenEin) |
{ |
MikroKopterFlags &= ~(FLAG_MOTOR_RUN | FLAG_FLY); |
for(i=0; i < MAX_MOTORS; i++) // #define MAX_MOTORS 4 |
{ |
if(!PC_MotortestActive) MotorTest[i] = 0; |
Motor[i] = MotorTest[i]; |
} |
if(PC_MotortestActive) PC_MotortestActive--; |
} |
else MikroKopterFlags |= FLAG_MOTOR_RUN; // #define FLAG_MOTOR_RUN 1 |
DebugOut.Analog[12] = Motor[0]; // see also fc.c line 1270 |
DebugOut.Analog[13] = Motor[1]; |
twi_state = 0; // it is assumed that all Motor[] have ther new value now -> see line 1645 |
motor = 0; |
i2c_start(); // start I2C Interrupt Mode |
} |
// *************************************************************************************************************************** |
// ******************************************************************************************************************************** |
// Trägt gegebenfalls das Poti als Parameter ein |
//---------------------------------------------- |
void ParameterZuordnung(void) |
{ |
#define CHK_POTI_MM(b,a,min,max) { if(a > 250) { if(a == 251) b = Poti1; else if(a == 252) b = Poti2; else if(a == 253) b = Poti3; else if(a == 254) b = Poti4;} else b = a; if(b <= min) b = min; else if(b >= max) b = max;} |
#define CHK_POTI(b,a,min,max) { if(a > 250) { if(a == 251) b = Poti1; else if(a == 252) b = Poti2; else if(a == 253) b = Poti3; else if(a == 254) b = Poti4;} else b = a; } |
CHK_POTI(Parameter_MaxHoehe,EE_Parameter.MaxHoehe,0,255); |
CHK_POTI_MM(Parameter_Luftdruck_D,EE_Parameter.Luftdruck_D,0,100); |
CHK_POTI_MM(Parameter_Hoehe_P,EE_Parameter.Hoehe_P,0,100); |
CHK_POTI(Parameter_Hoehe_ACC_Wirkung,EE_Parameter.Hoehe_ACC_Wirkung,0,255); |
CHK_POTI(Parameter_Hoehe_GPS_Z,EE_Parameter.Hoehe_GPS_Z,0,255); |
CHK_POTI(Parameter_KompassWirkung,EE_Parameter.KompassWirkung,0,255); |
CHK_POTI_MM(Parameter_Gyro_P,EE_Parameter.Gyro_P,10,255); |
CHK_POTI(Parameter_Gyro_I,EE_Parameter.Gyro_I,0,255); |
CHK_POTI(Parameter_Gyro_D,EE_Parameter.Gyro_D,0,255); |
CHK_POTI(Parameter_Gyro_Gier_P,EE_Parameter.Gyro_Gier_P,10,255); |
CHK_POTI(Parameter_Gyro_Gier_I,EE_Parameter.Gyro_Gier_I,0,255); |
CHK_POTI(Parameter_I_Faktor,EE_Parameter.I_Faktor,0,255); |
CHK_POTI(Parameter_UserParam1,EE_Parameter.UserParam1,0,255); |
CHK_POTI(Parameter_UserParam2,EE_Parameter.UserParam2,0,255); |
CHK_POTI(Parameter_UserParam3,EE_Parameter.UserParam3,0,255); |
CHK_POTI(Parameter_UserParam4,EE_Parameter.UserParam4,0,255); |
CHK_POTI(Parameter_UserParam5,EE_Parameter.UserParam5,0,255); |
CHK_POTI(Parameter_UserParam6,EE_Parameter.UserParam6,0,255); |
CHK_POTI(Parameter_UserParam7,EE_Parameter.UserParam7,0,255); |
CHK_POTI(Parameter_UserParam8,EE_Parameter.UserParam8,0,255); |
CHK_POTI(Parameter_ServoNickControl,EE_Parameter.ServoNickControl,0,255); |
CHK_POTI(Parameter_ServoRollControl,EE_Parameter.ServoRollControl,0,255); |
CHK_POTI(Parameter_LoopGasLimit,EE_Parameter.LoopGasLimit,0,255); |
CHK_POTI(Parameter_AchsKopplung1, EE_Parameter.AchsKopplung1,0,255); |
CHK_POTI(Parameter_AchsKopplung2, EE_Parameter.AchsKopplung2,0,255); |
CHK_POTI(Parameter_CouplingYawCorrection,EE_Parameter.CouplingYawCorrection,0,255); |
CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability,0,255); |
CHK_POTI_MM(Parameter_J16Timing,EE_Parameter.J16Timing,1,255); |
CHK_POTI_MM(Parameter_J17Timing,EE_Parameter.J17Timing,1,255); |
CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl,0,255); |
Ki = 10300 / (Parameter_I_Faktor + 1); |
MAX_GAS = EE_Parameter.Gas_Max; // bei Beginner3 = 230 |
MIN_GAS = EE_Parameter.Gas_Min; // bei Beginner3 = 8 |
} |
//----------------------------------------------------------------------------------------------------------- |
// ------------------------------------------only for balance ------------------------------------ |
unsigned char ucflg1=0x01, ucflg2=0x01, ucflg3=0x01; |
int ipk[3] = {0,0,0}; |
int angle, desiredAngle, motorOutFront, motorOutRear; |
int thrust; |
int kp=0, kd=0, kdd=0; |
int controllerP = 0, maxcontrollerP = 0, mincontrollerP = 0; |
int controllerD = 0, maxcontrollerD = 0 , mincontrollerD = 0; |
int controllerDD = 0, maxcontrollerDD = 0, mincontrollerDD = 0; |
int gyroScaledOld = 0; |
int gyroScaled = 0; |
int filtersum = 0; |
int filterDD = 0; |
// EOF: for balance ---------------------------------------------------------------------------- |
// ********************************************************************************************************************** |
// automatic control function - called from main.c |
// ------------------------------------------------ |
void MotorRegler(void) |
{ |
int pd_ergebnis_nick,pd_ergebnis_roll,tmp_int, tmp_int2; |
int GierMischanteil,GasMischanteil; |
static long SummeNick=0,SummeRoll=0; |
static long sollGier = 0,tmp_long,tmp_long2; |
static long IntegralFehlerNick = 0; |
static long IntegralFehlerRoll = 0; |
static unsigned int RcLostTimer; |
static unsigned char delay_neutral = 0; // |
static unsigned char delay_einschalten = 0,delay_ausschalten = 0; |
static char TimerWerteausgabe = 0; |
static char NeueKompassRichtungMerken = 0; |
static long ausgleichNick, ausgleichRoll; |
int IntegralNickMalFaktor,IntegralRollMalFaktor; |
// unsigned char i; |
if(--LoadHandler == 0) LoadHandler = 5; // verteilt die Prozessorlast |
Mittelwert(); // see fc.c line 273 |
GRN_ON; // switch on green LED |
// ------------------------------------------------------------------- |
// find out gas value |
// ------------------------------------------------------------------- |
GasMischanteil = StickGas; |
if(GasMischanteil < MIN_GAS + 10) GasMischanteil = MIN_GAS + 10; |
// ---------------------------------------------------------------------------------- |
// radio control receiving is bad |
// ---------------------------------------------------------------------------------- |
if(SenderOkay < 100) |
{ |
if(RcLostTimer) RcLostTimer--; |
else |
{ |
MotorenEin = 0; |
MikroKopterFlags &= ~FLAG_NOTLANDUNG; |
} |
ROT_ON; |
if(modell_fliegt > 1000) // wahrscheinlich in der Luft --> langsam absenken |
{ |
GasMischanteil = EE_Parameter.NotGas; |
MikroKopterFlags |= FLAG_NOTLANDUNG; |
PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] = 0; // #define K_NICK 0 |
PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] = 0; // #define K_ROLL 1 |
PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] = 0; // #define K_GAS 2 |
PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] = 0; |
PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] = 0; // #define K_GIER 3 |
} |
else MotorenEin = 0; |
} // EOF : receiving radio control is bad |
else |
// ----------------------------------------------------------------------------------- |
// radio control receiving is fine |
// ----------------------------------------------------------------------------------- |
if(SenderOkay > 140) |
{ |
MikroKopterFlags &= ~FLAG_NOTLANDUNG; |
RcLostTimer = EE_Parameter.NotGasZeit * 50; |
if(GasMischanteil > 40 && MotorenEin) |
{ |
if(modell_fliegt < 0xffff) modell_fliegt++; |
} |
if((modell_fliegt < 256)) |
{ |
SummeNick = 0; |
SummeRoll = 0; |
if(modell_fliegt == 250) |
{ |
NeueKompassRichtungMerken = 1; |
sollGier = 0; |
Mess_Integral_Gier = 0; |
} |
} |
else MikroKopterFlags |= FLAG_FLY; |
if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0) |
{ |
//---------------------------------------------------------------------------- |
// calibrate to zero |
//---------------------------------------------------------------------------- |
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) // neutral values |
{ |
if(++delay_neutral > 200) // during the first 200 ms |
{ |
GRN_OFF; |
MotorenEin = 0; // switch or keep motor in status "off" |
delay_neutral = 0; |
modell_fliegt = 0; |
//---------------------------------------------------------------------------------------------------------------- |
// Bei ausgeschalteten Motoren Settings per Sender einstellen: |
// |
// Gas/Gier-Knüppel oben-links und gleichzeitig... |
// |
// Nick/Roll-Knüppel -> Links Mitte = Setting 1; Sport, sehr agil |
// Nick/Roll-Knüppel -> Links Oben = Setting 2; Normal |
// Nick/Roll-Knüppel -> Mitte Oben = Setting 3; Beginner, empfohlen für erste Versuche |
// Nick/Roll-Knüppel -> Rechts Oben = Setting 4 |
// Nick/Roll-Knüppel -> Rechts Mitte = Setting 5 |
// |
// Setting 1 = Gas rauf und Gier links dann Roll links und Nick mitte |
// Setting 2 = Gas rauf und Gier links dann Roll links und Nick rauf |
// Setting 3 = Gas rauf und Gier links dann Roll mitte und Nick rauf |
// Setting 4 = Gas rauf und Gier links dann Roll rechts und Nick rauf |
// Setting 5 = Gas rauf und Gier links dann Roll rechts und Nick mitte |
//---------------------------------------------------------------------------------------------------------------- |
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) > 70) |
{ |
unsigned char setting=1; |
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 1; |
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2; |
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3; |
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4; |
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 5; |
SetActiveParamSetNumber(setting); // aktiven Datensatz merken |
} |
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) |
{ |
WinkelOut.CalcState = 1; // Kompass wird kalibriert |
beeptime = 1000; |
} |
else |
{ |
//------------------------------------------------------------------------------------------------------------------- |
// Hier werden die Werte aus dem EEPROM entsprechend Setting eingelesen |
//------------------------------------------------------------------------------------------------------------------- |
ReadParameterSet(GetActiveParamSetNumber(), (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE); // #define STRUCT_PARAM_LAENGE sizeof(EE_Parameter) |
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert? |
{ |
if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset(); |
} |
// Vor jedem Starten des MK sollten die Gyros neu kalibriert werden. |
// Dazu wird der Gas/Gier-Knüppel einige Zeit in die obere linke Ecke gedrückt |
ServoActive = 0; |
SetNeutral(); |
ServoActive = 1; |
DDRD |=0x80; // enable J7 -> Servo signal |
Piep(GetActiveParamSetNumber(),120); |
} |
} // Ende von "nicht sofort, sondern erst nach 200 ms" |
} |
else |
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) // ACC Neutralwerte speichern |
{ |
if(++delay_neutral > 200) // nicht sofort |
{ |
GRN_OFF; |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK],0xff); // Werte löschen |
MotorenEin = 0; |
delay_neutral = 0; |
modell_fliegt = 0; |
SetNeutral(); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK],NeutralAccX / 256); // ACC-NeutralWerte speichern |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK+1],NeutralAccX % 256); // ACC-NeutralWerte speichern |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL],NeutralAccY / 256); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL+1],NeutralAccY % 256); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_Z],(int)NeutralAccZ / 256); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_Z+1],(int)NeutralAccZ % 256); |
Piep(GetActiveParamSetNumber(),120); |
} |
} |
else delay_neutral = 0; |
} //Ende Gas ist oben und Motoren aus |
//--------------------------------------------------------------------------------------------------------------------- |
// gas is at bottom for switing on or off |
//--------------------------------------------------------------------------------------------------------------------- |
if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < -85) // Gas unten |
{ |
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) // Starten - Gierknüppel unten ganz rechts |
{ |
// ------------------------------------------------------------------------------------- |
// switch on motor |
// ------------------------------------------------------------------------------------- |
if(++delay_einschalten > 200) |
{ |
delay_einschalten = 200; |
modell_fliegt = 1; |
MotorenEin = 1; |
sollGier = 0; |
Mess_Integral_Gier = 0; |
Mess_Integral_Gier2 = 0; |
Mess_IntegralNick = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccNick; |
Mess_IntegralRoll = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccRoll; |
Mess_IntegralNick2 = IntegralNick; |
Mess_IntegralRoll2 = IntegralRoll; |
SummeNick = 0; |
SummeRoll = 0; |
MikroKopterFlags |= FLAG_START; |
} |
} |
else delay_einschalten = 0; // reset delay |
//---------------------------------------------------------------------------------------------- |
// switch off |
//---------------------------------------------------------------------------------------------- |
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) |
{ |
if(++delay_ausschalten > 200) // nicht sofort |
{ |
MotorenEin = 0; |
delay_ausschalten = 200; |
modell_fliegt = 0; |
} |
} |
else delay_ausschalten = 0; |
} // EOF : gas is at bottom |
} // EOF : receiving radio control is good |
//------------------------------------------------------------------------------------------------------------------- |
// neue Werte von der Funke |
//------------------------------------------------------------------------------------------------------------------- |
if(!NewPpmData-- || (MikroKopterFlags & FLAG_NOTLANDUNG)) |
{ |
static int stick_nick,stick_roll; |
ParameterZuordnung(); |
stick_nick = (stick_nick * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_P) / 4; |
stick_nick += PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_D; |
StickNick = stick_nick; |
stick_roll = (stick_roll * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_P) / 4; |
stick_roll += PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_D; |
StickRoll = stick_roll; |
StickGier = -PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]; |
if(StickGier > 2) StickGier -= 2; else |
if(StickGier < -2) StickGier += 2; else StickGier = 0; |
StickGas = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] + 120; |
GyroFaktor = (Parameter_Gyro_P + 10.0); |
IntegralFaktor = Parameter_Gyro_I; |
GyroFaktorGier = (Parameter_Gyro_Gier_P + 10.0); |
IntegralFaktorGier = Parameter_Gyro_Gier_I; |
//------------------------------------------------------------------------------------------ |
// Analoge Steuerung nicht per Fersteuerung, sondern per serieller Schnittstelle |
//------------------------------------------------------------------------------------------ |
if(ExternControl.Config & 0x01 && Parameter_ExternalControl > 128) |
{ |
StickNick += (int) ExternControl.Nick * (int) EE_Parameter.Stick_P; |
StickRoll += (int) ExternControl.Roll * (int) EE_Parameter.Stick_P; |
StickGier += ExternControl.Gier; |
ExternHoehenValue = (int) ExternControl.Hight * (int)EE_Parameter.Hoehe_Verstaerkung; |
if(ExternControl.Gas < StickGas) StickGas = ExternControl.Gas; |
} |
if(StickGas < 0) StickGas = 0; |
if(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) IntegralFaktor = 0; |
//if(GyroFaktor < 0) GyroFaktor = 0; |
//if(IntegralFaktor < 0) IntegralFaktor = 0; |
if(abs(StickNick/STICK_GAIN) > MaxStickNick) |
{ |
MaxStickNick = abs(StickNick)/STICK_GAIN; |
if(MaxStickNick > 100) MaxStickNick = 100; |
} |
else MaxStickNick--; |
if(abs(StickRoll/STICK_GAIN) > MaxStickRoll) |
{ |
MaxStickRoll = abs(StickRoll)/STICK_GAIN; |
if(MaxStickRoll > 100) MaxStickRoll = 100; |
} |
else MaxStickRoll--; |
if(MikroKopterFlags & FLAG_NOTLANDUNG) {MaxStickNick = 0; MaxStickRoll = 0;} |
// ----------------------------------------------------------------------------------------------------------------------------------- |
// Looping? |
// ----------------------------------------------------------------------------------------------------------------------------------- |
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_LINKS) Looping_Links = 1; |
else |
{ |
{ |
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Links = 0; |
} |
} |
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < -EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_RECHTS) Looping_Rechts = 1; |
else |
{ |
if(Looping_Rechts) // Hysterese |
{ |
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > -(EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese)) Looping_Rechts = 0; |
} |
} |
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_OBEN) Looping_Oben = 1; |
else |
{ |
if(Looping_Oben) // Hysterese |
{ |
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Oben = 0; |
} |
} |
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_UNTEN) Looping_Unten = 1; |
else |
{ |
if(Looping_Unten) // Hysterese |
{ |
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -(EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese)) Looping_Unten = 0; |
} |
} |
if(Looping_Links || Looping_Rechts) Looping_Roll = 1; else Looping_Roll = 0; |
if(Looping_Oben || Looping_Unten) { Looping_Nick = 1; Looping_Roll = 0; Looping_Links = 0; Looping_Rechts = 0;} else Looping_Nick = 0; |
} // EOF : "neue Funksteuerungswerte" |
if(Looping_Roll || Looping_Nick) |
{ |
if(GasMischanteil > EE_Parameter.LoopGasLimit) GasMischanteil = EE_Parameter.LoopGasLimit; |
TrichterFlug = 1; |
} |
// --------------------------------------------------------------------------------------------- |
// Bei Empfangsausfall im Flug Notlandung einleiten |
// --------------------------------------------------------------------------------------------- |
if(MikroKopterFlags & FLAG_NOTLANDUNG) |
{ |
StickGier = 0; |
StickNick = 0; |
StickRoll = 0; |
GyroFaktor = 90; |
IntegralFaktor = 120; |
GyroFaktorGier = 90; |
IntegralFaktorGier = 120; |
Looping_Roll = 0; |
Looping_Nick = 0; |
} // ------------------- Ende : Notlandung ----------------------------------------------------- |
//--------------------------------------------------------------------------------------------- |
// Integrale auf ACC-Signal abgleichen |
//--------------------------------------------------------------------------------------------- |
#define ABGLEICH_ANZAHL 256L |
MittelIntegralNick += IntegralNick; // Für die Mittelwertbildung aufsummieren |
MittelIntegralRoll += IntegralRoll; |
MittelIntegralNick2 += IntegralNick2; |
MittelIntegralRoll2 += IntegralRoll2; |
if(Looping_Nick || Looping_Roll) |
{ |
IntegralAccNick = 0; |
IntegralAccRoll = 0; |
MittelIntegralNick = 0; |
MittelIntegralRoll = 0; |
MittelIntegralNick2 = 0; |
MittelIntegralRoll2 = 0; |
Mess_IntegralNick2 = Mess_IntegralNick; |
Mess_IntegralRoll2 = Mess_IntegralRoll; |
ZaehlMessungen = 0; // counts one up as all ADC cases have been passed through -> see analog.c line 288 |
LageKorrekturNick = 0; |
LageKorrekturRoll = 0; |
} |
//------------------------------------------------------------------------------------------------ |
if(!Looping_Nick && !Looping_Roll && (Aktuell_az > 512 || MotorenEin)) |
{ |
long tmp_long, tmp_long2; |
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick); |
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll); |
tmp_long /= 16; |
tmp_long2 /= 16; |
if((MaxStickNick > 64) || (MaxStickRoll > 64)) |
{ |
tmp_long /= 3; |
tmp_long2 /= 3; |
} |
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25) |
{ |
tmp_long /= 3; |
tmp_long2 /= 3; |
} |
#define AUSGLEICH 32 |
if(tmp_long > AUSGLEICH) tmp_long = AUSGLEICH; |
if(tmp_long < -AUSGLEICH) tmp_long =-AUSGLEICH; |
if(tmp_long2 > AUSGLEICH) tmp_long2 = AUSGLEICH; |
if(tmp_long2 <-AUSGLEICH) tmp_long2 =-AUSGLEICH; |
//if(Poti2 > 20) { tmp_long = 0; tmp_long2 = 0;} |
Mess_IntegralNick -= tmp_long; |
Mess_IntegralRoll -= tmp_long2; |
} // --------------------------------- EOF: Looping ----------------------------------- |
// ------------------------------------------------------------------------------------------------- |
// nach 256 ADC Durchläufen wird abgeglichen |
// ------------------------------------------------------------------------------------------------- |
if(ZaehlMessungen >= ABGLEICH_ANZAHL) // #define ABGLEICH_ANZAHL 256L |
{ // counts one up as all ADC cases have been passed through -> see analog.c line 288 |
static int cnt = 0; |
static char last_n_p,last_n_n,last_r_p,last_r_n; |
static long MittelIntegralNick_Alt,MittelIntegralRoll_Alt; |
if(!Looping_Nick && !Looping_Roll && !TrichterFlug && EE_Parameter.Driftkomp) |
{ |
MittelIntegralNick /= ABGLEICH_ANZAHL; // #define ABGLEICH_ANZAHL 256L |
MittelIntegralRoll /= ABGLEICH_ANZAHL; |
IntegralAccNick = (EE_Parameter.GyroAccFaktor * IntegralAccNick) / ABGLEICH_ANZAHL; |
IntegralAccRoll = (EE_Parameter.GyroAccFaktor * IntegralAccRoll) / ABGLEICH_ANZAHL; |
IntegralAccZ = IntegralAccZ / ABGLEICH_ANZAHL; |
#define MAX_I 0//(Poti2/10) |
// ---- Nick ------------------------------------------------------------- |
IntegralFehlerNick = (long)(MittelIntegralNick - (long)IntegralAccNick); |
ausgleichNick = IntegralFehlerNick / EE_Parameter.GyroAccAbgleich; |
// --- Roll -------------------------------------------------------------- |
IntegralFehlerRoll = (long)(MittelIntegralRoll - (long)IntegralAccRoll); |
ausgleichRoll = IntegralFehlerRoll / EE_Parameter.GyroAccAbgleich; |
LageKorrekturNick = ausgleichNick / ABGLEICH_ANZAHL; // #define ABGLEICH_ANZAHL 256L |
LageKorrekturRoll = ausgleichRoll / ABGLEICH_ANZAHL; |
if( (MaxStickNick > 64) || (MaxStickRoll > 64) || (abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25) ) |
{ |
LageKorrekturNick /= 2; |
LageKorrekturRoll /= 2; |
} |
//---------------------------------------------------- |
// Gyro-Drift ermitteln |
//---------------------------------------------------- |
MittelIntegralNick2 /= ABGLEICH_ANZAHL; // #define ABGLEICH_ANZAHL 256L |
MittelIntegralRoll2 /= ABGLEICH_ANZAHL; |
tmp_long = IntegralNick2 - IntegralNick; |
tmp_long2 = IntegralRoll2 - IntegralRoll; |
//DebugOut.Analog[25] = MittelIntegralRoll2 / 26; |
IntegralFehlerNick = tmp_long; |
IntegralFehlerRoll = tmp_long2; |
Mess_IntegralNick2 -= IntegralFehlerNick; |
Mess_IntegralRoll2 -= IntegralFehlerRoll; |
if(EE_Parameter.Driftkomp) |
{ |
if(GierGyroFehler > ABGLEICH_ANZAHL/2) { AdNeutralGier++; AdNeutralGierBias++; } // #define ABGLEICH_ANZAHL 256L |
if(GierGyroFehler <-ABGLEICH_ANZAHL/2) { AdNeutralGier--; AdNeutralGierBias--; } |
} |
GierGyroFehler = 0; |
#define FEHLER_LIMIT (ABGLEICH_ANZAHL / 2) // #define ABGLEICH_ANZAHL 256L |
#define FEHLER_LIMIT1 (ABGLEICH_ANZAHL * 2) //4 |
#define FEHLER_LIMIT2 (ABGLEICH_ANZAHL * 16) //16 |
#define BEWEGUNGS_LIMIT 20000 |
// --------------- Nick ------------------------------------------------------------------ |
cnt = 1; // + labs(IntegralFehlerNick) / 4096; |
if(labs(IntegralFehlerNick) > FEHLER_LIMIT1) cnt = 4; |
if( labs(MittelIntegralNick_Alt - MittelIntegralNick) < BEWEGUNGS_LIMIT ) |
{ |
if(IntegralFehlerNick > FEHLER_LIMIT2) |
{ |
if(last_n_p) |
{ |
cnt += labs(IntegralFehlerNick) / (FEHLER_LIMIT2 / 8); |
ausgleichNick = IntegralFehlerNick / 8; |
if(ausgleichNick > 5000) ausgleichNick = 5000; |
LageKorrekturNick += ausgleichNick / ABGLEICH_ANZAHL; // #define ABGLEICH_ANZAHL 256L |
} |
else last_n_p = 1; |
} |
else last_n_p = 0; |
if(IntegralFehlerNick < -FEHLER_LIMIT2) |
{ |
if(last_n_n) |
{ |
cnt += labs(IntegralFehlerNick) / (FEHLER_LIMIT2 / 8); |
ausgleichNick = IntegralFehlerNick / 8; |
if(ausgleichNick < -5000) ausgleichNick = -5000; |
LageKorrekturNick += ausgleichNick / ABGLEICH_ANZAHL; // #define ABGLEICH_ANZAHL 256L |
} |
else last_n_n = 1; |
} |
else last_n_n = 0; |
} |
else |
{ |
cnt = 0; |
KompassSignalSchlecht = 1000; |
} |
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp; |
if(IntegralFehlerNick > FEHLER_LIMIT) AdNeutralNick += cnt; |
if(IntegralFehlerNick < -FEHLER_LIMIT) AdNeutralNick -= cnt; |
// ------------------ Roll -------------------------------------------------------------------- |
cnt = 1;// + labs(IntegralFehlerNick) / 4096; |
if(labs(IntegralFehlerRoll) > FEHLER_LIMIT1) cnt = 4; |
ausgleichRoll = 0; |
if(labs(MittelIntegralRoll_Alt - MittelIntegralRoll) < BEWEGUNGS_LIMIT ) |
{ |
if(IntegralFehlerRoll > FEHLER_LIMIT2) |
{ |
if(last_r_p) |
{ |
cnt += labs(IntegralFehlerRoll) / (FEHLER_LIMIT2 / 8); |
ausgleichRoll = IntegralFehlerRoll / 8; |
if(ausgleichRoll > 5000) ausgleichRoll = 5000; |
LageKorrekturRoll += ausgleichRoll / ABGLEICH_ANZAHL; // #define ABGLEICH_ANZAHL 256L |
} |
else last_r_p = 1; |
} else last_r_p = 0; |
if(IntegralFehlerRoll < -FEHLER_LIMIT2) |
{ |
if(last_r_n) |
{ |
cnt += labs(IntegralFehlerRoll) / (FEHLER_LIMIT2 / 8); |
ausgleichRoll = IntegralFehlerRoll / 8; |
if(ausgleichRoll < -5000) ausgleichRoll = -5000; |
LageKorrekturRoll += ausgleichRoll / ABGLEICH_ANZAHL; // #define ABGLEICH_ANZAHL 256L |
} |
else last_r_n = 1; |
} else last_r_n = 0; |
} |
else |
{ |
cnt = 0; |
KompassSignalSchlecht = 1000; |
} |
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp; |
if(IntegralFehlerRoll > FEHLER_LIMIT) AdNeutralRoll += cnt; |
if(IntegralFehlerRoll < -FEHLER_LIMIT) AdNeutralRoll -= cnt; |
} |
else |
{ |
LageKorrekturRoll = 0; |
LageKorrekturNick = 0; |
TrichterFlug = 0; |
} |
if(!IntegralFaktor) // z.B. bei Heading Hold wird nicht ausgeglichen |
{ |
LageKorrekturRoll = 0; |
LageKorrekturNick = 0; |
} |
// ---------------------------------------------------------------------------------- |
MittelIntegralNick_Alt = MittelIntegralNick; |
MittelIntegralRoll_Alt = MittelIntegralRoll; |
// ---------------------------------------------------------------------------------- |
IntegralAccNick = 0; |
IntegralAccRoll = 0; |
IntegralAccZ = 0; |
MittelIntegralNick = 0; |
MittelIntegralRoll = 0; |
MittelIntegralNick2 = 0; |
MittelIntegralRoll2 = 0; |
ZaehlMessungen = 0; // counts one up as all ADC cases have been passed through -> see analog.c line 288 |
} |
// EOF: if(ZaehlMessungen >= ABGLEICH_ANZAHL) |
// ------------------------------------------------------------------------------------------------------------- |
// -------- Gieren ----------- |
// |
// Für eine Drehung im Uhrzeigersinn wird die Drehzahl des linken und des rechten Propellers erhöht, |
// während die des vorderen und hinteren gesenkt wird |
// ------------------------------------------------------------------------------------------------------------- |
if(abs(StickGier) > 15) // war 35 |
{ |
KompassSignalSchlecht = 1000; |
if(!(EE_Parameter.GlobalConfig & CFG_KOMPASS_FIX)) // Orientation fix |
{ |
NeueKompassRichtungMerken = 1; |
} |
} |
tmp_int = (long) EE_Parameter.Gier_P * ((long)StickGier * abs(StickGier)) / 512L; // expo y = ax + bx² |
tmp_int += (EE_Parameter.Gier_P * StickGier) / 4; |
sollGier = tmp_int; |
Mess_Integral_Gier -= tmp_int; |
if(Mess_Integral_Gier > 50000) Mess_Integral_Gier = 50000; // begrenzen |
if(Mess_Integral_Gier <-50000) Mess_Integral_Gier =-50000; |
// ----------------------------------------------------------------------------------------------------- |
// Kompass |
// ------------------------------------------------------------------------------------------------------------------ |
if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)) // CFG_KOMPASS_AKTIV = 0x08 |
{ |
int w,v,r,fehler,korrektur; |
w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln |
v = abs(IntegralRoll /512); |
if(v > w) w = v; // grösste Neigung ermitteln |
korrektur = w / 8 + 1; |
fehler = ((540 + KompassValue - (ErsatzKompass/GIER_GRAD_FAKTOR)) % 360) - 180; // long GIER_GRAD_FAKTOR = 1291; |
if(abs(MesswertGier) > 128) |
{ |
fehler = 0; |
} |
if(!KompassSignalSchlecht && w < 25) |
{ |
GierGyroFehler += fehler; |
if(NeueKompassRichtungMerken) |
{ |
ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR; // long GIER_GRAD_FAKTOR = 1291; |
KompassStartwert = (ErsatzKompass/GIER_GRAD_FAKTOR); |
NeueKompassRichtungMerken = 0; |
} |
} |
ErsatzKompass += (fehler * 8) / korrektur; |
w = (w * Parameter_KompassWirkung) / 32; // auf die Wirkung normieren |
w = Parameter_KompassWirkung - w; // Wirkung ggf drosseln |
if(w >= 0) |
{ |
if(!KompassSignalSchlecht) |
{ |
v = 64 + ((MaxStickNick + MaxStickRoll)) / 8; |
r = ((540 + (ErsatzKompass/GIER_GRAD_FAKTOR) - KompassStartwert) % 360) - 180; // long GIER_GRAD_FAKTOR = 1291; |
// // r = KompassRichtung; |
v = (r * w) / v; // nach Kompass ausrichten |
w = 3 * Parameter_KompassWirkung; |
if(v > w) v = w; // Begrenzen |
else |
if(v < -w) v = -w; |
Mess_Integral_Gier += v; |
} |
if(KompassSignalSchlecht) KompassSignalSchlecht--; |
} |
else KompassSignalSchlecht = 500; // so lange das Signal taub stellen --> ca. 1 sek |
} // EOF: Kompass |
//--------------------------------------------------------------------------------------------------------------------------------- |
//---------------------------------------------------------------------------------------------------------------------------------- |
// Debugwerte zuordnen / die zugehörige Texte stehen unter -> uart.c Zeile 46 |
//---------------------------------------------------------------------------------------------------------------------------------- |
if(!TimerWerteausgabe--) |
{ |
TimerWerteausgabe = 24; |
DebugOut.Analog[0] = (int) (IntegralNick / (EE_Parameter.GyroAccFaktor * 4)); |
DebugOut.Analog[1] = Mittelwert_AccNick / 4; |
DebugOut.Analog[2] = maxcontrollerDD; |
DebugOut.Analog[3] = mincontrollerDD; |
DebugOut.Analog[4] = MesswertNick; |
DebugOut.Analog[5] = HiResNick; |
DebugOut.Analog[6] = AdWertAccNick; |
// siehe Zeile fc.c Zeile 1660 |
DebugOut.Analog[8] = 0; |
DebugOut.Analog[9] = UBat; |
DebugOut.Analog[10] = SenderOkay; |
DebugOut.Analog[11] = controllerP; |
// siehe fc.c Zeile 476 |
DebugOut.Analog[14] = controllerD; |
DebugOut.Analog[15] = controllerDD; |
DebugOut.Analog[16] = PPM_in[3]; |
DebugOut.Analog[17] = ipk[0]; |
DebugOut.Analog[18] = ipk[1]; |
DebugOut.Analog[19] = ipk[2]; |
DebugOut.Analog[20] = ucflg1; // 0,1,2 |
DebugOut.Analog[21] = PPM_in[5]; // switch chanel 5 |
DebugOut.Analog[22] = MesswertNick; |
DebugOut.Analog[23] = maxcontrollerD; |
DebugOut.Analog[24] = mincontrollerD; |
DebugOut.Analog[25] = AdWertNick; |
DebugOut.Analog[26] = maxcontrollerP; // = 727 |
DebugOut.Analog[27] = mincontrollerP; // = 730 |
DebugOut.Analog[28] = PPM_in[4]; // Gier |
DebugOut.Analog[29] = PPM_in[3]; // Nick |
DebugOut.Analog[30] = PPM_in[2]; // Roll |
DebugOut.Analog[31] = PPM_in[1]; // Gas |
} |
// ----------------------------------------------------------------------- |
// Drehgeschwindigkeit und Drehwinkel zu einem Istwert zusammenfassen |
// ----------------------------------------------------------------------- |
if(TrichterFlug) {SummeRoll = 0; SummeNick = 0;}; |
if(!Looping_Nick) IntegralNickMalFaktor = (IntegralNick * IntegralFaktor) / (44000 / STICK_GAIN); else IntegralNickMalFaktor = 0; |
if(!Looping_Roll) IntegralRollMalFaktor = (IntegralRoll * IntegralFaktor) / (44000 / STICK_GAIN); else IntegralRollMalFaktor = 0; |
#define TRIM_MAX 200 |
if(TrimNick > TRIM_MAX) TrimNick = TRIM_MAX; else if(TrimNick <-TRIM_MAX) TrimNick =-TRIM_MAX; |
if(TrimRoll > TRIM_MAX) TrimRoll = TRIM_MAX; else if(TrimRoll <-TRIM_MAX) TrimRoll =-TRIM_MAX; |
MesswertNick = IntegralNickMalFaktor + (long)((long)MesswertNick * GyroFaktor + (long)TrimNick * 128L) / (256L / STICK_GAIN); |
MesswertRoll = IntegralRollMalFaktor + (long)((long)MesswertRoll * GyroFaktor + (long)TrimRoll * 128L) / (256L / STICK_GAIN); |
MesswertGier = (long)(MesswertGier * 2 * (long)GyroFaktorGier) / (256L / STICK_GAIN) + (long)(Integral_Gier * IntegralFaktorGier) / (2 * (44000 / STICK_GAIN)); |
// Maximalwerte abfangen |
// #define MAX_SENSOR (4096*STICK_GAIN) |
#define MAX_SENSOR (4096*4) |
if(MesswertNick > MAX_SENSOR) MesswertNick = MAX_SENSOR; |
if(MesswertNick < -MAX_SENSOR) MesswertNick = -MAX_SENSOR; |
if(MesswertRoll > MAX_SENSOR) MesswertRoll = MAX_SENSOR; |
if(MesswertRoll < -MAX_SENSOR) MesswertRoll = -MAX_SENSOR; |
if(MesswertGier > MAX_SENSOR) MesswertGier = MAX_SENSOR; |
if(MesswertGier < -MAX_SENSOR) MesswertGier = -MAX_SENSOR; |
// ------------------------------------------------------------------------------------------------------------------------ |
// Höhenregelung |
// Die Höhenregelung schwächt lediglich das Gas ab, erhöht es allerdings nicht |
// ------------------------------------------------------------------------------------------------------------------------ |
if(UBat > BattLowVoltageWarning) GasMischanteil = ((unsigned int)GasMischanteil * BattLowVoltageWarning) / UBat; // Gas auf das aktuelle Spannungvieveau beziehen |
GasMischanteil *= STICK_GAIN; |
// if height control is activated |
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG) && !(Looping_Roll || Looping_Nick)) // Höhenregelung |
{ |
//--------------------------------- definitions------------------------------------------- |
#define HOOVER_GAS_AVERAGE 4096L // 4096 * 2ms = 8.2s averaging |
#define HC_GAS_AVERAGE 4 // 4 * 2ms= 8ms averaging |
#define OPA_OFFSET_STEP 10 |
//------------------------------- variables ---------------------------------------------- |
int HCGas, HeightDeviation; |
static int HeightTrimming = 0; // rate for change of height setpoint |
static int FilterHCGas = 0; |
static int StickGasHoover = 120, HooverGas = 0, HooverGasMin = 0, HooverGasMax = 1023; |
static unsigned long HooverGasFilter = 0; |
static unsigned char delay = 100, BaroAtUpperLimit = 0, BaroAtLowerLimit = 0; |
int CosAttitude; // for projection of hoover gas |
// ------------------------------- get the current hooverpoint ---------------------------------------------------------- |
// if(LoadHandler == 1) |
{ |
// DebugOut.Analog[21] = HooverGas; |
// DebugOut.Analog[18] = VarioMeter; |
// Expand the measurement |
// measurement of air pressure close to upper limit and no overflow in correction of the new OCR0A value occurs |
if(!BaroExpandActive) |
{ |
if(MessLuftdruck > 920) |
{ // increase offset |
if(OCR0A < (255 - OPA_OFFSET_STEP)) |
{ |
ExpandBaro -= 1; |
OCR0A = DruckOffsetSetting - OPA_OFFSET_STEP * ExpandBaro; // increase offset to shift ADC down |
beeptime = 300; |
BaroExpandActive = 350; |
} |
else |
{ |
BaroAtLowerLimit = 1; |
} |
} |
// measurement of air pressure close to lower limit and |
else |
if(MessLuftdruck < 100) |
{ // decrease offset |
if(OCR0A > OPA_OFFSET_STEP) |
{ |
ExpandBaro += 1; |
OCR0A = DruckOffsetSetting - OPA_OFFSET_STEP * ExpandBaro; // decrease offset to shift ADC up |
beeptime = 300; |
BaroExpandActive = 350; |
} |
else |
{ |
BaroAtUpperLimit = 1; |
} |
} |
else |
{ |
BaroAtUpperLimit = 0; |
BaroAtLowerLimit = 0; |
} |
} |
else // delay, because of expanding the Baro-Range |
{ |
// now clear the D-values |
SummenHoehe = HoehenWert * SM_FILTER; // #define SM_FILTER 16 |
VarioMeter = 0; |
BaroExpandActive--; |
} |
// if height control is activated by an rc channel |
if(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER) // Regler wird über Schalter gesteuert |
{ // check if parameter is less than activation threshold |
if(Parameter_MaxHoehe < 50) // for 3 or 2-state switch height control is disabled in lowest position |
{ //height control not active |
if(!delay--) |
{ |
HoehenReglerAktiv = 0; // disable height control |
SollHoehe = HoehenWert; // update SetPoint with current reading |
delay = 1; |
} |
} |
else |
{ //height control is activated |
HoehenReglerAktiv = 1; // enable height control |
delay = 200; |
} |
} |
else // no switchable height control |
{ |
SollHoehe = ((int16_t) ExternHoehenValue + (int16_t) Parameter_MaxHoehe) * (int)EE_Parameter.Hoehe_Verstaerkung; |
HoehenReglerAktiv = 1; |
} |
// calculate cos of nick and roll angle used for projection of the vertical hoover gas |
tmp_int = (int)(IntegralNick/GIER_GRAD_FAKTOR); // nick angle in deg |
tmp_int2 = (int)(IntegralRoll/GIER_GRAD_FAKTOR); // roll angle in deg |
CosAttitude = (int16_t)ihypot(tmp_int, tmp_int2); // phytagoras gives effective attitude angle in deg // xxx |
LIMIT_MAX(CosAttitude, 60); // limit effective attitude angle |
CosAttitude = c_cos_8192(CosAttitude); // cos of actual attitude |
if(HoehenReglerAktiv && !(MikroKopterFlags & FLAG_NOTLANDUNG)) |
{ |
#define HEIGHT_TRIM_UP 0x01 |
#define HEIGHT_TRIM_DOWN 0x02 |
static unsigned char HeightTrimmingFlag = 0x00; |
#define HEIGHT_CONTROL_STICKTHRESHOLD 15 |
// Holger original version |
// start of height control algorithm |
// the height control is only an attenuation of the actual gas stick. |
// I.e. it will work only if the gas stick is higher than the hover gas |
// and the hover height will be allways larger than height setpoint. |
if((EE_Parameter.ExtraConfig & CFG2_HEIGHT_LIMIT) || !(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER)) // Regler wird über Schalter gesteuert) |
{ // old version |
HCGas = GasMischanteil; // take current stick gas as neutral point for the height control |
HeightTrimming = 0; |
} |
else |
{ |
// alternative height control |
// PD-Control with respect to hoover point |
// the thrust loss out of horizontal attitude is compensated |
// the setpoint will be fine adjusted with the gas stick position |
if(MikroKopterFlags & FLAG_FLY) // trim setpoint only when flying |
{ // gas stick is above hoover point |
if(StickGas > (StickGasHoover + HEIGHT_CONTROL_STICKTHRESHOLD) && !BaroAtUpperLimit) |
{ |
if(HeightTrimmingFlag & HEIGHT_TRIM_DOWN) |
{ |
HeightTrimmingFlag &= ~HEIGHT_TRIM_DOWN; |
SollHoehe = HoehenWert; // update setpoint to current heigth |
} |
HeightTrimmingFlag |= HEIGHT_TRIM_UP; |
HeightTrimming += abs(StickGas - (StickGasHoover + HEIGHT_CONTROL_STICKTHRESHOLD)); |
} // gas stick is below hoover point |
else if(StickGas < (StickGasHoover - HEIGHT_CONTROL_STICKTHRESHOLD) && !BaroAtLowerLimit ) |
{ |
if(HeightTrimmingFlag & HEIGHT_TRIM_UP) |
{ |
HeightTrimmingFlag &= ~HEIGHT_TRIM_UP; |
SollHoehe = HoehenWert; // update setpoint to current heigth |
} |
HeightTrimmingFlag |= HEIGHT_TRIM_DOWN; |
HeightTrimming -= abs(StickGas - (StickGasHoover - HEIGHT_CONTROL_STICKTHRESHOLD)); |
} |
else // Gas Stick in Hoover Range |
{ |
if(HeightTrimmingFlag & (HEIGHT_TRIM_UP | HEIGHT_TRIM_DOWN)) |
{ |
HeightTrimmingFlag &= ~(HEIGHT_TRIM_UP | HEIGHT_TRIM_DOWN); |
HeightTrimming = 0; |
SollHoehe = HoehenWert; // update setpoint to current height |
if(EE_Parameter.ExtraConfig & CFG2_VARIO_BEEP) beeptime = 500; |
} |
} |
// Trim height set point |
if(abs(HeightTrimming) > 512) |
{ |
SollHoehe += (HeightTrimming * EE_Parameter.Hoehe_Verstaerkung)/(5 * 512 / 2); // move setpoint |
HeightTrimming = 0; |
if(EE_Parameter.ExtraConfig & CFG2_VARIO_BEEP) beeptime = 75; |
//update hoover gas stick value when setpoint is shifted |
if(!EE_Parameter.Hoehe_StickNeutralPoint) |
{ |
StickGasHoover = HooverGas/STICK_GAIN; //rescale back to stick value |
StickGasHoover = (StickGasHoover * UBat) / BattLowVoltageWarning; |
if(StickGasHoover < 70) StickGasHoover = 70; |
else if(StickGasHoover > 150) StickGasHoover = 150; |
} |
} |
if(BaroExpandActive) SollHoehe = HoehenWert; // update setpoint to current altitude if Expanding is active |
} //if MikroKopterFlags & MKFLAG_FLY |
else |
{ |
SollHoehe = HoehenWert - 400; |
if(EE_Parameter.Hoehe_StickNeutralPoint) StickGasHoover = EE_Parameter.Hoehe_StickNeutralPoint; |
else StickGasHoover = 120; |
} |
HCGas = HooverGas; // take hoover gas (neutral point) |
} |
if(HoehenWert > SollHoehe || !(EE_Parameter.ExtraConfig & CFG2_HEIGHT_LIMIT)) |
{ |
// ------------------------- P-Part ---------------------------- |
HeightDeviation = (int)(HoehenWert - SollHoehe); // positive when too high |
tmp_int = (HeightDeviation * (int)Parameter_Hoehe_P) / 16; // p-part |
HCGas -= tmp_int; |
// ------------------------- D-Part 1: Vario Meter ---------------------------- |
tmp_int = VarioMeter / 8; |
if(tmp_int > 8) tmp_int = 8; // limit quadratic part on upward movement to avoid to much gas reduction |
if(tmp_int > 0) tmp_int = VarioMeter + (tmp_int * tmp_int) / 4; |
else tmp_int = VarioMeter - (tmp_int * tmp_int) / 4; |
tmp_int = (Parameter_Luftdruck_D * (long)(tmp_int)) / 128L; // scale to d-gain parameter |
LIMIT_MIN_MAX(tmp_int, -127, 255); |
HCGas -= tmp_int; |
// ------------------------ D-Part 2: ACC-Z Integral ------------------------ |
tmp_int = ((Mess_Integral_Hoch / 128) * (long) Parameter_Hoehe_ACC_Wirkung) / (128 / STICK_GAIN); |
LIMIT_MIN_MAX(tmp_int, -127, 255); |
HCGas -= tmp_int; |
// --------- limit deviation from hoover point within the target region --------------------------------- |
if( (abs(HeightDeviation) < 150) && (!HeightTrimming) && (HooverGas > 0)) // height setpoint is not changed and hoover gas not zero |
{ |
LIMIT_MIN_MAX(HCGas, HooverGasMin, HooverGasMax); // limit gas around the hoover point |
} |
if(BaroExpandActive) HCGas = HooverGas; |
// strech control output by inverse attitude projection 1/cos |
// + 1/cos(angle) ++++++++++++++++++++++++++ |
tmp_long2 = (int32_t)HCGas; |
tmp_long2 *= 8192L; |
tmp_long2 /= CosAttitude; |
HCGas = (int16_t)tmp_long2; |
// update height control gas averaging |
FilterHCGas = (FilterHCGas * (HC_GAS_AVERAGE - 1) + HCGas) / HC_GAS_AVERAGE; // #define HC_GAS_AVERAGE 4 |
// limit height control gas pd-control output |
LIMIT_MIN_MAX(FilterHCGas, EE_Parameter.Hoehe_MinGas * STICK_GAIN, (MAX_GAS - 20) * STICK_GAIN); |
// set GasMischanteil to HeightControlGasFilter |
if(EE_Parameter.ExtraConfig & CFG2_HEIGHT_LIMIT) // old version |
{ |
if(FilterHCGas > GasMischanteil) FilterHCGas = GasMischanteil; // nicht mehr als Gas |
} |
GasMischanteil = FilterHCGas; |
} |
}// EOF height control active |
else // HC not active |
{ |
//update hoover gas stick value when HC is not active |
if(!EE_Parameter.Hoehe_StickNeutralPoint) |
{ |
StickGasHoover = HooverGas/STICK_GAIN; // rescale back to stick value |
StickGasHoover = (StickGasHoover * UBat) / BattLowVoltageWarning; |
} |
else StickGasHoover = EE_Parameter.Hoehe_StickNeutralPoint; |
if(StickGasHoover < 70) StickGasHoover = 70; |
else if(StickGasHoover > 150) StickGasHoover = 150; |
FilterHCGas = GasMischanteil; |
} |
// Hoover gas estimation by averaging gas control output on small z-velocities |
// this is done only if height contol option is selected in global config and aircraft is flying |
if((MikroKopterFlags & FLAG_FLY) && !(MikroKopterFlags & FLAG_NOTLANDUNG)) |
{ |
if(HooverGasFilter == 0) HooverGasFilter = HOOVER_GAS_AVERAGE * (unsigned long)(GasMischanteil); // init estimation |
if(abs(VarioMeter) < 100) // only on small vertical speed |
{ |
tmp_long2 = (int32_t)GasMischanteil; // take current thrust |
tmp_long2 *= CosAttitude; // apply attitude projection |
tmp_long2 /= 8192; |
// average vertical projected thrust |
if(modell_fliegt < 2000) // the first 4 seconds |
{ // reduce the time constant of averaging by factor of 8 to get much faster a stable value |
HooverGasFilter -= HooverGasFilter/(HOOVER_GAS_AVERAGE/8L); |
HooverGasFilter += 8L * tmp_long2; |
} |
else if(modell_fliegt < 4000) // the first 8 seconds |
{ // reduce the time constant of averaging by factor of 4 to get much faster a stable value |
HooverGasFilter -= HooverGasFilter/(HOOVER_GAS_AVERAGE/4L); |
HooverGasFilter += 4L * tmp_long2; |
} |
else if(modell_fliegt < 8000) // the first 16 seconds |
{ // reduce the time constant of averaging by factor of 2 to get much faster a stable value |
HooverGasFilter -= HooverGasFilter/(HOOVER_GAS_AVERAGE/2L); |
HooverGasFilter += 2L * tmp_long2; |
} |
else //later |
{ |
HooverGasFilter -= HooverGasFilter/HOOVER_GAS_AVERAGE; |
HooverGasFilter += tmp_long2; |
} |
HooverGas = (int16_t)(HooverGasFilter/HOOVER_GAS_AVERAGE); |
if(EE_Parameter.Hoehe_HoverBand) |
{ |
int16_t band; |
band = HooverGas / EE_Parameter.Hoehe_HoverBand; // the higher the parameter the smaller the range |
HooverGasMin = HooverGas - band; |
HooverGasMax = HooverGas + band; |
} |
else |
{ // no limit |
HooverGasMin = 0; |
HooverGasMax = 1023; |
} |
} |
} |
} |
// EOF: |
} // EOF: ParamSet.GlobalConfig & CFG_HEIGHT_CONTROL |
// limit gas to parameter setting |
LIMIT_MIN(GasMischanteil, (MIN_GAS + 10) * STICK_GAIN); |
if(GasMischanteil > (MAX_GAS - 20) * STICK_GAIN) GasMischanteil = (MAX_GAS - 20) * STICK_GAIN; |
// ----------------------------------------------------------------------------------------------- |
// sind alle BL-Ctrl angeschlossen ? ist eventuell ein Motor defekt ? |
// ----------------------------------------------------------------------------------------------- |
if(MissingMotor) // see twimaster.c line 184 |
if(modell_fliegt > 1 && modell_fliegt < 50 && GasMischanteil > 0) |
{ |
modell_fliegt = 1; |
GasMischanteil = MIN_GAS; |
} |
//----------------------------------------------------------------------------------------------- |
// Mischer und PI-Regler |
//----------------------------------------------------------------------------------------------- |
//----------------------------------------------------------------------------------------------- |
// Gier-Anteil (yaw) |
//----------------------------------------------------------------------------------------------- |
GierMischanteil = MesswertGier - sollGier * STICK_GAIN; // Regler für Gier |
#define MIN_GIERGAS (40*STICK_GAIN) // unter diesem Gaswert trotzdem Gieren |
if(GasMischanteil > MIN_GIERGAS) |
{ |
if(GierMischanteil > (GasMischanteil / 2)) GierMischanteil = GasMischanteil / 2; |
if(GierMischanteil < -(GasMischanteil / 2)) GierMischanteil = -(GasMischanteil / 2); |
} |
else |
{ |
if(GierMischanteil > (MIN_GIERGAS / 2)) GierMischanteil = MIN_GIERGAS / 2; |
if(GierMischanteil < -(MIN_GIERGAS / 2)) GierMischanteil = -(MIN_GIERGAS / 2); |
} |
tmp_int = MAX_GAS*STICK_GAIN; |
if(GierMischanteil > ((tmp_int - GasMischanteil))) GierMischanteil = ((tmp_int - GasMischanteil)); |
if(GierMischanteil < -((tmp_int - GasMischanteil))) GierMischanteil = -((tmp_int - GasMischanteil)); |
// ------------------------------------------------------------------------------------------------------ |
// Nick-Achse (pitch axis) |
// ------------------------------------------------------------------------------------------------------ |
DiffNick = MesswertNick - StickNick; // Differenz bestimmen |
if(IntegralFaktor) SummeNick += IntegralNickMalFaktor - StickNick; // I-Anteil bei Winkelregelung |
else SummeNick += DiffNick; // I-Anteil bei Heading Hold |
if(SummeNick > (STICK_GAIN * 16000L)) SummeNick = (STICK_GAIN * 16000L); |
if(SummeNick < -(16000L * STICK_GAIN)) SummeNick = -(16000L * STICK_GAIN); |
pd_ergebnis_nick = DiffNick + SummeNick / Ki; // PI-Regler für Nick |
// Motor Vorn |
tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64; |
if(pd_ergebnis_nick > tmp_int) pd_ergebnis_nick = tmp_int; |
if(pd_ergebnis_nick < -tmp_int) pd_ergebnis_nick = -tmp_int; |
// ------------------------------------------------------------------------------------------------------ |
// Roll-Achse (roll axis) |
// ------------------------------------------------------------------------------------------------------ |
DiffRoll = MesswertRoll - StickRoll; // Differenz bestimmen |
if(IntegralFaktor) SummeRoll += IntegralRollMalFaktor - StickRoll; // I-Anteil bei Winkelregelung |
else SummeRoll += DiffRoll; // I-Anteil bei Heading Hold |
if(SummeRoll > (STICK_GAIN * 16000L)) SummeRoll = (STICK_GAIN * 16000L); |
if(SummeRoll < -(16000L * STICK_GAIN)) SummeRoll = -(16000L * STICK_GAIN); |
pd_ergebnis_roll = DiffRoll + SummeRoll / Ki; // PI-Regler für Roll |
tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64; |
if(pd_ergebnis_roll > tmp_int) pd_ergebnis_roll = tmp_int; |
if(pd_ergebnis_roll < -tmp_int) pd_ergebnis_roll = -tmp_int; |
// ----------------------------------------------------------------------------------- |
// kopterbalance |
// ----------------------------------------------------------------------------------- |
//------------------------------------------------------------------------------------ |
// set the parameters with radio control |
//------------------------------------------------------------------------------------ |
if((PPM_in[2] < -60) && (ucflg2==0x01)) |
{ |
ucflg2=0x00; |
if(ucflg1 == 0x02) |
{ |
ucflg1=0x00; |
} |
else ucflg1++; |
} |
if((PPM_in[2] > -20) && (PPM_in[2] < 20)) |
{ |
ucflg2=0x01; |
} |
// ----------------------------------------------------------------------------------- |
// set analog value at according parameter |
// ----------------------------------------------------------------------------------- |
if((PPM_in[5] < -80L) && (ucflg3==0x01)) |
{ |
ucflg3=0x00; |
if((ucflg1==0x00) || (ucflg1==0x01) || (ucflg1==0x02)) ipk[ucflg1] += PPM_in[3]; |
} |
if(PPM_in[5] > 80L) |
{ |
ucflg3=0x01; |
} |
kp = ipk[0]; |
kd = ipk[1]; |
kdd = ipk[2]; |
// ------------------------------------------------------------------------------------- |
// set trust with radio control |
// ----------------------------------------------------------------------------------- |
thrust = PPM_in[1] + 127; // set turnrate speed |
if(thrust<10) // limit min thrust |
{ |
thrust = 10; |
} |
if(thrust>50) // limit max thrust |
{ |
thrust = 50; |
} |
DebugOut.Analog[7] = thrust; |
// -------------------------------------------------------------------------------------- |
desiredAngle = 0; |
angle = (int) (IntegralNick / (EE_Parameter.GyroAccFaktor * 4)); |
gyroScaled = HiResNick; // Gyro |
// -------------------------------------------------------------------------------------- |
controllerP = (PPM_in[2]/4) + (kp * ((desiredAngle - angle)/16)); // proportional & manual control |
if(controllerP > maxcontrollerP) maxcontrollerP = controllerP; |
if(controllerP < mincontrollerP) mincontrollerP = controllerP; |
// -------------------------------------------------------------------------------------- |
controllerD = (-gyroScaled * kd)/512; |
if(controllerD > maxcontrollerD) maxcontrollerD = controllerD; |
if(controllerD < mincontrollerD) mincontrollerD = controllerD; |
// -------------------------------------------------------------------------------------- |
controllerDD = (gyroScaledOld - gyroScaled) * kdd; |
filtersum = filtersum - filterDD + controllerDD; |
filterDD = filtersum/8; |
controllerDD = filterDD / 64; |
gyroScaledOld = gyroScaled; |
if(controllerDD > maxcontrollerDD) maxcontrollerDD = controllerDD; |
if(controllerDD < mincontrollerDD) mincontrollerDD = controllerDD; |
// -------------------------------------------------------------------------------------- |
motorOutRear = thrust + controllerD + controllerDD + controllerP; |
motorOutFront = thrust - controllerD - controllerDD - controllerP; |
if(motorOutFront>50) motorOutFront = 50; |
if(motorOutFront<1) motorOutFront = 0; |
if(motorOutRear>50) motorOutRear = 50; |
if(motorOutRear<1) motorOutRear = 0; |
Motor[1] = motorOutRear; |
Motor[0] = motorOutFront; |
} |
// *** EOF: MotorRegler() ******************************************************************************************************** |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/fc.d |
---|
0,0 → 1,3 |
fc.o fc.d : fc.c fc.h main.h old_macros.h _Settings.h printf_P.h timer0.h \ |
uart.h analog.h eeprom.h twimaster.h menu.h rc.h led.h eeprom.c \ |
mymath.h isqrt.h |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/fc.h |
---|
0,0 → 1,212 |
/***************************************************************************************************************************** |
* File: fc.h |
* Purpose: header of fc.c |
*****************************************************************************************************************************/ |
#ifndef _FC_H |
#define _FC_H |
// ---------------------- definitions ---------------------- |
#define STICK_GAIN 4 |
#define FLAG_MOTOR_RUN 1 // diese Flags werden |
#define FLAG_FLY 2 // bei Bedarf |
#define FLAG_CALIBRATE 4 // auf die |
#define FLAG_START 8 // Variable |
#define FLAG_NOTLANDUNG 16 // "MikroKopterFlags" |
#define FLAG_LOWBAT 32 // abgebildet |
#define MAX_MOTORS 2 // gesetzt für Waage (max 12 möglich) |
#define CHECK_MIN_MAX(wert,min,max) {if(wert < min) wert = min; else if(wert > max) wert = max;} |
extern long GIER_GRAD_FAKTOR; // Abhängigkeit zwischen GyroIntegral und Winkel |
extern volatile unsigned char MikroKopterFlags; |
extern volatile unsigned int I2CTimeout; |
extern unsigned char Sekunde,Minute; |
extern unsigned int BaroExpandActive; |
extern long IntegralNick,IntegralNick2; |
extern long IntegralRoll,IntegralRoll2; |
extern long Mess_IntegralNick,Mess_IntegralNick2; |
extern long Mess_IntegralRoll,Mess_IntegralRoll2; |
extern long IntegralAccNick,IntegralAccRoll; |
extern volatile long Mess_Integral_Hoch; |
extern long Integral_Gier,Mess_Integral_Gier,Mess_Integral_Gier2; |
extern int KompassValue; |
extern int KompassStartwert; |
extern int KompassRichtung; |
extern int TrimNick, TrimRoll; |
extern long ErsatzKompass; |
extern int ErsatzKompassInGrad; // Kompasswert in Grad |
extern long HoehenWert; |
extern long SollHoehe; |
extern int MesswertNick,MesswertRoll,MesswertGier; |
extern int AdNeutralNick,AdNeutralRoll,AdNeutralGier, Mittelwert_AccNick, Mittelwert_AccRoll; |
extern int NeutralAccX, NeutralAccY,Mittelwert_AccHoch; |
extern unsigned char HoehenReglerAktiv; |
extern volatile float NeutralAccZ; |
extern long Umschlag180Nick, Umschlag180Roll; |
extern signed int ExternStickNick,ExternStickRoll,ExternStickGier; |
extern unsigned char Parameter_UserParam1,Parameter_UserParam2,Parameter_UserParam3,Parameter_UserParam4,Parameter_UserParam5,Parameter_UserParam6,Parameter_UserParam7,Parameter_UserParam8; |
extern int NaviAccNick,NaviAccRoll,NaviCntAcc; |
extern unsigned int modell_fliegt; |
//------------------------- functions --------------- |
void MotorRegler(void); |
void SendMotorData(void); |
void CalibrierMittelwert(void); |
void Mittelwert(void); |
void SetNeutral(void); |
void Piep(unsigned char Anzahl, unsigned int dauer); |
extern unsigned char h,m,s; |
extern volatile unsigned char Timeout ; |
extern unsigned char CosinusNickWinkel, CosinusRollWinkel; |
extern int DiffNick,DiffRoll; |
extern int Poti1, Poti2, Poti3, Poti4; |
extern volatile unsigned char SenderOkay; |
extern volatile unsigned char SenderRSSI; |
extern unsigned char RequiredMotors; |
extern int StickNick,StickRoll,StickGier; |
extern char MotorenEin; |
extern void DefaultKonstanten1(void); |
extern void DefaultKonstanten2(void); |
extern void DefaultKonstanten3(void); |
extern void DefaultStickMapping(void); |
#define STRUCT_PARAM_LAENGE sizeof(EE_Parameter) |
struct mk_param_struct |
{ |
unsigned char Kanalbelegung[8]; // 01-08 Nick[0]=3, Roll[1]=2,Gas[2]=1, Gier[3]=4, K_POTI1[4], K_POTI2[5], K_POTI3[6], K_POTI4[7] steht auf EEPROM auf Adresse 80-87 |
unsigned char GlobalConfig; // 09 0x80=Rotationrate Limiter, 0x40=ACHSENKOPPLUNG_AKTIV, 0x20=GPS aktiv, 0x10=Orientation fix, 0x08=Kompass_aktiv, 0x04=Heading Hold aktiv, 0x02=?, 0x01=Höhenregler aktiv |
unsigned char Hoehe_MinGas; // 10 Wert : 0-100 |
unsigned char Luftdruck_D; // 11 Wert : 0-250 |
unsigned char MaxHoehe; // 12 Wert : 0-32 |
unsigned char Hoehe_P; // 13 Wert : 0-32 |
unsigned char Hoehe_Verstaerkung; // 14 Wert : 0-50 |
unsigned char Hoehe_ACC_Wirkung; // 15 Wert : 0-250 |
unsigned char Hoehe_HoverBand; // 16 Wert : 0-250 |
unsigned char Hoehe_GPS_Z; // 17 Wert : 0-250 |
unsigned char Hoehe_StickNeutralPoint; // 18 Wert : 0-250 |
unsigned char Stick_P; // 19 Wert : 1-6 |
unsigned char Stick_D; // 20 Wert : 0-64 |
unsigned char Gier_P; // 21 Wert : 1-20 |
unsigned char Gas_Min; // 22 Wert : 0-32 |
unsigned char Gas_Max; // 23 Wert : 33-250 |
unsigned char GyroAccFaktor; // 24 Wert : 1-64 |
unsigned char KompassWirkung; // 25 Wert : 0-32 |
unsigned char Gyro_P; // 26 Wert : 10-250 |
unsigned char Gyro_I; // 27 Wert : 0-250 |
unsigned char Gyro_D; // 28 Wert : 0-250 |
unsigned char Gyro_Gier_P; // 29 Wert : 10-250 |
unsigned char Gyro_Gier_I; // 30 Wert : 0-250 |
unsigned char UnterspannungsWarnung; // 31 Wert : 0-250 |
unsigned char NotGas; // 32 Wert : 0-250 // Gaswert bei Empangsverlust |
unsigned char NotGasZeit; // 33 Wert : 0-250 // Zeit, bis auf NotGas geschaltet wird, wegen Empfänger-Problemen |
unsigned char UfoAusrichtung; // 34 X oder + Formation |
unsigned char I_Faktor; // 35 Wert : 0-250 |
unsigned char UserParam1; // 36 Wert : 0-250 |
unsigned char UserParam2; // 37 Wert : 0-250 |
unsigned char UserParam3; // 38 Wert : 0-250 |
unsigned char UserParam4; // 39 Wert : 0-250 |
unsigned char ServoNickControl; // 40 Wert : 0-250 // Stellung des Servos |
unsigned char ServoNickComp; // 41 Wert : 0-250 // Einfluss Gyro/Servo |
unsigned char ServoNickMin; // 42 Wert : 0-250 // Anschlag |
unsigned char ServoNickMax; // 43 Wert : 0-250 // Anschlag |
//---------------------------------- // --------------------- Seit V0.75 ------------------------------------- |
unsigned char ServoRollControl; // 44 Wert : 0-250 // Stellung des Servos |
unsigned char ServoRollComp; // 45 Wert : 0-250 |
unsigned char ServoRollMin; // 46 Wert : 0-250 |
unsigned char ServoRollMax; // 47 Wert : 0-250 |
unsigned char ServoNickRefresh; // 48 |
unsigned char LoopGasLimit; // 49 Wert: 0-250 max. Gas während Looping |
unsigned char LoopThreshold; // 50 Wert: 0-250 Schwelle für Stickausschlag |
unsigned char LoopHysterese; // 51 Wert: 0-250 Hysterese für Stickausschlag |
unsigned char AchsKopplung1; // 52 Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung) |
unsigned char AchsKopplung2; // 53 Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden |
unsigned char CouplingYawCorrection; // 54 Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden |
unsigned char WinkelUmschlagNick; // 55 Wert: 0-250 180°-Punkt // EE_Parameter.WinkelUmschlagNick = 85; // TurnOverNick |
unsigned char WinkelUmschlagRoll; // 56 Wert: 0-250 180°-Punkt // EE_Parameter.WinkelUmschlagRoll = 85; // TurnOverRoll |
unsigned char GyroAccAbgleich; // 57 1/k (Koppel_ACC_Wirkung) |
unsigned char Driftkomp; // 58 |
unsigned char DynamicStability; // 59 |
unsigned char UserParam5; // 60 Wert : 0-250 |
unsigned char UserParam6; // 61 Wert : 0-250 |
unsigned char UserParam7; // 62 Wert : 0-250 |
unsigned char UserParam8; // 63 Wert : 0-250 |
//----------------------------------- // ---------------------- Output ----------------------------------------- |
unsigned char J16Bitmask; // 64 for the J16 Output |
unsigned char J16Timing; // 65 for the J16 Output |
unsigned char J17Bitmask; // 66 for the J17 Output |
unsigned char J17Timing; // 67 for the J17 Output |
// ---------------------------------- // ---------------------- seit version V0.75c ---------------------------- |
unsigned char WARN_J16_Bitmask; // 68 for the J16 Output |
unsigned char WARN_J17_Bitmask; // 69 for the J17 Output |
//----------------------------------- // ------------NaviCtrl---------------------------------------------------- |
unsigned char NaviGpsModeControl; // 70 Parameter für das Naviboard |
unsigned char NaviGpsGain; // 71 |
unsigned char NaviGpsP; // 72 |
unsigned char NaviGpsI; // 73 |
unsigned char NaviGpsD; // 74 |
unsigned char NaviGpsPLimit; // 75 |
unsigned char NaviGpsILimit; // 76 |
unsigned char NaviGpsDLimit; // 77 |
unsigned char NaviGpsACC; // 78 |
unsigned char NaviGpsMinSat; // 79 |
unsigned char NaviStickThreshold; // 80 |
unsigned char NaviWindCorrection; // 81 |
unsigned char NaviSpeedCompensation; // 82 |
unsigned char NaviOperatingRadius; // 83 |
unsigned char NaviAngleLimitation; // 84 |
unsigned char NaviPH_LoginTime; // 85 |
//---------------------------------- // ---Ext.Ctrl------------- |
unsigned char ExternalControl; // 86 for serial Control |
unsigned char BitConfig; // 87 (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt |
unsigned char ServoCompInvert; // 88 0x01 = Nick, 0x02 = Roll 0 oder 1 // WICHTIG!!! am Ende lassen |
unsigned char ExtraConfig; // 89 bitcodiert |
char Name[12]; // 90-101 |
}; |
//-------------------------------------------------------------------------------------------------------------------------------------------------- |
extern struct mk_param_struct EE_Parameter; // ist in fc.c Zeile 112 deklariert worden |
//-------------------------------------------------------------------------------------------------------------------------------------------------- |
//---------------------------------------------------------------------------------------------------------------------- |
struct |
{ |
char Revision; // 1 |
char Name[12]; // 2-13 siehe main.c Zeile 229 memcpy(Mixer.Name, "Quadro\0", 11); |
signed char Motor[16][4]; // 14-77 für jeden Motor gibt es einen 4er Datensatz |
} Mixer; |
//---------------------------------------------------------------------------------------------------------------------- |
extern unsigned char Parameter_Luftdruck_D; |
extern unsigned char Parameter_MaxHoehe; |
extern unsigned char Parameter_Hoehe_P; |
extern unsigned char Parameter_Hoehe_ACC_Wirkung; |
extern unsigned char Parameter_KompassWirkung; |
extern unsigned char Parameter_Gyro_P; |
extern unsigned char Parameter_Gyro_I; |
extern unsigned char Parameter_Gier_P; |
extern unsigned char Parameter_ServoNickControl; |
extern unsigned char Parameter_ServoRollControl; |
extern unsigned char Parameter_AchsKopplung1; |
extern unsigned char Parameter_AchsKopplung2; |
extern unsigned char Parameter_J16Bitmask; // for the J16 Output |
extern unsigned char Parameter_J16Timing; // for the J16 Output |
extern unsigned char Parameter_J17Bitmask; // for the J17 Output |
extern unsigned char Parameter_J17Timing; // for the J17 Output |
extern signed char MixerTable[MAX_MOTORS][4]; |
extern unsigned char Motor[MAX_MOTORS]; |
#endif |
// *** EOF: _FC_H ******************************************************************************************************************** |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/fc.lst |
---|
0,0 → 1,11850 |
1 .file "fc.c" |
2 .arch atmega644 |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .global filterDD |
11 .global filterDD |
12 .section .bss |
15 filterDD: |
16 0000 0000 .skip 2,0 |
17 .global filtersum |
18 .global filtersum |
21 filtersum: |
22 0002 0000 .skip 2,0 |
23 .global gyroScaled |
24 .global gyroScaled |
27 gyroScaled: |
28 0004 0000 .skip 2,0 |
29 .global gyroScaledOld |
30 .global gyroScaledOld |
33 gyroScaledOld: |
34 0006 0000 .skip 2,0 |
35 .global mincontrollerDD |
36 .global mincontrollerDD |
39 mincontrollerDD: |
40 0008 0000 .skip 2,0 |
41 .global maxcontrollerDD |
42 .global maxcontrollerDD |
45 maxcontrollerDD: |
46 000a 0000 .skip 2,0 |
47 .global controllerDD |
48 .global controllerDD |
51 controllerDD: |
52 000c 0000 .skip 2,0 |
53 .global mincontrollerD |
54 .global mincontrollerD |
57 mincontrollerD: |
58 000e 0000 .skip 2,0 |
59 .global maxcontrollerD |
60 .global maxcontrollerD |
63 maxcontrollerD: |
64 0010 0000 .skip 2,0 |
65 .global controllerD |
66 .global controllerD |
69 controllerD: |
70 0012 0000 .skip 2,0 |
71 .global mincontrollerP |
72 .global mincontrollerP |
75 mincontrollerP: |
76 0014 0000 .skip 2,0 |
77 .global maxcontrollerP |
78 .global maxcontrollerP |
81 maxcontrollerP: |
82 0016 0000 .skip 2,0 |
83 .global controllerP |
84 .global controllerP |
87 controllerP: |
88 0018 0000 .skip 2,0 |
89 .global kdd |
90 .global kdd |
93 kdd: |
94 001a 0000 .skip 2,0 |
95 .global kd |
96 .global kd |
99 kd: |
100 001c 0000 .skip 2,0 |
101 .global kp |
102 .global kp |
105 kp: |
106 001e 0000 .skip 2,0 |
107 .global ipk |
108 .global ipk |
111 ipk: |
112 0020 0000 0000 .skip 6,0 |
112 0000 |
113 .global ucflg3 |
114 .data |
117 ucflg3: |
118 0000 01 .byte 1 |
119 .global ucflg2 |
122 ucflg2: |
123 0001 01 .byte 1 |
124 .global ucflg1 |
127 ucflg1: |
128 0002 01 .byte 1 |
129 .global LoadHandler |
130 .global LoadHandler |
131 .section .bss |
134 LoadHandler: |
135 0026 00 .skip 1,0 |
136 .global RequiredMotors |
137 .data |
140 RequiredMotors: |
141 0003 04 .byte 4 |
142 .global GIER_GRAD_FAKTOR |
145 GIER_GRAD_FAKTOR: |
146 0004 0B05 0000 .long 1291 |
147 .global MikroKopterFlags |
148 .global MikroKopterFlags |
149 .section .bss |
152 MikroKopterFlags: |
153 0027 00 .skip 1,0 |
154 .global modell_fliegt |
155 .global modell_fliegt |
158 modell_fliegt: |
159 0028 0000 .skip 2,0 |
160 .global MaxStickRoll |
161 .global MaxStickRoll |
164 MaxStickRoll: |
165 002a 0000 .skip 2,0 |
166 .global MaxStickNick |
167 .global MaxStickNick |
170 MaxStickNick: |
171 002c 0000 .skip 2,0 |
172 .global ExternHoehenValue |
173 .data |
176 ExternHoehenValue: |
177 0008 ECFF .word -20 |
178 .global ExternStickGier |
179 .global ExternStickGier |
180 .section .bss |
183 ExternStickGier: |
184 002e 0000 .skip 2,0 |
185 .global ExternStickRoll |
186 .global ExternStickRoll |
189 ExternStickRoll: |
190 0030 0000 .skip 2,0 |
191 .global ExternStickNick |
192 .global ExternStickNick |
195 ExternStickNick: |
196 0032 0000 .skip 2,0 |
197 .global Parameter_DynamicStability |
198 .data |
201 Parameter_DynamicStability: |
202 000a 64 .byte 100 |
203 .global Parameter_CouplingYawCorrection |
206 Parameter_CouplingYawCorrection: |
207 000b 40 .byte 64 |
208 .global Parameter_AchsKopplung2 |
211 Parameter_AchsKopplung2: |
212 000c 41 .byte 65 |
213 .global Parameter_AchsKopplung1 |
216 Parameter_AchsKopplung1: |
217 000d 5A .byte 90 |
218 .global Parameter_LoopGasLimit |
221 Parameter_LoopGasLimit: |
222 000e 46 .byte 70 |
223 .global Parameter_ServoRollControl |
226 Parameter_ServoRollControl: |
227 000f 64 .byte 100 |
228 .global Parameter_ServoNickControl |
231 Parameter_ServoNickControl: |
232 0010 64 .byte 100 |
233 .global Parameter_UserParam8 |
234 .global Parameter_UserParam8 |
235 .section .bss |
238 Parameter_UserParam8: |
239 0034 00 .skip 1,0 |
240 .global Parameter_UserParam7 |
241 .global Parameter_UserParam7 |
244 Parameter_UserParam7: |
245 0035 00 .skip 1,0 |
246 .global Parameter_UserParam6 |
247 .global Parameter_UserParam6 |
250 Parameter_UserParam6: |
251 0036 00 .skip 1,0 |
252 .global Parameter_UserParam5 |
253 .global Parameter_UserParam5 |
256 Parameter_UserParam5: |
257 0037 00 .skip 1,0 |
258 .global Parameter_UserParam4 |
259 .global Parameter_UserParam4 |
262 Parameter_UserParam4: |
263 0038 00 .skip 1,0 |
264 .global Parameter_UserParam3 |
265 .global Parameter_UserParam3 |
268 Parameter_UserParam3: |
269 0039 00 .skip 1,0 |
270 .global Parameter_UserParam2 |
271 .global Parameter_UserParam2 |
274 Parameter_UserParam2: |
275 003a 00 .skip 1,0 |
276 .global Parameter_UserParam1 |
277 .global Parameter_UserParam1 |
280 Parameter_UserParam1: |
281 003b 00 .skip 1,0 |
282 .global Parameter_I_Faktor |
283 .data |
286 Parameter_I_Faktor: |
287 0011 0A .byte 10 |
288 .global Parameter_Gier_P |
291 Parameter_Gier_P: |
292 0012 02 .byte 2 |
293 .global Parameter_Gyro_Gier_I |
296 Parameter_Gyro_Gier_I: |
297 0013 96 .byte -106 |
298 .global Parameter_Gyro_Gier_P |
301 Parameter_Gyro_Gier_P: |
302 0014 96 .byte -106 |
303 .global Parameter_Gyro_I |
306 Parameter_Gyro_I: |
307 0015 96 .byte -106 |
308 .global Parameter_Gyro_P |
311 Parameter_Gyro_P: |
312 0016 96 .byte -106 |
313 .global Parameter_Gyro_D |
316 Parameter_Gyro_D: |
317 0017 08 .byte 8 |
318 .global Parameter_Hoehe_GPS_Z |
321 Parameter_Hoehe_GPS_Z: |
322 0018 40 .byte 64 |
323 .global Parameter_KompassWirkung |
326 Parameter_KompassWirkung: |
327 0019 40 .byte 64 |
328 .global Parameter_Hoehe_ACC_Wirkung |
331 Parameter_Hoehe_ACC_Wirkung: |
332 001a 3A .byte 58 |
333 .global Parameter_Hoehe_P |
336 Parameter_Hoehe_P: |
337 001b 10 .byte 16 |
338 .global Parameter_MaxHoehe |
341 Parameter_MaxHoehe: |
342 001c FB .byte -5 |
343 .global Parameter_Luftdruck_D |
346 Parameter_Luftdruck_D: |
347 001d 30 .byte 48 |
348 .global Looping_Oben |
349 .global Looping_Oben |
350 .section .bss |
353 Looping_Oben: |
354 003c 00 .skip 1,0 |
355 .global Looping_Unten |
356 .global Looping_Unten |
359 Looping_Unten: |
360 003d 00 .skip 1,0 |
361 .global Looping_Rechts |
362 .global Looping_Rechts |
365 Looping_Rechts: |
366 003e 00 .skip 1,0 |
367 .global Looping_Links |
368 .global Looping_Links |
371 Looping_Links: |
372 003f 00 .skip 1,0 |
373 .global Looping_Roll |
374 .global Looping_Roll |
377 Looping_Roll: |
378 0040 00 .skip 1,0 |
379 .global Looping_Nick |
380 .global Looping_Nick |
383 Looping_Nick: |
384 0041 00 .skip 1,0 |
385 .global Ki |
386 .data |
389 Ki: |
390 001e 3801 .word 312 |
391 .global LageKorrekturNick |
392 .global LageKorrekturNick |
393 .section .bss |
396 LageKorrekturNick: |
397 0042 0000 .skip 2,0 |
398 .global LageKorrekturRoll |
399 .global LageKorrekturRoll |
402 LageKorrekturRoll: |
403 0044 0000 .skip 2,0 |
404 .global SollHoehe |
405 .global SollHoehe |
408 SollHoehe: |
409 0046 0000 0000 .skip 4,0 |
410 .global HoehenWert |
411 .global HoehenWert |
414 HoehenWert: |
415 004a 0000 0000 .skip 4,0 |
416 .global StickGas |
417 .global StickGas |
420 StickGas: |
421 004e 0000 .skip 2,0 |
422 .global StickGier |
423 .global StickGier |
426 StickGier: |
427 0050 0000 .skip 2,0 |
428 .global StickRoll |
429 .global StickRoll |
432 StickRoll: |
433 0052 0000 .skip 2,0 |
434 .global StickNick |
435 .global StickNick |
438 StickNick: |
439 0054 0000 .skip 2,0 |
440 .global SenderRSSI |
441 .global SenderRSSI |
444 SenderRSSI: |
445 0056 00 .skip 1,0 |
446 .global SenderOkay |
447 .global SenderOkay |
450 SenderOkay: |
451 0057 00 .skip 1,0 |
452 .global Poti4 |
453 .global Poti4 |
456 Poti4: |
457 0058 0000 .skip 2,0 |
458 .global Poti3 |
459 .global Poti3 |
462 Poti3: |
463 005a 0000 .skip 2,0 |
464 .global Poti2 |
465 .global Poti2 |
468 Poti2: |
469 005c 0000 .skip 2,0 |
470 .global Poti1 |
471 .global Poti1 |
474 Poti1: |
475 005e 0000 .skip 2,0 |
476 .global GierGyroFehler |
477 .global GierGyroFehler |
480 GierGyroFehler: |
481 0060 0000 .skip 2,0 |
482 .global Umschlag180Roll |
483 .data |
486 Umschlag180Roll: |
487 0020 90D0 0300 .long 250000 |
488 .global Umschlag180Nick |
491 Umschlag180Nick: |
492 0024 90D0 0300 .long 250000 |
493 .global TrichterFlug |
494 .global TrichterFlug |
495 .section .bss |
498 TrichterFlug: |
499 0062 00 .skip 1,0 |
500 .global HoehenReglerAktiv |
501 .global HoehenReglerAktiv |
504 HoehenReglerAktiv: |
505 0063 00 .skip 1,0 |
506 .global MotorenEin |
507 .global MotorenEin |
510 MotorenEin: |
511 0064 00 .skip 1,0 |
512 .global KompassSignalSchlecht |
513 .data |
516 KompassSignalSchlecht: |
517 0028 F401 .word 500 |
518 .global KompassRichtung |
519 .global KompassRichtung |
520 .section .bss |
523 KompassRichtung: |
524 0065 0000 .skip 2,0 |
525 .global KompassStartwert |
526 .global KompassStartwert |
529 KompassStartwert: |
530 0067 0000 .skip 2,0 |
531 .global KompassValue |
532 .global KompassValue |
535 KompassValue: |
536 0069 0000 .skip 2,0 |
537 .global Mess_Integral_Hoch |
538 .global Mess_Integral_Hoch |
541 Mess_Integral_Hoch: |
542 006b 0000 0000 .skip 4,0 |
543 .global Mess_Integral_Gier2 |
544 .global Mess_Integral_Gier2 |
547 Mess_Integral_Gier2: |
548 006f 0000 0000 .skip 4,0 |
549 .global Mess_Integral_Gier |
550 .global Mess_Integral_Gier |
553 Mess_Integral_Gier: |
554 0073 0000 0000 .skip 4,0 |
555 .global Mess_IntegralRoll2 |
556 .global Mess_IntegralRoll2 |
559 Mess_IntegralRoll2: |
560 0077 0000 0000 .skip 4,0 |
561 .global Mess_IntegralRoll |
562 .global Mess_IntegralRoll |
565 Mess_IntegralRoll: |
566 007b 0000 0000 .skip 4,0 |
567 .global Mess_IntegralNick2 |
568 .global Mess_IntegralNick2 |
571 Mess_IntegralNick2: |
572 007f 0000 0000 .skip 4,0 |
573 .global Mess_IntegralNick |
574 .global Mess_IntegralNick |
577 Mess_IntegralNick: |
578 0083 0000 0000 .skip 4,0 |
579 .global Integral_Gier |
580 .global Integral_Gier |
583 Integral_Gier: |
584 0087 0000 0000 .skip 4,0 |
585 .global IntegralAccZ |
586 .global IntegralAccZ |
589 IntegralAccZ: |
590 008b 0000 0000 .skip 4,0 |
591 .global IntegralAccRoll |
592 .global IntegralAccRoll |
595 IntegralAccRoll: |
596 008f 0000 0000 .skip 4,0 |
597 .global IntegralAccNick |
598 .global IntegralAccNick |
601 IntegralAccNick: |
602 0093 0000 0000 .skip 4,0 |
603 .global IntegralRoll2 |
604 .global IntegralRoll2 |
607 IntegralRoll2: |
608 0097 0000 0000 .skip 4,0 |
609 .global IntegralRoll |
610 .global IntegralRoll |
613 IntegralRoll: |
614 009b 0000 0000 .skip 4,0 |
615 .global IntegralNick2 |
616 .global IntegralNick2 |
619 IntegralNick2: |
620 009f 0000 0000 .skip 4,0 |
621 .global IntegralNick |
622 .global IntegralNick |
625 IntegralNick: |
626 00a3 0000 0000 .skip 4,0 |
627 .global CosinusRollWinkel |
628 .global CosinusRollWinkel |
631 CosinusRollWinkel: |
632 00a7 00 .skip 1,0 |
633 .global CosinusNickWinkel |
634 .global CosinusNickWinkel |
637 CosinusNickWinkel: |
638 00a8 00 .skip 1,0 |
639 .global NeutralAccZ |
640 .global NeutralAccZ |
643 NeutralAccZ: |
644 00a9 0000 0000 .skip 4,0 |
645 .global NaviCntAcc |
646 .global NaviCntAcc |
649 NaviCntAcc: |
650 00ad 0000 .skip 2,0 |
651 .global NeutralAccY |
652 .global NeutralAccY |
655 NeutralAccY: |
656 00af 0000 .skip 2,0 |
657 .global NeutralAccX |
658 .global NeutralAccX |
661 NeutralAccX: |
662 00b1 0000 .skip 2,0 |
663 .global StartNeutralNick |
664 .global StartNeutralNick |
667 StartNeutralNick: |
668 00b3 0000 .skip 2,0 |
669 .global StartNeutralRoll |
670 .global StartNeutralRoll |
673 StartNeutralRoll: |
674 00b5 0000 .skip 2,0 |
675 .global AdNeutralGier |
676 .global AdNeutralGier |
679 AdNeutralGier: |
680 00b7 0000 .skip 2,0 |
681 .global AdNeutralRoll |
682 .global AdNeutralRoll |
685 AdNeutralRoll: |
686 00b9 0000 .skip 2,0 |
687 .global AdNeutralNick |
688 .global AdNeutralNick |
691 AdNeutralNick: |
692 00bb 0000 .skip 2,0 |
693 .global I2CTimeout |
694 .data |
697 I2CTimeout: |
698 002a 6400 .word 100 |
699 .global BaroExpandActive |
700 .global BaroExpandActive |
701 .section .bss |
704 BaroExpandActive: |
705 00bd 0000 .skip 2,0 |
706 .text |
708 eeprom_read_byte: |
709 /* prologue: frame size=0 */ |
710 /* prologue end (size=0) */ |
711 .L2: |
712 0000 F999 sbic 63-0x20,1 |
713 0002 00C0 rjmp .L2 |
714 0004 92BD out (65)+1-0x20,r25 |
715 0006 81BD out 65-0x20,r24 |
716 /* #APP */ |
717 /* START EEPROM READ CRITICAL SECTION */ |
718 0008 F89A sbi 31, 0 |
719 000a 80B5 in r24, 32 |
720 /* END EEPROM READ CRITICAL SECTION */ |
721 |
722 /* #NOAPP */ |
723 000c 9927 clr r25 |
724 /* epilogue: frame size=0 */ |
725 000e 0895 ret |
726 /* epilogue end (size=1) */ |
727 /* function eeprom_read_byte size 16 (15) */ |
730 eeprom_write_byte: |
731 /* prologue: frame size=0 */ |
732 /* prologue end (size=0) */ |
733 .L7: |
734 0010 F999 sbic 63-0x20,1 |
735 0012 00C0 rjmp .L7 |
736 0014 1FBA out 63-0x20,__zero_reg__ |
737 0016 92BD out (65)+1-0x20,r25 |
738 0018 81BD out 65-0x20,r24 |
739 001a 60BD out 64-0x20,r22 |
740 /* #APP */ |
741 /* START EEPROM WRITE CRITICAL SECTION */ |
742 001c 0FB6 in r0, 63 |
743 001e F894 cli |
744 0020 FA9A sbi 31, 2 |
745 0022 F99A sbi 31, 1 |
746 0024 0FBE out 63, r0 |
747 /* END EEPROM WRITE CRITICAL SECTION */ |
748 /* #NOAPP */ |
749 /* epilogue: frame size=0 */ |
750 0026 0895 ret |
751 /* epilogue end (size=1) */ |
752 /* function eeprom_write_byte size 21 (20) */ |
754 .global DefaultStickMapping |
756 DefaultStickMapping: |
757 /* prologue: frame size=0 */ |
758 /* prologue end (size=0) */ |
759 0028 83E0 ldi r24,lo8(3) |
760 002a 8093 0000 sts EE_Parameter,r24 |
761 002e 82E0 ldi r24,lo8(2) |
762 0030 8093 0000 sts EE_Parameter+1,r24 |
763 0034 81E0 ldi r24,lo8(1) |
764 0036 8093 0000 sts EE_Parameter+2,r24 |
765 003a 84E0 ldi r24,lo8(4) |
766 003c 8093 0000 sts EE_Parameter+3,r24 |
767 0040 85E0 ldi r24,lo8(5) |
768 0042 8093 0000 sts EE_Parameter+4,r24 |
769 0046 86E0 ldi r24,lo8(6) |
770 0048 8093 0000 sts EE_Parameter+5,r24 |
771 004c 87E0 ldi r24,lo8(7) |
772 004e 8093 0000 sts EE_Parameter+6,r24 |
773 0052 88E0 ldi r24,lo8(8) |
774 0054 8093 0000 sts EE_Parameter+7,r24 |
775 /* epilogue: frame size=0 */ |
776 0058 0895 ret |
777 /* epilogue end (size=1) */ |
778 /* function DefaultStickMapping size 25 (24) */ |
780 .data |
781 .LC0: |
782 002c 4265 6769 .string "Beginner" |
782 6E6E 6572 |
782 00 |
783 0035 00 .string "" |
784 .text |
785 .global DefaultKonstanten3 |
787 DefaultKonstanten3: |
788 /* prologue: frame size=0 */ |
789 /* prologue end (size=0) */ |
790 005a 68E0 ldi r22,lo8(8) |
791 005c 6093 0000 sts EE_Parameter+8,r22 |
792 0060 71E0 ldi r23,lo8(1) |
793 0062 7093 0000 sts EE_Parameter+88,r23 |
794 0066 4EE1 ldi r20,lo8(30) |
795 0068 4093 0000 sts EE_Parameter+9,r20 |
796 006c 8BEF ldi r24,lo8(-5) |
797 006e 8093 0000 sts EE_Parameter+11,r24 |
798 0072 8AE0 ldi r24,lo8(10) |
799 0074 8093 0000 sts EE_Parameter+12,r24 |
800 0078 4093 0000 sts EE_Parameter+10,r20 |
801 007c 4093 0000 sts EE_Parameter+14,r20 |
802 0080 85E0 ldi r24,lo8(5) |
803 0082 8093 0000 sts EE_Parameter+15,r24 |
804 0086 80E4 ldi r24,lo8(64) |
805 0088 8093 0000 sts EE_Parameter+16,r24 |
806 008c 1092 0000 sts EE_Parameter+17,__zero_reg__ |
807 0090 8FE0 ldi r24,lo8(15) |
808 0092 8093 0000 sts EE_Parameter+13,r24 |
809 0096 6093 0000 sts EE_Parameter+18,r22 |
810 009a 20E1 ldi r18,lo8(16) |
811 009c 2093 0000 sts EE_Parameter+19,r18 |
812 00a0 56E0 ldi r21,lo8(6) |
813 00a2 5093 0000 sts EE_Parameter+20,r21 |
814 00a6 6093 0000 sts EE_Parameter+21,r22 |
815 00aa 86EE ldi r24,lo8(-26) |
816 00ac 8093 0000 sts EE_Parameter+22,r24 |
817 00b0 4093 0000 sts EE_Parameter+23,r20 |
818 00b4 80E8 ldi r24,lo8(-128) |
819 00b6 8093 0000 sts EE_Parameter+24,r24 |
820 00ba 34E6 ldi r19,lo8(100) |
821 00bc 3093 0000 sts EE_Parameter+25,r19 |
822 00c0 98E7 ldi r25,lo8(120) |
823 00c2 9093 0000 sts EE_Parameter+26,r25 |
824 00c6 83E0 ldi r24,lo8(3) |
825 00c8 8093 0000 sts EE_Parameter+27,r24 |
826 00cc 3093 0000 sts EE_Parameter+28,r19 |
827 00d0 9093 0000 sts EE_Parameter+29,r25 |
828 00d4 81E2 ldi r24,lo8(33) |
829 00d6 8093 0000 sts EE_Parameter+30,r24 |
830 00da 83E2 ldi r24,lo8(35) |
831 00dc 8093 0000 sts EE_Parameter+31,r24 |
832 00e0 84E1 ldi r24,lo8(20) |
833 00e2 8093 0000 sts EE_Parameter+32,r24 |
834 00e6 1092 0000 sts EE_Parameter+33,__zero_reg__ |
835 00ea 2093 0000 sts EE_Parameter+34,r18 |
836 00ee 1092 0000 sts EE_Parameter+35,__zero_reg__ |
837 00f2 1092 0000 sts EE_Parameter+36,__zero_reg__ |
838 00f6 1092 0000 sts EE_Parameter+37,__zero_reg__ |
839 00fa 1092 0000 sts EE_Parameter+38,__zero_reg__ |
840 00fe 1092 0000 sts EE_Parameter+59,__zero_reg__ |
841 0102 1092 0000 sts EE_Parameter+60,__zero_reg__ |
842 0106 1092 0000 sts EE_Parameter+61,__zero_reg__ |
843 010a 1092 0000 sts EE_Parameter+62,__zero_reg__ |
844 010e 3093 0000 sts EE_Parameter+39,r19 |
845 0112 98E2 ldi r25,lo8(40) |
846 0114 9093 0000 sts EE_Parameter+40,r25 |
847 0118 7093 0000 sts EE_Parameter+87,r23 |
848 011c 1092 0000 sts EE_Parameter+41,__zero_reg__ |
849 0120 8AEF ldi r24,lo8(-6) |
850 0122 8093 0000 sts EE_Parameter+42,r24 |
851 0126 5093 0000 sts EE_Parameter+47,r21 |
852 012a 3093 0000 sts EE_Parameter+43,r19 |
853 012e 9093 0000 sts EE_Parameter+44,r25 |
854 0132 1092 0000 sts EE_Parameter+45,__zero_reg__ |
855 0136 8093 0000 sts EE_Parameter+46,r24 |
856 013a 92E3 ldi r25,lo8(50) |
857 013c 9093 0000 sts EE_Parameter+48,r25 |
858 0140 2AE5 ldi r18,lo8(90) |
859 0142 2093 0000 sts EE_Parameter+49,r18 |
860 0146 9093 0000 sts EE_Parameter+50,r25 |
861 014a 1092 0000 sts EE_Parameter+86,__zero_reg__ |
862 014e 2093 0000 sts EE_Parameter+51,r18 |
863 0152 80E5 ldi r24,lo8(80) |
864 0154 8093 0000 sts EE_Parameter+52,r24 |
865 0158 86E4 ldi r24,lo8(70) |
866 015a 8093 0000 sts EE_Parameter+53,r24 |
867 015e 85E5 ldi r24,lo8(85) |
868 0160 8093 0000 sts EE_Parameter+54,r24 |
869 0164 8093 0000 sts EE_Parameter+55,r24 |
870 0168 80E2 ldi r24,lo8(32) |
871 016a 8093 0000 sts EE_Parameter+56,r24 |
872 016e 8093 0000 sts EE_Parameter+57,r24 |
873 0172 9093 0000 sts EE_Parameter+58,r25 |
874 0176 8FE5 ldi r24,lo8(95) |
875 0178 8093 0000 sts EE_Parameter+63,r24 |
876 017c 83EF ldi r24,lo8(-13) |
877 017e 8093 0000 sts EE_Parameter+65,r24 |
878 0182 8AEA ldi r24,lo8(-86) |
879 0184 8093 0000 sts EE_Parameter+67,r24 |
880 0188 8093 0000 sts EE_Parameter+68,r24 |
881 018c 4093 0000 sts EE_Parameter+64,r20 |
882 0190 4093 0000 sts EE_Parameter+66,r20 |
883 0194 8CEF ldi r24,lo8(-4) |
884 0196 8093 0000 sts EE_Parameter+69,r24 |
885 019a 3093 0000 sts EE_Parameter+70,r19 |
886 019e 2093 0000 sts EE_Parameter+71,r18 |
887 01a2 2093 0000 sts EE_Parameter+72,r18 |
888 01a6 2093 0000 sts EE_Parameter+73,r18 |
889 01aa 8BE4 ldi r24,lo8(75) |
890 01ac 8093 0000 sts EE_Parameter+74,r24 |
891 01b0 8093 0000 sts EE_Parameter+75,r24 |
892 01b4 8093 0000 sts EE_Parameter+76,r24 |
893 01b8 1092 0000 sts EE_Parameter+77,__zero_reg__ |
894 01bc 5093 0000 sts EE_Parameter+78,r21 |
895 01c0 6093 0000 sts EE_Parameter+79,r22 |
896 01c4 2093 0000 sts EE_Parameter+80,r18 |
897 01c8 4093 0000 sts EE_Parameter+81,r20 |
898 01cc 3093 0000 sts EE_Parameter+82,r19 |
899 01d0 3093 0000 sts EE_Parameter+83,r19 |
900 01d4 84E0 ldi r24,lo8(4) |
901 01d6 8093 0000 sts EE_Parameter+84,r24 |
902 01da 8CE0 ldi r24,lo8(12) |
903 01dc A0E0 ldi r26,lo8(.LC0) |
904 01de B0E0 ldi r27,hi8(.LC0) |
905 01e0 E0E0 ldi r30,lo8(EE_Parameter+89) |
906 01e2 F0E0 ldi r31,hi8(EE_Parameter+89) |
907 01e4 0D90 ld __tmp_reg__,X+ |
908 01e6 0192 st Z+,__tmp_reg__ |
909 01e8 8A95 dec r24 |
910 01ea 01F4 brne .-8 |
911 /* epilogue: frame size=0 */ |
912 01ec 0895 ret |
913 /* epilogue end (size=1) */ |
914 /* function DefaultKonstanten3 size 202 (201) */ |
916 .data |
917 .LC1: |
918 0036 4E6F 726D .string "Normal" |
918 616C 00 |
919 003d 00 .string "" |
920 .text |
921 .global DefaultKonstanten2 |
923 DefaultKonstanten2: |
924 /* prologue: frame size=0 */ |
925 /* prologue end (size=0) */ |
926 01ee 8AE6 ldi r24,lo8(106) |
927 01f0 8093 0000 sts EE_Parameter+8,r24 |
928 01f4 71E0 ldi r23,lo8(1) |
929 01f6 7093 0000 sts EE_Parameter+88,r23 |
930 01fa 5EE1 ldi r21,lo8(30) |
931 01fc 5093 0000 sts EE_Parameter+9,r21 |
932 0200 8BEF ldi r24,lo8(-5) |
933 0202 8093 0000 sts EE_Parameter+11,r24 |
934 0206 9AE0 ldi r25,lo8(10) |
935 0208 9093 0000 sts EE_Parameter+12,r25 |
936 020c 5093 0000 sts EE_Parameter+10,r21 |
937 0210 5093 0000 sts EE_Parameter+14,r21 |
938 0214 85E0 ldi r24,lo8(5) |
939 0216 8093 0000 sts EE_Parameter+15,r24 |
940 021a 80E4 ldi r24,lo8(64) |
941 021c 8093 0000 sts EE_Parameter+16,r24 |
942 0220 1092 0000 sts EE_Parameter+17,__zero_reg__ |
943 0224 8FE0 ldi r24,lo8(15) |
944 0226 8093 0000 sts EE_Parameter+13,r24 |
945 022a 9093 0000 sts EE_Parameter+18,r25 |
946 022e 80E1 ldi r24,lo8(16) |
947 0230 8093 0000 sts EE_Parameter+19,r24 |
948 0234 66E0 ldi r22,lo8(6) |
949 0236 6093 0000 sts EE_Parameter+20,r22 |
950 023a E8E0 ldi r30,lo8(8) |
951 023c E093 0000 sts EE_Parameter+21,r30 |
952 0240 86EE ldi r24,lo8(-26) |
953 0242 8093 0000 sts EE_Parameter+22,r24 |
954 0246 5093 0000 sts EE_Parameter+23,r21 |
955 024a 80E8 ldi r24,lo8(-128) |
956 024c 8093 0000 sts EE_Parameter+24,r24 |
957 0250 2AE5 ldi r18,lo8(90) |
958 0252 2093 0000 sts EE_Parameter+25,r18 |
959 0256 98E7 ldi r25,lo8(120) |
960 0258 9093 0000 sts EE_Parameter+26,r25 |
961 025c 83E0 ldi r24,lo8(3) |
962 025e 8093 0000 sts EE_Parameter+27,r24 |
963 0262 2093 0000 sts EE_Parameter+28,r18 |
964 0266 9093 0000 sts EE_Parameter+29,r25 |
965 026a 81E2 ldi r24,lo8(33) |
966 026c 8093 0000 sts EE_Parameter+30,r24 |
967 0270 83E2 ldi r24,lo8(35) |
968 0272 8093 0000 sts EE_Parameter+31,r24 |
969 0276 5093 0000 sts EE_Parameter+32,r21 |
970 027a 1092 0000 sts EE_Parameter+33,__zero_reg__ |
971 027e 40E2 ldi r20,lo8(32) |
972 0280 4093 0000 sts EE_Parameter+34,r20 |
973 0284 1092 0000 sts EE_Parameter+35,__zero_reg__ |
974 0288 1092 0000 sts EE_Parameter+36,__zero_reg__ |
975 028c 1092 0000 sts EE_Parameter+37,__zero_reg__ |
976 0290 1092 0000 sts EE_Parameter+38,__zero_reg__ |
977 0294 1092 0000 sts EE_Parameter+59,__zero_reg__ |
978 0298 1092 0000 sts EE_Parameter+60,__zero_reg__ |
979 029c 1092 0000 sts EE_Parameter+61,__zero_reg__ |
980 02a0 1092 0000 sts EE_Parameter+62,__zero_reg__ |
981 02a4 34E6 ldi r19,lo8(100) |
982 02a6 3093 0000 sts EE_Parameter+39,r19 |
983 02aa 98E2 ldi r25,lo8(40) |
984 02ac 9093 0000 sts EE_Parameter+40,r25 |
985 02b0 7093 0000 sts EE_Parameter+87,r23 |
986 02b4 1092 0000 sts EE_Parameter+41,__zero_reg__ |
987 02b8 8AEF ldi r24,lo8(-6) |
988 02ba 8093 0000 sts EE_Parameter+42,r24 |
989 02be 6093 0000 sts EE_Parameter+47,r22 |
990 02c2 3093 0000 sts EE_Parameter+43,r19 |
991 02c6 9093 0000 sts EE_Parameter+44,r25 |
992 02ca 1092 0000 sts EE_Parameter+45,__zero_reg__ |
993 02ce 8093 0000 sts EE_Parameter+46,r24 |
994 02d2 82E3 ldi r24,lo8(50) |
995 02d4 8093 0000 sts EE_Parameter+48,r24 |
996 02d8 2093 0000 sts EE_Parameter+49,r18 |
997 02dc 8093 0000 sts EE_Parameter+50,r24 |
998 02e0 1092 0000 sts EE_Parameter+86,__zero_reg__ |
999 02e4 2093 0000 sts EE_Parameter+51,r18 |
1000 02e8 80E5 ldi r24,lo8(80) |
1001 02ea 8093 0000 sts EE_Parameter+52,r24 |
1002 02ee 8CE3 ldi r24,lo8(60) |
1003 02f0 8093 0000 sts EE_Parameter+53,r24 |
1004 02f4 85E5 ldi r24,lo8(85) |
1005 02f6 8093 0000 sts EE_Parameter+54,r24 |
1006 02fa 8093 0000 sts EE_Parameter+55,r24 |
1007 02fe 4093 0000 sts EE_Parameter+56,r20 |
1008 0302 4093 0000 sts EE_Parameter+57,r20 |
1009 0306 9BE4 ldi r25,lo8(75) |
1010 0308 9093 0000 sts EE_Parameter+58,r25 |
1011 030c 8FE5 ldi r24,lo8(95) |
1012 030e 8093 0000 sts EE_Parameter+63,r24 |
1013 0312 83EF ldi r24,lo8(-13) |
1014 0314 8093 0000 sts EE_Parameter+65,r24 |
1015 0318 8AEA ldi r24,lo8(-86) |
1016 031a 8093 0000 sts EE_Parameter+67,r24 |
1017 031e 8093 0000 sts EE_Parameter+68,r24 |
1018 0322 84E1 ldi r24,lo8(20) |
1019 0324 8093 0000 sts EE_Parameter+64,r24 |
1020 0328 8093 0000 sts EE_Parameter+66,r24 |
1021 032c 8CEF ldi r24,lo8(-4) |
1022 032e 8093 0000 sts EE_Parameter+69,r24 |
1023 0332 3093 0000 sts EE_Parameter+70,r19 |
1024 0336 2093 0000 sts EE_Parameter+71,r18 |
1025 033a 2093 0000 sts EE_Parameter+72,r18 |
1026 033e 2093 0000 sts EE_Parameter+73,r18 |
1027 0342 9093 0000 sts EE_Parameter+74,r25 |
1028 0346 9093 0000 sts EE_Parameter+75,r25 |
1029 034a 9093 0000 sts EE_Parameter+76,r25 |
1030 034e 1092 0000 sts EE_Parameter+77,__zero_reg__ |
1031 0352 6093 0000 sts EE_Parameter+78,r22 |
1032 0356 E093 0000 sts EE_Parameter+79,r30 |
1033 035a 2093 0000 sts EE_Parameter+80,r18 |
1034 035e 5093 0000 sts EE_Parameter+81,r21 |
1035 0362 3093 0000 sts EE_Parameter+82,r19 |
1036 0366 3093 0000 sts EE_Parameter+83,r19 |
1037 036a 84E0 ldi r24,lo8(4) |
1038 036c 8093 0000 sts EE_Parameter+84,r24 |
1039 0370 8CE0 ldi r24,lo8(12) |
1040 0372 A0E0 ldi r26,lo8(.LC1) |
1041 0374 B0E0 ldi r27,hi8(.LC1) |
1042 0376 E0E0 ldi r30,lo8(EE_Parameter+89) |
1043 0378 F0E0 ldi r31,hi8(EE_Parameter+89) |
1044 037a 0D90 ld __tmp_reg__,X+ |
1045 037c 0192 st Z+,__tmp_reg__ |
1046 037e 8A95 dec r24 |
1047 0380 01F4 brne .-8 |
1048 /* epilogue: frame size=0 */ |
1049 0382 0895 ret |
1050 /* epilogue end (size=1) */ |
1051 /* function DefaultKonstanten2 size 203 (202) */ |
1053 .data |
1054 .LC2: |
1055 003e 5370 6F72 .string "Sport" |
1055 7400 |
1056 0044 00 .string "" |
1057 .text |
1058 .global DefaultKonstanten1 |
1060 DefaultKonstanten1: |
1061 /* prologue: frame size=0 */ |
1062 0384 1F93 push r17 |
1063 /* prologue end (size=1) */ |
1064 0386 8AE6 ldi r24,lo8(106) |
1065 0388 8093 0000 sts EE_Parameter+8,r24 |
1066 038c 51E0 ldi r21,lo8(1) |
1067 038e 5093 0000 sts EE_Parameter+88,r21 |
1068 0392 4EE1 ldi r20,lo8(30) |
1069 0394 4093 0000 sts EE_Parameter+9,r20 |
1070 0398 8BEF ldi r24,lo8(-5) |
1071 039a 8093 0000 sts EE_Parameter+11,r24 |
1072 039e 8AE0 ldi r24,lo8(10) |
1073 03a0 8093 0000 sts EE_Parameter+12,r24 |
1074 03a4 4093 0000 sts EE_Parameter+10,r20 |
1075 03a8 4093 0000 sts EE_Parameter+14,r20 |
1076 03ac 85E0 ldi r24,lo8(5) |
1077 03ae 8093 0000 sts EE_Parameter+15,r24 |
1078 03b2 80E4 ldi r24,lo8(64) |
1079 03b4 8093 0000 sts EE_Parameter+16,r24 |
1080 03b8 1092 0000 sts EE_Parameter+17,__zero_reg__ |
1081 03bc 84E1 ldi r24,lo8(20) |
1082 03be 8093 0000 sts EE_Parameter+13,r24 |
1083 03c2 8EE0 ldi r24,lo8(14) |
1084 03c4 8093 0000 sts EE_Parameter+18,r24 |
1085 03c8 E0E1 ldi r30,lo8(16) |
1086 03ca E093 0000 sts EE_Parameter+19,r30 |
1087 03ce 1CE0 ldi r17,lo8(12) |
1088 03d0 1093 0000 sts EE_Parameter+20,r17 |
1089 03d4 F8E0 ldi r31,lo8(8) |
1090 03d6 F093 0000 sts EE_Parameter+21,r31 |
1091 03da 86EE ldi r24,lo8(-26) |
1092 03dc 8093 0000 sts EE_Parameter+22,r24 |
1093 03e0 4093 0000 sts EE_Parameter+23,r20 |
1094 03e4 80E8 ldi r24,lo8(-128) |
1095 03e6 8093 0000 sts EE_Parameter+24,r24 |
1096 03ea 30E5 ldi r19,lo8(80) |
1097 03ec 3093 0000 sts EE_Parameter+25,r19 |
1098 03f0 96E9 ldi r25,lo8(-106) |
1099 03f2 9093 0000 sts EE_Parameter+26,r25 |
1100 03f6 83E0 ldi r24,lo8(3) |
1101 03f8 8093 0000 sts EE_Parameter+27,r24 |
1102 03fc 3093 0000 sts EE_Parameter+28,r19 |
1103 0400 9093 0000 sts EE_Parameter+29,r25 |
1104 0404 81E2 ldi r24,lo8(33) |
1105 0406 8093 0000 sts EE_Parameter+30,r24 |
1106 040a 83E2 ldi r24,lo8(35) |
1107 040c 8093 0000 sts EE_Parameter+31,r24 |
1108 0410 4093 0000 sts EE_Parameter+32,r20 |
1109 0414 1092 0000 sts EE_Parameter+33,__zero_reg__ |
1110 0418 60E2 ldi r22,lo8(32) |
1111 041a 6093 0000 sts EE_Parameter+34,r22 |
1112 041e 1092 0000 sts EE_Parameter+35,__zero_reg__ |
1113 0422 1092 0000 sts EE_Parameter+36,__zero_reg__ |
1114 0426 1092 0000 sts EE_Parameter+37,__zero_reg__ |
1115 042a 1092 0000 sts EE_Parameter+38,__zero_reg__ |
1116 042e 1092 0000 sts EE_Parameter+59,__zero_reg__ |
1117 0432 1092 0000 sts EE_Parameter+60,__zero_reg__ |
1118 0436 1092 0000 sts EE_Parameter+61,__zero_reg__ |
1119 043a 1092 0000 sts EE_Parameter+62,__zero_reg__ |
1120 043e 24E6 ldi r18,lo8(100) |
1121 0440 2093 0000 sts EE_Parameter+39,r18 |
1122 0444 98E2 ldi r25,lo8(40) |
1123 0446 9093 0000 sts EE_Parameter+40,r25 |
1124 044a 5093 0000 sts EE_Parameter+87,r21 |
1125 044e 1092 0000 sts EE_Parameter+41,__zero_reg__ |
1126 0452 8AEF ldi r24,lo8(-6) |
1127 0454 8093 0000 sts EE_Parameter+42,r24 |
1128 0458 76E0 ldi r23,lo8(6) |
1129 045a 7093 0000 sts EE_Parameter+47,r23 |
1130 045e 2093 0000 sts EE_Parameter+43,r18 |
1131 0462 9093 0000 sts EE_Parameter+44,r25 |
1132 0466 1092 0000 sts EE_Parameter+45,__zero_reg__ |
1133 046a 8093 0000 sts EE_Parameter+46,r24 |
1134 046e 82E3 ldi r24,lo8(50) |
1135 0470 8093 0000 sts EE_Parameter+48,r24 |
1136 0474 9AE5 ldi r25,lo8(90) |
1137 0476 9093 0000 sts EE_Parameter+49,r25 |
1138 047a 8093 0000 sts EE_Parameter+50,r24 |
1139 047e 1092 0000 sts EE_Parameter+86,__zero_reg__ |
1140 0482 9093 0000 sts EE_Parameter+51,r25 |
1141 0486 3093 0000 sts EE_Parameter+52,r19 |
1142 048a 5093 0000 sts EE_Parameter+53,r21 |
1143 048e 85E5 ldi r24,lo8(85) |
1144 0490 8093 0000 sts EE_Parameter+54,r24 |
1145 0494 8093 0000 sts EE_Parameter+55,r24 |
1146 0498 E093 0000 sts EE_Parameter+56,r30 |
1147 049c 6093 0000 sts EE_Parameter+57,r22 |
1148 04a0 2093 0000 sts EE_Parameter+58,r18 |
1149 04a4 8FE5 ldi r24,lo8(95) |
1150 04a6 8093 0000 sts EE_Parameter+63,r24 |
1151 04aa 83EF ldi r24,lo8(-13) |
1152 04ac 8093 0000 sts EE_Parameter+65,r24 |
1153 04b0 8AEA ldi r24,lo8(-86) |
1154 04b2 8093 0000 sts EE_Parameter+67,r24 |
1155 04b6 8093 0000 sts EE_Parameter+68,r24 |
1156 04ba 8FE0 ldi r24,lo8(15) |
1157 04bc 8093 0000 sts EE_Parameter+64,r24 |
1158 04c0 8093 0000 sts EE_Parameter+66,r24 |
1159 04c4 8CEF ldi r24,lo8(-4) |
1160 04c6 8093 0000 sts EE_Parameter+69,r24 |
1161 04ca 2093 0000 sts EE_Parameter+70,r18 |
1162 04ce 9093 0000 sts EE_Parameter+71,r25 |
1163 04d2 9093 0000 sts EE_Parameter+72,r25 |
1164 04d6 9093 0000 sts EE_Parameter+73,r25 |
1165 04da 8BE4 ldi r24,lo8(75) |
1166 04dc 8093 0000 sts EE_Parameter+74,r24 |
1167 04e0 8093 0000 sts EE_Parameter+75,r24 |
1168 04e4 8093 0000 sts EE_Parameter+76,r24 |
1169 04e8 1092 0000 sts EE_Parameter+77,__zero_reg__ |
1170 04ec 7093 0000 sts EE_Parameter+78,r23 |
1171 04f0 F093 0000 sts EE_Parameter+79,r31 |
1172 04f4 9093 0000 sts EE_Parameter+80,r25 |
1173 04f8 4093 0000 sts EE_Parameter+81,r20 |
1174 04fc 2093 0000 sts EE_Parameter+82,r18 |
1175 0500 2093 0000 sts EE_Parameter+83,r18 |
1176 0504 84E0 ldi r24,lo8(4) |
1177 0506 8093 0000 sts EE_Parameter+84,r24 |
1178 050a A0E0 ldi r26,lo8(.LC2) |
1179 050c B0E0 ldi r27,hi8(.LC2) |
1180 050e E0E0 ldi r30,lo8(EE_Parameter+89) |
1181 0510 F0E0 ldi r31,hi8(EE_Parameter+89) |
1182 0512 0D90 ld __tmp_reg__,X+ |
1183 0514 0192 st Z+,__tmp_reg__ |
1184 0516 1A95 dec r17 |
1185 0518 01F4 brne .-8 |
1186 /* epilogue: frame size=0 */ |
1187 051a 1F91 pop r17 |
1188 051c 0895 ret |
1189 /* epilogue end (size=2) */ |
1190 /* function DefaultKonstanten1 size 205 (202) */ |
1192 .global ReadParameterSet |
1194 ReadParameterSet: |
1195 /* prologue: frame size=0 */ |
1196 /* prologue end (size=0) */ |
1197 051e 282F mov r18,r24 |
1198 0520 FB01 movw r30,r22 |
1199 0522 8150 subi r24,lo8(-(-1)) |
1200 0524 8530 cpi r24,lo8(5) |
1201 0526 00F0 brlo .L15 |
1202 0528 23E0 ldi r18,lo8(3) |
1203 .L15: |
1204 052a 842F mov r24,r20 |
1205 052c 9927 clr r25 |
1206 052e 3327 clr r19 |
1207 0530 2150 subi r18,lo8(-(-1)) |
1208 0532 3040 sbci r19,hi8(-(-1)) |
1209 0534 829F mul r24,r18 |
1210 0536 B001 movw r22,r0 |
1211 0538 839F mul r24,r19 |
1212 053a 700D add r23,r0 |
1213 053c 929F mul r25,r18 |
1214 053e 700D add r23,r0 |
1215 0540 1124 clr r1 |
1216 0542 6050 subi r22,lo8(-(EEPromArray+100)) |
1217 0544 7040 sbci r23,hi8(-(EEPromArray+100)) |
1218 0546 20E0 ldi r18,lo8(pm(eeprom_read_byte)) |
1219 0548 30E0 ldi r19,hi8(pm(eeprom_read_byte)) |
1220 054a AC01 movw r20,r24 |
1221 054c CF01 movw r24,r30 |
1222 054e 0E94 0000 call __eerd_block |
1223 0552 0E94 0000 call LED_Init |
1224 /* epilogue: frame size=0 */ |
1225 0556 0895 ret |
1226 /* epilogue end (size=1) */ |
1227 /* function ReadParameterSet size 29 (28) */ |
1229 .global SetActiveParamSetNumber |
1231 SetActiveParamSetNumber: |
1232 /* prologue: frame size=0 */ |
1233 /* prologue end (size=0) */ |
1234 0558 282F mov r18,r24 |
1235 055a 8630 cpi r24,lo8(6) |
1236 055c 00F0 brlo .L18 |
1237 055e 25E0 ldi r18,lo8(5) |
1238 .L20: |
1239 0560 F999 sbic 63-0x20,1 |
1240 0562 00C0 rjmp .L20 |
1241 0564 1FBA out 63-0x20,__zero_reg__ |
1242 0566 80E0 ldi r24,lo8(EEPromArray+2) |
1243 0568 90E0 ldi r25,hi8(EEPromArray+2) |
1244 056a 92BD out (65)+1-0x20,r25 |
1245 056c 81BD out 65-0x20,r24 |
1246 056e 20BD out 64-0x20,r18 |
1247 /* #APP */ |
1248 /* START EEPROM WRITE CRITICAL SECTION */ |
1249 0570 0FB6 in r0, 63 |
1250 0572 F894 cli |
1251 0574 FA9A sbi 31, 2 |
1252 0576 F99A sbi 31, 1 |
1253 0578 0FBE out 63, r0 |
1254 /* END EEPROM WRITE CRITICAL SECTION */ |
1255 /* #NOAPP */ |
1256 057a 0895 ret |
1257 .L18: |
1258 057c 8823 tst r24 |
1259 057e 01F4 brne .L20 |
1260 0580 0895 ret |
1261 /* epilogue: frame size=0 */ |
1262 /* epilogue: noreturn */ |
1263 /* epilogue end (size=0) */ |
1264 /* function SetActiveParamSetNumber size 30 (30) */ |
1266 .global WriteParameterSet |
1268 WriteParameterSet: |
1269 /* prologue: frame size=0 */ |
1270 0582 FF92 push r15 |
1271 0584 0F93 push r16 |
1272 0586 1F93 push r17 |
1273 0588 CF93 push r28 |
1274 /* prologue end (size=4) */ |
1275 058a C82F mov r28,r24 |
1276 058c 8B01 movw r16,r22 |
1277 058e F42E mov r15,r20 |
1278 0590 8630 cpi r24,lo8(6) |
1279 0592 00F0 brlo .L27 |
1280 0594 C5E0 ldi r28,lo8(5) |
1281 .L35: |
1282 0596 8F2D mov r24,r15 |
1283 0598 9927 clr r25 |
1284 059a 2C2F mov r18,r28 |
1285 059c 3327 clr r19 |
1286 059e 2150 subi r18,lo8(-(-1)) |
1287 05a0 3040 sbci r19,hi8(-(-1)) |
1288 05a2 829F mul r24,r18 |
1289 05a4 F001 movw r30,r0 |
1290 05a6 839F mul r24,r19 |
1291 05a8 F00D add r31,r0 |
1292 05aa 929F mul r25,r18 |
1293 05ac F00D add r31,r0 |
1294 05ae 1124 clr r1 |
1295 05b0 20E0 ldi r18,lo8(pm(eeprom_write_byte)) |
1296 05b2 30E0 ldi r19,hi8(pm(eeprom_write_byte)) |
1297 05b4 AC01 movw r20,r24 |
1298 05b6 B801 movw r22,r16 |
1299 05b8 CF01 movw r24,r30 |
1300 05ba 8050 subi r24,lo8(-(EEPromArray+100)) |
1301 05bc 9040 sbci r25,hi8(-(EEPromArray+100)) |
1302 05be 0E94 0000 call __eewr_block |
1303 .L30: |
1304 05c2 F999 sbic 63-0x20,1 |
1305 05c4 00C0 rjmp .L30 |
1306 05c6 1FBA out 63-0x20,__zero_reg__ |
1307 05c8 80E0 ldi r24,lo8(EEPromArray+98) |
1308 05ca 90E0 ldi r25,hi8(EEPromArray+98) |
1309 05cc 92BD out (65)+1-0x20,r25 |
1310 05ce 81BD out 65-0x20,r24 |
1311 05d0 F0BC out 64-0x20,r15 |
1312 /* #APP */ |
1313 /* START EEPROM WRITE CRITICAL SECTION */ |
1314 05d2 0FB6 in r0, 63 |
1315 05d4 F894 cli |
1316 05d6 FA9A sbi 31, 2 |
1317 05d8 F99A sbi 31, 1 |
1318 05da 0FBE out 63, r0 |
1319 /* END EEPROM WRITE CRITICAL SECTION */ |
1320 /* #NOAPP */ |
1321 05dc 20E0 ldi r18,lo8(pm(eeprom_write_byte)) |
1322 05de 30E0 ldi r19,hi8(pm(eeprom_write_byte)) |
1323 05e0 48E0 ldi r20,lo8(8) |
1324 05e2 50E0 ldi r21,hi8(8) |
1325 05e4 B801 movw r22,r16 |
1326 05e6 80E0 ldi r24,lo8(EEPromArray+80) |
1327 05e8 90E0 ldi r25,hi8(EEPromArray+80) |
1328 05ea 0E94 0000 call __eewr_block |
1329 05ee 8C2F mov r24,r28 |
1330 05f0 0E94 0000 call SetActiveParamSetNumber |
1331 05f4 0E94 0000 call LED_Init |
1332 05f8 00C0 rjmp .L26 |
1333 .L27: |
1334 05fa 8823 tst r24 |
1335 05fc 01F4 brne .L35 |
1336 .L26: |
1337 /* epilogue: frame size=0 */ |
1338 05fe CF91 pop r28 |
1339 0600 1F91 pop r17 |
1340 0602 0F91 pop r16 |
1341 0604 FF90 pop r15 |
1342 0606 0895 ret |
1343 /* epilogue end (size=5) */ |
1344 /* function WriteParameterSet size 76 (67) */ |
1346 .global GetActiveParamSetNumber |
1348 GetActiveParamSetNumber: |
1349 /* prologue: frame size=0 */ |
1350 0608 CF93 push r28 |
1351 /* prologue end (size=1) */ |
1352 .L37: |
1353 060a F999 sbic 63-0x20,1 |
1354 060c 00C0 rjmp .L37 |
1355 060e 80E0 ldi r24,lo8(EEPromArray+2) |
1356 0610 90E0 ldi r25,hi8(EEPromArray+2) |
1357 0612 92BD out (65)+1-0x20,r25 |
1358 0614 81BD out 65-0x20,r24 |
1359 /* #APP */ |
1360 /* START EEPROM READ CRITICAL SECTION */ |
1361 0616 F89A sbi 31, 0 |
1362 0618 80B5 in r24, 32 |
1363 /* END EEPROM READ CRITICAL SECTION */ |
1364 |
1365 /* #NOAPP */ |
1366 061a C82F mov r28,r24 |
1367 061c 8150 subi r24,lo8(-(-1)) |
1368 061e 8530 cpi r24,lo8(5) |
1369 0620 00F0 brlo .L41 |
1370 0622 C3E0 ldi r28,lo8(3) |
1371 0624 8C2F mov r24,r28 |
1372 0626 0E94 0000 call SetActiveParamSetNumber |
1373 .L41: |
1374 062a 8C2F mov r24,r28 |
1375 062c 9927 clr r25 |
1376 /* epilogue: frame size=0 */ |
1377 062e CF91 pop r28 |
1378 0630 0895 ret |
1379 /* epilogue end (size=2) */ |
1380 /* function GetActiveParamSetNumber size 29 (26) */ |
1382 .global MotorSmoothing |
1384 MotorSmoothing: |
1385 /* prologue: frame size=0 */ |
1386 /* prologue end (size=0) */ |
1387 0632 6817 cp r22,r24 |
1388 0634 7907 cpc r23,r25 |
1389 0636 04F4 brge .L43 |
1390 0638 680F add r22,r24 |
1391 063a 791F adc r23,r25 |
1392 063c 77FD sbrc r23,7 |
1393 063e 00C0 rjmp .L46 |
1394 0640 CB01 movw r24,r22 |
1395 0642 9595 asr r25 |
1396 0644 8795 ror r24 |
1397 0646 0895 ret |
1398 .L43: |
1399 0648 681B sub r22,r24 |
1400 064a 790B sbc r23,r25 |
1401 064c 861B sub r24,r22 |
1402 064e 970B sbc r25,r23 |
1403 0650 0895 ret |
1404 .L46: |
1405 0652 6F5F subi r22,lo8(-(1)) |
1406 0654 7F4F sbci r23,hi8(-(1)) |
1407 0656 CB01 movw r24,r22 |
1408 0658 9595 asr r25 |
1409 065a 8795 ror r24 |
1410 065c 0895 ret |
1411 /* epilogue: frame size=0 */ |
1412 /* epilogue: noreturn */ |
1413 /* epilogue end (size=0) */ |
1414 /* function MotorSmoothing size 22 (22) */ |
1416 .global Piep |
1418 Piep: |
1419 /* prologue: frame size=0 */ |
1420 065e EF92 push r14 |
1421 0660 FF92 push r15 |
1422 0662 0F93 push r16 |
1423 0664 1F93 push r17 |
1424 0666 CF93 push r28 |
1425 /* prologue end (size=5) */ |
1426 0668 C82F mov r28,r24 |
1427 066a 8B01 movw r16,r22 |
1428 066c 8091 0000 lds r24,MotorenEin |
1429 0670 8823 tst r24 |
1430 0672 01F4 brne .L47 |
1431 0674 C150 subi r28,lo8(-(-1)) |
1432 0676 CF3F cpi r28,lo8(-1) |
1433 0678 01F0 breq .L47 |
1434 067a 7B01 movw r14,r22 |
1435 067c E60E add r14,r22 |
1436 067e F71E adc r15,r23 |
1437 .L54: |
1438 0680 1093 0000 sts (beeptime)+1,r17 |
1439 0684 0093 0000 sts beeptime,r16 |
1440 .L51: |
1441 0688 8091 0000 lds r24,beeptime |
1442 068c 9091 0000 lds r25,(beeptime)+1 |
1443 0690 892B or r24,r25 |
1444 0692 01F4 brne .L51 |
1445 0694 C701 movw r24,r14 |
1446 0696 0E94 0000 call Delay_ms |
1447 069a C150 subi r28,1 |
1448 069c 00F4 brcc .L54 |
1449 .L47: |
1450 /* epilogue: frame size=0 */ |
1451 069e CF91 pop r28 |
1452 06a0 1F91 pop r17 |
1453 06a2 0F91 pop r16 |
1454 06a4 FF90 pop r15 |
1455 06a6 EF90 pop r14 |
1456 06a8 0895 ret |
1457 /* epilogue end (size=6) */ |
1458 /* function Piep size 39 (28) */ |
1460 .lcomm tmpl.35,4 |
1461 .lcomm tmpl2.36,4 |
1462 .lcomm tmpl3.37,4 |
1463 .lcomm tmpl4.38,4 |
1464 .lcomm oldNick.39,2 |
1465 .lcomm oldRoll.40,2 |
1466 .lcomm d2Roll.41,2 |
1467 .lcomm d2Nick.42,2 |
1468 .global Mittelwert |
1470 Mittelwert: |
1471 /* prologue: frame size=61 */ |
1472 06aa ADE3 ldi r26,lo8(61) |
1473 06ac B0E0 ldi r27,hi8(61) |
1474 06ae E0E0 ldi r30,pm_lo8(1f) |
1475 06b0 F0E0 ldi r31,pm_hi8(1f) |
1476 06b2 0C94 0000 jmp __prologue_saves__+0 |
1477 1: |
1478 /* prologue end (size=6) */ |
1479 06b6 2091 0000 lds r18,AdWertGier |
1480 06ba 3091 0000 lds r19,(AdWertGier)+1 |
1481 06be 8091 0000 lds r24,AdNeutralGier |
1482 06c2 9091 0000 lds r25,(AdNeutralGier)+1 |
1483 06c6 281B sub r18,r24 |
1484 06c8 390B sbc r19,r25 |
1485 06ca 3A87 std Y+10,r19 |
1486 06cc 2987 std Y+9,r18 |
1487 06ce 3093 0000 sts (MesswertGier)+1,r19 |
1488 06d2 2093 0000 sts MesswertGier,r18 |
1489 06d6 2091 0000 lds r18,AdWertNickFilter |
1490 06da 3091 0000 lds r19,(AdWertNickFilter)+1 |
1491 06de 37FD sbrc r19,7 |
1492 06e0 00C0 rjmp .L186 |
1493 .L57: |
1494 06e2 3595 asr r19 |
1495 06e4 2795 ror r18 |
1496 06e6 3595 asr r19 |
1497 06e8 2795 ror r18 |
1498 06ea 3595 asr r19 |
1499 06ec 2795 ror r18 |
1500 06ee 3AA7 std Y+42,r19 |
1501 06f0 29A7 std Y+41,r18 |
1502 06f2 3C87 std Y+12,r19 |
1503 06f4 2B87 std Y+11,r18 |
1504 06f6 7901 movw r14,r18 |
1505 06f8 2091 0000 lds r18,AdWertRollFilter |
1506 06fc 3091 0000 lds r19,(AdWertRollFilter)+1 |
1507 0700 37FD sbrc r19,7 |
1508 0702 00C0 rjmp .L187 |
1509 .L58: |
1510 0704 3595 asr r19 |
1511 0706 2795 ror r18 |
1512 0708 3595 asr r19 |
1513 070a 2795 ror r18 |
1514 070c 3595 asr r19 |
1515 070e 2795 ror r18 |
1516 0710 3CA7 std Y+44,r19 |
1517 0712 2BA7 std Y+43,r18 |
1518 0714 3E87 std Y+14,r19 |
1519 0716 2D87 std Y+13,r18 |
1520 0718 F092 0000 sts (RohMesswertNick)+1,r15 |
1521 071c E092 0000 sts RohMesswertNick,r14 |
1522 0720 3093 0000 sts (RohMesswertRoll)+1,r19 |
1523 0724 2093 0000 sts RohMesswertRoll,r18 |
1524 0728 8091 0000 lds r24,Mittelwert_AccNick |
1525 072c 9091 0000 lds r25,(Mittelwert_AccNick)+1 |
1526 0730 AA27 clr r26 |
1527 0732 97FD sbrc r25,7 |
1528 0734 A095 com r26 |
1529 0736 BA2F mov r27,r26 |
1530 0738 7C01 movw r14,r24 |
1531 073a 8D01 movw r16,r26 |
1532 073c EE0C lsl r14 |
1533 073e FF1C rol r15 |
1534 0740 001F rol r16 |
1535 0742 111F rol r17 |
1536 0744 E80E add r14,r24 |
1537 0746 F91E adc r15,r25 |
1538 0748 0A1F adc r16,r26 |
1539 074a 1B1F adc r17,r27 |
1540 074c 8091 0000 lds r24,AdWertAccNick |
1541 0750 9091 0000 lds r25,(AdWertAccNick)+1 |
1542 0754 9C01 movw r18,r24 |
1543 0756 4427 clr r20 |
1544 0758 37FD sbrc r19,7 |
1545 075a 4095 com r20 |
1546 075c 542F mov r21,r20 |
1547 075e DA01 movw r26,r20 |
1548 0760 C901 movw r24,r18 |
1549 0762 880F lsl r24 |
1550 0764 991F rol r25 |
1551 0766 AA1F rol r26 |
1552 0768 BB1F rol r27 |
1553 076a 880F lsl r24 |
1554 076c 991F rol r25 |
1555 076e AA1F rol r26 |
1556 0770 BB1F rol r27 |
1557 0772 820F add r24,r18 |
1558 0774 931F adc r25,r19 |
1559 0776 A41F adc r26,r20 |
1560 0778 B51F adc r27,r21 |
1561 077a 820F add r24,r18 |
1562 077c 931F adc r25,r19 |
1563 077e A41F adc r26,r20 |
1564 0780 B51F adc r27,r21 |
1565 0782 E80E add r14,r24 |
1566 0784 F91E adc r15,r25 |
1567 0786 0A1F adc r16,r26 |
1568 0788 1B1F adc r17,r27 |
1569 078a 17FD sbrc r17,7 |
1570 078c 00C0 rjmp .L188 |
1571 .L59: |
1572 078e 1595 asr r17 |
1573 0790 0795 ror r16 |
1574 0792 F794 ror r15 |
1575 0794 E794 ror r14 |
1576 0796 1595 asr r17 |
1577 0798 0795 ror r16 |
1578 079a F794 ror r15 |
1579 079c E794 ror r14 |
1580 079e F092 0000 sts (Mittelwert_AccNick)+1,r15 |
1581 07a2 E092 0000 sts Mittelwert_AccNick,r14 |
1582 07a6 8091 0000 lds r24,Mittelwert_AccRoll |
1583 07aa 9091 0000 lds r25,(Mittelwert_AccRoll)+1 |
1584 07ae AA27 clr r26 |
1585 07b0 97FD sbrc r25,7 |
1586 07b2 A095 com r26 |
1587 07b4 BA2F mov r27,r26 |
1588 07b6 7C01 movw r14,r24 |
1589 07b8 8D01 movw r16,r26 |
1590 07ba EE0C lsl r14 |
1591 07bc FF1C rol r15 |
1592 07be 001F rol r16 |
1593 07c0 111F rol r17 |
1594 07c2 E80E add r14,r24 |
1595 07c4 F91E adc r15,r25 |
1596 07c6 0A1F adc r16,r26 |
1597 07c8 1B1F adc r17,r27 |
1598 07ca 8091 0000 lds r24,AdWertAccRoll |
1599 07ce 9091 0000 lds r25,(AdWertAccRoll)+1 |
1600 07d2 9C01 movw r18,r24 |
1601 07d4 4427 clr r20 |
1602 07d6 37FD sbrc r19,7 |
1603 07d8 4095 com r20 |
1604 07da 542F mov r21,r20 |
1605 07dc DA01 movw r26,r20 |
1606 07de C901 movw r24,r18 |
1607 07e0 880F lsl r24 |
1608 07e2 991F rol r25 |
1609 07e4 AA1F rol r26 |
1610 07e6 BB1F rol r27 |
1611 07e8 880F lsl r24 |
1612 07ea 991F rol r25 |
1613 07ec AA1F rol r26 |
1614 07ee BB1F rol r27 |
1615 07f0 820F add r24,r18 |
1616 07f2 931F adc r25,r19 |
1617 07f4 A41F adc r26,r20 |
1618 07f6 B51F adc r27,r21 |
1619 07f8 820F add r24,r18 |
1620 07fa 931F adc r25,r19 |
1621 07fc A41F adc r26,r20 |
1622 07fe B51F adc r27,r21 |
1623 0800 E80E add r14,r24 |
1624 0802 F91E adc r15,r25 |
1625 0804 0A1F adc r16,r26 |
1626 0806 1B1F adc r17,r27 |
1627 0808 17FD sbrc r17,7 |
1628 080a 00C0 rjmp .L189 |
1629 .L60: |
1630 080c 1595 asr r17 |
1631 080e 0795 ror r16 |
1632 0810 F794 ror r15 |
1633 0812 E794 ror r14 |
1634 0814 1595 asr r17 |
1635 0816 0795 ror r16 |
1636 0818 F794 ror r15 |
1637 081a E794 ror r14 |
1638 081c F092 0000 sts (Mittelwert_AccRoll)+1,r15 |
1639 0820 E092 0000 sts Mittelwert_AccRoll,r14 |
1640 0824 8091 0000 lds r24,Mittelwert_AccHoch |
1641 0828 9091 0000 lds r25,(Mittelwert_AccHoch)+1 |
1642 082c AA27 clr r26 |
1643 082e 97FD sbrc r25,7 |
1644 0830 A095 com r26 |
1645 0832 BA2F mov r27,r26 |
1646 0834 9C01 movw r18,r24 |
1647 0836 AD01 movw r20,r26 |
1648 0838 220F lsl r18 |
1649 083a 331F rol r19 |
1650 083c 441F rol r20 |
1651 083e 551F rol r21 |
1652 0840 280F add r18,r24 |
1653 0842 391F adc r19,r25 |
1654 0844 4A1F adc r20,r26 |
1655 0846 5B1F adc r21,r27 |
1656 0848 8091 0000 lds r24,AdWertAccHoch |
1657 084c 9091 0000 lds r25,(AdWertAccHoch)+1 |
1658 0850 AA27 clr r26 |
1659 0852 97FD sbrc r25,7 |
1660 0854 A095 com r26 |
1661 0856 BA2F mov r27,r26 |
1662 0858 280F add r18,r24 |
1663 085a 391F adc r19,r25 |
1664 085c 4A1F adc r20,r26 |
1665 085e 5B1F adc r21,r27 |
1666 0860 57FD sbrc r21,7 |
1667 0862 00C0 rjmp .L190 |
1668 .L61: |
1669 0864 5595 asr r21 |
1670 0866 4795 ror r20 |
1671 0868 3795 ror r19 |
1672 086a 2795 ror r18 |
1673 086c 5595 asr r21 |
1674 086e 4795 ror r20 |
1675 0870 3795 ror r19 |
1676 0872 2795 ror r18 |
1677 0874 3093 0000 sts (Mittelwert_AccHoch)+1,r19 |
1678 0878 2093 0000 sts Mittelwert_AccHoch,r18 |
1679 087c 2091 0000 lds r18,AdWertAccNick |
1680 0880 3091 0000 lds r19,(AdWertAccNick)+1 |
1681 0884 C901 movw r24,r18 |
1682 0886 880F lsl r24 |
1683 0888 991F rol r25 |
1684 088a 880F lsl r24 |
1685 088c 991F rol r25 |
1686 088e 820F add r24,r18 |
1687 0890 931F adc r25,r19 |
1688 0892 820F add r24,r18 |
1689 0894 931F adc r25,r19 |
1690 0896 AA27 clr r26 |
1691 0898 97FD sbrc r25,7 |
1692 089a A095 com r26 |
1693 089c BA2F mov r27,r26 |
1694 089e 2091 0000 lds r18,IntegralAccNick |
1695 08a2 3091 0000 lds r19,(IntegralAccNick)+1 |
1696 08a6 4091 0000 lds r20,(IntegralAccNick)+2 |
1697 08aa 5091 0000 lds r21,(IntegralAccNick)+3 |
1698 08ae 820F add r24,r18 |
1699 08b0 931F adc r25,r19 |
1700 08b2 A41F adc r26,r20 |
1701 08b4 B51F adc r27,r21 |
1702 08b6 8093 0000 sts IntegralAccNick,r24 |
1703 08ba 9093 0000 sts (IntegralAccNick)+1,r25 |
1704 08be A093 0000 sts (IntegralAccNick)+2,r26 |
1705 08c2 B093 0000 sts (IntegralAccNick)+3,r27 |
1706 08c6 2091 0000 lds r18,AdWertAccRoll |
1707 08ca 3091 0000 lds r19,(AdWertAccRoll)+1 |
1708 08ce C901 movw r24,r18 |
1709 08d0 880F lsl r24 |
1710 08d2 991F rol r25 |
1711 08d4 880F lsl r24 |
1712 08d6 991F rol r25 |
1713 08d8 820F add r24,r18 |
1714 08da 931F adc r25,r19 |
1715 08dc 820F add r24,r18 |
1716 08de 931F adc r25,r19 |
1717 08e0 AA27 clr r26 |
1718 08e2 97FD sbrc r25,7 |
1719 08e4 A095 com r26 |
1720 08e6 BA2F mov r27,r26 |
1721 08e8 2091 0000 lds r18,IntegralAccRoll |
1722 08ec 3091 0000 lds r19,(IntegralAccRoll)+1 |
1723 08f0 4091 0000 lds r20,(IntegralAccRoll)+2 |
1724 08f4 5091 0000 lds r21,(IntegralAccRoll)+3 |
1725 08f8 820F add r24,r18 |
1726 08fa 931F adc r25,r19 |
1727 08fc A41F adc r26,r20 |
1728 08fe B51F adc r27,r21 |
1729 0900 8093 0000 sts IntegralAccRoll,r24 |
1730 0904 9093 0000 sts (IntegralAccRoll)+1,r25 |
1731 0908 A093 0000 sts (IntegralAccRoll)+2,r26 |
1732 090c B093 0000 sts (IntegralAccRoll)+3,r27 |
1733 0910 8091 0000 lds r24,NaviAccNick |
1734 0914 9091 0000 lds r25,(NaviAccNick)+1 |
1735 0918 2091 0000 lds r18,AdWertAccNick |
1736 091c 3091 0000 lds r19,(AdWertAccNick)+1 |
1737 0920 820F add r24,r18 |
1738 0922 931F adc r25,r19 |
1739 0924 9093 0000 sts (NaviAccNick)+1,r25 |
1740 0928 8093 0000 sts NaviAccNick,r24 |
1741 092c 8091 0000 lds r24,NaviAccRoll |
1742 0930 9091 0000 lds r25,(NaviAccRoll)+1 |
1743 0934 2091 0000 lds r18,AdWertAccRoll |
1744 0938 3091 0000 lds r19,(AdWertAccRoll)+1 |
1745 093c 820F add r24,r18 |
1746 093e 931F adc r25,r19 |
1747 0940 9093 0000 sts (NaviAccRoll)+1,r25 |
1748 0944 8093 0000 sts NaviAccRoll,r24 |
1749 0948 8091 0000 lds r24,NaviCntAcc |
1750 094c 9091 0000 lds r25,(NaviCntAcc)+1 |
1751 0950 0196 adiw r24,1 |
1752 0952 9093 0000 sts (NaviCntAcc)+1,r25 |
1753 0956 8093 0000 sts NaviCntAcc,r24 |
1754 095a 8091 0000 lds r24,IntegralAccZ |
1755 095e 9091 0000 lds r25,(IntegralAccZ)+1 |
1756 0962 A091 0000 lds r26,(IntegralAccZ)+2 |
1757 0966 B091 0000 lds r27,(IntegralAccZ)+3 |
1758 096a BC01 movw r22,r24 |
1759 096c CD01 movw r24,r26 |
1760 096e 0E94 0000 call __floatsisf |
1761 0972 5B01 movw r10,r22 |
1762 0974 6C01 movw r12,r24 |
1763 0976 8091 0000 lds r24,Aktuell_az |
1764 097a 9091 0000 lds r25,(Aktuell_az)+1 |
1765 097e AA27 clr r26 |
1766 0980 97FD sbrc r25,7 |
1767 0982 A095 com r26 |
1768 0984 BA2F mov r27,r26 |
1769 0986 BC01 movw r22,r24 |
1770 0988 CD01 movw r24,r26 |
1771 098a 0E94 0000 call __floatsisf |
1772 098e 7B01 movw r14,r22 |
1773 0990 8C01 movw r16,r24 |
1774 0992 8091 0000 lds r24,NeutralAccZ |
1775 0996 9091 0000 lds r25,(NeutralAccZ)+1 |
1776 099a A091 0000 lds r26,(NeutralAccZ)+2 |
1777 099e B091 0000 lds r27,(NeutralAccZ)+3 |
1778 09a2 9C01 movw r18,r24 |
1779 09a4 AD01 movw r20,r26 |
1780 09a6 C801 movw r24,r16 |
1781 09a8 B701 movw r22,r14 |
1782 09aa 0E94 0000 call __subsf3 |
1783 09ae DC01 movw r26,r24 |
1784 09b0 CB01 movw r24,r22 |
1785 09b2 9C01 movw r18,r24 |
1786 09b4 AD01 movw r20,r26 |
1787 09b6 C601 movw r24,r12 |
1788 09b8 B501 movw r22,r10 |
1789 09ba 0E94 0000 call __addsf3 |
1790 09be DC01 movw r26,r24 |
1791 09c0 CB01 movw r24,r22 |
1792 09c2 BC01 movw r22,r24 |
1793 09c4 CD01 movw r24,r26 |
1794 09c6 0E94 0000 call __fixsfsi |
1795 09ca DC01 movw r26,r24 |
1796 09cc CB01 movw r24,r22 |
1797 09ce 8093 0000 sts IntegralAccZ,r24 |
1798 09d2 9093 0000 sts (IntegralAccZ)+1,r25 |
1799 09d6 A093 0000 sts (IntegralAccZ)+2,r26 |
1800 09da B093 0000 sts (IntegralAccZ)+3,r27 |
1801 09de 8FEC ldi r24,lo8(-49) |
1802 09e0 8093 7A00 sts 122,r24 |
1803 09e4 1092 0000 sts AdReady,__zero_reg__ |
1804 09e8 2090 0000 lds r2,Mess_IntegralRoll |
1805 09ec 3090 0000 lds r3,(Mess_IntegralRoll)+1 |
1806 09f0 4090 0000 lds r4,(Mess_IntegralRoll)+2 |
1807 09f4 5090 0000 lds r5,(Mess_IntegralRoll)+3 |
1808 09f8 39E4 ldi r19,lo8(93001) |
1809 09fa 2316 cp r2,r19 |
1810 09fc 3BE6 ldi r19,hi8(93001) |
1811 09fe 3306 cpc r3,r19 |
1812 0a00 31E0 ldi r19,hlo8(93001) |
1813 0a02 4306 cpc r4,r19 |
1814 0a04 30E0 ldi r19,hhi8(93001) |
1815 0a06 5306 cpc r5,r19 |
1816 0a08 04F4 brge .+2 |
1817 0a0a 00C0 rjmp .L62 |
1818 0a0c 88E4 ldi r24,lo8(93000) |
1819 0a0e 9BE6 ldi r25,hi8(93000) |
1820 0a10 A1E0 ldi r26,hlo8(93000) |
1821 0a12 B0E0 ldi r27,hhi8(93000) |
1822 0a14 8D83 std Y+5,r24 |
1823 0a16 9E83 std Y+6,r25 |
1824 0a18 AF83 std Y+7,r26 |
1825 0a1a B887 std Y+8,r27 |
1826 .L63: |
1827 0a1c 6090 0000 lds r6,Mess_IntegralNick |
1828 0a20 7090 0000 lds r7,(Mess_IntegralNick)+1 |
1829 0a24 8090 0000 lds r8,(Mess_IntegralNick)+2 |
1830 0a28 9090 0000 lds r9,(Mess_IntegralNick)+3 |
1831 0a2c 39E4 ldi r19,lo8(93001) |
1832 0a2e 6316 cp r6,r19 |
1833 0a30 3BE6 ldi r19,hi8(93001) |
1834 0a32 7306 cpc r7,r19 |
1835 0a34 31E0 ldi r19,hlo8(93001) |
1836 0a36 8306 cpc r8,r19 |
1837 0a38 30E0 ldi r19,hhi8(93001) |
1838 0a3a 9306 cpc r9,r19 |
1839 0a3c 04F4 brge .+2 |
1840 0a3e 00C0 rjmp .L66 |
1841 0a40 88E4 ldi r24,lo8(93000) |
1842 0a42 9BE6 ldi r25,hi8(93000) |
1843 0a44 A1E0 ldi r26,hlo8(93000) |
1844 0a46 B0E0 ldi r27,hhi8(93000) |
1845 0a48 8983 std Y+1,r24 |
1846 0a4a 9A83 std Y+2,r25 |
1847 0a4c AB83 std Y+3,r26 |
1848 0a4e BC83 std Y+4,r27 |
1849 .L67: |
1850 0a50 4985 ldd r20,Y+9 |
1851 0a52 5A85 ldd r21,Y+10 |
1852 0a54 CA01 movw r24,r20 |
1853 0a56 AA27 clr r26 |
1854 0a58 97FD sbrc r25,7 |
1855 0a5a A095 com r26 |
1856 0a5c BA2F mov r27,r26 |
1857 0a5e 2091 0000 lds r18,Mess_Integral_Gier |
1858 0a62 3091 0000 lds r19,(Mess_Integral_Gier)+1 |
1859 0a66 4091 0000 lds r20,(Mess_Integral_Gier)+2 |
1860 0a6a 5091 0000 lds r21,(Mess_Integral_Gier)+3 |
1861 0a6e 280F add r18,r24 |
1862 0a70 391F adc r19,r25 |
1863 0a72 4A1F adc r20,r26 |
1864 0a74 5B1F adc r21,r27 |
1865 0a76 2DA3 std Y+37,r18 |
1866 0a78 3EA3 std Y+38,r19 |
1867 0a7a 4FA3 std Y+39,r20 |
1868 0a7c 58A7 std Y+40,r21 |
1869 0a7e A090 0000 lds r10,ErsatzKompass |
1870 0a82 B090 0000 lds r11,(ErsatzKompass)+1 |
1871 0a86 C090 0000 lds r12,(ErsatzKompass)+2 |
1872 0a8a D090 0000 lds r13,(ErsatzKompass)+3 |
1873 0a8e A80E add r10,r24 |
1874 0a90 B91E adc r11,r25 |
1875 0a92 CA1E adc r12,r26 |
1876 0a94 DB1E adc r13,r27 |
1877 0a96 8601 movw r16,r12 |
1878 0a98 7501 movw r14,r10 |
1879 0a9a 3091 0000 lds r19,Looping_Nick |
1880 0a9e 3BA3 std Y+35,r19 |
1881 0aa0 3323 tst r19 |
1882 0aa2 01F0 breq .+2 |
1883 0aa4 00C0 rjmp .L166 |
1884 0aa6 8091 0000 lds r24,Looping_Roll |
1885 0aaa 8823 tst r24 |
1886 0aac 01F0 breq .+2 |
1887 0aae 00C0 rjmp .L167 |
1888 0ab0 4091 0000 lds r20,EE_Parameter+8 |
1889 0ab4 4CA3 std Y+36,r20 |
1890 0ab6 46FF sbrs r20,6 |
1891 0ab8 00C0 rjmp .L168 |
1892 0aba EBA5 ldd r30,Y+43 |
1893 0abc FCA5 ldd r31,Y+44 |
1894 0abe CF01 movw r24,r30 |
1895 0ac0 AA27 clr r26 |
1896 0ac2 97FD sbrc r25,7 |
1897 0ac4 A095 com r26 |
1898 0ac6 BA2F mov r27,r26 |
1899 0ac8 BC01 movw r22,r24 |
1900 0aca CD01 movw r24,r26 |
1901 0acc 2981 ldd r18,Y+1 |
1902 0ace 3A81 ldd r19,Y+2 |
1903 0ad0 4B81 ldd r20,Y+3 |
1904 0ad2 5C81 ldd r21,Y+4 |
1905 0ad4 0E94 0000 call __mulsi3 |
1906 0ad8 9B01 movw r18,r22 |
1907 0ada AC01 movw r20,r24 |
1908 0adc 97FD sbrc r25,7 |
1909 0ade 00C0 rjmp .L191 |
1910 .L71: |
1911 0ae0 BBE0 ldi r27,11 |
1912 0ae2 5595 1: asr r21 |
1913 0ae4 4795 ror r20 |
1914 0ae6 3795 ror r19 |
1915 0ae8 2795 ror r18 |
1916 0aea BA95 dec r27 |
1917 0aec 01F4 brne 1b |
1918 0aee 8091 0000 lds r24,Parameter_AchsKopplung2 |
1919 0af2 E82E mov r14,r24 |
1920 0af4 FF24 clr r15 |
1921 0af6 0027 clr r16 |
1922 0af8 1127 clr r17 |
1923 0afa C801 movw r24,r16 |
1924 0afc B701 movw r22,r14 |
1925 0afe 0E94 0000 call __mulsi3 |
1926 0b02 97FD sbrc r25,7 |
1927 0b04 00C0 rjmp .L192 |
1928 .L72: |
1929 0b06 ACE0 ldi r26,12 |
1930 0b08 9595 1: asr r25 |
1931 0b0a 8795 ror r24 |
1932 0b0c 7795 ror r23 |
1933 0b0e 6795 ror r22 |
1934 0b10 AA95 dec r26 |
1935 0b12 01F4 brne 1b |
1936 0b14 6F87 std Y+15,r22 |
1937 0b16 788B std Y+16,r23 |
1938 0b18 898B std Y+17,r24 |
1939 0b1a 9A8B std Y+18,r25 |
1940 0b1c 6093 0000 sts tmpl3.37,r22 |
1941 0b20 7093 0000 sts (tmpl3.37)+1,r23 |
1942 0b24 8093 0000 sts (tmpl3.37)+2,r24 |
1943 0b28 9093 0000 sts (tmpl3.37)+3,r25 |
1944 0b2c 29A5 ldd r18,Y+41 |
1945 0b2e 3AA5 ldd r19,Y+42 |
1946 0b30 C901 movw r24,r18 |
1947 0b32 AA27 clr r26 |
1948 0b34 97FD sbrc r25,7 |
1949 0b36 A095 com r26 |
1950 0b38 BA2F mov r27,r26 |
1951 0b3a BC01 movw r22,r24 |
1952 0b3c CD01 movw r24,r26 |
1953 0b3e 2D81 ldd r18,Y+5 |
1954 0b40 3E81 ldd r19,Y+6 |
1955 0b42 4F81 ldd r20,Y+7 |
1956 0b44 5885 ldd r21,Y+8 |
1957 0b46 0E94 0000 call __mulsi3 |
1958 0b4a 9B01 movw r18,r22 |
1959 0b4c AC01 movw r20,r24 |
1960 0b4e 97FD sbrc r25,7 |
1961 0b50 00C0 rjmp .L193 |
1962 .L73: |
1963 0b52 FBE0 ldi r31,11 |
1964 0b54 5595 1: asr r21 |
1965 0b56 4795 ror r20 |
1966 0b58 3795 ror r19 |
1967 0b5a 2795 ror r18 |
1968 0b5c FA95 dec r31 |
1969 0b5e 01F4 brne 1b |
1970 0b60 C801 movw r24,r16 |
1971 0b62 B701 movw r22,r14 |
1972 0b64 0E94 0000 call __mulsi3 |
1973 0b68 97FD sbrc r25,7 |
1974 0b6a 00C0 rjmp .L194 |
1975 .L74: |
1976 0b6c DC01 movw r26,r24 |
1977 0b6e CB01 movw r24,r22 |
1978 0b70 ECE0 ldi r30,12 |
1979 0b72 B595 1: asr r27 |
1980 0b74 A795 ror r26 |
1981 0b76 9795 ror r25 |
1982 0b78 8795 ror r24 |
1983 0b7a EA95 dec r30 |
1984 0b7c 01F4 brne 1b |
1985 0b7e 8093 0000 sts tmpl4.38,r24 |
1986 0b82 9093 0000 sts (tmpl4.38)+1,r25 |
1987 0b86 A093 0000 sts (tmpl4.38)+2,r26 |
1988 0b8a B093 0000 sts (tmpl4.38)+3,r27 |
1989 0b8e 2091 0000 lds r18,tmpl3.37 |
1990 0b92 3091 0000 lds r19,(tmpl3.37)+1 |
1991 0b96 3093 0000 sts (KopplungsteilNickRoll)+1,r19 |
1992 0b9a 2093 0000 sts KopplungsteilNickRoll,r18 |
1993 0b9e 2091 0000 lds r18,tmpl4.38 |
1994 0ba2 3091 0000 lds r19,(tmpl4.38)+1 |
1995 0ba6 3093 0000 sts (KopplungsteilRollNick)+1,r19 |
1996 0baa 2093 0000 sts KopplungsteilRollNick,r18 |
1997 0bae 2F85 ldd r18,Y+15 |
1998 0bb0 3889 ldd r19,Y+16 |
1999 0bb2 4989 ldd r20,Y+17 |
2000 0bb4 5A89 ldd r21,Y+18 |
2001 0bb6 821B sub r24,r18 |
2002 0bb8 930B sbc r25,r19 |
2003 0bba A40B sbc r26,r20 |
2004 0bbc B50B sbc r27,r21 |
2005 0bbe 8AAF std Y+58,r24 |
2006 0bc0 9BAF std Y+59,r25 |
2007 0bc2 ACAF std Y+60,r26 |
2008 0bc4 BDAF std Y+61,r27 |
2009 0bc6 8093 0000 sts tmpl4.38,r24 |
2010 0bca 9093 0000 sts (tmpl4.38)+1,r25 |
2011 0bce A093 0000 sts (tmpl4.38)+2,r26 |
2012 0bd2 B093 0000 sts (tmpl4.38)+3,r27 |
2013 0bd6 A80E add r10,r24 |
2014 0bd8 B91E adc r11,r25 |
2015 0bda CA1E adc r12,r26 |
2016 0bdc DB1E adc r13,r27 |
2017 0bde 8601 movw r16,r12 |
2018 0be0 7501 movw r14,r10 |
2019 0be2 3091 0000 lds r19,Parameter_CouplingYawCorrection |
2020 0be6 3DA7 std Y+45,r19 |
2021 0be8 3323 tst r19 |
2022 0bea 01F0 breq .+2 |
2023 0bec 00C0 rjmp .L169 |
2024 0bee 8EA7 std Y+46,r24 |
2025 0bf0 9FA7 std Y+47,r25 |
2026 0bf2 A8AB std Y+48,r26 |
2027 0bf4 B9AB std Y+49,r27 |
2028 0bf6 B7FD sbrc r27,7 |
2029 0bf8 00C0 rjmp .L195 |
2030 .L76: |
2031 0bfa 2EA5 ldd r18,Y+46 |
2032 0bfc 3FA5 ldd r19,Y+47 |
2033 0bfe 48A9 ldd r20,Y+48 |
2034 0c00 59A9 ldd r21,Y+49 |
2035 0c02 5595 asr r21 |
2036 0c04 4795 ror r20 |
2037 0c06 3795 ror r19 |
2038 0c08 2795 ror r18 |
2039 0c0a 8DA1 ldd r24,Y+37 |
2040 0c0c 9EA1 ldd r25,Y+38 |
2041 0c0e AFA1 ldd r26,Y+39 |
2042 0c10 B8A5 ldd r27,Y+40 |
2043 0c12 821B sub r24,r18 |
2044 0c14 930B sbc r25,r19 |
2045 0c16 A40B sbc r26,r20 |
2046 0c18 B50B sbc r27,r21 |
2047 0c1a 8DA3 std Y+37,r24 |
2048 0c1c 9EA3 std Y+38,r25 |
2049 0c1e AFA3 std Y+39,r26 |
2050 0c20 B8A7 std Y+40,r27 |
2051 0c22 8093 0000 sts Mess_Integral_Gier,r24 |
2052 0c26 9093 0000 sts (Mess_Integral_Gier)+1,r25 |
2053 0c2a A093 0000 sts (Mess_Integral_Gier)+2,r26 |
2054 0c2e B093 0000 sts (Mess_Integral_Gier)+3,r27 |
2055 0c32 00C0 rjmp .L75 |
2056 .L62: |
2057 0c34 98EB ldi r25,lo8(-93000) |
2058 0c36 2916 cp r2,r25 |
2059 0c38 94E9 ldi r25,hi8(-93000) |
2060 0c3a 3906 cpc r3,r25 |
2061 0c3c 9EEF ldi r25,hlo8(-93000) |
2062 0c3e 4906 cpc r4,r25 |
2063 0c40 9FEF ldi r25,hhi8(-93000) |
2064 0c42 5906 cpc r5,r25 |
2065 0c44 04F0 brlt .+2 |
2066 0c46 00C0 rjmp .L64 |
2067 0c48 28EB ldi r18,lo8(-93000) |
2068 0c4a 34E9 ldi r19,hi8(-93000) |
2069 0c4c 4EEF ldi r20,hlo8(-93000) |
2070 0c4e 5FEF ldi r21,hhi8(-93000) |
2071 0c50 2D83 std Y+5,r18 |
2072 0c52 3E83 std Y+6,r19 |
2073 0c54 4F83 std Y+7,r20 |
2074 0c56 5887 std Y+8,r21 |
2075 0c58 00C0 rjmp .L63 |
2076 .L166: |
2077 0c5a 2DA1 ldd r18,Y+37 |
2078 0c5c 3EA1 ldd r19,Y+38 |
2079 0c5e 4FA1 ldd r20,Y+39 |
2080 0c60 58A5 ldd r21,Y+40 |
2081 0c62 2093 0000 sts Mess_Integral_Gier,r18 |
2082 0c66 3093 0000 sts (Mess_Integral_Gier)+1,r19 |
2083 0c6a 4093 0000 sts (Mess_Integral_Gier)+2,r20 |
2084 0c6e 5093 0000 sts (Mess_Integral_Gier)+3,r21 |
2085 0c72 3091 0000 lds r19,EE_Parameter+8 |
2086 0c76 3CA3 std Y+36,r19 |
2087 .L70: |
2088 0c78 1092 0000 sts (KopplungsteilRollNick)+1,__zero_reg__ |
2089 0c7c 1092 0000 sts KopplungsteilRollNick,__zero_reg__ |
2090 0c80 1092 0000 sts (KopplungsteilNickRoll)+1,__zero_reg__ |
2091 0c84 1092 0000 sts KopplungsteilNickRoll,__zero_reg__ |
2092 0c88 1092 0000 sts tmpl2.36,__zero_reg__ |
2093 0c8c 1092 0000 sts (tmpl2.36)+1,__zero_reg__ |
2094 0c90 1092 0000 sts (tmpl2.36)+2,__zero_reg__ |
2095 0c94 1092 0000 sts (tmpl2.36)+3,__zero_reg__ |
2096 0c98 1092 0000 sts tmpl.35,__zero_reg__ |
2097 0c9c 1092 0000 sts (tmpl.35)+1,__zero_reg__ |
2098 0ca0 1092 0000 sts (tmpl.35)+2,__zero_reg__ |
2099 0ca4 1092 0000 sts (tmpl.35)+3,__zero_reg__ |
2100 0ca8 3091 0000 lds r19,Parameter_CouplingYawCorrection |
2101 0cac 3DA7 std Y+45,r19 |
2102 .L87: |
2103 0cae 8091 0000 lds r24,tmpl2.36 |
2104 0cb2 9091 0000 lds r25,(tmpl2.36)+1 |
2105 0cb6 A091 0000 lds r26,(tmpl2.36)+2 |
2106 0cba B091 0000 lds r27,(tmpl2.36)+3 |
2107 0cbe BC01 movw r22,r24 |
2108 0cc0 CD01 movw r24,r26 |
2109 0cc2 24E6 ldi r18,lo8(100) |
2110 0cc4 30E0 ldi r19,hi8(100) |
2111 0cc6 40E0 ldi r20,hlo8(100) |
2112 0cc8 50E0 ldi r21,hhi8(100) |
2113 0cca 0E94 0000 call __divmodsi4 |
2114 0cce DA01 movw r26,r20 |
2115 0cd0 C901 movw r24,r18 |
2116 0cd2 4091 0000 lds r20,tmpl.35 |
2117 0cd6 5091 0000 lds r21,(tmpl.35)+1 |
2118 0cda 481B sub r20,r24 |
2119 0cdc 590B sbc r21,r25 |
2120 0cde 58A3 std Y+32,r21 |
2121 0ce0 4F8F std Y+31,r20 |
2122 0ce2 8091 0000 lds r24,tmpl.35 |
2123 0ce6 9091 0000 lds r25,(tmpl.35)+1 |
2124 0cea A091 0000 lds r26,(tmpl.35)+2 |
2125 0cee B091 0000 lds r27,(tmpl.35)+3 |
2126 0cf2 BC01 movw r22,r24 |
2127 0cf4 CD01 movw r24,r26 |
2128 0cf6 24E6 ldi r18,lo8(100) |
2129 0cf8 30E0 ldi r19,hi8(100) |
2130 0cfa 40E0 ldi r20,hlo8(100) |
2131 0cfc 50E0 ldi r21,hhi8(100) |
2132 0cfe 0E94 0000 call __divmodsi4 |
2133 0d02 DA01 movw r26,r20 |
2134 0d04 C901 movw r24,r18 |
2135 0d06 2091 0000 lds r18,tmpl2.36 |
2136 0d0a 3091 0000 lds r19,(tmpl2.36)+1 |
2137 0d0e 821B sub r24,r18 |
2138 0d10 930B sbc r25,r19 |
2139 0d12 9AA3 std Y+34,r25 |
2140 0d14 89A3 std Y+33,r24 |
2141 0d16 8091 0000 lds r24,GIER_GRAD_FAKTOR |
2142 0d1a 9091 0000 lds r25,(GIER_GRAD_FAKTOR)+1 |
2143 0d1e A091 0000 lds r26,(GIER_GRAD_FAKTOR)+2 |
2144 0d22 B091 0000 lds r27,(GIER_GRAD_FAKTOR)+3 |
2145 0d26 BC01 movw r22,r24 |
2146 0d28 CD01 movw r24,r26 |
2147 0d2a 28E6 ldi r18,lo8(360) |
2148 0d2c 31E0 ldi r19,hi8(360) |
2149 0d2e 40E0 ldi r20,hlo8(360) |
2150 0d30 50E0 ldi r21,hhi8(360) |
2151 0d32 0E94 0000 call __mulsi3 |
2152 0d36 E616 cp r14,r22 |
2153 0d38 F706 cpc r15,r23 |
2154 0d3a 0807 cpc r16,r24 |
2155 0d3c 1907 cpc r17,r25 |
2156 0d3e 04F0 brlt .L88 |
2157 0d40 5701 movw r10,r14 |
2158 0d42 6801 movw r12,r16 |
2159 0d44 A61A sub r10,r22 |
2160 0d46 B70A sbc r11,r23 |
2161 0d48 C80A sbc r12,r24 |
2162 0d4a D90A sbc r13,r25 |
2163 0d4c 8601 movw r16,r12 |
2164 0d4e 7501 movw r14,r10 |
2165 .L88: |
2166 0d50 17FD sbrc r17,7 |
2167 0d52 00C0 rjmp .L196 |
2168 0d54 A092 0000 sts ErsatzKompass,r10 |
2169 0d58 B092 0000 sts (ErsatzKompass)+1,r11 |
2170 0d5c C092 0000 sts (ErsatzKompass)+2,r12 |
2171 0d60 D092 0000 sts (ErsatzKompass)+3,r13 |
2172 .L89: |
2173 0d64 2BA5 ldd r18,Y+43 |
2174 0d66 3CA5 ldd r19,Y+44 |
2175 0d68 8F8D ldd r24,Y+31 |
2176 0d6a 98A1 ldd r25,Y+32 |
2177 0d6c 280F add r18,r24 |
2178 0d6e 391F adc r19,r25 |
2179 0d70 7901 movw r14,r18 |
2180 0d72 0027 clr r16 |
2181 0d74 F7FC sbrc r15,7 |
2182 0d76 0095 com r16 |
2183 0d78 102F mov r17,r16 |
2184 0d7a 8091 0000 lds r24,Mess_IntegralRoll2 |
2185 0d7e 9091 0000 lds r25,(Mess_IntegralRoll2)+1 |
2186 0d82 A091 0000 lds r26,(Mess_IntegralRoll2)+2 |
2187 0d86 B091 0000 lds r27,(Mess_IntegralRoll2)+3 |
2188 0d8a E80E add r14,r24 |
2189 0d8c F91E adc r15,r25 |
2190 0d8e 0A1F adc r16,r26 |
2191 0d90 1B1F adc r17,r27 |
2192 0d92 5701 movw r10,r14 |
2193 0d94 6801 movw r12,r16 |
2194 0d96 8091 0000 lds r24,LageKorrekturRoll |
2195 0d9a 9091 0000 lds r25,(LageKorrekturRoll)+1 |
2196 0d9e 281B sub r18,r24 |
2197 0da0 390B sbc r19,r25 |
2198 0da2 C901 movw r24,r18 |
2199 0da4 AA27 clr r26 |
2200 0da6 97FD sbrc r25,7 |
2201 0da8 A095 com r26 |
2202 0daa BA2F mov r27,r26 |
2203 0dac 280E add r2,r24 |
2204 0dae 391E adc r3,r25 |
2205 0db0 4A1E adc r4,r26 |
2206 0db2 5B1E adc r5,r27 |
2207 0db4 2091 0000 lds r18,Umschlag180Roll |
2208 0db8 3091 0000 lds r19,(Umschlag180Roll)+1 |
2209 0dbc 4091 0000 lds r20,(Umschlag180Roll)+2 |
2210 0dc0 5091 0000 lds r21,(Umschlag180Roll)+3 |
2211 0dc4 2215 cp r18,r2 |
2212 0dc6 3305 cpc r19,r3 |
2213 0dc8 4405 cpc r20,r4 |
2214 0dca 5505 cpc r21,r5 |
2215 0dcc 04F4 brge .L90 |
2216 0dce A8EA ldi r26,lo8(25000) |
2217 0dd0 EA2E mov r14,r26 |
2218 0dd2 A1E6 ldi r26,hi8(25000) |
2219 0dd4 FA2E mov r15,r26 |
2220 0dd6 012D mov r16,__zero_reg__ |
2221 0dd8 112D mov r17,__zero_reg__ |
2222 0dda E21A sub r14,r18 |
2223 0ddc F30A sbc r15,r19 |
2224 0dde 040B sbc r16,r20 |
2225 0de0 150B sbc r17,r21 |
2226 0de2 1701 movw r2,r14 |
2227 0de4 2801 movw r4,r16 |
2228 0de6 5701 movw r10,r14 |
2229 0de8 6801 movw r12,r16 |
2230 .L90: |
2231 0dea 8827 clr r24 |
2232 0dec 9927 clr r25 |
2233 0dee DC01 movw r26,r24 |
2234 0df0 821B sub r24,r18 |
2235 0df2 930B sbc r25,r19 |
2236 0df4 A40B sbc r26,r20 |
2237 0df6 B50B sbc r27,r21 |
2238 0df8 2816 cp r2,r24 |
2239 0dfa 3906 cpc r3,r25 |
2240 0dfc 4A06 cpc r4,r26 |
2241 0dfe 5B06 cpc r5,r27 |
2242 0e00 04F0 brlt .+2 |
2243 0e02 00C0 rjmp .L171 |
2244 0e04 F8E5 ldi r31,lo8(-25000) |
2245 0e06 2F2E mov r2,r31 |
2246 0e08 FEE9 ldi r31,hi8(-25000) |
2247 0e0a 3F2E mov r3,r31 |
2248 0e0c FFEF ldi r31,hlo8(-25000) |
2249 0e0e 4F2E mov r4,r31 |
2250 0e10 FFEF ldi r31,hhi8(-25000) |
2251 0e12 5F2E mov r5,r31 |
2252 0e14 220E add r2,r18 |
2253 0e16 331E adc r3,r19 |
2254 0e18 441E adc r4,r20 |
2255 0e1a 551E adc r5,r21 |
2256 0e1c 2092 0000 sts Mess_IntegralRoll,r2 |
2257 0e20 3092 0000 sts (Mess_IntegralRoll)+1,r3 |
2258 0e24 4092 0000 sts (Mess_IntegralRoll)+2,r4 |
2259 0e28 5092 0000 sts (Mess_IntegralRoll)+3,r5 |
2260 0e2c 8201 movw r16,r4 |
2261 0e2e 7101 movw r14,r2 |
2262 0e30 2092 0000 sts Mess_IntegralRoll2,r2 |
2263 0e34 3092 0000 sts (Mess_IntegralRoll2)+1,r3 |
2264 0e38 4092 0000 sts (Mess_IntegralRoll2)+2,r4 |
2265 0e3c 5092 0000 sts (Mess_IntegralRoll2)+3,r5 |
2266 .L91: |
2267 0e40 29A5 ldd r18,Y+41 |
2268 0e42 3AA5 ldd r19,Y+42 |
2269 0e44 A9A1 ldd r26,Y+33 |
2270 0e46 BAA1 ldd r27,Y+34 |
2271 0e48 2A0F add r18,r26 |
2272 0e4a 3B1F adc r19,r27 |
2273 0e4c A901 movw r20,r18 |
2274 0e4e 6627 clr r22 |
2275 0e50 57FD sbrc r21,7 |
2276 0e52 6095 com r22 |
2277 0e54 762F mov r23,r22 |
2278 0e56 8091 0000 lds r24,Mess_IntegralNick2 |
2279 0e5a 9091 0000 lds r25,(Mess_IntegralNick2)+1 |
2280 0e5e A091 0000 lds r26,(Mess_IntegralNick2)+2 |
2281 0e62 B091 0000 lds r27,(Mess_IntegralNick2)+3 |
2282 0e66 480F add r20,r24 |
2283 0e68 591F adc r21,r25 |
2284 0e6a 6A1F adc r22,r26 |
2285 0e6c 7B1F adc r23,r27 |
2286 0e6e 5A01 movw r10,r20 |
2287 0e70 6B01 movw r12,r22 |
2288 0e72 8091 0000 lds r24,LageKorrekturNick |
2289 0e76 9091 0000 lds r25,(LageKorrekturNick)+1 |
2290 0e7a 281B sub r18,r24 |
2291 0e7c 390B sbc r19,r25 |
2292 0e7e C901 movw r24,r18 |
2293 0e80 AA27 clr r26 |
2294 0e82 97FD sbrc r25,7 |
2295 0e84 A095 com r26 |
2296 0e86 BA2F mov r27,r26 |
2297 0e88 680E add r6,r24 |
2298 0e8a 791E adc r7,r25 |
2299 0e8c 8A1E adc r8,r26 |
2300 0e8e 9B1E adc r9,r27 |
2301 0e90 8091 0000 lds r24,Umschlag180Nick |
2302 0e94 9091 0000 lds r25,(Umschlag180Nick)+1 |
2303 0e98 A091 0000 lds r26,(Umschlag180Nick)+2 |
2304 0e9c B091 0000 lds r27,(Umschlag180Nick)+3 |
2305 0ea0 8EAB std Y+54,r24 |
2306 0ea2 9FAB std Y+55,r25 |
2307 0ea4 A8AF std Y+56,r26 |
2308 0ea6 B9AF std Y+57,r27 |
2309 0ea8 8615 cp r24,r6 |
2310 0eaa 9705 cpc r25,r7 |
2311 0eac A805 cpc r26,r8 |
2312 0eae B905 cpc r27,r9 |
2313 0eb0 04F4 brge .L92 |
2314 0eb2 48EA ldi r20,lo8(25000) |
2315 0eb4 51E6 ldi r21,hi8(25000) |
2316 0eb6 60E0 ldi r22,hlo8(25000) |
2317 0eb8 70E0 ldi r23,hhi8(25000) |
2318 0eba 481B sub r20,r24 |
2319 0ebc 590B sbc r21,r25 |
2320 0ebe 6A0B sbc r22,r26 |
2321 0ec0 7B0B sbc r23,r27 |
2322 0ec2 3A01 movw r6,r20 |
2323 0ec4 4B01 movw r8,r22 |
2324 0ec6 5A01 movw r10,r20 |
2325 0ec8 6B01 movw r12,r22 |
2326 .L92: |
2327 0eca 8EA9 ldd r24,Y+54 |
2328 0ecc 9FA9 ldd r25,Y+55 |
2329 0ece A8AD ldd r26,Y+56 |
2330 0ed0 B9AD ldd r27,Y+57 |
2331 0ed2 B095 com r27 |
2332 0ed4 A095 com r26 |
2333 0ed6 9095 com r25 |
2334 0ed8 8195 neg r24 |
2335 0eda 9F4F sbci r25,lo8(-1) |
2336 0edc AF4F sbci r26,lo8(-1) |
2337 0ede BF4F sbci r27,lo8(-1) |
2338 0ee0 6816 cp r6,r24 |
2339 0ee2 7906 cpc r7,r25 |
2340 0ee4 8A06 cpc r8,r26 |
2341 0ee6 9B06 cpc r9,r27 |
2342 0ee8 04F0 brlt .+2 |
2343 0eea 00C0 rjmp .L172 |
2344 0eec E8E5 ldi r30,lo8(-25000) |
2345 0eee 6E2E mov r6,r30 |
2346 0ef0 EEE9 ldi r30,hi8(-25000) |
2347 0ef2 7E2E mov r7,r30 |
2348 0ef4 EFEF ldi r30,hlo8(-25000) |
2349 0ef6 8E2E mov r8,r30 |
2350 0ef8 EFEF ldi r30,hhi8(-25000) |
2351 0efa 9E2E mov r9,r30 |
2352 0efc 2EA9 ldd r18,Y+54 |
2353 0efe 3FA9 ldd r19,Y+55 |
2354 0f00 48AD ldd r20,Y+56 |
2355 0f02 59AD ldd r21,Y+57 |
2356 0f04 620E add r6,r18 |
2357 0f06 731E adc r7,r19 |
2358 0f08 841E adc r8,r20 |
2359 0f0a 951E adc r9,r21 |
2360 0f0c 6092 0000 sts Mess_IntegralNick,r6 |
2361 0f10 7092 0000 sts (Mess_IntegralNick)+1,r7 |
2362 0f14 8092 0000 sts (Mess_IntegralNick)+2,r8 |
2363 0f18 9092 0000 sts (Mess_IntegralNick)+3,r9 |
2364 0f1c B401 movw r22,r8 |
2365 0f1e A301 movw r20,r6 |
2366 0f20 6092 0000 sts Mess_IntegralNick2,r6 |
2367 0f24 7092 0000 sts (Mess_IntegralNick2)+1,r7 |
2368 0f28 8092 0000 sts (Mess_IntegralNick2)+2,r8 |
2369 0f2c 9092 0000 sts (Mess_IntegralNick2)+3,r9 |
2370 .L93: |
2371 0f30 8DA1 ldd r24,Y+37 |
2372 0f32 9EA1 ldd r25,Y+38 |
2373 0f34 AFA1 ldd r26,Y+39 |
2374 0f36 B8A5 ldd r27,Y+40 |
2375 0f38 8093 0000 sts Integral_Gier,r24 |
2376 0f3c 9093 0000 sts (Integral_Gier)+1,r25 |
2377 0f40 A093 0000 sts (Integral_Gier)+2,r26 |
2378 0f44 B093 0000 sts (Integral_Gier)+3,r27 |
2379 0f48 6092 0000 sts IntegralNick,r6 |
2380 0f4c 7092 0000 sts (IntegralNick)+1,r7 |
2381 0f50 8092 0000 sts (IntegralNick)+2,r8 |
2382 0f54 9092 0000 sts (IntegralNick)+3,r9 |
2383 0f58 2092 0000 sts IntegralRoll,r2 |
2384 0f5c 3092 0000 sts (IntegralRoll)+1,r3 |
2385 0f60 4092 0000 sts (IntegralRoll)+2,r4 |
2386 0f64 5092 0000 sts (IntegralRoll)+3,r5 |
2387 0f68 4093 0000 sts IntegralNick2,r20 |
2388 0f6c 5093 0000 sts (IntegralNick2)+1,r21 |
2389 0f70 6093 0000 sts (IntegralNick2)+2,r22 |
2390 0f74 7093 0000 sts (IntegralNick2)+3,r23 |
2391 0f78 E092 0000 sts IntegralRoll2,r14 |
2392 0f7c F092 0000 sts (IntegralRoll2)+1,r15 |
2393 0f80 0093 0000 sts (IntegralRoll2)+2,r16 |
2394 0f84 1093 0000 sts (IntegralRoll2)+3,r17 |
2395 0f88 8091 0000 lds r24,HiResNick |
2396 0f8c 9091 0000 lds r25,(HiResNick)+1 |
2397 0f90 97FD sbrc r25,7 |
2398 0f92 00C0 rjmp .L197 |
2399 .L94: |
2400 0f94 7C01 movw r14,r24 |
2401 0f96 F594 asr r15 |
2402 0f98 E794 ror r14 |
2403 0f9a F594 asr r15 |
2404 0f9c E794 ror r14 |
2405 0f9e F594 asr r15 |
2406 0fa0 E794 ror r14 |
2407 0fa2 FAA6 std Y+42,r15 |
2408 0fa4 E9A6 std Y+41,r14 |
2409 0fa6 8091 0000 lds r24,HiResRoll |
2410 0faa 9091 0000 lds r25,(HiResRoll)+1 |
2411 0fae 97FD sbrc r25,7 |
2412 0fb0 00C0 rjmp .L198 |
2413 .L95: |
2414 0fb2 8C01 movw r16,r24 |
2415 0fb4 1595 asr r17 |
2416 0fb6 0795 ror r16 |
2417 0fb8 1595 asr r17 |
2418 0fba 0795 ror r16 |
2419 0fbc 1595 asr r17 |
2420 0fbe 0795 ror r16 |
2421 0fc0 1CA7 std Y+44,r17 |
2422 0fc2 0BA7 std Y+43,r16 |
2423 0fc4 8091 0000 lds r24,AdWertNick |
2424 0fc8 9091 0000 lds r25,(AdWertNick)+1 |
2425 0fcc 0F97 sbiw r24,15 |
2426 0fce 04F4 brge .L96 |
2427 0fd0 58E1 ldi r21,lo8(-1000) |
2428 0fd2 E52E mov r14,r21 |
2429 0fd4 5CEF ldi r21,hi8(-1000) |
2430 0fd6 F52E mov r15,r21 |
2431 0fd8 FAA6 std Y+42,r15 |
2432 0fda E9A6 std Y+41,r14 |
2433 .L96: |
2434 0fdc 8091 0000 lds r24,AdWertNick |
2435 0fe0 9091 0000 lds r25,(AdWertNick)+1 |
2436 0fe4 0797 sbiw r24,7 |
2437 0fe6 04F4 brge .L97 |
2438 0fe8 40E3 ldi r20,lo8(-2000) |
2439 0fea E42E mov r14,r20 |
2440 0fec 48EF ldi r20,hi8(-2000) |
2441 0fee F42E mov r15,r20 |
2442 0ff0 FAA6 std Y+42,r15 |
2443 0ff2 E9A6 std Y+41,r14 |
2444 .L97: |
2445 0ff4 2091 0000 lds r18,PlatinenVersion |
2446 0ff8 2A30 cpi r18,lo8(10) |
2447 0ffa 01F4 brne .+2 |
2448 0ffc 00C0 rjmp .L199 |
2449 0ffe 8091 0000 lds r24,AdWertNick |
2450 1002 9091 0000 lds r25,(AdWertNick)+1 |
2451 1006 815D subi r24,lo8(2001) |
2452 1008 9740 sbci r25,hi8(2001) |
2453 100a 04F0 brlt .+2 |
2454 100c 00C0 rjmp .L200 |
2455 .L102: |
2456 100e 8091 0000 lds r24,AdWertNick |
2457 1012 9091 0000 lds r25,(AdWertNick)+1 |
2458 1016 805E subi r24,lo8(2016) |
2459 1018 9740 sbci r25,hi8(2016) |
2460 101a 04F0 brlt .L101 |
2461 .L180: |
2462 101c 80ED ldi r24,lo8(2000) |
2463 101e E82E mov r14,r24 |
2464 1020 87E0 ldi r24,hi8(2000) |
2465 1022 F82E mov r15,r24 |
2466 1024 FAA6 std Y+42,r15 |
2467 1026 E9A6 std Y+41,r14 |
2468 .L101: |
2469 1028 8091 0000 lds r24,AdWertRoll |
2470 102c 9091 0000 lds r25,(AdWertRoll)+1 |
2471 1030 0F97 sbiw r24,15 |
2472 1032 04F4 brge .L104 |
2473 1034 08E1 ldi r16,lo8(-1000) |
2474 1036 1CEF ldi r17,hi8(-1000) |
2475 1038 1CA7 std Y+44,r17 |
2476 103a 0BA7 std Y+43,r16 |
2477 .L104: |
2478 103c 8091 0000 lds r24,AdWertRoll |
2479 1040 9091 0000 lds r25,(AdWertRoll)+1 |
2480 1044 0797 sbiw r24,7 |
2481 1046 04F4 brge .L105 |
2482 1048 00E3 ldi r16,lo8(-2000) |
2483 104a 18EF ldi r17,hi8(-2000) |
2484 104c 1CA7 std Y+44,r17 |
2485 104e 0BA7 std Y+43,r16 |
2486 .L105: |
2487 1050 2A30 cpi r18,lo8(10) |
2488 1052 01F4 brne .+2 |
2489 1054 00C0 rjmp .L201 |
2490 1056 8091 0000 lds r24,AdWertRoll |
2491 105a 9091 0000 lds r25,(AdWertRoll)+1 |
2492 105e 815D subi r24,lo8(2001) |
2493 1060 9740 sbci r25,hi8(2001) |
2494 1062 04F0 brlt .L110 |
2495 1064 08EE ldi r16,lo8(1000) |
2496 1066 13E0 ldi r17,hi8(1000) |
2497 1068 1CA7 std Y+44,r17 |
2498 106a 0BA7 std Y+43,r16 |
2499 .L110: |
2500 106c 8091 0000 lds r24,AdWertRoll |
2501 1070 9091 0000 lds r25,(AdWertRoll)+1 |
2502 1074 805E subi r24,lo8(2016) |
2503 1076 9740 sbci r25,hi8(2016) |
2504 1078 04F0 brlt .L109 |
2505 .L181: |
2506 107a 00ED ldi r16,lo8(2000) |
2507 107c 17E0 ldi r17,hi8(2000) |
2508 107e 1CA7 std Y+44,r17 |
2509 1080 0BA7 std Y+43,r16 |
2510 .L109: |
2511 1082 A091 0000 lds r26,Parameter_Gyro_D |
2512 1086 AA23 tst r26 |
2513 1088 01F4 brne .+2 |
2514 108a 00C0 rjmp .L112 |
2515 108c 6091 0000 lds r22,HiResNick |
2516 1090 7091 0000 lds r23,(HiResNick)+1 |
2517 1094 8091 0000 lds r24,oldNick.39 |
2518 1098 9091 0000 lds r25,(oldNick.39)+1 |
2519 109c 681B sub r22,r24 |
2520 109e 790B sbc r23,r25 |
2521 10a0 2091 0000 lds r18,HiResNick |
2522 10a4 3091 0000 lds r19,(HiResNick)+1 |
2523 10a8 280F add r18,r24 |
2524 10aa 391F adc r19,r25 |
2525 10ac 37FD sbrc r19,7 |
2526 10ae 00C0 rjmp .L202 |
2527 .L113: |
2528 10b0 3595 asr r19 |
2529 10b2 2795 ror r18 |
2530 10b4 3093 0000 sts (oldNick.39)+1,r19 |
2531 10b8 2093 0000 sts oldNick.39,r18 |
2532 10bc 6138 cpi r22,129 |
2533 10be 7105 cpc r23,__zero_reg__ |
2534 10c0 04F4 brge .+2 |
2535 10c2 00C0 rjmp .L114 |
2536 10c4 60E8 ldi r22,lo8(128) |
2537 10c6 70E0 ldi r23,hi8(128) |
2538 .L173: |
2539 10c8 7093 0000 sts (d2Nick.42)+1,r23 |
2540 10cc 6093 0000 sts d2Nick.42,r22 |
2541 10d0 8A2F mov r24,r26 |
2542 10d2 9927 clr r25 |
2543 10d4 869F mul r24,r22 |
2544 10d6 F001 movw r30,r0 |
2545 10d8 879F mul r24,r23 |
2546 10da F00D add r31,r0 |
2547 10dc 969F mul r25,r22 |
2548 10de F00D add r31,r0 |
2549 10e0 1124 clr r1 |
2550 10e2 CF01 movw r24,r30 |
2551 10e4 F7FD sbrc r31,7 |
2552 10e6 00C0 rjmp .L203 |
2553 .L117: |
2554 10e8 7C01 movw r14,r24 |
2555 10ea F594 asr r15 |
2556 10ec E794 ror r14 |
2557 10ee F594 asr r15 |
2558 10f0 E794 ror r14 |
2559 10f2 F594 asr r15 |
2560 10f4 E794 ror r14 |
2561 10f6 F594 asr r15 |
2562 10f8 E794 ror r14 |
2563 10fa 29A5 ldd r18,Y+41 |
2564 10fc 3AA5 ldd r19,Y+42 |
2565 10fe E20E add r14,r18 |
2566 1100 F31E adc r15,r19 |
2567 1102 FAA6 std Y+42,r15 |
2568 1104 E9A6 std Y+41,r14 |
2569 1106 4091 0000 lds r20,HiResRoll |
2570 110a 5091 0000 lds r21,(HiResRoll)+1 |
2571 110e 8091 0000 lds r24,oldRoll.40 |
2572 1112 9091 0000 lds r25,(oldRoll.40)+1 |
2573 1116 481B sub r20,r24 |
2574 1118 590B sbc r21,r25 |
2575 111a 2091 0000 lds r18,HiResRoll |
2576 111e 3091 0000 lds r19,(HiResRoll)+1 |
2577 1122 280F add r18,r24 |
2578 1124 391F adc r19,r25 |
2579 1126 37FD sbrc r19,7 |
2580 1128 00C0 rjmp .L204 |
2581 .L118: |
2582 112a 3595 asr r19 |
2583 112c 2795 ror r18 |
2584 112e 3093 0000 sts (oldRoll.40)+1,r19 |
2585 1132 2093 0000 sts oldRoll.40,r18 |
2586 1136 4138 cpi r20,129 |
2587 1138 5105 cpc r21,__zero_reg__ |
2588 113a 04F4 brge .+2 |
2589 113c 00C0 rjmp .L119 |
2590 113e 40E8 ldi r20,lo8(128) |
2591 1140 50E0 ldi r21,hi8(128) |
2592 .L174: |
2593 1142 5093 0000 sts (d2Roll.41)+1,r21 |
2594 1146 4093 0000 sts d2Roll.41,r20 |
2595 114a 8A2F mov r24,r26 |
2596 114c 9927 clr r25 |
2597 114e 849F mul r24,r20 |
2598 1150 D001 movw r26,r0 |
2599 1152 859F mul r24,r21 |
2600 1154 B00D add r27,r0 |
2601 1156 949F mul r25,r20 |
2602 1158 B00D add r27,r0 |
2603 115a 1124 clr r1 |
2604 115c AD01 movw r20,r26 |
2605 115e 9D01 movw r18,r26 |
2606 1160 B7FD sbrc r27,7 |
2607 1162 00C0 rjmp .L205 |
2608 .L122: |
2609 1164 8901 movw r16,r18 |
2610 1166 1595 asr r17 |
2611 1168 0795 ror r16 |
2612 116a 1595 asr r17 |
2613 116c 0795 ror r16 |
2614 116e 1595 asr r17 |
2615 1170 0795 ror r16 |
2616 1172 1595 asr r17 |
2617 1174 0795 ror r16 |
2618 1176 EBA5 ldd r30,Y+43 |
2619 1178 FCA5 ldd r31,Y+44 |
2620 117a 0E0F add r16,r30 |
2621 117c 1F1F adc r17,r31 |
2622 117e 1CA7 std Y+44,r17 |
2623 1180 0BA7 std Y+43,r16 |
2624 1182 869F mul r24,r22 |
2625 1184 9001 movw r18,r0 |
2626 1186 879F mul r24,r23 |
2627 1188 300D add r19,r0 |
2628 118a 969F mul r25,r22 |
2629 118c 300D add r19,r0 |
2630 118e 1124 clr r1 |
2631 1190 C901 movw r24,r18 |
2632 1192 2091 0000 lds r18,HiResNick |
2633 1196 3091 0000 lds r19,(HiResNick)+1 |
2634 119a 820F add r24,r18 |
2635 119c 931F adc r25,r19 |
2636 119e 9093 0000 sts (HiResNick)+1,r25 |
2637 11a2 8093 0000 sts HiResNick,r24 |
2638 11a6 8091 0000 lds r24,HiResRoll |
2639 11aa 9091 0000 lds r25,(HiResRoll)+1 |
2640 11ae 480F add r20,r24 |
2641 11b0 591F adc r21,r25 |
2642 11b2 5093 0000 sts (HiResRoll)+1,r21 |
2643 11b6 4093 0000 sts HiResRoll,r20 |
2644 .L112: |
2645 11ba 4D85 ldd r20,Y+13 |
2646 11bc 5E85 ldd r21,Y+14 |
2647 11be 1416 cp __zero_reg__,r20 |
2648 11c0 1506 cpc __zero_reg__,r21 |
2649 11c2 04F0 brlt .+2 |
2650 11c4 00C0 rjmp .L123 |
2651 11c6 8091 0000 lds r24,KopplungsteilNickRoll |
2652 11ca 9091 0000 lds r25,(KopplungsteilNickRoll)+1 |
2653 11ce 97FD sbrc r25,7 |
2654 11d0 00C0 rjmp .L206 |
2655 .L124: |
2656 11d2 AA27 clr r26 |
2657 11d4 97FD sbrc r25,7 |
2658 11d6 A095 com r26 |
2659 11d8 BA2F mov r27,r26 |
2660 11da 6DA5 ldd r22,Y+45 |
2661 11dc 262F mov r18,r22 |
2662 11de 3327 clr r19 |
2663 11e0 4427 clr r20 |
2664 11e2 5527 clr r21 |
2665 11e4 BC01 movw r22,r24 |
2666 11e6 CD01 movw r24,r26 |
2667 11e8 0E94 0000 call __mulsi3 |
2668 11ec 97FD sbrc r25,7 |
2669 11ee 00C0 rjmp .L207 |
2670 .L125: |
2671 11f0 E6E0 ldi r30,6 |
2672 11f2 9595 1: asr r25 |
2673 11f4 8795 ror r24 |
2674 11f6 7795 ror r23 |
2675 11f8 6795 ror r22 |
2676 11fa EA95 dec r30 |
2677 11fc 01F4 brne 1b |
2678 11fe AF8D ldd r26,Y+31 |
2679 1200 B8A1 ldd r27,Y+32 |
2680 1202 A60F add r26,r22 |
2681 1204 B71F adc r27,r23 |
2682 1206 B093 0000 sts (TrimRoll)+1,r27 |
2683 120a A093 0000 sts TrimRoll,r26 |
2684 120e 4B85 ldd r20,Y+11 |
2685 1210 5C85 ldd r21,Y+12 |
2686 1212 1416 cp __zero_reg__,r20 |
2687 1214 1506 cpc __zero_reg__,r21 |
2688 1216 04F0 brlt .+2 |
2689 1218 00C0 rjmp .L129 |
2690 .L217: |
2691 121a 8091 0000 lds r24,KopplungsteilRollNick |
2692 121e 9091 0000 lds r25,(KopplungsteilRollNick)+1 |
2693 1222 97FD sbrc r25,7 |
2694 1224 00C0 rjmp .L208 |
2695 .L130: |
2696 1226 AA27 clr r26 |
2697 1228 97FD sbrc r25,7 |
2698 122a A095 com r26 |
2699 122c BA2F mov r27,r26 |
2700 122e 6DA5 ldd r22,Y+45 |
2701 1230 262F mov r18,r22 |
2702 1232 3327 clr r19 |
2703 1234 4427 clr r20 |
2704 1236 5527 clr r21 |
2705 1238 BC01 movw r22,r24 |
2706 123a CD01 movw r24,r26 |
2707 123c 0E94 0000 call __mulsi3 |
2708 1240 97FD sbrc r25,7 |
2709 1242 00C0 rjmp .L209 |
2710 .L131: |
2711 1244 46E0 ldi r20,6 |
2712 1246 9595 1: asr r25 |
2713 1248 8795 ror r24 |
2714 124a 7795 ror r23 |
2715 124c 6795 ror r22 |
2716 124e 4A95 dec r20 |
2717 1250 01F4 brne 1b |
2718 1252 A9A1 ldd r26,Y+33 |
2719 1254 BAA1 ldd r27,Y+34 |
2720 1256 A60F add r26,r22 |
2721 1258 B71F adc r27,r23 |
2722 125a B093 0000 sts (TrimNick)+1,r27 |
2723 125e A093 0000 sts TrimNick,r26 |
2724 1262 3CA1 ldd r19,Y+36 |
2725 1264 37FD sbrc r19,7 |
2726 1266 00C0 rjmp .L210 |
2727 .L177: |
2728 1268 1093 0000 sts (MesswertRoll)+1,r17 |
2729 126c 0093 0000 sts MesswertRoll,r16 |
2730 1270 F092 0000 sts (MesswertNick)+1,r15 |
2731 1274 E092 0000 sts MesswertNick,r14 |
2732 .L135: |
2733 1278 8091 0000 lds r24,EE_Parameter+4 |
2734 127c E82F mov r30,r24 |
2735 127e FF27 clr r31 |
2736 1280 EE0F add r30,r30 |
2737 1282 FF1F adc r31,r31 |
2738 1284 E050 subi r30,lo8(-(PPM_in)) |
2739 1286 F040 sbci r31,hi8(-(PPM_in)) |
2740 1288 8081 ld r24,Z |
2741 128a 9181 ldd r25,Z+1 |
2742 128c 8259 subi r24,lo8(-(110)) |
2743 128e 9F4F sbci r25,hi8(-(110)) |
2744 1290 A091 0000 lds r26,Poti1 |
2745 1294 B091 0000 lds r27,(Poti1)+1 |
2746 1298 A817 cp r26,r24 |
2747 129a B907 cpc r27,r25 |
2748 129c 04F0 brlt .+2 |
2749 129e 00C0 rjmp .L142 |
2750 12a0 CD01 movw r24,r26 |
2751 12a2 0196 adiw r24,1 |
2752 .L182: |
2753 12a4 9093 0000 sts (Poti1)+1,r25 |
2754 12a8 8093 0000 sts Poti1,r24 |
2755 12ac DC01 movw r26,r24 |
2756 .L143: |
2757 12ae 8091 0000 lds r24,EE_Parameter+5 |
2758 12b2 E82F mov r30,r24 |
2759 12b4 FF27 clr r31 |
2760 12b6 EE0F add r30,r30 |
2761 12b8 FF1F adc r31,r31 |
2762 12ba E050 subi r30,lo8(-(PPM_in)) |
2763 12bc F040 sbci r31,hi8(-(PPM_in)) |
2764 12be 8081 ld r24,Z |
2765 12c0 9181 ldd r25,Z+1 |
2766 12c2 8259 subi r24,lo8(-(110)) |
2767 12c4 9F4F sbci r25,hi8(-(110)) |
2768 12c6 6091 0000 lds r22,Poti2 |
2769 12ca 7091 0000 lds r23,(Poti2)+1 |
2770 12ce 6817 cp r22,r24 |
2771 12d0 7907 cpc r23,r25 |
2772 12d2 04F0 brlt .+2 |
2773 12d4 00C0 rjmp .L145 |
2774 12d6 CB01 movw r24,r22 |
2775 12d8 0196 adiw r24,1 |
2776 .L183: |
2777 12da 9093 0000 sts (Poti2)+1,r25 |
2778 12de 8093 0000 sts Poti2,r24 |
2779 12e2 BC01 movw r22,r24 |
2780 .L146: |
2781 12e4 8091 0000 lds r24,EE_Parameter+6 |
2782 12e8 E82F mov r30,r24 |
2783 12ea FF27 clr r31 |
2784 12ec EE0F add r30,r30 |
2785 12ee FF1F adc r31,r31 |
2786 12f0 E050 subi r30,lo8(-(PPM_in)) |
2787 12f2 F040 sbci r31,hi8(-(PPM_in)) |
2788 12f4 8081 ld r24,Z |
2789 12f6 9181 ldd r25,Z+1 |
2790 12f8 8259 subi r24,lo8(-(110)) |
2791 12fa 9F4F sbci r25,hi8(-(110)) |
2792 12fc 4091 0000 lds r20,Poti3 |
2793 1300 5091 0000 lds r21,(Poti3)+1 |
2794 1304 4817 cp r20,r24 |
2795 1306 5907 cpc r21,r25 |
2796 1308 04F0 brlt .+2 |
2797 130a 00C0 rjmp .L148 |
2798 130c CA01 movw r24,r20 |
2799 130e 0196 adiw r24,1 |
2800 .L184: |
2801 1310 9093 0000 sts (Poti3)+1,r25 |
2802 1314 8093 0000 sts Poti3,r24 |
2803 1318 AC01 movw r20,r24 |
2804 .L149: |
2805 131a 8091 0000 lds r24,EE_Parameter+7 |
2806 131e E82F mov r30,r24 |
2807 1320 FF27 clr r31 |
2808 1322 EE0F add r30,r30 |
2809 1324 FF1F adc r31,r31 |
2810 1326 E050 subi r30,lo8(-(PPM_in)) |
2811 1328 F040 sbci r31,hi8(-(PPM_in)) |
2812 132a 8081 ld r24,Z |
2813 132c 9181 ldd r25,Z+1 |
2814 132e 8259 subi r24,lo8(-(110)) |
2815 1330 9F4F sbci r25,hi8(-(110)) |
2816 1332 2091 0000 lds r18,Poti4 |
2817 1336 3091 0000 lds r19,(Poti4)+1 |
2818 133a 2817 cp r18,r24 |
2819 133c 3907 cpc r19,r25 |
2820 133e 04F0 brlt .+2 |
2821 1340 00C0 rjmp .L151 |
2822 1342 C901 movw r24,r18 |
2823 1344 0196 adiw r24,1 |
2824 .L185: |
2825 1346 9093 0000 sts (Poti4)+1,r25 |
2826 134a 8093 0000 sts Poti4,r24 |
2827 134e 9C01 movw r18,r24 |
2828 .L152: |
2829 1350 B7FD sbrc r27,7 |
2830 1352 00C0 rjmp .L211 |
2831 1354 AF3F cpi r26,255 |
2832 1356 B105 cpc r27,__zero_reg__ |
2833 1358 01F0 breq .L155 |
2834 135a 04F0 brlt .L155 |
2835 135c 8FEF ldi r24,lo8(255) |
2836 135e 90E0 ldi r25,hi8(255) |
2837 1360 9093 0000 sts (Poti1)+1,r25 |
2838 1364 8093 0000 sts Poti1,r24 |
2839 .L155: |
2840 1368 77FD sbrc r23,7 |
2841 136a 00C0 rjmp .L212 |
2842 136c 6F3F cpi r22,255 |
2843 136e 7105 cpc r23,__zero_reg__ |
2844 1370 01F0 breq .L158 |
2845 1372 04F0 brlt .L158 |
2846 1374 8FEF ldi r24,lo8(255) |
2847 1376 90E0 ldi r25,hi8(255) |
2848 1378 9093 0000 sts (Poti2)+1,r25 |
2849 137c 8093 0000 sts Poti2,r24 |
2850 .L158: |
2851 1380 57FD sbrc r21,7 |
2852 1382 00C0 rjmp .L213 |
2853 .L160: |
2854 1384 4F3F cpi r20,255 |
2855 1386 5105 cpc r21,__zero_reg__ |
2856 1388 01F0 breq .L161 |
2857 138a 04F0 brlt .L161 |
2858 138c 8FEF ldi r24,lo8(255) |
2859 138e 90E0 ldi r25,hi8(255) |
2860 1390 9093 0000 sts (Poti3)+1,r25 |
2861 1394 8093 0000 sts Poti3,r24 |
2862 .L161: |
2863 1398 37FD sbrc r19,7 |
2864 139a 00C0 rjmp .L214 |
2865 .L163: |
2866 139c 2F3F cpi r18,255 |
2867 139e 3105 cpc r19,__zero_reg__ |
2868 13a0 01F0 breq .+2 |
2869 13a2 04F4 brge .+2 |
2870 13a4 00C0 rjmp .L56 |
2871 13a6 8FEF ldi r24,lo8(255) |
2872 13a8 90E0 ldi r25,hi8(255) |
2873 13aa 9093 0000 sts (Poti4)+1,r25 |
2874 13ae 8093 0000 sts Poti4,r24 |
2875 13b2 00C0 rjmp .L56 |
2876 .L172: |
2877 13b4 6092 0000 sts Mess_IntegralNick,r6 |
2878 13b8 7092 0000 sts (Mess_IntegralNick)+1,r7 |
2879 13bc 8092 0000 sts (Mess_IntegralNick)+2,r8 |
2880 13c0 9092 0000 sts (Mess_IntegralNick)+3,r9 |
2881 13c4 A092 0000 sts Mess_IntegralNick2,r10 |
2882 13c8 B092 0000 sts (Mess_IntegralNick2)+1,r11 |
2883 13cc C092 0000 sts (Mess_IntegralNick2)+2,r12 |
2884 13d0 D092 0000 sts (Mess_IntegralNick2)+3,r13 |
2885 13d4 00C0 rjmp .L93 |
2886 .L171: |
2887 13d6 2092 0000 sts Mess_IntegralRoll,r2 |
2888 13da 3092 0000 sts (Mess_IntegralRoll)+1,r3 |
2889 13de 4092 0000 sts (Mess_IntegralRoll)+2,r4 |
2890 13e2 5092 0000 sts (Mess_IntegralRoll)+3,r5 |
2891 13e6 A092 0000 sts Mess_IntegralRoll2,r10 |
2892 13ea B092 0000 sts (Mess_IntegralRoll2)+1,r11 |
2893 13ee C092 0000 sts (Mess_IntegralRoll2)+2,r12 |
2894 13f2 D092 0000 sts (Mess_IntegralRoll2)+3,r13 |
2895 13f6 00C0 rjmp .L91 |
2896 .L66: |
2897 13f8 98EB ldi r25,lo8(-93000) |
2898 13fa 6916 cp r6,r25 |
2899 13fc 94E9 ldi r25,hi8(-93000) |
2900 13fe 7906 cpc r7,r25 |
2901 1400 9EEF ldi r25,hlo8(-93000) |
2902 1402 8906 cpc r8,r25 |
2903 1404 9FEF ldi r25,hhi8(-93000) |
2904 1406 9906 cpc r9,r25 |
2905 1408 04F4 brge .L68 |
2906 140a 28EB ldi r18,lo8(-93000) |
2907 140c 34E9 ldi r19,hi8(-93000) |
2908 140e 4EEF ldi r20,hlo8(-93000) |
2909 1410 5FEF ldi r21,hhi8(-93000) |
2910 1412 2983 std Y+1,r18 |
2911 1414 3A83 std Y+2,r19 |
2912 1416 4B83 std Y+3,r20 |
2913 1418 5C83 std Y+4,r21 |
2914 141a 00C0 rjmp .L67 |
2915 .L200: |
2916 141c 98EE ldi r25,lo8(1000) |
2917 141e E92E mov r14,r25 |
2918 1420 93E0 ldi r25,hi8(1000) |
2919 1422 F92E mov r15,r25 |
2920 1424 FAA6 std Y+42,r15 |
2921 1426 E9A6 std Y+41,r14 |
2922 1428 00C0 rjmp .L102 |
2923 .L64: |
2924 142a 2D82 std Y+5,r2 |
2925 142c 3E82 std Y+6,r3 |
2926 142e 4F82 std Y+7,r4 |
2927 1430 5886 std Y+8,r5 |
2928 1432 00C0 rjmp .L63 |
2929 .L167: |
2930 1434 8DA1 ldd r24,Y+37 |
2931 1436 9EA1 ldd r25,Y+38 |
2932 1438 AFA1 ldd r26,Y+39 |
2933 143a B8A5 ldd r27,Y+40 |
2934 143c 8093 0000 sts Mess_Integral_Gier,r24 |
2935 1440 9093 0000 sts (Mess_Integral_Gier)+1,r25 |
2936 1444 A093 0000 sts (Mess_Integral_Gier)+2,r26 |
2937 1448 B093 0000 sts (Mess_Integral_Gier)+3,r27 |
2938 144c 9091 0000 lds r25,EE_Parameter+8 |
2939 1450 9CA3 std Y+36,r25 |
2940 1452 00C0 rjmp .L70 |
2941 .L68: |
2942 1454 6982 std Y+1,r6 |
2943 1456 7A82 std Y+2,r7 |
2944 1458 8B82 std Y+3,r8 |
2945 145a 9C82 std Y+4,r9 |
2946 145c 00C0 rjmp .L67 |
2947 .L145: |
2948 145e 8081 ld r24,Z |
2949 1460 9181 ldd r25,Z+1 |
2950 1462 8259 subi r24,lo8(-(110)) |
2951 1464 9F4F sbci r25,hi8(-(110)) |
2952 1466 8617 cp r24,r22 |
2953 1468 9707 cpc r25,r23 |
2954 146a 04F0 brlt .+2 |
2955 146c 00C0 rjmp .L146 |
2956 146e 6115 cp r22,__zero_reg__ |
2957 1470 7105 cpc r23,__zero_reg__ |
2958 1472 01F4 brne .+2 |
2959 1474 00C0 rjmp .L146 |
2960 1476 CB01 movw r24,r22 |
2961 1478 0197 sbiw r24,1 |
2962 147a 00C0 rjmp .L183 |
2963 .L142: |
2964 147c 8081 ld r24,Z |
2965 147e 9181 ldd r25,Z+1 |
2966 1480 8259 subi r24,lo8(-(110)) |
2967 1482 9F4F sbci r25,hi8(-(110)) |
2968 1484 8A17 cp r24,r26 |
2969 1486 9B07 cpc r25,r27 |
2970 1488 04F0 brlt .+2 |
2971 148a 00C0 rjmp .L143 |
2972 148c 1097 sbiw r26,0 |
2973 148e 01F4 brne .+2 |
2974 1490 00C0 rjmp .L143 |
2975 1492 CD01 movw r24,r26 |
2976 1494 0197 sbiw r24,1 |
2977 1496 00C0 rjmp .L182 |
2978 .L151: |
2979 1498 8081 ld r24,Z |
2980 149a 9181 ldd r25,Z+1 |
2981 149c 8259 subi r24,lo8(-(110)) |
2982 149e 9F4F sbci r25,hi8(-(110)) |
2983 14a0 8217 cp r24,r18 |
2984 14a2 9307 cpc r25,r19 |
2985 14a4 04F0 brlt .+2 |
2986 14a6 00C0 rjmp .L152 |
2987 14a8 2115 cp r18,__zero_reg__ |
2988 14aa 3105 cpc r19,__zero_reg__ |
2989 14ac 01F4 brne .+2 |
2990 14ae 00C0 rjmp .L152 |
2991 14b0 C901 movw r24,r18 |
2992 14b2 0197 sbiw r24,1 |
2993 14b4 00C0 rjmp .L185 |
2994 .L148: |
2995 14b6 8081 ld r24,Z |
2996 14b8 9181 ldd r25,Z+1 |
2997 14ba 8259 subi r24,lo8(-(110)) |
2998 14bc 9F4F sbci r25,hi8(-(110)) |
2999 14be 8417 cp r24,r20 |
3000 14c0 9507 cpc r25,r21 |
3001 14c2 04F0 brlt .+2 |
3002 14c4 00C0 rjmp .L149 |
3003 14c6 4115 cp r20,__zero_reg__ |
3004 14c8 5105 cpc r21,__zero_reg__ |
3005 14ca 01F4 brne .+2 |
3006 14cc 00C0 rjmp .L149 |
3007 14ce CA01 movw r24,r20 |
3008 14d0 0197 sbiw r24,1 |
3009 14d2 00C0 rjmp .L184 |
3010 .L199: |
3011 14d4 8091 0000 lds r24,AdWertNick |
3012 14d8 9091 0000 lds r25,(AdWertNick)+1 |
3013 14dc 835F subi r24,lo8(1011) |
3014 14de 9340 sbci r25,hi8(1011) |
3015 14e0 04F0 brlt .L99 |
3016 14e2 38EE ldi r19,lo8(1000) |
3017 14e4 E32E mov r14,r19 |
3018 14e6 33E0 ldi r19,hi8(1000) |
3019 14e8 F32E mov r15,r19 |
3020 14ea FAA6 std Y+42,r15 |
3021 14ec E9A6 std Y+41,r14 |
3022 .L99: |
3023 14ee 8091 0000 lds r24,AdWertNick |
3024 14f2 9091 0000 lds r25,(AdWertNick)+1 |
3025 14f6 8A5F subi r24,lo8(1018) |
3026 14f8 9340 sbci r25,hi8(1018) |
3027 14fa 04F4 brge .+2 |
3028 14fc 00C0 rjmp .L101 |
3029 14fe 00C0 rjmp .L180 |
3030 .L201: |
3031 1500 8091 0000 lds r24,AdWertRoll |
3032 1504 9091 0000 lds r25,(AdWertRoll)+1 |
3033 1508 835F subi r24,lo8(1011) |
3034 150a 9340 sbci r25,hi8(1011) |
3035 150c 04F0 brlt .L107 |
3036 150e 08EE ldi r16,lo8(1000) |
3037 1510 13E0 ldi r17,hi8(1000) |
3038 1512 1CA7 std Y+44,r17 |
3039 1514 0BA7 std Y+43,r16 |
3040 .L107: |
3041 1516 8091 0000 lds r24,AdWertRoll |
3042 151a 9091 0000 lds r25,(AdWertRoll)+1 |
3043 151e 8A5F subi r24,lo8(1018) |
3044 1520 9340 sbci r25,hi8(1018) |
3045 1522 04F4 brge .+2 |
3046 1524 00C0 rjmp .L109 |
3047 1526 00C0 rjmp .L181 |
3048 .L119: |
3049 1528 3FEF ldi r19,hi8(-128) |
3050 152a 4038 cpi r20,lo8(-128) |
3051 152c 5307 cpc r21,r19 |
3052 152e 04F0 brlt .+2 |
3053 1530 00C0 rjmp .L174 |
3054 1532 40E8 ldi r20,lo8(-128) |
3055 1534 5FEF ldi r21,hi8(-128) |
3056 1536 00C0 rjmp .L174 |
3057 .L114: |
3058 1538 8FEF ldi r24,hi8(-128) |
3059 153a 6038 cpi r22,lo8(-128) |
3060 153c 7807 cpc r23,r24 |
3061 153e 04F0 brlt .+2 |
3062 1540 00C0 rjmp .L173 |
3063 1542 60E8 ldi r22,lo8(-128) |
3064 1544 7FEF ldi r23,hi8(-128) |
3065 1546 00C0 rjmp .L173 |
3066 .L123: |
3067 1548 8091 0000 lds r24,KopplungsteilNickRoll |
3068 154c 9091 0000 lds r25,(KopplungsteilNickRoll)+1 |
3069 1550 97FD sbrc r25,7 |
3070 1552 00C0 rjmp .L215 |
3071 .L127: |
3072 1554 AA27 clr r26 |
3073 1556 97FD sbrc r25,7 |
3074 1558 A095 com r26 |
3075 155a BA2F mov r27,r26 |
3076 155c EDA5 ldd r30,Y+45 |
3077 155e 2E2F mov r18,r30 |
3078 1560 3327 clr r19 |
3079 1562 4427 clr r20 |
3080 1564 5527 clr r21 |
3081 1566 BC01 movw r22,r24 |
3082 1568 CD01 movw r24,r26 |
3083 156a 0E94 0000 call __mulsi3 |
3084 156e 97FD sbrc r25,7 |
3085 1570 00C0 rjmp .L216 |
3086 .L128: |
3087 1572 56E0 ldi r21,6 |
3088 1574 9595 1: asr r25 |
3089 1576 8795 ror r24 |
3090 1578 7795 ror r23 |
3091 157a 6795 ror r22 |
3092 157c 5A95 dec r21 |
3093 157e 01F4 brne 1b |
3094 1580 2F8D ldd r18,Y+31 |
3095 1582 38A1 ldd r19,Y+32 |
3096 1584 261B sub r18,r22 |
3097 1586 370B sbc r19,r23 |
3098 1588 3093 0000 sts (TrimRoll)+1,r19 |
3099 158c 2093 0000 sts TrimRoll,r18 |
3100 1590 4B85 ldd r20,Y+11 |
3101 1592 5C85 ldd r21,Y+12 |
3102 1594 1416 cp __zero_reg__,r20 |
3103 1596 1506 cpc __zero_reg__,r21 |
3104 1598 04F4 brge .+2 |
3105 159a 00C0 rjmp .L217 |
3106 .L129: |
3107 159c 8091 0000 lds r24,KopplungsteilRollNick |
3108 15a0 9091 0000 lds r25,(KopplungsteilRollNick)+1 |
3109 15a4 97FD sbrc r25,7 |
3110 15a6 00C0 rjmp .L218 |
3111 .L133: |
3112 15a8 AA27 clr r26 |
3113 15aa 97FD sbrc r25,7 |
3114 15ac A095 com r26 |
3115 15ae BA2F mov r27,r26 |
3116 15b0 EDA5 ldd r30,Y+45 |
3117 15b2 2E2F mov r18,r30 |
3118 15b4 3327 clr r19 |
3119 15b6 4427 clr r20 |
3120 15b8 5527 clr r21 |
3121 15ba BC01 movw r22,r24 |
3122 15bc CD01 movw r24,r26 |
3123 15be 0E94 0000 call __mulsi3 |
3124 15c2 97FD sbrc r25,7 |
3125 15c4 00C0 rjmp .L219 |
3126 .L134: |
3127 15c6 36E0 ldi r19,6 |
3128 15c8 9595 1: asr r25 |
3129 15ca 8795 ror r24 |
3130 15cc 7795 ror r23 |
3131 15ce 6795 ror r22 |
3132 15d0 3A95 dec r19 |
3133 15d2 01F4 brne 1b |
3134 15d4 29A1 ldd r18,Y+33 |
3135 15d6 3AA1 ldd r19,Y+34 |
3136 15d8 261B sub r18,r22 |
3137 15da 370B sbc r19,r23 |
3138 15dc 3093 0000 sts (TrimNick)+1,r19 |
3139 15e0 2093 0000 sts TrimNick,r18 |
3140 15e4 3CA1 ldd r19,Y+36 |
3141 15e6 37FF sbrs r19,7 |
3142 15e8 00C0 rjmp .L177 |
3143 .L210: |
3144 15ea 4BA1 ldd r20,Y+35 |
3145 15ec 4423 tst r20 |
3146 15ee 01F0 breq .+2 |
3147 15f0 00C0 rjmp .L177 |
3148 15f2 8091 0000 lds r24,Looping_Roll |
3149 15f6 8823 tst r24 |
3150 15f8 01F0 breq .+2 |
3151 15fa 00C0 rjmp .L177 |
3152 15fc 8B85 ldd r24,Y+11 |
3153 15fe 9C85 ldd r25,Y+12 |
3154 1600 A1E0 ldi r26,hi8(257) |
3155 1602 8130 cpi r24,lo8(257) |
3156 1604 9A07 cpc r25,r26 |
3157 1606 04F0 brlt .+2 |
3158 1608 00C0 rjmp .L220 |
3159 160a 2B85 ldd r18,Y+11 |
3160 160c 3C85 ldd r19,Y+12 |
3161 160e 4FEF ldi r20,hi8(-256) |
3162 1610 2030 cpi r18,lo8(-256) |
3163 1612 3407 cpc r19,r20 |
3164 1614 04F0 brlt .+2 |
3165 1616 00C0 rjmp .L178 |
3166 1618 89A5 ldd r24,Y+41 |
3167 161a 9AA5 ldd r25,Y+42 |
3168 161c 280F add r18,r24 |
3169 161e 391F adc r19,r25 |
3170 1620 3C87 std Y+12,r19 |
3171 1622 2B87 std Y+11,r18 |
3172 1624 2050 subi r18,lo8(-(256)) |
3173 1626 3F4F sbci r19,hi8(-(256)) |
3174 1628 3093 0000 sts (MesswertNick)+1,r19 |
3175 162c 2093 0000 sts MesswertNick,r18 |
3176 .L137: |
3177 1630 AD85 ldd r26,Y+13 |
3178 1632 BE85 ldd r27,Y+14 |
3179 1634 E1E0 ldi r30,hi8(257) |
3180 1636 A130 cpi r26,lo8(257) |
3181 1638 BE07 cpc r27,r30 |
3182 163a 04F4 brge .+2 |
3183 163c 00C0 rjmp .L139 |
3184 163e 2BA5 ldd r18,Y+43 |
3185 1640 3CA5 ldd r19,Y+44 |
3186 1642 A20F add r26,r18 |
3187 1644 B31F adc r27,r19 |
3188 1646 BE87 std Y+14,r27 |
3189 1648 AD87 std Y+13,r26 |
3190 164a A050 subi r26,lo8(-(-256)) |
3191 164c B140 sbci r27,hi8(-(-256)) |
3192 164e B093 0000 sts (MesswertRoll)+1,r27 |
3193 1652 A093 0000 sts MesswertRoll,r26 |
3194 1656 00C0 rjmp .L135 |
3195 .L212: |
3196 1658 1092 0000 sts (Poti2)+1,__zero_reg__ |
3197 165c 1092 0000 sts Poti2,__zero_reg__ |
3198 1660 57FF sbrs r21,7 |
3199 1662 00C0 rjmp .L160 |
3200 .L213: |
3201 1664 1092 0000 sts (Poti3)+1,__zero_reg__ |
3202 1668 1092 0000 sts Poti3,__zero_reg__ |
3203 166c 37FF sbrs r19,7 |
3204 166e 00C0 rjmp .L163 |
3205 .L214: |
3206 1670 1092 0000 sts (Poti4)+1,__zero_reg__ |
3207 1674 1092 0000 sts Poti4,__zero_reg__ |
3208 1678 00C0 rjmp .L56 |
3209 .L211: |
3210 167a 1092 0000 sts (Poti1)+1,__zero_reg__ |
3211 167e 1092 0000 sts Poti1,__zero_reg__ |
3212 1682 00C0 rjmp .L155 |
3213 .L187: |
3214 1684 295F subi r18,lo8(-(7)) |
3215 1686 3F4F sbci r19,hi8(-(7)) |
3216 1688 00C0 rjmp .L58 |
3217 .L186: |
3218 168a 295F subi r18,lo8(-(7)) |
3219 168c 3F4F sbci r19,hi8(-(7)) |
3220 168e 00C0 rjmp .L57 |
3221 .L190: |
3222 1690 2D5F subi r18,lo8(-(3)) |
3223 1692 3F4F sbci r19,hi8(-(3)) |
3224 1694 4F4F sbci r20,hlo8(-(3)) |
3225 1696 5F4F sbci r21,hhi8(-(3)) |
3226 1698 00C0 rjmp .L61 |
3227 .L196: |
3228 169a E60E add r14,r22 |
3229 169c F71E adc r15,r23 |
3230 169e 081F adc r16,r24 |
3231 16a0 191F adc r17,r25 |
3232 16a2 E092 0000 sts ErsatzKompass,r14 |
3233 16a6 F092 0000 sts (ErsatzKompass)+1,r15 |
3234 16aa 0093 0000 sts (ErsatzKompass)+2,r16 |
3235 16ae 1093 0000 sts (ErsatzKompass)+3,r17 |
3236 16b2 00C0 rjmp .L89 |
3237 .L189: |
3238 16b4 23E0 ldi r18,lo8(3) |
3239 16b6 30E0 ldi r19,hi8(3) |
3240 16b8 40E0 ldi r20,hlo8(3) |
3241 16ba 50E0 ldi r21,hhi8(3) |
3242 16bc E20E add r14,r18 |
3243 16be F31E adc r15,r19 |
3244 16c0 041F adc r16,r20 |
3245 16c2 151F adc r17,r21 |
3246 16c4 00C0 rjmp .L60 |
3247 .L188: |
3248 16c6 83E0 ldi r24,lo8(3) |
3249 16c8 90E0 ldi r25,hi8(3) |
3250 16ca A0E0 ldi r26,hlo8(3) |
3251 16cc B0E0 ldi r27,hhi8(3) |
3252 16ce E80E add r14,r24 |
3253 16d0 F91E adc r15,r25 |
3254 16d2 0A1F adc r16,r26 |
3255 16d4 1B1F adc r17,r27 |
3256 16d6 00C0 rjmp .L59 |
3257 .L198: |
3258 16d8 0796 adiw r24,7 |
3259 16da 00C0 rjmp .L95 |
3260 .L197: |
3261 16dc 0796 adiw r24,7 |
3262 16de 00C0 rjmp .L94 |
3263 .L168: |
3264 16e0 2DA1 ldd r18,Y+37 |
3265 16e2 3EA1 ldd r19,Y+38 |
3266 16e4 4FA1 ldd r20,Y+39 |
3267 16e6 58A5 ldd r21,Y+40 |
3268 16e8 2093 0000 sts Mess_Integral_Gier,r18 |
3269 16ec 3093 0000 sts (Mess_Integral_Gier)+1,r19 |
3270 16f0 4093 0000 sts (Mess_Integral_Gier)+2,r20 |
3271 16f4 5093 0000 sts (Mess_Integral_Gier)+3,r21 |
3272 16f8 00C0 rjmp .L70 |
3273 .L209: |
3274 16fa 615C subi r22,lo8(-(63)) |
3275 16fc 7F4F sbci r23,hi8(-(63)) |
3276 16fe 8F4F sbci r24,hlo8(-(63)) |
3277 1700 9F4F sbci r25,hhi8(-(63)) |
3278 1702 00C0 rjmp .L131 |
3279 .L208: |
3280 1704 9095 com r25 |
3281 1706 8195 neg r24 |
3282 1708 9F4F sbci r25,lo8(-1) |
3283 170a 00C0 rjmp .L130 |
3284 .L207: |
3285 170c 615C subi r22,lo8(-(63)) |
3286 170e 7F4F sbci r23,hi8(-(63)) |
3287 1710 8F4F sbci r24,hlo8(-(63)) |
3288 1712 9F4F sbci r25,hhi8(-(63)) |
3289 1714 00C0 rjmp .L125 |
3290 .L206: |
3291 1716 9095 com r25 |
3292 1718 8195 neg r24 |
3293 171a 9F4F sbci r25,lo8(-1) |
3294 171c 00C0 rjmp .L124 |
3295 .L205: |
3296 171e 215F subi r18,lo8(-(15)) |
3297 1720 3F4F sbci r19,hi8(-(15)) |
3298 1722 00C0 rjmp .L122 |
3299 .L204: |
3300 1724 2F5F subi r18,lo8(-(1)) |
3301 1726 3F4F sbci r19,hi8(-(1)) |
3302 1728 00C0 rjmp .L118 |
3303 .L203: |
3304 172a 0F96 adiw r24,15 |
3305 172c 00C0 rjmp .L117 |
3306 .L202: |
3307 172e 2F5F subi r18,lo8(-(1)) |
3308 1730 3F4F sbci r19,hi8(-(1)) |
3309 1732 00C0 rjmp .L113 |
3310 .L169: |
3311 1734 2DA1 ldd r18,Y+37 |
3312 1736 3EA1 ldd r19,Y+38 |
3313 1738 4FA1 ldd r20,Y+39 |
3314 173a 58A5 ldd r21,Y+40 |
3315 173c 2093 0000 sts Mess_Integral_Gier,r18 |
3316 1740 3093 0000 sts (Mess_Integral_Gier)+1,r19 |
3317 1744 4093 0000 sts (Mess_Integral_Gier)+2,r20 |
3318 1748 5093 0000 sts (Mess_Integral_Gier)+3,r21 |
3319 .L75: |
3320 174c 8985 ldd r24,Y+9 |
3321 174e 9A85 ldd r25,Y+10 |
3322 1750 AA27 clr r26 |
3323 1752 97FD sbrc r25,7 |
3324 1754 A095 com r26 |
3325 1756 BA2F mov r27,r26 |
3326 1758 2AAD ldd r18,Y+58 |
3327 175a 3BAD ldd r19,Y+59 |
3328 175c 4CAD ldd r20,Y+60 |
3329 175e 5DAD ldd r21,Y+61 |
3330 1760 820F add r24,r18 |
3331 1762 931F adc r25,r19 |
3332 1764 A41F adc r26,r20 |
3333 1766 B51F adc r27,r21 |
3334 1768 8B8B std Y+19,r24 |
3335 176a 9C8B std Y+20,r25 |
3336 176c AD8B std Y+21,r26 |
3337 176e BE8B std Y+22,r27 |
3338 1770 BC01 movw r22,r24 |
3339 1772 CD01 movw r24,r26 |
3340 1774 2981 ldd r18,Y+1 |
3341 1776 3A81 ldd r19,Y+2 |
3342 1778 4B81 ldd r20,Y+3 |
3343 177a 5C81 ldd r21,Y+4 |
3344 177c 0E94 0000 call __mulsi3 |
3345 1780 9B01 movw r18,r22 |
3346 1782 AC01 movw r20,r24 |
3347 1784 97FD sbrc r25,7 |
3348 1786 00C0 rjmp .L221 |
3349 .L77: |
3350 1788 6BE0 ldi r22,11 |
3351 178a 5595 1: asr r21 |
3352 178c 4795 ror r20 |
3353 178e 3795 ror r19 |
3354 1790 2795 ror r18 |
3355 1792 6A95 dec r22 |
3356 1794 01F4 brne 1b |
3357 1796 6091 0000 lds r22,Parameter_AchsKopplung1 |
3358 179a 862F mov r24,r22 |
3359 179c 9927 clr r25 |
3360 179e AA27 clr r26 |
3361 17a0 BB27 clr r27 |
3362 17a2 8F8B std Y+23,r24 |
3363 17a4 988F std Y+24,r25 |
3364 17a6 A98F std Y+25,r26 |
3365 17a8 BA8F std Y+26,r27 |
3366 17aa BC01 movw r22,r24 |
3367 17ac CD01 movw r24,r26 |
3368 17ae 0E94 0000 call __mulsi3 |
3369 17b2 97FD sbrc r25,7 |
3370 17b4 00C0 rjmp .L222 |
3371 .L78: |
3372 17b6 2CE0 ldi r18,12 |
3373 17b8 9595 1: asr r25 |
3374 17ba 8795 ror r24 |
3375 17bc 7795 ror r23 |
3376 17be 6795 ror r22 |
3377 17c0 2A95 dec r18 |
3378 17c2 01F4 brne 1b |
3379 17c4 6B8F std Y+27,r22 |
3380 17c6 7C8F std Y+28,r23 |
3381 17c8 8D8F std Y+29,r24 |
3382 17ca 9E8F std Y+30,r25 |
3383 17cc 6093 0000 sts tmpl.35,r22 |
3384 17d0 7093 0000 sts (tmpl.35)+1,r23 |
3385 17d4 8093 0000 sts (tmpl.35)+2,r24 |
3386 17d8 9093 0000 sts (tmpl.35)+3,r25 |
3387 17dc 6B89 ldd r22,Y+19 |
3388 17de 7C89 ldd r23,Y+20 |
3389 17e0 8D89 ldd r24,Y+21 |
3390 17e2 9E89 ldd r25,Y+22 |
3391 17e4 2D81 ldd r18,Y+5 |
3392 17e6 3E81 ldd r19,Y+6 |
3393 17e8 4F81 ldd r20,Y+7 |
3394 17ea 5885 ldd r21,Y+8 |
3395 17ec 0E94 0000 call __mulsi3 |
3396 17f0 9B01 movw r18,r22 |
3397 17f2 AC01 movw r20,r24 |
3398 17f4 97FD sbrc r25,7 |
3399 17f6 00C0 rjmp .L223 |
3400 .L79: |
3401 17f8 8BE0 ldi r24,11 |
3402 17fa 5595 1: asr r21 |
3403 17fc 4795 ror r20 |
3404 17fe 3795 ror r19 |
3405 1800 2795 ror r18 |
3406 1802 8A95 dec r24 |
3407 1804 01F4 brne 1b |
3408 1806 6F89 ldd r22,Y+23 |
3409 1808 788D ldd r23,Y+24 |
3410 180a 898D ldd r24,Y+25 |
3411 180c 9A8D ldd r25,Y+26 |
3412 180e 0E94 0000 call __mulsi3 |
3413 1812 97FD sbrc r25,7 |
3414 1814 00C0 rjmp .L224 |
3415 .L80: |
3416 1816 BCE0 ldi r27,12 |
3417 1818 9595 1: asr r25 |
3418 181a 8795 ror r24 |
3419 181c 7795 ror r23 |
3420 181e 6795 ror r22 |
3421 1820 BA95 dec r27 |
3422 1822 01F4 brne 1b |
3423 1824 6AAB std Y+50,r22 |
3424 1826 7BAB std Y+51,r23 |
3425 1828 8CAB std Y+52,r24 |
3426 182a 9DAB std Y+53,r25 |
3427 182c 6093 0000 sts tmpl2.36,r22 |
3428 1830 7093 0000 sts (tmpl2.36)+1,r23 |
3429 1834 8093 0000 sts (tmpl2.36)+2,r24 |
3430 1838 9093 0000 sts (tmpl2.36)+3,r25 |
3431 183c 2985 ldd r18,Y+9 |
3432 183e 3A85 ldd r19,Y+10 |
3433 1840 37FD sbrc r19,7 |
3434 1842 00C0 rjmp .L225 |
3435 .L82: |
3436 1844 2134 cpi r18,65 |
3437 1846 3105 cpc r19,__zero_reg__ |
3438 1848 04F4 brge .+2 |
3439 184a 00C0 rjmp .L87 |
3440 184c 6B8D ldd r22,Y+27 |
3441 184e 7C8D ldd r23,Y+28 |
3442 1850 8D8D ldd r24,Y+29 |
3443 1852 9E8D ldd r25,Y+30 |
3444 1854 97FD sbrc r25,7 |
3445 1856 00C0 rjmp .L226 |
3446 .L85: |
3447 1858 6138 cpi r22,lo8(129) |
3448 185a 7105 cpc r23,__zero_reg__ |
3449 185c 8105 cpc r24,__zero_reg__ |
3450 185e 9105 cpc r25,__zero_reg__ |
3451 1860 04F4 brge .L84 |
3452 1862 6AA9 ldd r22,Y+50 |
3453 1864 7BA9 ldd r23,Y+51 |
3454 1866 8CA9 ldd r24,Y+52 |
3455 1868 9DA9 ldd r25,Y+53 |
3456 186a 97FD sbrc r25,7 |
3457 186c 00C0 rjmp .L227 |
3458 .L86: |
3459 186e 6138 cpi r22,lo8(129) |
3460 1870 7105 cpc r23,__zero_reg__ |
3461 1872 8105 cpc r24,__zero_reg__ |
3462 1874 9105 cpc r25,__zero_reg__ |
3463 1876 04F4 brge .+2 |
3464 1878 00C0 rjmp .L87 |
3465 .L84: |
3466 187a 81E0 ldi r24,lo8(1) |
3467 187c 8093 0000 sts TrichterFlug,r24 |
3468 1880 00C0 rjmp .L87 |
3469 .L218: |
3470 1882 9095 com r25 |
3471 1884 8195 neg r24 |
3472 1886 9F4F sbci r25,lo8(-1) |
3473 1888 00C0 rjmp .L133 |
3474 .L215: |
3475 188a 9095 com r25 |
3476 188c 8195 neg r24 |
3477 188e 9F4F sbci r25,lo8(-1) |
3478 1890 00C0 rjmp .L127 |
3479 .L220: |
3480 1892 E9A5 ldd r30,Y+41 |
3481 1894 FAA5 ldd r31,Y+42 |
3482 1896 8E0F add r24,r30 |
3483 1898 9F1F adc r25,r31 |
3484 189a 9C87 std Y+12,r25 |
3485 189c 8B87 std Y+11,r24 |
3486 189e 8050 subi r24,lo8(-(-256)) |
3487 18a0 9140 sbci r25,hi8(-(-256)) |
3488 18a2 9093 0000 sts (MesswertNick)+1,r25 |
3489 18a6 8093 0000 sts MesswertNick,r24 |
3490 18aa 00C0 rjmp .L137 |
3491 .L226: |
3492 18ac 9095 com r25 |
3493 18ae 8095 com r24 |
3494 18b0 7095 com r23 |
3495 18b2 6195 neg r22 |
3496 18b4 7F4F sbci r23,lo8(-1) |
3497 18b6 8F4F sbci r24,lo8(-1) |
3498 18b8 9F4F sbci r25,lo8(-1) |
3499 18ba 00C0 rjmp .L85 |
3500 .L195: |
3501 18bc 0196 adiw r24,1 |
3502 18be A11D adc r26,__zero_reg__ |
3503 18c0 B11D adc r27,__zero_reg__ |
3504 18c2 8EA7 std Y+46,r24 |
3505 18c4 9FA7 std Y+47,r25 |
3506 18c6 A8AB std Y+48,r26 |
3507 18c8 B9AB std Y+49,r27 |
3508 18ca 00C0 rjmp .L76 |
3509 .L216: |
3510 18cc 615C subi r22,lo8(-(63)) |
3511 18ce 7F4F sbci r23,hi8(-(63)) |
3512 18d0 8F4F sbci r24,hlo8(-(63)) |
3513 18d2 9F4F sbci r25,hhi8(-(63)) |
3514 18d4 00C0 rjmp .L128 |
3515 .L219: |
3516 18d6 615C subi r22,lo8(-(63)) |
3517 18d8 7F4F sbci r23,hi8(-(63)) |
3518 18da 8F4F sbci r24,hlo8(-(63)) |
3519 18dc 9F4F sbci r25,hhi8(-(63)) |
3520 18de 00C0 rjmp .L134 |
3521 .L224: |
3522 18e0 6150 subi r22,lo8(-(4095)) |
3523 18e2 704F sbci r23,hi8(-(4095)) |
3524 18e4 8F4F sbci r24,hlo8(-(4095)) |
3525 18e6 9F4F sbci r25,hhi8(-(4095)) |
3526 18e8 00C0 rjmp .L80 |
3527 .L223: |
3528 18ea 2150 subi r18,lo8(-(2047)) |
3529 18ec 384F sbci r19,hi8(-(2047)) |
3530 18ee 4F4F sbci r20,hlo8(-(2047)) |
3531 18f0 5F4F sbci r21,hhi8(-(2047)) |
3532 18f2 00C0 rjmp .L79 |
3533 .L222: |
3534 18f4 6150 subi r22,lo8(-(4095)) |
3535 18f6 704F sbci r23,hi8(-(4095)) |
3536 18f8 8F4F sbci r24,hlo8(-(4095)) |
3537 18fa 9F4F sbci r25,hhi8(-(4095)) |
3538 18fc 00C0 rjmp .L78 |
3539 .L221: |
3540 18fe 2150 subi r18,lo8(-(2047)) |
3541 1900 384F sbci r19,hi8(-(2047)) |
3542 1902 4F4F sbci r20,hlo8(-(2047)) |
3543 1904 5F4F sbci r21,hhi8(-(2047)) |
3544 1906 00C0 rjmp .L77 |
3545 .L139: |
3546 1908 4D85 ldd r20,Y+13 |
3547 190a 5E85 ldd r21,Y+14 |
3548 190c 6FEF ldi r22,hi8(-256) |
3549 190e 4030 cpi r20,lo8(-256) |
3550 1910 5607 cpc r21,r22 |
3551 1912 04F4 brge .L179 |
3552 1914 8BA5 ldd r24,Y+43 |
3553 1916 9CA5 ldd r25,Y+44 |
3554 1918 480F add r20,r24 |
3555 191a 591F adc r21,r25 |
3556 191c 5E87 std Y+14,r21 |
3557 191e 4D87 std Y+13,r20 |
3558 1920 4050 subi r20,lo8(-(256)) |
3559 1922 5F4F sbci r21,hi8(-(256)) |
3560 1924 5093 0000 sts (MesswertRoll)+1,r21 |
3561 1928 4093 0000 sts MesswertRoll,r20 |
3562 192c 00C0 rjmp .L135 |
3563 .L192: |
3564 192e 6150 subi r22,lo8(-(4095)) |
3565 1930 704F sbci r23,hi8(-(4095)) |
3566 1932 8F4F sbci r24,hlo8(-(4095)) |
3567 1934 9F4F sbci r25,hhi8(-(4095)) |
3568 1936 00C0 rjmp .L72 |
3569 .L191: |
3570 1938 2150 subi r18,lo8(-(2047)) |
3571 193a 384F sbci r19,hi8(-(2047)) |
3572 193c 4F4F sbci r20,hlo8(-(2047)) |
3573 193e 5F4F sbci r21,hhi8(-(2047)) |
3574 1940 00C0 rjmp .L71 |
3575 .L225: |
3576 1942 3095 com r19 |
3577 1944 2195 neg r18 |
3578 1946 3F4F sbci r19,lo8(-1) |
3579 1948 00C0 rjmp .L82 |
3580 .L194: |
3581 194a 6150 subi r22,lo8(-(4095)) |
3582 194c 704F sbci r23,hi8(-(4095)) |
3583 194e 8F4F sbci r24,hlo8(-(4095)) |
3584 1950 9F4F sbci r25,hhi8(-(4095)) |
3585 1952 00C0 rjmp .L74 |
3586 .L193: |
3587 1954 2150 subi r18,lo8(-(2047)) |
3588 1956 384F sbci r19,hi8(-(2047)) |
3589 1958 4F4F sbci r20,hlo8(-(2047)) |
3590 195a 5F4F sbci r21,hhi8(-(2047)) |
3591 195c 00C0 rjmp .L73 |
3592 .L178: |
3593 195e F092 0000 sts (MesswertNick)+1,r15 |
3594 1962 E092 0000 sts MesswertNick,r14 |
3595 1966 00C0 rjmp .L137 |
3596 .L179: |
3597 1968 1093 0000 sts (MesswertRoll)+1,r17 |
3598 196c 0093 0000 sts MesswertRoll,r16 |
3599 1970 00C0 rjmp .L135 |
3600 .L227: |
3601 1972 9095 com r25 |
3602 1974 8095 com r24 |
3603 1976 7095 com r23 |
3604 1978 6195 neg r22 |
3605 197a 7F4F sbci r23,lo8(-1) |
3606 197c 8F4F sbci r24,lo8(-1) |
3607 197e 9F4F sbci r25,lo8(-1) |
3608 1980 00C0 rjmp .L86 |
3609 .L56: |
3610 /* epilogue: frame size=61 */ |
3611 1982 E2E1 ldi r30,18 |
3612 1984 C35C subi r28,-61 |
3613 1986 0C94 0000 jmp __epilogue_restores__+0 |
3614 /* epilogue end (size=4) */ |
3615 /* function Mittelwert size 2429 (2419) */ |
3617 .global CalibrierMittelwert |
3619 CalibrierMittelwert: |
3620 /* prologue: frame size=0 */ |
3621 /* prologue end (size=0) */ |
3622 198a 8091 0000 lds r24,PlatinenVersion |
3623 198e 8D30 cpi r24,lo8(13) |
3624 1990 01F4 brne .+2 |
3625 1992 00C0 rjmp .L258 |
3626 .L229: |
3627 1994 1092 7A00 sts 122,__zero_reg__ |
3628 1998 8091 0000 lds r24,AdWertNick |
3629 199c 9091 0000 lds r25,(AdWertNick)+1 |
3630 19a0 9093 0000 sts (MesswertNick)+1,r25 |
3631 19a4 8093 0000 sts MesswertNick,r24 |
3632 19a8 8091 0000 lds r24,AdWertRoll |
3633 19ac 9091 0000 lds r25,(AdWertRoll)+1 |
3634 19b0 9093 0000 sts (MesswertRoll)+1,r25 |
3635 19b4 8093 0000 sts MesswertRoll,r24 |
3636 19b8 8091 0000 lds r24,AdWertGier |
3637 19bc 9091 0000 lds r25,(AdWertGier)+1 |
3638 19c0 9093 0000 sts (MesswertGier)+1,r25 |
3639 19c4 8093 0000 sts MesswertGier,r24 |
3640 19c8 8091 0000 lds r24,AdWertAccNick |
3641 19cc 9091 0000 lds r25,(AdWertAccNick)+1 |
3642 19d0 9C01 movw r18,r24 |
3643 19d2 4427 clr r20 |
3644 19d4 37FD sbrc r19,7 |
3645 19d6 4095 com r20 |
3646 19d8 542F mov r21,r20 |
3647 19da DA01 movw r26,r20 |
3648 19dc C901 movw r24,r18 |
3649 19de 880F lsl r24 |
3650 19e0 991F rol r25 |
3651 19e2 AA1F rol r26 |
3652 19e4 BB1F rol r27 |
3653 19e6 880F lsl r24 |
3654 19e8 991F rol r25 |
3655 19ea AA1F rol r26 |
3656 19ec BB1F rol r27 |
3657 19ee 820F add r24,r18 |
3658 19f0 931F adc r25,r19 |
3659 19f2 A41F adc r26,r20 |
3660 19f4 B51F adc r27,r21 |
3661 19f6 820F add r24,r18 |
3662 19f8 931F adc r25,r19 |
3663 19fa A41F adc r26,r20 |
3664 19fc B51F adc r27,r21 |
3665 19fe 9093 0000 sts (Mittelwert_AccNick)+1,r25 |
3666 1a02 8093 0000 sts Mittelwert_AccNick,r24 |
3667 1a06 8091 0000 lds r24,AdWertAccRoll |
3668 1a0a 9091 0000 lds r25,(AdWertAccRoll)+1 |
3669 1a0e 9C01 movw r18,r24 |
3670 1a10 4427 clr r20 |
3671 1a12 37FD sbrc r19,7 |
3672 1a14 4095 com r20 |
3673 1a16 542F mov r21,r20 |
3674 1a18 DA01 movw r26,r20 |
3675 1a1a C901 movw r24,r18 |
3676 1a1c 880F lsl r24 |
3677 1a1e 991F rol r25 |
3678 1a20 AA1F rol r26 |
3679 1a22 BB1F rol r27 |
3680 1a24 880F lsl r24 |
3681 1a26 991F rol r25 |
3682 1a28 AA1F rol r26 |
3683 1a2a BB1F rol r27 |
3684 1a2c 820F add r24,r18 |
3685 1a2e 931F adc r25,r19 |
3686 1a30 A41F adc r26,r20 |
3687 1a32 B51F adc r27,r21 |
3688 1a34 820F add r24,r18 |
3689 1a36 931F adc r25,r19 |
3690 1a38 A41F adc r26,r20 |
3691 1a3a B51F adc r27,r21 |
3692 1a3c 9093 0000 sts (Mittelwert_AccRoll)+1,r25 |
3693 1a40 8093 0000 sts Mittelwert_AccRoll,r24 |
3694 1a44 8091 0000 lds r24,AdWertAccHoch |
3695 1a48 9091 0000 lds r25,(AdWertAccHoch)+1 |
3696 1a4c 9093 0000 sts (Mittelwert_AccHoch)+1,r25 |
3697 1a50 8093 0000 sts Mittelwert_AccHoch,r24 |
3698 1a54 8FEC ldi r24,lo8(-49) |
3699 1a56 8093 7A00 sts 122,r24 |
3700 1a5a 8091 0000 lds r24,EE_Parameter+4 |
3701 1a5e E82F mov r30,r24 |
3702 1a60 FF27 clr r31 |
3703 1a62 EE0F add r30,r30 |
3704 1a64 FF1F adc r31,r31 |
3705 1a66 E050 subi r30,lo8(-(PPM_in)) |
3706 1a68 F040 sbci r31,hi8(-(PPM_in)) |
3707 1a6a 8081 ld r24,Z |
3708 1a6c 9181 ldd r25,Z+1 |
3709 1a6e 8259 subi r24,lo8(-(110)) |
3710 1a70 9F4F sbci r25,hi8(-(110)) |
3711 1a72 A091 0000 lds r26,Poti1 |
3712 1a76 B091 0000 lds r27,(Poti1)+1 |
3713 1a7a A817 cp r26,r24 |
3714 1a7c B907 cpc r27,r25 |
3715 1a7e 04F0 brlt .+2 |
3716 1a80 00C0 rjmp .L230 |
3717 1a82 CD01 movw r24,r26 |
3718 1a84 0196 adiw r24,1 |
3719 .L254: |
3720 1a86 9093 0000 sts (Poti1)+1,r25 |
3721 1a8a 8093 0000 sts Poti1,r24 |
3722 1a8e DC01 movw r26,r24 |
3723 .L231: |
3724 1a90 8091 0000 lds r24,EE_Parameter+5 |
3725 1a94 E82F mov r30,r24 |
3726 1a96 FF27 clr r31 |
3727 1a98 EE0F add r30,r30 |
3728 1a9a FF1F adc r31,r31 |
3729 1a9c E050 subi r30,lo8(-(PPM_in)) |
3730 1a9e F040 sbci r31,hi8(-(PPM_in)) |
3731 1aa0 8081 ld r24,Z |
3732 1aa2 9181 ldd r25,Z+1 |
3733 1aa4 8259 subi r24,lo8(-(110)) |
3734 1aa6 9F4F sbci r25,hi8(-(110)) |
3735 1aa8 6091 0000 lds r22,Poti2 |
3736 1aac 7091 0000 lds r23,(Poti2)+1 |
3737 1ab0 6817 cp r22,r24 |
3738 1ab2 7907 cpc r23,r25 |
3739 1ab4 04F0 brlt .+2 |
3740 1ab6 00C0 rjmp .L233 |
3741 1ab8 CB01 movw r24,r22 |
3742 1aba 0196 adiw r24,1 |
3743 .L255: |
3744 1abc 9093 0000 sts (Poti2)+1,r25 |
3745 1ac0 8093 0000 sts Poti2,r24 |
3746 1ac4 BC01 movw r22,r24 |
3747 .L234: |
3748 1ac6 8091 0000 lds r24,EE_Parameter+6 |
3749 1aca E82F mov r30,r24 |
3750 1acc FF27 clr r31 |
3751 1ace EE0F add r30,r30 |
3752 1ad0 FF1F adc r31,r31 |
3753 1ad2 E050 subi r30,lo8(-(PPM_in)) |
3754 1ad4 F040 sbci r31,hi8(-(PPM_in)) |
3755 1ad6 8081 ld r24,Z |
3756 1ad8 9181 ldd r25,Z+1 |
3757 1ada 8259 subi r24,lo8(-(110)) |
3758 1adc 9F4F sbci r25,hi8(-(110)) |
3759 1ade 4091 0000 lds r20,Poti3 |
3760 1ae2 5091 0000 lds r21,(Poti3)+1 |
3761 1ae6 4817 cp r20,r24 |
3762 1ae8 5907 cpc r21,r25 |
3763 1aea 04F0 brlt .+2 |
3764 1aec 00C0 rjmp .L236 |
3765 1aee CA01 movw r24,r20 |
3766 1af0 0196 adiw r24,1 |
3767 .L256: |
3768 1af2 9093 0000 sts (Poti3)+1,r25 |
3769 1af6 8093 0000 sts Poti3,r24 |
3770 1afa AC01 movw r20,r24 |
3771 .L237: |
3772 1afc 8091 0000 lds r24,EE_Parameter+7 |
3773 1b00 E82F mov r30,r24 |
3774 1b02 FF27 clr r31 |
3775 1b04 EE0F add r30,r30 |
3776 1b06 FF1F adc r31,r31 |
3777 1b08 E050 subi r30,lo8(-(PPM_in)) |
3778 1b0a F040 sbci r31,hi8(-(PPM_in)) |
3779 1b0c 8081 ld r24,Z |
3780 1b0e 9181 ldd r25,Z+1 |
3781 1b10 8259 subi r24,lo8(-(110)) |
3782 1b12 9F4F sbci r25,hi8(-(110)) |
3783 1b14 2091 0000 lds r18,Poti4 |
3784 1b18 3091 0000 lds r19,(Poti4)+1 |
3785 1b1c 2817 cp r18,r24 |
3786 1b1e 3907 cpc r19,r25 |
3787 1b20 04F0 brlt .+2 |
3788 1b22 00C0 rjmp .L239 |
3789 1b24 C901 movw r24,r18 |
3790 1b26 0196 adiw r24,1 |
3791 .L257: |
3792 1b28 9093 0000 sts (Poti4)+1,r25 |
3793 1b2c 8093 0000 sts Poti4,r24 |
3794 1b30 9C01 movw r18,r24 |
3795 .L240: |
3796 1b32 B7FD sbrc r27,7 |
3797 1b34 00C0 rjmp .L259 |
3798 1b36 AF3F cpi r26,255 |
3799 1b38 B105 cpc r27,__zero_reg__ |
3800 1b3a 01F0 breq .+4 |
3801 1b3c 04F0 brlt .+2 |
3802 1b3e 00C0 rjmp .L260 |
3803 .L243: |
3804 1b40 77FD sbrc r23,7 |
3805 1b42 00C0 rjmp .L261 |
3806 .L245: |
3807 1b44 6F3F cpi r22,255 |
3808 1b46 7105 cpc r23,__zero_reg__ |
3809 1b48 01F0 breq .L246 |
3810 1b4a 04F0 brlt .L246 |
3811 1b4c 8FEF ldi r24,lo8(255) |
3812 1b4e 90E0 ldi r25,hi8(255) |
3813 1b50 9093 0000 sts (Poti2)+1,r25 |
3814 1b54 8093 0000 sts Poti2,r24 |
3815 .L246: |
3816 1b58 57FD sbrc r21,7 |
3817 1b5a 00C0 rjmp .L262 |
3818 .L248: |
3819 1b5c 4F3F cpi r20,255 |
3820 1b5e 5105 cpc r21,__zero_reg__ |
3821 1b60 01F0 breq .L249 |
3822 1b62 04F0 brlt .L249 |
3823 1b64 8FEF ldi r24,lo8(255) |
3824 1b66 90E0 ldi r25,hi8(255) |
3825 1b68 9093 0000 sts (Poti3)+1,r25 |
3826 1b6c 8093 0000 sts Poti3,r24 |
3827 .L249: |
3828 1b70 37FD sbrc r19,7 |
3829 1b72 00C0 rjmp .L263 |
3830 .L251: |
3831 1b74 2F3F cpi r18,255 |
3832 1b76 3105 cpc r19,__zero_reg__ |
3833 1b78 01F0 breq .+2 |
3834 1b7a 04F4 brge .+2 |
3835 1b7c 00C0 rjmp .L252 |
3836 1b7e 8FEF ldi r24,lo8(255) |
3837 1b80 90E0 ldi r25,hi8(255) |
3838 1b82 9093 0000 sts (Poti4)+1,r25 |
3839 1b86 8093 0000 sts Poti4,r24 |
3840 1b8a 00C0 rjmp .L252 |
3841 .L230: |
3842 1b8c 8081 ld r24,Z |
3843 1b8e 9181 ldd r25,Z+1 |
3844 1b90 8259 subi r24,lo8(-(110)) |
3845 1b92 9F4F sbci r25,hi8(-(110)) |
3846 1b94 8A17 cp r24,r26 |
3847 1b96 9B07 cpc r25,r27 |
3848 1b98 04F0 brlt .+2 |
3849 1b9a 00C0 rjmp .L231 |
3850 1b9c 1097 sbiw r26,0 |
3851 1b9e 01F4 brne .+2 |
3852 1ba0 00C0 rjmp .L231 |
3853 1ba2 CD01 movw r24,r26 |
3854 1ba4 0197 sbiw r24,1 |
3855 1ba6 00C0 rjmp .L254 |
3856 .L239: |
3857 1ba8 8081 ld r24,Z |
3858 1baa 9181 ldd r25,Z+1 |
3859 1bac 8259 subi r24,lo8(-(110)) |
3860 1bae 9F4F sbci r25,hi8(-(110)) |
3861 1bb0 8217 cp r24,r18 |
3862 1bb2 9307 cpc r25,r19 |
3863 1bb4 04F0 brlt .+2 |
3864 1bb6 00C0 rjmp .L240 |
3865 1bb8 2115 cp r18,__zero_reg__ |
3866 1bba 3105 cpc r19,__zero_reg__ |
3867 1bbc 01F4 brne .+2 |
3868 1bbe 00C0 rjmp .L240 |
3869 1bc0 C901 movw r24,r18 |
3870 1bc2 0197 sbiw r24,1 |
3871 1bc4 00C0 rjmp .L257 |
3872 .L236: |
3873 1bc6 8081 ld r24,Z |
3874 1bc8 9181 ldd r25,Z+1 |
3875 1bca 8259 subi r24,lo8(-(110)) |
3876 1bcc 9F4F sbci r25,hi8(-(110)) |
3877 1bce 8417 cp r24,r20 |
3878 1bd0 9507 cpc r25,r21 |
3879 1bd2 04F0 brlt .+2 |
3880 1bd4 00C0 rjmp .L237 |
3881 1bd6 4115 cp r20,__zero_reg__ |
3882 1bd8 5105 cpc r21,__zero_reg__ |
3883 1bda 01F4 brne .+2 |
3884 1bdc 00C0 rjmp .L237 |
3885 1bde CA01 movw r24,r20 |
3886 1be0 0197 sbiw r24,1 |
3887 1be2 00C0 rjmp .L256 |
3888 .L233: |
3889 1be4 8081 ld r24,Z |
3890 1be6 9181 ldd r25,Z+1 |
3891 1be8 8259 subi r24,lo8(-(110)) |
3892 1bea 9F4F sbci r25,hi8(-(110)) |
3893 1bec 8617 cp r24,r22 |
3894 1bee 9707 cpc r25,r23 |
3895 1bf0 04F0 brlt .+2 |
3896 1bf2 00C0 rjmp .L234 |
3897 1bf4 6115 cp r22,__zero_reg__ |
3898 1bf6 7105 cpc r23,__zero_reg__ |
3899 1bf8 01F4 brne .+2 |
3900 1bfa 00C0 rjmp .L234 |
3901 1bfc CB01 movw r24,r22 |
3902 1bfe 0197 sbiw r24,1 |
3903 1c00 00C0 rjmp .L255 |
3904 .L260: |
3905 1c02 8FEF ldi r24,lo8(255) |
3906 1c04 90E0 ldi r25,hi8(255) |
3907 1c06 9093 0000 sts (Poti1)+1,r25 |
3908 1c0a 8093 0000 sts Poti1,r24 |
3909 1c0e 77FF sbrs r23,7 |
3910 1c10 00C0 rjmp .L245 |
3911 .L261: |
3912 1c12 1092 0000 sts (Poti2)+1,__zero_reg__ |
3913 1c16 1092 0000 sts Poti2,__zero_reg__ |
3914 1c1a 57FF sbrs r21,7 |
3915 1c1c 00C0 rjmp .L248 |
3916 .L262: |
3917 1c1e 1092 0000 sts (Poti3)+1,__zero_reg__ |
3918 1c22 1092 0000 sts Poti3,__zero_reg__ |
3919 1c26 37FF sbrs r19,7 |
3920 1c28 00C0 rjmp .L251 |
3921 .L263: |
3922 1c2a 1092 0000 sts (Poti4)+1,__zero_reg__ |
3923 1c2e 1092 0000 sts Poti4,__zero_reg__ |
3924 1c32 00C0 rjmp .L252 |
3925 .L259: |
3926 1c34 1092 0000 sts (Poti1)+1,__zero_reg__ |
3927 1c38 1092 0000 sts Poti1,__zero_reg__ |
3928 1c3c 00C0 rjmp .L243 |
3929 .L258: |
3930 1c3e 0E94 0000 call SucheGyroOffset |
3931 1c42 00C0 rjmp .L229 |
3932 .L252: |
3933 1c44 8091 0000 lds r24,EE_Parameter+54 |
3934 1c48 9927 clr r25 |
3935 1c4a AA27 clr r26 |
3936 1c4c BB27 clr r27 |
3937 1c4e BC01 movw r22,r24 |
3938 1c50 CD01 movw r24,r26 |
3939 1c52 24EC ldi r18,lo8(2500) |
3940 1c54 39E0 ldi r19,hi8(2500) |
3941 1c56 40E0 ldi r20,hlo8(2500) |
3942 1c58 50E0 ldi r21,hhi8(2500) |
3943 1c5a 0E94 0000 call __mulsi3 |
3944 1c5e DC01 movw r26,r24 |
3945 1c60 CB01 movw r24,r22 |
3946 1c62 8093 0000 sts Umschlag180Nick,r24 |
3947 1c66 9093 0000 sts (Umschlag180Nick)+1,r25 |
3948 1c6a A093 0000 sts (Umschlag180Nick)+2,r26 |
3949 1c6e B093 0000 sts (Umschlag180Nick)+3,r27 |
3950 1c72 8091 0000 lds r24,EE_Parameter+55 |
3951 1c76 9927 clr r25 |
3952 1c78 AA27 clr r26 |
3953 1c7a BB27 clr r27 |
3954 1c7c BC01 movw r22,r24 |
3955 1c7e CD01 movw r24,r26 |
3956 1c80 0E94 0000 call __mulsi3 |
3957 1c84 DC01 movw r26,r24 |
3958 1c86 CB01 movw r24,r22 |
3959 1c88 8093 0000 sts Umschlag180Roll,r24 |
3960 1c8c 9093 0000 sts (Umschlag180Roll)+1,r25 |
3961 1c90 A093 0000 sts (Umschlag180Roll)+2,r26 |
3962 1c94 B093 0000 sts (Umschlag180Roll)+3,r27 |
3963 /* epilogue: frame size=0 */ |
3964 1c98 0895 ret |
3965 /* epilogue end (size=1) */ |
3966 /* function CalibrierMittelwert size 392 (391) */ |
3968 .global SetNeutral |
3970 SetNeutral: |
3971 /* prologue: frame size=0 */ |
3972 1c9a A0E0 ldi r26,lo8(0) |
3973 1c9c B0E0 ldi r27,hi8(0) |
3974 1c9e E0E0 ldi r30,pm_lo8(1f) |
3975 1ca0 F0E0 ldi r31,pm_hi8(1f) |
3976 1ca2 0C94 0000 jmp __prologue_saves__+8 |
3977 1: |
3978 /* prologue end (size=6) */ |
3979 1ca6 C0E0 ldi r28,lo8(0) |
3980 1ca8 D0E0 ldi r29,hi8(0) |
3981 1caa 7E01 movw r14,r28 |
3982 1cac 6E01 movw r12,r28 |
3983 1cae 469A sbi 40-0x20,6 |
3984 1cb0 D093 0000 sts (NeutralAccX)+1,r29 |
3985 1cb4 C093 0000 sts NeutralAccX,r28 |
3986 1cb8 D093 0000 sts (NeutralAccY)+1,r29 |
3987 1cbc C093 0000 sts NeutralAccY,r28 |
3988 1cc0 80E0 ldi r24,lo8(0x0) |
3989 1cc2 90E0 ldi r25,hi8(0x0) |
3990 1cc4 A0E0 ldi r26,hlo8(0x0) |
3991 1cc6 B0E0 ldi r27,hhi8(0x0) |
3992 1cc8 8093 0000 sts NeutralAccZ,r24 |
3993 1ccc 9093 0000 sts (NeutralAccZ)+1,r25 |
3994 1cd0 A093 0000 sts (NeutralAccZ)+2,r26 |
3995 1cd4 B093 0000 sts (NeutralAccZ)+3,r27 |
3996 1cd8 D093 0000 sts (AdNeutralNick)+1,r29 |
3997 1cdc C093 0000 sts AdNeutralNick,r28 |
3998 1ce0 D093 0000 sts (AdNeutralRoll)+1,r29 |
3999 1ce4 C093 0000 sts AdNeutralRoll,r28 |
4000 1ce8 D093 0000 sts (AdNeutralGier)+1,r29 |
4001 1cec C093 0000 sts AdNeutralGier,r28 |
4002 1cf0 D093 0000 sts (AdNeutralGierBias)+1,r29 |
4003 1cf4 C093 0000 sts AdNeutralGierBias,r28 |
4004 1cf8 1092 0000 sts Parameter_AchsKopplung1,__zero_reg__ |
4005 1cfc 1092 0000 sts Parameter_AchsKopplung2,__zero_reg__ |
4006 1d00 1092 0000 sts ExpandBaro,__zero_reg__ |
4007 1d04 0E94 0000 call CalibrierMittelwert |
4008 1d08 84E6 ldi r24,lo8(100) |
4009 1d0a 90E0 ldi r25,hi8(100) |
4010 1d0c 0E94 0000 call Delay_ms_Mess |
4011 1d10 0E94 0000 call CalibrierMittelwert |
4012 1d14 8091 0000 lds r24,EE_Parameter+8 |
4013 1d18 80FF sbrs r24,0 |
4014 1d1a 00C0 rjmp .L265 |
4015 1d1c 8091 0000 lds r24,MessLuftdruck |
4016 1d20 9091 0000 lds r25,(MessLuftdruck)+1 |
4017 1d24 875B subi r24,lo8(951) |
4018 1d26 9340 sbci r25,hi8(951) |
4019 1d28 00F0 brlo .+2 |
4020 1d2a 00C0 rjmp .L267 |
4021 1d2c 8091 0000 lds r24,MessLuftdruck |
4022 1d30 9091 0000 lds r25,(MessLuftdruck)+1 |
4023 1d34 8E5E subi r24,lo8(750) |
4024 1d36 9240 sbci r25,hi8(750) |
4025 1d38 00F4 brsh .+2 |
4026 1d3a 00C0 rjmp .L267 |
4027 .L265: |
4028 1d3c 0FE1 ldi r16,lo8(31) |
4029 .L271: |
4030 1d3e 8AE0 ldi r24,lo8(10) |
4031 1d40 90E0 ldi r25,hi8(10) |
4032 1d42 0E94 0000 call Delay_ms_Mess |
4033 1d46 8091 0000 lds r24,AdWertGier |
4034 1d4a 9091 0000 lds r25,(AdWertGier)+1 |
4035 1d4e C80F add r28,r24 |
4036 1d50 D91F adc r29,r25 |
4037 1d52 8091 0000 lds r24,AdWertNick |
4038 1d56 9091 0000 lds r25,(AdWertNick)+1 |
4039 1d5a E80E add r14,r24 |
4040 1d5c F91E adc r15,r25 |
4041 1d5e 8091 0000 lds r24,AdWertRoll |
4042 1d62 9091 0000 lds r25,(AdWertRoll)+1 |
4043 1d66 C80E add r12,r24 |
4044 1d68 D91E adc r13,r25 |
4045 1d6a 0150 subi r16,lo8(-(-1)) |
4046 1d6c 07FF sbrs r16,7 |
4047 1d6e 00C0 rjmp .L271 |
4048 1d70 A701 movw r20,r14 |
4049 1d72 405F subi r20,lo8(-(16)) |
4050 1d74 5F4F sbci r21,hi8(-(16)) |
4051 1d76 5695 lsr r21 |
4052 1d78 4795 ror r20 |
4053 1d7a 5695 lsr r21 |
4054 1d7c 4795 ror r20 |
4055 1d7e 5093 0000 sts (AdNeutralNick)+1,r21 |
4056 1d82 4093 0000 sts AdNeutralNick,r20 |
4057 1d86 9601 movw r18,r12 |
4058 1d88 205F subi r18,lo8(-(16)) |
4059 1d8a 3F4F sbci r19,hi8(-(16)) |
4060 1d8c 3695 lsr r19 |
4061 1d8e 2795 ror r18 |
4062 1d90 3695 lsr r19 |
4063 1d92 2795 ror r18 |
4064 1d94 3093 0000 sts (AdNeutralRoll)+1,r19 |
4065 1d98 2093 0000 sts AdNeutralRoll,r18 |
4066 1d9c CE01 movw r24,r28 |
4067 1d9e 4096 adiw r24,16 |
4068 1da0 9695 lsr r25 |
4069 1da2 8795 ror r24 |
4070 1da4 9295 swap r25 |
4071 1da6 8295 swap r24 |
4072 1da8 8F70 andi r24,0x0f |
4073 1daa 8927 eor r24,r25 |
4074 1dac 9F70 andi r25,0x0f |
4075 1dae 8927 eor r24,r25 |
4076 1db0 9093 0000 sts (AdNeutralGier)+1,r25 |
4077 1db4 8093 0000 sts AdNeutralGier,r24 |
4078 1db8 9093 0000 sts (AdNeutralGierBias)+1,r25 |
4079 1dbc 8093 0000 sts AdNeutralGierBias,r24 |
4080 1dc0 3093 0000 sts (StartNeutralRoll)+1,r19 |
4081 1dc4 2093 0000 sts StartNeutralRoll,r18 |
4082 1dc8 5093 0000 sts (StartNeutralNick)+1,r21 |
4083 1dcc 4093 0000 sts StartNeutralNick,r20 |
4084 .L273: |
4085 1dd0 F999 sbic 63-0x20,1 |
4086 1dd2 00C0 rjmp .L273 |
4087 1dd4 80E0 ldi r24,lo8(EEPromArray+4) |
4088 1dd6 90E0 ldi r25,hi8(EEPromArray+4) |
4089 1dd8 92BD out (65)+1-0x20,r25 |
4090 1dda 81BD out 65-0x20,r24 |
4091 /* #APP */ |
4092 /* START EEPROM READ CRITICAL SECTION */ |
4093 1ddc F89A sbi 31, 0 |
4094 1dde 80B5 in r24, 32 |
4095 /* END EEPROM READ CRITICAL SECTION */ |
4096 |
4097 /* #NOAPP */ |
4098 1de0 8530 cpi r24,lo8(5) |
4099 1de2 00F4 brsh .+2 |
4100 1de4 00C0 rjmp .L280 |
4101 1de6 8091 0000 lds r24,Mittelwert_AccRoll |
4102 1dea 9091 0000 lds r25,(Mittelwert_AccRoll)+1 |
4103 1dee 97FD sbrc r25,7 |
4104 1df0 00C0 rjmp .L308 |
4105 .L277: |
4106 1df2 6CE0 ldi r22,lo8(12) |
4107 1df4 70E0 ldi r23,hi8(12) |
4108 1df6 0E94 0000 call __divmodhi4 |
4109 1dfa 7093 0000 sts (NeutralAccY)+1,r23 |
4110 1dfe 6093 0000 sts NeutralAccY,r22 |
4111 1e02 8091 0000 lds r24,Mittelwert_AccNick |
4112 1e06 9091 0000 lds r25,(Mittelwert_AccNick)+1 |
4113 1e0a 97FD sbrc r25,7 |
4114 1e0c 00C0 rjmp .L309 |
4115 .L278: |
4116 1e0e 6CE0 ldi r22,lo8(12) |
4117 1e10 70E0 ldi r23,hi8(12) |
4118 1e12 0E94 0000 call __divmodhi4 |
4119 1e16 7093 0000 sts (NeutralAccX)+1,r23 |
4120 1e1a 6093 0000 sts NeutralAccX,r22 |
4121 1e1e 8091 0000 lds r24,Aktuell_az |
4122 1e22 9091 0000 lds r25,(Aktuell_az)+1 |
4123 1e26 AA27 clr r26 |
4124 1e28 97FD sbrc r25,7 |
4125 1e2a A095 com r26 |
4126 1e2c BA2F mov r27,r26 |
4127 .L307: |
4128 1e2e BC01 movw r22,r24 |
4129 1e30 CD01 movw r24,r26 |
4130 1e32 0E94 0000 call __floatsisf |
4131 1e36 DC01 movw r26,r24 |
4132 1e38 CB01 movw r24,r22 |
4133 1e3a 8093 0000 sts NeutralAccZ,r24 |
4134 1e3e 9093 0000 sts (NeutralAccZ)+1,r25 |
4135 1e42 A093 0000 sts (NeutralAccZ)+2,r26 |
4136 1e46 B093 0000 sts (NeutralAccZ)+3,r27 |
4137 1e4a 1092 0000 sts (MesswertNick)+1,__zero_reg__ |
4138 1e4e 1092 0000 sts MesswertNick,__zero_reg__ |
4139 1e52 1092 0000 sts (MesswertRoll)+1,__zero_reg__ |
4140 1e56 1092 0000 sts MesswertRoll,__zero_reg__ |
4141 1e5a 1092 0000 sts (MesswertGier)+1,__zero_reg__ |
4142 1e5e 1092 0000 sts MesswertGier,__zero_reg__ |
4143 1e62 84E6 ldi r24,lo8(100) |
4144 1e64 90E0 ldi r25,hi8(100) |
4145 1e66 0E94 0000 call Delay_ms_Mess |
4146 1e6a 8091 0000 lds r24,AdWertAccNick |
4147 1e6e 9091 0000 lds r25,(AdWertAccNick)+1 |
4148 1e72 AA27 clr r26 |
4149 1e74 97FD sbrc r25,7 |
4150 1e76 A095 com r26 |
4151 1e78 BA2F mov r27,r26 |
4152 1e7a 9C01 movw r18,r24 |
4153 1e7c AD01 movw r20,r26 |
4154 1e7e 220F lsl r18 |
4155 1e80 331F rol r19 |
4156 1e82 441F rol r20 |
4157 1e84 551F rol r21 |
4158 1e86 220F lsl r18 |
4159 1e88 331F rol r19 |
4160 1e8a 441F rol r20 |
4161 1e8c 551F rol r21 |
4162 1e8e 280F add r18,r24 |
4163 1e90 391F adc r19,r25 |
4164 1e92 4A1F adc r20,r26 |
4165 1e94 5B1F adc r21,r27 |
4166 1e96 280F add r18,r24 |
4167 1e98 391F adc r19,r25 |
4168 1e9a 4A1F adc r20,r26 |
4169 1e9c 5B1F adc r21,r27 |
4170 1e9e 3093 0000 sts (Mittelwert_AccNick)+1,r19 |
4171 1ea2 2093 0000 sts Mittelwert_AccNick,r18 |
4172 1ea6 8091 0000 lds r24,AdWertAccRoll |
4173 1eaa 9091 0000 lds r25,(AdWertAccRoll)+1 |
4174 1eae AA27 clr r26 |
4175 1eb0 97FD sbrc r25,7 |
4176 1eb2 A095 com r26 |
4177 1eb4 BA2F mov r27,r26 |
4178 1eb6 7C01 movw r14,r24 |
4179 1eb8 8D01 movw r16,r26 |
4180 1eba EE0C lsl r14 |
4181 1ebc FF1C rol r15 |
4182 1ebe 001F rol r16 |
4183 1ec0 111F rol r17 |
4184 1ec2 EE0C lsl r14 |
4185 1ec4 FF1C rol r15 |
4186 1ec6 001F rol r16 |
4187 1ec8 111F rol r17 |
4188 1eca E80E add r14,r24 |
4189 1ecc F91E adc r15,r25 |
4190 1ece 0A1F adc r16,r26 |
4191 1ed0 1B1F adc r17,r27 |
4192 1ed2 E80E add r14,r24 |
4193 1ed4 F91E adc r15,r25 |
4194 1ed6 0A1F adc r16,r26 |
4195 1ed8 1B1F adc r17,r27 |
4196 1eda F092 0000 sts (Mittelwert_AccRoll)+1,r15 |
4197 1ede E092 0000 sts Mittelwert_AccRoll,r14 |
4198 1ee2 8091 0000 lds r24,EE_Parameter+23 |
4199 1ee6 682E mov r6,r24 |
4200 1ee8 7724 clr r7 |
4201 1eea 8824 clr r8 |
4202 1eec 9924 clr r9 |
4203 1eee C901 movw r24,r18 |
4204 1ef0 9C01 movw r18,r24 |
4205 1ef2 4427 clr r20 |
4206 1ef4 37FD sbrc r19,7 |
4207 1ef6 4095 com r20 |
4208 1ef8 542F mov r21,r20 |
4209 1efa C401 movw r24,r8 |
4210 1efc B301 movw r22,r6 |
4211 1efe 0E94 0000 call __mulsi3 |
4212 1f02 5B01 movw r10,r22 |
4213 1f04 6C01 movw r12,r24 |
4214 1f06 6093 0000 sts IntegralNick,r22 |
4215 1f0a 7093 0000 sts (IntegralNick)+1,r23 |
4216 1f0e 8093 0000 sts (IntegralNick)+2,r24 |
4217 1f12 9093 0000 sts (IntegralNick)+3,r25 |
4218 1f16 9701 movw r18,r14 |
4219 1f18 4427 clr r20 |
4220 1f1a 37FD sbrc r19,7 |
4221 1f1c 4095 com r20 |
4222 1f1e 542F mov r21,r20 |
4223 1f20 C401 movw r24,r8 |
4224 1f22 B301 movw r22,r6 |
4225 1f24 0E94 0000 call __mulsi3 |
4226 1f28 DC01 movw r26,r24 |
4227 1f2a CB01 movw r24,r22 |
4228 1f2c 8093 0000 sts IntegralRoll,r24 |
4229 1f30 9093 0000 sts (IntegralRoll)+1,r25 |
4230 1f34 A093 0000 sts (IntegralRoll)+2,r26 |
4231 1f38 B093 0000 sts (IntegralRoll)+3,r27 |
4232 1f3c A092 0000 sts Mess_IntegralNick2,r10 |
4233 1f40 B092 0000 sts (Mess_IntegralNick2)+1,r11 |
4234 1f44 C092 0000 sts (Mess_IntegralNick2)+2,r12 |
4235 1f48 D092 0000 sts (Mess_IntegralNick2)+3,r13 |
4236 1f4c 8093 0000 sts Mess_IntegralRoll2,r24 |
4237 1f50 9093 0000 sts (Mess_IntegralRoll2)+1,r25 |
4238 1f54 A093 0000 sts (Mess_IntegralRoll2)+2,r26 |
4239 1f58 B093 0000 sts (Mess_IntegralRoll2)+3,r27 |
4240 1f5c 1092 0000 sts Mess_Integral_Gier,__zero_reg__ |
4241 1f60 1092 0000 sts (Mess_Integral_Gier)+1,__zero_reg__ |
4242 1f64 1092 0000 sts (Mess_Integral_Gier)+2,__zero_reg__ |
4243 1f68 1092 0000 sts (Mess_Integral_Gier)+3,__zero_reg__ |
4244 1f6c 8091 0000 lds r24,Luftdruck |
4245 1f70 9091 0000 lds r25,(Luftdruck)+1 |
4246 1f74 A091 0000 lds r26,(Luftdruck)+2 |
4247 1f78 B091 0000 lds r27,(Luftdruck)+3 |
4248 1f7c 9093 0000 sts (StartLuftdruck)+1,r25 |
4249 1f80 8093 0000 sts StartLuftdruck,r24 |
4250 1f84 1092 0000 sts (VarioMeter)+1,__zero_reg__ |
4251 1f88 1092 0000 sts VarioMeter,__zero_reg__ |
4252 1f8c 1092 0000 sts Mess_Integral_Hoch,__zero_reg__ |
4253 1f90 1092 0000 sts (Mess_Integral_Hoch)+1,__zero_reg__ |
4254 1f94 1092 0000 sts (Mess_Integral_Hoch)+2,__zero_reg__ |
4255 1f98 1092 0000 sts (Mess_Integral_Hoch)+3,__zero_reg__ |
4256 1f9c 0091 0000 lds r16,KompassValue |
4257 1fa0 1091 0000 lds r17,(KompassValue)+1 |
4258 1fa4 1093 0000 sts (KompassStartwert)+1,r17 |
4259 1fa8 0093 0000 sts KompassStartwert,r16 |
4260 1fac 82E3 ldi r24,lo8(50) |
4261 1fae 90E0 ldi r25,hi8(50) |
4262 1fb0 9093 0000 sts (beeptime)+1,r25 |
4263 1fb4 8093 0000 sts beeptime,r24 |
4264 1fb8 8091 0000 lds r24,EE_Parameter+54 |
4265 1fbc 9927 clr r25 |
4266 1fbe AA27 clr r26 |
4267 1fc0 BB27 clr r27 |
4268 1fc2 BC01 movw r22,r24 |
4269 1fc4 CD01 movw r24,r26 |
4270 1fc6 24EC ldi r18,lo8(2500) |
4271 1fc8 39E0 ldi r19,hi8(2500) |
4272 1fca 40E0 ldi r20,hlo8(2500) |
4273 1fcc 50E0 ldi r21,hhi8(2500) |
4274 1fce 0E94 0000 call __mulsi3 |
4275 1fd2 DC01 movw r26,r24 |
4276 1fd4 CB01 movw r24,r22 |
4277 1fd6 8856 subi r24,lo8(-(15000)) |
4278 1fd8 954C sbci r25,hi8(-(15000)) |
4279 1fda AF4F sbci r26,hlo8(-(15000)) |
4280 1fdc BF4F sbci r27,hhi8(-(15000)) |
4281 1fde 8093 0000 sts Umschlag180Nick,r24 |
4282 1fe2 9093 0000 sts (Umschlag180Nick)+1,r25 |
4283 1fe6 A093 0000 sts (Umschlag180Nick)+2,r26 |
4284 1fea B093 0000 sts (Umschlag180Nick)+3,r27 |
4285 1fee 8091 0000 lds r24,EE_Parameter+55 |
4286 1ff2 9927 clr r25 |
4287 1ff4 AA27 clr r26 |
4288 1ff6 BB27 clr r27 |
4289 1ff8 BC01 movw r22,r24 |
4290 1ffa CD01 movw r24,r26 |
4291 1ffc 0E94 0000 call __mulsi3 |
4292 2000 DC01 movw r26,r24 |
4293 2002 CB01 movw r24,r22 |
4294 2004 8856 subi r24,lo8(-(15000)) |
4295 2006 954C sbci r25,hi8(-(15000)) |
4296 2008 AF4F sbci r26,hlo8(-(15000)) |
4297 200a BF4F sbci r27,hhi8(-(15000)) |
4298 200c 8093 0000 sts Umschlag180Roll,r24 |
4299 2010 9093 0000 sts (Umschlag180Roll)+1,r25 |
4300 2014 A093 0000 sts (Umschlag180Roll)+2,r26 |
4301 2018 B093 0000 sts (Umschlag180Roll)+3,r27 |
4302 201c 1092 0000 sts (ExternHoehenValue)+1,__zero_reg__ |
4303 2020 1092 0000 sts ExternHoehenValue,__zero_reg__ |
4304 2024 C801 movw r24,r16 |
4305 2026 AA27 clr r26 |
4306 2028 97FD sbrc r25,7 |
4307 202a A095 com r26 |
4308 202c BA2F mov r27,r26 |
4309 202e 2091 0000 lds r18,GIER_GRAD_FAKTOR |
4310 2032 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1 |
4311 2036 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2 |
4312 203a 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3 |
4313 203e BC01 movw r22,r24 |
4314 2040 CD01 movw r24,r26 |
4315 2042 0E94 0000 call __mulsi3 |
4316 2046 DC01 movw r26,r24 |
4317 2048 CB01 movw r24,r22 |
4318 204a 8093 0000 sts ErsatzKompass,r24 |
4319 204e 9093 0000 sts (ErsatzKompass)+1,r25 |
4320 2052 A093 0000 sts (ErsatzKompass)+2,r26 |
4321 2056 B093 0000 sts (ErsatzKompass)+3,r27 |
4322 205a 1092 0000 sts (GierGyroFehler)+1,__zero_reg__ |
4323 205e 1092 0000 sts GierGyroFehler,__zero_reg__ |
4324 2062 81E0 ldi r24,lo8(1) |
4325 2064 8093 0000 sts SendVersionToNavi,r24 |
4326 2068 0E94 0000 call LED_Init |
4327 206c 8091 0000 lds r24,MikroKopterFlags |
4328 2070 8460 ori r24,lo8(4) |
4329 2072 8093 0000 sts MikroKopterFlags,r24 |
4330 2076 8091 0000 lds r24,EE_Parameter+4 |
4331 207a E82F mov r30,r24 |
4332 207c FF27 clr r31 |
4333 207e EE0F add r30,r30 |
4334 2080 FF1F adc r31,r31 |
4335 2082 E050 subi r30,lo8(-(PPM_in)) |
4336 2084 F040 sbci r31,hi8(-(PPM_in)) |
4337 2086 8081 ld r24,Z |
4338 2088 9181 ldd r25,Z+1 |
4339 208a 8259 subi r24,lo8(-(110)) |
4340 208c 9F4F sbci r25,hi8(-(110)) |
4341 208e 9093 0000 sts (Poti1)+1,r25 |
4342 2092 8093 0000 sts Poti1,r24 |
4343 2096 8091 0000 lds r24,EE_Parameter+5 |
4344 209a E82F mov r30,r24 |
4345 209c FF27 clr r31 |
4346 209e EE0F add r30,r30 |
4347 20a0 FF1F adc r31,r31 |
4348 20a2 E050 subi r30,lo8(-(PPM_in)) |
4349 20a4 F040 sbci r31,hi8(-(PPM_in)) |
4350 20a6 8081 ld r24,Z |
4351 20a8 9181 ldd r25,Z+1 |
4352 20aa 8259 subi r24,lo8(-(110)) |
4353 20ac 9F4F sbci r25,hi8(-(110)) |
4354 20ae 9093 0000 sts (Poti2)+1,r25 |
4355 20b2 8093 0000 sts Poti2,r24 |
4356 20b6 8091 0000 lds r24,EE_Parameter+6 |
4357 20ba E82F mov r30,r24 |
4358 20bc FF27 clr r31 |
4359 20be EE0F add r30,r30 |
4360 20c0 FF1F adc r31,r31 |
4361 20c2 E050 subi r30,lo8(-(PPM_in)) |
4362 20c4 F040 sbci r31,hi8(-(PPM_in)) |
4363 20c6 8081 ld r24,Z |
4364 20c8 9181 ldd r25,Z+1 |
4365 20ca 8259 subi r24,lo8(-(110)) |
4366 20cc 9F4F sbci r25,hi8(-(110)) |
4367 20ce 9093 0000 sts (Poti3)+1,r25 |
4368 20d2 8093 0000 sts Poti3,r24 |
4369 20d6 8091 0000 lds r24,EE_Parameter+7 |
4370 20da E82F mov r30,r24 |
4371 20dc FF27 clr r31 |
4372 20de EE0F add r30,r30 |
4373 20e0 FF1F adc r31,r31 |
4374 20e2 E050 subi r30,lo8(-(PPM_in)) |
4375 20e4 F040 sbci r31,hi8(-(PPM_in)) |
4376 20e6 8081 ld r24,Z |
4377 20e8 9181 ldd r25,Z+1 |
4378 20ea 8259 subi r24,lo8(-(110)) |
4379 20ec 9F4F sbci r25,hi8(-(110)) |
4380 20ee 9093 0000 sts (Poti4)+1,r25 |
4381 20f2 8093 0000 sts Poti4,r24 |
4382 20f6 84E6 ldi r24,lo8(100) |
4383 20f8 8093 0000 sts SenderOkay,r24 |
4384 20fc 8091 0000 lds r24,ServoActive |
4385 2100 8823 tst r24 |
4386 2102 01F4 brne .+2 |
4387 2104 00C0 rjmp .L264 |
4388 2106 469A sbi 40-0x20,6 |
4389 2108 579A sbi 42-0x20,7 |
4390 210a 00C0 rjmp .L264 |
4391 .L267: |
4392 210c 0E94 0000 call SucheLuftruckOffset |
4393 2110 00C0 rjmp .L265 |
4394 .L280: |
4395 2112 F999 sbic 63-0x20,1 |
4396 2114 00C0 rjmp .L280 |
4397 2116 80E0 ldi r24,lo8(EEPromArray+4) |
4398 2118 90E0 ldi r25,hi8(EEPromArray+4) |
4399 211a 92BD out (65)+1-0x20,r25 |
4400 211c 81BD out 65-0x20,r24 |
4401 /* #APP */ |
4402 /* START EEPROM READ CRITICAL SECTION */ |
4403 211e F89A sbi 31, 0 |
4404 2120 80B5 in r24, 32 |
4405 /* END EEPROM READ CRITICAL SECTION */ |
4406 |
4407 /* #NOAPP */ |
4408 2122 9927 clr r25 |
4409 2124 382F mov r19,r24 |
4410 2126 2227 clr r18 |
4411 .L284: |
4412 2128 F999 sbic 63-0x20,1 |
4413 212a 00C0 rjmp .L284 |
4414 212c 80E0 ldi r24,lo8(EEPromArray+5) |
4415 212e 90E0 ldi r25,hi8(EEPromArray+5) |
4416 2130 92BD out (65)+1-0x20,r25 |
4417 2132 81BD out 65-0x20,r24 |
4418 /* #APP */ |
4419 /* START EEPROM READ CRITICAL SECTION */ |
4420 2134 F89A sbi 31, 0 |
4421 2136 80B5 in r24, 32 |
4422 /* END EEPROM READ CRITICAL SECTION */ |
4423 |
4424 /* #NOAPP */ |
4425 2138 280F add r18,r24 |
4426 213a 311D adc r19,__zero_reg__ |
4427 213c 3093 0000 sts (NeutralAccX)+1,r19 |
4428 2140 2093 0000 sts NeutralAccX,r18 |
4429 .L288: |
4430 2144 F999 sbic 63-0x20,1 |
4431 2146 00C0 rjmp .L288 |
4432 2148 80E0 ldi r24,lo8(EEPromArray+6) |
4433 214a 90E0 ldi r25,hi8(EEPromArray+6) |
4434 214c 92BD out (65)+1-0x20,r25 |
4435 214e 81BD out 65-0x20,r24 |
4436 /* #APP */ |
4437 /* START EEPROM READ CRITICAL SECTION */ |
4438 2150 F89A sbi 31, 0 |
4439 2152 80B5 in r24, 32 |
4440 /* END EEPROM READ CRITICAL SECTION */ |
4441 |
4442 /* #NOAPP */ |
4443 2154 9927 clr r25 |
4444 2156 382F mov r19,r24 |
4445 2158 2227 clr r18 |
4446 .L292: |
4447 215a F999 sbic 63-0x20,1 |
4448 215c 00C0 rjmp .L292 |
4449 215e 80E0 ldi r24,lo8(EEPromArray+7) |
4450 2160 90E0 ldi r25,hi8(EEPromArray+7) |
4451 2162 92BD out (65)+1-0x20,r25 |
4452 2164 81BD out 65-0x20,r24 |
4453 /* #APP */ |
4454 /* START EEPROM READ CRITICAL SECTION */ |
4455 2166 F89A sbi 31, 0 |
4456 2168 80B5 in r24, 32 |
4457 /* END EEPROM READ CRITICAL SECTION */ |
4458 |
4459 /* #NOAPP */ |
4460 216a 280F add r18,r24 |
4461 216c 311D adc r19,__zero_reg__ |
4462 216e 3093 0000 sts (NeutralAccY)+1,r19 |
4463 2172 2093 0000 sts NeutralAccY,r18 |
4464 .L296: |
4465 2176 F999 sbic 63-0x20,1 |
4466 2178 00C0 rjmp .L296 |
4467 217a 80E0 ldi r24,lo8(EEPromArray+8) |
4468 217c 90E0 ldi r25,hi8(EEPromArray+8) |
4469 217e 92BD out (65)+1-0x20,r25 |
4470 2180 81BD out 65-0x20,r24 |
4471 /* #APP */ |
4472 /* START EEPROM READ CRITICAL SECTION */ |
4473 2182 F89A sbi 31, 0 |
4474 2184 80B5 in r24, 32 |
4475 /* END EEPROM READ CRITICAL SECTION */ |
4476 |
4477 /* #NOAPP */ |
4478 2186 9927 clr r25 |
4479 2188 382F mov r19,r24 |
4480 218a 2227 clr r18 |
4481 .L300: |
4482 218c F999 sbic 63-0x20,1 |
4483 218e 00C0 rjmp .L300 |
4484 2190 80E0 ldi r24,lo8(EEPromArray+9) |
4485 2192 90E0 ldi r25,hi8(EEPromArray+9) |
4486 2194 92BD out (65)+1-0x20,r25 |
4487 2196 81BD out 65-0x20,r24 |
4488 /* #APP */ |
4489 /* START EEPROM READ CRITICAL SECTION */ |
4490 2198 F89A sbi 31, 0 |
4491 219a 80B5 in r24, 32 |
4492 /* END EEPROM READ CRITICAL SECTION */ |
4493 |
4494 /* #NOAPP */ |
4495 219c 280F add r18,r24 |
4496 219e 311D adc r19,__zero_reg__ |
4497 21a0 C901 movw r24,r18 |
4498 21a2 AA27 clr r26 |
4499 21a4 97FD sbrc r25,7 |
4500 21a6 A095 com r26 |
4501 21a8 BA2F mov r27,r26 |
4502 21aa 00C0 rjmp .L307 |
4503 .L309: |
4504 21ac 9095 com r25 |
4505 21ae 8195 neg r24 |
4506 21b0 9F4F sbci r25,lo8(-1) |
4507 21b2 00C0 rjmp .L278 |
4508 .L308: |
4509 21b4 9095 com r25 |
4510 21b6 8195 neg r24 |
4511 21b8 9F4F sbci r25,lo8(-1) |
4512 21ba 00C0 rjmp .L277 |
4513 .L264: |
4514 /* epilogue: frame size=0 */ |
4515 21bc EEE0 ldi r30,14 |
4516 21be CDB7 in r28,__SP_L__ |
4517 21c0 DEB7 in r29,__SP_H__ |
4518 21c2 0C94 0000 jmp __epilogue_restores__+8 |
4519 /* epilogue end (size=5) */ |
4520 /* function SetNeutral size 720 (709) */ |
4522 .global SendMotorData |
4524 SendMotorData: |
4525 /* prologue: frame size=0 */ |
4526 /* prologue end (size=0) */ |
4527 21c6 9091 0000 lds r25,MotorenEin |
4528 21ca 9923 tst r25 |
4529 21cc 01F4 brne .L311 |
4530 21ce 8091 0000 lds r24,MikroKopterFlags |
4531 21d2 8C7F andi r24,lo8(-4) |
4532 21d4 8093 0000 sts MikroKopterFlags,r24 |
4533 .L316: |
4534 21d8 8091 0000 lds r24,PC_MotortestActive |
4535 21dc 8823 tst r24 |
4536 21de 01F4 brne .L321 |
4537 21e0 A92F mov r26,r25 |
4538 21e2 BB27 clr r27 |
4539 21e4 FD01 movw r30,r26 |
4540 21e6 E050 subi r30,lo8(-(MotorTest)) |
4541 21e8 F040 sbci r31,hi8(-(MotorTest)) |
4542 21ea 8083 st Z,r24 |
4543 .L315: |
4544 21ec FD01 movw r30,r26 |
4545 21ee E050 subi r30,lo8(-(MotorTest)) |
4546 21f0 F040 sbci r31,hi8(-(MotorTest)) |
4547 21f2 8081 ld r24,Z |
4548 21f4 A050 subi r26,lo8(-(Motor)) |
4549 21f6 B040 sbci r27,hi8(-(Motor)) |
4550 21f8 8C93 st X,r24 |
4551 21fa 9F5F subi r25,lo8(-(1)) |
4552 21fc 9230 cpi r25,lo8(2) |
4553 21fe 00F0 brlo .L316 |
4554 2200 8091 0000 lds r24,PC_MotortestActive |
4555 2204 8823 tst r24 |
4556 2206 01F0 breq .L318 |
4557 2208 8091 0000 lds r24,PC_MotortestActive |
4558 220c 8150 subi r24,lo8(-(-1)) |
4559 220e 8093 0000 sts PC_MotortestActive,r24 |
4560 2212 00C0 rjmp .L318 |
4561 .L311: |
4562 2214 8091 0000 lds r24,MikroKopterFlags |
4563 2218 8160 ori r24,lo8(1) |
4564 221a 8093 0000 sts MikroKopterFlags,r24 |
4565 221e 00C0 rjmp .L318 |
4566 .L321: |
4567 2220 A92F mov r26,r25 |
4568 2222 BB27 clr r27 |
4569 2224 00C0 rjmp .L315 |
4570 .L318: |
4571 2226 8091 0000 lds r24,Motor |
4572 222a 9927 clr r25 |
4573 222c 9093 0000 sts (DebugOut+26)+1,r25 |
4574 2230 8093 0000 sts DebugOut+26,r24 |
4575 2234 8091 0000 lds r24,Motor+1 |
4576 2238 9927 clr r25 |
4577 223a 9093 0000 sts (DebugOut+28)+1,r25 |
4578 223e 8093 0000 sts DebugOut+28,r24 |
4579 2242 1092 0000 sts twi_state,__zero_reg__ |
4580 2246 1092 0000 sts motor,__zero_reg__ |
4581 224a 0E94 0000 call i2c_start |
4582 /* epilogue: frame size=0 */ |
4583 224e 0895 ret |
4584 /* epilogue end (size=1) */ |
4585 /* function SendMotorData size 69 (68) */ |
4587 .global ParameterZuordnung |
4589 ParameterZuordnung: |
4590 /* prologue: frame size=0 */ |
4591 /* prologue end (size=0) */ |
4592 2250 8091 0000 lds r24,EE_Parameter+11 |
4593 2254 8B3F cpi r24,lo8(-5) |
4594 2256 00F0 brlo .L323 |
4595 2258 8B3F cpi r24,lo8(-5) |
4596 225a 01F4 brne .+2 |
4597 225c 00C0 rjmp .L619 |
4598 225e 8C3F cpi r24,lo8(-4) |
4599 2260 01F4 brne .+2 |
4600 2262 00C0 rjmp .L620 |
4601 2264 8D3F cpi r24,lo8(-3) |
4602 2266 01F4 brne .+2 |
4603 2268 00C0 rjmp .L621 |
4604 226a 8E3F cpi r24,lo8(-2) |
4605 226c 01F4 brne .L331 |
4606 226e 8091 0000 lds r24,Poti4 |
4607 .L323: |
4608 2272 8093 0000 sts Parameter_MaxHoehe,r24 |
4609 .L331: |
4610 2276 8091 0000 lds r24,EE_Parameter+10 |
4611 227a 8B3F cpi r24,lo8(-5) |
4612 227c 00F4 brsh .+2 |
4613 227e 00C0 rjmp .L332 |
4614 2280 8B3F cpi r24,lo8(-5) |
4615 2282 01F4 brne .+2 |
4616 2284 00C0 rjmp .L622 |
4617 2286 8C3F cpi r24,lo8(-4) |
4618 2288 01F4 brne .+2 |
4619 228a 00C0 rjmp .L623 |
4620 228c 8D3F cpi r24,lo8(-3) |
4621 228e 01F4 brne .+2 |
4622 2290 00C0 rjmp .L624 |
4623 2292 8E3F cpi r24,lo8(-2) |
4624 2294 01F4 brne .+2 |
4625 2296 00C0 rjmp .L625 |
4626 2298 8091 0000 lds r24,Parameter_Luftdruck_D |
4627 229c 8823 tst r24 |
4628 229e 01F0 breq .+2 |
4629 22a0 00C0 rjmp .L626 |
4630 .L614: |
4631 22a2 8093 0000 sts Parameter_Luftdruck_D,r24 |
4632 .L342: |
4633 22a6 8091 0000 lds r24,EE_Parameter+12 |
4634 22aa 8B3F cpi r24,lo8(-5) |
4635 22ac 00F4 brsh .+2 |
4636 22ae 00C0 rjmp .L344 |
4637 22b0 8B3F cpi r24,lo8(-5) |
4638 22b2 01F4 brne .+2 |
4639 22b4 00C0 rjmp .L627 |
4640 22b6 8C3F cpi r24,lo8(-4) |
4641 22b8 01F4 brne .+2 |
4642 22ba 00C0 rjmp .L628 |
4643 22bc 8D3F cpi r24,lo8(-3) |
4644 22be 01F4 brne .+2 |
4645 22c0 00C0 rjmp .L629 |
4646 22c2 8E3F cpi r24,lo8(-2) |
4647 22c4 01F4 brne .+2 |
4648 22c6 00C0 rjmp .L630 |
4649 22c8 8091 0000 lds r24,Parameter_Hoehe_P |
4650 22cc 8823 tst r24 |
4651 22ce 01F0 breq .+2 |
4652 22d0 00C0 rjmp .L631 |
4653 .L615: |
4654 22d2 8093 0000 sts Parameter_Hoehe_P,r24 |
4655 .L354: |
4656 22d6 8091 0000 lds r24,EE_Parameter+14 |
4657 22da 8B3F cpi r24,lo8(-5) |
4658 22dc 00F0 brlo .L356 |
4659 22de 8B3F cpi r24,lo8(-5) |
4660 22e0 01F4 brne .+2 |
4661 22e2 00C0 rjmp .L632 |
4662 22e4 8C3F cpi r24,lo8(-4) |
4663 22e6 01F4 brne .+2 |
4664 22e8 00C0 rjmp .L633 |
4665 22ea 8D3F cpi r24,lo8(-3) |
4666 22ec 01F4 brne .+2 |
4667 22ee 00C0 rjmp .L634 |
4668 22f0 8E3F cpi r24,lo8(-2) |
4669 22f2 01F4 brne .L364 |
4670 22f4 8091 0000 lds r24,Poti4 |
4671 .L356: |
4672 22f8 8093 0000 sts Parameter_Hoehe_ACC_Wirkung,r24 |
4673 .L364: |
4674 22fc 8091 0000 lds r24,EE_Parameter+16 |
4675 2300 8B3F cpi r24,lo8(-5) |
4676 2302 00F0 brlo .L365 |
4677 2304 8B3F cpi r24,lo8(-5) |
4678 2306 01F4 brne .+2 |
4679 2308 00C0 rjmp .L635 |
4680 230a 8C3F cpi r24,lo8(-4) |
4681 230c 01F4 brne .+2 |
4682 230e 00C0 rjmp .L636 |
4683 2310 8D3F cpi r24,lo8(-3) |
4684 2312 01F4 brne .+2 |
4685 2314 00C0 rjmp .L637 |
4686 2316 8E3F cpi r24,lo8(-2) |
4687 2318 01F4 brne .L373 |
4688 231a 8091 0000 lds r24,Poti4 |
4689 .L365: |
4690 231e 8093 0000 sts Parameter_Hoehe_GPS_Z,r24 |
4691 .L373: |
4692 2322 8091 0000 lds r24,EE_Parameter+24 |
4693 2326 8B3F cpi r24,lo8(-5) |
4694 2328 00F0 brlo .L374 |
4695 232a 8B3F cpi r24,lo8(-5) |
4696 232c 01F4 brne .+2 |
4697 232e 00C0 rjmp .L638 |
4698 2330 8C3F cpi r24,lo8(-4) |
4699 2332 01F4 brne .+2 |
4700 2334 00C0 rjmp .L639 |
4701 2336 8D3F cpi r24,lo8(-3) |
4702 2338 01F4 brne .+2 |
4703 233a 00C0 rjmp .L640 |
4704 233c 8E3F cpi r24,lo8(-2) |
4705 233e 01F4 brne .L382 |
4706 2340 8091 0000 lds r24,Poti4 |
4707 .L374: |
4708 2344 8093 0000 sts Parameter_KompassWirkung,r24 |
4709 .L382: |
4710 2348 8091 0000 lds r24,EE_Parameter+25 |
4711 234c 8B3F cpi r24,lo8(-5) |
4712 234e 00F4 brsh .+2 |
4713 2350 00C0 rjmp .L383 |
4714 2352 8B3F cpi r24,lo8(-5) |
4715 2354 01F4 brne .+2 |
4716 2356 00C0 rjmp .L641 |
4717 2358 8C3F cpi r24,lo8(-4) |
4718 235a 01F4 brne .+2 |
4719 235c 00C0 rjmp .L642 |
4720 235e 8D3F cpi r24,lo8(-3) |
4721 2360 01F4 brne .+2 |
4722 2362 00C0 rjmp .L643 |
4723 2364 8E3F cpi r24,lo8(-2) |
4724 2366 01F4 brne .+2 |
4725 2368 00C0 rjmp .L644 |
4726 236a 8091 0000 lds r24,Parameter_Gyro_P |
4727 236e 8B30 cpi r24,lo8(11) |
4728 2370 00F4 brsh .+2 |
4729 2372 00C0 rjmp .L645 |
4730 .L392: |
4731 2374 8F3F cpi r24,lo8(-1) |
4732 2376 01F4 brne .L393 |
4733 .L616: |
4734 2378 8093 0000 sts Parameter_Gyro_P,r24 |
4735 .L393: |
4736 237c 8091 0000 lds r24,EE_Parameter+26 |
4737 2380 8B3F cpi r24,lo8(-5) |
4738 2382 00F0 brlo .L395 |
4739 2384 8B3F cpi r24,lo8(-5) |
4740 2386 01F4 brne .+2 |
4741 2388 00C0 rjmp .L646 |
4742 238a 8C3F cpi r24,lo8(-4) |
4743 238c 01F4 brne .+2 |
4744 238e 00C0 rjmp .L647 |
4745 2390 8D3F cpi r24,lo8(-3) |
4746 2392 01F4 brne .+2 |
4747 2394 00C0 rjmp .L648 |
4748 2396 8E3F cpi r24,lo8(-2) |
4749 2398 01F4 brne .L403 |
4750 239a 8091 0000 lds r24,Poti4 |
4751 .L395: |
4752 239e 8093 0000 sts Parameter_Gyro_I,r24 |
4753 .L403: |
4754 23a2 8091 0000 lds r24,EE_Parameter+27 |
4755 23a6 8B3F cpi r24,lo8(-5) |
4756 23a8 00F0 brlo .L404 |
4757 23aa 8B3F cpi r24,lo8(-5) |
4758 23ac 01F4 brne .+2 |
4759 23ae 00C0 rjmp .L649 |
4760 23b0 8C3F cpi r24,lo8(-4) |
4761 23b2 01F4 brne .+2 |
4762 23b4 00C0 rjmp .L650 |
4763 23b6 8D3F cpi r24,lo8(-3) |
4764 23b8 01F4 brne .+2 |
4765 23ba 00C0 rjmp .L651 |
4766 23bc 8E3F cpi r24,lo8(-2) |
4767 23be 01F4 brne .L412 |
4768 23c0 8091 0000 lds r24,Poti4 |
4769 .L404: |
4770 23c4 8093 0000 sts Parameter_Gyro_D,r24 |
4771 .L412: |
4772 23c8 8091 0000 lds r24,EE_Parameter+28 |
4773 23cc 8B3F cpi r24,lo8(-5) |
4774 23ce 00F0 brlo .L413 |
4775 23d0 8B3F cpi r24,lo8(-5) |
4776 23d2 01F4 brne .+2 |
4777 23d4 00C0 rjmp .L652 |
4778 23d6 8C3F cpi r24,lo8(-4) |
4779 23d8 01F4 brne .+2 |
4780 23da 00C0 rjmp .L653 |
4781 23dc 8D3F cpi r24,lo8(-3) |
4782 23de 01F4 brne .+2 |
4783 23e0 00C0 rjmp .L654 |
4784 23e2 8E3F cpi r24,lo8(-2) |
4785 23e4 01F4 brne .L421 |
4786 23e6 8091 0000 lds r24,Poti4 |
4787 .L413: |
4788 23ea 8093 0000 sts Parameter_Gyro_Gier_P,r24 |
4789 .L421: |
4790 23ee 8091 0000 lds r24,EE_Parameter+29 |
4791 23f2 8B3F cpi r24,lo8(-5) |
4792 23f4 00F0 brlo .L422 |
4793 23f6 8B3F cpi r24,lo8(-5) |
4794 23f8 01F4 brne .+2 |
4795 23fa 00C0 rjmp .L655 |
4796 23fc 8C3F cpi r24,lo8(-4) |
4797 23fe 01F4 brne .+2 |
4798 2400 00C0 rjmp .L656 |
4799 2402 8D3F cpi r24,lo8(-3) |
4800 2404 01F4 brne .+2 |
4801 2406 00C0 rjmp .L657 |
4802 2408 8E3F cpi r24,lo8(-2) |
4803 240a 01F4 brne .L430 |
4804 240c 8091 0000 lds r24,Poti4 |
4805 .L422: |
4806 2410 8093 0000 sts Parameter_Gyro_Gier_I,r24 |
4807 .L430: |
4808 2414 2091 0000 lds r18,EE_Parameter+34 |
4809 2418 2B3F cpi r18,lo8(-5) |
4810 241a 00F4 brsh .+2 |
4811 241c 00C0 rjmp .L431 |
4812 241e 2B3F cpi r18,lo8(-5) |
4813 2420 01F4 brne .+2 |
4814 2422 00C0 rjmp .L658 |
4815 2424 2C3F cpi r18,lo8(-4) |
4816 2426 01F4 brne .+2 |
4817 2428 00C0 rjmp .L659 |
4818 242a 2D3F cpi r18,lo8(-3) |
4819 242c 01F4 brne .+2 |
4820 242e 00C0 rjmp .L660 |
4821 2430 2E3F cpi r18,lo8(-2) |
4822 2432 01F4 brne .+2 |
4823 2434 00C0 rjmp .L661 |
4824 2436 2091 0000 lds r18,Parameter_I_Faktor |
4825 243a 8091 0000 lds r24,EE_Parameter+35 |
4826 243e 8B3F cpi r24,lo8(-5) |
4827 2440 00F0 brlo .+2 |
4828 2442 00C0 rjmp .L662 |
4829 .L440: |
4830 2444 8093 0000 sts Parameter_UserParam1,r24 |
4831 .L448: |
4832 2448 8091 0000 lds r24,EE_Parameter+36 |
4833 244c 8B3F cpi r24,lo8(-5) |
4834 244e 00F0 brlo .L449 |
4835 2450 8B3F cpi r24,lo8(-5) |
4836 2452 01F4 brne .+2 |
4837 2454 00C0 rjmp .L663 |
4838 2456 8C3F cpi r24,lo8(-4) |
4839 2458 01F4 brne .+2 |
4840 245a 00C0 rjmp .L664 |
4841 245c 8D3F cpi r24,lo8(-3) |
4842 245e 01F4 brne .+2 |
4843 2460 00C0 rjmp .L665 |
4844 2462 8E3F cpi r24,lo8(-2) |
4845 2464 01F4 brne .L457 |
4846 2466 8091 0000 lds r24,Poti4 |
4847 .L449: |
4848 246a 8093 0000 sts Parameter_UserParam2,r24 |
4849 .L457: |
4850 246e 8091 0000 lds r24,EE_Parameter+37 |
4851 2472 8B3F cpi r24,lo8(-5) |
4852 2474 00F0 brlo .L458 |
4853 2476 8B3F cpi r24,lo8(-5) |
4854 2478 01F4 brne .+2 |
4855 247a 00C0 rjmp .L666 |
4856 247c 8C3F cpi r24,lo8(-4) |
4857 247e 01F4 brne .+2 |
4858 2480 00C0 rjmp .L667 |
4859 2482 8D3F cpi r24,lo8(-3) |
4860 2484 01F4 brne .+2 |
4861 2486 00C0 rjmp .L668 |
4862 2488 8E3F cpi r24,lo8(-2) |
4863 248a 01F4 brne .L466 |
4864 248c 8091 0000 lds r24,Poti4 |
4865 .L458: |
4866 2490 8093 0000 sts Parameter_UserParam3,r24 |
4867 .L466: |
4868 2494 8091 0000 lds r24,EE_Parameter+38 |
4869 2498 8B3F cpi r24,lo8(-5) |
4870 249a 00F0 brlo .L467 |
4871 249c 8B3F cpi r24,lo8(-5) |
4872 249e 01F4 brne .+2 |
4873 24a0 00C0 rjmp .L669 |
4874 24a2 8C3F cpi r24,lo8(-4) |
4875 24a4 01F4 brne .+2 |
4876 24a6 00C0 rjmp .L670 |
4877 24a8 8D3F cpi r24,lo8(-3) |
4878 24aa 01F4 brne .+2 |
4879 24ac 00C0 rjmp .L671 |
4880 24ae 8E3F cpi r24,lo8(-2) |
4881 24b0 01F4 brne .L475 |
4882 24b2 8091 0000 lds r24,Poti4 |
4883 .L467: |
4884 24b6 8093 0000 sts Parameter_UserParam4,r24 |
4885 .L475: |
4886 24ba 8091 0000 lds r24,EE_Parameter+59 |
4887 24be 8B3F cpi r24,lo8(-5) |
4888 24c0 00F0 brlo .L476 |
4889 24c2 8B3F cpi r24,lo8(-5) |
4890 24c4 01F4 brne .+2 |
4891 24c6 00C0 rjmp .L672 |
4892 24c8 8C3F cpi r24,lo8(-4) |
4893 24ca 01F4 brne .+2 |
4894 24cc 00C0 rjmp .L673 |
4895 24ce 8D3F cpi r24,lo8(-3) |
4896 24d0 01F4 brne .+2 |
4897 24d2 00C0 rjmp .L674 |
4898 24d4 8E3F cpi r24,lo8(-2) |
4899 24d6 01F4 brne .L484 |
4900 24d8 8091 0000 lds r24,Poti4 |
4901 .L476: |
4902 24dc 8093 0000 sts Parameter_UserParam5,r24 |
4903 .L484: |
4904 24e0 8091 0000 lds r24,EE_Parameter+60 |
4905 24e4 8B3F cpi r24,lo8(-5) |
4906 24e6 00F0 brlo .L485 |
4907 24e8 8B3F cpi r24,lo8(-5) |
4908 24ea 01F4 brne .+2 |
4909 24ec 00C0 rjmp .L675 |
4910 24ee 8C3F cpi r24,lo8(-4) |
4911 24f0 01F4 brne .+2 |
4912 24f2 00C0 rjmp .L676 |
4913 24f4 8D3F cpi r24,lo8(-3) |
4914 24f6 01F4 brne .+2 |
4915 24f8 00C0 rjmp .L677 |
4916 24fa 8E3F cpi r24,lo8(-2) |
4917 24fc 01F4 brne .L493 |
4918 24fe 8091 0000 lds r24,Poti4 |
4919 .L485: |
4920 2502 8093 0000 sts Parameter_UserParam6,r24 |
4921 .L493: |
4922 2506 8091 0000 lds r24,EE_Parameter+61 |
4923 250a 8B3F cpi r24,lo8(-5) |
4924 250c 00F0 brlo .L494 |
4925 250e 8B3F cpi r24,lo8(-5) |
4926 2510 01F4 brne .+2 |
4927 2512 00C0 rjmp .L678 |
4928 2514 8C3F cpi r24,lo8(-4) |
4929 2516 01F4 brne .+2 |
4930 2518 00C0 rjmp .L679 |
4931 251a 8D3F cpi r24,lo8(-3) |
4932 251c 01F4 brne .+2 |
4933 251e 00C0 rjmp .L680 |
4934 2520 8E3F cpi r24,lo8(-2) |
4935 2522 01F4 brne .L502 |
4936 2524 8091 0000 lds r24,Poti4 |
4937 .L494: |
4938 2528 8093 0000 sts Parameter_UserParam7,r24 |
4939 .L502: |
4940 252c 8091 0000 lds r24,EE_Parameter+62 |
4941 2530 8B3F cpi r24,lo8(-5) |
4942 2532 00F0 brlo .L503 |
4943 2534 8B3F cpi r24,lo8(-5) |
4944 2536 01F4 brne .+2 |
4945 2538 00C0 rjmp .L681 |
4946 253a 8C3F cpi r24,lo8(-4) |
4947 253c 01F4 brne .+2 |
4948 253e 00C0 rjmp .L682 |
4949 2540 8D3F cpi r24,lo8(-3) |
4950 2542 01F4 brne .+2 |
4951 2544 00C0 rjmp .L683 |
4952 2546 8E3F cpi r24,lo8(-2) |
4953 2548 01F4 brne .L511 |
4954 254a 8091 0000 lds r24,Poti4 |
4955 .L503: |
4956 254e 8093 0000 sts Parameter_UserParam8,r24 |
4957 .L511: |
4958 2552 8091 0000 lds r24,EE_Parameter+39 |
4959 2556 8B3F cpi r24,lo8(-5) |
4960 2558 00F0 brlo .L512 |
4961 255a 8B3F cpi r24,lo8(-5) |
4962 255c 01F4 brne .+2 |
4963 255e 00C0 rjmp .L684 |
4964 2560 8C3F cpi r24,lo8(-4) |
4965 2562 01F4 brne .+2 |
4966 2564 00C0 rjmp .L685 |
4967 2566 8D3F cpi r24,lo8(-3) |
4968 2568 01F4 brne .+2 |
4969 256a 00C0 rjmp .L686 |
4970 256c 8E3F cpi r24,lo8(-2) |
4971 256e 01F4 brne .L520 |
4972 2570 8091 0000 lds r24,Poti4 |
4973 .L512: |
4974 2574 8093 0000 sts Parameter_ServoNickControl,r24 |
4975 .L520: |
4976 2578 8091 0000 lds r24,EE_Parameter+43 |
4977 257c 8B3F cpi r24,lo8(-5) |
4978 257e 00F0 brlo .L521 |
4979 2580 8B3F cpi r24,lo8(-5) |
4980 2582 01F4 brne .+2 |
4981 2584 00C0 rjmp .L687 |
4982 2586 8C3F cpi r24,lo8(-4) |
4983 2588 01F4 brne .+2 |
4984 258a 00C0 rjmp .L688 |
4985 258c 8D3F cpi r24,lo8(-3) |
4986 258e 01F4 brne .+2 |
4987 2590 00C0 rjmp .L689 |
4988 2592 8E3F cpi r24,lo8(-2) |
4989 2594 01F4 brne .L529 |
4990 2596 8091 0000 lds r24,Poti4 |
4991 .L521: |
4992 259a 8093 0000 sts Parameter_ServoRollControl,r24 |
4993 .L529: |
4994 259e 8091 0000 lds r24,EE_Parameter+48 |
4995 25a2 8B3F cpi r24,lo8(-5) |
4996 25a4 00F0 brlo .L530 |
4997 25a6 8B3F cpi r24,lo8(-5) |
4998 25a8 01F4 brne .+2 |
4999 25aa 00C0 rjmp .L690 |
5000 25ac 8C3F cpi r24,lo8(-4) |
5001 25ae 01F4 brne .+2 |
5002 25b0 00C0 rjmp .L691 |
5003 25b2 8D3F cpi r24,lo8(-3) |
5004 25b4 01F4 brne .+2 |
5005 25b6 00C0 rjmp .L692 |
5006 25b8 8E3F cpi r24,lo8(-2) |
5007 25ba 01F4 brne .L538 |
5008 25bc 8091 0000 lds r24,Poti4 |
5009 .L530: |
5010 25c0 8093 0000 sts Parameter_LoopGasLimit,r24 |
5011 .L538: |
5012 25c4 8091 0000 lds r24,EE_Parameter+51 |
5013 25c8 8B3F cpi r24,lo8(-5) |
5014 25ca 00F0 brlo .L539 |
5015 25cc 8B3F cpi r24,lo8(-5) |
5016 25ce 01F4 brne .+2 |
5017 25d0 00C0 rjmp .L693 |
5018 25d2 8C3F cpi r24,lo8(-4) |
5019 25d4 01F4 brne .+2 |
5020 25d6 00C0 rjmp .L694 |
5021 25d8 8D3F cpi r24,lo8(-3) |
5022 25da 01F4 brne .+2 |
5023 25dc 00C0 rjmp .L695 |
5024 25de 8E3F cpi r24,lo8(-2) |
5025 25e0 01F4 brne .L547 |
5026 25e2 8091 0000 lds r24,Poti4 |
5027 .L539: |
5028 25e6 8093 0000 sts Parameter_AchsKopplung1,r24 |
5029 .L547: |
5030 25ea 8091 0000 lds r24,EE_Parameter+52 |
5031 25ee 8B3F cpi r24,lo8(-5) |
5032 25f0 00F0 brlo .L548 |
5033 25f2 8B3F cpi r24,lo8(-5) |
5034 25f4 01F4 brne .+2 |
5035 25f6 00C0 rjmp .L696 |
5036 25f8 8C3F cpi r24,lo8(-4) |
5037 25fa 01F4 brne .+2 |
5038 25fc 00C0 rjmp .L697 |
5039 25fe 8D3F cpi r24,lo8(-3) |
5040 2600 01F4 brne .+2 |
5041 2602 00C0 rjmp .L698 |
5042 2604 8E3F cpi r24,lo8(-2) |
5043 2606 01F4 brne .L556 |
5044 2608 8091 0000 lds r24,Poti4 |
5045 .L548: |
5046 260c 8093 0000 sts Parameter_AchsKopplung2,r24 |
5047 .L556: |
5048 2610 8091 0000 lds r24,EE_Parameter+53 |
5049 2614 8B3F cpi r24,lo8(-5) |
5050 2616 00F0 brlo .L557 |
5051 2618 8B3F cpi r24,lo8(-5) |
5052 261a 01F4 brne .+2 |
5053 261c 00C0 rjmp .L699 |
5054 261e 8C3F cpi r24,lo8(-4) |
5055 2620 01F4 brne .+2 |
5056 2622 00C0 rjmp .L700 |
5057 2624 8D3F cpi r24,lo8(-3) |
5058 2626 01F4 brne .+2 |
5059 2628 00C0 rjmp .L701 |
5060 262a 8E3F cpi r24,lo8(-2) |
5061 262c 01F4 brne .L565 |
5062 262e 8091 0000 lds r24,Poti4 |
5063 .L557: |
5064 2632 8093 0000 sts Parameter_CouplingYawCorrection,r24 |
5065 .L565: |
5066 2636 8091 0000 lds r24,EE_Parameter+58 |
5067 263a 8B3F cpi r24,lo8(-5) |
5068 263c 00F0 brlo .L566 |
5069 263e 8B3F cpi r24,lo8(-5) |
5070 2640 01F4 brne .+2 |
5071 2642 00C0 rjmp .L702 |
5072 2644 8C3F cpi r24,lo8(-4) |
5073 2646 01F4 brne .+2 |
5074 2648 00C0 rjmp .L703 |
5075 264a 8D3F cpi r24,lo8(-3) |
5076 264c 01F4 brne .+2 |
5077 264e 00C0 rjmp .L704 |
5078 2650 8E3F cpi r24,lo8(-2) |
5079 2652 01F4 brne .L574 |
5080 2654 8091 0000 lds r24,Poti4 |
5081 .L566: |
5082 2658 8093 0000 sts Parameter_DynamicStability,r24 |
5083 .L574: |
5084 265c 8091 0000 lds r24,EE_Parameter+64 |
5085 2660 8B3F cpi r24,lo8(-5) |
5086 2662 00F4 brsh .+2 |
5087 2664 00C0 rjmp .L575 |
5088 2666 8B3F cpi r24,lo8(-5) |
5089 2668 01F4 brne .+2 |
5090 266a 00C0 rjmp .L705 |
5091 266c 8C3F cpi r24,lo8(-4) |
5092 266e 01F4 brne .+2 |
5093 2670 00C0 rjmp .L706 |
5094 2672 8D3F cpi r24,lo8(-3) |
5095 2674 01F4 brne .+2 |
5096 2676 00C0 rjmp .L707 |
5097 2678 8E3F cpi r24,lo8(-2) |
5098 267a 01F4 brne .+2 |
5099 267c 00C0 rjmp .L708 |
5100 267e 8091 0000 lds r24,Parameter_J16Timing |
5101 2682 8230 cpi r24,lo8(2) |
5102 2684 00F4 brsh .+2 |
5103 2686 00C0 rjmp .L709 |
5104 .L584: |
5105 2688 8F3F cpi r24,lo8(-1) |
5106 268a 01F4 brne .L585 |
5107 .L617: |
5108 268c 8093 0000 sts Parameter_J16Timing,r24 |
5109 .L585: |
5110 2690 8091 0000 lds r24,EE_Parameter+66 |
5111 2694 8B3F cpi r24,lo8(-5) |
5112 2696 00F4 brsh .+2 |
5113 2698 00C0 rjmp .L587 |
5114 269a 8B3F cpi r24,lo8(-5) |
5115 269c 01F4 brne .+2 |
5116 269e 00C0 rjmp .L710 |
5117 26a0 8C3F cpi r24,lo8(-4) |
5118 26a2 01F4 brne .+2 |
5119 26a4 00C0 rjmp .L711 |
5120 26a6 8D3F cpi r24,lo8(-3) |
5121 26a8 01F4 brne .+2 |
5122 26aa 00C0 rjmp .L712 |
5123 26ac 8E3F cpi r24,lo8(-2) |
5124 26ae 01F4 brne .+2 |
5125 26b0 00C0 rjmp .L713 |
5126 26b2 8091 0000 lds r24,Parameter_J17Timing |
5127 26b6 8230 cpi r24,lo8(2) |
5128 26b8 00F4 brsh .+2 |
5129 26ba 00C0 rjmp .L714 |
5130 .L596: |
5131 26bc 8F3F cpi r24,lo8(-1) |
5132 26be 01F4 brne .L597 |
5133 .L618: |
5134 26c0 8093 0000 sts Parameter_J17Timing,r24 |
5135 .L597: |
5136 26c4 8091 0000 lds r24,EE_Parameter+85 |
5137 26c8 8B3F cpi r24,lo8(-5) |
5138 26ca 00F0 brlo .L599 |
5139 26cc 8B3F cpi r24,lo8(-5) |
5140 26ce 01F4 brne .+2 |
5141 26d0 00C0 rjmp .L715 |
5142 26d2 8C3F cpi r24,lo8(-4) |
5143 26d4 01F4 brne .+2 |
5144 26d6 00C0 rjmp .L716 |
5145 26d8 8D3F cpi r24,lo8(-3) |
5146 26da 01F4 brne .+2 |
5147 26dc 00C0 rjmp .L717 |
5148 26de 8E3F cpi r24,lo8(-2) |
5149 26e0 01F0 breq .+2 |
5150 26e2 00C0 rjmp .L607 |
5151 26e4 8091 0000 lds r24,Poti4 |
5152 .L599: |
5153 26e8 8093 0000 sts Parameter_ExternalControl,r24 |
5154 26ec 00C0 rjmp .L607 |
5155 .L622: |
5156 26ee 8091 0000 lds r24,Poti1 |
5157 .L332: |
5158 26f2 8093 0000 sts Parameter_Luftdruck_D,r24 |
5159 26f6 8823 tst r24 |
5160 26f8 01F4 brne .+2 |
5161 26fa 00C0 rjmp .L614 |
5162 .L626: |
5163 26fc 8436 cpi r24,lo8(100) |
5164 26fe 00F4 brsh .+2 |
5165 2700 00C0 rjmp .L342 |
5166 2702 84E6 ldi r24,lo8(100) |
5167 2704 00C0 rjmp .L614 |
5168 .L627: |
5169 2706 8091 0000 lds r24,Poti1 |
5170 .L344: |
5171 270a 8093 0000 sts Parameter_Hoehe_P,r24 |
5172 270e 8823 tst r24 |
5173 2710 01F4 brne .+2 |
5174 2712 00C0 rjmp .L615 |
5175 .L631: |
5176 2714 8436 cpi r24,lo8(100) |
5177 2716 00F4 brsh .+2 |
5178 2718 00C0 rjmp .L354 |
5179 271a 84E6 ldi r24,lo8(100) |
5180 271c 00C0 rjmp .L615 |
5181 .L641: |
5182 271e 8091 0000 lds r24,Poti1 |
5183 .L383: |
5184 2722 8093 0000 sts Parameter_Gyro_P,r24 |
5185 2726 8B30 cpi r24,lo8(11) |
5186 2728 00F0 brlo .+2 |
5187 272a 00C0 rjmp .L392 |
5188 .L645: |
5189 272c 8AE0 ldi r24,lo8(10) |
5190 272e 00C0 rjmp .L616 |
5191 .L658: |
5192 2730 2091 0000 lds r18,Poti1 |
5193 .L431: |
5194 2734 2093 0000 sts Parameter_I_Faktor,r18 |
5195 2738 8091 0000 lds r24,EE_Parameter+35 |
5196 273c 8B3F cpi r24,lo8(-5) |
5197 273e 00F4 brsh .+2 |
5198 2740 00C0 rjmp .L440 |
5199 .L662: |
5200 2742 8B3F cpi r24,lo8(-5) |
5201 2744 01F4 brne .+2 |
5202 2746 00C0 rjmp .L718 |
5203 2748 8C3F cpi r24,lo8(-4) |
5204 274a 01F4 brne .+2 |
5205 274c 00C0 rjmp .L719 |
5206 274e 8D3F cpi r24,lo8(-3) |
5207 2750 01F4 brne .+2 |
5208 2752 00C0 rjmp .L720 |
5209 2754 8E3F cpi r24,lo8(-2) |
5210 2756 01F0 breq .+2 |
5211 2758 00C0 rjmp .L448 |
5212 275a 8091 0000 lds r24,Poti4 |
5213 275e 00C0 rjmp .L440 |
5214 .L705: |
5215 2760 8091 0000 lds r24,Poti1 |
5216 .L575: |
5217 2764 8093 0000 sts Parameter_J16Timing,r24 |
5218 2768 8230 cpi r24,lo8(2) |
5219 276a 00F0 brlo .+2 |
5220 276c 00C0 rjmp .L584 |
5221 .L709: |
5222 276e 81E0 ldi r24,lo8(1) |
5223 2770 00C0 rjmp .L617 |
5224 .L710: |
5225 2772 8091 0000 lds r24,Poti1 |
5226 .L587: |
5227 2776 8093 0000 sts Parameter_J17Timing,r24 |
5228 277a 8230 cpi r24,lo8(2) |
5229 277c 00F0 brlo .+2 |
5230 277e 00C0 rjmp .L596 |
5231 .L714: |
5232 2780 81E0 ldi r24,lo8(1) |
5233 2782 00C0 rjmp .L618 |
5234 .L666: |
5235 2784 8091 0000 lds r24,Poti1 |
5236 2788 00C0 rjmp .L458 |
5237 .L669: |
5238 278a 8091 0000 lds r24,Poti1 |
5239 278e 00C0 rjmp .L467 |
5240 .L672: |
5241 2790 8091 0000 lds r24,Poti1 |
5242 2794 00C0 rjmp .L476 |
5243 .L675: |
5244 2796 8091 0000 lds r24,Poti1 |
5245 279a 00C0 rjmp .L485 |
5246 .L678: |
5247 279c 8091 0000 lds r24,Poti1 |
5248 27a0 00C0 rjmp .L494 |
5249 .L681: |
5250 27a2 8091 0000 lds r24,Poti1 |
5251 27a6 00C0 rjmp .L503 |
5252 .L684: |
5253 27a8 8091 0000 lds r24,Poti1 |
5254 27ac 00C0 rjmp .L512 |
5255 .L687: |
5256 27ae 8091 0000 lds r24,Poti1 |
5257 27b2 00C0 rjmp .L521 |
5258 .L690: |
5259 27b4 8091 0000 lds r24,Poti1 |
5260 27b8 00C0 rjmp .L530 |
5261 .L693: |
5262 27ba 8091 0000 lds r24,Poti1 |
5263 27be 00C0 rjmp .L539 |
5264 .L696: |
5265 27c0 8091 0000 lds r24,Poti1 |
5266 27c4 00C0 rjmp .L548 |
5267 .L699: |
5268 27c6 8091 0000 lds r24,Poti1 |
5269 27ca 00C0 rjmp .L557 |
5270 .L702: |
5271 27cc 8091 0000 lds r24,Poti1 |
5272 27d0 00C0 rjmp .L566 |
5273 .L715: |
5274 27d2 8091 0000 lds r24,Poti1 |
5275 27d6 00C0 rjmp .L599 |
5276 .L646: |
5277 27d8 8091 0000 lds r24,Poti1 |
5278 27dc 00C0 rjmp .L395 |
5279 .L649: |
5280 27de 8091 0000 lds r24,Poti1 |
5281 27e2 00C0 rjmp .L404 |
5282 .L652: |
5283 27e4 8091 0000 lds r24,Poti1 |
5284 27e8 00C0 rjmp .L413 |
5285 .L655: |
5286 27ea 8091 0000 lds r24,Poti1 |
5287 27ee 00C0 rjmp .L422 |
5288 .L718: |
5289 27f0 8091 0000 lds r24,Poti1 |
5290 27f4 00C0 rjmp .L440 |
5291 .L663: |
5292 27f6 8091 0000 lds r24,Poti1 |
5293 27fa 00C0 rjmp .L449 |
5294 .L635: |
5295 27fc 8091 0000 lds r24,Poti1 |
5296 2800 00C0 rjmp .L365 |
5297 .L638: |
5298 2802 8091 0000 lds r24,Poti1 |
5299 2806 00C0 rjmp .L374 |
5300 .L619: |
5301 2808 8091 0000 lds r24,Poti1 |
5302 280c 00C0 rjmp .L323 |
5303 .L632: |
5304 280e 8091 0000 lds r24,Poti1 |
5305 2812 00C0 rjmp .L356 |
5306 .L717: |
5307 2814 8091 0000 lds r24,Poti3 |
5308 2818 00C0 rjmp .L599 |
5309 .L674: |
5310 281a 8091 0000 lds r24,Poti3 |
5311 281e 00C0 rjmp .L476 |
5312 .L677: |
5313 2820 8091 0000 lds r24,Poti3 |
5314 2824 00C0 rjmp .L485 |
5315 .L720: |
5316 2826 8091 0000 lds r24,Poti3 |
5317 282a 00C0 rjmp .L440 |
5318 .L668: |
5319 282c 8091 0000 lds r24,Poti3 |
5320 2830 00C0 rjmp .L458 |
5321 .L671: |
5322 2832 8091 0000 lds r24,Poti3 |
5323 2836 00C0 rjmp .L467 |
5324 .L660: |
5325 2838 2091 0000 lds r18,Poti3 |
5326 283c 00C0 rjmp .L431 |
5327 .L665: |
5328 283e 8091 0000 lds r24,Poti3 |
5329 2842 00C0 rjmp .L449 |
5330 .L624: |
5331 2844 8091 0000 lds r24,Poti3 |
5332 2848 00C0 rjmp .L332 |
5333 .L629: |
5334 284a 8091 0000 lds r24,Poti3 |
5335 284e 00C0 rjmp .L344 |
5336 .L634: |
5337 2850 8091 0000 lds r24,Poti3 |
5338 2854 00C0 rjmp .L356 |
5339 .L621: |
5340 2856 8091 0000 lds r24,Poti3 |
5341 285a 00C0 rjmp .L323 |
5342 .L640: |
5343 285c 8091 0000 lds r24,Poti3 |
5344 2860 00C0 rjmp .L374 |
5345 .L648: |
5346 2862 8091 0000 lds r24,Poti3 |
5347 2866 00C0 rjmp .L395 |
5348 .L692: |
5349 2868 8091 0000 lds r24,Poti3 |
5350 286c 00C0 rjmp .L530 |
5351 .L695: |
5352 286e 8091 0000 lds r24,Poti3 |
5353 2872 00C0 rjmp .L539 |
5354 .L686: |
5355 2874 8091 0000 lds r24,Poti3 |
5356 2878 00C0 rjmp .L512 |
5357 .L689: |
5358 287a 8091 0000 lds r24,Poti3 |
5359 287e 00C0 rjmp .L521 |
5360 .L657: |
5361 2880 8091 0000 lds r24,Poti3 |
5362 2884 00C0 rjmp .L422 |
5363 .L654: |
5364 2886 8091 0000 lds r24,Poti3 |
5365 288a 00C0 rjmp .L413 |
5366 .L643: |
5367 288c 8091 0000 lds r24,Poti3 |
5368 2890 00C0 rjmp .L383 |
5369 .L637: |
5370 2892 8091 0000 lds r24,Poti3 |
5371 2896 00C0 rjmp .L365 |
5372 .L651: |
5373 2898 8091 0000 lds r24,Poti3 |
5374 289c 00C0 rjmp .L404 |
5375 .L698: |
5376 289e 8091 0000 lds r24,Poti3 |
5377 28a2 00C0 rjmp .L548 |
5378 .L701: |
5379 28a4 8091 0000 lds r24,Poti3 |
5380 28a8 00C0 rjmp .L557 |
5381 .L680: |
5382 28aa 8091 0000 lds r24,Poti3 |
5383 28ae 00C0 rjmp .L494 |
5384 .L683: |
5385 28b0 8091 0000 lds r24,Poti3 |
5386 28b4 00C0 rjmp .L503 |
5387 .L704: |
5388 28b6 8091 0000 lds r24,Poti3 |
5389 28ba 00C0 rjmp .L566 |
5390 .L707: |
5391 28bc 8091 0000 lds r24,Poti3 |
5392 28c0 00C0 rjmp .L575 |
5393 .L712: |
5394 28c2 8091 0000 lds r24,Poti3 |
5395 28c6 00C0 rjmp .L587 |
5396 .L650: |
5397 28c8 8091 0000 lds r24,Poti2 |
5398 28cc 00C0 rjmp .L404 |
5399 .L653: |
5400 28ce 8091 0000 lds r24,Poti2 |
5401 28d2 00C0 rjmp .L413 |
5402 .L636: |
5403 28d4 8091 0000 lds r24,Poti2 |
5404 28d8 00C0 rjmp .L365 |
5405 .L697: |
5406 28da 8091 0000 lds r24,Poti2 |
5407 28de 00C0 rjmp .L548 |
5408 .L706: |
5409 28e0 8091 0000 lds r24,Poti2 |
5410 28e4 00C0 rjmp .L575 |
5411 .L711: |
5412 28e6 8091 0000 lds r24,Poti2 |
5413 28ea 00C0 rjmp .L587 |
5414 .L700: |
5415 28ec 8091 0000 lds r24,Poti2 |
5416 28f0 00C0 rjmp .L557 |
5417 .L679: |
5418 28f2 8091 0000 lds r24,Poti2 |
5419 28f6 00C0 rjmp .L494 |
5420 .L682: |
5421 28f8 8091 0000 lds r24,Poti2 |
5422 28fc 00C0 rjmp .L503 |
5423 .L703: |
5424 28fe 8091 0000 lds r24,Poti2 |
5425 2902 00C0 rjmp .L566 |
5426 .L685: |
5427 2904 8091 0000 lds r24,Poti2 |
5428 2908 00C0 rjmp .L512 |
5429 .L688: |
5430 290a 8091 0000 lds r24,Poti2 |
5431 290e 00C0 rjmp .L521 |
5432 .L691: |
5433 2910 8091 0000 lds r24,Poti2 |
5434 2914 00C0 rjmp .L530 |
5435 .L694: |
5436 2916 8091 0000 lds r24,Poti2 |
5437 291a 00C0 rjmp .L539 |
5438 .L623: |
5439 291c 8091 0000 lds r24,Poti2 |
5440 2920 00C0 rjmp .L332 |
5441 .L659: |
5442 2922 2091 0000 lds r18,Poti2 |
5443 2926 00C0 rjmp .L431 |
5444 .L664: |
5445 2928 8091 0000 lds r24,Poti2 |
5446 292c 00C0 rjmp .L449 |
5447 .L639: |
5448 292e 8091 0000 lds r24,Poti2 |
5449 2932 00C0 rjmp .L374 |
5450 .L647: |
5451 2934 8091 0000 lds r24,Poti2 |
5452 2938 00C0 rjmp .L395 |
5453 .L642: |
5454 293a 8091 0000 lds r24,Poti2 |
5455 293e 00C0 rjmp .L383 |
5456 .L628: |
5457 2940 8091 0000 lds r24,Poti2 |
5458 2944 00C0 rjmp .L344 |
5459 .L633: |
5460 2946 8091 0000 lds r24,Poti2 |
5461 294a 00C0 rjmp .L356 |
5462 .L620: |
5463 294c 8091 0000 lds r24,Poti2 |
5464 2950 00C0 rjmp .L323 |
5465 .L676: |
5466 2952 8091 0000 lds r24,Poti2 |
5467 2956 00C0 rjmp .L485 |
5468 .L656: |
5469 2958 8091 0000 lds r24,Poti2 |
5470 295c 00C0 rjmp .L422 |
5471 .L719: |
5472 295e 8091 0000 lds r24,Poti2 |
5473 2962 00C0 rjmp .L440 |
5474 .L667: |
5475 2964 8091 0000 lds r24,Poti2 |
5476 2968 00C0 rjmp .L458 |
5477 .L670: |
5478 296a 8091 0000 lds r24,Poti2 |
5479 296e 00C0 rjmp .L467 |
5480 .L716: |
5481 2970 8091 0000 lds r24,Poti2 |
5482 2974 00C0 rjmp .L599 |
5483 .L673: |
5484 2976 8091 0000 lds r24,Poti2 |
5485 297a 00C0 rjmp .L476 |
5486 .L630: |
5487 297c 8091 0000 lds r24,Poti4 |
5488 2980 00C0 rjmp .L344 |
5489 .L661: |
5490 2982 2091 0000 lds r18,Poti4 |
5491 2986 00C0 rjmp .L431 |
5492 .L625: |
5493 2988 8091 0000 lds r24,Poti4 |
5494 298c 00C0 rjmp .L332 |
5495 .L644: |
5496 298e 8091 0000 lds r24,Poti4 |
5497 2992 00C0 rjmp .L383 |
5498 .L708: |
5499 2994 8091 0000 lds r24,Poti4 |
5500 2998 00C0 rjmp .L575 |
5501 .L713: |
5502 299a 8091 0000 lds r24,Poti4 |
5503 299e 00C0 rjmp .L587 |
5504 .L607: |
5505 29a0 3327 clr r19 |
5506 29a2 2F5F subi r18,lo8(-(1)) |
5507 29a4 3F4F sbci r19,hi8(-(1)) |
5508 29a6 8CE3 ldi r24,lo8(10300) |
5509 29a8 98E2 ldi r25,hi8(10300) |
5510 29aa B901 movw r22,r18 |
5511 29ac 0E94 0000 call __divmodhi4 |
5512 29b0 7093 0000 sts (Ki)+1,r23 |
5513 29b4 6093 0000 sts Ki,r22 |
5514 29b8 8091 0000 lds r24,EE_Parameter+22 |
5515 29bc 8093 0000 sts MAX_GAS,r24 |
5516 29c0 8091 0000 lds r24,EE_Parameter+21 |
5517 29c4 8093 0000 sts MIN_GAS,r24 |
5518 /* epilogue: frame size=0 */ |
5519 29c8 0895 ret |
5520 /* epilogue end (size=1) */ |
5521 /* function ParameterZuordnung size 957 (956) */ |
5523 .lcomm SummeNick.0,4 |
5524 .lcomm SummeRoll.1,4 |
5525 .lcomm sollGier.2,4 |
5526 .lcomm tmp_long.3,4 |
5527 .lcomm tmp_long2.4,4 |
5528 .lcomm IntegralFehlerNick.5,4 |
5529 .lcomm IntegralFehlerRoll.6,4 |
5530 .lcomm RcLostTimer.7,2 |
5531 .lcomm delay_neutral.8,1 |
5532 .lcomm delay_einschalten.9,1 |
5533 .lcomm delay_ausschalten.10,1 |
5534 .lcomm TimerWerteausgabe.11,1 |
5535 .lcomm NeueKompassRichtungMerken.12,1 |
5536 .lcomm ausgleichNick.13,4 |
5537 .lcomm ausgleichRoll.14,4 |
5538 .lcomm stick_nick.15,2 |
5539 .lcomm stick_roll.16,2 |
5540 .lcomm cnt.17,2 |
5541 .lcomm last_n_p.18,1 |
5542 .lcomm last_n_n.19,1 |
5543 .lcomm last_r_p.20,1 |
5544 .lcomm last_r_n.21,1 |
5545 .lcomm MittelIntegralNick_Alt.22,4 |
5546 .lcomm MittelIntegralRoll_Alt.23,4 |
5547 .lcomm HeightTrimming.24,2 |
5548 .lcomm FilterHCGas.25,2 |
5549 .data |
5552 StickGasHoover.26: |
5553 0045 7800 .word 120 |
5554 .lcomm HooverGas.27,2 |
5555 .lcomm HooverGasMin.28,2 |
5558 HooverGasMax.29: |
5559 0047 FF03 .word 1023 |
5560 .lcomm HooverGasFilter.30,4 |
5563 delay.31: |
5564 0049 64 .byte 100 |
5565 .lcomm BaroAtUpperLimit.32,1 |
5566 .lcomm BaroAtLowerLimit.33,1 |
5567 .lcomm HeightTrimmingFlag.34,1 |
5568 .text |
5569 .global MotorRegler |
5571 MotorRegler: |
5572 /* prologue: frame size=40 */ |
5573 29ca A8E2 ldi r26,lo8(40) |
5574 29cc B0E0 ldi r27,hi8(40) |
5575 29ce E0E0 ldi r30,pm_lo8(1f) |
5576 29d0 F0E0 ldi r31,pm_hi8(1f) |
5577 29d2 0C94 0000 jmp __prologue_saves__+0 |
5578 1: |
5579 /* prologue end (size=6) */ |
5580 29d6 8091 0000 lds r24,LoadHandler |
5581 29da 8150 subi r24,lo8(-(-1)) |
5582 29dc 01F4 brne .L1168 |
5583 29de 85E0 ldi r24,lo8(5) |
5584 .L1168: |
5585 29e0 8093 0000 sts LoadHandler,r24 |
5586 29e4 0E94 0000 call Mittelwert |
5587 29e8 2091 0000 lds r18,PlatinenVersion |
5588 29ec 2C30 cpi r18,lo8(12) |
5589 29ee 00F0 brlo .+2 |
5590 29f0 00C0 rjmp .L723 |
5591 29f2 299A sbi 37-0x20,1 |
5592 .L724: |
5593 29f4 E090 0000 lds r14,StickGas |
5594 29f8 F090 0000 lds r15,(StickGas)+1 |
5595 29fc FA82 std Y+2,r15 |
5596 29fe E982 std Y+1,r14 |
5597 2a00 8091 0000 lds r24,MIN_GAS |
5598 2a04 9927 clr r25 |
5599 2a06 0A96 adiw r24,10 |
5600 2a08 E816 cp r14,r24 |
5601 2a0a F906 cpc r15,r25 |
5602 2a0c 04F4 brge .L725 |
5603 2a0e 9A83 std Y+2,r25 |
5604 2a10 8983 std Y+1,r24 |
5605 .L725: |
5606 2a12 8091 0000 lds r24,SenderOkay |
5607 2a16 8436 cpi r24,lo8(100) |
5608 2a18 00F0 brlo .+2 |
5609 2a1a 00C0 rjmp .L726 |
5610 2a1c 8091 0000 lds r24,RcLostTimer.7 |
5611 2a20 9091 0000 lds r25,(RcLostTimer.7)+1 |
5612 2a24 0097 sbiw r24,0 |
5613 2a26 01F0 breq .+2 |
5614 2a28 00C0 rjmp .L1211 |
5615 2a2a 1092 0000 sts MotorenEin,__zero_reg__ |
5616 2a2e 8091 0000 lds r24,MikroKopterFlags |
5617 2a32 8F7E andi r24,lo8(-17) |
5618 2a34 8093 0000 sts MikroKopterFlags,r24 |
5619 2a38 2A30 cpi r18,lo8(10) |
5620 2a3a 01F4 brne .+2 |
5621 2a3c 00C0 rjmp .L730 |
5622 .L1232: |
5623 2a3e 2431 cpi r18,lo8(20) |
5624 2a40 01F4 brne .+2 |
5625 2a42 00C0 rjmp .L730 |
5626 2a44 2898 cbi 37-0x20,0 |
5627 2a46 8091 0000 lds r24,modell_fliegt |
5628 2a4a 9091 0000 lds r25,(modell_fliegt)+1 |
5629 2a4e 895E subi r24,lo8(1001) |
5630 2a50 9340 sbci r25,hi8(1001) |
5631 2a52 00F4 brsh .+2 |
5632 2a54 00C0 rjmp .L732 |
5633 .L1233: |
5634 2a56 8091 0000 lds r24,EE_Parameter+31 |
5635 2a5a 282F mov r18,r24 |
5636 2a5c 3327 clr r19 |
5637 2a5e 3A83 std Y+2,r19 |
5638 2a60 2983 std Y+1,r18 |
5639 2a62 8091 0000 lds r24,MikroKopterFlags |
5640 2a66 8061 ori r24,lo8(16) |
5641 2a68 8093 0000 sts MikroKopterFlags,r24 |
5642 2a6c 8091 0000 lds r24,EE_Parameter |
5643 2a70 A82F mov r26,r24 |
5644 2a72 BB27 clr r27 |
5645 2a74 AA0F add r26,r26 |
5646 2a76 BB1F adc r27,r27 |
5647 2a78 FD01 movw r30,r26 |
5648 2a7a E050 subi r30,lo8(-(PPM_diff)) |
5649 2a7c F040 sbci r31,hi8(-(PPM_diff)) |
5650 2a7e 1182 std Z+1,__zero_reg__ |
5651 2a80 1082 st Z,__zero_reg__ |
5652 2a82 8091 0000 lds r24,EE_Parameter+1 |
5653 2a86 282F mov r18,r24 |
5654 2a88 3327 clr r19 |
5655 2a8a 220F add r18,r18 |
5656 2a8c 331F adc r19,r19 |
5657 2a8e C901 movw r24,r18 |
5658 2a90 8050 subi r24,lo8(-(PPM_diff)) |
5659 2a92 9040 sbci r25,hi8(-(PPM_diff)) |
5660 2a94 FC01 movw r30,r24 |
5661 2a96 1182 std Z+1,__zero_reg__ |
5662 2a98 1082 st Z,__zero_reg__ |
5663 2a9a A050 subi r26,lo8(-(PPM_in)) |
5664 2a9c B040 sbci r27,hi8(-(PPM_in)) |
5665 2a9e 1196 adiw r26,1 |
5666 2aa0 1C92 st X,__zero_reg__ |
5667 2aa2 1E92 st -X,__zero_reg__ |
5668 2aa4 2050 subi r18,lo8(-(PPM_in)) |
5669 2aa6 3040 sbci r19,hi8(-(PPM_in)) |
5670 2aa8 D901 movw r26,r18 |
5671 2aaa 1196 adiw r26,1 |
5672 2aac 1C92 st X,__zero_reg__ |
5673 2aae 1E92 st -X,__zero_reg__ |
5674 2ab0 8091 0000 lds r24,EE_Parameter+3 |
5675 2ab4 E82F mov r30,r24 |
5676 2ab6 FF27 clr r31 |
5677 2ab8 EE0F add r30,r30 |
5678 2aba FF1F adc r31,r31 |
5679 2abc E050 subi r30,lo8(-(PPM_in)) |
5680 2abe F040 sbci r31,hi8(-(PPM_in)) |
5681 2ac0 1182 std Z+1,__zero_reg__ |
5682 2ac2 1082 st Z,__zero_reg__ |
5683 .L734: |
5684 2ac4 8091 0000 lds r24,NewPpmData |
5685 2ac8 8150 subi r24,lo8(-(-1)) |
5686 2aca 8093 0000 sts NewPpmData,r24 |
5687 2ace 8091 0000 lds r24,NewPpmData |
5688 2ad2 8F3F cpi r24,lo8(-1) |
5689 2ad4 01F0 breq .L808 |
5690 2ad6 8091 0000 lds r24,MikroKopterFlags |
5691 2ada 84FF sbrs r24,4 |
5692 2adc 00C0 rjmp .L1149 |
5693 .L808: |
5694 2ade 0E94 0000 call ParameterZuordnung |
5695 2ae2 8091 0000 lds r24,stick_nick.15 |
5696 2ae6 9091 0000 lds r25,(stick_nick.15)+1 |
5697 2aea 9C01 movw r18,r24 |
5698 2aec 220F lsl r18 |
5699 2aee 331F rol r19 |
5700 2af0 280F add r18,r24 |
5701 2af2 391F adc r19,r25 |
5702 2af4 0091 0000 lds r16,EE_Parameter |
5703 2af8 A02F mov r26,r16 |
5704 2afa BB27 clr r27 |
5705 2afc AA0F add r26,r26 |
5706 2afe BB1F adc r27,r27 |
5707 2b00 FD01 movw r30,r26 |
5708 2b02 E050 subi r30,lo8(-(PPM_in)) |
5709 2b04 F040 sbci r31,hi8(-(PPM_in)) |
5710 2b06 E090 0000 lds r14,EE_Parameter+18 |
5711 2b0a 6E2D mov r22,r14 |
5712 2b0c 7727 clr r23 |
5713 2b0e 8081 ld r24,Z |
5714 2b10 9181 ldd r25,Z+1 |
5715 2b12 869F mul r24,r22 |
5716 2b14 A001 movw r20,r0 |
5717 2b16 879F mul r24,r23 |
5718 2b18 500D add r21,r0 |
5719 2b1a 969F mul r25,r22 |
5720 2b1c 500D add r21,r0 |
5721 2b1e 1124 clr r1 |
5722 2b20 240F add r18,r20 |
5723 2b22 351F adc r19,r21 |
5724 2b24 37FF sbrs r19,7 |
5725 2b26 00C0 rjmp .+4 |
5726 2b28 0C94 0000 jmp .L1212 |
5727 .L809: |
5728 2b2c 3595 asr r19 |
5729 2b2e 2795 ror r18 |
5730 2b30 3595 asr r19 |
5731 2b32 2795 ror r18 |
5732 2b34 A050 subi r26,lo8(-(PPM_diff)) |
5733 2b36 B040 sbci r27,hi8(-(PPM_diff)) |
5734 2b38 8091 0000 lds r24,EE_Parameter+19 |
5735 2b3c 482F mov r20,r24 |
5736 2b3e 5527 clr r21 |
5737 2b40 8D91 ld r24,X+ |
5738 2b42 9C91 ld r25,X |
5739 2b44 849F mul r24,r20 |
5740 2b46 D001 movw r26,r0 |
5741 2b48 859F mul r24,r21 |
5742 2b4a B00D add r27,r0 |
5743 2b4c 949F mul r25,r20 |
5744 2b4e B00D add r27,r0 |
5745 2b50 1124 clr r1 |
5746 2b52 CD01 movw r24,r26 |
5747 2b54 820F add r24,r18 |
5748 2b56 931F adc r25,r19 |
5749 2b58 9093 0000 sts (stick_nick.15)+1,r25 |
5750 2b5c 8093 0000 sts stick_nick.15,r24 |
5751 2b60 9093 0000 sts (StickNick)+1,r25 |
5752 2b64 8093 0000 sts StickNick,r24 |
5753 2b68 8091 0000 lds r24,stick_roll.16 |
5754 2b6c 9091 0000 lds r25,(stick_roll.16)+1 |
5755 2b70 9C01 movw r18,r24 |
5756 2b72 220F lsl r18 |
5757 2b74 331F rol r19 |
5758 2b76 280F add r18,r24 |
5759 2b78 391F adc r19,r25 |
5760 2b7a 1091 0000 lds r17,EE_Parameter+1 |
5761 2b7e A12F mov r26,r17 |
5762 2b80 BB27 clr r27 |
5763 2b82 AA0F add r26,r26 |
5764 2b84 BB1F adc r27,r27 |
5765 2b86 FD01 movw r30,r26 |
5766 2b88 E050 subi r30,lo8(-(PPM_in)) |
5767 2b8a F040 sbci r31,hi8(-(PPM_in)) |
5768 2b8c 8081 ld r24,Z |
5769 2b8e 9181 ldd r25,Z+1 |
5770 2b90 869F mul r24,r22 |
5771 2b92 F001 movw r30,r0 |
5772 2b94 879F mul r24,r23 |
5773 2b96 F00D add r31,r0 |
5774 2b98 969F mul r25,r22 |
5775 2b9a F00D add r31,r0 |
5776 2b9c 1124 clr r1 |
5777 2b9e 2E0F add r18,r30 |
5778 2ba0 3F1F adc r19,r31 |
5779 2ba2 37FF sbrs r19,7 |
5780 2ba4 00C0 rjmp .+4 |
5781 2ba6 0C94 0000 jmp .L1213 |
5782 .L810: |
5783 2baa 3595 asr r19 |
5784 2bac 2795 ror r18 |
5785 2bae 3595 asr r19 |
5786 2bb0 2795 ror r18 |
5787 2bb2 A050 subi r26,lo8(-(PPM_diff)) |
5788 2bb4 B040 sbci r27,hi8(-(PPM_diff)) |
5789 2bb6 8D91 ld r24,X+ |
5790 2bb8 9C91 ld r25,X |
5791 2bba 849F mul r24,r20 |
5792 2bbc B001 movw r22,r0 |
5793 2bbe 859F mul r24,r21 |
5794 2bc0 700D add r23,r0 |
5795 2bc2 949F mul r25,r20 |
5796 2bc4 700D add r23,r0 |
5797 2bc6 1124 clr r1 |
5798 2bc8 CB01 movw r24,r22 |
5799 2bca 820F add r24,r18 |
5800 2bcc 931F adc r25,r19 |
5801 2bce 9093 0000 sts (stick_roll.16)+1,r25 |
5802 2bd2 8093 0000 sts stick_roll.16,r24 |
5803 2bd6 9093 0000 sts (StickRoll)+1,r25 |
5804 2bda 8093 0000 sts StickRoll,r24 |
5805 2bde 8091 0000 lds r24,EE_Parameter+3 |
5806 2be2 E82F mov r30,r24 |
5807 2be4 FF27 clr r31 |
5808 2be6 EE0F add r30,r30 |
5809 2be8 FF1F adc r31,r31 |
5810 2bea E050 subi r30,lo8(-(PPM_in)) |
5811 2bec F040 sbci r31,hi8(-(PPM_in)) |
5812 2bee 8081 ld r24,Z |
5813 2bf0 9181 ldd r25,Z+1 |
5814 2bf2 9095 com r25 |
5815 2bf4 8195 neg r24 |
5816 2bf6 9F4F sbci r25,lo8(-1) |
5817 2bf8 8330 cpi r24,3 |
5818 2bfa 9105 cpc r25,__zero_reg__ |
5819 2bfc 04F4 brge .+4 |
5820 2bfe 0C94 0000 jmp .L811 |
5821 2c02 0297 sbiw r24,2 |
5822 .L1201: |
5823 2c04 9093 0000 sts (StickGier)+1,r25 |
5824 2c08 8093 0000 sts StickGier,r24 |
5825 .L812: |
5826 2c0c 8091 0000 lds r24,EE_Parameter+2 |
5827 2c10 E82F mov r30,r24 |
5828 2c12 FF27 clr r31 |
5829 2c14 EE0F add r30,r30 |
5830 2c16 FF1F adc r31,r31 |
5831 2c18 E050 subi r30,lo8(-(PPM_in)) |
5832 2c1a F040 sbci r31,hi8(-(PPM_in)) |
5833 2c1c C080 ld r12,Z |
5834 2c1e D180 ldd r13,Z+1 |
5835 2c20 88E7 ldi r24,lo8(120) |
5836 2c22 90E0 ldi r25,hi8(120) |
5837 2c24 C80E add r12,r24 |
5838 2c26 D91E adc r13,r25 |
5839 2c28 8091 0000 lds r24,Parameter_Gyro_P |
5840 2c2c 9927 clr r25 |
5841 2c2e AA27 clr r26 |
5842 2c30 97FD sbrc r25,7 |
5843 2c32 A095 com r26 |
5844 2c34 BA2F mov r27,r26 |
5845 2c36 BC01 movw r22,r24 |
5846 2c38 CD01 movw r24,r26 |
5847 2c3a 0E94 0000 call __floatsisf |
5848 2c3e DC01 movw r26,r24 |
5849 2c40 CB01 movw r24,r22 |
5850 2c42 20E0 ldi r18,lo8(0x41200000) |
5851 2c44 30E0 ldi r19,hi8(0x41200000) |
5852 2c46 40E2 ldi r20,hlo8(0x41200000) |
5853 2c48 51E4 ldi r21,hhi8(0x41200000) |
5854 2c4a BC01 movw r22,r24 |
5855 2c4c CD01 movw r24,r26 |
5856 2c4e 0E94 0000 call __addsf3 |
5857 2c52 DC01 movw r26,r24 |
5858 2c54 CB01 movw r24,r22 |
5859 2c56 BC01 movw r22,r24 |
5860 2c58 CD01 movw r24,r26 |
5861 2c5a 0E94 0000 call __fixunssfsi |
5862 2c5e DC01 movw r26,r24 |
5863 2c60 CB01 movw r24,r22 |
5864 2c62 8093 0000 sts GyroFaktor,r24 |
5865 2c66 F090 0000 lds r15,Parameter_Gyro_I |
5866 2c6a 8091 0000 lds r24,Parameter_Gyro_Gier_P |
5867 2c6e 9927 clr r25 |
5868 2c70 AA27 clr r26 |
5869 2c72 97FD sbrc r25,7 |
5870 2c74 A095 com r26 |
5871 2c76 BA2F mov r27,r26 |
5872 2c78 BC01 movw r22,r24 |
5873 2c7a CD01 movw r24,r26 |
5874 2c7c 0E94 0000 call __floatsisf |
5875 2c80 DC01 movw r26,r24 |
5876 2c82 CB01 movw r24,r22 |
5877 2c84 20E0 ldi r18,lo8(0x41200000) |
5878 2c86 30E0 ldi r19,hi8(0x41200000) |
5879 2c88 40E2 ldi r20,hlo8(0x41200000) |
5880 2c8a 51E4 ldi r21,hhi8(0x41200000) |
5881 2c8c BC01 movw r22,r24 |
5882 2c8e CD01 movw r24,r26 |
5883 2c90 0E94 0000 call __addsf3 |
5884 2c94 DC01 movw r26,r24 |
5885 2c96 CB01 movw r24,r22 |
5886 2c98 BC01 movw r22,r24 |
5887 2c9a CD01 movw r24,r26 |
5888 2c9c 0E94 0000 call __fixunssfsi |
5889 2ca0 DC01 movw r26,r24 |
5890 2ca2 CB01 movw r24,r22 |
5891 2ca4 8093 0000 sts GyroFaktorGier,r24 |
5892 2ca8 9091 0000 lds r25,Parameter_Gyro_Gier_I |
5893 2cac 9093 0000 sts IntegralFaktorGier,r25 |
5894 2cb0 8091 0000 lds r24,ExternControl+10 |
5895 2cb4 80FF sbrs r24,0 |
5896 2cb6 00C0 rjmp .L1175 |
5897 2cb8 8091 0000 lds r24,Parameter_ExternalControl |
5898 2cbc 8138 cpi r24,lo8(-127) |
5899 2cbe 00F0 brlo .+4 |
5900 2cc0 0C94 0000 jmp .L1214 |
5901 .L1175: |
5902 2cc4 D092 0000 sts (StickGas)+1,r13 |
5903 2cc8 C092 0000 sts StickGas,r12 |
5904 .L815: |
5905 2ccc 8091 0000 lds r24,StickGas |
5906 2cd0 9091 0000 lds r25,(StickGas)+1 |
5907 2cd4 97FF sbrs r25,7 |
5908 2cd6 00C0 rjmp .+4 |
5909 2cd8 0C94 0000 jmp .L1215 |
5910 .L817: |
5911 2cdc 5091 0000 lds r21,EE_Parameter+8 |
5912 2ce0 588B std Y+16,r21 |
5913 2ce2 52FD sbrc r21,2 |
5914 2ce4 00C0 rjmp .+4 |
5915 2ce6 0C94 0000 jmp .L1176 |
5916 2cea 1092 0000 sts IntegralFaktor,__zero_reg__ |
5917 2cee 4091 0000 lds r20,StickNick |
5918 2cf2 5091 0000 lds r21,(StickNick)+1 |
5919 2cf6 CA01 movw r24,r20 |
5920 2cf8 57FF sbrs r21,7 |
5921 2cfa 00C0 rjmp .+4 |
5922 2cfc 0C94 0000 jmp .L1216 |
5923 .L820: |
5924 2d00 9595 asr r25 |
5925 2d02 8795 ror r24 |
5926 2d04 9595 asr r25 |
5927 2d06 8795 ror r24 |
5928 2d08 97FF sbrs r25,7 |
5929 2d0a 00C0 rjmp .+4 |
5930 2d0c 0C94 0000 jmp .L1217 |
5931 .L821: |
5932 2d10 2091 0000 lds r18,MaxStickNick |
5933 2d14 3091 0000 lds r19,(MaxStickNick)+1 |
5934 2d18 2817 cp r18,r24 |
5935 2d1a 3907 cpc r19,r25 |
5936 2d1c 04F0 brlt .+4 |
5937 2d1e 0C94 0000 jmp .L819 |
5938 2d22 CA01 movw r24,r20 |
5939 2d24 57FF sbrs r21,7 |
5940 2d26 00C0 rjmp .+4 |
5941 2d28 0C94 0000 jmp .L1218 |
5942 .L822: |
5943 2d2c 97FF sbrs r25,7 |
5944 2d2e 00C0 rjmp .+4 |
5945 2d30 0C94 0000 jmp .L1219 |
5946 .L823: |
5947 2d34 BC01 movw r22,r24 |
5948 2d36 7595 asr r23 |
5949 2d38 6795 ror r22 |
5950 2d3a 7595 asr r23 |
5951 2d3c 6795 ror r22 |
5952 2d3e 6536 cpi r22,101 |
5953 2d40 7105 cpc r23,__zero_reg__ |
5954 2d42 04F4 brge .+4 |
5955 2d44 0C94 0000 jmp .L825 |
5956 2d48 64E6 ldi r22,lo8(100) |
5957 2d4a 70E0 ldi r23,hi8(100) |
5958 2d4c 4091 0000 lds r20,StickRoll |
5959 2d50 5091 0000 lds r21,(StickRoll)+1 |
5960 2d54 CA01 movw r24,r20 |
5961 2d56 57FD sbrc r21,7 |
5962 2d58 00C0 rjmp .+4 |
5963 2d5a 0C94 0000 jmp .L827 |
5964 .L1266: |
5965 2d5e 0396 adiw r24,3 |
5966 2d60 9595 asr r25 |
5967 2d62 8795 ror r24 |
5968 2d64 9595 asr r25 |
5969 2d66 8795 ror r24 |
5970 2d68 97FD sbrc r25,7 |
5971 2d6a 00C0 rjmp .+4 |
5972 2d6c 0C94 0000 jmp .L828 |
5973 .L1267: |
5974 2d70 9095 com r25 |
5975 2d72 8195 neg r24 |
5976 2d74 9F4F sbci r25,lo8(-1) |
5977 2d76 2091 0000 lds r18,MaxStickRoll |
5978 2d7a 3091 0000 lds r19,(MaxStickRoll)+1 |
5979 2d7e 2817 cp r18,r24 |
5980 2d80 3907 cpc r19,r25 |
5981 2d82 04F4 brge .+4 |
5982 2d84 0C94 0000 jmp .L1220 |
5983 .L826: |
5984 2d88 2150 subi r18,lo8(-(-1)) |
5985 2d8a 3040 sbci r19,hi8(-(-1)) |
5986 .L832: |
5987 2d8c 8091 0000 lds r24,MikroKopterFlags |
5988 2d90 84FD sbrc r24,4 |
5989 2d92 00C0 rjmp .+4 |
5990 2d94 0C94 0000 jmp .L1177 |
5991 .L1270: |
5992 2d98 1092 0000 sts (MaxStickNick)+1,__zero_reg__ |
5993 2d9c 1092 0000 sts MaxStickNick,__zero_reg__ |
5994 2da0 1092 0000 sts (MaxStickRoll)+1,__zero_reg__ |
5995 2da4 1092 0000 sts MaxStickRoll,__zero_reg__ |
5996 .L833: |
5997 2da8 E12F mov r30,r17 |
5998 2daa FF27 clr r31 |
5999 2dac EE0F add r30,r30 |
6000 2dae FF1F adc r31,r31 |
6001 2db0 E050 subi r30,lo8(-(PPM_in)) |
6002 2db2 F040 sbci r31,hi8(-(PPM_in)) |
6003 2db4 4091 0000 lds r20,EE_Parameter+49 |
6004 2db8 242F mov r18,r20 |
6005 2dba 3327 clr r19 |
6006 2dbc 8081 ld r24,Z |
6007 2dbe 9181 ldd r25,Z+1 |
6008 2dc0 2817 cp r18,r24 |
6009 2dc2 3907 cpc r19,r25 |
6010 2dc4 04F4 brge .L834 |
6011 2dc6 8091 0000 lds r24,EE_Parameter+86 |
6012 2dca 82FF sbrs r24,2 |
6013 2dcc 00C0 rjmp .+4 |
6014 2dce 0C94 0000 jmp .L1221 |
6015 .L834: |
6016 2dd2 E12F mov r30,r17 |
6017 2dd4 FF27 clr r31 |
6018 2dd6 EE0F add r30,r30 |
6019 2dd8 FF1F adc r31,r31 |
6020 2dda E050 subi r30,lo8(-(PPM_in)) |
6021 2ddc F040 sbci r31,hi8(-(PPM_in)) |
6022 2dde 842F mov r24,r20 |
6023 2de0 9927 clr r25 |
6024 2de2 2091 0000 lds r18,EE_Parameter+50 |
6025 2de6 821B sub r24,r18 |
6026 2de8 9109 sbc r25,__zero_reg__ |
6027 2dea 2081 ld r18,Z |
6028 2dec 3181 ldd r19,Z+1 |
6029 2dee 2817 cp r18,r24 |
6030 2df0 3907 cpc r19,r25 |
6031 2df2 04F4 brge .L835 |
6032 2df4 1092 0000 sts Looping_Links,__zero_reg__ |
6033 .L835: |
6034 2df8 E12F mov r30,r17 |
6035 2dfa FF27 clr r31 |
6036 2dfc EE0F add r30,r30 |
6037 2dfe FF1F adc r31,r31 |
6038 2e00 E050 subi r30,lo8(-(PPM_in)) |
6039 2e02 F040 sbci r31,hi8(-(PPM_in)) |
6040 2e04 842F mov r24,r20 |
6041 2e06 9927 clr r25 |
6042 2e08 2227 clr r18 |
6043 2e0a 3327 clr r19 |
6044 2e0c 281B sub r18,r24 |
6045 2e0e 390B sbc r19,r25 |
6046 2e10 8081 ld r24,Z |
6047 2e12 9181 ldd r25,Z+1 |
6048 2e14 8217 cp r24,r18 |
6049 2e16 9307 cpc r25,r19 |
6050 2e18 04F4 brge .L837 |
6051 2e1a 8091 0000 lds r24,EE_Parameter+86 |
6052 2e1e 83FF sbrs r24,3 |
6053 2e20 00C0 rjmp .+4 |
6054 2e22 0C94 0000 jmp .L1222 |
6055 .L837: |
6056 2e26 8091 0000 lds r24,Looping_Rechts |
6057 2e2a 8823 tst r24 |
6058 2e2c 01F0 breq .L838 |
6059 2e2e E12F mov r30,r17 |
6060 2e30 FF27 clr r31 |
6061 2e32 EE0F add r30,r30 |
6062 2e34 FF1F adc r31,r31 |
6063 2e36 E050 subi r30,lo8(-(PPM_in)) |
6064 2e38 F040 sbci r31,hi8(-(PPM_in)) |
6065 2e3a 8091 0000 lds r24,EE_Parameter+50 |
6066 2e3e 9927 clr r25 |
6067 2e40 841B sub r24,r20 |
6068 2e42 9109 sbc r25,__zero_reg__ |
6069 2e44 2081 ld r18,Z |
6070 2e46 3181 ldd r19,Z+1 |
6071 2e48 8217 cp r24,r18 |
6072 2e4a 9307 cpc r25,r19 |
6073 2e4c 04F4 brge .+4 |
6074 2e4e 0C94 0000 jmp .L1223 |
6075 .L838: |
6076 2e52 E02F mov r30,r16 |
6077 2e54 FF27 clr r31 |
6078 2e56 EE0F add r30,r30 |
6079 2e58 FF1F adc r31,r31 |
6080 2e5a E050 subi r30,lo8(-(PPM_in)) |
6081 2e5c F040 sbci r31,hi8(-(PPM_in)) |
6082 2e5e 242F mov r18,r20 |
6083 2e60 3327 clr r19 |
6084 2e62 8081 ld r24,Z |
6085 2e64 9181 ldd r25,Z+1 |
6086 2e66 2817 cp r18,r24 |
6087 2e68 3907 cpc r19,r25 |
6088 2e6a 04F4 brge .L841 |
6089 2e6c 8091 0000 lds r24,EE_Parameter+86 |
6090 2e70 80FF sbrs r24,0 |
6091 2e72 00C0 rjmp .+4 |
6092 2e74 0C94 0000 jmp .L1224 |
6093 .L841: |
6094 2e78 5091 0000 lds r21,Looping_Oben |
6095 2e7c 5523 tst r21 |
6096 2e7e 01F0 breq .L842 |
6097 2e80 E02F mov r30,r16 |
6098 2e82 FF27 clr r31 |
6099 2e84 EE0F add r30,r30 |
6100 2e86 FF1F adc r31,r31 |
6101 2e88 E050 subi r30,lo8(-(PPM_in)) |
6102 2e8a F040 sbci r31,hi8(-(PPM_in)) |
6103 2e8c 842F mov r24,r20 |
6104 2e8e 9927 clr r25 |
6105 2e90 2091 0000 lds r18,EE_Parameter+50 |
6106 2e94 821B sub r24,r18 |
6107 2e96 9109 sbc r25,__zero_reg__ |
6108 2e98 2081 ld r18,Z |
6109 2e9a 3181 ldd r19,Z+1 |
6110 2e9c 2817 cp r18,r24 |
6111 2e9e 3907 cpc r19,r25 |
6112 2ea0 04F4 brge .+4 |
6113 2ea2 0C94 0000 jmp .L1225 |
6114 .L842: |
6115 2ea6 E02F mov r30,r16 |
6116 2ea8 FF27 clr r31 |
6117 2eaa EE0F add r30,r30 |
6118 2eac FF1F adc r31,r31 |
6119 2eae E050 subi r30,lo8(-(PPM_in)) |
6120 2eb0 F040 sbci r31,hi8(-(PPM_in)) |
6121 2eb2 842F mov r24,r20 |
6122 2eb4 9927 clr r25 |
6123 2eb6 2227 clr r18 |
6124 2eb8 3327 clr r19 |
6125 2eba 281B sub r18,r24 |
6126 2ebc 390B sbc r19,r25 |
6127 2ebe 8081 ld r24,Z |
6128 2ec0 9181 ldd r25,Z+1 |
6129 2ec2 8217 cp r24,r18 |
6130 2ec4 9307 cpc r25,r19 |
6131 2ec6 04F4 brge .L845 |
6132 2ec8 8091 0000 lds r24,EE_Parameter+86 |
6133 2ecc 81FF sbrs r24,1 |
6134 2ece 00C0 rjmp .+4 |
6135 2ed0 0C94 0000 jmp .L1226 |
6136 .L845: |
6137 2ed4 8091 0000 lds r24,Looping_Unten |
6138 2ed8 8823 tst r24 |
6139 2eda 01F0 breq .L846 |
6140 2edc E02F mov r30,r16 |
6141 2ede FF27 clr r31 |
6142 2ee0 EE0F add r30,r30 |
6143 2ee2 FF1F adc r31,r31 |
6144 2ee4 E050 subi r30,lo8(-(PPM_in)) |
6145 2ee6 F040 sbci r31,hi8(-(PPM_in)) |
6146 2ee8 8091 0000 lds r24,EE_Parameter+50 |
6147 2eec 9927 clr r25 |
6148 2eee 841B sub r24,r20 |
6149 2ef0 9109 sbc r25,__zero_reg__ |
6150 2ef2 2081 ld r18,Z |
6151 2ef4 3181 ldd r19,Z+1 |
6152 2ef6 8217 cp r24,r18 |
6153 2ef8 9307 cpc r25,r19 |
6154 2efa 04F4 brge .+4 |
6155 2efc 0C94 0000 jmp .L1227 |
6156 .L846: |
6157 2f00 8091 0000 lds r24,Looping_Links |
6158 2f04 8823 tst r24 |
6159 2f06 01F4 brne .L850 |
6160 2f08 8091 0000 lds r24,Looping_Rechts |
6161 2f0c 8823 tst r24 |
6162 2f0e 01F4 brne .+4 |
6163 2f10 0C94 0000 jmp .L849 |
6164 .L850: |
6165 2f14 91E0 ldi r25,lo8(1) |
6166 .L851: |
6167 2f16 5523 tst r21 |
6168 2f18 01F4 brne .L853 |
6169 2f1a 8091 0000 lds r24,Looping_Unten |
6170 2f1e 8823 tst r24 |
6171 2f20 01F4 brne .+4 |
6172 2f22 0C94 0000 jmp .L852 |
6173 .L853: |
6174 2f26 81E0 ldi r24,lo8(1) |
6175 2f28 8093 0000 sts Looping_Nick,r24 |
6176 2f2c 1092 0000 sts Looping_Roll,__zero_reg__ |
6177 2f30 1092 0000 sts Looping_Links,__zero_reg__ |
6178 2f34 1092 0000 sts Looping_Rechts,__zero_reg__ |
6179 2f38 00C0 rjmp .L807 |
6180 .L723: |
6181 2f3a 2998 cbi 37-0x20,1 |
6182 2f3c 00C0 rjmp .L724 |
6183 .L726: |
6184 2f3e 8091 0000 lds r24,SenderOkay |
6185 2f42 8D38 cpi r24,lo8(-115) |
6186 2f44 00F4 brsh .+2 |
6187 2f46 00C0 rjmp .L734 |
6188 2f48 8091 0000 lds r24,MikroKopterFlags |
6189 2f4c 8F7E andi r24,lo8(-17) |
6190 2f4e 8093 0000 sts MikroKopterFlags,r24 |
6191 2f52 9091 0000 lds r25,EE_Parameter+32 |
6192 2f56 82E3 ldi r24,lo8(50) |
6193 2f58 989F mul r25,r24 |
6194 2f5a C001 movw r24,r0 |
6195 2f5c 1124 clr r1 |
6196 2f5e 9093 0000 sts (RcLostTimer.7)+1,r25 |
6197 2f62 8093 0000 sts RcLostTimer.7,r24 |
6198 2f66 E981 ldd r30,Y+1 |
6199 2f68 FA81 ldd r31,Y+2 |
6200 2f6a B997 sbiw r30,41 |
6201 2f6c 04F0 brlt .+4 |
6202 2f6e 0C94 0000 jmp .L1228 |
6203 .L1147: |
6204 2f72 8091 0000 lds r24,modell_fliegt |
6205 2f76 9091 0000 lds r25,(modell_fliegt)+1 |
6206 .L736: |
6207 2f7a 8F3F cpi r24,255 |
6208 2f7c 9105 cpc r25,__zero_reg__ |
6209 2f7e 01F0 breq .+6 |
6210 2f80 00F0 brlo .+4 |
6211 2f82 0C94 0000 jmp .L738 |
6212 2f86 1092 0000 sts SummeNick.0,__zero_reg__ |
6213 2f8a 1092 0000 sts (SummeNick.0)+1,__zero_reg__ |
6214 2f8e 1092 0000 sts (SummeNick.0)+2,__zero_reg__ |
6215 2f92 1092 0000 sts (SummeNick.0)+3,__zero_reg__ |
6216 2f96 1092 0000 sts SummeRoll.1,__zero_reg__ |
6217 2f9a 1092 0000 sts (SummeRoll.1)+1,__zero_reg__ |
6218 2f9e 1092 0000 sts (SummeRoll.1)+2,__zero_reg__ |
6219 2fa2 1092 0000 sts (SummeRoll.1)+3,__zero_reg__ |
6220 2fa6 8A3F cpi r24,250 |
6221 2fa8 9105 cpc r25,__zero_reg__ |
6222 2faa 01F4 brne .+4 |
6223 2fac 0C94 0000 jmp .L1229 |
6224 .L740: |
6225 2fb0 3091 0000 lds r19,EE_Parameter+2 |
6226 2fb4 E32F mov r30,r19 |
6227 2fb6 FF27 clr r31 |
6228 2fb8 EE0F add r30,r30 |
6229 2fba FF1F adc r31,r31 |
6230 2fbc E050 subi r30,lo8(-(PPM_in)) |
6231 2fbe F040 sbci r31,hi8(-(PPM_in)) |
6232 2fc0 8081 ld r24,Z |
6233 2fc2 9181 ldd r25,Z+1 |
6234 2fc4 8135 cpi r24,81 |
6235 2fc6 9105 cpc r25,__zero_reg__ |
6236 2fc8 04F4 brge .+2 |
6237 2fca 00C0 rjmp .L741 |
6238 2fcc 4091 0000 lds r20,MotorenEin |
6239 2fd0 4423 tst r20 |
6240 2fd2 01F0 breq .+2 |
6241 2fd4 00C0 rjmp .L741 |
6242 2fd6 8091 0000 lds r24,EE_Parameter+3 |
6243 2fda E82F mov r30,r24 |
6244 2fdc FF27 clr r31 |
6245 2fde EE0F add r30,r30 |
6246 2fe0 FF1F adc r31,r31 |
6247 2fe2 E050 subi r30,lo8(-(PPM_in)) |
6248 2fe4 F040 sbci r31,hi8(-(PPM_in)) |
6249 2fe6 8081 ld r24,Z |
6250 2fe8 9181 ldd r25,Z+1 |
6251 2fea 8C34 cpi r24,76 |
6252 2fec 9105 cpc r25,__zero_reg__ |
6253 2fee 04F4 brge .+4 |
6254 2ff0 0C94 0000 jmp .L742 |
6255 2ff4 8091 0000 lds r24,delay_neutral.8 |
6256 2ff8 8F5F subi r24,lo8(-(1)) |
6257 2ffa 893C cpi r24,lo8(-55) |
6258 2ffc 00F4 brsh .+4 |
6259 2ffe 0C94 0000 jmp .L1170 |
6260 3002 2C30 cpi r18,lo8(12) |
6261 3004 00F0 brlo .+4 |
6262 3006 0C94 0000 jmp .L744 |
6263 300a 2998 cbi 37-0x20,1 |
6264 .L745: |
6265 300c 1092 0000 sts MotorenEin,__zero_reg__ |
6266 3010 1092 0000 sts delay_neutral.8,__zero_reg__ |
6267 3014 1092 0000 sts (modell_fliegt)+1,__zero_reg__ |
6268 3018 1092 0000 sts modell_fliegt,__zero_reg__ |
6269 301c 0091 0000 lds r16,EE_Parameter |
6270 3020 E02F mov r30,r16 |
6271 3022 FF27 clr r31 |
6272 3024 EE0F add r30,r30 |
6273 3026 FF1F adc r31,r31 |
6274 3028 E050 subi r30,lo8(-(PPM_in)) |
6275 302a F040 sbci r31,hi8(-(PPM_in)) |
6276 302c 8081 ld r24,Z |
6277 302e 9181 ldd r25,Z+1 |
6278 3030 8734 cpi r24,71 |
6279 3032 9105 cpc r25,__zero_reg__ |
6280 3034 04F0 brlt .+4 |
6281 3036 0C94 0000 jmp .L1148 |
6282 303a 1091 0000 lds r17,EE_Parameter+1 |
6283 303e E12F mov r30,r17 |
6284 3040 FF27 clr r31 |
6285 3042 EE0F add r30,r30 |
6286 3044 FF1F adc r31,r31 |
6287 3046 E050 subi r30,lo8(-(PPM_in)) |
6288 3048 F040 sbci r31,hi8(-(PPM_in)) |
6289 304a 8081 ld r24,Z |
6290 304c 9181 ldd r25,Z+1 |
6291 304e 0190 ld __tmp_reg__,Z+ |
6292 3050 F081 ld r31,Z |
6293 3052 E02D mov r30,__tmp_reg__ |
6294 3054 F7FF sbrs r31,7 |
6295 3056 00C0 rjmp .+4 |
6296 3058 0C94 0000 jmp .L1230 |
6297 .L748: |
6298 305c E734 cpi r30,71 |
6299 305e F105 cpc r31,__zero_reg__ |
6300 3060 04F4 brge .+2 |
6301 3062 00C0 rjmp .L746 |
6302 .L747: |
6303 3064 21E0 ldi r18,lo8(1) |
6304 3066 A12F mov r26,r17 |
6305 3068 BB27 clr r27 |
6306 306a AA0F add r26,r26 |
6307 306c BB1F adc r27,r27 |
6308 306e A050 subi r26,lo8(-(PPM_in)) |
6309 3070 B040 sbci r27,hi8(-(PPM_in)) |
6310 3072 8D91 ld r24,X+ |
6311 3074 9C91 ld r25,X |
6312 3076 1197 sbiw r26,1 |
6313 3078 8734 cpi r24,71 |
6314 307a 9105 cpc r25,__zero_reg__ |
6315 307c 04F0 brlt .L749 |
6316 307e E02F mov r30,r16 |
6317 3080 FF27 clr r31 |
6318 3082 EE0F add r30,r30 |
6319 3084 FF1F adc r31,r31 |
6320 3086 E050 subi r30,lo8(-(PPM_in)) |
6321 3088 F040 sbci r31,hi8(-(PPM_in)) |
6322 308a 8081 ld r24,Z |
6323 308c 9181 ldd r25,Z+1 |
6324 .L749: |
6325 308e 8D91 ld r24,X+ |
6326 3090 9C91 ld r25,X |
6327 3092 8734 cpi r24,71 |
6328 3094 9105 cpc r25,__zero_reg__ |
6329 3096 04F0 brlt .L750 |
6330 3098 E02F mov r30,r16 |
6331 309a FF27 clr r31 |
6332 309c EE0F add r30,r30 |
6333 309e FF1F adc r31,r31 |
6334 30a0 E050 subi r30,lo8(-(PPM_in)) |
6335 30a2 F040 sbci r31,hi8(-(PPM_in)) |
6336 30a4 8081 ld r24,Z |
6337 30a6 9181 ldd r25,Z+1 |
6338 30a8 8734 cpi r24,71 |
6339 30aa 9105 cpc r25,__zero_reg__ |
6340 30ac 04F0 brlt .L750 |
6341 30ae 22E0 ldi r18,lo8(2) |
6342 .L750: |
6343 30b0 E12F mov r30,r17 |
6344 30b2 FF27 clr r31 |
6345 30b4 EE0F add r30,r30 |
6346 30b6 FF1F adc r31,r31 |
6347 30b8 E050 subi r30,lo8(-(PPM_in)) |
6348 30ba F040 sbci r31,hi8(-(PPM_in)) |
6349 30bc 8081 ld r24,Z |
6350 30be 9181 ldd r25,Z+1 |
6351 30c0 8634 cpi r24,70 |
6352 30c2 9105 cpc r25,__zero_reg__ |
6353 30c4 04F4 brge .L751 |
6354 30c6 E02F mov r30,r16 |
6355 30c8 FF27 clr r31 |
6356 30ca EE0F add r30,r30 |
6357 30cc FF1F adc r31,r31 |
6358 30ce E050 subi r30,lo8(-(PPM_in)) |
6359 30d0 F040 sbci r31,hi8(-(PPM_in)) |
6360 30d2 8081 ld r24,Z |
6361 30d4 9181 ldd r25,Z+1 |
6362 30d6 8734 cpi r24,71 |
6363 30d8 9105 cpc r25,__zero_reg__ |
6364 30da 04F0 brlt .L751 |
6365 30dc 23E0 ldi r18,lo8(3) |
6366 .L751: |
6367 30de E12F mov r30,r17 |
6368 30e0 FF27 clr r31 |
6369 30e2 EE0F add r30,r30 |
6370 30e4 FF1F adc r31,r31 |
6371 30e6 E050 subi r30,lo8(-(PPM_in)) |
6372 30e8 F040 sbci r31,hi8(-(PPM_in)) |
6373 30ea 8081 ld r24,Z |
6374 30ec 9181 ldd r25,Z+1 |
6375 30ee 8A5B subi r24,lo8(-70) |
6376 30f0 9F4F sbci r25,hi8(-70) |
6377 30f2 04F4 brge .L752 |
6378 30f4 E02F mov r30,r16 |
6379 30f6 FF27 clr r31 |
6380 30f8 EE0F add r30,r30 |
6381 30fa FF1F adc r31,r31 |
6382 30fc E050 subi r30,lo8(-(PPM_in)) |
6383 30fe F040 sbci r31,hi8(-(PPM_in)) |
6384 3100 8081 ld r24,Z |
6385 3102 9181 ldd r25,Z+1 |
6386 3104 8734 cpi r24,71 |
6387 3106 9105 cpc r25,__zero_reg__ |
6388 3108 04F0 brlt .L752 |
6389 310a 24E0 ldi r18,lo8(4) |
6390 .L752: |
6391 310c E12F mov r30,r17 |
6392 310e FF27 clr r31 |
6393 3110 EE0F add r30,r30 |
6394 3112 FF1F adc r31,r31 |
6395 3114 E050 subi r30,lo8(-(PPM_in)) |
6396 3116 F040 sbci r31,hi8(-(PPM_in)) |
6397 3118 8081 ld r24,Z |
6398 311a 9181 ldd r25,Z+1 |
6399 311c 8A5B subi r24,lo8(-70) |
6400 311e 9F4F sbci r25,hi8(-70) |
6401 3120 04F4 brge .L753 |
6402 3122 E02F mov r30,r16 |
6403 3124 FF27 clr r31 |
6404 3126 EE0F add r30,r30 |
6405 3128 FF1F adc r31,r31 |
6406 312a E050 subi r30,lo8(-(PPM_in)) |
6407 312c F040 sbci r31,hi8(-(PPM_in)) |
6408 312e 8081 ld r24,Z |
6409 3130 9181 ldd r25,Z+1 |
6410 3132 8634 cpi r24,70 |
6411 3134 9105 cpc r25,__zero_reg__ |
6412 3136 04F4 brge .L753 |
6413 3138 25E0 ldi r18,lo8(5) |
6414 .L753: |
6415 313a 822F mov r24,r18 |
6416 313c 0E94 0000 call SetActiveParamSetNumber |
6417 3140 1091 0000 lds r17,EE_Parameter+1 |
6418 .L746: |
6419 3144 E12F mov r30,r17 |
6420 3146 FF27 clr r31 |
6421 3148 EE0F add r30,r30 |
6422 314a FF1F adc r31,r31 |
6423 314c E050 subi r30,lo8(-(PPM_in)) |
6424 314e F040 sbci r31,hi8(-(PPM_in)) |
6425 3150 8081 ld r24,Z |
6426 3152 9181 ldd r25,Z+1 |
6427 3154 0190 ld __tmp_reg__,Z+ |
6428 3156 F081 ld r31,Z |
6429 3158 E02D mov r30,__tmp_reg__ |
6430 315a F7FF sbrs r31,7 |
6431 315c 00C0 rjmp .+4 |
6432 315e 0C94 0000 jmp .L1231 |
6433 .L755: |
6434 3162 7E97 sbiw r30,30 |
6435 3164 04F0 brlt .+4 |
6436 3166 0C94 0000 jmp .L754 |
6437 316a 8091 0000 lds r24,EE_Parameter |
6438 316e E82F mov r30,r24 |
6439 3170 FF27 clr r31 |
6440 3172 EE0F add r30,r30 |
6441 3174 FF1F adc r31,r31 |
6442 3176 E050 subi r30,lo8(-(PPM_in)) |
6443 3178 F040 sbci r31,hi8(-(PPM_in)) |
6444 317a 8081 ld r24,Z |
6445 317c 9181 ldd r25,Z+1 |
6446 317e 8A5B subi r24,lo8(-70) |
6447 3180 9F4F sbci r25,hi8(-70) |
6448 3182 04F0 brlt .+4 |
6449 3184 0C94 0000 jmp .L754 |
6450 3188 81E0 ldi r24,lo8(1) |
6451 318a 8093 0000 sts WinkelOut+6,r24 |
6452 318e 88EE ldi r24,lo8(1000) |
6453 3190 93E0 ldi r25,hi8(1000) |
6454 3192 9093 0000 sts (beeptime)+1,r25 |
6455 3196 8093 0000 sts beeptime,r24 |
6456 319a 3091 0000 lds r19,EE_Parameter+2 |
6457 .L741: |
6458 319e E32F mov r30,r19 |
6459 31a0 FF27 clr r31 |
6460 31a2 EE0F add r30,r30 |
6461 31a4 FF1F adc r31,r31 |
6462 31a6 E050 subi r30,lo8(-(PPM_in)) |
6463 31a8 F040 sbci r31,hi8(-(PPM_in)) |
6464 31aa 8081 ld r24,Z |
6465 31ac 9181 ldd r25,Z+1 |
6466 31ae 8B5A subi r24,lo8(-85) |
6467 31b0 9F4F sbci r25,hi8(-85) |
6468 31b2 04F0 brlt .+2 |
6469 31b4 00C0 rjmp .L734 |
6470 31b6 D090 0000 lds r13,EE_Parameter+3 |
6471 31ba ED2D mov r30,r13 |
6472 31bc FF27 clr r31 |
6473 31be EE0F add r30,r30 |
6474 31c0 FF1F adc r31,r31 |
6475 31c2 E050 subi r30,lo8(-(PPM_in)) |
6476 31c4 F040 sbci r31,hi8(-(PPM_in)) |
6477 31c6 8081 ld r24,Z |
6478 31c8 9181 ldd r25,Z+1 |
6479 31ca 855B subi r24,lo8(-75) |
6480 31cc 9F4F sbci r25,hi8(-75) |
6481 31ce 04F0 brlt .+4 |
6482 31d0 0C94 0000 jmp .L801 |
6483 31d4 8091 0000 lds r24,delay_einschalten.9 |
6484 31d8 8F5F subi r24,lo8(-(1)) |
6485 31da 893C cpi r24,lo8(-55) |
6486 31dc 00F4 brsh .+4 |
6487 31de 0C94 0000 jmp .L1171 |
6488 31e2 88EC ldi r24,lo8(-56) |
6489 31e4 8093 0000 sts delay_einschalten.9,r24 |
6490 31e8 81E0 ldi r24,lo8(1) |
6491 31ea 90E0 ldi r25,hi8(1) |
6492 31ec 9093 0000 sts (modell_fliegt)+1,r25 |
6493 31f0 8093 0000 sts modell_fliegt,r24 |
6494 31f4 81E0 ldi r24,lo8(1) |
6495 31f6 8093 0000 sts MotorenEin,r24 |
6496 31fa 1092 0000 sts sollGier.2,__zero_reg__ |
6497 31fe 1092 0000 sts (sollGier.2)+1,__zero_reg__ |
6498 3202 1092 0000 sts (sollGier.2)+2,__zero_reg__ |
6499 3206 1092 0000 sts (sollGier.2)+3,__zero_reg__ |
6500 320a 1092 0000 sts Mess_Integral_Gier,__zero_reg__ |
6501 320e 1092 0000 sts (Mess_Integral_Gier)+1,__zero_reg__ |
6502 3212 1092 0000 sts (Mess_Integral_Gier)+2,__zero_reg__ |
6503 3216 1092 0000 sts (Mess_Integral_Gier)+3,__zero_reg__ |
6504 321a 1092 0000 sts Mess_Integral_Gier2,__zero_reg__ |
6505 321e 1092 0000 sts (Mess_Integral_Gier2)+1,__zero_reg__ |
6506 3222 1092 0000 sts (Mess_Integral_Gier2)+2,__zero_reg__ |
6507 3226 1092 0000 sts (Mess_Integral_Gier2)+3,__zero_reg__ |
6508 322a 8091 0000 lds r24,EE_Parameter+23 |
6509 322e E82E mov r14,r24 |
6510 3230 FF24 clr r15 |
6511 3232 0027 clr r16 |
6512 3234 1127 clr r17 |
6513 3236 8091 0000 lds r24,Mittelwert_AccNick |
6514 323a 9091 0000 lds r25,(Mittelwert_AccNick)+1 |
6515 323e 9C01 movw r18,r24 |
6516 3240 4427 clr r20 |
6517 3242 37FD sbrc r19,7 |
6518 3244 4095 com r20 |
6519 3246 542F mov r21,r20 |
6520 3248 C801 movw r24,r16 |
6521 324a B701 movw r22,r14 |
6522 324c 0E94 0000 call __mulsi3 |
6523 3250 DC01 movw r26,r24 |
6524 3252 CB01 movw r24,r22 |
6525 3254 8093 0000 sts Mess_IntegralNick,r24 |
6526 3258 9093 0000 sts (Mess_IntegralNick)+1,r25 |
6527 325c A093 0000 sts (Mess_IntegralNick)+2,r26 |
6528 3260 B093 0000 sts (Mess_IntegralNick)+3,r27 |
6529 3264 8091 0000 lds r24,Mittelwert_AccRoll |
6530 3268 9091 0000 lds r25,(Mittelwert_AccRoll)+1 |
6531 326c 9C01 movw r18,r24 |
6532 326e 4427 clr r20 |
6533 3270 37FD sbrc r19,7 |
6534 3272 4095 com r20 |
6535 3274 542F mov r21,r20 |
6536 3276 C801 movw r24,r16 |
6537 3278 B701 movw r22,r14 |
6538 327a 0E94 0000 call __mulsi3 |
6539 327e DC01 movw r26,r24 |
6540 3280 CB01 movw r24,r22 |
6541 3282 8093 0000 sts Mess_IntegralRoll,r24 |
6542 3286 9093 0000 sts (Mess_IntegralRoll)+1,r25 |
6543 328a A093 0000 sts (Mess_IntegralRoll)+2,r26 |
6544 328e B093 0000 sts (Mess_IntegralRoll)+3,r27 |
6545 3292 8091 0000 lds r24,IntegralNick |
6546 3296 9091 0000 lds r25,(IntegralNick)+1 |
6547 329a A091 0000 lds r26,(IntegralNick)+2 |
6548 329e B091 0000 lds r27,(IntegralNick)+3 |
6549 32a2 8093 0000 sts Mess_IntegralNick2,r24 |
6550 32a6 9093 0000 sts (Mess_IntegralNick2)+1,r25 |
6551 32aa A093 0000 sts (Mess_IntegralNick2)+2,r26 |
6552 32ae B093 0000 sts (Mess_IntegralNick2)+3,r27 |
6553 32b2 8091 0000 lds r24,IntegralRoll |
6554 32b6 9091 0000 lds r25,(IntegralRoll)+1 |
6555 32ba A091 0000 lds r26,(IntegralRoll)+2 |
6556 32be B091 0000 lds r27,(IntegralRoll)+3 |
6557 32c2 8093 0000 sts Mess_IntegralRoll2,r24 |
6558 32c6 9093 0000 sts (Mess_IntegralRoll2)+1,r25 |
6559 32ca A093 0000 sts (Mess_IntegralRoll2)+2,r26 |
6560 32ce B093 0000 sts (Mess_IntegralRoll2)+3,r27 |
6561 32d2 1092 0000 sts SummeNick.0,__zero_reg__ |
6562 32d6 1092 0000 sts (SummeNick.0)+1,__zero_reg__ |
6563 32da 1092 0000 sts (SummeNick.0)+2,__zero_reg__ |
6564 32de 1092 0000 sts (SummeNick.0)+3,__zero_reg__ |
6565 32e2 1092 0000 sts SummeRoll.1,__zero_reg__ |
6566 32e6 1092 0000 sts (SummeRoll.1)+1,__zero_reg__ |
6567 32ea 1092 0000 sts (SummeRoll.1)+2,__zero_reg__ |
6568 32ee 1092 0000 sts (SummeRoll.1)+3,__zero_reg__ |
6569 32f2 8091 0000 lds r24,MikroKopterFlags |
6570 32f6 8860 ori r24,lo8(8) |
6571 32f8 8093 0000 sts MikroKopterFlags,r24 |
6572 32fc 0C94 0000 jmp .L803 |
6573 .L1211: |
6574 3300 0197 sbiw r24,1 |
6575 3302 9093 0000 sts (RcLostTimer.7)+1,r25 |
6576 3306 8093 0000 sts RcLostTimer.7,r24 |
6577 330a 2A30 cpi r18,lo8(10) |
6578 330c 01F0 breq .+2 |
6579 330e 00C0 rjmp .L1232 |
6580 .L730: |
6581 3310 289A sbi 37-0x20,0 |
6582 3312 8091 0000 lds r24,modell_fliegt |
6583 3316 9091 0000 lds r25,(modell_fliegt)+1 |
6584 331a 895E subi r24,lo8(1001) |
6585 331c 9340 sbci r25,hi8(1001) |
6586 331e 00F0 brlo .+2 |
6587 3320 00C0 rjmp .L1233 |
6588 .L732: |
6589 3322 1092 0000 sts MotorenEin,__zero_reg__ |
6590 3326 00C0 rjmp .L734 |
6591 .L1149: |
6592 3328 6091 0000 lds r22,EE_Parameter+8 |
6593 332c 688B std Y+16,r22 |
6594 .L807: |
6595 332e 7091 0000 lds r23,Looping_Roll |
6596 3332 7B8F std Y+27,r23 |
6597 3334 7723 tst r23 |
6598 3336 01F4 brne .L856 |
6599 3338 8091 0000 lds r24,Looping_Nick |
6600 333c 8823 tst r24 |
6601 333e 01F0 breq .L855 |
6602 .L856: |
6603 3340 8091 0000 lds r24,EE_Parameter+48 |
6604 3344 9927 clr r25 |
6605 3346 A981 ldd r26,Y+1 |
6606 3348 BA81 ldd r27,Y+2 |
6607 334a 8A17 cp r24,r26 |
6608 334c 9B07 cpc r25,r27 |
6609 334e 04F4 brge .L857 |
6610 3350 9A83 std Y+2,r25 |
6611 3352 8983 std Y+1,r24 |
6612 .L857: |
6613 3354 81E0 ldi r24,lo8(1) |
6614 3356 8093 0000 sts TrichterFlug,r24 |
6615 .L855: |
6616 335a 8091 0000 lds r24,MikroKopterFlags |
6617 335e 84FF sbrs r24,4 |
6618 3360 00C0 rjmp .L1150 |
6619 3362 1092 0000 sts (StickGier)+1,__zero_reg__ |
6620 3366 1092 0000 sts StickGier,__zero_reg__ |
6621 336a 1092 0000 sts (StickNick)+1,__zero_reg__ |
6622 336e 1092 0000 sts StickNick,__zero_reg__ |
6623 3372 1092 0000 sts (StickRoll)+1,__zero_reg__ |
6624 3376 1092 0000 sts StickRoll,__zero_reg__ |
6625 337a 9AE5 ldi r25,lo8(90) |
6626 337c 9093 0000 sts GyroFaktor,r25 |
6627 3380 88E7 ldi r24,lo8(120) |
6628 3382 8093 0000 sts IntegralFaktor,r24 |
6629 3386 9093 0000 sts GyroFaktorGier,r25 |
6630 338a 8A8F std Y+26,r24 |
6631 338c 8093 0000 sts IntegralFaktorGier,r24 |
6632 3390 1092 0000 sts Looping_Roll,__zero_reg__ |
6633 3394 1092 0000 sts Looping_Nick,__zero_reg__ |
6634 3398 1B8E std Y+27,__zero_reg__ |
6635 .L858: |
6636 339a 2091 0000 lds r18,MittelIntegralNick |
6637 339e 3091 0000 lds r19,(MittelIntegralNick)+1 |
6638 33a2 4091 0000 lds r20,(MittelIntegralNick)+2 |
6639 33a6 5091 0000 lds r21,(MittelIntegralNick)+3 |
6640 33aa E090 0000 lds r14,IntegralNick |
6641 33ae F090 0000 lds r15,(IntegralNick)+1 |
6642 33b2 0091 0000 lds r16,(IntegralNick)+2 |
6643 33b6 1091 0000 lds r17,(IntegralNick)+3 |
6644 33ba ED8E std Y+29,r14 |
6645 33bc FE8E std Y+30,r15 |
6646 33be 0F8F std Y+31,r16 |
6647 33c0 18A3 std Y+32,r17 |
6648 33c2 2E0D add r18,r14 |
6649 33c4 3F1D adc r19,r15 |
6650 33c6 401F adc r20,r16 |
6651 33c8 511F adc r21,r17 |
6652 33ca 8091 0000 lds r24,MittelIntegralRoll |
6653 33ce 9091 0000 lds r25,(MittelIntegralRoll)+1 |
6654 33d2 A091 0000 lds r26,(MittelIntegralRoll)+2 |
6655 33d6 B091 0000 lds r27,(MittelIntegralRoll)+3 |
6656 33da E090 0000 lds r14,IntegralRoll |
6657 33de F090 0000 lds r15,(IntegralRoll)+1 |
6658 33e2 0091 0000 lds r16,(IntegralRoll)+2 |
6659 33e6 1091 0000 lds r17,(IntegralRoll)+3 |
6660 33ea EC86 std Y+12,r14 |
6661 33ec FD86 std Y+13,r15 |
6662 33ee 0E87 std Y+14,r16 |
6663 33f0 1F87 std Y+15,r17 |
6664 33f2 8E0D add r24,r14 |
6665 33f4 9F1D adc r25,r15 |
6666 33f6 A01F adc r26,r16 |
6667 33f8 B11F adc r27,r17 |
6668 33fa 2090 0000 lds r2,MittelIntegralNick2 |
6669 33fe 3090 0000 lds r3,(MittelIntegralNick2)+1 |
6670 3402 4090 0000 lds r4,(MittelIntegralNick2)+2 |
6671 3406 5090 0000 lds r5,(MittelIntegralNick2)+3 |
6672 340a E090 0000 lds r14,IntegralNick2 |
6673 340e F090 0000 lds r15,(IntegralNick2)+1 |
6674 3412 0091 0000 lds r16,(IntegralNick2)+2 |
6675 3416 1091 0000 lds r17,(IntegralNick2)+3 |
6676 341a EE8A std Y+22,r14 |
6677 341c FF8A std Y+23,r15 |
6678 341e 088F std Y+24,r16 |
6679 3420 198F std Y+25,r17 |
6680 3422 2E0C add r2,r14 |
6681 3424 3F1C adc r3,r15 |
6682 3426 401E adc r4,r16 |
6683 3428 511E adc r5,r17 |
6684 342a 6090 0000 lds r6,MittelIntegralRoll2 |
6685 342e 7090 0000 lds r7,(MittelIntegralRoll2)+1 |
6686 3432 8090 0000 lds r8,(MittelIntegralRoll2)+2 |
6687 3436 9090 0000 lds r9,(MittelIntegralRoll2)+3 |
6688 343a E090 0000 lds r14,IntegralRoll2 |
6689 343e F090 0000 lds r15,(IntegralRoll2)+1 |
6690 3442 0091 0000 lds r16,(IntegralRoll2)+2 |
6691 3446 1091 0000 lds r17,(IntegralRoll2)+3 |
6692 344a E9A2 std Y+33,r14 |
6693 344c FAA2 std Y+34,r15 |
6694 344e 0BA3 std Y+35,r16 |
6695 3450 1CA3 std Y+36,r17 |
6696 3452 6E0C add r6,r14 |
6697 3454 7F1C adc r7,r15 |
6698 3456 801E adc r8,r16 |
6699 3458 911E adc r9,r17 |
6700 345a F090 0000 lds r15,Looping_Nick |
6701 345e FB86 std Y+11,r15 |
6702 3460 FF20 tst r15 |
6703 3462 01F0 breq .+2 |
6704 3464 00C0 rjmp .L860 |
6705 3466 0B8D ldd r16,Y+27 |
6706 3468 0023 tst r16 |
6707 346a 01F0 breq .+2 |
6708 346c 00C0 rjmp .L860 |
6709 346e 8093 0000 sts MittelIntegralRoll,r24 |
6710 3472 9093 0000 sts (MittelIntegralRoll)+1,r25 |
6711 3476 A093 0000 sts (MittelIntegralRoll)+2,r26 |
6712 347a B093 0000 sts (MittelIntegralRoll)+3,r27 |
6713 347e 2093 0000 sts MittelIntegralNick,r18 |
6714 3482 3093 0000 sts (MittelIntegralNick)+1,r19 |
6715 3486 4093 0000 sts (MittelIntegralNick)+2,r20 |
6716 348a 5093 0000 sts (MittelIntegralNick)+3,r21 |
6717 .L1196: |
6718 348e 8091 0000 lds r24,Aktuell_az |
6719 3492 9091 0000 lds r25,(Aktuell_az)+1 |
6720 3496 8150 subi r24,lo8(513) |
6721 3498 9240 sbci r25,hi8(513) |
6722 349a 04F0 brlt .+2 |
6723 349c 00C0 rjmp .L862 |
6724 349e 8091 0000 lds r24,MotorenEin |
6725 34a2 8823 tst r24 |
6726 34a4 01F0 breq .+2 |
6727 34a6 00C0 rjmp .L862 |
6728 .L861: |
6729 34a8 8091 0000 lds r24,ZaehlMessungen |
6730 34ac 9091 0000 lds r25,(ZaehlMessungen)+1 |
6731 34b0 8F3F cpi r24,255 |
6732 34b2 9105 cpc r25,__zero_reg__ |
6733 34b4 01F0 breq .+2 |
6734 34b6 00F4 brsh .+2 |
6735 34b8 00C0 rjmp .L1151 |
6736 .L1265: |
6737 34ba 8B85 ldd r24,Y+11 |
6738 34bc 8823 tst r24 |
6739 34be 01F0 breq .+2 |
6740 34c0 00C0 rjmp .L874 |
6741 34c2 9B8D ldd r25,Y+27 |
6742 34c4 9923 tst r25 |
6743 34c6 01F0 breq .+2 |
6744 34c8 00C0 rjmp .L874 |
6745 34ca A091 0000 lds r26,TrichterFlug |
6746 34ce AC8F std Y+28,r26 |
6747 34d0 AA23 tst r26 |
6748 34d2 01F0 breq .+2 |
6749 34d4 00C0 rjmp .L874 |
6750 34d6 B091 0000 lds r27,EE_Parameter+57 |
6751 34da B98B std Y+17,r27 |
6752 34dc BB23 tst r27 |
6753 34de 01F4 brne .+2 |
6754 34e0 00C0 rjmp .L874 |
6755 34e2 2092 0000 sts MittelIntegralNick2,r2 |
6756 34e6 3092 0000 sts (MittelIntegralNick2)+1,r3 |
6757 34ea 4092 0000 sts (MittelIntegralNick2)+2,r4 |
6758 34ee 5092 0000 sts (MittelIntegralNick2)+3,r5 |
6759 34f2 6092 0000 sts MittelIntegralRoll2,r6 |
6760 34f6 7092 0000 sts (MittelIntegralRoll2)+1,r7 |
6761 34fa 8092 0000 sts (MittelIntegralRoll2)+2,r8 |
6762 34fe 9092 0000 sts (MittelIntegralRoll2)+3,r9 |
6763 3502 8091 0000 lds r24,MittelIntegralNick |
6764 3506 9091 0000 lds r25,(MittelIntegralNick)+1 |
6765 350a A091 0000 lds r26,(MittelIntegralNick)+2 |
6766 350e B091 0000 lds r27,(MittelIntegralNick)+3 |
6767 3512 B7FF sbrs r27,7 |
6768 3514 00C0 rjmp .+4 |
6769 3516 0C94 0000 jmp .L1234 |
6770 .L875: |
6771 351a 292E mov r2,r25 |
6772 351c 3A2E mov r3,r26 |
6773 351e 4B2E mov r4,r27 |
6774 3520 5524 clr r5 |
6775 3522 47FC sbrc r4,7 |
6776 3524 5A94 dec r5 |
6777 3526 2092 0000 sts MittelIntegralNick,r2 |
6778 352a 3092 0000 sts (MittelIntegralNick)+1,r3 |
6779 352e 4092 0000 sts (MittelIntegralNick)+2,r4 |
6780 3532 5092 0000 sts (MittelIntegralNick)+3,r5 |
6781 3536 8091 0000 lds r24,MittelIntegralRoll |
6782 353a 9091 0000 lds r25,(MittelIntegralRoll)+1 |
6783 353e A091 0000 lds r26,(MittelIntegralRoll)+2 |
6784 3542 B091 0000 lds r27,(MittelIntegralRoll)+3 |
6785 3546 B7FF sbrs r27,7 |
6786 3548 00C0 rjmp .+4 |
6787 354a 0C94 0000 jmp .L1235 |
6788 .L876: |
6789 354e 892F mov r24,r25 |
6790 3550 9A2F mov r25,r26 |
6791 3552 AB2F mov r26,r27 |
6792 3554 BB27 clr r27 |
6793 3556 A7FD sbrc r26,7 |
6794 3558 BA95 dec r27 |
6795 355a 8B83 std Y+3,r24 |
6796 355c 9C83 std Y+4,r25 |
6797 355e AD83 std Y+5,r26 |
6798 3560 BE83 std Y+6,r27 |
6799 3562 8093 0000 sts MittelIntegralRoll,r24 |
6800 3566 9093 0000 sts (MittelIntegralRoll)+1,r25 |
6801 356a A093 0000 sts (MittelIntegralRoll)+2,r26 |
6802 356e B093 0000 sts (MittelIntegralRoll)+3,r27 |
6803 3572 8091 0000 lds r24,EE_Parameter+23 |
6804 3576 E82E mov r14,r24 |
6805 3578 FF24 clr r15 |
6806 357a 0027 clr r16 |
6807 357c 1127 clr r17 |
6808 357e 2091 0000 lds r18,IntegralAccNick |
6809 3582 3091 0000 lds r19,(IntegralAccNick)+1 |
6810 3586 4091 0000 lds r20,(IntegralAccNick)+2 |
6811 358a 5091 0000 lds r21,(IntegralAccNick)+3 |
6812 358e C801 movw r24,r16 |
6813 3590 B701 movw r22,r14 |
6814 3592 0E94 0000 call __mulsi3 |
6815 3596 97FF sbrs r25,7 |
6816 3598 00C0 rjmp .+4 |
6817 359a 0C94 0000 jmp .L1236 |
6818 .L877: |
6819 359e 672E mov r6,r23 |
6820 35a0 782E mov r7,r24 |
6821 35a2 892E mov r8,r25 |
6822 35a4 9924 clr r9 |
6823 35a6 87FC sbrc r8,7 |
6824 35a8 9A94 dec r9 |
6825 35aa 2091 0000 lds r18,IntegralAccRoll |
6826 35ae 3091 0000 lds r19,(IntegralAccRoll)+1 |
6827 35b2 4091 0000 lds r20,(IntegralAccRoll)+2 |
6828 35b6 5091 0000 lds r21,(IntegralAccRoll)+3 |
6829 35ba C801 movw r24,r16 |
6830 35bc B701 movw r22,r14 |
6831 35be 0E94 0000 call __mulsi3 |
6832 35c2 97FF sbrs r25,7 |
6833 35c4 00C0 rjmp .+4 |
6834 35c6 0C94 0000 jmp .L1237 |
6835 .L878: |
6836 35ca A72E mov r10,r23 |
6837 35cc B82E mov r11,r24 |
6838 35ce C92E mov r12,r25 |
6839 35d0 DD24 clr r13 |
6840 35d2 C7FC sbrc r12,7 |
6841 35d4 DA94 dec r13 |
6842 35d6 D201 movw r26,r4 |
6843 35d8 C101 movw r24,r2 |
6844 35da 8619 sub r24,r6 |
6845 35dc 9709 sbc r25,r7 |
6846 35de A809 sbc r26,r8 |
6847 35e0 B909 sbc r27,r9 |
6848 35e2 2091 0000 lds r18,EE_Parameter+56 |
6849 35e6 E22E mov r14,r18 |
6850 35e8 FF24 clr r15 |
6851 35ea 0027 clr r16 |
6852 35ec 1127 clr r17 |
6853 35ee BC01 movw r22,r24 |
6854 35f0 CD01 movw r24,r26 |
6855 35f2 A801 movw r20,r16 |
6856 35f4 9701 movw r18,r14 |
6857 35f6 0E94 0000 call __divmodsi4 |
6858 35fa 3901 movw r6,r18 |
6859 35fc 4A01 movw r8,r20 |
6860 35fe 1901 movw r2,r18 |
6861 3600 2A01 movw r4,r20 |
6862 3602 8B81 ldd r24,Y+3 |
6863 3604 9C81 ldd r25,Y+4 |
6864 3606 AD81 ldd r26,Y+5 |
6865 3608 BE81 ldd r27,Y+6 |
6866 360a 8A19 sub r24,r10 |
6867 360c 9B09 sbc r25,r11 |
6868 360e AC09 sbc r26,r12 |
6869 3610 BD09 sbc r27,r13 |
6870 3612 BC01 movw r22,r24 |
6871 3614 CD01 movw r24,r26 |
6872 3616 A801 movw r20,r16 |
6873 3618 9701 movw r18,r14 |
6874 361a 0E94 0000 call __divmodsi4 |
6875 361e D401 movw r26,r8 |
6876 3620 C301 movw r24,r6 |
6877 3622 97FE sbrs r9,7 |
6878 3624 00C0 rjmp .+4 |
6879 3626 0C94 0000 jmp .L1238 |
6880 .L880: |
6881 362a 892F mov r24,r25 |
6882 362c 9A2F mov r25,r26 |
6883 362e AB2F mov r26,r27 |
6884 3630 BB27 clr r27 |
6885 3632 A7FD sbrc r26,7 |
6886 3634 BA95 dec r27 |
6887 3636 BC01 movw r22,r24 |
6888 3638 DA01 movw r26,r20 |
6889 363a C901 movw r24,r18 |
6890 363c 57FF sbrs r21,7 |
6891 363e 00C0 rjmp .+4 |
6892 3640 0C94 0000 jmp .L1239 |
6893 .L881: |
6894 3644 892F mov r24,r25 |
6895 3646 9A2F mov r25,r26 |
6896 3648 AB2F mov r26,r27 |
6897 364a BB27 clr r27 |
6898 364c A7FD sbrc r26,7 |
6899 364e BA95 dec r27 |
6900 3650 6C01 movw r12,r24 |
6901 3652 8091 0000 lds r24,MaxStickNick |
6902 3656 9091 0000 lds r25,(MaxStickNick)+1 |
6903 365a 8134 cpi r24,65 |
6904 365c 9105 cpc r25,__zero_reg__ |
6905 365e 04F4 brge .L883 |
6906 3660 8091 0000 lds r24,MaxStickRoll |
6907 3664 9091 0000 lds r25,(MaxStickRoll)+1 |
6908 3668 8134 cpi r24,65 |
6909 366a 9105 cpc r25,__zero_reg__ |
6910 366c 04F4 brge .L883 |
6911 366e 8091 0000 lds r24,EE_Parameter+3 |
6912 3672 E82F mov r30,r24 |
6913 3674 FF27 clr r31 |
6914 3676 EE0F add r30,r30 |
6915 3678 FF1F adc r31,r31 |
6916 367a E050 subi r30,lo8(-(PPM_in)) |
6917 367c F040 sbci r31,hi8(-(PPM_in)) |
6918 367e 8081 ld r24,Z |
6919 3680 9181 ldd r25,Z+1 |
6920 3682 0190 ld __tmp_reg__,Z+ |
6921 3684 F081 ld r31,Z |
6922 3686 E02D mov r30,__tmp_reg__ |
6923 3688 F7FF sbrs r31,7 |
6924 368a 00C0 rjmp .+4 |
6925 368c 0C94 0000 jmp .L1240 |
6926 .L884: |
6927 3690 7A97 sbiw r30,26 |
6928 3692 04F0 brlt .L882 |
6929 .L883: |
6930 3694 7093 0000 sts (LageKorrekturNick)+1,r23 |
6931 3698 6093 0000 sts LageKorrekturNick,r22 |
6932 369c D092 0000 sts (LageKorrekturRoll)+1,r13 |
6933 36a0 C092 0000 sts LageKorrekturRoll,r12 |
6934 36a4 CB01 movw r24,r22 |
6935 36a6 77FF sbrs r23,7 |
6936 36a8 00C0 rjmp .+4 |
6937 36aa 0C94 0000 jmp .L1241 |
6938 .L885: |
6939 36ae BC01 movw r22,r24 |
6940 36b0 7595 asr r23 |
6941 36b2 6795 ror r22 |
6942 36b4 C601 movw r24,r12 |
6943 36b6 D7FE sbrs r13,7 |
6944 36b8 00C0 rjmp .+4 |
6945 36ba 0C94 0000 jmp .L1242 |
6946 .L886: |
6947 36be 6C01 movw r12,r24 |
6948 36c0 D594 asr r13 |
6949 36c2 C794 ror r12 |
6950 .L882: |
6951 36c4 EE88 ldd r14,Y+22 |
6952 36c6 FF88 ldd r15,Y+23 |
6953 36c8 088D ldd r16,Y+24 |
6954 36ca 198D ldd r17,Y+25 |
6955 36cc 2D8D ldd r18,Y+29 |
6956 36ce 3E8D ldd r19,Y+30 |
6957 36d0 4F8D ldd r20,Y+31 |
6958 36d2 58A1 ldd r21,Y+32 |
6959 36d4 E21A sub r14,r18 |
6960 36d6 F30A sbc r15,r19 |
6961 36d8 040B sbc r16,r20 |
6962 36da 150B sbc r17,r21 |
6963 36dc EDA2 std Y+37,r14 |
6964 36de FEA2 std Y+38,r15 |
6965 36e0 0FA3 std Y+39,r16 |
6966 36e2 18A7 std Y+40,r17 |
6967 36e4 E092 0000 sts tmp_long.3,r14 |
6968 36e8 F092 0000 sts (tmp_long.3)+1,r15 |
6969 36ec 0093 0000 sts (tmp_long.3)+2,r16 |
6970 36f0 1093 0000 sts (tmp_long.3)+3,r17 |
6971 36f4 89A1 ldd r24,Y+33 |
6972 36f6 9AA1 ldd r25,Y+34 |
6973 36f8 ABA1 ldd r26,Y+35 |
6974 36fa BCA1 ldd r27,Y+36 |
6975 36fc EC84 ldd r14,Y+12 |
6976 36fe FD84 ldd r15,Y+13 |
6977 3700 0E85 ldd r16,Y+14 |
6978 3702 1F85 ldd r17,Y+15 |
6979 3704 8E19 sub r24,r14 |
6980 3706 9F09 sbc r25,r15 |
6981 3708 A00B sbc r26,r16 |
6982 370a B10B sbc r27,r17 |
6983 370c 8F83 std Y+7,r24 |
6984 370e 9887 std Y+8,r25 |
6985 3710 A987 std Y+9,r26 |
6986 3712 BA87 std Y+10,r27 |
6987 3714 8093 0000 sts tmp_long2.4,r24 |
6988 3718 9093 0000 sts (tmp_long2.4)+1,r25 |
6989 371c A093 0000 sts (tmp_long2.4)+2,r26 |
6990 3720 B093 0000 sts (tmp_long2.4)+3,r27 |
6991 3724 0DA1 ldd r16,Y+37 |
6992 3726 1EA1 ldd r17,Y+38 |
6993 3728 2FA1 ldd r18,Y+39 |
6994 372a 38A5 ldd r19,Y+40 |
6995 372c 0093 0000 sts IntegralFehlerNick.5,r16 |
6996 3730 1093 0000 sts (IntegralFehlerNick.5)+1,r17 |
6997 3734 2093 0000 sts (IntegralFehlerNick.5)+2,r18 |
6998 3738 3093 0000 sts (IntegralFehlerNick.5)+3,r19 |
6999 373c 8093 0000 sts IntegralFehlerRoll.6,r24 |
7000 3740 9093 0000 sts (IntegralFehlerRoll.6)+1,r25 |
7001 3744 A093 0000 sts (IntegralFehlerRoll.6)+2,r26 |
7002 3748 B093 0000 sts (IntegralFehlerRoll.6)+3,r27 |
7003 374c 8091 0000 lds r24,Mess_IntegralNick2 |
7004 3750 9091 0000 lds r25,(Mess_IntegralNick2)+1 |
7005 3754 A091 0000 lds r26,(Mess_IntegralNick2)+2 |
7006 3758 B091 0000 lds r27,(Mess_IntegralNick2)+3 |
7007 375c 801B sub r24,r16 |
7008 375e 910B sbc r25,r17 |
7009 3760 A20B sbc r26,r18 |
7010 3762 B30B sbc r27,r19 |
7011 3764 8093 0000 sts Mess_IntegralNick2,r24 |
7012 3768 9093 0000 sts (Mess_IntegralNick2)+1,r25 |
7013 376c A093 0000 sts (Mess_IntegralNick2)+2,r26 |
7014 3770 B093 0000 sts (Mess_IntegralNick2)+3,r27 |
7015 3774 8091 0000 lds r24,Mess_IntegralRoll2 |
7016 3778 9091 0000 lds r25,(Mess_IntegralRoll2)+1 |
7017 377c A091 0000 lds r26,(Mess_IntegralRoll2)+2 |
7018 3780 B091 0000 lds r27,(Mess_IntegralRoll2)+3 |
7019 3784 2F81 ldd r18,Y+7 |
7020 3786 3885 ldd r19,Y+8 |
7021 3788 4985 ldd r20,Y+9 |
7022 378a 5A85 ldd r21,Y+10 |
7023 378c 821B sub r24,r18 |
7024 378e 930B sbc r25,r19 |
7025 3790 A40B sbc r26,r20 |
7026 3792 B50B sbc r27,r21 |
7027 3794 8093 0000 sts Mess_IntegralRoll2,r24 |
7028 3798 9093 0000 sts (Mess_IntegralRoll2)+1,r25 |
7029 379c A093 0000 sts (Mess_IntegralRoll2)+2,r26 |
7030 37a0 B093 0000 sts (Mess_IntegralRoll2)+3,r27 |
7031 37a4 3989 ldd r19,Y+17 |
7032 37a6 3323 tst r19 |
7033 37a8 01F0 breq .L889 |
7034 37aa 2091 0000 lds r18,GierGyroFehler |
7035 37ae 3091 0000 lds r19,(GierGyroFehler)+1 |
7036 37b2 2138 cpi r18,129 |
7037 37b4 3105 cpc r19,__zero_reg__ |
7038 37b6 04F0 brlt .L890 |
7039 37b8 8091 0000 lds r24,AdNeutralGier |
7040 37bc 9091 0000 lds r25,(AdNeutralGier)+1 |
7041 37c0 0196 adiw r24,1 |
7042 37c2 9093 0000 sts (AdNeutralGier)+1,r25 |
7043 37c6 8093 0000 sts AdNeutralGier,r24 |
7044 37ca 8091 0000 lds r24,AdNeutralGierBias |
7045 37ce 9091 0000 lds r25,(AdNeutralGierBias)+1 |
7046 37d2 0196 adiw r24,1 |
7047 37d4 9093 0000 sts (AdNeutralGierBias)+1,r25 |
7048 37d8 8093 0000 sts AdNeutralGierBias,r24 |
7049 .L890: |
7050 37dc 2058 subi r18,lo8(-128) |
7051 37de 3F4F sbci r19,hi8(-128) |
7052 37e0 04F4 brge .L889 |
7053 37e2 8091 0000 lds r24,AdNeutralGier |
7054 37e6 9091 0000 lds r25,(AdNeutralGier)+1 |
7055 37ea 0197 sbiw r24,1 |
7056 37ec 9093 0000 sts (AdNeutralGier)+1,r25 |
7057 37f0 8093 0000 sts AdNeutralGier,r24 |
7058 37f4 8091 0000 lds r24,AdNeutralGierBias |
7059 37f8 9091 0000 lds r25,(AdNeutralGierBias)+1 |
7060 37fc 0197 sbiw r24,1 |
7061 37fe 9093 0000 sts (AdNeutralGierBias)+1,r25 |
7062 3802 8093 0000 sts AdNeutralGierBias,r24 |
7063 .L889: |
7064 3806 1092 0000 sts (GierGyroFehler)+1,__zero_reg__ |
7065 380a 1092 0000 sts GierGyroFehler,__zero_reg__ |
7066 380e 41E0 ldi r20,lo8(1) |
7067 3810 A42E mov r10,r20 |
7068 3812 B12C mov r11,__zero_reg__ |
7069 3814 8DA1 ldd r24,Y+37 |
7070 3816 9EA1 ldd r25,Y+38 |
7071 3818 AFA1 ldd r26,Y+39 |
7072 381a B8A5 ldd r27,Y+40 |
7073 381c B7FF sbrs r27,7 |
7074 381e 00C0 rjmp .+4 |
7075 3820 0C94 0000 jmp .L1243 |
7076 .L893: |
7077 3824 8150 subi r24,lo8(513) |
7078 3826 9240 sbci r25,hi8(513) |
7079 3828 A040 sbci r26,hlo8(513) |
7080 382a B040 sbci r27,hhi8(513) |
7081 382c 04F0 brlt .L892 |
7082 382e 34E0 ldi r19,lo8(4) |
7083 3830 A32E mov r10,r19 |
7084 3832 B12C mov r11,__zero_reg__ |
7085 .L892: |
7086 3834 8091 0000 lds r24,MittelIntegralNick_Alt.22 |
7087 3838 9091 0000 lds r25,(MittelIntegralNick_Alt.22)+1 |
7088 383c A091 0000 lds r26,(MittelIntegralNick_Alt.22)+2 |
7089 3840 B091 0000 lds r27,(MittelIntegralNick_Alt.22)+3 |
7090 3844 E090 0000 lds r14,MittelIntegralNick |
7091 3848 F090 0000 lds r15,(MittelIntegralNick)+1 |
7092 384c 0091 0000 lds r16,(MittelIntegralNick)+2 |
7093 3850 1091 0000 lds r17,(MittelIntegralNick)+3 |
7094 3854 8E19 sub r24,r14 |
7095 3856 9F09 sbc r25,r15 |
7096 3858 A00B sbc r26,r16 |
7097 385a B10B sbc r27,r17 |
7098 385c 815E subi r24,lo8(-(19999)) |
7099 385e 914B sbci r25,hi8(-(19999)) |
7100 3860 AF4F sbci r26,hlo8(-(19999)) |
7101 3862 BF4F sbci r27,hhi8(-(19999)) |
7102 3864 8F53 subi r24,lo8(39999) |
7103 3866 9C49 sbci r25,hi8(39999) |
7104 3868 A040 sbci r26,hlo8(39999) |
7105 386a B040 sbci r27,hhi8(39999) |
7106 386c 00F0 brlo .+4 |
7107 386e 0C94 0000 jmp .L894 |
7108 3872 B092 0000 sts (cnt.17)+1,r11 |
7109 3876 A092 0000 sts cnt.17,r10 |
7110 387a 2DA1 ldd r18,Y+37 |
7111 387c 3EA1 ldd r19,Y+38 |
7112 387e 4FA1 ldd r20,Y+39 |
7113 3880 58A5 ldd r21,Y+40 |
7114 3882 2130 cpi r18,lo8(4097) |
7115 3884 80E1 ldi r24,hi8(4097) |
7116 3886 3807 cpc r19,r24 |
7117 3888 80E0 ldi r24,hlo8(4097) |
7118 388a 4807 cpc r20,r24 |
7119 388c 80E0 ldi r24,hhi8(4097) |
7120 388e 5807 cpc r21,r24 |
7121 3890 04F4 brge .+4 |
7122 3892 0C94 0000 jmp .L895 |
7123 3896 8091 0000 lds r24,last_n_p.18 |
7124 389a 8823 tst r24 |
7125 389c 01F4 brne .+4 |
7126 389e 0C94 0000 jmp .L896 |
7127 38a2 7093 0000 sts (LageKorrekturNick)+1,r23 |
7128 38a6 6093 0000 sts LageKorrekturNick,r22 |
7129 38aa DA01 movw r26,r20 |
7130 38ac C901 movw r24,r18 |
7131 38ae 57FF sbrs r21,7 |
7132 38b0 00C0 rjmp .+4 |
7133 38b2 0C94 0000 jmp .L1244 |
7134 .L897: |
7135 38b6 B7FF sbrs r27,7 |
7136 38b8 00C0 rjmp .+4 |
7137 38ba 0C94 0000 jmp .L1245 |
7138 .L898: |
7139 38be 29E0 ldi r18,9 |
7140 38c0 B595 1: asr r27 |
7141 38c2 A795 ror r26 |
7142 38c4 9795 ror r25 |
7143 38c6 8795 ror r24 |
7144 38c8 2A95 dec r18 |
7145 38ca 01F4 brne 1b |
7146 38cc A80E add r10,r24 |
7147 38ce B91E adc r11,r25 |
7148 38d0 B092 0000 sts (cnt.17)+1,r11 |
7149 38d4 A092 0000 sts cnt.17,r10 |
7150 38d8 2DA1 ldd r18,Y+37 |
7151 38da 3EA1 ldd r19,Y+38 |
7152 38dc 4FA1 ldd r20,Y+39 |
7153 38de 58A5 ldd r21,Y+40 |
7154 38e0 57FF sbrs r21,7 |
7155 38e2 00C0 rjmp .+4 |
7156 38e4 0C94 0000 jmp .L1246 |
7157 .L899: |
7158 38e8 3901 movw r6,r18 |
7159 38ea 4A01 movw r8,r20 |
7160 38ec A3E0 ldi r26,3 |
7161 38ee 9594 1: asr r9 |
7162 38f0 8794 ror r8 |
7163 38f2 7794 ror r7 |
7164 38f4 6794 ror r6 |
7165 38f6 AA95 dec r26 |
7166 38f8 01F4 brne 1b |
7167 38fa 1301 movw r2,r6 |
7168 38fc 2401 movw r4,r8 |
7169 38fe 99E8 ldi r25,lo8(5001) |
7170 3900 6916 cp r6,r25 |
7171 3902 93E1 ldi r25,hi8(5001) |
7172 3904 7906 cpc r7,r25 |
7173 3906 90E0 ldi r25,hlo8(5001) |
7174 3908 8906 cpc r8,r25 |
7175 390a 90E0 ldi r25,hhi8(5001) |
7176 390c 9906 cpc r9,r25 |
7177 390e 04F0 brlt .L900 |
7178 3910 F8E8 ldi r31,lo8(5000) |
7179 3912 6F2E mov r6,r31 |
7180 3914 F3E1 ldi r31,hi8(5000) |
7181 3916 7F2E mov r7,r31 |
7182 3918 812C mov r8,__zero_reg__ |
7183 391a 912C mov r9,__zero_reg__ |
7184 391c 1301 movw r2,r6 |
7185 391e 2401 movw r4,r8 |
7186 .L900: |
7187 3920 D401 movw r26,r8 |
7188 3922 C301 movw r24,r6 |
7189 3924 97FE sbrs r9,7 |
7190 3926 00C0 rjmp .+4 |
7191 3928 0C94 0000 jmp .L1247 |
7192 .L901: |
7193 392c 892F mov r24,r25 |
7194 392e 9A2F mov r25,r26 |
7195 3930 AB2F mov r26,r27 |
7196 3932 BB27 clr r27 |
7197 3934 A7FD sbrc r26,7 |
7198 3936 BA95 dec r27 |
7199 3938 680F add r22,r24 |
7200 393a 791F adc r23,r25 |
7201 .L903: |
7202 393c 2DA1 ldd r18,Y+37 |
7203 393e 3EA1 ldd r19,Y+38 |
7204 3940 4FA1 ldd r20,Y+39 |
7205 3942 58A5 ldd r21,Y+40 |
7206 3944 2030 cpi r18,lo8(-4096) |
7207 3946 80EF ldi r24,hi8(-4096) |
7208 3948 3807 cpc r19,r24 |
7209 394a 8FEF ldi r24,hlo8(-4096) |
7210 394c 4807 cpc r20,r24 |
7211 394e 8FEF ldi r24,hhi8(-4096) |
7212 3950 5807 cpc r21,r24 |
7213 3952 04F0 brlt .+4 |
7214 3954 0C94 0000 jmp .L904 |
7215 3958 8091 0000 lds r24,last_n_n.19 |
7216 395c 8823 tst r24 |
7217 395e 01F4 brne .+4 |
7218 3960 0C94 0000 jmp .L905 |
7219 3964 7093 0000 sts (LageKorrekturNick)+1,r23 |
7220 3968 6093 0000 sts LageKorrekturNick,r22 |
7221 396c DA01 movw r26,r20 |
7222 396e C901 movw r24,r18 |
7223 3970 57FF sbrs r21,7 |
7224 3972 00C0 rjmp .+4 |
7225 3974 0C94 0000 jmp .L1248 |
7226 .L906: |
7227 3978 9C01 movw r18,r24 |
7228 397a AD01 movw r20,r26 |
7229 397c B7FF sbrs r27,7 |
7230 397e 00C0 rjmp .+4 |
7231 3980 0C94 0000 jmp .L1249 |
7232 .L907: |
7233 3984 69E0 ldi r22,9 |
7234 3986 5595 1: asr r21 |
7235 3988 4795 ror r20 |
7236 398a 3795 ror r19 |
7237 398c 2795 ror r18 |
7238 398e 6A95 dec r22 |
7239 3990 01F4 brne 1b |
7240 3992 8091 0000 lds r24,cnt.17 |
7241 3996 9091 0000 lds r25,(cnt.17)+1 |
7242 399a 820F add r24,r18 |
7243 399c 931F adc r25,r19 |
7244 399e 9093 0000 sts (cnt.17)+1,r25 |
7245 39a2 8093 0000 sts cnt.17,r24 |
7246 39a6 2DA1 ldd r18,Y+37 |
7247 39a8 3EA1 ldd r19,Y+38 |
7248 39aa 4FA1 ldd r20,Y+39 |
7249 39ac 58A5 ldd r21,Y+40 |
7250 39ae 57FF sbrs r21,7 |
7251 39b0 00C0 rjmp .+4 |
7252 39b2 0C94 0000 jmp .L1250 |
7253 .L908: |
7254 39b6 3901 movw r6,r18 |
7255 39b8 4A01 movw r8,r20 |
7256 39ba 43E0 ldi r20,3 |
7257 39bc 9594 1: asr r9 |
7258 39be 8794 ror r8 |
7259 39c0 7794 ror r7 |
7260 39c2 6794 ror r6 |
7261 39c4 4A95 dec r20 |
7262 39c6 01F4 brne 1b |
7263 39c8 98E7 ldi r25,lo8(-5000) |
7264 39ca 6916 cp r6,r25 |
7265 39cc 9CEE ldi r25,hi8(-5000) |
7266 39ce 7906 cpc r7,r25 |
7267 39d0 9FEF ldi r25,hlo8(-5000) |
7268 39d2 8906 cpc r8,r25 |
7269 39d4 9FEF ldi r25,hhi8(-5000) |
7270 39d6 9906 cpc r9,r25 |
7271 39d8 04F4 brge .L1179 |
7272 39da 38E7 ldi r19,lo8(-5000) |
7273 39dc 632E mov r6,r19 |
7274 39de 3CEE ldi r19,hi8(-5000) |
7275 39e0 732E mov r7,r19 |
7276 39e2 3FEF ldi r19,hlo8(-5000) |
7277 39e4 832E mov r8,r19 |
7278 39e6 3FEF ldi r19,hhi8(-5000) |
7279 39e8 932E mov r9,r19 |
7280 .L1179: |
7281 39ea 6092 0000 sts ausgleichNick.13,r6 |
7282 39ee 7092 0000 sts (ausgleichNick.13)+1,r7 |
7283 39f2 8092 0000 sts (ausgleichNick.13)+2,r8 |
7284 39f6 9092 0000 sts (ausgleichNick.13)+3,r9 |
7285 39fa D401 movw r26,r8 |
7286 39fc C301 movw r24,r6 |
7287 39fe 97FE sbrs r9,7 |
7288 3a00 00C0 rjmp .+4 |
7289 3a02 0C94 0000 jmp .L1251 |
7290 .L910: |
7291 3a06 892F mov r24,r25 |
7292 3a08 9A2F mov r25,r26 |
7293 3a0a AB2F mov r26,r27 |
7294 3a0c BB27 clr r27 |
7295 3a0e A7FD sbrc r26,7 |
7296 3a10 BA95 dec r27 |
7297 3a12 6091 0000 lds r22,LageKorrekturNick |
7298 3a16 7091 0000 lds r23,(LageKorrekturNick)+1 |
7299 3a1a 680F add r22,r24 |
7300 3a1c 791F adc r23,r25 |
7301 .L913: |
7302 3a1e A989 ldd r26,Y+17 |
7303 3a20 2A2F mov r18,r26 |
7304 3a22 3327 clr r19 |
7305 3a24 8091 0000 lds r24,cnt.17 |
7306 3a28 9091 0000 lds r25,(cnt.17)+1 |
7307 3a2c 2817 cp r18,r24 |
7308 3a2e 3907 cpc r19,r25 |
7309 3a30 04F4 brge .L914 |
7310 3a32 3093 0000 sts (cnt.17)+1,r19 |
7311 3a36 2093 0000 sts cnt.17,r18 |
7312 .L914: |
7313 3a3a 2DA1 ldd r18,Y+37 |
7314 3a3c 3EA1 ldd r19,Y+38 |
7315 3a3e 4FA1 ldd r20,Y+39 |
7316 3a40 58A5 ldd r21,Y+40 |
7317 3a42 2138 cpi r18,lo8(129) |
7318 3a44 3105 cpc r19,__zero_reg__ |
7319 3a46 4105 cpc r20,__zero_reg__ |
7320 3a48 5105 cpc r21,__zero_reg__ |
7321 3a4a 04F0 brlt .L915 |
7322 3a4c 8091 0000 lds r24,AdNeutralNick |
7323 3a50 9091 0000 lds r25,(AdNeutralNick)+1 |
7324 3a54 2091 0000 lds r18,cnt.17 |
7325 3a58 3091 0000 lds r19,(cnt.17)+1 |
7326 3a5c 820F add r24,r18 |
7327 3a5e 931F adc r25,r19 |
7328 3a60 9093 0000 sts (AdNeutralNick)+1,r25 |
7329 3a64 8093 0000 sts AdNeutralNick,r24 |
7330 .L915: |
7331 3a68 8DA1 ldd r24,Y+37 |
7332 3a6a 9EA1 ldd r25,Y+38 |
7333 3a6c AFA1 ldd r26,Y+39 |
7334 3a6e B8A5 ldd r27,Y+40 |
7335 3a70 8058 subi r24,lo8(-128) |
7336 3a72 9F4F sbci r25,hi8(-128) |
7337 3a74 AF4F sbci r26,hlo8(-128) |
7338 3a76 BF4F sbci r27,hhi8(-128) |
7339 3a78 04F4 brge .L916 |
7340 3a7a 8091 0000 lds r24,AdNeutralNick |
7341 3a7e 9091 0000 lds r25,(AdNeutralNick)+1 |
7342 3a82 2091 0000 lds r18,cnt.17 |
7343 3a86 3091 0000 lds r19,(cnt.17)+1 |
7344 3a8a 821B sub r24,r18 |
7345 3a8c 930B sbc r25,r19 |
7346 3a8e 9093 0000 sts (AdNeutralNick)+1,r25 |
7347 3a92 8093 0000 sts AdNeutralNick,r24 |
7348 .L916: |
7349 3a96 B1E0 ldi r27,lo8(1) |
7350 3a98 AB2E mov r10,r27 |
7351 3a9a B12C mov r11,__zero_reg__ |
7352 3a9c 8F81 ldd r24,Y+7 |
7353 3a9e 9885 ldd r25,Y+8 |
7354 3aa0 A985 ldd r26,Y+9 |
7355 3aa2 BA85 ldd r27,Y+10 |
7356 3aa4 B7FF sbrs r27,7 |
7357 3aa6 00C0 rjmp .+4 |
7358 3aa8 0C94 0000 jmp .L1252 |
7359 .L918: |
7360 3aac 8150 subi r24,lo8(513) |
7361 3aae 9240 sbci r25,hi8(513) |
7362 3ab0 A040 sbci r26,hlo8(513) |
7363 3ab2 B040 sbci r27,hhi8(513) |
7364 3ab4 04F0 brlt .L917 |
7365 3ab6 A4E0 ldi r26,lo8(4) |
7366 3ab8 AA2E mov r10,r26 |
7367 3aba B12C mov r11,__zero_reg__ |
7368 .L917: |
7369 3abc 20E0 ldi r18,lo8(0) |
7370 3abe 30E0 ldi r19,hi8(0) |
7371 3ac0 40E0 ldi r20,hlo8(0) |
7372 3ac2 50E0 ldi r21,hhi8(0) |
7373 3ac4 8091 0000 lds r24,MittelIntegralRoll_Alt.23 |
7374 3ac8 9091 0000 lds r25,(MittelIntegralRoll_Alt.23)+1 |
7375 3acc A091 0000 lds r26,(MittelIntegralRoll_Alt.23)+2 |
7376 3ad0 B091 0000 lds r27,(MittelIntegralRoll_Alt.23)+3 |
7377 3ad4 6090 0000 lds r6,MittelIntegralRoll |
7378 3ad8 7090 0000 lds r7,(MittelIntegralRoll)+1 |
7379 3adc 8090 0000 lds r8,(MittelIntegralRoll)+2 |
7380 3ae0 9090 0000 lds r9,(MittelIntegralRoll)+3 |
7381 3ae4 8619 sub r24,r6 |
7382 3ae6 9709 sbc r25,r7 |
7383 3ae8 A809 sbc r26,r8 |
7384 3aea B909 sbc r27,r9 |
7385 3aec 815E subi r24,lo8(-(19999)) |
7386 3aee 914B sbci r25,hi8(-(19999)) |
7387 3af0 AF4F sbci r26,hlo8(-(19999)) |
7388 3af2 BF4F sbci r27,hhi8(-(19999)) |
7389 3af4 8F53 subi r24,lo8(39999) |
7390 3af6 9C49 sbci r25,hi8(39999) |
7391 3af8 A040 sbci r26,hlo8(39999) |
7392 3afa B040 sbci r27,hhi8(39999) |
7393 3afc 00F0 brlo .+4 |
7394 3afe 0C94 0000 jmp .L919 |
7395 3b02 B092 0000 sts (cnt.17)+1,r11 |
7396 3b06 A092 0000 sts cnt.17,r10 |
7397 3b0a 8F81 ldd r24,Y+7 |
7398 3b0c 9885 ldd r25,Y+8 |
7399 3b0e A985 ldd r26,Y+9 |
7400 3b10 BA85 ldd r27,Y+10 |
7401 3b12 8150 subi r24,lo8(4097) |
7402 3b14 9041 sbci r25,hi8(4097) |
7403 3b16 A040 sbci r26,hlo8(4097) |
7404 3b18 B040 sbci r27,hhi8(4097) |
7405 3b1a 04F4 brge .+4 |
7406 3b1c 0C94 0000 jmp .L920 |
7407 3b20 8091 0000 lds r24,last_r_p.20 |
7408 3b24 8823 tst r24 |
7409 3b26 01F4 brne .+4 |
7410 3b28 0C94 0000 jmp .L921 |
7411 3b2c D092 0000 sts (LageKorrekturRoll)+1,r13 |
7412 3b30 C092 0000 sts LageKorrekturRoll,r12 |
7413 3b34 8F81 ldd r24,Y+7 |
7414 3b36 9885 ldd r25,Y+8 |
7415 3b38 A985 ldd r26,Y+9 |
7416 3b3a BA85 ldd r27,Y+10 |
7417 3b3c B7FF sbrs r27,7 |
7418 3b3e 00C0 rjmp .+4 |
7419 3b40 0C94 0000 jmp .L1253 |
7420 .L922: |
7421 3b44 B7FF sbrs r27,7 |
7422 3b46 00C0 rjmp .+4 |
7423 3b48 0C94 0000 jmp .L1254 |
7424 .L923: |
7425 3b4c F9E0 ldi r31,9 |
7426 3b4e B595 1: asr r27 |
7427 3b50 A795 ror r26 |
7428 3b52 9795 ror r25 |
7429 3b54 8795 ror r24 |
7430 3b56 FA95 dec r31 |
7431 3b58 01F4 brne 1b |
7432 3b5a A80E add r10,r24 |
7433 3b5c B91E adc r11,r25 |
7434 3b5e B092 0000 sts (cnt.17)+1,r11 |
7435 3b62 A092 0000 sts cnt.17,r10 |
7436 3b66 2F81 ldd r18,Y+7 |
7437 3b68 3885 ldd r19,Y+8 |
7438 3b6a 4985 ldd r20,Y+9 |
7439 3b6c 5A85 ldd r21,Y+10 |
7440 3b6e 57FF sbrs r21,7 |
7441 3b70 00C0 rjmp .+4 |
7442 3b72 0C94 0000 jmp .L1255 |
7443 .L924: |
7444 3b76 E3E0 ldi r30,3 |
7445 3b78 5595 1: asr r21 |
7446 3b7a 4795 ror r20 |
7447 3b7c 3795 ror r19 |
7448 3b7e 2795 ror r18 |
7449 3b80 EA95 dec r30 |
7450 3b82 01F4 brne 1b |
7451 3b84 2938 cpi r18,lo8(5001) |
7452 3b86 F3E1 ldi r31,hi8(5001) |
7453 3b88 3F07 cpc r19,r31 |
7454 3b8a F0E0 ldi r31,hlo8(5001) |
7455 3b8c 4F07 cpc r20,r31 |
7456 3b8e F0E0 ldi r31,hhi8(5001) |
7457 3b90 5F07 cpc r21,r31 |
7458 3b92 04F4 brge .+4 |
7459 3b94 0C94 0000 jmp .L1180 |
7460 3b98 88E8 ldi r24,lo8(5000) |
7461 3b9a 93E1 ldi r25,hi8(5000) |
7462 3b9c A0E0 ldi r26,hlo8(5000) |
7463 3b9e B0E0 ldi r27,hhi8(5000) |
7464 3ba0 8093 0000 sts ausgleichRoll.14,r24 |
7465 3ba4 9093 0000 sts (ausgleichRoll.14)+1,r25 |
7466 3ba8 A093 0000 sts (ausgleichRoll.14)+2,r26 |
7467 3bac B093 0000 sts (ausgleichRoll.14)+3,r27 |
7468 .L925: |
7469 3bb0 8091 0000 lds r24,ausgleichRoll.14 |
7470 3bb4 9091 0000 lds r25,(ausgleichRoll.14)+1 |
7471 3bb8 A091 0000 lds r26,(ausgleichRoll.14)+2 |
7472 3bbc B091 0000 lds r27,(ausgleichRoll.14)+3 |
7473 3bc0 B7FF sbrs r27,7 |
7474 3bc2 00C0 rjmp .+4 |
7475 3bc4 0C94 0000 jmp .L1256 |
7476 .L926: |
7477 3bc8 892F mov r24,r25 |
7478 3bca 9A2F mov r25,r26 |
7479 3bcc AB2F mov r26,r27 |
7480 3bce BB27 clr r27 |
7481 3bd0 A7FD sbrc r26,7 |
7482 3bd2 BA95 dec r27 |
7483 3bd4 C090 0000 lds r12,LageKorrekturRoll |
7484 3bd8 D090 0000 lds r13,(LageKorrekturRoll)+1 |
7485 3bdc C80E add r12,r24 |
7486 3bde D91E adc r13,r25 |
7487 .L928: |
7488 3be0 2F81 ldd r18,Y+7 |
7489 3be2 3885 ldd r19,Y+8 |
7490 3be4 4985 ldd r20,Y+9 |
7491 3be6 5A85 ldd r21,Y+10 |
7492 3be8 2030 cpi r18,lo8(-4096) |
7493 3bea 80EF ldi r24,hi8(-4096) |
7494 3bec 3807 cpc r19,r24 |
7495 3bee 8FEF ldi r24,hlo8(-4096) |
7496 3bf0 4807 cpc r20,r24 |
7497 3bf2 8FEF ldi r24,hhi8(-4096) |
7498 3bf4 5807 cpc r21,r24 |
7499 3bf6 04F0 brlt .+4 |
7500 3bf8 0C94 0000 jmp .L929 |
7501 3bfc 8091 0000 lds r24,last_r_n.21 |
7502 3c00 8823 tst r24 |
7503 3c02 01F4 brne .+4 |
7504 3c04 0C94 0000 jmp .L930 |
7505 3c08 D092 0000 sts (LageKorrekturRoll)+1,r13 |
7506 3c0c C092 0000 sts LageKorrekturRoll,r12 |
7507 3c10 DA01 movw r26,r20 |
7508 3c12 C901 movw r24,r18 |
7509 3c14 57FF sbrs r21,7 |
7510 3c16 00C0 rjmp .+4 |
7511 3c18 0C94 0000 jmp .L1257 |
7512 .L931: |
7513 3c1c 9C01 movw r18,r24 |
7514 3c1e AD01 movw r20,r26 |
7515 3c20 B7FF sbrs r27,7 |
7516 3c22 00C0 rjmp .+4 |
7517 3c24 0C94 0000 jmp .L1258 |
7518 .L932: |
7519 3c28 B9E0 ldi r27,9 |
7520 3c2a 5595 1: asr r21 |
7521 3c2c 4795 ror r20 |
7522 3c2e 3795 ror r19 |
7523 3c30 2795 ror r18 |
7524 3c32 BA95 dec r27 |
7525 3c34 01F4 brne 1b |
7526 3c36 8091 0000 lds r24,cnt.17 |
7527 3c3a 9091 0000 lds r25,(cnt.17)+1 |
7528 3c3e 820F add r24,r18 |
7529 3c40 931F adc r25,r19 |
7530 3c42 9093 0000 sts (cnt.17)+1,r25 |
7531 3c46 8093 0000 sts cnt.17,r24 |
7532 3c4a 2F81 ldd r18,Y+7 |
7533 3c4c 3885 ldd r19,Y+8 |
7534 3c4e 4985 ldd r20,Y+9 |
7535 3c50 5A85 ldd r21,Y+10 |
7536 3c52 57FF sbrs r21,7 |
7537 3c54 00C0 rjmp .+4 |
7538 3c56 0C94 0000 jmp .L1259 |
7539 .L933: |
7540 3c5a A3E0 ldi r26,3 |
7541 3c5c 5595 1: asr r21 |
7542 3c5e 4795 ror r20 |
7543 3c60 3795 ror r19 |
7544 3c62 2795 ror r18 |
7545 3c64 AA95 dec r26 |
7546 3c66 01F4 brne 1b |
7547 3c68 2837 cpi r18,lo8(-5000) |
7548 3c6a 9CEE ldi r25,hi8(-5000) |
7549 3c6c 3907 cpc r19,r25 |
7550 3c6e 9FEF ldi r25,hlo8(-5000) |
7551 3c70 4907 cpc r20,r25 |
7552 3c72 9FEF ldi r25,hhi8(-5000) |
7553 3c74 5907 cpc r21,r25 |
7554 3c76 04F0 brlt .+4 |
7555 3c78 0C94 0000 jmp .L1181 |
7556 3c7c 88E7 ldi r24,lo8(-5000) |
7557 3c7e 9CEE ldi r25,hi8(-5000) |
7558 3c80 AFEF ldi r26,hlo8(-5000) |
7559 3c82 BFEF ldi r27,hhi8(-5000) |
7560 3c84 8093 0000 sts ausgleichRoll.14,r24 |
7561 3c88 9093 0000 sts (ausgleichRoll.14)+1,r25 |
7562 3c8c A093 0000 sts (ausgleichRoll.14)+2,r26 |
7563 3c90 B093 0000 sts (ausgleichRoll.14)+3,r27 |
7564 .L934: |
7565 3c94 8091 0000 lds r24,ausgleichRoll.14 |
7566 3c98 9091 0000 lds r25,(ausgleichRoll.14)+1 |
7567 3c9c A091 0000 lds r26,(ausgleichRoll.14)+2 |
7568 3ca0 B091 0000 lds r27,(ausgleichRoll.14)+3 |
7569 3ca4 B7FF sbrs r27,7 |
7570 3ca6 00C0 rjmp .+4 |
7571 3ca8 0C94 0000 jmp .L1260 |
7572 .L935: |
7573 3cac 892F mov r24,r25 |
7574 3cae 9A2F mov r25,r26 |
7575 3cb0 AB2F mov r26,r27 |
7576 3cb2 BB27 clr r27 |
7577 3cb4 A7FD sbrc r26,7 |
7578 3cb6 BA95 dec r27 |
7579 3cb8 C090 0000 lds r12,LageKorrekturRoll |
7580 3cbc D090 0000 lds r13,(LageKorrekturRoll)+1 |
7581 3cc0 C80E add r12,r24 |
7582 3cc2 D91E adc r13,r25 |
7583 .L938: |
7584 3cc4 A989 ldd r26,Y+17 |
7585 3cc6 2A2F mov r18,r26 |
7586 3cc8 3327 clr r19 |
7587 3cca 8091 0000 lds r24,cnt.17 |
7588 3cce 9091 0000 lds r25,(cnt.17)+1 |
7589 3cd2 2817 cp r18,r24 |
7590 3cd4 3907 cpc r19,r25 |
7591 3cd6 04F4 brge .L939 |
7592 3cd8 3093 0000 sts (cnt.17)+1,r19 |
7593 3cdc 2093 0000 sts cnt.17,r18 |
7594 .L939: |
7595 3ce0 2F81 ldd r18,Y+7 |
7596 3ce2 3885 ldd r19,Y+8 |
7597 3ce4 4985 ldd r20,Y+9 |
7598 3ce6 5A85 ldd r21,Y+10 |
7599 3ce8 2138 cpi r18,lo8(129) |
7600 3cea 3105 cpc r19,__zero_reg__ |
7601 3cec 4105 cpc r20,__zero_reg__ |
7602 3cee 5105 cpc r21,__zero_reg__ |
7603 3cf0 04F0 brlt .L940 |
7604 3cf2 8091 0000 lds r24,AdNeutralRoll |
7605 3cf6 9091 0000 lds r25,(AdNeutralRoll)+1 |
7606 3cfa 2091 0000 lds r18,cnt.17 |
7607 3cfe 3091 0000 lds r19,(cnt.17)+1 |
7608 3d02 820F add r24,r18 |
7609 3d04 931F adc r25,r19 |
7610 3d06 9093 0000 sts (AdNeutralRoll)+1,r25 |
7611 3d0a 8093 0000 sts AdNeutralRoll,r24 |
7612 .L940: |
7613 3d0e 8F81 ldd r24,Y+7 |
7614 3d10 9885 ldd r25,Y+8 |
7615 3d12 A985 ldd r26,Y+9 |
7616 3d14 BA85 ldd r27,Y+10 |
7617 3d16 8058 subi r24,lo8(-128) |
7618 3d18 9F4F sbci r25,hi8(-128) |
7619 3d1a AF4F sbci r26,hlo8(-128) |
7620 3d1c BF4F sbci r27,hhi8(-128) |
7621 3d1e 04F0 brlt .+2 |
7622 3d20 00C0 rjmp .L942 |
7623 3d22 8091 0000 lds r24,AdNeutralRoll |
7624 3d26 9091 0000 lds r25,(AdNeutralRoll)+1 |
7625 3d2a 2091 0000 lds r18,cnt.17 |
7626 3d2e 3091 0000 lds r19,(cnt.17)+1 |
7627 3d32 821B sub r24,r18 |
7628 3d34 930B sbc r25,r19 |
7629 3d36 9093 0000 sts (AdNeutralRoll)+1,r25 |
7630 3d3a 8093 0000 sts AdNeutralRoll,r24 |
7631 3d3e 00C0 rjmp .L942 |
7632 .L862: |
7633 3d40 8091 0000 lds r24,EE_Parameter+23 |
7634 3d44 E82E mov r14,r24 |
7635 3d46 FF24 clr r15 |
7636 3d48 0027 clr r16 |
7637 3d4a 1127 clr r17 |
7638 3d4c 6D8D ldd r22,Y+29 |
7639 3d4e 7E8D ldd r23,Y+30 |
7640 3d50 8F8D ldd r24,Y+31 |
7641 3d52 98A1 ldd r25,Y+32 |
7642 3d54 A801 movw r20,r16 |
7643 3d56 9701 movw r18,r14 |
7644 3d58 0E94 0000 call __divmodsi4 |
7645 3d5c 5901 movw r10,r18 |
7646 3d5e 6A01 movw r12,r20 |
7647 3d60 8091 0000 lds r24,Mittelwert_AccNick |
7648 3d64 9091 0000 lds r25,(Mittelwert_AccNick)+1 |
7649 3d68 AA27 clr r26 |
7650 3d6a 97FD sbrc r25,7 |
7651 3d6c A095 com r26 |
7652 3d6e BA2F mov r27,r26 |
7653 3d70 A81A sub r10,r24 |
7654 3d72 B90A sbc r11,r25 |
7655 3d74 CA0A sbc r12,r26 |
7656 3d76 DB0A sbc r13,r27 |
7657 3d78 6C85 ldd r22,Y+12 |
7658 3d7a 7D85 ldd r23,Y+13 |
7659 3d7c 8E85 ldd r24,Y+14 |
7660 3d7e 9F85 ldd r25,Y+15 |
7661 3d80 A801 movw r20,r16 |
7662 3d82 9701 movw r18,r14 |
7663 3d84 0E94 0000 call __divmodsi4 |
7664 3d88 7901 movw r14,r18 |
7665 3d8a 8A01 movw r16,r20 |
7666 3d8c 8091 0000 lds r24,Mittelwert_AccRoll |
7667 3d90 9091 0000 lds r25,(Mittelwert_AccRoll)+1 |
7668 3d94 AA27 clr r26 |
7669 3d96 97FD sbrc r25,7 |
7670 3d98 A095 com r26 |
7671 3d9a BA2F mov r27,r26 |
7672 3d9c E81A sub r14,r24 |
7673 3d9e F90A sbc r15,r25 |
7674 3da0 0A0B sbc r16,r26 |
7675 3da2 1B0B sbc r17,r27 |
7676 3da4 D601 movw r26,r12 |
7677 3da6 C501 movw r24,r10 |
7678 3da8 D7FE sbrs r13,7 |
7679 3daa 00C0 rjmp .+4 |
7680 3dac 0C94 0000 jmp .L1261 |
7681 .L863: |
7682 3db0 5C01 movw r10,r24 |
7683 3db2 6D01 movw r12,r26 |
7684 3db4 A4E0 ldi r26,4 |
7685 3db6 D594 1: asr r13 |
7686 3db8 C794 ror r12 |
7687 3dba B794 ror r11 |
7688 3dbc A794 ror r10 |
7689 3dbe AA95 dec r26 |
7690 3dc0 01F4 brne 1b |
7691 3dc2 D801 movw r26,r16 |
7692 3dc4 C701 movw r24,r14 |
7693 3dc6 17FF sbrs r17,7 |
7694 3dc8 00C0 rjmp .+4 |
7695 3dca 0C94 0000 jmp .L1262 |
7696 .L864: |
7697 3dce 7C01 movw r14,r24 |
7698 3dd0 8D01 movw r16,r26 |
7699 3dd2 F4E0 ldi r31,4 |
7700 3dd4 1595 1: asr r17 |
7701 3dd6 0795 ror r16 |
7702 3dd8 F794 ror r15 |
7703 3dda E794 ror r14 |
7704 3ddc FA95 dec r31 |
7705 3dde 01F4 brne 1b |
7706 3de0 8091 0000 lds r24,MaxStickNick |
7707 3de4 9091 0000 lds r25,(MaxStickNick)+1 |
7708 3de8 8134 cpi r24,65 |
7709 3dea 9105 cpc r25,__zero_reg__ |
7710 3dec 04F4 brge .+2 |
7711 3dee 00C0 rjmp .L1263 |
7712 .L866: |
7713 3df0 C601 movw r24,r12 |
7714 3df2 B501 movw r22,r10 |
7715 3df4 23E0 ldi r18,lo8(3) |
7716 3df6 30E0 ldi r19,hi8(3) |
7717 3df8 40E0 ldi r20,hlo8(3) |
7718 3dfa 50E0 ldi r21,hhi8(3) |
7719 3dfc 0E94 0000 call __divmodsi4 |
7720 3e00 5901 movw r10,r18 |
7721 3e02 6A01 movw r12,r20 |
7722 3e04 C801 movw r24,r16 |
7723 3e06 B701 movw r22,r14 |
7724 3e08 23E0 ldi r18,lo8(3) |
7725 3e0a 30E0 ldi r19,hi8(3) |
7726 3e0c 40E0 ldi r20,hlo8(3) |
7727 3e0e 50E0 ldi r21,hhi8(3) |
7728 3e10 0E94 0000 call __divmodsi4 |
7729 3e14 7901 movw r14,r18 |
7730 3e16 8A01 movw r16,r20 |
7731 .L865: |
7732 3e18 8091 0000 lds r24,EE_Parameter+3 |
7733 3e1c E82F mov r30,r24 |
7734 3e1e FF27 clr r31 |
7735 3e20 EE0F add r30,r30 |
7736 3e22 FF1F adc r31,r31 |
7737 3e24 E050 subi r30,lo8(-(PPM_in)) |
7738 3e26 F040 sbci r31,hi8(-(PPM_in)) |
7739 3e28 8081 ld r24,Z |
7740 3e2a 9181 ldd r25,Z+1 |
7741 3e2c 0190 ld __tmp_reg__,Z+ |
7742 3e2e F081 ld r31,Z |
7743 3e30 E02D mov r30,__tmp_reg__ |
7744 3e32 F7FF sbrs r31,7 |
7745 3e34 00C0 rjmp .+4 |
7746 3e36 0C94 0000 jmp .L1264 |
7747 .L868: |
7748 3e3a 7A97 sbiw r30,26 |
7749 3e3c 04F0 brlt .L867 |
7750 3e3e C601 movw r24,r12 |
7751 3e40 B501 movw r22,r10 |
7752 3e42 23E0 ldi r18,lo8(3) |
7753 3e44 30E0 ldi r19,hi8(3) |
7754 3e46 40E0 ldi r20,hlo8(3) |
7755 3e48 50E0 ldi r21,hhi8(3) |
7756 3e4a 0E94 0000 call __divmodsi4 |
7757 3e4e 5901 movw r10,r18 |
7758 3e50 6A01 movw r12,r20 |
7759 3e52 C801 movw r24,r16 |
7760 3e54 B701 movw r22,r14 |
7761 3e56 23E0 ldi r18,lo8(3) |
7762 3e58 30E0 ldi r19,hi8(3) |
7763 3e5a 40E0 ldi r20,hlo8(3) |
7764 3e5c 50E0 ldi r21,hhi8(3) |
7765 3e5e 0E94 0000 call __divmodsi4 |
7766 3e62 7901 movw r14,r18 |
7767 3e64 8A01 movw r16,r20 |
7768 .L867: |
7769 3e66 41E2 ldi r20,lo8(33) |
7770 3e68 A416 cp r10,r20 |
7771 3e6a B104 cpc r11,__zero_reg__ |
7772 3e6c C104 cpc r12,__zero_reg__ |
7773 3e6e D104 cpc r13,__zero_reg__ |
7774 3e70 04F0 brlt .L869 |
7775 3e72 E0E2 ldi r30,lo8(32) |
7776 3e74 AE2E mov r10,r30 |
7777 3e76 B12C mov r11,__zero_reg__ |
7778 3e78 C12C mov r12,__zero_reg__ |
7779 3e7a D12C mov r13,__zero_reg__ |
7780 .L869: |
7781 3e7c 50EE ldi r21,lo8(-32) |
7782 3e7e A516 cp r10,r21 |
7783 3e80 5FEF ldi r21,hi8(-32) |
7784 3e82 B506 cpc r11,r21 |
7785 3e84 5FEF ldi r21,hlo8(-32) |
7786 3e86 C506 cpc r12,r21 |
7787 3e88 5FEF ldi r21,hhi8(-32) |
7788 3e8a D506 cpc r13,r21 |
7789 3e8c 04F4 brge .L870 |
7790 3e8e 70EE ldi r23,lo8(-32) |
7791 3e90 A72E mov r10,r23 |
7792 3e92 7FEF ldi r23,hi8(-32) |
7793 3e94 B72E mov r11,r23 |
7794 3e96 7FEF ldi r23,hlo8(-32) |
7795 3e98 C72E mov r12,r23 |
7796 3e9a 7FEF ldi r23,hhi8(-32) |
7797 3e9c D72E mov r13,r23 |
7798 .L870: |
7799 3e9e 61E2 ldi r22,lo8(33) |
7800 3ea0 E616 cp r14,r22 |
7801 3ea2 F104 cpc r15,__zero_reg__ |
7802 3ea4 0105 cpc r16,__zero_reg__ |
7803 3ea6 1105 cpc r17,__zero_reg__ |
7804 3ea8 04F0 brlt .L871 |
7805 3eaa 60E2 ldi r22,lo8(32) |
7806 3eac E62E mov r14,r22 |
7807 3eae F12C mov r15,__zero_reg__ |
7808 3eb0 012D mov r16,__zero_reg__ |
7809 3eb2 112D mov r17,__zero_reg__ |
7810 .L871: |
7811 3eb4 70EE ldi r23,lo8(-32) |
7812 3eb6 E716 cp r14,r23 |
7813 3eb8 7FEF ldi r23,hi8(-32) |
7814 3eba F706 cpc r15,r23 |
7815 3ebc 7FEF ldi r23,hlo8(-32) |
7816 3ebe 0707 cpc r16,r23 |
7817 3ec0 7FEF ldi r23,hhi8(-32) |
7818 3ec2 1707 cpc r17,r23 |
7819 3ec4 04F4 brge .L872 |
7820 3ec6 50EE ldi r21,lo8(-32) |
7821 3ec8 E52E mov r14,r21 |
7822 3eca 5FEF ldi r21,hi8(-32) |
7823 3ecc F52E mov r15,r21 |
7824 3ece 5FEF ldi r21,hlo8(-32) |
7825 3ed0 052F mov r16,r21 |
7826 3ed2 5FEF ldi r21,hhi8(-32) |
7827 3ed4 152F mov r17,r21 |
7828 .L872: |
7829 3ed6 8091 0000 lds r24,Mess_IntegralNick |
7830 3eda 9091 0000 lds r25,(Mess_IntegralNick)+1 |
7831 3ede A091 0000 lds r26,(Mess_IntegralNick)+2 |
7832 3ee2 B091 0000 lds r27,(Mess_IntegralNick)+3 |
7833 3ee6 8A19 sub r24,r10 |
7834 3ee8 9B09 sbc r25,r11 |
7835 3eea AC09 sbc r26,r12 |
7836 3eec BD09 sbc r27,r13 |
7837 3eee 8093 0000 sts Mess_IntegralNick,r24 |
7838 3ef2 9093 0000 sts (Mess_IntegralNick)+1,r25 |
7839 3ef6 A093 0000 sts (Mess_IntegralNick)+2,r26 |
7840 3efa B093 0000 sts (Mess_IntegralNick)+3,r27 |
7841 3efe 8091 0000 lds r24,Mess_IntegralRoll |
7842 3f02 9091 0000 lds r25,(Mess_IntegralRoll)+1 |
7843 3f06 A091 0000 lds r26,(Mess_IntegralRoll)+2 |
7844 3f0a B091 0000 lds r27,(Mess_IntegralRoll)+3 |
7845 3f0e 8E19 sub r24,r14 |
7846 3f10 9F09 sbc r25,r15 |
7847 3f12 A00B sbc r26,r16 |
7848 3f14 B10B sbc r27,r17 |
7849 3f16 8093 0000 sts Mess_IntegralRoll,r24 |
7850 3f1a 9093 0000 sts (Mess_IntegralRoll)+1,r25 |
7851 3f1e A093 0000 sts (Mess_IntegralRoll)+2,r26 |
7852 3f22 B093 0000 sts (Mess_IntegralRoll)+3,r27 |
7853 3f26 8091 0000 lds r24,ZaehlMessungen |
7854 3f2a 9091 0000 lds r25,(ZaehlMessungen)+1 |
7855 3f2e 8F3F cpi r24,255 |
7856 3f30 9105 cpc r25,__zero_reg__ |
7857 3f32 01F0 breq .+4 |
7858 3f34 00F0 brlo .+2 |
7859 3f36 00C0 rjmp .L1265 |
7860 .L1151: |
7861 3f38 2092 0000 sts MittelIntegralNick2,r2 |
7862 3f3c 3092 0000 sts (MittelIntegralNick2)+1,r3 |
7863 3f40 4092 0000 sts (MittelIntegralNick2)+2,r4 |
7864 3f44 5092 0000 sts (MittelIntegralNick2)+3,r5 |
7865 3f48 6092 0000 sts MittelIntegralRoll2,r6 |
7866 3f4c 7092 0000 sts (MittelIntegralRoll2)+1,r7 |
7867 3f50 8092 0000 sts (MittelIntegralRoll2)+2,r8 |
7868 3f54 9092 0000 sts (MittelIntegralRoll2)+3,r9 |
7869 3f58 F091 0000 lds r31,TrichterFlug |
7870 3f5c FC8F std Y+28,r31 |
7871 3f5e 0091 0000 lds r16,StickGier |
7872 3f62 1091 0000 lds r17,(StickGier)+1 |
7873 3f66 C801 movw r24,r16 |
7874 3f68 17FF sbrs r17,7 |
7875 3f6a 00C0 rjmp .L945 |
7876 .L1271: |
7877 3f6c 8827 clr r24 |
7878 3f6e 9927 clr r25 |
7879 3f70 801B sub r24,r16 |
7880 3f72 910B sbc r25,r17 |
7881 3f74 00C0 rjmp .L945 |
7882 .L860: |
7883 3f76 1092 0000 sts IntegralAccNick,__zero_reg__ |
7884 3f7a 1092 0000 sts (IntegralAccNick)+1,__zero_reg__ |
7885 3f7e 1092 0000 sts (IntegralAccNick)+2,__zero_reg__ |
7886 3f82 1092 0000 sts (IntegralAccNick)+3,__zero_reg__ |
7887 3f86 1092 0000 sts IntegralAccRoll,__zero_reg__ |
7888 3f8a 1092 0000 sts (IntegralAccRoll)+1,__zero_reg__ |
7889 3f8e 1092 0000 sts (IntegralAccRoll)+2,__zero_reg__ |
7890 3f92 1092 0000 sts (IntegralAccRoll)+3,__zero_reg__ |
7891 3f96 1092 0000 sts MittelIntegralNick,__zero_reg__ |
7892 3f9a 1092 0000 sts (MittelIntegralNick)+1,__zero_reg__ |
7893 3f9e 1092 0000 sts (MittelIntegralNick)+2,__zero_reg__ |
7894 3fa2 1092 0000 sts (MittelIntegralNick)+3,__zero_reg__ |
7895 3fa6 1092 0000 sts MittelIntegralRoll,__zero_reg__ |
7896 3faa 1092 0000 sts (MittelIntegralRoll)+1,__zero_reg__ |
7897 3fae 1092 0000 sts (MittelIntegralRoll)+2,__zero_reg__ |
7898 3fb2 1092 0000 sts (MittelIntegralRoll)+3,__zero_reg__ |
7899 3fb6 6624 clr r6 |
7900 3fb8 7724 clr r7 |
7901 3fba 4301 movw r8,r6 |
7902 3fbc 1301 movw r2,r6 |
7903 3fbe 2401 movw r4,r8 |
7904 3fc0 8091 0000 lds r24,Mess_IntegralNick |
7905 3fc4 9091 0000 lds r25,(Mess_IntegralNick)+1 |
7906 3fc8 A091 0000 lds r26,(Mess_IntegralNick)+2 |
7907 3fcc B091 0000 lds r27,(Mess_IntegralNick)+3 |
7908 3fd0 8093 0000 sts Mess_IntegralNick2,r24 |
7909 3fd4 9093 0000 sts (Mess_IntegralNick2)+1,r25 |
7910 3fd8 A093 0000 sts (Mess_IntegralNick2)+2,r26 |
7911 3fdc B093 0000 sts (Mess_IntegralNick2)+3,r27 |
7912 3fe0 8091 0000 lds r24,Mess_IntegralRoll |
7913 3fe4 9091 0000 lds r25,(Mess_IntegralRoll)+1 |
7914 3fe8 A091 0000 lds r26,(Mess_IntegralRoll)+2 |
7915 3fec B091 0000 lds r27,(Mess_IntegralRoll)+3 |
7916 3ff0 8093 0000 sts Mess_IntegralRoll2,r24 |
7917 3ff4 9093 0000 sts (Mess_IntegralRoll2)+1,r25 |
7918 3ff8 A093 0000 sts (Mess_IntegralRoll2)+2,r26 |
7919 3ffc B093 0000 sts (Mess_IntegralRoll2)+3,r27 |
7920 4000 1092 0000 sts (ZaehlMessungen)+1,__zero_reg__ |
7921 4004 1092 0000 sts ZaehlMessungen,__zero_reg__ |
7922 4008 1092 0000 sts (LageKorrekturNick)+1,__zero_reg__ |
7923 400c 1092 0000 sts LageKorrekturNick,__zero_reg__ |
7924 4010 1092 0000 sts (LageKorrekturRoll)+1,__zero_reg__ |
7925 4014 1092 0000 sts LageKorrekturRoll,__zero_reg__ |
7926 4018 1B85 ldd r17,Y+11 |
7927 401a 1123 tst r17 |
7928 401c 01F0 breq .+2 |
7929 401e 00C0 rjmp .L861 |
7930 4020 2B8D ldd r18,Y+27 |
7931 4022 2223 tst r18 |
7932 4024 01F0 breq .+2 |
7933 4026 00C0 rjmp .L861 |
7934 4028 00C0 rjmp .L1196 |
7935 .L1150: |
7936 402a B091 0000 lds r27,IntegralFaktorGier |
7937 402e BA8F std Y+26,r27 |
7938 4030 00C0 rjmp .L858 |
7939 .L811: |
7940 4032 7FEF ldi r23,hi8(-2) |
7941 4034 8E3F cpi r24,lo8(-2) |
7942 4036 9707 cpc r25,r23 |
7943 4038 04F0 brlt .+2 |
7944 403a 00C0 rjmp .L813 |
7945 403c 0296 adiw r24,2 |
7946 403e 0C94 0000 jmp .L1201 |
7947 .L819: |
7948 4042 B901 movw r22,r18 |
7949 4044 6150 subi r22,lo8(-(-1)) |
7950 4046 7040 sbci r23,hi8(-(-1)) |
7951 .L825: |
7952 4048 4091 0000 lds r20,StickRoll |
7953 404c 5091 0000 lds r21,(StickRoll)+1 |
7954 4050 CA01 movw r24,r20 |
7955 4052 57FF sbrs r21,7 |
7956 4054 00C0 rjmp .+4 |
7957 4056 0C94 0000 jmp .L1266 |
7958 .L827: |
7959 405a 9595 asr r25 |
7960 405c 8795 ror r24 |
7961 405e 9595 asr r25 |
7962 4060 8795 ror r24 |
7963 4062 97FF sbrs r25,7 |
7964 4064 00C0 rjmp .+4 |
7965 4066 0C94 0000 jmp .L1267 |
7966 .L828: |
7967 406a 2091 0000 lds r18,MaxStickRoll |
7968 406e 3091 0000 lds r19,(MaxStickRoll)+1 |
7969 4072 2817 cp r18,r24 |
7970 4074 3907 cpc r19,r25 |
7971 4076 04F0 brlt .+4 |
7972 4078 0C94 0000 jmp .L826 |
7973 .L1220: |
7974 407c CA01 movw r24,r20 |
7975 407e 57FF sbrs r21,7 |
7976 4080 00C0 rjmp .+4 |
7977 4082 0C94 0000 jmp .L1268 |
7978 .L829: |
7979 4086 97FF sbrs r25,7 |
7980 4088 00C0 rjmp .+4 |
7981 408a 0C94 0000 jmp .L1269 |
7982 .L830: |
7983 408e 9C01 movw r18,r24 |
7984 4090 3595 asr r19 |
7985 4092 2795 ror r18 |
7986 4094 3595 asr r19 |
7987 4096 2795 ror r18 |
7988 4098 2536 cpi r18,101 |
7989 409a 3105 cpc r19,__zero_reg__ |
7990 409c 04F4 brge .+4 |
7991 409e 0C94 0000 jmp .L832 |
7992 40a2 24E6 ldi r18,lo8(100) |
7993 40a4 30E0 ldi r19,hi8(100) |
7994 40a6 8091 0000 lds r24,MikroKopterFlags |
7995 40aa 84FF sbrs r24,4 |
7996 40ac 00C0 rjmp .+4 |
7997 40ae 0C94 0000 jmp .L1270 |
7998 .L1177: |
7999 40b2 3093 0000 sts (MaxStickRoll)+1,r19 |
8000 40b6 2093 0000 sts MaxStickRoll,r18 |
8001 40ba 7093 0000 sts (MaxStickNick)+1,r23 |
8002 40be 6093 0000 sts MaxStickNick,r22 |
8003 40c2 0C94 0000 jmp .L833 |
8004 .L1176: |
8005 40c6 F092 0000 sts IntegralFaktor,r15 |
8006 40ca 4091 0000 lds r20,StickNick |
8007 40ce 5091 0000 lds r21,(StickNick)+1 |
8008 40d2 CA01 movw r24,r20 |
8009 40d4 57FD sbrc r21,7 |
8010 40d6 00C0 rjmp .+4 |
8011 40d8 0C94 0000 jmp .L820 |
8012 .L1216: |
8013 40dc 0396 adiw r24,3 |
8014 40de 9595 asr r25 |
8015 40e0 8795 ror r24 |
8016 40e2 9595 asr r25 |
8017 40e4 8795 ror r24 |
8018 40e6 97FD sbrc r25,7 |
8019 40e8 00C0 rjmp .+4 |
8020 40ea 0C94 0000 jmp .L821 |
8021 .L1217: |
8022 40ee 9095 com r25 |
8023 40f0 8195 neg r24 |
8024 40f2 9F4F sbci r25,lo8(-1) |
8025 40f4 0C94 0000 jmp .L821 |
8026 .L1263: |
8027 40f8 8091 0000 lds r24,MaxStickRoll |
8028 40fc 9091 0000 lds r25,(MaxStickRoll)+1 |
8029 4100 8134 cpi r24,65 |
8030 4102 9105 cpc r25,__zero_reg__ |
8031 4104 04F4 brge .+2 |
8032 4106 00C0 rjmp .L865 |
8033 4108 00C0 rjmp .L866 |
8034 .L852: |
8035 410a 9093 0000 sts Looping_Roll,r25 |
8036 410e 8093 0000 sts Looping_Nick,r24 |
8037 4112 00C0 rjmp .L807 |
8038 .L813: |
8039 4114 1092 0000 sts (StickGier)+1,__zero_reg__ |
8040 4118 1092 0000 sts StickGier,__zero_reg__ |
8041 411c 0C94 0000 jmp .L812 |
8042 .L849: |
8043 4120 982F mov r25,r24 |
8044 4122 0C94 0000 jmp .L851 |
8045 .L1226: |
8046 4126 81E0 ldi r24,lo8(1) |
8047 4128 8093 0000 sts Looping_Unten,r24 |
8048 412c 0C94 0000 jmp .L846 |
8049 .L1224: |
8050 4130 81E0 ldi r24,lo8(1) |
8051 4132 8093 0000 sts Looping_Oben,r24 |
8052 4136 582F mov r21,r24 |
8053 4138 0C94 0000 jmp .L842 |
8054 .L1222: |
8055 413c 81E0 ldi r24,lo8(1) |
8056 413e 8093 0000 sts Looping_Rechts,r24 |
8057 4142 0C94 0000 jmp .L838 |
8058 .L1221: |
8059 4146 81E0 ldi r24,lo8(1) |
8060 4148 8093 0000 sts Looping_Links,r24 |
8061 414c 0C94 0000 jmp .L835 |
8062 .L1214: |
8063 4150 8091 0000 lds r24,ExternControl+3 |
8064 4154 9927 clr r25 |
8065 4156 87FD sbrc r24,7 |
8066 4158 9095 com r25 |
8067 415a 4E2D mov r20,r14 |
8068 415c 5527 clr r21 |
8069 415e 849F mul r24,r20 |
8070 4160 D001 movw r26,r0 |
8071 4162 859F mul r24,r21 |
8072 4164 B00D add r27,r0 |
8073 4166 949F mul r25,r20 |
8074 4168 B00D add r27,r0 |
8075 416a 1124 clr r1 |
8076 416c CD01 movw r24,r26 |
8077 416e 2091 0000 lds r18,StickNick |
8078 4172 3091 0000 lds r19,(StickNick)+1 |
8079 4176 820F add r24,r18 |
8080 4178 931F adc r25,r19 |
8081 417a 9093 0000 sts (StickNick)+1,r25 |
8082 417e 8093 0000 sts StickNick,r24 |
8083 4182 8091 0000 lds r24,ExternControl+4 |
8084 4186 9927 clr r25 |
8085 4188 87FD sbrc r24,7 |
8086 418a 9095 com r25 |
8087 418c 849F mul r24,r20 |
8088 418e F001 movw r30,r0 |
8089 4190 859F mul r24,r21 |
8090 4192 F00D add r31,r0 |
8091 4194 949F mul r25,r20 |
8092 4196 F00D add r31,r0 |
8093 4198 1124 clr r1 |
8094 419a CF01 movw r24,r30 |
8095 419c 2091 0000 lds r18,StickRoll |
8096 41a0 3091 0000 lds r19,(StickRoll)+1 |
8097 41a4 820F add r24,r18 |
8098 41a6 931F adc r25,r19 |
8099 41a8 9093 0000 sts (StickRoll)+1,r25 |
8100 41ac 8093 0000 sts StickRoll,r24 |
8101 41b0 8091 0000 lds r24,ExternControl+5 |
8102 41b4 9927 clr r25 |
8103 41b6 87FD sbrc r24,7 |
8104 41b8 9095 com r25 |
8105 41ba 2091 0000 lds r18,StickGier |
8106 41be 3091 0000 lds r19,(StickGier)+1 |
8107 41c2 820F add r24,r18 |
8108 41c4 931F adc r25,r19 |
8109 41c6 9093 0000 sts (StickGier)+1,r25 |
8110 41ca 8093 0000 sts StickGier,r24 |
8111 41ce 8091 0000 lds r24,ExternControl+7 |
8112 41d2 282F mov r18,r24 |
8113 41d4 3327 clr r19 |
8114 41d6 27FD sbrc r18,7 |
8115 41d8 3095 com r19 |
8116 41da 8091 0000 lds r24,EE_Parameter+13 |
8117 41de 9927 clr r25 |
8118 41e0 289F mul r18,r24 |
8119 41e2 A001 movw r20,r0 |
8120 41e4 299F mul r18,r25 |
8121 41e6 500D add r21,r0 |
8122 41e8 389F mul r19,r24 |
8123 41ea 500D add r21,r0 |
8124 41ec 1124 clr r1 |
8125 41ee 5093 0000 sts (ExternHoehenValue)+1,r21 |
8126 41f2 4093 0000 sts ExternHoehenValue,r20 |
8127 41f6 8091 0000 lds r24,ExternControl+6 |
8128 41fa 9927 clr r25 |
8129 41fc 8C15 cp r24,r12 |
8130 41fe 9D05 cpc r25,r13 |
8131 4200 04F0 brlt .+4 |
8132 4202 0C94 0000 jmp .L1175 |
8133 4206 9093 0000 sts (StickGas)+1,r25 |
8134 420a 8093 0000 sts StickGas,r24 |
8135 420e 0C94 0000 jmp .L815 |
8136 .L1228: |
8137 4212 8091 0000 lds r24,MotorenEin |
8138 4216 8823 tst r24 |
8139 4218 01F4 brne .+4 |
8140 421a 0C94 0000 jmp .L1147 |
8141 421e 8091 0000 lds r24,modell_fliegt |
8142 4222 9091 0000 lds r25,(modell_fliegt)+1 |
8143 4226 FFEF ldi r31,hi8(-1) |
8144 4228 8F3F cpi r24,lo8(-1) |
8145 422a 9F07 cpc r25,r31 |
8146 422c 01F4 brne .+4 |
8147 422e 0C94 0000 jmp .L736 |
8148 4232 0196 adiw r24,1 |
8149 4234 9093 0000 sts (modell_fliegt)+1,r25 |
8150 4238 8093 0000 sts modell_fliegt,r24 |
8151 423c 0C94 0000 jmp .L736 |
8152 .L1223: |
8153 4240 1092 0000 sts Looping_Rechts,__zero_reg__ |
8154 4244 0C94 0000 jmp .L838 |
8155 .L1227: |
8156 4248 1092 0000 sts Looping_Unten,__zero_reg__ |
8157 424c 0C94 0000 jmp .L846 |
8158 .L1225: |
8159 4250 1092 0000 sts Looping_Oben,__zero_reg__ |
8160 4254 50E0 ldi r21,lo8(0) |
8161 4256 0C94 0000 jmp .L842 |
8162 .L874: |
8163 425a 60E0 ldi r22,lo8(0) |
8164 425c 70E0 ldi r23,hi8(0) |
8165 425e 6B01 movw r12,r22 |
8166 4260 1092 0000 sts TrichterFlug,__zero_reg__ |
8167 4264 1C8E std Y+28,__zero_reg__ |
8168 4266 E090 0000 lds r14,MittelIntegralNick |
8169 426a F090 0000 lds r15,(MittelIntegralNick)+1 |
8170 426e 0091 0000 lds r16,(MittelIntegralNick)+2 |
8171 4272 1091 0000 lds r17,(MittelIntegralNick)+3 |
8172 4276 6090 0000 lds r6,MittelIntegralRoll |
8173 427a 7090 0000 lds r7,(MittelIntegralRoll)+1 |
8174 427e 8090 0000 lds r8,(MittelIntegralRoll)+2 |
8175 4282 9090 0000 lds r9,(MittelIntegralRoll)+3 |
8176 .L942: |
8177 4286 8091 0000 lds r24,IntegralFaktor |
8178 428a 8823 tst r24 |
8179 428c 01F0 breq .+2 |
8180 428e 00C0 rjmp .L1182 |
8181 4290 1092 0000 sts (LageKorrekturRoll)+1,__zero_reg__ |
8182 4294 1092 0000 sts LageKorrekturRoll,__zero_reg__ |
8183 4298 1092 0000 sts (LageKorrekturNick)+1,__zero_reg__ |
8184 429c 1092 0000 sts LageKorrekturNick,__zero_reg__ |
8185 .L943: |
8186 42a0 E092 0000 sts MittelIntegralNick_Alt.22,r14 |
8187 42a4 F092 0000 sts (MittelIntegralNick_Alt.22)+1,r15 |
8188 42a8 0093 0000 sts (MittelIntegralNick_Alt.22)+2,r16 |
8189 42ac 1093 0000 sts (MittelIntegralNick_Alt.22)+3,r17 |
8190 42b0 6092 0000 sts MittelIntegralRoll_Alt.23,r6 |
8191 42b4 7092 0000 sts (MittelIntegralRoll_Alt.23)+1,r7 |
8192 42b8 8092 0000 sts (MittelIntegralRoll_Alt.23)+2,r8 |
8193 42bc 9092 0000 sts (MittelIntegralRoll_Alt.23)+3,r9 |
8194 42c0 1092 0000 sts IntegralAccNick,__zero_reg__ |
8195 42c4 1092 0000 sts (IntegralAccNick)+1,__zero_reg__ |
8196 42c8 1092 0000 sts (IntegralAccNick)+2,__zero_reg__ |
8197 42cc 1092 0000 sts (IntegralAccNick)+3,__zero_reg__ |
8198 42d0 1092 0000 sts IntegralAccRoll,__zero_reg__ |
8199 42d4 1092 0000 sts (IntegralAccRoll)+1,__zero_reg__ |
8200 42d8 1092 0000 sts (IntegralAccRoll)+2,__zero_reg__ |
8201 42dc 1092 0000 sts (IntegralAccRoll)+3,__zero_reg__ |
8202 42e0 1092 0000 sts IntegralAccZ,__zero_reg__ |
8203 42e4 1092 0000 sts (IntegralAccZ)+1,__zero_reg__ |
8204 42e8 1092 0000 sts (IntegralAccZ)+2,__zero_reg__ |
8205 42ec 1092 0000 sts (IntegralAccZ)+3,__zero_reg__ |
8206 42f0 1092 0000 sts MittelIntegralNick,__zero_reg__ |
8207 42f4 1092 0000 sts (MittelIntegralNick)+1,__zero_reg__ |
8208 42f8 1092 0000 sts (MittelIntegralNick)+2,__zero_reg__ |
8209 42fc 1092 0000 sts (MittelIntegralNick)+3,__zero_reg__ |
8210 4300 1092 0000 sts MittelIntegralRoll,__zero_reg__ |
8211 4304 1092 0000 sts (MittelIntegralRoll)+1,__zero_reg__ |
8212 4308 1092 0000 sts (MittelIntegralRoll)+2,__zero_reg__ |
8213 430c 1092 0000 sts (MittelIntegralRoll)+3,__zero_reg__ |
8214 4310 1092 0000 sts MittelIntegralNick2,__zero_reg__ |
8215 4314 1092 0000 sts (MittelIntegralNick2)+1,__zero_reg__ |
8216 4318 1092 0000 sts (MittelIntegralNick2)+2,__zero_reg__ |
8217 431c 1092 0000 sts (MittelIntegralNick2)+3,__zero_reg__ |
8218 4320 1092 0000 sts MittelIntegralRoll2,__zero_reg__ |
8219 4324 1092 0000 sts (MittelIntegralRoll2)+1,__zero_reg__ |
8220 4328 1092 0000 sts (MittelIntegralRoll2)+2,__zero_reg__ |
8221 432c 1092 0000 sts (MittelIntegralRoll2)+3,__zero_reg__ |
8222 4330 1092 0000 sts (ZaehlMessungen)+1,__zero_reg__ |
8223 4334 1092 0000 sts ZaehlMessungen,__zero_reg__ |
8224 4338 0091 0000 lds r16,StickGier |
8225 433c 1091 0000 lds r17,(StickGier)+1 |
8226 4340 C801 movw r24,r16 |
8227 4342 17FD sbrc r17,7 |
8228 4344 00C0 rjmp .L1271 |
8229 .L945: |
8230 4346 4097 sbiw r24,16 |
8231 4348 04F0 brlt .L944 |
8232 434a 68EE ldi r22,lo8(1000) |
8233 434c 262E mov r2,r22 |
8234 434e 63E0 ldi r22,hi8(1000) |
8235 4350 362E mov r3,r22 |
8236 4352 3092 0000 sts (KompassSignalSchlecht)+1,r3 |
8237 4356 2092 0000 sts KompassSignalSchlecht,r2 |
8238 435a E888 ldd r14,Y+16 |
8239 435c E4FC sbrc r14,4 |
8240 435e 00C0 rjmp .L944 |
8241 4360 81E0 ldi r24,lo8(1) |
8242 4362 8093 0000 sts NeueKompassRichtungMerken.12,r24 |
8243 .L944: |
8244 4366 B090 0000 lds r11,EE_Parameter+20 |
8245 436a CB2C mov r12,r11 |
8246 436c DD24 clr r13 |
8247 436e EE24 clr r14 |
8248 4370 FF24 clr r15 |
8249 4372 B801 movw r22,r16 |
8250 4374 8827 clr r24 |
8251 4376 77FD sbrc r23,7 |
8252 4378 8095 com r24 |
8253 437a 982F mov r25,r24 |
8254 437c 9801 movw r18,r16 |
8255 437e 17FD sbrc r17,7 |
8256 4380 00C0 rjmp .L1272 |
8257 .L947: |
8258 4382 4427 clr r20 |
8259 4384 37FD sbrc r19,7 |
8260 4386 4095 com r20 |
8261 4388 542F mov r21,r20 |
8262 438a 0E94 0000 call __mulsi3 |
8263 438e 9B01 movw r18,r22 |
8264 4390 AC01 movw r20,r24 |
8265 4392 C701 movw r24,r14 |
8266 4394 B601 movw r22,r12 |
8267 4396 0E94 0000 call __mulsi3 |
8268 439a 97FD sbrc r25,7 |
8269 439c 00C0 rjmp .L1273 |
8270 .L948: |
8271 439e 59E0 ldi r21,9 |
8272 43a0 9595 1: asr r25 |
8273 43a2 8795 ror r24 |
8274 43a4 7795 ror r23 |
8275 43a6 6795 ror r22 |
8276 43a8 5A95 dec r21 |
8277 43aa 01F4 brne 1b |
8278 43ac 9B01 movw r18,r22 |
8279 43ae 8B2D mov r24,r11 |
8280 43b0 9927 clr r25 |
8281 43b2 809F mul r24,r16 |
8282 43b4 A001 movw r20,r0 |
8283 43b6 819F mul r24,r17 |
8284 43b8 500D add r21,r0 |
8285 43ba 909F mul r25,r16 |
8286 43bc 500D add r21,r0 |
8287 43be 1124 clr r1 |
8288 43c0 CA01 movw r24,r20 |
8289 43c2 57FD sbrc r21,7 |
8290 43c4 00C0 rjmp .L1274 |
8291 .L949: |
8292 43c6 9595 asr r25 |
8293 43c8 8795 ror r24 |
8294 43ca 9595 asr r25 |
8295 43cc 8795 ror r24 |
8296 43ce 280F add r18,r24 |
8297 43d0 391F adc r19,r25 |
8298 43d2 C901 movw r24,r18 |
8299 43d4 AA27 clr r26 |
8300 43d6 97FD sbrc r25,7 |
8301 43d8 A095 com r26 |
8302 43da BA2F mov r27,r26 |
8303 43dc 8093 0000 sts sollGier.2,r24 |
8304 43e0 9093 0000 sts (sollGier.2)+1,r25 |
8305 43e4 A093 0000 sts (sollGier.2)+2,r26 |
8306 43e8 B093 0000 sts (sollGier.2)+3,r27 |
8307 43ec 2091 0000 lds r18,Mess_Integral_Gier |
8308 43f0 3091 0000 lds r19,(Mess_Integral_Gier)+1 |
8309 43f4 4091 0000 lds r20,(Mess_Integral_Gier)+2 |
8310 43f8 5091 0000 lds r21,(Mess_Integral_Gier)+3 |
8311 43fc 281B sub r18,r24 |
8312 43fe 390B sbc r19,r25 |
8313 4400 4A0B sbc r20,r26 |
8314 4402 5B0B sbc r21,r27 |
8315 4404 2135 cpi r18,lo8(50001) |
8316 4406 63EC ldi r22,hi8(50001) |
8317 4408 3607 cpc r19,r22 |
8318 440a 60E0 ldi r22,hlo8(50001) |
8319 440c 4607 cpc r20,r22 |
8320 440e 60E0 ldi r22,hhi8(50001) |
8321 4410 5607 cpc r21,r22 |
8322 4412 04F4 brge .+2 |
8323 4414 00C0 rjmp .L1183 |
8324 4416 80E5 ldi r24,lo8(50000) |
8325 4418 93EC ldi r25,hi8(50000) |
8326 441a A0E0 ldi r26,hlo8(50000) |
8327 441c B0E0 ldi r27,hhi8(50000) |
8328 441e 8093 0000 sts Mess_Integral_Gier,r24 |
8329 4422 9093 0000 sts (Mess_Integral_Gier)+1,r25 |
8330 4426 A093 0000 sts (Mess_Integral_Gier)+2,r26 |
8331 442a B093 0000 sts (Mess_Integral_Gier)+3,r27 |
8332 .L950: |
8333 442e 8091 0000 lds r24,Mess_Integral_Gier |
8334 4432 9091 0000 lds r25,(Mess_Integral_Gier)+1 |
8335 4436 A091 0000 lds r26,(Mess_Integral_Gier)+2 |
8336 443a B091 0000 lds r27,(Mess_Integral_Gier)+3 |
8337 443e 805B subi r24,lo8(-50000) |
8338 4440 9C43 sbci r25,hi8(-50000) |
8339 4442 AF4F sbci r26,hlo8(-50000) |
8340 4444 BF4F sbci r27,hhi8(-50000) |
8341 4446 04F4 brge .L951 |
8342 4448 80EB ldi r24,lo8(-50000) |
8343 444a 9CE3 ldi r25,hi8(-50000) |
8344 444c AFEF ldi r26,hlo8(-50000) |
8345 444e BFEF ldi r27,hhi8(-50000) |
8346 4450 8093 0000 sts Mess_Integral_Gier,r24 |
8347 4454 9093 0000 sts (Mess_Integral_Gier)+1,r25 |
8348 4458 A093 0000 sts (Mess_Integral_Gier)+2,r26 |
8349 445c B093 0000 sts (Mess_Integral_Gier)+3,r27 |
8350 .L951: |
8351 4460 8091 0000 lds r24,KompassValue |
8352 4464 9091 0000 lds r25,(KompassValue)+1 |
8353 4468 9EA3 std Y+38,r25 |
8354 446a 8DA3 std Y+37,r24 |
8355 446c 892B or r24,r25 |
8356 446e 01F4 brne .+2 |
8357 4470 00C0 rjmp .L1153 |
8358 4472 9889 ldd r25,Y+16 |
8359 4474 93FF sbrs r25,3 |
8360 4476 00C0 rjmp .L1153 |
8361 4478 8D8D ldd r24,Y+29 |
8362 447a 9E8D ldd r25,Y+30 |
8363 447c AF8D ldd r26,Y+31 |
8364 447e B8A1 ldd r27,Y+32 |
8365 4480 B7FF sbrs r27,7 |
8366 4482 00C0 rjmp .+4 |
8367 4484 0C94 0000 jmp .L1275 |
8368 .L953: |
8369 4488 29E0 ldi r18,9 |
8370 448a B595 1: asr r27 |
8371 448c A795 ror r26 |
8372 448e 9795 ror r25 |
8373 4490 8795 ror r24 |
8374 4492 2A95 dec r18 |
8375 4494 01F4 brne 1b |
8376 4496 6C01 movw r12,r24 |
8377 4498 97FF sbrs r25,7 |
8378 449a 00C0 rjmp .+4 |
8379 449c 0C94 0000 jmp .L1276 |
8380 .L954: |
8381 44a0 8C85 ldd r24,Y+12 |
8382 44a2 9D85 ldd r25,Y+13 |
8383 44a4 AE85 ldd r26,Y+14 |
8384 44a6 BF85 ldd r27,Y+15 |
8385 44a8 B7FF sbrs r27,7 |
8386 44aa 00C0 rjmp .+4 |
8387 44ac 0C94 0000 jmp .L1277 |
8388 .L955: |
8389 44b0 09E0 ldi r16,9 |
8390 44b2 B595 1: asr r27 |
8391 44b4 A795 ror r26 |
8392 44b6 9795 ror r25 |
8393 44b8 8795 ror r24 |
8394 44ba 0A95 dec r16 |
8395 44bc 01F4 brne 1b |
8396 44be BC01 movw r22,r24 |
8397 44c0 97FF sbrs r25,7 |
8398 44c2 00C0 rjmp .+4 |
8399 44c4 0C94 0000 jmp .L1278 |
8400 .L956: |
8401 44c8 C616 cp r12,r22 |
8402 44ca D706 cpc r13,r23 |
8403 44cc 04F4 brge .L957 |
8404 44ce 6B01 movw r12,r22 |
8405 .L957: |
8406 44d0 B601 movw r22,r12 |
8407 44d2 D7FE sbrs r13,7 |
8408 44d4 00C0 rjmp .+4 |
8409 44d6 0C94 0000 jmp .L1279 |
8410 .L958: |
8411 44da 5B01 movw r10,r22 |
8412 44dc B594 asr r11 |
8413 44de A794 ror r10 |
8414 44e0 B594 asr r11 |
8415 44e2 A794 ror r10 |
8416 44e4 B594 asr r11 |
8417 44e6 A794 ror r10 |
8418 44e8 0894 sec |
8419 44ea A11C adc r10,__zero_reg__ |
8420 44ec B11C adc r11,__zero_reg__ |
8421 44ee ADA1 ldd r26,Y+37 |
8422 44f0 BEA1 ldd r27,Y+38 |
8423 44f2 A45E subi r26,lo8(-(540)) |
8424 44f4 BD4F sbci r27,hi8(-(540)) |
8425 44f6 7D01 movw r14,r26 |
8426 44f8 0027 clr r16 |
8427 44fa F7FC sbrc r15,7 |
8428 44fc 0095 com r16 |
8429 44fe 102F mov r17,r16 |
8430 4500 AC51 subi r26,lo8(-(-540)) |
8431 4502 B240 sbci r27,hi8(-(-540)) |
8432 4504 BEA3 std Y+38,r27 |
8433 4506 ADA3 std Y+37,r26 |
8434 4508 4090 0000 lds r4,ErsatzKompass |
8435 450c 5090 0000 lds r5,(ErsatzKompass)+1 |
8436 4510 6090 0000 lds r6,(ErsatzKompass)+2 |
8437 4514 7090 0000 lds r7,(ErsatzKompass)+3 |
8438 4518 2091 0000 lds r18,GIER_GRAD_FAKTOR |
8439 451c 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1 |
8440 4520 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2 |
8441 4524 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3 |
8442 4528 2A8B std Y+18,r18 |
8443 452a 3B8B std Y+19,r19 |
8444 452c 4C8B std Y+20,r20 |
8445 452e 5D8B std Y+21,r21 |
8446 4530 C301 movw r24,r6 |
8447 4532 B201 movw r22,r4 |
8448 4534 0E94 0000 call __divmodsi4 |
8449 4538 E21A sub r14,r18 |
8450 453a F30A sbc r15,r19 |
8451 453c 040B sbc r16,r20 |
8452 453e 150B sbc r17,r21 |
8453 4540 C801 movw r24,r16 |
8454 4542 B701 movw r22,r14 |
8455 4544 28E6 ldi r18,lo8(360) |
8456 4546 31E0 ldi r19,hi8(360) |
8457 4548 40E0 ldi r20,hlo8(360) |
8458 454a 50E0 ldi r21,hhi8(360) |
8459 454c 0E94 0000 call __divmodsi4 |
8460 4550 DC01 movw r26,r24 |
8461 4552 CB01 movw r24,r22 |
8462 4554 8C01 movw r16,r24 |
8463 4556 045B subi r16,lo8(-(-180)) |
8464 4558 1040 sbci r17,hi8(-(-180)) |
8465 455a 8090 0000 lds r8,MesswertGier |
8466 455e 9090 0000 lds r9,(MesswertGier)+1 |
8467 4562 C401 movw r24,r8 |
8468 4564 97FE sbrs r9,7 |
8469 4566 00C0 rjmp .+4 |
8470 4568 0C94 0000 jmp .L1280 |
8471 .L960: |
8472 456c 8138 cpi r24,129 |
8473 456e 9105 cpc r25,__zero_reg__ |
8474 4570 04F0 brlt .L959 |
8475 4572 00E0 ldi r16,lo8(0) |
8476 4574 10E0 ldi r17,hi8(0) |
8477 .L959: |
8478 4576 2090 0000 lds r2,KompassSignalSchlecht |
8479 457a 3090 0000 lds r3,(KompassSignalSchlecht)+1 |
8480 457e 2114 cp r2,__zero_reg__ |
8481 4580 3104 cpc r3,__zero_reg__ |
8482 4582 01F4 brne .L961 |
8483 4584 39E1 ldi r19,lo8(25) |
8484 4586 C316 cp r12,r19 |
8485 4588 D104 cpc r13,__zero_reg__ |
8486 458a 04F4 brge .L961 |
8487 458c 8091 0000 lds r24,GierGyroFehler |
8488 4590 9091 0000 lds r25,(GierGyroFehler)+1 |
8489 4594 800F add r24,r16 |
8490 4596 911F adc r25,r17 |
8491 4598 9093 0000 sts (GierGyroFehler)+1,r25 |
8492 459c 8093 0000 sts GierGyroFehler,r24 |
8493 45a0 8091 0000 lds r24,NeueKompassRichtungMerken.12 |
8494 45a4 8823 tst r24 |
8495 45a6 01F0 breq .+4 |
8496 45a8 0C94 0000 jmp .L1281 |
8497 .L961: |
8498 45ac C801 movw r24,r16 |
8499 45ae 880F lsl r24 |
8500 45b0 991F rol r25 |
8501 45b2 880F lsl r24 |
8502 45b4 991F rol r25 |
8503 45b6 880F lsl r24 |
8504 45b8 991F rol r25 |
8505 45ba B501 movw r22,r10 |
8506 45bc 0E94 0000 call __divmodhi4 |
8507 45c0 9B01 movw r18,r22 |
8508 45c2 4427 clr r20 |
8509 45c4 37FD sbrc r19,7 |
8510 45c6 4095 com r20 |
8511 45c8 542F mov r21,r20 |
8512 45ca 240D add r18,r4 |
8513 45cc 351D adc r19,r5 |
8514 45ce 461D adc r20,r6 |
8515 45d0 571D adc r21,r7 |
8516 45d2 2093 0000 sts ErsatzKompass,r18 |
8517 45d6 3093 0000 sts (ErsatzKompass)+1,r19 |
8518 45da 4093 0000 sts (ErsatzKompass)+2,r20 |
8519 45de 5093 0000 sts (ErsatzKompass)+3,r21 |
8520 45e2 1091 0000 lds r17,Parameter_KompassWirkung |
8521 45e6 612F mov r22,r17 |
8522 45e8 7727 clr r23 |
8523 45ea 6C9D mul r22,r12 |
8524 45ec C001 movw r24,r0 |
8525 45ee 6D9D mul r22,r13 |
8526 45f0 900D add r25,r0 |
8527 45f2 7C9D mul r23,r12 |
8528 45f4 900D add r25,r0 |
8529 45f6 1124 clr r1 |
8530 45f8 97FF sbrs r25,7 |
8531 45fa 00C0 rjmp .+4 |
8532 45fc 0C94 0000 jmp .L1282 |
8533 .L963: |
8534 4600 6C01 movw r12,r24 |
8535 4602 D594 asr r13 |
8536 4604 C794 ror r12 |
8537 4606 D594 asr r13 |
8538 4608 C794 ror r12 |
8539 460a D594 asr r13 |
8540 460c C794 ror r12 |
8541 460e D594 asr r13 |
8542 4610 C794 ror r12 |
8543 4612 D594 asr r13 |
8544 4614 C794 ror r12 |
8545 4616 6C19 sub r22,r12 |
8546 4618 7D09 sbc r23,r13 |
8547 461a 6B01 movw r12,r22 |
8548 461c 77FF sbrs r23,7 |
8549 461e 00C0 rjmp .+4 |
8550 4620 0C94 0000 jmp .L964 |
8551 4624 2114 cp r2,__zero_reg__ |
8552 4626 3104 cpc r3,__zero_reg__ |
8553 4628 01F0 breq .+4 |
8554 462a 0C94 0000 jmp .L1198 |
8555 462e E090 0000 lds r14,MaxStickNick |
8556 4632 F090 0000 lds r15,(MaxStickNick)+1 |
8557 4636 8091 0000 lds r24,MaxStickRoll |
8558 463a 9091 0000 lds r25,(MaxStickRoll)+1 |
8559 463e E80E add r14,r24 |
8560 4640 F91E adc r15,r25 |
8561 4642 F7FE sbrs r15,7 |
8562 4644 00C0 rjmp .+4 |
8563 4646 0C94 0000 jmp .L1283 |
8564 .L966: |
8565 464a F594 asr r15 |
8566 464c E794 ror r14 |
8567 464e F594 asr r15 |
8568 4650 E794 ror r14 |
8569 4652 F594 asr r15 |
8570 4654 E794 ror r14 |
8571 4656 80E4 ldi r24,lo8(64) |
8572 4658 90E0 ldi r25,hi8(64) |
8573 465a E80E add r14,r24 |
8574 465c F91E adc r15,r25 |
8575 465e CA01 movw r24,r20 |
8576 4660 B901 movw r22,r18 |
8577 4662 2A89 ldd r18,Y+18 |
8578 4664 3B89 ldd r19,Y+19 |
8579 4666 4C89 ldd r20,Y+20 |
8580 4668 5D89 ldd r21,Y+21 |
8581 466a 0E94 0000 call __divmodsi4 |
8582 466e DA01 movw r26,r20 |
8583 4670 C901 movw r24,r18 |
8584 4672 2091 0000 lds r18,KompassStartwert |
8585 4676 3091 0000 lds r19,(KompassStartwert)+1 |
8586 467a 4427 clr r20 |
8587 467c 37FD sbrc r19,7 |
8588 467e 4095 com r20 |
8589 4680 542F mov r21,r20 |
8590 4682 821B sub r24,r18 |
8591 4684 930B sbc r25,r19 |
8592 4686 A40B sbc r26,r20 |
8593 4688 B50B sbc r27,r21 |
8594 468a 845E subi r24,lo8(-(540)) |
8595 468c 9D4F sbci r25,hi8(-(540)) |
8596 468e AF4F sbci r26,hlo8(-(540)) |
8597 4690 BF4F sbci r27,hhi8(-(540)) |
8598 4692 BC01 movw r22,r24 |
8599 4694 CD01 movw r24,r26 |
8600 4696 28E6 ldi r18,lo8(360) |
8601 4698 31E0 ldi r19,hi8(360) |
8602 469a 40E0 ldi r20,hlo8(360) |
8603 469c 50E0 ldi r21,hhi8(360) |
8604 469e 0E94 0000 call __divmodsi4 |
8605 46a2 DC01 movw r26,r24 |
8606 46a4 CB01 movw r24,r22 |
8607 46a6 845B subi r24,lo8(-(-180)) |
8608 46a8 9040 sbci r25,hi8(-(-180)) |
8609 46aa 8C9D mul r24,r12 |
8610 46ac D001 movw r26,r0 |
8611 46ae 8D9D mul r24,r13 |
8612 46b0 B00D add r27,r0 |
8613 46b2 9C9D mul r25,r12 |
8614 46b4 B00D add r27,r0 |
8615 46b6 1124 clr r1 |
8616 46b8 CD01 movw r24,r26 |
8617 46ba B701 movw r22,r14 |
8618 46bc 0E94 0000 call __divmodhi4 |
8619 46c0 83E0 ldi r24,lo8(3) |
8620 46c2 189F mul r17,r24 |
8621 46c4 6001 movw r12,r0 |
8622 46c6 1124 clr r1 |
8623 46c8 C616 cp r12,r22 |
8624 46ca D706 cpc r13,r23 |
8625 46cc 04F4 brge .+4 |
8626 46ce 0C94 0000 jmp .L1284 |
8627 46d2 8827 clr r24 |
8628 46d4 9927 clr r25 |
8629 46d6 8C19 sub r24,r12 |
8630 46d8 9D09 sbc r25,r13 |
8631 46da 6817 cp r22,r24 |
8632 46dc 7907 cpc r23,r25 |
8633 46de 04F4 brge .L968 |
8634 46e0 BC01 movw r22,r24 |
8635 .L968: |
8636 46e2 CB01 movw r24,r22 |
8637 46e4 AA27 clr r26 |
8638 46e6 97FD sbrc r25,7 |
8639 46e8 A095 com r26 |
8640 46ea BA2F mov r27,r26 |
8641 46ec 2091 0000 lds r18,Mess_Integral_Gier |
8642 46f0 3091 0000 lds r19,(Mess_Integral_Gier)+1 |
8643 46f4 4091 0000 lds r20,(Mess_Integral_Gier)+2 |
8644 46f8 5091 0000 lds r21,(Mess_Integral_Gier)+3 |
8645 46fc 820F add r24,r18 |
8646 46fe 931F adc r25,r19 |
8647 4700 A41F adc r26,r20 |
8648 4702 B51F adc r27,r21 |
8649 4704 8093 0000 sts Mess_Integral_Gier,r24 |
8650 4708 9093 0000 sts (Mess_Integral_Gier)+1,r25 |
8651 470c A093 0000 sts (Mess_Integral_Gier)+2,r26 |
8652 4710 B093 0000 sts (Mess_Integral_Gier)+3,r27 |
8653 4714 00C0 rjmp .L952 |
8654 .L1153: |
8655 4716 8090 0000 lds r8,MesswertGier |
8656 471a 9090 0000 lds r9,(MesswertGier)+1 |
8657 .L952: |
8658 471e 8091 0000 lds r24,TimerWerteausgabe.11 |
8659 4722 8150 subi r24,lo8(-(-1)) |
8660 4724 8F3F cpi r24,lo8(-1) |
8661 4726 01F4 brne .+2 |
8662 4728 00C0 rjmp .L1285 |
8663 472a 8093 0000 sts TimerWerteausgabe.11,r24 |
8664 472e A090 0000 lds r10,MesswertNick |
8665 4732 B090 0000 lds r11,(MesswertNick)+1 |
8666 .L972: |
8667 4736 BC8D ldd r27,Y+28 |
8668 4738 BB23 tst r27 |
8669 473a 01F0 breq .L974 |
8670 473c 1092 0000 sts SummeRoll.1,__zero_reg__ |
8671 4740 1092 0000 sts (SummeRoll.1)+1,__zero_reg__ |
8672 4744 1092 0000 sts (SummeRoll.1)+2,__zero_reg__ |
8673 4748 1092 0000 sts (SummeRoll.1)+3,__zero_reg__ |
8674 474c 1092 0000 sts SummeNick.0,__zero_reg__ |
8675 4750 1092 0000 sts (SummeNick.0)+1,__zero_reg__ |
8676 4754 1092 0000 sts (SummeNick.0)+2,__zero_reg__ |
8677 4758 1092 0000 sts (SummeNick.0)+3,__zero_reg__ |
8678 .L974: |
8679 475c EB85 ldd r30,Y+11 |
8680 475e EE23 tst r30 |
8681 4760 01F0 breq .+2 |
8682 4762 00C0 rjmp .L975 |
8683 4764 8091 0000 lds r24,IntegralFaktor |
8684 4768 9927 clr r25 |
8685 476a AA27 clr r26 |
8686 476c BB27 clr r27 |
8687 476e BC01 movw r22,r24 |
8688 4770 CD01 movw r24,r26 |
8689 4772 2D8D ldd r18,Y+29 |
8690 4774 3E8D ldd r19,Y+30 |
8691 4776 4F8D ldd r20,Y+31 |
8692 4778 58A1 ldd r21,Y+32 |
8693 477a 0E94 0000 call __mulsi3 |
8694 477e DC01 movw r26,r24 |
8695 4780 CB01 movw r24,r22 |
8696 4782 BC01 movw r22,r24 |
8697 4784 CD01 movw r24,r26 |
8698 4786 28EF ldi r18,lo8(11000) |
8699 4788 3AE2 ldi r19,hi8(11000) |
8700 478a 40E0 ldi r20,hlo8(11000) |
8701 478c 50E0 ldi r21,hhi8(11000) |
8702 478e 0E94 0000 call __divmodsi4 |
8703 4792 2901 movw r4,r18 |
8704 .L976: |
8705 4794 FB8D ldd r31,Y+27 |
8706 4796 FF23 tst r31 |
8707 4798 01F0 breq .+2 |
8708 479a 00C0 rjmp .L977 |
8709 479c 8091 0000 lds r24,IntegralFaktor |
8710 47a0 9927 clr r25 |
8711 47a2 AA27 clr r26 |
8712 47a4 BB27 clr r27 |
8713 47a6 BC01 movw r22,r24 |
8714 47a8 CD01 movw r24,r26 |
8715 47aa 2C85 ldd r18,Y+12 |
8716 47ac 3D85 ldd r19,Y+13 |
8717 47ae 4E85 ldd r20,Y+14 |
8718 47b0 5F85 ldd r21,Y+15 |
8719 47b2 0E94 0000 call __mulsi3 |
8720 47b6 DC01 movw r26,r24 |
8721 47b8 CB01 movw r24,r22 |
8722 47ba BC01 movw r22,r24 |
8723 47bc CD01 movw r24,r26 |
8724 47be 28EF ldi r18,lo8(11000) |
8725 47c0 3AE2 ldi r19,hi8(11000) |
8726 47c2 40E0 ldi r20,hlo8(11000) |
8727 47c4 50E0 ldi r21,hhi8(11000) |
8728 47c6 0E94 0000 call __divmodsi4 |
8729 47ca 1901 movw r2,r18 |
8730 .L978: |
8731 47cc 0091 0000 lds r16,TrimNick |
8732 47d0 1091 0000 lds r17,(TrimNick)+1 |
8733 47d4 093C cpi r16,201 |
8734 47d6 1105 cpc r17,__zero_reg__ |
8735 47d8 04F4 brge .+2 |
8736 47da 00C0 rjmp .L979 |
8737 47dc 08EC ldi r16,lo8(200) |
8738 47de 10E0 ldi r17,hi8(200) |
8739 .L1202: |
8740 47e0 1093 0000 sts (TrimNick)+1,r17 |
8741 47e4 0093 0000 sts TrimNick,r16 |
8742 .L980: |
8743 47e8 4091 0000 lds r20,TrimRoll |
8744 47ec 5091 0000 lds r21,(TrimRoll)+1 |
8745 47f0 5EA3 std Y+38,r21 |
8746 47f2 4DA3 std Y+37,r20 |
8747 47f4 493C cpi r20,201 |
8748 47f6 5105 cpc r21,__zero_reg__ |
8749 47f8 04F4 brge .+2 |
8750 47fa 00C0 rjmp .L982 |
8751 47fc 68EC ldi r22,lo8(200) |
8752 47fe 70E0 ldi r23,hi8(200) |
8753 4800 7EA3 std Y+38,r23 |
8754 4802 6DA3 std Y+37,r22 |
8755 4804 7093 0000 sts (TrimRoll)+1,r23 |
8756 4808 6093 0000 sts TrimRoll,r22 |
8757 .L983: |
8758 480c C501 movw r24,r10 |
8759 480e AA27 clr r26 |
8760 4810 97FD sbrc r25,7 |
8761 4812 A095 com r26 |
8762 4814 BA2F mov r27,r26 |
8763 4816 2091 0000 lds r18,GyroFaktor |
8764 481a C22E mov r12,r18 |
8765 481c DD24 clr r13 |
8766 481e EE24 clr r14 |
8767 4820 FF24 clr r15 |
8768 4822 BC01 movw r22,r24 |
8769 4824 CD01 movw r24,r26 |
8770 4826 A701 movw r20,r14 |
8771 4828 9601 movw r18,r12 |
8772 482a 0E94 0000 call __mulsi3 |
8773 482e 9B01 movw r18,r22 |
8774 4830 AC01 movw r20,r24 |
8775 4832 C801 movw r24,r16 |
8776 4834 AA27 clr r26 |
8777 4836 97FD sbrc r25,7 |
8778 4838 A095 com r26 |
8779 483a BA2F mov r27,r26 |
8780 483c 67E0 ldi r22,7 |
8781 483e 880F 1: lsl r24 |
8782 4840 991F rol r25 |
8783 4842 AA1F rol r26 |
8784 4844 BB1F rol r27 |
8785 4846 6A95 dec r22 |
8786 4848 01F4 brne 1b |
8787 484a 280F add r18,r24 |
8788 484c 391F adc r19,r25 |
8789 484e 4A1F adc r20,r26 |
8790 4850 5B1F adc r21,r27 |
8791 4852 57FD sbrc r21,7 |
8792 4854 00C0 rjmp .L1286 |
8793 .L985: |
8794 4856 86E0 ldi r24,6 |
8795 4858 5595 1: asr r21 |
8796 485a 4795 ror r20 |
8797 485c 3795 ror r19 |
8798 485e 2795 ror r18 |
8799 4860 8A95 dec r24 |
8800 4862 01F4 brne 1b |
8801 4864 5201 movw r10,r4 |
8802 4866 A20E add r10,r18 |
8803 4868 B31E adc r11,r19 |
8804 486a 3501 movw r6,r10 |
8805 486c 8091 0000 lds r24,MesswertRoll |
8806 4870 9091 0000 lds r25,(MesswertRoll)+1 |
8807 4874 AA27 clr r26 |
8808 4876 97FD sbrc r25,7 |
8809 4878 A095 com r26 |
8810 487a BA2F mov r27,r26 |
8811 487c BC01 movw r22,r24 |
8812 487e CD01 movw r24,r26 |
8813 4880 A701 movw r20,r14 |
8814 4882 9601 movw r18,r12 |
8815 4884 0E94 0000 call __mulsi3 |
8816 4888 9B01 movw r18,r22 |
8817 488a AC01 movw r20,r24 |
8818 488c EDA0 ldd r14,Y+37 |
8819 488e FEA0 ldd r15,Y+38 |
8820 4890 C701 movw r24,r14 |
8821 4892 AA27 clr r26 |
8822 4894 97FD sbrc r25,7 |
8823 4896 A095 com r26 |
8824 4898 BA2F mov r27,r26 |
8825 489a 07E0 ldi r16,7 |
8826 489c 880F 1: lsl r24 |
8827 489e 991F rol r25 |
8828 48a0 AA1F rol r26 |
8829 48a2 BB1F rol r27 |
8830 48a4 0A95 dec r16 |
8831 48a6 01F4 brne 1b |
8832 48a8 280F add r18,r24 |
8833 48aa 391F adc r19,r25 |
8834 48ac 4A1F adc r20,r26 |
8835 48ae 5B1F adc r21,r27 |
8836 48b0 57FD sbrc r21,7 |
8837 48b2 00C0 rjmp .L1287 |
8838 .L986: |
8839 48b4 16E0 ldi r17,6 |
8840 48b6 5595 1: asr r21 |
8841 48b8 4795 ror r20 |
8842 48ba 3795 ror r19 |
8843 48bc 2795 ror r18 |
8844 48be 1A95 dec r17 |
8845 48c0 01F4 brne 1b |
8846 48c2 8101 movw r16,r2 |
8847 48c4 020F add r16,r18 |
8848 48c6 131F adc r17,r19 |
8849 48c8 1EA3 std Y+38,r17 |
8850 48ca 0DA3 std Y+37,r16 |
8851 48cc 6801 movw r12,r16 |
8852 48ce 880C add r8,r8 |
8853 48d0 991C adc r9,r9 |
8854 48d2 C401 movw r24,r8 |
8855 48d4 AA27 clr r26 |
8856 48d6 97FD sbrc r25,7 |
8857 48d8 A095 com r26 |
8858 48da BA2F mov r27,r26 |
8859 48dc 2091 0000 lds r18,GyroFaktorGier |
8860 48e0 3327 clr r19 |
8861 48e2 4427 clr r20 |
8862 48e4 5527 clr r21 |
8863 48e6 BC01 movw r22,r24 |
8864 48e8 CD01 movw r24,r26 |
8865 48ea 0E94 0000 call __mulsi3 |
8866 48ee 7B01 movw r14,r22 |
8867 48f0 8C01 movw r16,r24 |
8868 48f2 97FD sbrc r25,7 |
8869 48f4 00C0 rjmp .L1288 |
8870 .L987: |
8871 48f6 B6E0 ldi r27,6 |
8872 48f8 1595 1: asr r17 |
8873 48fa 0795 ror r16 |
8874 48fc F794 ror r15 |
8875 48fe E794 ror r14 |
8876 4900 BA95 dec r27 |
8877 4902 01F4 brne 1b |
8878 4904 3A8D ldd r19,Y+26 |
8879 4906 832F mov r24,r19 |
8880 4908 9927 clr r25 |
8881 490a AA27 clr r26 |
8882 490c BB27 clr r27 |
8883 490e 2091 0000 lds r18,Integral_Gier |
8884 4912 3091 0000 lds r19,(Integral_Gier)+1 |
8885 4916 4091 0000 lds r20,(Integral_Gier)+2 |
8886 491a 5091 0000 lds r21,(Integral_Gier)+3 |
8887 491e BC01 movw r22,r24 |
8888 4920 CD01 movw r24,r26 |
8889 4922 0E94 0000 call __mulsi3 |
8890 4926 DC01 movw r26,r24 |
8891 4928 CB01 movw r24,r22 |
8892 492a BC01 movw r22,r24 |
8893 492c CD01 movw r24,r26 |
8894 492e 20EF ldi r18,lo8(22000) |
8895 4930 35E5 ldi r19,hi8(22000) |
8896 4932 40E0 ldi r20,hlo8(22000) |
8897 4934 50E0 ldi r21,hhi8(22000) |
8898 4936 0E94 0000 call __divmodsi4 |
8899 493a 4701 movw r8,r14 |
8900 493c 820E add r8,r18 |
8901 493e 931E adc r9,r19 |
8902 4940 C401 movw r24,r8 |
8903 4942 41E0 ldi r20,lo8(16385) |
8904 4944 A416 cp r10,r20 |
8905 4946 40E4 ldi r20,hi8(16385) |
8906 4948 B406 cpc r11,r20 |
8907 494a 04F0 brlt .L988 |
8908 494c A12C mov r10,__zero_reg__ |
8909 494e A0E4 ldi r26,hi8(16384) |
8910 4950 BA2E mov r11,r26 |
8911 4952 3501 movw r6,r10 |
8912 .L988: |
8913 4954 50E0 ldi r21,lo8(-16384) |
8914 4956 A516 cp r10,r21 |
8915 4958 50EC ldi r21,hi8(-16384) |
8916 495a B506 cpc r11,r21 |
8917 495c 04F0 brlt .+2 |
8918 495e 00C0 rjmp .L1184 |
8919 4960 A12C mov r10,__zero_reg__ |
8920 4962 F0EC ldi r31,hi8(-16384) |
8921 4964 BF2E mov r11,r31 |
8922 4966 B092 0000 sts (MesswertNick)+1,r11 |
8923 496a A092 0000 sts MesswertNick,r10 |
8924 .L989: |
8925 496e 6DA1 ldd r22,Y+37 |
8926 4970 7EA1 ldd r23,Y+38 |
8927 4972 6150 subi r22,lo8(16385) |
8928 4974 7044 sbci r23,hi8(16385) |
8929 4976 04F0 brlt .L990 |
8930 4978 E0E0 ldi r30,lo8(16384) |
8931 497a F0E4 ldi r31,hi8(16384) |
8932 497c FEA3 std Y+38,r31 |
8933 497e EDA3 std Y+37,r30 |
8934 4980 6F01 movw r12,r30 |
8935 .L990: |
8936 4982 0DA1 ldd r16,Y+37 |
8937 4984 1EA1 ldd r17,Y+38 |
8938 4986 0050 subi r16,lo8(-16384) |
8939 4988 104C sbci r17,hi8(-16384) |
8940 498a 04F0 brlt .+2 |
8941 498c 00C0 rjmp .L1185 |
8942 498e 40E0 ldi r20,lo8(-16384) |
8943 4990 50EC ldi r21,hi8(-16384) |
8944 4992 5EA3 std Y+38,r21 |
8945 4994 4DA3 std Y+37,r20 |
8946 4996 5093 0000 sts (MesswertRoll)+1,r21 |
8947 499a 4093 0000 sts MesswertRoll,r20 |
8948 .L991: |
8949 499e 51E0 ldi r21,lo8(16385) |
8950 49a0 8516 cp r8,r21 |
8951 49a2 50E4 ldi r21,hi8(16385) |
8952 49a4 9506 cpc r9,r21 |
8953 49a6 04F0 brlt .L992 |
8954 49a8 812C mov r8,__zero_reg__ |
8955 49aa E0E4 ldi r30,hi8(16384) |
8956 49ac 9E2E mov r9,r30 |
8957 49ae C401 movw r24,r8 |
8958 .L992: |
8959 49b0 60E0 ldi r22,lo8(-16384) |
8960 49b2 8616 cp r8,r22 |
8961 49b4 60EC ldi r22,hi8(-16384) |
8962 49b6 9606 cpc r9,r22 |
8963 49b8 04F0 brlt .+2 |
8964 49ba 00C0 rjmp .L1186 |
8965 49bc 812C mov r8,__zero_reg__ |
8966 49be 70EC ldi r23,hi8(-16384) |
8967 49c0 972E mov r9,r23 |
8968 49c2 9092 0000 sts (MesswertGier)+1,r9 |
8969 49c6 8092 0000 sts MesswertGier,r8 |
8970 .L993: |
8971 49ca 8091 0000 lds r24,BattLowVoltageWarning |
8972 49ce 482F mov r20,r24 |
8973 49d0 5527 clr r21 |
8974 49d2 8091 0000 lds r24,UBat |
8975 49d6 9091 0000 lds r25,(UBat)+1 |
8976 49da 4817 cp r20,r24 |
8977 49dc 5907 cpc r21,r25 |
8978 49de 04F4 brge .L994 |
8979 49e0 2091 0000 lds r18,UBat |
8980 49e4 3091 0000 lds r19,(UBat)+1 |
8981 49e8 A981 ldd r26,Y+1 |
8982 49ea BA81 ldd r27,Y+2 |
8983 49ec 4A9F mul r20,r26 |
8984 49ee C001 movw r24,r0 |
8985 49f0 4B9F mul r20,r27 |
8986 49f2 900D add r25,r0 |
8987 49f4 5A9F mul r21,r26 |
8988 49f6 900D add r25,r0 |
8989 49f8 1124 clr r1 |
8990 49fa B901 movw r22,r18 |
8991 49fc 0E94 0000 call __udivmodhi4 |
8992 4a00 7A83 std Y+2,r23 |
8993 4a02 6983 std Y+1,r22 |
8994 .L994: |
8995 4a04 E981 ldd r30,Y+1 |
8996 4a06 FA81 ldd r31,Y+2 |
8997 4a08 EE0F lsl r30 |
8998 4a0a FF1F rol r31 |
8999 4a0c EE0F lsl r30 |
9000 4a0e FF1F rol r31 |
9001 4a10 FA83 std Y+2,r31 |
9002 4a12 E983 std Y+1,r30 |
9003 4a14 F889 ldd r31,Y+16 |
9004 4a16 F0FF sbrs r31,0 |
9005 4a18 00C0 rjmp .L1157 |
9006 4a1a 0B8D ldd r16,Y+27 |
9007 4a1c 0023 tst r16 |
9008 4a1e 01F4 brne .L1157 |
9009 4a20 1B85 ldd r17,Y+11 |
9010 4a22 1123 tst r17 |
9011 4a24 01F4 brne .L1157 |
9012 4a26 2091 0000 lds r18,BaroExpandActive |
9013 4a2a 3091 0000 lds r19,(BaroExpandActive)+1 |
9014 4a2e 2115 cp r18,__zero_reg__ |
9015 4a30 3105 cpc r19,__zero_reg__ |
9016 4a32 01F0 breq .+2 |
9017 4a34 00C0 rjmp .L996 |
9018 4a36 8091 0000 lds r24,MessLuftdruck |
9019 4a3a 9091 0000 lds r25,(MessLuftdruck)+1 |
9020 4a3e 8959 subi r24,lo8(921) |
9021 4a40 9340 sbci r25,hi8(921) |
9022 4a42 00F0 brlo .+2 |
9023 4a44 00C0 rjmp .L1289 |
9024 4a46 8091 0000 lds r24,MessLuftdruck |
9025 4a4a 9091 0000 lds r25,(MessLuftdruck)+1 |
9026 4a4e 8436 cpi r24,100 |
9027 4a50 9105 cpc r25,__zero_reg__ |
9028 4a52 00F0 brlo .+4 |
9029 4a54 0C94 0000 jmp .L1001 |
9030 4a58 87B5 in r24,71-0x20 |
9031 4a5a 8B30 cpi r24,lo8(11) |
9032 4a5c 00F4 brsh .+4 |
9033 4a5e 0C94 0000 jmp .L1002 |
9034 4a62 8091 0000 lds r24,ExpandBaro |
9035 4a66 8F5F subi r24,lo8(-(1)) |
9036 .L1203: |
9037 4a68 8093 0000 sts ExpandBaro,r24 |
9038 4a6c 9AE0 ldi r25,lo8(10) |
9039 4a6e 8902 muls r24,r25 |
9040 4a70 9001 movw r18,r0 |
9041 4a72 1124 clr r1 |
9042 4a74 8091 0000 lds r24,DruckOffsetSetting |
9043 4a78 821B sub r24,r18 |
9044 4a7a 87BD out 71-0x20,r24 |
9045 4a7c 8CE2 ldi r24,lo8(300) |
9046 4a7e 91E0 ldi r25,hi8(300) |
9047 4a80 9093 0000 sts (beeptime)+1,r25 |
9048 4a84 8093 0000 sts beeptime,r24 |
9049 4a88 8EE5 ldi r24,lo8(350) |
9050 4a8a 91E0 ldi r25,hi8(350) |
9051 4a8c 9093 0000 sts (BaroExpandActive)+1,r25 |
9052 4a90 8093 0000 sts BaroExpandActive,r24 |
9053 4a94 00C0 rjmp .L1005 |
9054 .L1157: |
9055 4a96 D090 0000 lds r13,MAX_GAS |
9056 .L995: |
9057 4a9a 8091 0000 lds r24,MIN_GAS |
9058 4a9e 9927 clr r25 |
9059 4aa0 880F lsl r24 |
9060 4aa2 991F rol r25 |
9061 4aa4 880F lsl r24 |
9062 4aa6 991F rol r25 |
9063 4aa8 8896 adiw r24,40 |
9064 4aaa 6981 ldd r22,Y+1 |
9065 4aac 7A81 ldd r23,Y+2 |
9066 4aae 6817 cp r22,r24 |
9067 4ab0 7907 cpc r23,r25 |
9068 4ab2 04F4 brge .L1088 |
9069 4ab4 9A83 std Y+2,r25 |
9070 4ab6 8983 std Y+1,r24 |
9071 .L1088: |
9072 4ab8 8D2D mov r24,r13 |
9073 4aba 9927 clr r25 |
9074 4abc 880F lsl r24 |
9075 4abe 991F rol r25 |
9076 4ac0 880F lsl r24 |
9077 4ac2 991F rol r25 |
9078 4ac4 8055 subi r24,lo8(-(-80)) |
9079 4ac6 9040 sbci r25,hi8(-(-80)) |
9080 4ac8 A981 ldd r26,Y+1 |
9081 4aca BA81 ldd r27,Y+2 |
9082 4acc 8A17 cp r24,r26 |
9083 4ace 9B07 cpc r25,r27 |
9084 4ad0 04F4 brge .L1089 |
9085 4ad2 9A83 std Y+2,r25 |
9086 4ad4 8983 std Y+1,r24 |
9087 .L1089: |
9088 4ad6 8091 0000 lds r24,MissingMotor |
9089 4ada 8823 tst r24 |
9090 4adc 01F0 breq .L1090 |
9091 4ade 8091 0000 lds r24,modell_fliegt |
9092 4ae2 9091 0000 lds r25,(modell_fliegt)+1 |
9093 4ae6 0297 sbiw r24,2 |
9094 4ae8 C097 sbiw r24,48 |
9095 4aea 00F4 brsh .L1090 |
9096 4aec E981 ldd r30,Y+1 |
9097 4aee FA81 ldd r31,Y+2 |
9098 4af0 1E16 cp __zero_reg__,r30 |
9099 4af2 1F06 cpc __zero_reg__,r31 |
9100 4af4 04F4 brge .L1090 |
9101 4af6 81E0 ldi r24,lo8(1) |
9102 4af8 90E0 ldi r25,hi8(1) |
9103 4afa 9093 0000 sts (modell_fliegt)+1,r25 |
9104 4afe 8093 0000 sts modell_fliegt,r24 |
9105 .L1090: |
9106 4b02 8091 0000 lds r24,StickNick |
9107 4b06 9091 0000 lds r25,(StickNick)+1 |
9108 4b0a B501 movw r22,r10 |
9109 4b0c 681B sub r22,r24 |
9110 4b0e 790B sbc r23,r25 |
9111 4b10 7093 0000 sts (DiffNick)+1,r23 |
9112 4b14 6093 0000 sts DiffNick,r22 |
9113 4b18 E091 0000 lds r30,IntegralFaktor |
9114 4b1c EE23 tst r30 |
9115 4b1e 01F4 brne .+2 |
9116 4b20 00C0 rjmp .L1104 |
9117 4b22 481A sub r4,r24 |
9118 4b24 590A sbc r5,r25 |
9119 4b26 C201 movw r24,r4 |
9120 4b28 AA27 clr r26 |
9121 4b2a 97FD sbrc r25,7 |
9122 4b2c A095 com r26 |
9123 4b2e BA2F mov r27,r26 |
9124 .L1208: |
9125 4b30 2091 0000 lds r18,SummeNick.0 |
9126 4b34 3091 0000 lds r19,(SummeNick.0)+1 |
9127 4b38 4091 0000 lds r20,(SummeNick.0)+2 |
9128 4b3c 5091 0000 lds r21,(SummeNick.0)+3 |
9129 4b40 820F add r24,r18 |
9130 4b42 931F adc r25,r19 |
9131 4b44 A41F adc r26,r20 |
9132 4b46 B51F adc r27,r21 |
9133 4b48 8093 0000 sts SummeNick.0,r24 |
9134 4b4c 9093 0000 sts (SummeNick.0)+1,r25 |
9135 4b50 A093 0000 sts (SummeNick.0)+2,r26 |
9136 4b54 B093 0000 sts (SummeNick.0)+3,r27 |
9137 4b58 8091 0000 lds r24,SummeNick.0 |
9138 4b5c 9091 0000 lds r25,(SummeNick.0)+1 |
9139 4b60 A091 0000 lds r26,(SummeNick.0)+2 |
9140 4b64 B091 0000 lds r27,(SummeNick.0)+3 |
9141 4b68 8130 cpi r24,lo8(64001) |
9142 4b6a FAEF ldi r31,hi8(64001) |
9143 4b6c 9F07 cpc r25,r31 |
9144 4b6e F0E0 ldi r31,hlo8(64001) |
9145 4b70 AF07 cpc r26,r31 |
9146 4b72 F0E0 ldi r31,hhi8(64001) |
9147 4b74 BF07 cpc r27,r31 |
9148 4b76 04F0 brlt .L1106 |
9149 4b78 80E0 ldi r24,lo8(64000) |
9150 4b7a 9AEF ldi r25,hi8(64000) |
9151 4b7c A0E0 ldi r26,hlo8(64000) |
9152 4b7e B0E0 ldi r27,hhi8(64000) |
9153 4b80 8093 0000 sts SummeNick.0,r24 |
9154 4b84 9093 0000 sts (SummeNick.0)+1,r25 |
9155 4b88 A093 0000 sts (SummeNick.0)+2,r26 |
9156 4b8c B093 0000 sts (SummeNick.0)+3,r27 |
9157 .L1106: |
9158 4b90 8050 subi r24,lo8(-64000) |
9159 4b92 9640 sbci r25,hi8(-64000) |
9160 4b94 AF4F sbci r26,hlo8(-64000) |
9161 4b96 BF4F sbci r27,hhi8(-64000) |
9162 4b98 04F4 brge .L1107 |
9163 4b9a 80E0 ldi r24,lo8(-64000) |
9164 4b9c 96E0 ldi r25,hi8(-64000) |
9165 4b9e AFEF ldi r26,hlo8(-64000) |
9166 4ba0 BFEF ldi r27,hhi8(-64000) |
9167 4ba2 8093 0000 sts SummeNick.0,r24 |
9168 4ba6 9093 0000 sts (SummeNick.0)+1,r25 |
9169 4baa A093 0000 sts (SummeNick.0)+2,r26 |
9170 4bae B093 0000 sts (SummeNick.0)+3,r27 |
9171 .L1107: |
9172 4bb2 8091 0000 lds r24,StickRoll |
9173 4bb6 9091 0000 lds r25,(StickRoll)+1 |
9174 4bba 6DA1 ldd r22,Y+37 |
9175 4bbc 7EA1 ldd r23,Y+38 |
9176 4bbe 681B sub r22,r24 |
9177 4bc0 790B sbc r23,r25 |
9178 4bc2 7093 0000 sts (DiffRoll)+1,r23 |
9179 4bc6 6093 0000 sts DiffRoll,r22 |
9180 4bca EE23 tst r30 |
9181 4bcc 01F4 brne .+2 |
9182 4bce 00C0 rjmp .L1113 |
9183 4bd0 281A sub r2,r24 |
9184 4bd2 390A sbc r3,r25 |
9185 4bd4 C101 movw r24,r2 |
9186 4bd6 AA27 clr r26 |
9187 4bd8 97FD sbrc r25,7 |
9188 4bda A095 com r26 |
9189 4bdc BA2F mov r27,r26 |
9190 .L1209: |
9191 4bde 2091 0000 lds r18,SummeRoll.1 |
9192 4be2 3091 0000 lds r19,(SummeRoll.1)+1 |
9193 4be6 4091 0000 lds r20,(SummeRoll.1)+2 |
9194 4bea 5091 0000 lds r21,(SummeRoll.1)+3 |
9195 4bee 820F add r24,r18 |
9196 4bf0 931F adc r25,r19 |
9197 4bf2 A41F adc r26,r20 |
9198 4bf4 B51F adc r27,r21 |
9199 4bf6 8093 0000 sts SummeRoll.1,r24 |
9200 4bfa 9093 0000 sts (SummeRoll.1)+1,r25 |
9201 4bfe A093 0000 sts (SummeRoll.1)+2,r26 |
9202 4c02 B093 0000 sts (SummeRoll.1)+3,r27 |
9203 4c06 8091 0000 lds r24,SummeRoll.1 |
9204 4c0a 9091 0000 lds r25,(SummeRoll.1)+1 |
9205 4c0e A091 0000 lds r26,(SummeRoll.1)+2 |
9206 4c12 B091 0000 lds r27,(SummeRoll.1)+3 |
9207 4c16 8130 cpi r24,lo8(64001) |
9208 4c18 1AEF ldi r17,hi8(64001) |
9209 4c1a 9107 cpc r25,r17 |
9210 4c1c 10E0 ldi r17,hlo8(64001) |
9211 4c1e A107 cpc r26,r17 |
9212 4c20 10E0 ldi r17,hhi8(64001) |
9213 4c22 B107 cpc r27,r17 |
9214 4c24 04F0 brlt .L1115 |
9215 4c26 80E0 ldi r24,lo8(64000) |
9216 4c28 9AEF ldi r25,hi8(64000) |
9217 4c2a A0E0 ldi r26,hlo8(64000) |
9218 4c2c B0E0 ldi r27,hhi8(64000) |
9219 4c2e 8093 0000 sts SummeRoll.1,r24 |
9220 4c32 9093 0000 sts (SummeRoll.1)+1,r25 |
9221 4c36 A093 0000 sts (SummeRoll.1)+2,r26 |
9222 4c3a B093 0000 sts (SummeRoll.1)+3,r27 |
9223 .L1115: |
9224 4c3e 8050 subi r24,lo8(-64000) |
9225 4c40 9640 sbci r25,hi8(-64000) |
9226 4c42 AF4F sbci r26,hlo8(-64000) |
9227 4c44 BF4F sbci r27,hhi8(-64000) |
9228 4c46 04F4 brge .L1116 |
9229 4c48 80E0 ldi r24,lo8(-64000) |
9230 4c4a 96E0 ldi r25,hi8(-64000) |
9231 4c4c AFEF ldi r26,hlo8(-64000) |
9232 4c4e BFEF ldi r27,hhi8(-64000) |
9233 4c50 8093 0000 sts SummeRoll.1,r24 |
9234 4c54 9093 0000 sts (SummeRoll.1)+1,r25 |
9235 4c58 A093 0000 sts (SummeRoll.1)+2,r26 |
9236 4c5c B093 0000 sts (SummeRoll.1)+3,r27 |
9237 .L1116: |
9238 4c60 8091 0000 lds r24,PPM_in+4 |
9239 4c64 9091 0000 lds r25,(PPM_in+4)+1 |
9240 4c68 845C subi r24,lo8(-60) |
9241 4c6a 9F4F sbci r25,hi8(-60) |
9242 4c6c 04F4 brge .L1122 |
9243 4c6e 8091 0000 lds r24,ucflg2 |
9244 4c72 8130 cpi r24,lo8(1) |
9245 4c74 01F4 brne .+2 |
9246 4c76 00C0 rjmp .L1290 |
9247 .L1122: |
9248 4c78 8091 0000 lds r24,PPM_in+4 |
9249 4c7c 9091 0000 lds r25,(PPM_in+4)+1 |
9250 4c80 8D5E subi r24,lo8(-19) |
9251 4c82 9F4F sbci r25,hi8(-19) |
9252 4c84 04F0 brlt .L1125 |
9253 4c86 8091 0000 lds r24,PPM_in+4 |
9254 4c8a 9091 0000 lds r25,(PPM_in+4)+1 |
9255 4c8e 4497 sbiw r24,20 |
9256 4c90 04F4 brge .L1125 |
9257 4c92 81E0 ldi r24,lo8(1) |
9258 4c94 8093 0000 sts ucflg2,r24 |
9259 .L1125: |
9260 4c98 8091 0000 lds r24,PPM_in+10 |
9261 4c9c 9091 0000 lds r25,(PPM_in+10)+1 |
9262 4ca0 805B subi r24,lo8(-80) |
9263 4ca2 9F4F sbci r25,hi8(-80) |
9264 4ca4 04F4 brge .L1126 |
9265 4ca6 8091 0000 lds r24,ucflg3 |
9266 4caa 8130 cpi r24,lo8(1) |
9267 4cac 01F4 brne .+2 |
9268 4cae 00C0 rjmp .L1291 |
9269 .L1126: |
9270 4cb0 8091 0000 lds r24,PPM_in+10 |
9271 4cb4 9091 0000 lds r25,(PPM_in+10)+1 |
9272 4cb8 8135 cpi r24,81 |
9273 4cba 9105 cpc r25,__zero_reg__ |
9274 4cbc 04F0 brlt .L1128 |
9275 4cbe 81E0 ldi r24,lo8(1) |
9276 4cc0 8093 0000 sts ucflg3,r24 |
9277 .L1128: |
9278 4cc4 0091 0000 lds r16,ipk |
9279 4cc8 1091 0000 lds r17,(ipk)+1 |
9280 4ccc 1093 0000 sts (kp)+1,r17 |
9281 4cd0 0093 0000 sts kp,r16 |
9282 4cd4 E090 0000 lds r14,ipk+2 |
9283 4cd8 F090 0000 lds r15,(ipk+2)+1 |
9284 4cdc F092 0000 sts (kd)+1,r15 |
9285 4ce0 E092 0000 sts kd,r14 |
9286 4ce4 C090 0000 lds r12,ipk+4 |
9287 4ce8 D090 0000 lds r13,(ipk+4)+1 |
9288 4cec D092 0000 sts (kdd)+1,r13 |
9289 4cf0 C092 0000 sts kdd,r12 |
9290 4cf4 A090 0000 lds r10,PPM_in+2 |
9291 4cf8 B090 0000 lds r11,(PPM_in+2)+1 |
9292 4cfc 6FE7 ldi r22,lo8(127) |
9293 4cfe 70E0 ldi r23,hi8(127) |
9294 4d00 A60E add r10,r22 |
9295 4d02 B71E adc r11,r23 |
9296 4d04 C501 movw r24,r10 |
9297 4d06 7AE0 ldi r23,lo8(10) |
9298 4d08 A716 cp r10,r23 |
9299 4d0a B104 cpc r11,__zero_reg__ |
9300 4d0c 04F4 brge .L1129 |
9301 4d0e EAE0 ldi r30,lo8(10) |
9302 4d10 AE2E mov r10,r30 |
9303 4d12 B12C mov r11,__zero_reg__ |
9304 4d14 C501 movw r24,r10 |
9305 .L1129: |
9306 4d16 A3E3 ldi r26,lo8(51) |
9307 4d18 AA16 cp r10,r26 |
9308 4d1a B104 cpc r11,__zero_reg__ |
9309 4d1c 04F4 brge .+2 |
9310 4d1e 00C0 rjmp .L1192 |
9311 4d20 72E3 ldi r23,lo8(50) |
9312 4d22 A72E mov r10,r23 |
9313 4d24 B12C mov r11,__zero_reg__ |
9314 4d26 B092 0000 sts (thrust)+1,r11 |
9315 4d2a A092 0000 sts thrust,r10 |
9316 .L1130: |
9317 4d2e B092 0000 sts (DebugOut+16)+1,r11 |
9318 4d32 A092 0000 sts DebugOut+16,r10 |
9319 4d36 1092 0000 sts (desiredAngle)+1,__zero_reg__ |
9320 4d3a 1092 0000 sts desiredAngle,__zero_reg__ |
9321 4d3e 8091 0000 lds r24,EE_Parameter+23 |
9322 4d42 9927 clr r25 |
9323 4d44 880F lsl r24 |
9324 4d46 991F rol r25 |
9325 4d48 880F lsl r24 |
9326 4d4a 991F rol r25 |
9327 4d4c 9C01 movw r18,r24 |
9328 4d4e 4427 clr r20 |
9329 4d50 37FD sbrc r19,7 |
9330 4d52 4095 com r20 |
9331 4d54 542F mov r21,r20 |
9332 4d56 6D8D ldd r22,Y+29 |
9333 4d58 7E8D ldd r23,Y+30 |
9334 4d5a 8F8D ldd r24,Y+31 |
9335 4d5c 98A1 ldd r25,Y+32 |
9336 4d5e 0E94 0000 call __divmodsi4 |
9337 4d62 3093 0000 sts (angle)+1,r19 |
9338 4d66 2093 0000 sts angle,r18 |
9339 4d6a A091 0000 lds r26,HiResNick |
9340 4d6e B091 0000 lds r27,(HiResNick)+1 |
9341 4d72 B093 0000 sts (gyroScaled)+1,r27 |
9342 4d76 A093 0000 sts gyroScaled,r26 |
9343 4d7a 6091 0000 lds r22,PPM_in+4 |
9344 4d7e 7091 0000 lds r23,(PPM_in+4)+1 |
9345 4d82 77FD sbrc r23,7 |
9346 4d84 00C0 rjmp .L1292 |
9347 .L1131: |
9348 4d86 7595 asr r23 |
9349 4d88 6795 ror r22 |
9350 4d8a 7595 asr r23 |
9351 4d8c 6795 ror r22 |
9352 4d8e C901 movw r24,r18 |
9353 4d90 2227 clr r18 |
9354 4d92 3327 clr r19 |
9355 4d94 281B sub r18,r24 |
9356 4d96 390B sbc r19,r25 |
9357 4d98 37FD sbrc r19,7 |
9358 4d9a 00C0 rjmp .L1293 |
9359 .L1132: |
9360 4d9c 3595 asr r19 |
9361 4d9e 2795 ror r18 |
9362 4da0 3595 asr r19 |
9363 4da2 2795 ror r18 |
9364 4da4 3595 asr r19 |
9365 4da6 2795 ror r18 |
9366 4da8 3595 asr r19 |
9367 4daa 2795 ror r18 |
9368 4dac 209F mul r18,r16 |
9369 4dae F001 movw r30,r0 |
9370 4db0 219F mul r18,r17 |
9371 4db2 F00D add r31,r0 |
9372 4db4 309F mul r19,r16 |
9373 4db6 F00D add r31,r0 |
9374 4db8 1124 clr r1 |
9375 4dba E60F add r30,r22 |
9376 4dbc F71F adc r31,r23 |
9377 4dbe F093 0000 sts (controllerP)+1,r31 |
9378 4dc2 E093 0000 sts controllerP,r30 |
9379 4dc6 8091 0000 lds r24,maxcontrollerP |
9380 4dca 9091 0000 lds r25,(maxcontrollerP)+1 |
9381 4dce 8E17 cp r24,r30 |
9382 4dd0 9F07 cpc r25,r31 |
9383 4dd2 04F4 brge .L1133 |
9384 4dd4 F093 0000 sts (maxcontrollerP)+1,r31 |
9385 4dd8 E093 0000 sts maxcontrollerP,r30 |
9386 .L1133: |
9387 4ddc 8091 0000 lds r24,mincontrollerP |
9388 4de0 9091 0000 lds r25,(mincontrollerP)+1 |
9389 4de4 E817 cp r30,r24 |
9390 4de6 F907 cpc r31,r25 |
9391 4de8 04F4 brge .L1134 |
9392 4dea F093 0000 sts (mincontrollerP)+1,r31 |
9393 4dee E093 0000 sts mincontrollerP,r30 |
9394 .L1134: |
9395 4df2 8827 clr r24 |
9396 4df4 9927 clr r25 |
9397 4df6 8A1B sub r24,r26 |
9398 4df8 9B0B sbc r25,r27 |
9399 4dfa 8E9D mul r24,r14 |
9400 4dfc 8001 movw r16,r0 |
9401 4dfe 8F9D mul r24,r15 |
9402 4e00 100D add r17,r0 |
9403 4e02 9E9D mul r25,r14 |
9404 4e04 100D add r17,r0 |
9405 4e06 1124 clr r1 |
9406 4e08 C801 movw r24,r16 |
9407 4e0a 17FD sbrc r17,7 |
9408 4e0c 00C0 rjmp .L1294 |
9409 .L1135: |
9410 4e0e BC01 movw r22,r24 |
9411 4e10 672F mov r22,r23 |
9412 4e12 770F lsl r23 |
9413 4e14 770B sbc r23,r23 |
9414 4e16 6595 asr r22 |
9415 4e18 7093 0000 sts (controllerD)+1,r23 |
9416 4e1c 6093 0000 sts controllerD,r22 |
9417 4e20 8091 0000 lds r24,maxcontrollerD |
9418 4e24 9091 0000 lds r25,(maxcontrollerD)+1 |
9419 4e28 8617 cp r24,r22 |
9420 4e2a 9707 cpc r25,r23 |
9421 4e2c 04F4 brge .L1136 |
9422 4e2e 7093 0000 sts (maxcontrollerD)+1,r23 |
9423 4e32 6093 0000 sts maxcontrollerD,r22 |
9424 .L1136: |
9425 4e36 8091 0000 lds r24,mincontrollerD |
9426 4e3a 9091 0000 lds r25,(mincontrollerD)+1 |
9427 4e3e 6817 cp r22,r24 |
9428 4e40 7907 cpc r23,r25 |
9429 4e42 04F4 brge .L1137 |
9430 4e44 7093 0000 sts (mincontrollerD)+1,r23 |
9431 4e48 6093 0000 sts mincontrollerD,r22 |
9432 .L1137: |
9433 4e4c 8091 0000 lds r24,gyroScaledOld |
9434 4e50 9091 0000 lds r25,(gyroScaledOld)+1 |
9435 4e54 8A1B sub r24,r26 |
9436 4e56 9B0B sbc r25,r27 |
9437 4e58 8C9D mul r24,r12 |
9438 4e5a A001 movw r20,r0 |
9439 4e5c 8D9D mul r24,r13 |
9440 4e5e 500D add r21,r0 |
9441 4e60 9C9D mul r25,r12 |
9442 4e62 500D add r21,r0 |
9443 4e64 1124 clr r1 |
9444 4e66 8091 0000 lds r24,filtersum |
9445 4e6a 9091 0000 lds r25,(filtersum)+1 |
9446 4e6e 2091 0000 lds r18,filterDD |
9447 4e72 3091 0000 lds r19,(filterDD)+1 |
9448 4e76 821B sub r24,r18 |
9449 4e78 930B sbc r25,r19 |
9450 4e7a 840F add r24,r20 |
9451 4e7c 951F adc r25,r21 |
9452 4e7e 9093 0000 sts (filtersum)+1,r25 |
9453 4e82 8093 0000 sts filtersum,r24 |
9454 4e86 97FD sbrc r25,7 |
9455 4e88 00C0 rjmp .L1295 |
9456 .L1138: |
9457 4e8a 9595 asr r25 |
9458 4e8c 8795 ror r24 |
9459 4e8e 9595 asr r25 |
9460 4e90 8795 ror r24 |
9461 4e92 9595 asr r25 |
9462 4e94 8795 ror r24 |
9463 4e96 9093 0000 sts (filterDD)+1,r25 |
9464 4e9a 8093 0000 sts filterDD,r24 |
9465 4e9e 97FD sbrc r25,7 |
9466 4ea0 00C0 rjmp .L1296 |
9467 .L1139: |
9468 4ea2 9C01 movw r18,r24 |
9469 4ea4 022E mov __tmp_reg__,r18 |
9470 4ea6 232F mov r18,r19 |
9471 4ea8 000C lsl __tmp_reg__ |
9472 4eaa 221F rol r18 |
9473 4eac 330B sbc r19,r19 |
9474 4eae 000C lsl __tmp_reg__ |
9475 4eb0 221F rol r18 |
9476 4eb2 331F rol r19 |
9477 4eb4 3093 0000 sts (controllerDD)+1,r19 |
9478 4eb8 2093 0000 sts controllerDD,r18 |
9479 4ebc B093 0000 sts (gyroScaledOld)+1,r27 |
9480 4ec0 A093 0000 sts gyroScaledOld,r26 |
9481 4ec4 8091 0000 lds r24,maxcontrollerDD |
9482 4ec8 9091 0000 lds r25,(maxcontrollerDD)+1 |
9483 4ecc 8217 cp r24,r18 |
9484 4ece 9307 cpc r25,r19 |
9485 4ed0 04F4 brge .L1140 |
9486 4ed2 3093 0000 sts (maxcontrollerDD)+1,r19 |
9487 4ed6 2093 0000 sts maxcontrollerDD,r18 |
9488 .L1140: |
9489 4eda 8091 0000 lds r24,mincontrollerDD |
9490 4ede 9091 0000 lds r25,(mincontrollerDD)+1 |
9491 4ee2 2817 cp r18,r24 |
9492 4ee4 3907 cpc r19,r25 |
9493 4ee6 04F4 brge .L1141 |
9494 4ee8 3093 0000 sts (mincontrollerDD)+1,r19 |
9495 4eec 2093 0000 sts mincontrollerDD,r18 |
9496 .L1141: |
9497 4ef0 A501 movw r20,r10 |
9498 4ef2 460F add r20,r22 |
9499 4ef4 571F adc r21,r23 |
9500 4ef6 420F add r20,r18 |
9501 4ef8 531F adc r21,r19 |
9502 4efa 4E0F add r20,r30 |
9503 4efc 5F1F adc r21,r31 |
9504 4efe C501 movw r24,r10 |
9505 4f00 861B sub r24,r22 |
9506 4f02 970B sbc r25,r23 |
9507 4f04 821B sub r24,r18 |
9508 4f06 930B sbc r25,r19 |
9509 4f08 8E1B sub r24,r30 |
9510 4f0a 9F0B sbc r25,r31 |
9511 4f0c 8333 cpi r24,51 |
9512 4f0e 9105 cpc r25,__zero_reg__ |
9513 4f10 04F0 brlt .L1193 |
9514 4f12 82E3 ldi r24,lo8(50) |
9515 4f14 90E0 ldi r25,hi8(50) |
9516 .L1193: |
9517 4f16 9093 0000 sts (motorOutFront)+1,r25 |
9518 4f1a 8093 0000 sts motorOutFront,r24 |
9519 4f1e 8091 0000 lds r24,motorOutFront |
9520 4f22 9091 0000 lds r25,(motorOutFront)+1 |
9521 4f26 1816 cp __zero_reg__,r24 |
9522 4f28 1906 cpc __zero_reg__,r25 |
9523 4f2a 04F0 brlt .+2 |
9524 4f2c 00C0 rjmp .L1297 |
9525 .L1143: |
9526 4f2e 4333 cpi r20,51 |
9527 4f30 5105 cpc r21,__zero_reg__ |
9528 4f32 04F0 brlt .L1194 |
9529 4f34 82E3 ldi r24,lo8(50) |
9530 4f36 90E0 ldi r25,hi8(50) |
9531 4f38 9093 0000 sts (motorOutRear)+1,r25 |
9532 4f3c 8093 0000 sts motorOutRear,r24 |
9533 4f40 8091 0000 lds r24,motorOutRear |
9534 4f44 9091 0000 lds r25,(motorOutRear)+1 |
9535 4f48 1816 cp __zero_reg__,r24 |
9536 4f4a 1906 cpc __zero_reg__,r25 |
9537 4f4c 04F4 brge .+4 |
9538 4f4e 0C94 0000 jmp .L1145 |
9539 4f52 00C0 rjmp .L1298 |
9540 .L1192: |
9541 4f54 9093 0000 sts (thrust)+1,r25 |
9542 4f58 8093 0000 sts thrust,r24 |
9543 4f5c 00C0 rjmp .L1130 |
9544 .L1194: |
9545 4f5e 5093 0000 sts (motorOutRear)+1,r21 |
9546 4f62 4093 0000 sts motorOutRear,r20 |
9547 4f66 8091 0000 lds r24,motorOutRear |
9548 4f6a 9091 0000 lds r25,(motorOutRear)+1 |
9549 4f6e 1816 cp __zero_reg__,r24 |
9550 4f70 1906 cpc __zero_reg__,r25 |
9551 4f72 04F4 brge .+4 |
9552 4f74 0C94 0000 jmp .L1145 |
9553 .L1298: |
9554 4f78 1092 0000 sts (motorOutRear)+1,__zero_reg__ |
9555 4f7c 1092 0000 sts motorOutRear,__zero_reg__ |
9556 4f80 0C94 0000 jmp .L1145 |
9557 .L982: |
9558 4f84 8DA1 ldd r24,Y+37 |
9559 4f86 9EA1 ldd r25,Y+38 |
9560 4f88 8853 subi r24,lo8(-200) |
9561 4f8a 9F4F sbci r25,hi8(-200) |
9562 4f8c 04F0 brlt .+2 |
9563 4f8e 00C0 rjmp .L983 |
9564 4f90 E8E3 ldi r30,lo8(-200) |
9565 4f92 FFEF ldi r31,hi8(-200) |
9566 4f94 FEA3 std Y+38,r31 |
9567 4f96 EDA3 std Y+37,r30 |
9568 4f98 F093 0000 sts (TrimRoll)+1,r31 |
9569 4f9c E093 0000 sts TrimRoll,r30 |
9570 4fa0 00C0 rjmp .L983 |
9571 .L979: |
9572 4fa2 2FEF ldi r18,hi8(-200) |
9573 4fa4 0833 cpi r16,lo8(-200) |
9574 4fa6 1207 cpc r17,r18 |
9575 4fa8 04F0 brlt .+2 |
9576 4faa 00C0 rjmp .L980 |
9577 4fac 08E3 ldi r16,lo8(-200) |
9578 4fae 1FEF ldi r17,hi8(-200) |
9579 4fb0 00C0 rjmp .L1202 |
9580 .L977: |
9581 4fb2 2224 clr r2 |
9582 4fb4 3324 clr r3 |
9583 4fb6 00C0 rjmp .L978 |
9584 .L975: |
9585 4fb8 4424 clr r4 |
9586 4fba 5524 clr r5 |
9587 4fbc 00C0 rjmp .L976 |
9588 .L1186: |
9589 4fbe 9093 0000 sts (MesswertGier)+1,r25 |
9590 4fc2 8093 0000 sts MesswertGier,r24 |
9591 4fc6 00C0 rjmp .L993 |
9592 .L1185: |
9593 4fc8 D092 0000 sts (MesswertRoll)+1,r13 |
9594 4fcc C092 0000 sts MesswertRoll,r12 |
9595 4fd0 00C0 rjmp .L991 |
9596 .L1184: |
9597 4fd2 7092 0000 sts (MesswertNick)+1,r7 |
9598 4fd6 6092 0000 sts MesswertNick,r6 |
9599 4fda 00C0 rjmp .L989 |
9600 .L1104: |
9601 4fdc CB01 movw r24,r22 |
9602 4fde AA27 clr r26 |
9603 4fe0 97FD sbrc r25,7 |
9604 4fe2 A095 com r26 |
9605 4fe4 BA2F mov r27,r26 |
9606 4fe6 00C0 rjmp .L1208 |
9607 .L1113: |
9608 4fe8 CB01 movw r24,r22 |
9609 4fea AA27 clr r26 |
9610 4fec 97FD sbrc r25,7 |
9611 4fee A095 com r26 |
9612 4ff0 BA2F mov r27,r26 |
9613 4ff2 00C0 rjmp .L1209 |
9614 .L1183: |
9615 4ff4 2093 0000 sts Mess_Integral_Gier,r18 |
9616 4ff8 3093 0000 sts (Mess_Integral_Gier)+1,r19 |
9617 4ffc 4093 0000 sts (Mess_Integral_Gier)+2,r20 |
9618 5000 5093 0000 sts (Mess_Integral_Gier)+3,r21 |
9619 5004 00C0 rjmp .L950 |
9620 .L1285: |
9621 5006 88E1 ldi r24,lo8(24) |
9622 5008 8093 0000 sts TimerWerteausgabe.11,r24 |
9623 500c 8091 0000 lds r24,EE_Parameter+23 |
9624 5010 9927 clr r25 |
9625 5012 880F lsl r24 |
9626 5014 991F rol r25 |
9627 5016 880F lsl r24 |
9628 5018 991F rol r25 |
9629 501a 9C01 movw r18,r24 |
9630 501c 4427 clr r20 |
9631 501e 37FD sbrc r19,7 |
9632 5020 4095 com r20 |
9633 5022 542F mov r21,r20 |
9634 5024 6D8D ldd r22,Y+29 |
9635 5026 7E8D ldd r23,Y+30 |
9636 5028 8F8D ldd r24,Y+31 |
9637 502a 98A1 ldd r25,Y+32 |
9638 502c 0E94 0000 call __divmodsi4 |
9639 5030 3093 0000 sts (DebugOut+2)+1,r19 |
9640 5034 2093 0000 sts DebugOut+2,r18 |
9641 5038 8091 0000 lds r24,Mittelwert_AccNick |
9642 503c 9091 0000 lds r25,(Mittelwert_AccNick)+1 |
9643 5040 97FD sbrc r25,7 |
9644 5042 00C0 rjmp .L1299 |
9645 .L973: |
9646 5044 9595 asr r25 |
9647 5046 8795 ror r24 |
9648 5048 9595 asr r25 |
9649 504a 8795 ror r24 |
9650 504c 9093 0000 sts (DebugOut+4)+1,r25 |
9651 5050 8093 0000 sts DebugOut+4,r24 |
9652 5054 8091 0000 lds r24,maxcontrollerDD |
9653 5058 9091 0000 lds r25,(maxcontrollerDD)+1 |
9654 505c 9093 0000 sts (DebugOut+6)+1,r25 |
9655 5060 8093 0000 sts DebugOut+6,r24 |
9656 5064 8091 0000 lds r24,mincontrollerDD |
9657 5068 9091 0000 lds r25,(mincontrollerDD)+1 |
9658 506c 9093 0000 sts (DebugOut+8)+1,r25 |
9659 5070 8093 0000 sts DebugOut+8,r24 |
9660 5074 A090 0000 lds r10,MesswertNick |
9661 5078 B090 0000 lds r11,(MesswertNick)+1 |
9662 507c B092 0000 sts (DebugOut+10)+1,r11 |
9663 5080 A092 0000 sts DebugOut+10,r10 |
9664 5084 8091 0000 lds r24,HiResNick |
9665 5088 9091 0000 lds r25,(HiResNick)+1 |
9666 508c 9093 0000 sts (DebugOut+12)+1,r25 |
9667 5090 8093 0000 sts DebugOut+12,r24 |
9668 5094 8091 0000 lds r24,AdWertAccNick |
9669 5098 9091 0000 lds r25,(AdWertAccNick)+1 |
9670 509c 9093 0000 sts (DebugOut+14)+1,r25 |
9671 50a0 8093 0000 sts DebugOut+14,r24 |
9672 50a4 1092 0000 sts (DebugOut+18)+1,__zero_reg__ |
9673 50a8 1092 0000 sts DebugOut+18,__zero_reg__ |
9674 50ac 8091 0000 lds r24,UBat |
9675 50b0 9091 0000 lds r25,(UBat)+1 |
9676 50b4 9093 0000 sts (DebugOut+20)+1,r25 |
9677 50b8 8093 0000 sts DebugOut+20,r24 |
9678 50bc 8091 0000 lds r24,SenderOkay |
9679 50c0 9927 clr r25 |
9680 50c2 9093 0000 sts (DebugOut+22)+1,r25 |
9681 50c6 8093 0000 sts DebugOut+22,r24 |
9682 50ca 8091 0000 lds r24,controllerP |
9683 50ce 9091 0000 lds r25,(controllerP)+1 |
9684 50d2 9093 0000 sts (DebugOut+24)+1,r25 |
9685 50d6 8093 0000 sts DebugOut+24,r24 |
9686 50da 8091 0000 lds r24,controllerD |
9687 50de 9091 0000 lds r25,(controllerD)+1 |
9688 50e2 9093 0000 sts (DebugOut+30)+1,r25 |
9689 50e6 8093 0000 sts DebugOut+30,r24 |
9690 50ea 8091 0000 lds r24,controllerDD |
9691 50ee 9091 0000 lds r25,(controllerDD)+1 |
9692 50f2 9093 0000 sts (DebugOut+32)+1,r25 |
9693 50f6 8093 0000 sts DebugOut+32,r24 |
9694 50fa 8091 0000 lds r24,PPM_in+6 |
9695 50fe 9091 0000 lds r25,(PPM_in+6)+1 |
9696 5102 9093 0000 sts (DebugOut+34)+1,r25 |
9697 5106 8093 0000 sts DebugOut+34,r24 |
9698 510a 8091 0000 lds r24,ipk |
9699 510e 9091 0000 lds r25,(ipk)+1 |
9700 5112 9093 0000 sts (DebugOut+36)+1,r25 |
9701 5116 8093 0000 sts DebugOut+36,r24 |
9702 511a 8091 0000 lds r24,ipk+2 |
9703 511e 9091 0000 lds r25,(ipk+2)+1 |
9704 5122 9093 0000 sts (DebugOut+38)+1,r25 |
9705 5126 8093 0000 sts DebugOut+38,r24 |
9706 512a 8091 0000 lds r24,ipk+4 |
9707 512e 9091 0000 lds r25,(ipk+4)+1 |
9708 5132 9093 0000 sts (DebugOut+40)+1,r25 |
9709 5136 8093 0000 sts DebugOut+40,r24 |
9710 513a 8091 0000 lds r24,ucflg1 |
9711 513e 9927 clr r25 |
9712 5140 9093 0000 sts (DebugOut+42)+1,r25 |
9713 5144 8093 0000 sts DebugOut+42,r24 |
9714 5148 8091 0000 lds r24,PPM_in+10 |
9715 514c 9091 0000 lds r25,(PPM_in+10)+1 |
9716 5150 9093 0000 sts (DebugOut+44)+1,r25 |
9717 5154 8093 0000 sts DebugOut+44,r24 |
9718 5158 B092 0000 sts (DebugOut+46)+1,r11 |
9719 515c A092 0000 sts DebugOut+46,r10 |
9720 5160 8091 0000 lds r24,maxcontrollerD |
9721 5164 9091 0000 lds r25,(maxcontrollerD)+1 |
9722 5168 9093 0000 sts (DebugOut+48)+1,r25 |
9723 516c 8093 0000 sts DebugOut+48,r24 |
9724 5170 8091 0000 lds r24,mincontrollerD |
9725 5174 9091 0000 lds r25,(mincontrollerD)+1 |
9726 5178 9093 0000 sts (DebugOut+50)+1,r25 |
9727 517c 8093 0000 sts DebugOut+50,r24 |
9728 5180 8091 0000 lds r24,AdWertNick |
9729 5184 9091 0000 lds r25,(AdWertNick)+1 |
9730 5188 9093 0000 sts (DebugOut+52)+1,r25 |
9731 518c 8093 0000 sts DebugOut+52,r24 |
9732 5190 8091 0000 lds r24,maxcontrollerP |
9733 5194 9091 0000 lds r25,(maxcontrollerP)+1 |
9734 5198 9093 0000 sts (DebugOut+54)+1,r25 |
9735 519c 8093 0000 sts DebugOut+54,r24 |
9736 51a0 8091 0000 lds r24,mincontrollerP |
9737 51a4 9091 0000 lds r25,(mincontrollerP)+1 |
9738 51a8 9093 0000 sts (DebugOut+56)+1,r25 |
9739 51ac 8093 0000 sts DebugOut+56,r24 |
9740 51b0 8091 0000 lds r24,PPM_in+8 |
9741 51b4 9091 0000 lds r25,(PPM_in+8)+1 |
9742 51b8 9093 0000 sts (DebugOut+58)+1,r25 |
9743 51bc 8093 0000 sts DebugOut+58,r24 |
9744 51c0 8091 0000 lds r24,PPM_in+6 |
9745 51c4 9091 0000 lds r25,(PPM_in+6)+1 |
9746 51c8 9093 0000 sts (DebugOut+60)+1,r25 |
9747 51cc 8093 0000 sts DebugOut+60,r24 |
9748 51d0 8091 0000 lds r24,PPM_in+4 |
9749 51d4 9091 0000 lds r25,(PPM_in+4)+1 |
9750 51d8 9093 0000 sts (DebugOut+62)+1,r25 |
9751 51dc 8093 0000 sts DebugOut+62,r24 |
9752 51e0 8091 0000 lds r24,PPM_in+2 |
9753 51e4 9091 0000 lds r25,(PPM_in+2)+1 |
9754 51e8 9093 0000 sts (DebugOut+64)+1,r25 |
9755 51ec 8093 0000 sts DebugOut+64,r24 |
9756 51f0 00C0 rjmp .L972 |
9757 .L1182: |
9758 51f2 D092 0000 sts (LageKorrekturRoll)+1,r13 |
9759 51f6 C092 0000 sts LageKorrekturRoll,r12 |
9760 51fa 7093 0000 sts (LageKorrekturNick)+1,r23 |
9761 51fe 6093 0000 sts LageKorrekturNick,r22 |
9762 5202 00C0 rjmp .L943 |
9763 .L1296: |
9764 5204 CF96 adiw r24,63 |
9765 5206 00C0 rjmp .L1139 |
9766 .L1297: |
9767 5208 1092 0000 sts (motorOutFront)+1,__zero_reg__ |
9768 520c 1092 0000 sts motorOutFront,__zero_reg__ |
9769 5210 00C0 rjmp .L1143 |
9770 .L1295: |
9771 5212 0796 adiw r24,7 |
9772 5214 00C0 rjmp .L1138 |
9773 .L1294: |
9774 5216 8150 subi r24,lo8(-(511)) |
9775 5218 9E4F sbci r25,hi8(-(511)) |
9776 521a 00C0 rjmp .L1135 |
9777 .L1293: |
9778 521c 215F subi r18,lo8(-(15)) |
9779 521e 3F4F sbci r19,hi8(-(15)) |
9780 5220 00C0 rjmp .L1132 |
9781 .L1292: |
9782 5222 6D5F subi r22,lo8(-(3)) |
9783 5224 7F4F sbci r23,hi8(-(3)) |
9784 5226 00C0 rjmp .L1131 |
9785 .L1287: |
9786 5228 215C subi r18,lo8(-(63)) |
9787 522a 3F4F sbci r19,hi8(-(63)) |
9788 522c 4F4F sbci r20,hlo8(-(63)) |
9789 522e 5F4F sbci r21,hhi8(-(63)) |
9790 5230 00C0 rjmp .L986 |
9791 .L1286: |
9792 5232 215C subi r18,lo8(-(63)) |
9793 5234 3F4F sbci r19,hi8(-(63)) |
9794 5236 4F4F sbci r20,hlo8(-(63)) |
9795 5238 5F4F sbci r21,hhi8(-(63)) |
9796 523a 00C0 rjmp .L985 |
9797 .L1288: |
9798 523c 2FE3 ldi r18,lo8(63) |
9799 523e 30E0 ldi r19,hi8(63) |
9800 5240 40E0 ldi r20,hlo8(63) |
9801 5242 50E0 ldi r21,hhi8(63) |
9802 5244 E20E add r14,r18 |
9803 5246 F31E adc r15,r19 |
9804 5248 041F adc r16,r20 |
9805 524a 151F adc r17,r21 |
9806 524c 00C0 rjmp .L987 |
9807 .L1274: |
9808 524e 0396 adiw r24,3 |
9809 5250 00C0 rjmp .L949 |
9810 .L1273: |
9811 5252 6150 subi r22,lo8(-(511)) |
9812 5254 7E4F sbci r23,hi8(-(511)) |
9813 5256 8F4F sbci r24,hlo8(-(511)) |
9814 5258 9F4F sbci r25,hhi8(-(511)) |
9815 525a 00C0 rjmp .L948 |
9816 .L1272: |
9817 525c 2227 clr r18 |
9818 525e 3327 clr r19 |
9819 5260 201B sub r18,r16 |
9820 5262 310B sbc r19,r17 |
9821 5264 00C0 rjmp .L947 |
9822 .L1290: |
9823 5266 1092 0000 sts ucflg2,__zero_reg__ |
9824 526a 8091 0000 lds r24,ucflg1 |
9825 526e 8230 cpi r24,lo8(2) |
9826 5270 01F4 brne .+2 |
9827 5272 00C0 rjmp .L1300 |
9828 5274 8F5F subi r24,lo8(-(1)) |
9829 5276 8093 0000 sts ucflg1,r24 |
9830 527a 00C0 rjmp .L1122 |
9831 .L1291: |
9832 527c 1092 0000 sts ucflg3,__zero_reg__ |
9833 5280 E091 0000 lds r30,ucflg1 |
9834 5284 E330 cpi r30,lo8(3) |
9835 5286 00F0 brlo .+2 |
9836 5288 00C0 rjmp .L1126 |
9837 528a FF27 clr r31 |
9838 528c EE0F add r30,r30 |
9839 528e FF1F adc r31,r31 |
9840 5290 E050 subi r30,lo8(-(ipk)) |
9841 5292 F040 sbci r31,hi8(-(ipk)) |
9842 5294 8081 ld r24,Z |
9843 5296 9181 ldd r25,Z+1 |
9844 5298 2091 0000 lds r18,PPM_in+6 |
9845 529c 3091 0000 lds r19,(PPM_in+6)+1 |
9846 52a0 820F add r24,r18 |
9847 52a2 931F adc r25,r19 |
9848 52a4 9183 std Z+1,r25 |
9849 52a6 8083 st Z,r24 |
9850 52a8 00C0 rjmp .L1126 |
9851 .L738: |
9852 52aa 8091 0000 lds r24,MikroKopterFlags |
9853 52ae 8260 ori r24,lo8(2) |
9854 52b0 8093 0000 sts MikroKopterFlags,r24 |
9855 52b4 0C94 0000 jmp .L740 |
9856 .L1215: |
9857 52b8 1092 0000 sts (StickGas)+1,__zero_reg__ |
9858 52bc 1092 0000 sts StickGas,__zero_reg__ |
9859 52c0 0C94 0000 jmp .L817 |
9860 .L1212: |
9861 52c4 2D5F subi r18,lo8(-(3)) |
9862 52c6 3F4F sbci r19,hi8(-(3)) |
9863 52c8 0C94 0000 jmp .L809 |
9864 .L1213: |
9865 52cc 2D5F subi r18,lo8(-(3)) |
9866 52ce 3F4F sbci r19,hi8(-(3)) |
9867 52d0 0C94 0000 jmp .L810 |
9868 .L1261: |
9869 52d4 0F96 adiw r24,15 |
9870 52d6 A11D adc r26,__zero_reg__ |
9871 52d8 B11D adc r27,__zero_reg__ |
9872 52da 0C94 0000 jmp .L863 |
9873 .L1262: |
9874 52de 0F96 adiw r24,15 |
9875 52e0 A11D adc r26,__zero_reg__ |
9876 52e2 B11D adc r27,__zero_reg__ |
9877 52e4 0C94 0000 jmp .L864 |
9878 .L1264: |
9879 52e8 F095 com r31 |
9880 52ea E195 neg r30 |
9881 52ec FF4F sbci r31,lo8(-1) |
9882 52ee 0C94 0000 jmp .L868 |
9883 .L801: |
9884 52f2 1092 0000 sts delay_einschalten.9,__zero_reg__ |
9885 .L803: |
9886 52f6 ED2D mov r30,r13 |
9887 52f8 FF27 clr r31 |
9888 52fa EE0F add r30,r30 |
9889 52fc FF1F adc r31,r31 |
9890 52fe E050 subi r30,lo8(-(PPM_in)) |
9891 5300 F040 sbci r31,hi8(-(PPM_in)) |
9892 5302 8081 ld r24,Z |
9893 5304 9181 ldd r25,Z+1 |
9894 5306 8C34 cpi r24,76 |
9895 5308 9105 cpc r25,__zero_reg__ |
9896 530a 04F4 brge .+2 |
9897 530c 00C0 rjmp .L804 |
9898 530e 8091 0000 lds r24,delay_ausschalten.10 |
9899 5312 8F5F subi r24,lo8(-(1)) |
9900 5314 893C cpi r24,lo8(-55) |
9901 5316 00F4 brsh .+2 |
9902 5318 00C0 rjmp .L1172 |
9903 531a 1092 0000 sts MotorenEin,__zero_reg__ |
9904 531e 88EC ldi r24,lo8(-56) |
9905 5320 8093 0000 sts delay_ausschalten.10,r24 |
9906 5324 1092 0000 sts (modell_fliegt)+1,__zero_reg__ |
9907 5328 1092 0000 sts modell_fliegt,__zero_reg__ |
9908 532c 0C94 0000 jmp .L734 |
9909 .L996: |
9910 5330 8091 0000 lds r24,HoehenWert |
9911 5334 9091 0000 lds r25,(HoehenWert)+1 |
9912 5338 A091 0000 lds r26,(HoehenWert)+2 |
9913 533c B091 0000 lds r27,(HoehenWert)+3 |
9914 5340 54E0 ldi r21,4 |
9915 5342 880F 1: lsl r24 |
9916 5344 991F rol r25 |
9917 5346 AA1F rol r26 |
9918 5348 BB1F rol r27 |
9919 534a 5A95 dec r21 |
9920 534c 01F4 brne 1b |
9921 534e 8093 0000 sts SummenHoehe,r24 |
9922 5352 9093 0000 sts (SummenHoehe)+1,r25 |
9923 5356 A093 0000 sts (SummenHoehe)+2,r26 |
9924 535a B093 0000 sts (SummenHoehe)+3,r27 |
9925 535e 1092 0000 sts (VarioMeter)+1,__zero_reg__ |
9926 5362 1092 0000 sts VarioMeter,__zero_reg__ |
9927 5366 2150 subi r18,lo8(-(-1)) |
9928 5368 3040 sbci r19,hi8(-(-1)) |
9929 536a 3093 0000 sts (BaroExpandActive)+1,r19 |
9930 536e 2093 0000 sts BaroExpandActive,r18 |
9931 .L1005: |
9932 5372 4889 ldd r20,Y+16 |
9933 5374 41FF sbrs r20,1 |
9934 5376 00C0 rjmp .L1006 |
9935 5378 8091 0000 lds r24,Parameter_MaxHoehe |
9936 537c 8233 cpi r24,lo8(50) |
9937 537e 00F0 brlo .+2 |
9938 5380 00C0 rjmp .L1007 |
9939 5382 8091 0000 lds r24,delay.31 |
9940 5386 8150 subi r24,1 |
9941 5388 00F4 brcc .L1187 |
9942 538a 1092 0000 sts HoehenReglerAktiv,__zero_reg__ |
9943 538e 8091 0000 lds r24,HoehenWert |
9944 5392 9091 0000 lds r25,(HoehenWert)+1 |
9945 5396 A091 0000 lds r26,(HoehenWert)+2 |
9946 539a B091 0000 lds r27,(HoehenWert)+3 |
9947 539e 8093 0000 sts SollHoehe,r24 |
9948 53a2 9093 0000 sts (SollHoehe)+1,r25 |
9949 53a6 A093 0000 sts (SollHoehe)+2,r26 |
9950 53aa B093 0000 sts (SollHoehe)+3,r27 |
9951 53ae 81E0 ldi r24,lo8(1) |
9952 .L1187: |
9953 53b0 8093 0000 sts delay.31,r24 |
9954 53b4 00C0 rjmp .L1010 |
9955 .L804: |
9956 53b6 1092 0000 sts delay_ausschalten.10,__zero_reg__ |
9957 53ba 0C94 0000 jmp .L734 |
9958 .L1006: |
9959 53be 2091 0000 lds r18,Parameter_MaxHoehe |
9960 53c2 8091 0000 lds r24,ExternHoehenValue |
9961 53c6 9091 0000 lds r25,(ExternHoehenValue)+1 |
9962 53ca 820F add r24,r18 |
9963 53cc 911D adc r25,__zero_reg__ |
9964 53ce 2091 0000 lds r18,EE_Parameter+13 |
9965 53d2 3327 clr r19 |
9966 53d4 829F mul r24,r18 |
9967 53d6 B001 movw r22,r0 |
9968 53d8 839F mul r24,r19 |
9969 53da 700D add r23,r0 |
9970 53dc 929F mul r25,r18 |
9971 53de 700D add r23,r0 |
9972 53e0 1124 clr r1 |
9973 53e2 CB01 movw r24,r22 |
9974 53e4 AA27 clr r26 |
9975 53e6 97FD sbrc r25,7 |
9976 53e8 A095 com r26 |
9977 53ea BA2F mov r27,r26 |
9978 53ec 8093 0000 sts SollHoehe,r24 |
9979 53f0 9093 0000 sts (SollHoehe)+1,r25 |
9980 53f4 A093 0000 sts (SollHoehe)+2,r26 |
9981 53f8 B093 0000 sts (SollHoehe)+3,r27 |
9982 53fc 81E0 ldi r24,lo8(1) |
9983 53fe 8093 0000 sts HoehenReglerAktiv,r24 |
9984 .L1010: |
9985 5402 E090 0000 lds r14,GIER_GRAD_FAKTOR |
9986 5406 F090 0000 lds r15,(GIER_GRAD_FAKTOR)+1 |
9987 540a 0091 0000 lds r16,(GIER_GRAD_FAKTOR)+2 |
9988 540e 1091 0000 lds r17,(GIER_GRAD_FAKTOR)+3 |
9989 5412 6D8D ldd r22,Y+29 |
9990 5414 7E8D ldd r23,Y+30 |
9991 5416 8F8D ldd r24,Y+31 |
9992 5418 98A1 ldd r25,Y+32 |
9993 541a A801 movw r20,r16 |
9994 541c 9701 movw r18,r14 |
9995 541e 0E94 0000 call __divmodsi4 |
9996 5422 5901 movw r10,r18 |
9997 5424 6A01 movw r12,r20 |
9998 5426 6C85 ldd r22,Y+12 |
9999 5428 7D85 ldd r23,Y+13 |
10000 542a 8E85 ldd r24,Y+14 |
10001 542c 9F85 ldd r25,Y+15 |
10002 542e A801 movw r20,r16 |
10003 5430 9701 movw r18,r14 |
10004 5432 0E94 0000 call __divmodsi4 |
10005 5436 B901 movw r22,r18 |
10006 5438 C501 movw r24,r10 |
10007 543a 0E94 0000 call ihypot |
10008 543e 5C01 movw r10,r24 |
10009 5440 CD97 sbiw r24,61 |
10010 5442 04F0 brlt .L1011 |
10011 5444 4CE3 ldi r20,lo8(60) |
10012 5446 A42E mov r10,r20 |
10013 5448 B12C mov r11,__zero_reg__ |
10014 .L1011: |
10015 544a C501 movw r24,r10 |
10016 544c 0E94 0000 call c_cos_8192 |
10017 5450 5C01 movw r10,r24 |
10018 5452 8091 0000 lds r24,HoehenReglerAktiv |
10019 5456 8823 tst r24 |
10020 5458 01F4 brne .+2 |
10021 545a 00C0 rjmp .L1012 |
10022 545c 8091 0000 lds r24,MikroKopterFlags |
10023 5460 9927 clr r25 |
10024 5462 9C01 movw r18,r24 |
10025 5464 2071 andi r18,lo8(16) |
10026 5466 3070 andi r19,hi8(16) |
10027 5468 84FD sbrc r24,4 |
10028 546a 00C0 rjmp .L1012 |
10029 546c C090 0000 lds r12,EE_Parameter+88 |
10030 5470 C0FC sbrc r12,0 |
10031 5472 00C0 rjmp .L1014 |
10032 5474 8091 0000 lds r24,EE_Parameter+8 |
10033 5478 81FD sbrc r24,1 |
10034 547a 00C0 rjmp .L1013 |
10035 .L1014: |
10036 547c 0981 ldd r16,Y+1 |
10037 547e 1A81 ldd r17,Y+2 |
10038 5480 3093 0000 sts (HeightTrimming.24)+1,r19 |
10039 5484 2093 0000 sts HeightTrimming.24,r18 |
10040 5488 6090 0000 lds r6,HoehenWert |
10041 548c 7090 0000 lds r7,(HoehenWert)+1 |
10042 5490 8090 0000 lds r8,(HoehenWert)+2 |
10043 5494 9090 0000 lds r9,(HoehenWert)+3 |
10044 .L1163: |
10045 5498 8091 0000 lds r24,SollHoehe |
10046 549c 9091 0000 lds r25,(SollHoehe)+1 |
10047 54a0 A091 0000 lds r26,(SollHoehe)+2 |
10048 54a4 B091 0000 lds r27,(SollHoehe)+3 |
10049 .L1015: |
10050 54a8 8615 cp r24,r6 |
10051 54aa 9705 cpc r25,r7 |
10052 54ac A805 cpc r26,r8 |
10053 54ae B905 cpc r27,r9 |
10054 54b0 04F0 brlt .L1040 |
10055 54b2 C0FC sbrc r12,0 |
10056 54b4 00C0 rjmp .L1164 |
10057 .L1040: |
10058 54b6 E090 0000 lds r14,HoehenWert |
10059 54ba F090 0000 lds r15,(HoehenWert)+1 |
10060 54be 8091 0000 lds r24,SollHoehe |
10061 54c2 9091 0000 lds r25,(SollHoehe)+1 |
10062 54c6 E81A sub r14,r24 |
10063 54c8 F90A sbc r15,r25 |
10064 54ca 8091 0000 lds r24,Parameter_Hoehe_P |
10065 54ce 9927 clr r25 |
10066 54d0 8E9D mul r24,r14 |
10067 54d2 9001 movw r18,r0 |
10068 54d4 8F9D mul r24,r15 |
10069 54d6 300D add r19,r0 |
10070 54d8 9E9D mul r25,r14 |
10071 54da 300D add r19,r0 |
10072 54dc 1124 clr r1 |
10073 54de C901 movw r24,r18 |
10074 54e0 37FD sbrc r19,7 |
10075 54e2 00C0 rjmp .L1301 |
10076 .L1041: |
10077 54e4 9595 asr r25 |
10078 54e6 8795 ror r24 |
10079 54e8 9595 asr r25 |
10080 54ea 8795 ror r24 |
10081 54ec 9595 asr r25 |
10082 54ee 8795 ror r24 |
10083 54f0 9595 asr r25 |
10084 54f2 8795 ror r24 |
10085 54f4 081B sub r16,r24 |
10086 54f6 190B sbc r17,r25 |
10087 54f8 2091 0000 lds r18,VarioMeter |
10088 54fc 3091 0000 lds r19,(VarioMeter)+1 |
10089 5500 37FD sbrc r19,7 |
10090 5502 00C0 rjmp .L1302 |
10091 .L1042: |
10092 5504 3595 asr r19 |
10093 5506 2795 ror r18 |
10094 5508 3595 asr r19 |
10095 550a 2795 ror r18 |
10096 550c 3595 asr r19 |
10097 550e 2795 ror r18 |
10098 5510 2930 cpi r18,9 |
10099 5512 3105 cpc r19,__zero_reg__ |
10100 5514 04F4 brge .+2 |
10101 5516 00C0 rjmp .L1043 |
10102 5518 28E0 ldi r18,lo8(8) |
10103 551a 30E0 ldi r19,hi8(8) |
10104 .L1197: |
10105 551c 229F mul r18,r18 |
10106 551e A001 movw r20,r0 |
10107 5520 239F mul r18,r19 |
10108 5522 500D add r21,r0 |
10109 5524 329F mul r19,r18 |
10110 5526 500D add r21,r0 |
10111 5528 1124 clr r1 |
10112 552a 9A01 movw r18,r20 |
10113 552c 57FD sbrc r21,7 |
10114 552e 00C0 rjmp .L1303 |
10115 .L1045: |
10116 5530 3595 asr r19 |
10117 5532 2795 ror r18 |
10118 5534 3595 asr r19 |
10119 5536 2795 ror r18 |
10120 5538 8091 0000 lds r24,VarioMeter |
10121 553c 9091 0000 lds r25,(VarioMeter)+1 |
10122 5540 280F add r18,r24 |
10123 5542 391F adc r19,r25 |
10124 .L1046: |
10125 5544 8091 0000 lds r24,Parameter_Luftdruck_D |
10126 5548 9927 clr r25 |
10127 554a AA27 clr r26 |
10128 554c BB27 clr r27 |
10129 554e 4427 clr r20 |
10130 5550 37FD sbrc r19,7 |
10131 5552 4095 com r20 |
10132 5554 542F mov r21,r20 |
10133 5556 BC01 movw r22,r24 |
10134 5558 CD01 movw r24,r26 |
10135 555a 0E94 0000 call __mulsi3 |
10136 555e 97FD sbrc r25,7 |
10137 5560 00C0 rjmp .L1304 |
10138 .L1048: |
10139 5562 A7E0 ldi r26,7 |
10140 5564 9595 1: asr r25 |
10141 5566 8795 ror r24 |
10142 5568 7795 ror r23 |
10143 556a 6795 ror r22 |
10144 556c AA95 dec r26 |
10145 556e 01F4 brne 1b |
10146 5570 9B01 movw r18,r22 |
10147 5572 5FEF ldi r21,hi8(-127) |
10148 5574 6138 cpi r22,lo8(-127) |
10149 5576 7507 cpc r23,r21 |
10150 5578 04F0 brlt .+2 |
10151 557a 00C0 rjmp .L1049 |
10152 557c 21E8 ldi r18,lo8(-127) |
10153 557e 3FEF ldi r19,hi8(-127) |
10154 .L1050: |
10155 5580 021B sub r16,r18 |
10156 5582 130B sbc r17,r19 |
10157 5584 6090 0000 lds r6,Mess_Integral_Hoch |
10158 5588 7090 0000 lds r7,(Mess_Integral_Hoch)+1 |
10159 558c 8090 0000 lds r8,(Mess_Integral_Hoch)+2 |
10160 5590 9090 0000 lds r9,(Mess_Integral_Hoch)+3 |
10161 5594 97FC sbrc r9,7 |
10162 5596 00C0 rjmp .L1305 |
10163 .L1052: |
10164 5598 F7E0 ldi r31,7 |
10165 559a 9594 1: asr r9 |
10166 559c 8794 ror r8 |
10167 559e 7794 ror r7 |
10168 55a0 6794 ror r6 |
10169 55a2 FA95 dec r31 |
10170 55a4 01F4 brne 1b |
10171 55a6 8091 0000 lds r24,Parameter_Hoehe_ACC_Wirkung |
10172 55aa 282F mov r18,r24 |
10173 55ac 3327 clr r19 |
10174 55ae 4427 clr r20 |
10175 55b0 5527 clr r21 |
10176 55b2 C401 movw r24,r8 |
10177 55b4 B301 movw r22,r6 |
10178 55b6 0E94 0000 call __mulsi3 |
10179 55ba 97FD sbrc r25,7 |
10180 55bc 00C0 rjmp .L1306 |
10181 .L1053: |
10182 55be E5E0 ldi r30,5 |
10183 55c0 9595 1: asr r25 |
10184 55c2 8795 ror r24 |
10185 55c4 7795 ror r23 |
10186 55c6 6795 ror r22 |
10187 55c8 EA95 dec r30 |
10188 55ca 01F4 brne 1b |
10189 55cc 9B01 movw r18,r22 |
10190 55ce 7FEF ldi r23,hi8(-127) |
10191 55d0 2138 cpi r18,lo8(-127) |
10192 55d2 3707 cpc r19,r23 |
10193 55d4 04F0 brlt .+2 |
10194 55d6 00C0 rjmp .L1054 |
10195 55d8 21E8 ldi r18,lo8(-127) |
10196 55da 3FEF ldi r19,hi8(-127) |
10197 .L1055: |
10198 55dc 021B sub r16,r18 |
10199 55de 130B sbc r17,r19 |
10200 55e0 85E9 ldi r24,lo8(149) |
10201 55e2 90E0 ldi r25,hi8(149) |
10202 55e4 E80E add r14,r24 |
10203 55e6 F91E adc r15,r25 |
10204 55e8 9BE2 ldi r25,lo8(299) |
10205 55ea E916 cp r14,r25 |
10206 55ec 91E0 ldi r25,hi8(299) |
10207 55ee F906 cpc r15,r25 |
10208 55f0 00F4 brsh .L1057 |
10209 55f2 8091 0000 lds r24,HeightTrimming.24 |
10210 55f6 9091 0000 lds r25,(HeightTrimming.24)+1 |
10211 55fa 892B or r24,r25 |
10212 55fc 01F4 brne .L1057 |
10213 55fe 8091 0000 lds r24,HooverGas.27 |
10214 5602 9091 0000 lds r25,(HooverGas.27)+1 |
10215 5606 1816 cp __zero_reg__,r24 |
10216 5608 1906 cpc __zero_reg__,r25 |
10217 560a 04F4 brge .L1057 |
10218 560c 8091 0000 lds r24,HooverGasMin.28 |
10219 5610 9091 0000 lds r25,(HooverGasMin.28)+1 |
10220 5614 0817 cp r16,r24 |
10221 5616 1907 cpc r17,r25 |
10222 5618 04F4 brge .+2 |
10223 561a 00C0 rjmp .L1206 |
10224 561c 8091 0000 lds r24,HooverGasMax.29 |
10225 5620 9091 0000 lds r25,(HooverGasMax.29)+1 |
10226 5624 8017 cp r24,r16 |
10227 5626 9107 cpc r25,r17 |
10228 5628 04F4 brge .+2 |
10229 562a 00C0 rjmp .L1206 |
10230 .L1057: |
10231 562c 8091 0000 lds r24,BaroExpandActive |
10232 5630 9091 0000 lds r25,(BaroExpandActive)+1 |
10233 5634 892B or r24,r25 |
10234 5636 01F0 breq .L1061 |
10235 5638 0091 0000 lds r16,HooverGas.27 |
10236 563c 1091 0000 lds r17,(HooverGas.27)+1 |
10237 .L1061: |
10238 5640 C801 movw r24,r16 |
10239 5642 AA27 clr r26 |
10240 5644 97FD sbrc r25,7 |
10241 5646 A095 com r26 |
10242 5648 BA2F mov r27,r26 |
10243 564a 5DE0 ldi r21,13 |
10244 564c 880F 1: lsl r24 |
10245 564e 991F rol r25 |
10246 5650 AA1F rol r26 |
10247 5652 BB1F rol r27 |
10248 5654 5A95 dec r21 |
10249 5656 01F4 brne 1b |
10250 5658 9501 movw r18,r10 |
10251 565a 4427 clr r20 |
10252 565c 37FD sbrc r19,7 |
10253 565e 4095 com r20 |
10254 5660 542F mov r21,r20 |
10255 5662 BC01 movw r22,r24 |
10256 5664 CD01 movw r24,r26 |
10257 5666 0E94 0000 call __divmodsi4 |
10258 566a 2093 0000 sts tmp_long2.4,r18 |
10259 566e 3093 0000 sts (tmp_long2.4)+1,r19 |
10260 5672 4093 0000 sts (tmp_long2.4)+2,r20 |
10261 5676 5093 0000 sts (tmp_long2.4)+3,r21 |
10262 567a 0091 0000 lds r16,tmp_long2.4 |
10263 567e 1091 0000 lds r17,(tmp_long2.4)+1 |
10264 5682 8091 0000 lds r24,FilterHCGas.25 |
10265 5686 9091 0000 lds r25,(FilterHCGas.25)+1 |
10266 568a 9C01 movw r18,r24 |
10267 568c 220F lsl r18 |
10268 568e 331F rol r19 |
10269 5690 280F add r18,r24 |
10270 5692 391F adc r19,r25 |
10271 5694 200F add r18,r16 |
10272 5696 311F adc r19,r17 |
10273 5698 37FD sbrc r19,7 |
10274 569a 00C0 rjmp .L1307 |
10275 .L1062: |
10276 569c A901 movw r20,r18 |
10277 569e 5595 asr r21 |
10278 56a0 4795 ror r20 |
10279 56a2 5595 asr r21 |
10280 56a4 4795 ror r20 |
10281 56a6 BA01 movw r22,r20 |
10282 56a8 8091 0000 lds r24,EE_Parameter+9 |
10283 56ac 282F mov r18,r24 |
10284 56ae 3327 clr r19 |
10285 56b0 220F lsl r18 |
10286 56b2 331F rol r19 |
10287 56b4 220F lsl r18 |
10288 56b6 331F rol r19 |
10289 56b8 4217 cp r20,r18 |
10290 56ba 5307 cpc r21,r19 |
10291 56bc 04F0 brlt .+2 |
10292 56be 00C0 rjmp .L1063 |
10293 56c0 A901 movw r20,r18 |
10294 56c2 B901 movw r22,r18 |
10295 56c4 D090 0000 lds r13,MAX_GAS |
10296 .L1064: |
10297 56c8 C0FE sbrs r12,0 |
10298 56ca 00C0 rjmp .L1190 |
10299 56cc A981 ldd r26,Y+1 |
10300 56ce BA81 ldd r27,Y+2 |
10301 56d0 A417 cp r26,r20 |
10302 56d2 B507 cpc r27,r21 |
10303 56d4 04F0 brlt .+2 |
10304 56d6 00C0 rjmp .L1190 |
10305 56d8 AD01 movw r20,r26 |
10306 56da B093 0000 sts (FilterHCGas.25)+1,r27 |
10307 56de A093 0000 sts FilterHCGas.25,r26 |
10308 56e2 5A83 std Y+2,r21 |
10309 56e4 4983 std Y+1,r20 |
10310 56e6 00C0 rjmp .L1068 |
10311 .L1012: |
10312 56e8 6091 0000 lds r22,EE_Parameter+17 |
10313 56ec 6623 tst r22 |
10314 56ee 01F4 brne .+2 |
10315 56f0 00C0 rjmp .L1308 |
10316 56f2 7727 clr r23 |
10317 .L1071: |
10318 56f4 6634 cpi r22,70 |
10319 56f6 7105 cpc r23,__zero_reg__ |
10320 56f8 04F0 brlt .+2 |
10321 56fa 00C0 rjmp .L1072 |
10322 56fc 26E4 ldi r18,lo8(70) |
10323 56fe 30E0 ldi r19,hi8(70) |
10324 5700 3093 0000 sts (StickGasHoover.26)+1,r19 |
10325 5704 2093 0000 sts StickGasHoover.26,r18 |
10326 .L1073: |
10327 5708 E980 ldd r14,Y+1 |
10328 570a FA80 ldd r15,Y+2 |
10329 570c F092 0000 sts (FilterHCGas.25)+1,r15 |
10330 5710 E092 0000 sts FilterHCGas.25,r14 |
10331 .L1164: |
10332 5714 D090 0000 lds r13,MAX_GAS |
10333 .L1068: |
10334 5718 8091 0000 lds r24,MikroKopterFlags |
10335 571c 81FF sbrs r24,1 |
10336 571e 00C0 rjmp .L1165 |
10337 5720 8091 0000 lds r24,MikroKopterFlags |
10338 5724 84FD sbrc r24,4 |
10339 5726 00C0 rjmp .L1166 |
10340 5728 E090 0000 lds r14,HooverGasFilter.30 |
10341 572c F090 0000 lds r15,(HooverGasFilter.30)+1 |
10342 5730 0091 0000 lds r16,(HooverGasFilter.30)+2 |
10343 5734 1091 0000 lds r17,(HooverGasFilter.30)+3 |
10344 5738 E114 cp r14,__zero_reg__ |
10345 573a F104 cpc r15,__zero_reg__ |
10346 573c 0105 cpc r16,__zero_reg__ |
10347 573e 1105 cpc r17,__zero_reg__ |
10348 5740 01F4 brne .L1076 |
10349 5742 2981 ldd r18,Y+1 |
10350 5744 3A81 ldd r19,Y+2 |
10351 5746 7901 movw r14,r18 |
10352 5748 0027 clr r16 |
10353 574a F7FC sbrc r15,7 |
10354 574c 0095 com r16 |
10355 574e 102F mov r17,r16 |
10356 5750 ECE0 ldi r30,12 |
10357 5752 EE0C 1: lsl r14 |
10358 5754 FF1C rol r15 |
10359 5756 001F rol r16 |
10360 5758 111F rol r17 |
10361 575a EA95 dec r30 |
10362 575c 01F4 brne 1b |
10363 575e E092 0000 sts HooverGasFilter.30,r14 |
10364 5762 F092 0000 sts (HooverGasFilter.30)+1,r15 |
10365 5766 0093 0000 sts (HooverGasFilter.30)+2,r16 |
10366 576a 1093 0000 sts (HooverGasFilter.30)+3,r17 |
10367 .L1076: |
10368 576e 8091 0000 lds r24,VarioMeter |
10369 5772 9091 0000 lds r25,(VarioMeter)+1 |
10370 5776 8091 0000 lds r24,VarioMeter |
10371 577a 9091 0000 lds r25,(VarioMeter)+1 |
10372 577e 97FD sbrc r25,7 |
10373 5780 00C0 rjmp .L1309 |
10374 .L1078: |
10375 5782 8436 cpi r24,100 |
10376 5784 9105 cpc r25,__zero_reg__ |
10377 5786 04F0 brlt .+2 |
10378 5788 00C0 rjmp .L1167 |
10379 578a 6981 ldd r22,Y+1 |
10380 578c 7A81 ldd r23,Y+2 |
10381 578e 9B01 movw r18,r22 |
10382 5790 4427 clr r20 |
10383 5792 37FD sbrc r19,7 |
10384 5794 4095 com r20 |
10385 5796 542F mov r21,r20 |
10386 5798 C501 movw r24,r10 |
10387 579a AA27 clr r26 |
10388 579c 97FD sbrc r25,7 |
10389 579e A095 com r26 |
10390 57a0 BA2F mov r27,r26 |
10391 57a2 BC01 movw r22,r24 |
10392 57a4 CD01 movw r24,r26 |
10393 57a6 0E94 0000 call __mulsi3 |
10394 57aa 97FD sbrc r25,7 |
10395 57ac 00C0 rjmp .L1310 |
10396 .L1079: |
10397 57ae 9B01 movw r18,r22 |
10398 57b0 AC01 movw r20,r24 |
10399 57b2 7DE0 ldi r23,13 |
10400 57b4 5595 1: asr r21 |
10401 57b6 4795 ror r20 |
10402 57b8 3795 ror r19 |
10403 57ba 2795 ror r18 |
10404 57bc 7A95 dec r23 |
10405 57be 01F4 brne 1b |
10406 57c0 2093 0000 sts tmp_long2.4,r18 |
10407 57c4 3093 0000 sts (tmp_long2.4)+1,r19 |
10408 57c8 4093 0000 sts (tmp_long2.4)+2,r20 |
10409 57cc 5093 0000 sts (tmp_long2.4)+3,r21 |
10410 57d0 8091 0000 lds r24,modell_fliegt |
10411 57d4 9091 0000 lds r25,(modell_fliegt)+1 |
10412 57d8 77E0 ldi r23,hi8(2000) |
10413 57da 803D cpi r24,lo8(2000) |
10414 57dc 9707 cpc r25,r23 |
10415 57de 00F0 brlo .+2 |
10416 57e0 00C0 rjmp .L1080 |
10417 57e2 D801 movw r26,r16 |
10418 57e4 C701 movw r24,r14 |
10419 57e6 69E0 ldi r22,9 |
10420 57e8 B695 1: lsr r27 |
10421 57ea A795 ror r26 |
10422 57ec 9795 ror r25 |
10423 57ee 8795 ror r24 |
10424 57f0 6A95 dec r22 |
10425 57f2 01F4 brne 1b |
10426 57f4 E81A sub r14,r24 |
10427 57f6 F90A sbc r15,r25 |
10428 57f8 0A0B sbc r16,r26 |
10429 57fa 1B0B sbc r17,r27 |
10430 57fc DA01 movw r26,r20 |
10431 57fe C901 movw r24,r18 |
10432 5800 23E0 ldi r18,3 |
10433 5802 880F 1: lsl r24 |
10434 5804 991F rol r25 |
10435 5806 AA1F rol r26 |
10436 5808 BB1F rol r27 |
10437 580a 2A95 dec r18 |
10438 580c 01F4 brne 1b |
10439 .L1210: |
10440 580e E80E add r14,r24 |
10441 5810 F91E adc r15,r25 |
10442 5812 0A1F adc r16,r26 |
10443 5814 1B1F adc r17,r27 |
10444 .L1207: |
10445 5816 E092 0000 sts HooverGasFilter.30,r14 |
10446 581a F092 0000 sts (HooverGasFilter.30)+1,r15 |
10447 581e 0093 0000 sts (HooverGasFilter.30)+2,r16 |
10448 5822 1093 0000 sts (HooverGasFilter.30)+3,r17 |
10449 5826 D801 movw r26,r16 |
10450 5828 C701 movw r24,r14 |
10451 582a 1CE0 ldi r17,12 |
10452 582c B695 1: lsr r27 |
10453 582e A795 ror r26 |
10454 5830 9795 ror r25 |
10455 5832 8795 ror r24 |
10456 5834 1A95 dec r17 |
10457 5836 01F4 brne 1b |
10458 5838 9093 0000 sts (HooverGas.27)+1,r25 |
10459 583c 8093 0000 sts HooverGas.27,r24 |
10460 5840 4091 0000 lds r20,EE_Parameter+15 |
10461 5844 4423 tst r20 |
10462 5846 01F4 brne .+2 |
10463 5848 00C0 rjmp .L1086 |
10464 584a 5527 clr r21 |
10465 584c 9C01 movw r18,r24 |
10466 584e BA01 movw r22,r20 |
10467 5850 0E94 0000 call __divmodhi4 |
10468 5854 C901 movw r24,r18 |
10469 5856 861B sub r24,r22 |
10470 5858 970B sbc r25,r23 |
10471 585a 9093 0000 sts (HooverGasMin.28)+1,r25 |
10472 585e 8093 0000 sts HooverGasMin.28,r24 |
10473 5862 260F add r18,r22 |
10474 5864 371F adc r19,r23 |
10475 5866 3093 0000 sts (HooverGasMax.29)+1,r19 |
10476 586a 2093 0000 sts HooverGasMax.29,r18 |
10477 .L1166: |
10478 586e E090 0000 lds r14,IntegralNick |
10479 5872 F090 0000 lds r15,(IntegralNick)+1 |
10480 5876 0091 0000 lds r16,(IntegralNick)+2 |
10481 587a 1091 0000 lds r17,(IntegralNick)+3 |
10482 587e ED8E std Y+29,r14 |
10483 5880 FE8E std Y+30,r15 |
10484 5882 0F8F std Y+31,r16 |
10485 5884 18A3 std Y+32,r17 |
10486 5886 A090 0000 lds r10,MesswertNick |
10487 588a B090 0000 lds r11,(MesswertNick)+1 |
10488 588e 0091 0000 lds r16,MesswertRoll |
10489 5892 1091 0000 lds r17,(MesswertRoll)+1 |
10490 5896 1EA3 std Y+38,r17 |
10491 5898 0DA3 std Y+37,r16 |
10492 589a 00C0 rjmp .L995 |
10493 .L1299: |
10494 589c 0396 adiw r24,3 |
10495 589e 00C0 rjmp .L973 |
10496 .L1268: |
10497 58a0 9095 com r25 |
10498 58a2 8195 neg r24 |
10499 58a4 9F4F sbci r25,lo8(-1) |
10500 58a6 0C94 0000 jmp .L829 |
10501 .L1219: |
10502 58aa 0396 adiw r24,3 |
10503 58ac 0C94 0000 jmp .L823 |
10504 .L1218: |
10505 58b0 9095 com r25 |
10506 58b2 8195 neg r24 |
10507 58b4 9F4F sbci r25,lo8(-1) |
10508 58b6 0C94 0000 jmp .L822 |
10509 .L1269: |
10510 58ba 0396 adiw r24,3 |
10511 58bc 0C94 0000 jmp .L830 |
10512 .L1280: |
10513 58c0 8827 clr r24 |
10514 58c2 9927 clr r25 |
10515 58c4 8819 sub r24,r8 |
10516 58c6 9909 sbc r25,r9 |
10517 58c8 0C94 0000 jmp .L960 |
10518 .L1279: |
10519 58cc 695F subi r22,lo8(-(7)) |
10520 58ce 7F4F sbci r23,hi8(-(7)) |
10521 58d0 0C94 0000 jmp .L958 |
10522 .L1278: |
10523 58d4 7095 com r23 |
10524 58d6 6195 neg r22 |
10525 58d8 7F4F sbci r23,lo8(-1) |
10526 58da 0C94 0000 jmp .L956 |
10527 .L1277: |
10528 58de 8150 subi r24,lo8(-(511)) |
10529 58e0 9E4F sbci r25,hi8(-(511)) |
10530 58e2 AF4F sbci r26,hlo8(-(511)) |
10531 58e4 BF4F sbci r27,hhi8(-(511)) |
10532 58e6 0C94 0000 jmp .L955 |
10533 .L1276: |
10534 58ea D094 com r13 |
10535 58ec C194 neg r12 |
10536 58ee D108 sbc r13,__zero_reg__ |
10537 58f0 D394 inc r13 |
10538 58f2 0C94 0000 jmp .L954 |
10539 .L1275: |
10540 58f6 8150 subi r24,lo8(-(511)) |
10541 58f8 9E4F sbci r25,hi8(-(511)) |
10542 58fa AF4F sbci r26,hlo8(-(511)) |
10543 58fc BF4F sbci r27,hhi8(-(511)) |
10544 58fe 0C94 0000 jmp .L953 |
10545 .L964: |
10546 5902 84EF ldi r24,lo8(500) |
10547 5904 91E0 ldi r25,hi8(500) |
10548 5906 9093 0000 sts (KompassSignalSchlecht)+1,r25 |
10549 590a 8093 0000 sts KompassSignalSchlecht,r24 |
10550 590e 0C94 0000 jmp .L952 |
10551 .L1282: |
10552 5912 4F96 adiw r24,31 |
10553 5914 0C94 0000 jmp .L963 |
10554 .L1284: |
10555 5918 B601 movw r22,r12 |
10556 591a 0C94 0000 jmp .L968 |
10557 .L1308: |
10558 591e 4091 0000 lds r20,HooverGas.27 |
10559 5922 5091 0000 lds r21,(HooverGas.27)+1 |
10560 5926 57FD sbrc r21,7 |
10561 5928 00C0 rjmp .L1311 |
10562 .L1070: |
10563 592a 5595 asr r21 |
10564 592c 4795 ror r20 |
10565 592e 5595 asr r21 |
10566 5930 4795 ror r20 |
10567 5932 8091 0000 lds r24,UBat |
10568 5936 9091 0000 lds r25,(UBat)+1 |
10569 593a 2091 0000 lds r18,BattLowVoltageWarning |
10570 593e 3327 clr r19 |
10571 5940 489F mul r20,r24 |
10572 5942 F001 movw r30,r0 |
10573 5944 499F mul r20,r25 |
10574 5946 F00D add r31,r0 |
10575 5948 589F mul r21,r24 |
10576 594a F00D add r31,r0 |
10577 594c 1124 clr r1 |
10578 594e CF01 movw r24,r30 |
10579 5950 B901 movw r22,r18 |
10580 5952 0E94 0000 call __divmodhi4 |
10581 5956 00C0 rjmp .L1071 |
10582 .L1007: |
10583 5958 81E0 ldi r24,lo8(1) |
10584 595a 8093 0000 sts HoehenReglerAktiv,r24 |
10585 595e 88EC ldi r24,lo8(-56) |
10586 5960 8093 0000 sts delay.31,r24 |
10587 5964 00C0 rjmp .L1010 |
10588 .L1172: |
10589 5966 8093 0000 sts delay_ausschalten.10,r24 |
10590 596a 0C94 0000 jmp .L734 |
10591 .L1171: |
10592 596e 8093 0000 sts delay_einschalten.9,r24 |
10593 5972 00C0 rjmp .L803 |
10594 .L1289: |
10595 5974 87B5 in r24,71-0x20 |
10596 5976 853F cpi r24,lo8(-11) |
10597 5978 00F0 brlo .+2 |
10598 597a 00C0 rjmp .L998 |
10599 597c 8091 0000 lds r24,ExpandBaro |
10600 5980 8150 subi r24,lo8(-(-1)) |
10601 5982 00C0 rjmp .L1203 |
10602 .L1281: |
10603 5984 4DA1 ldd r20,Y+37 |
10604 5986 5EA1 ldd r21,Y+38 |
10605 5988 CA01 movw r24,r20 |
10606 598a AA27 clr r26 |
10607 598c 97FD sbrc r25,7 |
10608 598e A095 com r26 |
10609 5990 BA2F mov r27,r26 |
10610 5992 BC01 movw r22,r24 |
10611 5994 CD01 movw r24,r26 |
10612 5996 2A89 ldd r18,Y+18 |
10613 5998 3B89 ldd r19,Y+19 |
10614 599a 4C89 ldd r20,Y+20 |
10615 599c 5D89 ldd r21,Y+21 |
10616 599e 0E94 0000 call __mulsi3 |
10617 59a2 2B01 movw r4,r22 |
10618 59a4 3C01 movw r6,r24 |
10619 59a6 0E94 0000 call __divmodsi4 |
10620 59aa 3093 0000 sts (KompassStartwert)+1,r19 |
10621 59ae 2093 0000 sts KompassStartwert,r18 |
10622 59b2 1092 0000 sts NeueKompassRichtungMerken.12,__zero_reg__ |
10623 59b6 0C94 0000 jmp .L961 |
10624 .L742: |
10625 59ba 8081 ld r24,Z |
10626 59bc 9181 ldd r25,Z+1 |
10627 59be 855B subi r24,lo8(-75) |
10628 59c0 9F4F sbci r25,hi8(-75) |
10629 59c2 04F0 brlt .+2 |
10630 59c4 00C0 rjmp .L761 |
10631 59c6 8091 0000 lds r24,delay_neutral.8 |
10632 59ca 8F5F subi r24,lo8(-(1)) |
10633 59cc 893C cpi r24,lo8(-55) |
10634 59ce 00F4 brsh .+2 |
10635 59d0 00C0 rjmp .L1170 |
10636 59d2 2C30 cpi r18,lo8(12) |
10637 59d4 00F0 brlo .+2 |
10638 59d6 00C0 rjmp .L763 |
10639 59d8 2998 cbi 37-0x20,1 |
10640 .L765: |
10641 59da 8FB3 in r24,63-0x20 |
10642 59dc 9927 clr r25 |
10643 59de 9C01 movw r18,r24 |
10644 59e0 2270 andi r18,lo8(2) |
10645 59e2 3070 andi r19,hi8(2) |
10646 59e4 81FD sbrc r24,1 |
10647 59e6 00C0 rjmp .L765 |
10648 59e8 1FBA out 63-0x20,__zero_reg__ |
10649 59ea 80E0 ldi r24,lo8(EEPromArray+4) |
10650 59ec 90E0 ldi r25,hi8(EEPromArray+4) |
10651 59ee 92BD out (65)+1-0x20,r25 |
10652 59f0 81BD out 65-0x20,r24 |
10653 59f2 8FEF ldi r24,lo8(-1) |
10654 59f4 80BD out 64-0x20,r24 |
10655 /* #APP */ |
10656 /* START EEPROM WRITE CRITICAL SECTION */ |
10657 59f6 0FB6 in r0, 63 |
10658 59f8 F894 cli |
10659 59fa FA9A sbi 31, 2 |
10660 59fc F99A sbi 31, 1 |
10661 59fe 0FBE out 63, r0 |
10662 /* END EEPROM WRITE CRITICAL SECTION */ |
10663 /* #NOAPP */ |
10664 5a00 1092 0000 sts MotorenEin,__zero_reg__ |
10665 5a04 1092 0000 sts delay_neutral.8,__zero_reg__ |
10666 5a08 3093 0000 sts (modell_fliegt)+1,r19 |
10667 5a0c 2093 0000 sts modell_fliegt,r18 |
10668 5a10 0E94 0000 call SetNeutral |
10669 5a14 2091 0000 lds r18,NeutralAccX |
10670 5a18 3091 0000 lds r19,(NeutralAccX)+1 |
10671 5a1c C901 movw r24,r18 |
10672 5a1e 37FD sbrc r19,7 |
10673 5a20 00C0 rjmp .L1312 |
10674 .L769: |
10675 5a22 892F mov r24,r25 |
10676 5a24 990F lsl r25 |
10677 5a26 990B sbc r25,r25 |
10678 5a28 482F mov r20,r24 |
10679 .L770: |
10680 5a2a F999 sbic 63-0x20,1 |
10681 5a2c 00C0 rjmp .L770 |
10682 5a2e 1FBA out 63-0x20,__zero_reg__ |
10683 5a30 80E0 ldi r24,lo8(EEPromArray+4) |
10684 5a32 90E0 ldi r25,hi8(EEPromArray+4) |
10685 5a34 92BD out (65)+1-0x20,r25 |
10686 5a36 81BD out 65-0x20,r24 |
10687 5a38 40BD out 64-0x20,r20 |
10688 /* #APP */ |
10689 /* START EEPROM WRITE CRITICAL SECTION */ |
10690 5a3a 0FB6 in r0, 63 |
10691 5a3c F894 cli |
10692 5a3e FA9A sbi 31, 2 |
10693 5a40 F99A sbi 31, 1 |
10694 5a42 0FBE out 63, r0 |
10695 /* END EEPROM WRITE CRITICAL SECTION */ |
10696 /* #NOAPP */ |
10697 .L775: |
10698 5a44 F999 sbic 63-0x20,1 |
10699 5a46 00C0 rjmp .L775 |
10700 5a48 1FBA out 63-0x20,__zero_reg__ |
10701 5a4a 80E0 ldi r24,lo8(EEPromArray+5) |
10702 5a4c 90E0 ldi r25,hi8(EEPromArray+5) |
10703 5a4e 92BD out (65)+1-0x20,r25 |
10704 5a50 81BD out 65-0x20,r24 |
10705 5a52 20BD out 64-0x20,r18 |
10706 /* #APP */ |
10707 /* START EEPROM WRITE CRITICAL SECTION */ |
10708 5a54 0FB6 in r0, 63 |
10709 5a56 F894 cli |
10710 5a58 FA9A sbi 31, 2 |
10711 5a5a F99A sbi 31, 1 |
10712 5a5c 0FBE out 63, r0 |
10713 /* END EEPROM WRITE CRITICAL SECTION */ |
10714 /* #NOAPP */ |
10715 5a5e 2091 0000 lds r18,NeutralAccY |
10716 5a62 3091 0000 lds r19,(NeutralAccY)+1 |
10717 5a66 C901 movw r24,r18 |
10718 5a68 37FD sbrc r19,7 |
10719 5a6a 00C0 rjmp .L1313 |
10720 .L779: |
10721 5a6c 892F mov r24,r25 |
10722 5a6e 990F lsl r25 |
10723 5a70 990B sbc r25,r25 |
10724 5a72 482F mov r20,r24 |
10725 .L780: |
10726 5a74 F999 sbic 63-0x20,1 |
10727 5a76 00C0 rjmp .L780 |
10728 5a78 1FBA out 63-0x20,__zero_reg__ |
10729 5a7a 80E0 ldi r24,lo8(EEPromArray+6) |
10730 5a7c 90E0 ldi r25,hi8(EEPromArray+6) |
10731 5a7e 92BD out (65)+1-0x20,r25 |
10732 5a80 81BD out 65-0x20,r24 |
10733 5a82 40BD out 64-0x20,r20 |
10734 /* #APP */ |
10735 /* START EEPROM WRITE CRITICAL SECTION */ |
10736 5a84 0FB6 in r0, 63 |
10737 5a86 F894 cli |
10738 5a88 FA9A sbi 31, 2 |
10739 5a8a F99A sbi 31, 1 |
10740 5a8c 0FBE out 63, r0 |
10741 /* END EEPROM WRITE CRITICAL SECTION */ |
10742 /* #NOAPP */ |
10743 .L785: |
10744 5a8e F999 sbic 63-0x20,1 |
10745 5a90 00C0 rjmp .L785 |
10746 5a92 1FBA out 63-0x20,__zero_reg__ |
10747 5a94 80E0 ldi r24,lo8(EEPromArray+7) |
10748 5a96 90E0 ldi r25,hi8(EEPromArray+7) |
10749 5a98 92BD out (65)+1-0x20,r25 |
10750 5a9a 81BD out 65-0x20,r24 |
10751 5a9c 20BD out 64-0x20,r18 |
10752 /* #APP */ |
10753 /* START EEPROM WRITE CRITICAL SECTION */ |
10754 5a9e 0FB6 in r0, 63 |
10755 5aa0 F894 cli |
10756 5aa2 FA9A sbi 31, 2 |
10757 5aa4 F99A sbi 31, 1 |
10758 5aa6 0FBE out 63, r0 |
10759 /* END EEPROM WRITE CRITICAL SECTION */ |
10760 /* #NOAPP */ |
10761 5aa8 8091 0000 lds r24,NeutralAccZ |
10762 5aac 9091 0000 lds r25,(NeutralAccZ)+1 |
10763 5ab0 A091 0000 lds r26,(NeutralAccZ)+2 |
10764 5ab4 B091 0000 lds r27,(NeutralAccZ)+3 |
10765 5ab8 BC01 movw r22,r24 |
10766 5aba CD01 movw r24,r26 |
10767 5abc 0E94 0000 call __fixsfsi |
10768 5ac0 DC01 movw r26,r24 |
10769 5ac2 CB01 movw r24,r22 |
10770 5ac4 9C01 movw r18,r24 |
10771 5ac6 97FD sbrc r25,7 |
10772 5ac8 00C0 rjmp .L1314 |
10773 .L789: |
10774 5aca 832F mov r24,r19 |
10775 5acc 9927 clr r25 |
10776 5ace 87FD sbrc r24,7 |
10777 5ad0 9A95 dec r25 |
10778 5ad2 282F mov r18,r24 |
10779 .L790: |
10780 5ad4 F999 sbic 63-0x20,1 |
10781 5ad6 00C0 rjmp .L790 |
10782 5ad8 1FBA out 63-0x20,__zero_reg__ |
10783 5ada 80E0 ldi r24,lo8(EEPromArray+8) |
10784 5adc 90E0 ldi r25,hi8(EEPromArray+8) |
10785 5ade 92BD out (65)+1-0x20,r25 |
10786 5ae0 81BD out 65-0x20,r24 |
10787 5ae2 20BD out 64-0x20,r18 |
10788 /* #APP */ |
10789 /* START EEPROM WRITE CRITICAL SECTION */ |
10790 5ae4 0FB6 in r0, 63 |
10791 5ae6 F894 cli |
10792 5ae8 FA9A sbi 31, 2 |
10793 5aea F99A sbi 31, 1 |
10794 5aec 0FBE out 63, r0 |
10795 /* END EEPROM WRITE CRITICAL SECTION */ |
10796 /* #NOAPP */ |
10797 5aee 8091 0000 lds r24,NeutralAccZ |
10798 5af2 9091 0000 lds r25,(NeutralAccZ)+1 |
10799 5af6 A091 0000 lds r26,(NeutralAccZ)+2 |
10800 5afa B091 0000 lds r27,(NeutralAccZ)+3 |
10801 5afe BC01 movw r22,r24 |
10802 5b00 CD01 movw r24,r26 |
10803 5b02 0E94 0000 call __fixsfsi |
10804 5b06 DC01 movw r26,r24 |
10805 5b08 CB01 movw r24,r22 |
10806 5b0a 282F mov r18,r24 |
10807 .L795: |
10808 5b0c F999 sbic 63-0x20,1 |
10809 5b0e 00C0 rjmp .L795 |
10810 5b10 1FBA out 63-0x20,__zero_reg__ |
10811 5b12 80E0 ldi r24,lo8(EEPromArray+9) |
10812 5b14 90E0 ldi r25,hi8(EEPromArray+9) |
10813 5b16 92BD out (65)+1-0x20,r25 |
10814 5b18 81BD out 65-0x20,r24 |
10815 5b1a 20BD out 64-0x20,r18 |
10816 /* #APP */ |
10817 /* START EEPROM WRITE CRITICAL SECTION */ |
10818 5b1c 0FB6 in r0, 63 |
10819 5b1e F894 cli |
10820 5b20 FA9A sbi 31, 2 |
10821 5b22 F99A sbi 31, 1 |
10822 5b24 0FBE out 63, r0 |
10823 /* END EEPROM WRITE CRITICAL SECTION */ |
10824 /* #NOAPP */ |
10825 .L1199: |
10826 5b26 0E94 0000 call GetActiveParamSetNumber |
10827 5b2a 68E7 ldi r22,lo8(120) |
10828 5b2c 70E0 ldi r23,hi8(120) |
10829 5b2e 0E94 0000 call Piep |
10830 5b32 3091 0000 lds r19,EE_Parameter+2 |
10831 5b36 0C94 0000 jmp .L741 |
10832 .L1206: |
10833 5b3a 8C01 movw r16,r24 |
10834 5b3c 00C0 rjmp .L1057 |
10835 .L1165: |
10836 5b3e 6091 0000 lds r22,IntegralNick |
10837 5b42 7091 0000 lds r23,(IntegralNick)+1 |
10838 5b46 8091 0000 lds r24,(IntegralNick)+2 |
10839 5b4a 9091 0000 lds r25,(IntegralNick)+3 |
10840 5b4e 6D8F std Y+29,r22 |
10841 5b50 7E8F std Y+30,r23 |
10842 5b52 8F8F std Y+31,r24 |
10843 5b54 98A3 std Y+32,r25 |
10844 5b56 A090 0000 lds r10,MesswertNick |
10845 5b5a B090 0000 lds r11,(MesswertNick)+1 |
10846 5b5e 8091 0000 lds r24,MesswertRoll |
10847 5b62 9091 0000 lds r25,(MesswertRoll)+1 |
10848 5b66 9EA3 std Y+38,r25 |
10849 5b68 8DA3 std Y+37,r24 |
10850 5b6a 0C94 0000 jmp .L995 |
10851 .L1198: |
10852 5b6e 0894 sec |
10853 5b70 2108 sbc r2,__zero_reg__ |
10854 5b72 3108 sbc r3,__zero_reg__ |
10855 5b74 3092 0000 sts (KompassSignalSchlecht)+1,r3 |
10856 5b78 2092 0000 sts KompassSignalSchlecht,r2 |
10857 5b7c 0C94 0000 jmp .L952 |
10858 .L1072: |
10859 5b80 6739 cpi r22,151 |
10860 5b82 7105 cpc r23,__zero_reg__ |
10861 5b84 04F4 brge .+2 |
10862 5b86 00C0 rjmp .L1191 |
10863 5b88 86E9 ldi r24,lo8(150) |
10864 5b8a 90E0 ldi r25,hi8(150) |
10865 5b8c 9093 0000 sts (StickGasHoover.26)+1,r25 |
10866 5b90 8093 0000 sts StickGasHoover.26,r24 |
10867 5b94 00C0 rjmp .L1073 |
10868 .L1300: |
10869 5b96 1092 0000 sts ucflg1,__zero_reg__ |
10870 5b9a 00C0 rjmp .L1122 |
10871 .L1229: |
10872 5b9c 81E0 ldi r24,lo8(1) |
10873 5b9e 8093 0000 sts NeueKompassRichtungMerken.12,r24 |
10874 5ba2 1092 0000 sts sollGier.2,__zero_reg__ |
10875 5ba6 1092 0000 sts (sollGier.2)+1,__zero_reg__ |
10876 5baa 1092 0000 sts (sollGier.2)+2,__zero_reg__ |
10877 5bae 1092 0000 sts (sollGier.2)+3,__zero_reg__ |
10878 5bb2 1092 0000 sts Mess_Integral_Gier,__zero_reg__ |
10879 5bb6 1092 0000 sts (Mess_Integral_Gier)+1,__zero_reg__ |
10880 5bba 1092 0000 sts (Mess_Integral_Gier)+2,__zero_reg__ |
10881 5bbe 1092 0000 sts (Mess_Integral_Gier)+3,__zero_reg__ |
10882 5bc2 0C94 0000 jmp .L740 |
10883 .L1086: |
10884 5bc6 1092 0000 sts (HooverGasMin.28)+1,__zero_reg__ |
10885 5bca 1092 0000 sts HooverGasMin.28,__zero_reg__ |
10886 5bce 8FEF ldi r24,lo8(1023) |
10887 5bd0 93E0 ldi r25,hi8(1023) |
10888 5bd2 9093 0000 sts (HooverGasMax.29)+1,r25 |
10889 5bd6 8093 0000 sts HooverGasMax.29,r24 |
10890 .L1167: |
10891 5bda 2091 0000 lds r18,IntegralNick |
10892 5bde 3091 0000 lds r19,(IntegralNick)+1 |
10893 5be2 4091 0000 lds r20,(IntegralNick)+2 |
10894 5be6 5091 0000 lds r21,(IntegralNick)+3 |
10895 5bea 2D8F std Y+29,r18 |
10896 5bec 3E8F std Y+30,r19 |
10897 5bee 4F8F std Y+31,r20 |
10898 5bf0 58A3 std Y+32,r21 |
10899 5bf2 A090 0000 lds r10,MesswertNick |
10900 5bf6 B090 0000 lds r11,(MesswertNick)+1 |
10901 5bfa 4091 0000 lds r20,MesswertRoll |
10902 5bfe 5091 0000 lds r21,(MesswertRoll)+1 |
10903 5c02 5EA3 std Y+38,r21 |
10904 5c04 4DA3 std Y+37,r20 |
10905 5c06 0C94 0000 jmp .L995 |
10906 .L1170: |
10907 5c0a 8093 0000 sts delay_neutral.8,r24 |
10908 5c0e 0C94 0000 jmp .L741 |
10909 .L1191: |
10910 5c12 7093 0000 sts (StickGasHoover.26)+1,r23 |
10911 5c16 6093 0000 sts StickGasHoover.26,r22 |
10912 5c1a 00C0 rjmp .L1073 |
10913 .L1283: |
10914 5c1c 67E0 ldi r22,lo8(7) |
10915 5c1e 70E0 ldi r23,hi8(7) |
10916 5c20 E60E add r14,r22 |
10917 5c22 F71E adc r15,r23 |
10918 5c24 0C94 0000 jmp .L966 |
10919 .L1190: |
10920 5c28 7093 0000 sts (FilterHCGas.25)+1,r23 |
10921 5c2c 6093 0000 sts FilterHCGas.25,r22 |
10922 5c30 5A83 std Y+2,r21 |
10923 5c32 4983 std Y+1,r20 |
10924 5c34 00C0 rjmp .L1068 |
10925 .L998: |
10926 5c36 81E0 ldi r24,lo8(1) |
10927 5c38 8093 0000 sts BaroAtLowerLimit.33,r24 |
10928 5c3c 00C0 rjmp .L1005 |
10929 .L1001: |
10930 5c3e 3B85 ldd r19,Y+11 |
10931 5c40 3093 0000 sts BaroAtUpperLimit.32,r19 |
10932 5c44 3093 0000 sts BaroAtLowerLimit.33,r19 |
10933 5c48 00C0 rjmp .L1005 |
10934 .L894: |
10935 5c4a 6092 0000 sts ausgleichNick.13,r6 |
10936 5c4e 7092 0000 sts (ausgleichNick.13)+1,r7 |
10937 5c52 8092 0000 sts (ausgleichNick.13)+2,r8 |
10938 5c56 9092 0000 sts (ausgleichNick.13)+3,r9 |
10939 5c5a 1092 0000 sts (cnt.17)+1,__zero_reg__ |
10940 5c5e 1092 0000 sts cnt.17,__zero_reg__ |
10941 5c62 88EE ldi r24,lo8(1000) |
10942 5c64 282E mov r2,r24 |
10943 5c66 83E0 ldi r24,hi8(1000) |
10944 5c68 382E mov r3,r24 |
10945 5c6a 3092 0000 sts (KompassSignalSchlecht)+1,r3 |
10946 5c6e 2092 0000 sts KompassSignalSchlecht,r2 |
10947 5c72 0C94 0000 jmp .L913 |
10948 .L919: |
10949 5c76 2093 0000 sts ausgleichRoll.14,r18 |
10950 5c7a 3093 0000 sts (ausgleichRoll.14)+1,r19 |
10951 5c7e 4093 0000 sts (ausgleichRoll.14)+2,r20 |
10952 5c82 5093 0000 sts (ausgleichRoll.14)+3,r21 |
10953 5c86 1092 0000 sts (cnt.17)+1,__zero_reg__ |
10954 5c8a 1092 0000 sts cnt.17,__zero_reg__ |
10955 5c8e E8EE ldi r30,lo8(1000) |
10956 5c90 2E2E mov r2,r30 |
10957 5c92 E3E0 ldi r30,hi8(1000) |
10958 5c94 3E2E mov r3,r30 |
10959 5c96 3092 0000 sts (KompassSignalSchlecht)+1,r3 |
10960 5c9a 2092 0000 sts KompassSignalSchlecht,r2 |
10961 5c9e 0C94 0000 jmp .L938 |
10962 .L761: |
10963 5ca2 4093 0000 sts delay_neutral.8,r20 |
10964 5ca6 0C94 0000 jmp .L741 |
10965 .L1054: |
10966 5caa 2F3F cpi r18,255 |
10967 5cac 3105 cpc r19,__zero_reg__ |
10968 5cae 01F0 breq .+2 |
10969 5cb0 04F4 brge .+2 |
10970 5cb2 00C0 rjmp .L1055 |
10971 5cb4 2FEF ldi r18,lo8(255) |
10972 5cb6 30E0 ldi r19,hi8(255) |
10973 5cb8 00C0 rjmp .L1055 |
10974 .L1063: |
10975 5cba D090 0000 lds r13,MAX_GAS |
10976 5cbe 2D2D mov r18,r13 |
10977 5cc0 3327 clr r19 |
10978 5cc2 220F lsl r18 |
10979 5cc4 331F rol r19 |
10980 5cc6 220F lsl r18 |
10981 5cc8 331F rol r19 |
10982 5cca 2055 subi r18,lo8(-(-80)) |
10983 5ccc 3040 sbci r19,hi8(-(-80)) |
10984 5cce 2417 cp r18,r20 |
10985 5cd0 3507 cpc r19,r21 |
10986 5cd2 04F0 brlt .+2 |
10987 5cd4 00C0 rjmp .L1064 |
10988 5cd6 A901 movw r20,r18 |
10989 5cd8 B901 movw r22,r18 |
10990 5cda 00C0 rjmp .L1064 |
10991 .L1049: |
10992 5cdc 6F3F cpi r22,255 |
10993 5cde 7105 cpc r23,__zero_reg__ |
10994 5ce0 01F0 breq .+2 |
10995 5ce2 04F4 brge .+2 |
10996 5ce4 00C0 rjmp .L1050 |
10997 5ce6 2FEF ldi r18,lo8(255) |
10998 5ce8 30E0 ldi r19,hi8(255) |
10999 5cea 00C0 rjmp .L1050 |
11000 .L1043: |
11001 5cec 1216 cp __zero_reg__,r18 |
11002 5cee 1306 cpc __zero_reg__,r19 |
11003 5cf0 04F4 brge .+2 |
11004 5cf2 00C0 rjmp .L1197 |
11005 5cf4 229F mul r18,r18 |
11006 5cf6 C001 movw r24,r0 |
11007 5cf8 239F mul r18,r19 |
11008 5cfa 900D add r25,r0 |
11009 5cfc 329F mul r19,r18 |
11010 5cfe 900D add r25,r0 |
11011 5d00 1124 clr r1 |
11012 5d02 97FD sbrc r25,7 |
11013 5d04 00C0 rjmp .L1315 |
11014 .L1047: |
11015 5d06 9595 asr r25 |
11016 5d08 8795 ror r24 |
11017 5d0a 9595 asr r25 |
11018 5d0c 8795 ror r24 |
11019 5d0e 2091 0000 lds r18,VarioMeter |
11020 5d12 3091 0000 lds r19,(VarioMeter)+1 |
11021 5d16 281B sub r18,r24 |
11022 5d18 390B sbc r19,r25 |
11023 5d1a 00C0 rjmp .L1046 |
11024 .L754: |
11025 5d1c 0E94 0000 call GetActiveParamSetNumber |
11026 5d20 45E6 ldi r20,lo8(101) |
11027 5d22 60E0 ldi r22,lo8(EE_Parameter) |
11028 5d24 70E0 ldi r23,hi8(EE_Parameter) |
11029 5d26 0E94 0000 call ReadParameterSet |
11030 5d2a 8091 0000 lds r24,EE_Parameter+8 |
11031 5d2e 80FF sbrs r24,0 |
11032 5d30 00C0 rjmp .L757 |
11033 5d32 8091 0000 lds r24,MessLuftdruck |
11034 5d36 9091 0000 lds r25,(MessLuftdruck)+1 |
11035 5d3a 875B subi r24,lo8(951) |
11036 5d3c 9340 sbci r25,hi8(951) |
11037 5d3e 00F4 brsh .L759 |
11038 5d40 8091 0000 lds r24,MessLuftdruck |
11039 5d44 9091 0000 lds r25,(MessLuftdruck)+1 |
11040 5d48 8E5E subi r24,lo8(750) |
11041 5d4a 9240 sbci r25,hi8(750) |
11042 5d4c 00F4 brsh .L757 |
11043 .L759: |
11044 5d4e 0E94 0000 call SucheLuftruckOffset |
11045 .L757: |
11046 5d52 1092 0000 sts ServoActive,__zero_reg__ |
11047 5d56 0E94 0000 call SetNeutral |
11048 5d5a 81E0 ldi r24,lo8(1) |
11049 5d5c 8093 0000 sts ServoActive,r24 |
11050 5d60 579A sbi 42-0x20,7 |
11051 5d62 00C0 rjmp .L1199 |
11052 .L1311: |
11053 5d64 4D5F subi r20,lo8(-(3)) |
11054 5d66 5F4F sbci r21,hi8(-(3)) |
11055 5d68 00C0 rjmp .L1070 |
11056 .L1013: |
11057 5d6a 8091 0000 lds r24,MikroKopterFlags |
11058 5d6e 81FF sbrs r24,1 |
11059 5d70 00C0 rjmp .L1016 |
11060 5d72 2091 0000 lds r18,StickGasHoover.26 |
11061 5d76 3091 0000 lds r19,(StickGasHoover.26)+1 |
11062 5d7a C901 movw r24,r18 |
11063 5d7c 0F96 adiw r24,15 |
11064 5d7e 4091 0000 lds r20,StickGas |
11065 5d82 5091 0000 lds r21,(StickGas)+1 |
11066 5d86 8417 cp r24,r20 |
11067 5d88 9507 cpc r25,r21 |
11068 5d8a 04F0 brlt .+2 |
11069 5d8c 00C0 rjmp .L1017 |
11070 5d8e 8091 0000 lds r24,BaroAtUpperLimit.32 |
11071 5d92 8823 tst r24 |
11072 5d94 01F0 breq .+2 |
11073 5d96 00C0 rjmp .L1017 |
11074 5d98 8091 0000 lds r24,HeightTrimmingFlag.34 |
11075 5d9c 81FF sbrs r24,1 |
11076 5d9e 00C0 rjmp .L1158 |
11077 5da0 8D7F andi r24,lo8(-3) |
11078 5da2 6090 0000 lds r6,HoehenWert |
11079 5da6 7090 0000 lds r7,(HoehenWert)+1 |
11080 5daa 8090 0000 lds r8,(HoehenWert)+2 |
11081 5dae 9090 0000 lds r9,(HoehenWert)+3 |
11082 5db2 6092 0000 sts SollHoehe,r6 |
11083 5db6 7092 0000 sts (SollHoehe)+1,r7 |
11084 5dba 8092 0000 sts (SollHoehe)+2,r8 |
11085 5dbe 9092 0000 sts (SollHoehe)+3,r9 |
11086 .L1018: |
11087 5dc2 8160 ori r24,lo8(1) |
11088 5dc4 8093 0000 sts HeightTrimmingFlag.34,r24 |
11089 5dc8 421B sub r20,r18 |
11090 5dca 530B sbc r21,r19 |
11091 5dcc 9A01 movw r18,r20 |
11092 5dce 2F50 subi r18,lo8(-(-15)) |
11093 5dd0 3040 sbci r19,hi8(-(-15)) |
11094 5dd2 37FD sbrc r19,7 |
11095 5dd4 00C0 rjmp .L1316 |
11096 .L1019: |
11097 5dd6 8091 0000 lds r24,HeightTrimming.24 |
11098 5dda 9091 0000 lds r25,(HeightTrimming.24)+1 |
11099 5dde 280F add r18,r24 |
11100 5de0 391F adc r19,r25 |
11101 5de2 3093 0000 sts (HeightTrimming.24)+1,r19 |
11102 5de6 2093 0000 sts HeightTrimming.24,r18 |
11103 .L1020: |
11104 5dea 2091 0000 lds r18,HeightTrimming.24 |
11105 5dee 3091 0000 lds r19,(HeightTrimming.24)+1 |
11106 5df2 C901 movw r24,r18 |
11107 5df4 37FD sbrc r19,7 |
11108 5df6 00C0 rjmp .L1317 |
11109 .L1028: |
11110 5df8 8150 subi r24,lo8(513) |
11111 5dfa 9240 sbci r25,hi8(513) |
11112 5dfc 04F4 brge .+2 |
11113 5dfe 00C0 rjmp .L1162 |
11114 5e00 8091 0000 lds r24,EE_Parameter+13 |
11115 5e04 9927 clr r25 |
11116 5e06 829F mul r24,r18 |
11117 5e08 F001 movw r30,r0 |
11118 5e0a 839F mul r24,r19 |
11119 5e0c F00D add r31,r0 |
11120 5e0e 929F mul r25,r18 |
11121 5e10 F00D add r31,r0 |
11122 5e12 1124 clr r1 |
11123 5e14 CF01 movw r24,r30 |
11124 5e16 60E0 ldi r22,lo8(1280) |
11125 5e18 75E0 ldi r23,hi8(1280) |
11126 5e1a 0E94 0000 call __divmodhi4 |
11127 5e1e CB01 movw r24,r22 |
11128 5e20 AA27 clr r26 |
11129 5e22 97FD sbrc r25,7 |
11130 5e24 A095 com r26 |
11131 5e26 BA2F mov r27,r26 |
11132 5e28 2091 0000 lds r18,SollHoehe |
11133 5e2c 3091 0000 lds r19,(SollHoehe)+1 |
11134 5e30 4091 0000 lds r20,(SollHoehe)+2 |
11135 5e34 5091 0000 lds r21,(SollHoehe)+3 |
11136 5e38 820F add r24,r18 |
11137 5e3a 931F adc r25,r19 |
11138 5e3c A41F adc r26,r20 |
11139 5e3e B51F adc r27,r21 |
11140 5e40 8093 0000 sts SollHoehe,r24 |
11141 5e44 9093 0000 sts (SollHoehe)+1,r25 |
11142 5e48 A093 0000 sts (SollHoehe)+2,r26 |
11143 5e4c B093 0000 sts (SollHoehe)+3,r27 |
11144 5e50 1092 0000 sts (HeightTrimming.24)+1,__zero_reg__ |
11145 5e54 1092 0000 sts HeightTrimming.24,__zero_reg__ |
11146 5e58 C1FE sbrs r12,1 |
11147 5e5a 00C0 rjmp .L1029 |
11148 5e5c 8BE4 ldi r24,lo8(75) |
11149 5e5e 90E0 ldi r25,hi8(75) |
11150 5e60 9093 0000 sts (beeptime)+1,r25 |
11151 5e64 8093 0000 sts beeptime,r24 |
11152 .L1029: |
11153 5e68 8091 0000 lds r24,EE_Parameter+17 |
11154 5e6c 8823 tst r24 |
11155 5e6e 01F0 breq .+2 |
11156 5e70 00C0 rjmp .L1162 |
11157 5e72 0091 0000 lds r16,HooverGas.27 |
11158 5e76 1091 0000 lds r17,(HooverGas.27)+1 |
11159 5e7a A801 movw r20,r16 |
11160 5e7c 17FD sbrc r17,7 |
11161 5e7e 00C0 rjmp .L1318 |
11162 .L1031: |
11163 5e80 5595 asr r21 |
11164 5e82 4795 ror r20 |
11165 5e84 5595 asr r21 |
11166 5e86 4795 ror r20 |
11167 5e88 8091 0000 lds r24,UBat |
11168 5e8c 9091 0000 lds r25,(UBat)+1 |
11169 5e90 2091 0000 lds r18,BattLowVoltageWarning |
11170 5e94 3327 clr r19 |
11171 5e96 489F mul r20,r24 |
11172 5e98 7001 movw r14,r0 |
11173 5e9a 499F mul r20,r25 |
11174 5e9c F00C add r15,r0 |
11175 5e9e 589F mul r21,r24 |
11176 5ea0 F00C add r15,r0 |
11177 5ea2 1124 clr r1 |
11178 5ea4 C701 movw r24,r14 |
11179 5ea6 B901 movw r22,r18 |
11180 5ea8 0E94 0000 call __divmodhi4 |
11181 5eac 6634 cpi r22,70 |
11182 5eae 7105 cpc r23,__zero_reg__ |
11183 5eb0 04F0 brlt .+2 |
11184 5eb2 00C0 rjmp .L1032 |
11185 5eb4 26E4 ldi r18,lo8(70) |
11186 5eb6 30E0 ldi r19,hi8(70) |
11187 .L1204: |
11188 5eb8 3093 0000 sts (StickGasHoover.26)+1,r19 |
11189 5ebc 2093 0000 sts StickGasHoover.26,r18 |
11190 .L1027: |
11191 5ec0 8091 0000 lds r24,BaroExpandActive |
11192 5ec4 9091 0000 lds r25,(BaroExpandActive)+1 |
11193 5ec8 892B or r24,r25 |
11194 5eca 01F4 brne .+2 |
11195 5ecc 00C0 rjmp .L1163 |
11196 5ece D401 movw r26,r8 |
11197 5ed0 C301 movw r24,r6 |
11198 5ed2 6092 0000 sts SollHoehe,r6 |
11199 5ed6 7092 0000 sts (SollHoehe)+1,r7 |
11200 5eda 8092 0000 sts (SollHoehe)+2,r8 |
11201 5ede 9092 0000 sts (SollHoehe)+3,r9 |
11202 5ee2 00C0 rjmp .L1015 |
11203 .L929: |
11204 5ee4 1092 0000 sts last_r_n.21,__zero_reg__ |
11205 5ee8 0C94 0000 jmp .L938 |
11206 .L1002: |
11207 5eec 81E0 ldi r24,lo8(1) |
11208 5eee 8093 0000 sts BaroAtUpperLimit.32,r24 |
11209 5ef2 00C0 rjmp .L1005 |
11210 .L1080: |
11211 5ef4 AFE0 ldi r26,hi8(4000) |
11212 5ef6 803A cpi r24,lo8(4000) |
11213 5ef8 9A07 cpc r25,r26 |
11214 5efa 00F0 brlo .+2 |
11215 5efc 00C0 rjmp .L1082 |
11216 5efe D801 movw r26,r16 |
11217 5f00 C701 movw r24,r14 |
11218 5f02 FAE0 ldi r31,10 |
11219 5f04 B695 1: lsr r27 |
11220 5f06 A795 ror r26 |
11221 5f08 9795 ror r25 |
11222 5f0a 8795 ror r24 |
11223 5f0c FA95 dec r31 |
11224 5f0e 01F4 brne 1b |
11225 5f10 E81A sub r14,r24 |
11226 5f12 F90A sbc r15,r25 |
11227 5f14 0A0B sbc r16,r26 |
11228 5f16 1B0B sbc r17,r27 |
11229 5f18 DA01 movw r26,r20 |
11230 5f1a C901 movw r24,r18 |
11231 5f1c 880F lsl r24 |
11232 5f1e 991F rol r25 |
11233 5f20 AA1F rol r26 |
11234 5f22 BB1F rol r27 |
11235 5f24 880F lsl r24 |
11236 5f26 991F rol r25 |
11237 5f28 AA1F rol r26 |
11238 5f2a BB1F rol r27 |
11239 5f2c 00C0 rjmp .L1210 |
11240 .L1148: |
11241 5f2e 1091 0000 lds r17,EE_Parameter+1 |
11242 5f32 0C94 0000 jmp .L747 |
11243 .L744: |
11244 5f36 299A sbi 37-0x20,1 |
11245 5f38 0C94 0000 jmp .L745 |
11246 .L920: |
11247 5f3c 2093 0000 sts ausgleichRoll.14,r18 |
11248 5f40 3093 0000 sts (ausgleichRoll.14)+1,r19 |
11249 5f44 4093 0000 sts (ausgleichRoll.14)+2,r20 |
11250 5f48 5093 0000 sts (ausgleichRoll.14)+3,r21 |
11251 5f4c 1092 0000 sts last_r_p.20,__zero_reg__ |
11252 5f50 0C94 0000 jmp .L928 |
11253 .L904: |
11254 5f54 2092 0000 sts ausgleichNick.13,r2 |
11255 5f58 3092 0000 sts (ausgleichNick.13)+1,r3 |
11256 5f5c 4092 0000 sts (ausgleichNick.13)+2,r4 |
11257 5f60 5092 0000 sts (ausgleichNick.13)+3,r5 |
11258 5f64 1092 0000 sts last_n_n.19,__zero_reg__ |
11259 5f68 0C94 0000 jmp .L913 |
11260 .L895: |
11261 5f6c 1092 0000 sts last_n_p.18,__zero_reg__ |
11262 5f70 0C94 0000 jmp .L903 |
11263 .L1252: |
11264 5f74 B095 com r27 |
11265 5f76 A095 com r26 |
11266 5f78 9095 com r25 |
11267 5f7a 8195 neg r24 |
11268 5f7c 9F4F sbci r25,lo8(-1) |
11269 5f7e AF4F sbci r26,lo8(-1) |
11270 5f80 BF4F sbci r27,lo8(-1) |
11271 5f82 0C94 0000 jmp .L918 |
11272 .L1309: |
11273 5f86 9095 com r25 |
11274 5f88 8195 neg r24 |
11275 5f8a 9F4F sbci r25,lo8(-1) |
11276 5f8c 00C0 rjmp .L1078 |
11277 .L1238: |
11278 5f8e 8150 subi r24,lo8(-(255)) |
11279 5f90 9F4F sbci r25,hi8(-(255)) |
11280 5f92 AF4F sbci r26,hlo8(-(255)) |
11281 5f94 BF4F sbci r27,hhi8(-(255)) |
11282 5f96 0C94 0000 jmp .L880 |
11283 .L1237: |
11284 5f9a 6150 subi r22,lo8(-(255)) |
11285 5f9c 7F4F sbci r23,hi8(-(255)) |
11286 5f9e 8F4F sbci r24,hlo8(-(255)) |
11287 5fa0 9F4F sbci r25,hhi8(-(255)) |
11288 5fa2 0C94 0000 jmp .L878 |
11289 .L1236: |
11290 5fa6 6150 subi r22,lo8(-(255)) |
11291 5fa8 7F4F sbci r23,hi8(-(255)) |
11292 5faa 8F4F sbci r24,hlo8(-(255)) |
11293 5fac 9F4F sbci r25,hhi8(-(255)) |
11294 5fae 0C94 0000 jmp .L877 |
11295 .L1235: |
11296 5fb2 8150 subi r24,lo8(-(255)) |
11297 5fb4 9F4F sbci r25,hi8(-(255)) |
11298 5fb6 AF4F sbci r26,hlo8(-(255)) |
11299 5fb8 BF4F sbci r27,hhi8(-(255)) |
11300 5fba 0C94 0000 jmp .L876 |
11301 .L1243: |
11302 5fbe B095 com r27 |
11303 5fc0 A095 com r26 |
11304 5fc2 9095 com r25 |
11305 5fc4 8195 neg r24 |
11306 5fc6 9F4F sbci r25,lo8(-1) |
11307 5fc8 AF4F sbci r26,lo8(-1) |
11308 5fca BF4F sbci r27,lo8(-1) |
11309 5fcc 0C94 0000 jmp .L893 |
11310 .L1239: |
11311 5fd0 8150 subi r24,lo8(-(255)) |
11312 5fd2 9F4F sbci r25,hi8(-(255)) |
11313 5fd4 AF4F sbci r26,hlo8(-(255)) |
11314 5fd6 BF4F sbci r27,hhi8(-(255)) |
11315 5fd8 0C94 0000 jmp .L881 |
11316 .L1234: |
11317 5fdc 8150 subi r24,lo8(-(255)) |
11318 5fde 9F4F sbci r25,hi8(-(255)) |
11319 5fe0 AF4F sbci r26,hlo8(-(255)) |
11320 5fe2 BF4F sbci r27,hhi8(-(255)) |
11321 5fe4 0C94 0000 jmp .L875 |
11322 .L1242: |
11323 5fe8 0196 adiw r24,1 |
11324 5fea 0C94 0000 jmp .L886 |
11325 .L1241: |
11326 5fee 0196 adiw r24,1 |
11327 5ff0 0C94 0000 jmp .L885 |
11328 .L1307: |
11329 5ff4 2D5F subi r18,lo8(-(3)) |
11330 5ff6 3F4F sbci r19,hi8(-(3)) |
11331 5ff8 00C0 rjmp .L1062 |
11332 .L1306: |
11333 5ffa 615E subi r22,lo8(-(31)) |
11334 5ffc 7F4F sbci r23,hi8(-(31)) |
11335 5ffe 8F4F sbci r24,hlo8(-(31)) |
11336 6000 9F4F sbci r25,hhi8(-(31)) |
11337 6002 00C0 rjmp .L1053 |
11338 .L1305: |
11339 6004 6FE7 ldi r22,lo8(127) |
11340 6006 70E0 ldi r23,hi8(127) |
11341 6008 80E0 ldi r24,hlo8(127) |
11342 600a 90E0 ldi r25,hhi8(127) |
11343 600c 660E add r6,r22 |
11344 600e 771E adc r7,r23 |
11345 6010 881E adc r8,r24 |
11346 6012 991E adc r9,r25 |
11347 6014 00C0 rjmp .L1052 |
11348 .L1304: |
11349 6016 6158 subi r22,lo8(-(127)) |
11350 6018 7F4F sbci r23,hi8(-(127)) |
11351 601a 8F4F sbci r24,hlo8(-(127)) |
11352 601c 9F4F sbci r25,hhi8(-(127)) |
11353 601e 00C0 rjmp .L1048 |
11354 .L1302: |
11355 6020 295F subi r18,lo8(-(7)) |
11356 6022 3F4F sbci r19,hi8(-(7)) |
11357 6024 00C0 rjmp .L1042 |
11358 .L1301: |
11359 6026 0F96 adiw r24,15 |
11360 6028 00C0 rjmp .L1041 |
11361 .L1303: |
11362 602a 2D5F subi r18,lo8(-(3)) |
11363 602c 3F4F sbci r19,hi8(-(3)) |
11364 602e 00C0 rjmp .L1045 |
11365 .L1016: |
11366 6030 6090 0000 lds r6,HoehenWert |
11367 6034 7090 0000 lds r7,(HoehenWert)+1 |
11368 6038 8090 0000 lds r8,(HoehenWert)+2 |
11369 603c 9090 0000 lds r9,(HoehenWert)+3 |
11370 6040 D401 movw r26,r8 |
11371 6042 C301 movw r24,r6 |
11372 6044 8059 subi r24,lo8(-(-400)) |
11373 6046 9140 sbci r25,hi8(-(-400)) |
11374 6048 A040 sbci r26,hlo8(-(-400)) |
11375 604a B040 sbci r27,hhi8(-(-400)) |
11376 604c 8093 0000 sts SollHoehe,r24 |
11377 6050 9093 0000 sts (SollHoehe)+1,r25 |
11378 6054 A093 0000 sts (SollHoehe)+2,r26 |
11379 6058 B093 0000 sts (SollHoehe)+3,r27 |
11380 605c 2091 0000 lds r18,EE_Parameter+17 |
11381 6060 2223 tst r18 |
11382 6062 01F4 brne .+2 |
11383 6064 00C0 rjmp .L1037 |
11384 6066 3327 clr r19 |
11385 .L1205: |
11386 6068 3093 0000 sts (StickGasHoover.26)+1,r19 |
11387 606c 2093 0000 sts StickGasHoover.26,r18 |
11388 6070 0091 0000 lds r16,HooverGas.27 |
11389 6074 1091 0000 lds r17,(HooverGas.27)+1 |
11390 6078 00C0 rjmp .L1015 |
11391 .L763: |
11392 607a 299A sbi 37-0x20,1 |
11393 607c 00C0 rjmp .L765 |
11394 .L930: |
11395 607e 81E0 ldi r24,lo8(1) |
11396 6080 8093 0000 sts last_r_n.21,r24 |
11397 6084 0C94 0000 jmp .L938 |
11398 .L921: |
11399 6088 2093 0000 sts ausgleichRoll.14,r18 |
11400 608c 3093 0000 sts (ausgleichRoll.14)+1,r19 |
11401 6090 4093 0000 sts (ausgleichRoll.14)+2,r20 |
11402 6094 5093 0000 sts (ausgleichRoll.14)+3,r21 |
11403 6098 81E0 ldi r24,lo8(1) |
11404 609a 8093 0000 sts last_r_p.20,r24 |
11405 609e 0C94 0000 jmp .L928 |
11406 .L1082: |
11407 60a2 8054 subi r24,lo8(8000) |
11408 60a4 9F41 sbci r25,hi8(8000) |
11409 60a6 00F0 brlo .+2 |
11410 60a8 00C0 rjmp .L1084 |
11411 60aa D801 movw r26,r16 |
11412 60ac C701 movw r24,r14 |
11413 60ae 7BE0 ldi r23,11 |
11414 60b0 B695 1: lsr r27 |
11415 60b2 A795 ror r26 |
11416 60b4 9795 ror r25 |
11417 60b6 8795 ror r24 |
11418 60b8 7A95 dec r23 |
11419 60ba 01F4 brne 1b |
11420 60bc E81A sub r14,r24 |
11421 60be F90A sbc r15,r25 |
11422 60c0 0A0B sbc r16,r26 |
11423 60c2 1B0B sbc r17,r27 |
11424 60c4 DA01 movw r26,r20 |
11425 60c6 C901 movw r24,r18 |
11426 60c8 820F add r24,r18 |
11427 60ca 931F adc r25,r19 |
11428 60cc A41F adc r26,r20 |
11429 60ce B51F adc r27,r21 |
11430 60d0 00C0 rjmp .L1210 |
11431 .L905: |
11432 60d2 2092 0000 sts ausgleichNick.13,r2 |
11433 60d6 3092 0000 sts (ausgleichNick.13)+1,r3 |
11434 60da 4092 0000 sts (ausgleichNick.13)+2,r4 |
11435 60de 5092 0000 sts (ausgleichNick.13)+3,r5 |
11436 60e2 81E0 ldi r24,lo8(1) |
11437 60e4 8093 0000 sts last_n_n.19,r24 |
11438 60e8 0C94 0000 jmp .L913 |
11439 .L896: |
11440 60ec 81E0 ldi r24,lo8(1) |
11441 60ee 8093 0000 sts last_n_p.18,r24 |
11442 60f2 0C94 0000 jmp .L903 |
11443 .L1310: |
11444 60f6 6150 subi r22,lo8(-(8191)) |
11445 60f8 704E sbci r23,hi8(-(8191)) |
11446 60fa 8F4F sbci r24,hlo8(-(8191)) |
11447 60fc 9F4F sbci r25,hhi8(-(8191)) |
11448 60fe 00C0 rjmp .L1079 |
11449 .L1231: |
11450 6100 F095 com r31 |
11451 6102 E195 neg r30 |
11452 6104 FF4F sbci r31,lo8(-1) |
11453 6106 0C94 0000 jmp .L755 |
11454 .L1162: |
11455 610a 0091 0000 lds r16,HooverGas.27 |
11456 610e 1091 0000 lds r17,(HooverGas.27)+1 |
11457 6112 00C0 rjmp .L1027 |
11458 .L1017: |
11459 6114 C901 movw r24,r18 |
11460 6116 0F97 sbiw r24,15 |
11461 6118 4817 cp r20,r24 |
11462 611a 5907 cpc r21,r25 |
11463 611c 04F4 brge .L1021 |
11464 611e 8091 0000 lds r24,BaroAtLowerLimit.33 |
11465 6122 8823 tst r24 |
11466 6124 01F4 brne .L1021 |
11467 6126 8091 0000 lds r24,HeightTrimmingFlag.34 |
11468 612a 80FF sbrs r24,0 |
11469 612c 00C0 rjmp .L1159 |
11470 612e 8E7F andi r24,lo8(-2) |
11471 6130 6090 0000 lds r6,HoehenWert |
11472 6134 7090 0000 lds r7,(HoehenWert)+1 |
11473 6138 8090 0000 lds r8,(HoehenWert)+2 |
11474 613c 9090 0000 lds r9,(HoehenWert)+3 |
11475 6140 6092 0000 sts SollHoehe,r6 |
11476 6144 7092 0000 sts (SollHoehe)+1,r7 |
11477 6148 8092 0000 sts (SollHoehe)+2,r8 |
11478 614c 9092 0000 sts (SollHoehe)+3,r9 |
11479 .L1022: |
11480 6150 8260 ori r24,lo8(2) |
11481 6152 8093 0000 sts HeightTrimmingFlag.34,r24 |
11482 6156 421B sub r20,r18 |
11483 6158 530B sbc r21,r19 |
11484 615a 9A01 movw r18,r20 |
11485 615c 215F subi r18,lo8(-(15)) |
11486 615e 3F4F sbci r19,hi8(-(15)) |
11487 6160 37FD sbrc r19,7 |
11488 6162 00C0 rjmp .L1319 |
11489 .L1023: |
11490 6164 8091 0000 lds r24,HeightTrimming.24 |
11491 6168 9091 0000 lds r25,(HeightTrimming.24)+1 |
11492 616c 821B sub r24,r18 |
11493 616e 930B sbc r25,r19 |
11494 6170 9093 0000 sts (HeightTrimming.24)+1,r25 |
11495 6174 8093 0000 sts HeightTrimming.24,r24 |
11496 6178 00C0 rjmp .L1020 |
11497 .L1021: |
11498 617a 2091 0000 lds r18,HeightTrimmingFlag.34 |
11499 617e 822F mov r24,r18 |
11500 6180 9927 clr r25 |
11501 6182 8370 andi r24,lo8(3) |
11502 6184 9070 andi r25,hi8(3) |
11503 6186 892B or r24,r25 |
11504 6188 01F4 brne .+2 |
11505 618a 00C0 rjmp .L1160 |
11506 618c 2C7F andi r18,lo8(-4) |
11507 618e 2093 0000 sts HeightTrimmingFlag.34,r18 |
11508 6192 1092 0000 sts (HeightTrimming.24)+1,__zero_reg__ |
11509 6196 1092 0000 sts HeightTrimming.24,__zero_reg__ |
11510 619a 6090 0000 lds r6,HoehenWert |
11511 619e 7090 0000 lds r7,(HoehenWert)+1 |
11512 61a2 8090 0000 lds r8,(HoehenWert)+2 |
11513 61a6 9090 0000 lds r9,(HoehenWert)+3 |
11514 61aa 6092 0000 sts SollHoehe,r6 |
11515 61ae 7092 0000 sts (SollHoehe)+1,r7 |
11516 61b2 8092 0000 sts (SollHoehe)+2,r8 |
11517 61b6 9092 0000 sts (SollHoehe)+3,r9 |
11518 61ba C1FE sbrs r12,1 |
11519 61bc 00C0 rjmp .L1020 |
11520 61be 84EF ldi r24,lo8(500) |
11521 61c0 91E0 ldi r25,hi8(500) |
11522 61c2 9093 0000 sts (beeptime)+1,r25 |
11523 61c6 8093 0000 sts beeptime,r24 |
11524 61ca 00C0 rjmp .L1020 |
11525 .L1037: |
11526 61cc 28E7 ldi r18,lo8(120) |
11527 61ce 30E0 ldi r19,hi8(120) |
11528 61d0 00C0 rjmp .L1205 |
11529 .L1181: |
11530 61d2 2093 0000 sts ausgleichRoll.14,r18 |
11531 61d6 3093 0000 sts (ausgleichRoll.14)+1,r19 |
11532 61da 4093 0000 sts (ausgleichRoll.14)+2,r20 |
11533 61de 5093 0000 sts (ausgleichRoll.14)+3,r21 |
11534 61e2 0C94 0000 jmp .L934 |
11535 .L1180: |
11536 61e6 2093 0000 sts ausgleichRoll.14,r18 |
11537 61ea 3093 0000 sts (ausgleichRoll.14)+1,r19 |
11538 61ee 4093 0000 sts (ausgleichRoll.14)+2,r20 |
11539 61f2 5093 0000 sts (ausgleichRoll.14)+3,r21 |
11540 61f6 0C94 0000 jmp .L925 |
11541 .L1084: |
11542 61fa D801 movw r26,r16 |
11543 61fc C701 movw r24,r14 |
11544 61fe 6CE0 ldi r22,12 |
11545 6200 B695 1: lsr r27 |
11546 6202 A795 ror r26 |
11547 6204 9795 ror r25 |
11548 6206 8795 ror r24 |
11549 6208 6A95 dec r22 |
11550 620a 01F4 brne 1b |
11551 620c E81A sub r14,r24 |
11552 620e F90A sbc r15,r25 |
11553 6210 0A0B sbc r16,r26 |
11554 6212 1B0B sbc r17,r27 |
11555 6214 E20E add r14,r18 |
11556 6216 F31E adc r15,r19 |
11557 6218 041F adc r16,r20 |
11558 621a 151F adc r17,r21 |
11559 621c 00C0 rjmp .L1207 |
11560 .L1314: |
11561 621e 2150 subi r18,lo8(-(255)) |
11562 6220 3F4F sbci r19,hi8(-(255)) |
11563 6222 00C0 rjmp .L789 |
11564 .L1313: |
11565 6224 8150 subi r24,lo8(-(255)) |
11566 6226 9F4F sbci r25,hi8(-(255)) |
11567 6228 00C0 rjmp .L779 |
11568 .L1230: |
11569 622a F095 com r31 |
11570 622c E195 neg r30 |
11571 622e FF4F sbci r31,lo8(-1) |
11572 6230 0C94 0000 jmp .L748 |
11573 .L1240: |
11574 6234 F095 com r31 |
11575 6236 E195 neg r30 |
11576 6238 FF4F sbci r31,lo8(-1) |
11577 623a 0C94 0000 jmp .L884 |
11578 .L1312: |
11579 623e 8150 subi r24,lo8(-(255)) |
11580 6240 9F4F sbci r25,hi8(-(255)) |
11581 6242 00C0 rjmp .L769 |
11582 .L1160: |
11583 6244 6090 0000 lds r6,HoehenWert |
11584 6248 7090 0000 lds r7,(HoehenWert)+1 |
11585 624c 8090 0000 lds r8,(HoehenWert)+2 |
11586 6250 9090 0000 lds r9,(HoehenWert)+3 |
11587 6254 00C0 rjmp .L1020 |
11588 .L1254: |
11589 6256 8150 subi r24,lo8(-(511)) |
11590 6258 9E4F sbci r25,hi8(-(511)) |
11591 625a AF4F sbci r26,hlo8(-(511)) |
11592 625c BF4F sbci r27,hhi8(-(511)) |
11593 625e 0C94 0000 jmp .L923 |
11594 .L1253: |
11595 6262 B095 com r27 |
11596 6264 A095 com r26 |
11597 6266 9095 com r25 |
11598 6268 8195 neg r24 |
11599 626a 9F4F sbci r25,lo8(-1) |
11600 626c AF4F sbci r26,lo8(-1) |
11601 626e BF4F sbci r27,lo8(-1) |
11602 6270 0C94 0000 jmp .L922 |
11603 .L1245: |
11604 6274 8150 subi r24,lo8(-(511)) |
11605 6276 9E4F sbci r25,hi8(-(511)) |
11606 6278 AF4F sbci r26,hlo8(-(511)) |
11607 627a BF4F sbci r27,hhi8(-(511)) |
11608 627c 0C94 0000 jmp .L898 |
11609 .L1244: |
11610 6280 B095 com r27 |
11611 6282 A095 com r26 |
11612 6284 9095 com r25 |
11613 6286 8195 neg r24 |
11614 6288 9F4F sbci r25,lo8(-1) |
11615 628a AF4F sbci r26,lo8(-1) |
11616 628c BF4F sbci r27,lo8(-1) |
11617 628e 0C94 0000 jmp .L897 |
11618 .L1257: |
11619 6292 B095 com r27 |
11620 6294 A095 com r26 |
11621 6296 9095 com r25 |
11622 6298 8195 neg r24 |
11623 629a 9F4F sbci r25,lo8(-1) |
11624 629c AF4F sbci r26,lo8(-1) |
11625 629e BF4F sbci r27,lo8(-1) |
11626 62a0 0C94 0000 jmp .L931 |
11627 .L1260: |
11628 62a4 8150 subi r24,lo8(-(255)) |
11629 62a6 9F4F sbci r25,hi8(-(255)) |
11630 62a8 AF4F sbci r26,hlo8(-(255)) |
11631 62aa BF4F sbci r27,hhi8(-(255)) |
11632 62ac 0C94 0000 jmp .L935 |
11633 .L1259: |
11634 62b0 295F subi r18,lo8(-(7)) |
11635 62b2 3F4F sbci r19,hi8(-(7)) |
11636 62b4 4F4F sbci r20,hlo8(-(7)) |
11637 62b6 5F4F sbci r21,hhi8(-(7)) |
11638 62b8 0C94 0000 jmp .L933 |
11639 .L1258: |
11640 62bc 2150 subi r18,lo8(-(511)) |
11641 62be 3E4F sbci r19,hi8(-(511)) |
11642 62c0 4F4F sbci r20,hlo8(-(511)) |
11643 62c2 5F4F sbci r21,hhi8(-(511)) |
11644 62c4 0C94 0000 jmp .L932 |
11645 .L1255: |
11646 62c8 295F subi r18,lo8(-(7)) |
11647 62ca 3F4F sbci r19,hi8(-(7)) |
11648 62cc 4F4F sbci r20,hlo8(-(7)) |
11649 62ce 5F4F sbci r21,hhi8(-(7)) |
11650 62d0 0C94 0000 jmp .L924 |
11651 .L1256: |
11652 62d4 8150 subi r24,lo8(-(255)) |
11653 62d6 9F4F sbci r25,hi8(-(255)) |
11654 62d8 AF4F sbci r26,hlo8(-(255)) |
11655 62da BF4F sbci r27,hhi8(-(255)) |
11656 62dc 0C94 0000 jmp .L926 |
11657 .L1247: |
11658 62e0 8150 subi r24,lo8(-(255)) |
11659 62e2 9F4F sbci r25,hi8(-(255)) |
11660 62e4 AF4F sbci r26,hlo8(-(255)) |
11661 62e6 BF4F sbci r27,hhi8(-(255)) |
11662 62e8 0C94 0000 jmp .L901 |
11663 .L1246: |
11664 62ec 295F subi r18,lo8(-(7)) |
11665 62ee 3F4F sbci r19,hi8(-(7)) |
11666 62f0 4F4F sbci r20,hlo8(-(7)) |
11667 62f2 5F4F sbci r21,hhi8(-(7)) |
11668 62f4 0C94 0000 jmp .L899 |
11669 .L1317: |
11670 62f8 8827 clr r24 |
11671 62fa 9927 clr r25 |
11672 62fc 821B sub r24,r18 |
11673 62fe 930B sbc r25,r19 |
11674 6300 00C0 rjmp .L1028 |
11675 .L1251: |
11676 6302 8150 subi r24,lo8(-(255)) |
11677 6304 9F4F sbci r25,hi8(-(255)) |
11678 6306 AF4F sbci r26,hlo8(-(255)) |
11679 6308 BF4F sbci r27,hhi8(-(255)) |
11680 630a 0C94 0000 jmp .L910 |
11681 .L1250: |
11682 630e 295F subi r18,lo8(-(7)) |
11683 6310 3F4F sbci r19,hi8(-(7)) |
11684 6312 4F4F sbci r20,hlo8(-(7)) |
11685 6314 5F4F sbci r21,hhi8(-(7)) |
11686 6316 0C94 0000 jmp .L908 |
11687 .L1249: |
11688 631a 2150 subi r18,lo8(-(511)) |
11689 631c 3E4F sbci r19,hi8(-(511)) |
11690 631e 4F4F sbci r20,hlo8(-(511)) |
11691 6320 5F4F sbci r21,hhi8(-(511)) |
11692 6322 0C94 0000 jmp .L907 |
11693 .L1248: |
11694 6326 B095 com r27 |
11695 6328 A095 com r26 |
11696 632a 9095 com r25 |
11697 632c 8195 neg r24 |
11698 632e 9F4F sbci r25,lo8(-1) |
11699 6330 AF4F sbci r26,lo8(-1) |
11700 6332 BF4F sbci r27,lo8(-1) |
11701 6334 0C94 0000 jmp .L906 |
11702 .L1315: |
11703 6338 0396 adiw r24,3 |
11704 633a 00C0 rjmp .L1047 |
11705 .L1158: |
11706 633c 6090 0000 lds r6,HoehenWert |
11707 6340 7090 0000 lds r7,(HoehenWert)+1 |
11708 6344 8090 0000 lds r8,(HoehenWert)+2 |
11709 6348 9090 0000 lds r9,(HoehenWert)+3 |
11710 634c 00C0 rjmp .L1018 |
11711 .L1032: |
11712 634e 6739 cpi r22,151 |
11713 6350 7105 cpc r23,__zero_reg__ |
11714 6352 04F0 brlt .L1188 |
11715 6354 26E9 ldi r18,lo8(150) |
11716 6356 30E0 ldi r19,hi8(150) |
11717 6358 00C0 rjmp .L1204 |
11718 .L1159: |
11719 635a 6090 0000 lds r6,HoehenWert |
11720 635e 7090 0000 lds r7,(HoehenWert)+1 |
11721 6362 8090 0000 lds r8,(HoehenWert)+2 |
11722 6366 9090 0000 lds r9,(HoehenWert)+3 |
11723 636a 00C0 rjmp .L1022 |
11724 .L1316: |
11725 636c 3095 com r19 |
11726 636e 2195 neg r18 |
11727 6370 3F4F sbci r19,lo8(-1) |
11728 6372 00C0 rjmp .L1019 |
11729 .L1318: |
11730 6374 4D5F subi r20,lo8(-(3)) |
11731 6376 5F4F sbci r21,hi8(-(3)) |
11732 6378 00C0 rjmp .L1031 |
11733 .L1319: |
11734 637a 3095 com r19 |
11735 637c 2195 neg r18 |
11736 637e 3F4F sbci r19,lo8(-1) |
11737 6380 00C0 rjmp .L1023 |
11738 .L1188: |
11739 6382 7093 0000 sts (StickGasHoover.26)+1,r23 |
11740 6386 6093 0000 sts StickGasHoover.26,r22 |
11741 638a 00C0 rjmp .L1027 |
11742 .L1145: |
11743 638c 8091 0000 lds r24,motorOutRear |
11744 6390 8093 0000 sts Motor+1,r24 |
11745 6394 8091 0000 lds r24,motorOutFront |
11746 6398 8093 0000 sts Motor,r24 |
11747 /* epilogue: frame size=40 */ |
11748 639c E2E1 ldi r30,18 |
11749 639e C85D subi r28,-40 |
11750 63a0 0C94 0000 jmp __epilogue_restores__+0 |
11751 /* epilogue end (size=4) */ |
11752 /* function MotorRegler size 7530 (7520) */ |
11754 .comm TrimNick,2,1 |
11755 .comm TrimRoll,2,1 |
11756 .comm ErsatzKompass,4,1 |
11757 .comm ErsatzKompassInGrad,2,1 |
11758 .comm MesswertNick,2,1 |
11759 .comm MesswertRoll,2,1 |
11760 .comm MesswertGier,2,1 |
11761 .comm Mittelwert_AccNick,2,1 |
11762 .comm Mittelwert_AccRoll,2,1 |
11763 .comm Mittelwert_AccHoch,2,1 |
11764 .comm NaviAccNick,2,1 |
11765 .comm NaviAccRoll,2,1 |
11766 .comm h,1,1 |
11767 .comm m,1,1 |
11768 .comm s,1,1 |
11769 .comm DiffNick,2,1 |
11770 .comm DiffRoll,2,1 |
11771 .comm EE_Parameter,101,1 |
11772 .comm Mixer,77,1 |
11773 .comm Parameter_J16Bitmask,1,1 |
11774 .comm Parameter_J16Timing,1,1 |
11775 .comm Parameter_J17Bitmask,1,1 |
11776 .comm Parameter_J17Timing,1,1 |
11777 .comm Motor,2,1 |
11778 .global EEPromArray |
11779 .section .eeprom,"aw",@progbits |
11782 EEPromArray: |
11783 0000 0000 0000 .skip 2048,0 |
11783 0000 0000 |
11783 0000 0000 |
11783 0000 0000 |
11783 0000 0000 |
11784 .comm MesswertGierBias,2,1 |
11785 .comm RohMesswertNick,2,1 |
11786 .comm RohMesswertRoll,2,1 |
11787 .comm AdNeutralGierBias,2,1 |
11788 .comm MittelIntegralNick,4,1 |
11789 .comm MittelIntegralRoll,4,1 |
11790 .comm MittelIntegralNick2,4,1 |
11791 .comm MittelIntegralRoll2,4,1 |
11792 .comm MAX_GAS,1,1 |
11793 .comm MIN_GAS,1,1 |
11794 .comm GyroFaktor,1,1 |
11795 .comm GyroFaktorGier,1,1 |
11796 .comm IntegralFaktor,1,1 |
11797 .comm IntegralFaktorGier,1,1 |
11798 .comm Parameter_NaviGpsModeControl,1,1 |
11799 .comm Parameter_NaviGpsGain,1,1 |
11800 .comm Parameter_NaviGpsP,1,1 |
11801 .comm Parameter_NaviGpsI,1,1 |
11802 .comm Parameter_NaviGpsD,1,1 |
11803 .comm Parameter_NaviGpsACC,1,1 |
11804 .comm Parameter_NaviOperatingRadius,1,1 |
11805 .comm Parameter_NaviWindCorrection,1,1 |
11806 .comm Parameter_NaviSpeedCompensation,1,1 |
11807 .comm Parameter_ExternalControl,1,1 |
11808 .comm KopplungsteilNickRoll,2,1 |
11809 .comm KopplungsteilRollNick,2,1 |
11810 .comm tmp_motorwert,4,1 |
11811 .comm angle,2,1 |
11812 .comm desiredAngle,2,1 |
11813 .comm motorOutFront,2,1 |
11814 .comm motorOutRear,2,1 |
11815 .comm thrust,2,1 |
11816 /* File "fc.c": code 12994 = 0x32c2 (12928), prologues 29, epilogues 37 */ |
DEFINED SYMBOLS |
*ABS*:00000000 fc.c |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:3 *ABS*:0000003f __SREG__ |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:4 *ABS*:0000003e __SP_H__ |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5 *ABS*:0000003d __SP_L__ |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:15 .bss:00000000 filterDD |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:21 .bss:00000002 filtersum |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:27 .bss:00000004 gyroScaled |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:33 .bss:00000006 gyroScaledOld |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:39 .bss:00000008 mincontrollerDD |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:45 .bss:0000000a maxcontrollerDD |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:51 .bss:0000000c controllerDD |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:57 .bss:0000000e mincontrollerD |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:63 .bss:00000010 maxcontrollerD |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:69 .bss:00000012 controllerD |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:75 .bss:00000014 mincontrollerP |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:81 .bss:00000016 maxcontrollerP |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:87 .bss:00000018 controllerP |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:93 .bss:0000001a kdd |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:99 .bss:0000001c kd |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:105 .bss:0000001e kp |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:111 .bss:00000020 ipk |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:117 .data:00000000 ucflg3 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:122 .data:00000001 ucflg2 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:127 .data:00000002 ucflg1 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:134 .bss:00000026 LoadHandler |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:140 .data:00000003 RequiredMotors |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:145 .data:00000004 GIER_GRAD_FAKTOR |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:152 .bss:00000027 MikroKopterFlags |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:158 .bss:00000028 modell_fliegt |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:164 .bss:0000002a MaxStickRoll |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:170 .bss:0000002c MaxStickNick |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:176 .data:00000008 ExternHoehenValue |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:183 .bss:0000002e ExternStickGier |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:189 .bss:00000030 ExternStickRoll |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:195 .bss:00000032 ExternStickNick |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:201 .data:0000000a Parameter_DynamicStability |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:206 .data:0000000b Parameter_CouplingYawCorrection |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:211 .data:0000000c Parameter_AchsKopplung2 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:216 .data:0000000d Parameter_AchsKopplung1 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:221 .data:0000000e Parameter_LoopGasLimit |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:226 .data:0000000f Parameter_ServoRollControl |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:231 .data:00000010 Parameter_ServoNickControl |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:238 .bss:00000034 Parameter_UserParam8 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:244 .bss:00000035 Parameter_UserParam7 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:250 .bss:00000036 Parameter_UserParam6 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:256 .bss:00000037 Parameter_UserParam5 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:262 .bss:00000038 Parameter_UserParam4 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:268 .bss:00000039 Parameter_UserParam3 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:274 .bss:0000003a Parameter_UserParam2 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:280 .bss:0000003b Parameter_UserParam1 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:286 .data:00000011 Parameter_I_Faktor |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:291 .data:00000012 Parameter_Gier_P |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:296 .data:00000013 Parameter_Gyro_Gier_I |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:301 .data:00000014 Parameter_Gyro_Gier_P |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:306 .data:00000015 Parameter_Gyro_I |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:311 .data:00000016 Parameter_Gyro_P |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:316 .data:00000017 Parameter_Gyro_D |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:321 .data:00000018 Parameter_Hoehe_GPS_Z |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:326 .data:00000019 Parameter_KompassWirkung |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:331 .data:0000001a Parameter_Hoehe_ACC_Wirkung |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:336 .data:0000001b Parameter_Hoehe_P |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:341 .data:0000001c Parameter_MaxHoehe |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:346 .data:0000001d Parameter_Luftdruck_D |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:353 .bss:0000003c Looping_Oben |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:359 .bss:0000003d Looping_Unten |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:365 .bss:0000003e Looping_Rechts |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:371 .bss:0000003f Looping_Links |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:377 .bss:00000040 Looping_Roll |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:383 .bss:00000041 Looping_Nick |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:389 .data:0000001e Ki |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:396 .bss:00000042 LageKorrekturNick |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:402 .bss:00000044 LageKorrekturRoll |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:408 .bss:00000046 SollHoehe |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:414 .bss:0000004a HoehenWert |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:420 .bss:0000004e StickGas |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:426 .bss:00000050 StickGier |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:432 .bss:00000052 StickRoll |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:438 .bss:00000054 StickNick |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:444 .bss:00000056 SenderRSSI |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:450 .bss:00000057 SenderOkay |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:456 .bss:00000058 Poti4 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:462 .bss:0000005a Poti3 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:468 .bss:0000005c Poti2 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:474 .bss:0000005e Poti1 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:480 .bss:00000060 GierGyroFehler |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:486 .data:00000020 Umschlag180Roll |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:491 .data:00000024 Umschlag180Nick |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:498 .bss:00000062 TrichterFlug |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:504 .bss:00000063 HoehenReglerAktiv |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:510 .bss:00000064 MotorenEin |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:516 .data:00000028 KompassSignalSchlecht |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:523 .bss:00000065 KompassRichtung |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:529 .bss:00000067 KompassStartwert |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:535 .bss:00000069 KompassValue |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:541 .bss:0000006b Mess_Integral_Hoch |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:547 .bss:0000006f Mess_Integral_Gier2 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:553 .bss:00000073 Mess_Integral_Gier |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:559 .bss:00000077 Mess_IntegralRoll2 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:565 .bss:0000007b Mess_IntegralRoll |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:571 .bss:0000007f Mess_IntegralNick2 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:577 .bss:00000083 Mess_IntegralNick |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:583 .bss:00000087 Integral_Gier |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:589 .bss:0000008b IntegralAccZ |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:595 .bss:0000008f IntegralAccRoll |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:601 .bss:00000093 IntegralAccNick |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:607 .bss:00000097 IntegralRoll2 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:613 .bss:0000009b IntegralRoll |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:619 .bss:0000009f IntegralNick2 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:625 .bss:000000a3 IntegralNick |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:631 .bss:000000a7 CosinusRollWinkel |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:637 .bss:000000a8 CosinusNickWinkel |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:643 .bss:000000a9 NeutralAccZ |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:649 .bss:000000ad NaviCntAcc |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:655 .bss:000000af NeutralAccY |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:661 .bss:000000b1 NeutralAccX |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:667 .bss:000000b3 StartNeutralNick |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:673 .bss:000000b5 StartNeutralRoll |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:679 .bss:000000b7 AdNeutralGier |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:685 .bss:000000b9 AdNeutralRoll |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:691 .bss:000000bb AdNeutralNick |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:697 .data:0000002a I2CTimeout |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:704 .bss:000000bd BaroExpandActive |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:708 .text:00000000 eeprom_read_byte |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:730 .text:00000010 eeprom_write_byte |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:756 .text:00000028 DefaultStickMapping |
*COM*:00000065 EE_Parameter |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:787 .text:0000005a DefaultKonstanten3 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:923 .text:000001ee DefaultKonstanten2 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1060 .text:00000384 DefaultKonstanten1 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1194 .text:0000051e ReadParameterSet |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:11782 .eeprom:00000000 EEPromArray |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1231 .text:00000558 SetActiveParamSetNumber |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1268 .text:00000582 WriteParameterSet |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1348 .text:00000608 GetActiveParamSetNumber |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1384 .text:00000632 MotorSmoothing |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1418 .text:0000065e Piep |
.bss:000000bf tmpl.35 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1460 .bss:000000c3 tmpl2.36 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1461 .bss:000000c7 tmpl3.37 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1462 .bss:000000cb tmpl4.38 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1463 .bss:000000cf oldNick.39 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1464 .bss:000000d1 oldRoll.40 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1465 .bss:000000d3 d2Roll.41 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1466 .bss:000000d5 d2Nick.42 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1470 .text:000006aa Mittelwert |
*COM*:00000002 MesswertGier |
*COM*:00000002 RohMesswertNick |
*COM*:00000002 RohMesswertRoll |
*COM*:00000002 Mittelwert_AccNick |
*COM*:00000002 Mittelwert_AccRoll |
*COM*:00000002 Mittelwert_AccHoch |
*COM*:00000002 NaviAccNick |
*COM*:00000002 NaviAccRoll |
*COM*:00000004 ErsatzKompass |
*COM*:00000002 KopplungsteilNickRoll |
*COM*:00000002 KopplungsteilRollNick |
*COM*:00000002 TrimRoll |
*COM*:00000002 TrimNick |
*COM*:00000002 MesswertRoll |
*COM*:00000002 MesswertNick |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:3619 .text:0000198a CalibrierMittelwert |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:3970 .text:00001c9a SetNeutral |
*COM*:00000002 AdNeutralGierBias |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:4524 .text:000021c6 SendMotorData |
*COM*:00000002 Motor |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:4589 .text:00002250 ParameterZuordnung |
*COM*:00000001 Parameter_J16Timing |
*COM*:00000001 Parameter_J17Timing |
*COM*:00000001 Parameter_ExternalControl |
*COM*:00000001 MAX_GAS |
*COM*:00000001 MIN_GAS |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:1467 .bss:000000d7 SummeNick.0 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5523 .bss:000000db SummeRoll.1 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5524 .bss:000000df sollGier.2 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5525 .bss:000000e3 tmp_long.3 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5526 .bss:000000e7 tmp_long2.4 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5527 .bss:000000eb IntegralFehlerNick.5 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5528 .bss:000000ef IntegralFehlerRoll.6 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5529 .bss:000000f3 RcLostTimer.7 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5530 .bss:000000f5 delay_neutral.8 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5531 .bss:000000f6 delay_einschalten.9 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5532 .bss:000000f7 delay_ausschalten.10 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5533 .bss:000000f8 TimerWerteausgabe.11 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5534 .bss:000000f9 NeueKompassRichtungMerken.12 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5535 .bss:000000fa ausgleichNick.13 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5536 .bss:000000fe ausgleichRoll.14 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5537 .bss:00000102 stick_nick.15 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5538 .bss:00000104 stick_roll.16 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5539 .bss:00000106 cnt.17 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5540 .bss:00000108 last_n_p.18 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5541 .bss:00000109 last_n_n.19 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5542 .bss:0000010a last_r_p.20 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5543 .bss:0000010b last_r_n.21 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5544 .bss:0000010c MittelIntegralNick_Alt.22 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5545 .bss:00000110 MittelIntegralRoll_Alt.23 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5546 .bss:00000114 HeightTrimming.24 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5547 .bss:00000116 FilterHCGas.25 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5552 .data:00000045 StickGasHoover.26 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5548 .bss:00000118 HooverGas.27 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5554 .bss:0000011a HooverGasMin.28 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5558 .data:00000047 HooverGasMax.29 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5555 .bss:0000011c HooverGasFilter.30 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5563 .data:00000049 delay.31 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5560 .bss:00000120 BaroAtUpperLimit.32 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5565 .bss:00000121 BaroAtLowerLimit.33 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5566 .bss:00000122 HeightTrimmingFlag.34 |
C:\Users\Bernd\AppData\Local\Temp/ccllosgu.s:5571 .text:000029ca MotorRegler |
*COM*:00000001 GyroFaktor |
*COM*:00000001 GyroFaktorGier |
*COM*:00000001 IntegralFaktorGier |
*COM*:00000001 IntegralFaktor |
*COM*:00000004 MittelIntegralNick |
*COM*:00000004 MittelIntegralRoll |
*COM*:00000004 MittelIntegralNick2 |
*COM*:00000004 MittelIntegralRoll2 |
*COM*:00000002 DiffNick |
*COM*:00000002 DiffRoll |
*COM*:00000002 thrust |
*COM*:00000002 desiredAngle |
*COM*:00000002 angle |
*COM*:00000002 motorOutFront |
*COM*:00000002 motorOutRear |
*COM*:00000002 ErsatzKompassInGrad |
*COM*:00000001 h |
*COM*:00000001 m |
*COM*:00000001 s |
*COM*:0000004d Mixer |
*COM*:00000001 Parameter_J16Bitmask |
*COM*:00000001 Parameter_J17Bitmask |
*COM*:00000002 MesswertGierBias |
*COM*:00000001 Parameter_NaviGpsModeControl |
*COM*:00000001 Parameter_NaviGpsGain |
*COM*:00000001 Parameter_NaviGpsP |
*COM*:00000001 Parameter_NaviGpsI |
*COM*:00000001 Parameter_NaviGpsD |
*COM*:00000001 Parameter_NaviGpsACC |
*COM*:00000001 Parameter_NaviOperatingRadius |
*COM*:00000001 Parameter_NaviWindCorrection |
*COM*:00000001 Parameter_NaviSpeedCompensation |
*COM*:00000004 tmp_motorwert |
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
__eerd_block |
LED_Init |
__eewr_block |
beeptime |
Delay_ms |
__prologue_saves__ |
AdWertGier |
AdWertNickFilter |
AdWertRollFilter |
AdWertAccNick |
AdWertAccRoll |
AdWertAccHoch |
__floatsisf |
Aktuell_az |
__subsf3 |
__addsf3 |
__fixsfsi |
AdReady |
__mulsi3 |
__divmodsi4 |
HiResNick |
HiResRoll |
AdWertNick |
PlatinenVersion |
AdWertRoll |
PPM_in |
__epilogue_restores__ |
SucheGyroOffset |
ExpandBaro |
Delay_ms_Mess |
MessLuftdruck |
__divmodhi4 |
Luftdruck |
StartLuftdruck |
VarioMeter |
SendVersionToNavi |
ServoActive |
SucheLuftruckOffset |
PC_MotortestActive |
MotorTest |
DebugOut |
twi_state |
motor |
i2c_start |
PPM_diff |
NewPpmData |
__fixunssfsi |
ExternControl |
WinkelOut |
ZaehlMessungen |
BattLowVoltageWarning |
UBat |
__udivmodhi4 |
DruckOffsetSetting |
MissingMotor |
SummenHoehe |
ihypot |
c_cos_8192 |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/flight.pnproj |
---|
0,0 → 1,0 |
<Project name="Flight-Ctrl"><File path="uart.h"></File><File path="main.c"></File><File path="main.h"></File><File path="makefile"></File><File path="uart.c"></File><File path="printf_P.h"></File><File path="printf_P.c"></File><File path="timer0.c"></File><File path="timer0.h"></File><File path="old_macros.h"></File><File path="twimaster.c"></File><File path="twimaster.h"></File><File path="rc.c"></File><File path="rc.h"></File><File path="fc.h"></File><File path="menu.h"></File><File path="menu.c"></File><File path="_Settings.h"></File><File path="analog.c"></File><File path="analog.h"></File><File path="eeprom.c"></File><File path="led.h"></File><File path="led.c"></File><File path="fc.c"></File><File path="mymath.c"></File><File path="mymath.h"></File><File path="isqrt.S"></File><File path="eeprom.h"></File></Project> |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/gps.h |
---|
0,0 → 1,12 |
//----------------------------------------------------------------------------------------------------- |
// soll entfernt werden |
// gps.h |
//----------------------------------------------------------------------------------------------------- |
//extern signed int GPS_Nick; |
//extern signed int GPS_Roll; |
//extern signed int GPS_Nick2; |
//extern signed int GPS_Roll2; |
//void GPS_Neutral(void); |
//void GPS_BerechneZielrichtung(void); |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/isqrt.S |
---|
0,0 → 1,201 |
;-----------------------------------------------------------------------------; |
; Fast integer squareroot routines for avr-gcc project (C)ChaN, 2008 |
; http://elm-chan.org/docs/avrlib/sqrt32.S |
;-----------------------------------------------------------------------------; |
; uint16_t isqrt32 (uint32_t n); |
; uint8_t isqrt16 (uint16_t n); |
; uint16_t ihypot (int16_t x, int16_t y); |
;-----------------------------------------------------------------------------: |
; 32bit integer squareroot |
;-----------------------------------------------------------------------------; |
; uint16_t isqrt32 ( |
; uint32_t n |
; ); |
; |
; Return Value: |
; Squareroot of n. |
; |
; Size = 53 words |
; Clock = 532..548 cycles |
; Stack = 0 byte |
.global isqrt32 |
.func isqrt32 |
isqrt32: |
clr r0 |
clr r18 |
clr r19 |
clr r20 |
ldi r21, 1 |
clr r27 |
clr r30 |
clr r31 |
ldi r26, 16 |
1: lsl r22 |
rol r23 |
rol r24 |
rol r25 |
rol r0 |
rol r18 |
rol r19 |
rol r20 |
lsl r22 |
rol r23 |
rol r24 |
rol r25 |
rol r0 |
rol r18 |
rol r19 |
rol r20 |
brpl 2f |
add r0, r21 |
adc r18, r27 |
adc r19, r30 |
adc r20, r31 |
rjmp 3f |
2: sub r0, r21 |
sbc r18, r27 |
sbc r19, r30 |
sbc r20, r31 |
3: lsl r21 |
rol r27 |
rol r30 |
andi r21, 0b11111000 |
ori r21, 0b00000101 |
sbrc r20, 7 |
subi r21, 2 |
dec r26 |
brne 1b |
lsr r30 |
ror r27 |
ror r21 |
lsr r30 |
ror r27 |
ror r21 |
mov r24, r21 |
mov r25, r27 |
ret |
.endfunc |
;-----------------------------------------------------------------------------: |
; 16bit integer squareroot |
;-----------------------------------------------------------------------------; |
; uint8_t isqrt16 ( uint16_t n ); |
; |
; Return Value: |
; Squareroot of n. |
; |
; Size = 33 words |
; Clock = 181..189 cycles |
; Stack = 0 byte |
.global isqrt16 |
.func isqrt16 |
isqrt16: |
clr r18 |
clr r19 |
ldi r20, 1 |
clr r21 |
ldi r22, 8 |
1: lsl r24 |
rol r25 |
rol r18 |
rol r19 |
lsl r24 |
rol r25 |
rol r18 |
rol r19 |
brpl 2f |
add r18, r20 |
adc r19, r21 |
rjmp 3f |
2: sub r18, r20 |
sbc r19, r21 |
3: lsl r20 |
rol r21 |
andi r20, 0b11111000 |
ori r20, 0b00000101 |
sbrc r19, 7 |
subi r20, 2 |
dec r22 |
brne 1b |
lsr r21 |
ror r20 |
lsr r21 |
ror r20 |
mov r24, r20 |
ret |
.endfunc |
;-----------------------------------------------------------------------------: |
; 16bit integer hypot (megaAVR is required) |
;-----------------------------------------------------------------------------; |
; uint16_t ihypot ( |
; int16_t x, |
; int16_t y |
; ); |
; |
; Return Value: |
; Squareroot of (x*x + y*y) |
; |
; Size = 42 words |
; Clock = 581..597 cycles |
; Stack = 0 byte |
.global ihypot |
.func ihypot |
ihypot: |
clr r26 |
sbrs r25, 7 |
rjmp 1f |
com r24 |
com r25 |
adc r24, r26 |
adc r25, r26 |
1: sbrs r23, 7 |
rjmp 2f |
com r22 |
com r23 |
adc r22, r26 |
adc r23, r26 |
2: mul r22, r22 |
movw r18, r0 |
mul r23, r23 |
movw r20, r0 |
mul r22, r23 |
add r19, r0 |
adc r20, r1 |
adc r21, r26 |
add r19, r0 |
adc r20, r1 |
adc r21, r26 |
mul r24, r24 |
movw r30, r0 |
mul r25, r25 |
add r18, r30 |
adc r19, r31 |
adc r20, r0 |
adc r21, r1 |
mul r24, r25 |
add r19, r0 |
adc r20, r1 |
adc r21, r26 |
add r19, r0 |
adc r20, r1 |
adc r21, r26 |
movw r24, r20 |
movw r22, r18 |
clr r1 |
rjmp isqrt32 |
.endfunc |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/isqrt.h |
---|
0,0 → 1,11 |
#ifndef _ISQRT_H |
#define _ISQRT_H |
#include <inttypes.h> |
// coded in assembler file |
extern uint16_t isqrt32(uint32_t n); |
extern uint8_t isqrt16(uint16_t n); |
extern uint16_t ihypot(int16_t x, int16_t y); |
#endif // _ISQRT_H |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/isqrt.lst |
---|
0,0 → 1,207 |
1 # 1 "isqrt.S" |
1 ;-----------------------------------------------------------------------------; |
0 |
0 |
2 ;-----------------------------------------------------------------------------; |
3 ; Fast integer squareroot routines for avr-gcc project (C)ChaN, 2008 |
4 ; http://elm-chan.org/docs/avrlib/sqrt32.S |
5 ;-----------------------------------------------------------------------------; |
6 ; uint16_t isqrt32 (uint32_t n); |
7 ; uint8_t isqrt16 (uint16_t n); |
8 ; uint16_t ihypot (int16_t x, int16_t y); |
9 |
10 ;-----------------------------------------------------------------------------: |
11 ; 32bit integer squareroot |
12 ;-----------------------------------------------------------------------------; |
13 ; uint16_t isqrt32 ( |
14 ; uint32_t n |
15 ; ); |
16 ; |
17 ; Return Value: |
18 ; Squareroot of n. |
19 ; |
20 ; Size = 53 words |
21 ; Clock = 532..548 cycles |
22 ; Stack = 0 byte |
23 |
24 .global isqrt32 |
25 .func isqrt32 |
26 |
27:isqrt.S **** isqrt32: |
28:isqrt.S **** clr r0 |
29:isqrt.S **** clr r18 |
30:isqrt.S **** clr r19 |
31:isqrt.S **** clr r20 |
32:isqrt.S **** ldi r21, 1 |
33:isqrt.S **** clr r27 |
34:isqrt.S **** clr r30 |
35:isqrt.S **** clr r31 |
36:isqrt.S **** ldi r26, 16 |
37:isqrt.S **** 1: lsl r22 |
38:isqrt.S **** rol r23 |
39:isqrt.S **** rol r24 |
40:isqrt.S **** rol r25 |
41:isqrt.S **** rol r0 |
42:isqrt.S **** rol r18 |
43:isqrt.S **** rol r19 |
44:isqrt.S **** rol r20 |
45:isqrt.S **** lsl r22 |
46:isqrt.S **** rol r23 |
47:isqrt.S **** rol r24 |
48:isqrt.S **** rol r25 |
49:isqrt.S **** rol r0 |
50:isqrt.S **** rol r18 |
51:isqrt.S **** rol r19 |
52:isqrt.S **** rol r20 |
53:isqrt.S **** brpl 2f |
54:isqrt.S **** add r0, r21 |
55:isqrt.S **** adc r18, r27 |
56:isqrt.S **** adc r19, r30 |
57:isqrt.S **** adc r20, r31 |
58:isqrt.S **** rjmp 3f |
59:isqrt.S **** 2: sub r0, r21 |
60:isqrt.S **** sbc r18, r27 |
61:isqrt.S **** sbc r19, r30 |
62:isqrt.S **** sbc r20, r31 |
63:isqrt.S **** 3: lsl r21 |
64:isqrt.S **** rol r27 |
65:isqrt.S **** rol r30 |
66:isqrt.S **** andi r21, 0b11111000 |
67:isqrt.S **** ori r21, 0b00000101 |
68:isqrt.S **** sbrc r20, 7 |
69:isqrt.S **** subi r21, 2 |
70:isqrt.S **** dec r26 |
71:isqrt.S **** brne 1b |
72:isqrt.S **** lsr r30 |
73:isqrt.S **** ror r27 |
74:isqrt.S **** ror r21 |
75:isqrt.S **** lsr r30 |
76:isqrt.S **** ror r27 |
77:isqrt.S **** ror r21 |
78:isqrt.S **** mov r24, r21 |
79:isqrt.S **** mov r25, r27 |
80 ret |
81 .endfunc |
82 |
83 |
84 |
85 ;-----------------------------------------------------------------------------: |
86 ; 16bit integer squareroot |
87 ;-----------------------------------------------------------------------------; |
88 ; uint8_t isqrt16 ( uint16_t n ); |
89 ; |
90 ; Return Value: |
91 ; Squareroot of n. |
92 ; |
93 ; Size = 33 words |
94 ; Clock = 181..189 cycles |
95 ; Stack = 0 byte |
96 |
97 .global isqrt16 |
98 .func isqrt16 |
99 |
100:isqrt.S **** isqrt16: |
101:isqrt.S **** clr r18 |
102:isqrt.S **** clr r19 |
103:isqrt.S **** ldi r20, 1 |
104:isqrt.S **** clr r21 |
105:isqrt.S **** ldi r22, 8 |
106:isqrt.S **** 1: lsl r24 |
107:isqrt.S **** rol r25 |
108:isqrt.S **** rol r18 |
109:isqrt.S **** rol r19 |
110:isqrt.S **** lsl r24 |
111:isqrt.S **** rol r25 |
112:isqrt.S **** rol r18 |
113:isqrt.S **** rol r19 |
114:isqrt.S **** brpl 2f |
115:isqrt.S **** add r18, r20 |
116:isqrt.S **** adc r19, r21 |
117:isqrt.S **** rjmp 3f |
118:isqrt.S **** 2: sub r18, r20 |
119:isqrt.S **** sbc r19, r21 |
120:isqrt.S **** 3: lsl r20 |
121:isqrt.S **** rol r21 |
122:isqrt.S **** andi r20, 0b11111000 |
123:isqrt.S **** ori r20, 0b00000101 |
124:isqrt.S **** sbrc r19, 7 |
125:isqrt.S **** subi r20, 2 |
126:isqrt.S **** dec r22 |
127:isqrt.S **** brne 1b |
128:isqrt.S **** lsr r21 |
129:isqrt.S **** ror r20 |
130:isqrt.S **** lsr r21 |
131:isqrt.S **** ror r20 |
132:isqrt.S **** mov r24, r20 |
133 ret |
134 .endfunc |
135 |
136 |
137 |
138 ;-----------------------------------------------------------------------------: |
139 ; 16bit integer hypot (megaAVR is required) |
140 ;-----------------------------------------------------------------------------; |
141 ; uint16_t ihypot ( |
142 ; int16_t x, |
143 ; int16_t y |
144 ; ); |
145 ; |
146 ; Return Value: |
147 ; Squareroot of (x*x + y*y) |
148 ; |
149 ; Size = 42 words |
150 ; Clock = 581..597 cycles |
151 ; Stack = 0 byte |
152 |
153 .global ihypot |
154 .func ihypot |
155 |
156:isqrt.S **** ihypot: |
157:isqrt.S **** clr r26 |
158:isqrt.S **** sbrs r25, 7 |
159:isqrt.S **** rjmp 1f |
160:isqrt.S **** com r24 |
161:isqrt.S **** com r25 |
162:isqrt.S **** adc r24, r26 |
163:isqrt.S **** adc r25, r26 |
164:isqrt.S **** 1: sbrs r23, 7 |
165:isqrt.S **** rjmp 2f |
166:isqrt.S **** com r22 |
167:isqrt.S **** com r23 |
168:isqrt.S **** adc r22, r26 |
169:isqrt.S **** adc r23, r26 |
170:isqrt.S **** 2: mul r22, r22 |
171:isqrt.S **** movw r18, r0 |
172:isqrt.S **** mul r23, r23 |
173:isqrt.S **** movw r20, r0 |
174:isqrt.S **** mul r22, r23 |
175:isqrt.S **** add r19, r0 |
176:isqrt.S **** adc r20, r1 |
177:isqrt.S **** adc r21, r26 |
178:isqrt.S **** add r19, r0 |
179:isqrt.S **** adc r20, r1 |
180:isqrt.S **** adc r21, r26 |
181:isqrt.S **** mul r24, r24 |
182:isqrt.S **** movw r30, r0 |
183:isqrt.S **** mul r25, r25 |
184:isqrt.S **** add r18, r30 |
185:isqrt.S **** adc r19, r31 |
186:isqrt.S **** adc r20, r0 |
187:isqrt.S **** adc r21, r1 |
188:isqrt.S **** mul r24, r25 |
189:isqrt.S **** add r19, r0 |
190:isqrt.S **** adc r20, r1 |
191:isqrt.S **** adc r21, r26 |
192:isqrt.S **** add r19, r0 |
193:isqrt.S **** adc r20, r1 |
194:isqrt.S **** adc r21, r26 |
195:isqrt.S **** movw r24, r20 |
196:isqrt.S **** movw r22, r18 |
197:isqrt.S **** clr r1 |
198 rjmp isqrt32 |
DEFINED SYMBOLS |
isqrt.S:26 .text:00000000 isqrt32 |
isqrt.S:99 .text:0000006a isqrt16 |
isqrt.S:155 .text:000000ac ihypot |
NO UNDEFINED SYMBOLS |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/led.c |
---|
0,0 → 1,89 |
/***************************************************************************************************************************** |
* File: led.c |
* |
* Purpose: controlling LEDs |
* |
* Functions: void LED_Init(void) |
* void LED_Update(void) |
* |
*****************************************************************************************************************************/ |
#include "led.h" |
#include <inttypes.h> |
#include "main.h" |
uint16_t LED1_Timing = 0; |
uint16_t LED2_Timing = 0; |
unsigned char J16Blinkcount = 0, J16Mask = 1; |
unsigned char J17Blinkcount = 0, J17Mask = 1; |
//------------------------------------------------------------------------------------------------------ |
// initialisiert die Schalt-Ausgänge PORTC2 und PORTC3 an SV2 (control of J16 & J17) |
//------------------------------------------------------------------------------------------------------ |
void LED_Init(void) |
{ |
DDRC |= (1<<DDC2)|(1<<DDC3); |
J16_OFF; |
J17_OFF; |
J16Blinkcount = 0; J16Mask = 128; |
J17Blinkcount = 0; J17Mask = 128; |
} |
//------------------------------------------------------------------------------------------------------ |
//-------------------------------------------------------------------------------------------------------------------------------- |
// wird aus UpdateMotors() alle 2ms aufgerufen |
// damit können am Mikrokopter aussen angebrachte LEDs gesteuert werden |
// deren Ankoppelung geschieht über PORTC2 und PORTC3 |
//-------------------------------------------------------------------------------------------------------------------------------- |
void LED_Update(void) |
{ |
static char delay = 0; |
static unsigned char J16Bitmask = 0; |
static unsigned char J17Bitmask = 0; |
if(!delay--) // 10ms Intervall |
{ |
delay = 4; |
if(MikroKopterFlags & FLAG_LOWBAT || SenderOkay < 128) |
{ |
J16Bitmask = EE_Parameter.WARN_J16_Bitmask; |
J17Bitmask = EE_Parameter.WARN_J17_Bitmask; |
} |
else |
{ |
J16Bitmask = EE_Parameter.J16Bitmask; |
J17Bitmask = EE_Parameter.J17Bitmask; |
} |
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED1) J16_ON; else J16_OFF;} |
else |
if((EE_Parameter.J16Timing > 250) && (Parameter_J16Timing > 220)) {if(J16Bitmask & 128) J16_ON; else J16_OFF;} |
else |
if((EE_Parameter.J16Timing > 250) && (Parameter_J16Timing < 10)) {if(J16Bitmask & 128) J16_OFF; else J16_ON;} |
else |
if(!J16Blinkcount--) |
{ |
J16Blinkcount = Parameter_J16Timing-1; |
if(J16Mask == 1) J16Mask = 128; else J16Mask /= 2; |
if(J16Mask & J16Bitmask) J16_ON; else J16_OFF; |
} |
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED2) J17_ON; else J17_OFF;} |
else |
if((EE_Parameter.J17Timing > 250) && (Parameter_J17Timing > 230)) {if(J17Bitmask & 128) J17_ON; else J17_OFF;} |
else |
if((EE_Parameter.J17Timing > 250) && (Parameter_J17Timing < 10)) {if(J17Bitmask & 128) J17_OFF; else J17_ON;} |
else |
if(!J17Blinkcount--) |
{ |
J17Blinkcount = Parameter_J17Timing-1; |
if(J17Mask == 1) J17Mask = 128; else J17Mask /= 2; |
if(J17Mask & J17Bitmask) J17_ON; else J17_OFF; |
} |
} // Ende : 10ms Intervall |
} |
//-------------------------------------------------------------------------------------------------------------------------------- |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/led.d |
---|
0,0 → 1,2 |
led.o led.d : led.c led.h main.h old_macros.h _Settings.h printf_P.h timer0.h \ |
uart.h analog.h eeprom.h twimaster.h menu.h rc.h fc.h |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/led.h |
---|
0,0 → 1,21 |
/***************************************************************************************************************************** |
* File: led.h |
* Purpose: header of fc.c |
*****************************************************************************************************************************/ |
#ifndef _LED_H |
#define _LED_H |
#include <avr/io.h> |
#define J16_ON PORTC |= (1<<PORTC2) |
#define J16_OFF PORTC &= ~(1<<PORTC2) |
#define J16_TOGGLE PORTC ^= (1<<PORTC2) |
#define J17_ON PORTC |= (1<<PORTC3) |
#define J17_OFF PORTC &= ~(1<<PORTC3) |
#define J17_TOGGLE PORTC ^= (1<<PORTC3) |
extern void LED_Init(void); |
extern void LED_Update(void); |
#endif |
//------------------------------------------------------------------------------------------------------------------------------------- |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/led.lst |
---|
0,0 → 1,247 |
1 .file "led.c" |
2 .arch atmega644 |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .global J17Mask |
11 .data |
14 J17Mask: |
15 0000 01 .byte 1 |
16 .global J17Blinkcount |
17 .global J17Blinkcount |
18 .section .bss |
21 J17Blinkcount: |
22 0000 00 .skip 1,0 |
23 .global J16Mask |
24 .data |
27 J16Mask: |
28 0001 01 .byte 1 |
29 .global J16Blinkcount |
30 .global J16Blinkcount |
31 .section .bss |
34 J16Blinkcount: |
35 0001 00 .skip 1,0 |
36 .global LED2_Timing |
37 .global LED2_Timing |
40 LED2_Timing: |
41 0002 0000 .skip 2,0 |
42 .global LED1_Timing |
43 .global LED1_Timing |
46 LED1_Timing: |
47 0004 0000 .skip 2,0 |
48 .text |
49 .global LED_Init |
51 LED_Init: |
52 /* prologue: frame size=0 */ |
53 /* prologue end (size=0) */ |
54 0000 87B1 in r24,39-0x20 |
55 0002 8C60 ori r24,lo8(12) |
56 0004 87B9 out 39-0x20,r24 |
57 0006 4298 cbi 40-0x20,2 |
58 0008 4398 cbi 40-0x20,3 |
59 000a 1092 0000 sts J16Blinkcount,__zero_reg__ |
60 000e 80E8 ldi r24,lo8(-128) |
61 0010 8093 0000 sts J16Mask,r24 |
62 0014 1092 0000 sts J17Blinkcount,__zero_reg__ |
63 0018 8093 0000 sts J17Mask,r24 |
64 /* epilogue: frame size=0 */ |
65 001c 0895 ret |
66 /* epilogue end (size=1) */ |
67 /* function LED_Init size 15 (14) */ |
69 .lcomm delay.0,1 |
70 .lcomm J16Bitmask.1,1 |
71 .lcomm J17Bitmask.2,1 |
72 .global LED_Update |
74 LED_Update: |
75 /* prologue: frame size=0 */ |
76 /* prologue end (size=0) */ |
77 001e 8091 0000 lds r24,delay.0 |
78 0022 8150 subi r24,lo8(-(-1)) |
79 0024 8F3F cpi r24,lo8(-1) |
80 0026 01F0 breq .L52 |
81 0028 8093 0000 sts delay.0,r24 |
82 002c 0895 ret |
83 .L52: |
84 002e 84E0 ldi r24,lo8(4) |
85 0030 8093 0000 sts delay.0,r24 |
86 0034 8091 0000 lds r24,MikroKopterFlags |
87 0038 85FF sbrs r24,5 |
88 003a 00C0 rjmp .L53 |
89 .L5: |
90 003c 4091 0000 lds r20,EE_Parameter+67 |
91 0040 4093 0000 sts J16Bitmask.1,r20 |
92 0044 6091 0000 lds r22,EE_Parameter+68 |
93 .L44: |
94 0048 6093 0000 sts J17Bitmask.2,r22 |
95 004c 5091 0000 lds r21,EE_Parameter+86 |
96 0050 252F mov r18,r21 |
97 0052 3327 clr r19 |
98 0054 24FF sbrs r18,4 |
99 0056 00C0 rjmp .L7 |
100 0058 8091 0000 lds r24,MotorenEin |
101 005c 8823 tst r24 |
102 005e 01F4 brne .L7 |
103 0060 25FF sbrs r18,5 |
104 0062 00C0 rjmp .L22 |
105 .L46: |
106 0064 429A sbi 40-0x20,2 |
107 0066 00C0 rjmp .L10 |
108 .L53: |
109 0068 8091 0000 lds r24,SenderOkay |
110 006c 8823 tst r24 |
111 006e 04F4 brge .L5 |
112 0070 4091 0000 lds r20,EE_Parameter+63 |
113 0074 4093 0000 sts J16Bitmask.1,r20 |
114 0078 6091 0000 lds r22,EE_Parameter+65 |
115 007c 00C0 rjmp .L44 |
116 .L7: |
117 007e 9091 0000 lds r25,EE_Parameter+64 |
118 0082 9B3F cpi r25,lo8(-5) |
119 0084 00F0 brlo .L11 |
120 0086 8091 0000 lds r24,Parameter_J16Timing |
121 008a 8D3D cpi r24,lo8(-35) |
122 008c 00F0 brlo .L11 |
123 008e 47FD sbrc r20,7 |
124 0090 00C0 rjmp .L46 |
125 .L22: |
126 0092 4298 cbi 40-0x20,2 |
127 0094 252F mov r18,r21 |
128 0096 3327 clr r19 |
129 0098 24FD sbrc r18,4 |
130 009a 00C0 rjmp .L54 |
131 .L24: |
132 009c 9091 0000 lds r25,EE_Parameter+66 |
133 00a0 9B3F cpi r25,lo8(-5) |
134 00a2 00F0 brlo .L28 |
135 00a4 8091 0000 lds r24,Parameter_J17Timing |
136 00a8 873E cpi r24,lo8(-25) |
137 00aa 00F0 brlo .L28 |
138 00ac 67FD sbrc r22,7 |
139 00ae 00C0 rjmp .L50 |
140 .L39: |
141 00b0 4398 cbi 40-0x20,3 |
142 00b2 0895 ret |
143 .L11: |
144 00b4 9B3F cpi r25,lo8(-5) |
145 00b6 00F0 brlo .L15 |
146 00b8 8091 0000 lds r24,Parameter_J16Timing |
147 00bc 8A30 cpi r24,lo8(10) |
148 00be 00F0 brlo .L55 |
149 .L15: |
150 00c0 8091 0000 lds r24,J16Blinkcount |
151 00c4 8150 subi r24,lo8(-(-1)) |
152 00c6 8F3F cpi r24,lo8(-1) |
153 00c8 01F0 breq .L56 |
154 00ca 8093 0000 sts J16Blinkcount,r24 |
155 .L10: |
156 00ce 252F mov r18,r21 |
157 00d0 3327 clr r19 |
158 00d2 24FF sbrs r18,4 |
159 00d4 00C0 rjmp .L24 |
160 .L54: |
161 00d6 8091 0000 lds r24,MotorenEin |
162 00da 8823 tst r24 |
163 00dc 01F4 brne .L24 |
164 00de 26FF sbrs r18,6 |
165 00e0 00C0 rjmp .L39 |
166 .L50: |
167 00e2 439A sbi 40-0x20,3 |
168 00e4 0895 ret |
169 .L28: |
170 00e6 9B3F cpi r25,lo8(-5) |
171 00e8 00F0 brlo .L32 |
172 00ea 8091 0000 lds r24,Parameter_J17Timing |
173 00ee 8A30 cpi r24,lo8(10) |
174 00f0 00F0 brlo .L57 |
175 .L32: |
176 00f2 8091 0000 lds r24,J17Blinkcount |
177 00f6 8150 subi r24,lo8(-(-1)) |
178 00f8 8F3F cpi r24,lo8(-1) |
179 00fa 01F0 breq .L58 |
180 00fc 8093 0000 sts J17Blinkcount,r24 |
181 0100 0895 ret |
182 .L55: |
183 0102 47FD sbrc r20,7 |
184 0104 00C0 rjmp .L22 |
185 0106 429A sbi 40-0x20,2 |
186 0108 00C0 rjmp .L10 |
187 .L57: |
188 010a 67FD sbrc r22,7 |
189 010c 00C0 rjmp .L39 |
190 010e 439A sbi 40-0x20,3 |
191 0110 0895 ret |
192 .L56: |
193 0112 8091 0000 lds r24,Parameter_J16Timing |
194 0116 8150 subi r24,lo8(-(-1)) |
195 0118 8093 0000 sts J16Blinkcount,r24 |
196 011c 8091 0000 lds r24,J16Mask |
197 0120 8130 cpi r24,lo8(1) |
198 0122 01F0 breq .L59 |
199 0124 8695 lsr r24 |
200 .L45: |
201 0126 8093 0000 sts J16Mask,r24 |
202 012a 8423 and r24,r20 |
203 012c 01F4 brne .+2 |
204 012e 00C0 rjmp .L22 |
205 0130 429A sbi 40-0x20,2 |
206 0132 00C0 rjmp .L10 |
207 .L58: |
208 0134 8091 0000 lds r24,Parameter_J17Timing |
209 0138 8150 subi r24,lo8(-(-1)) |
210 013a 8093 0000 sts J17Blinkcount,r24 |
211 013e 8091 0000 lds r24,J17Mask |
212 0142 8130 cpi r24,lo8(1) |
213 0144 01F0 breq .L60 |
214 0146 8695 lsr r24 |
215 .L47: |
216 0148 8093 0000 sts J17Mask,r24 |
217 014c 8623 and r24,r22 |
218 014e 01F4 brne .+2 |
219 0150 00C0 rjmp .L39 |
220 0152 439A sbi 40-0x20,3 |
221 0154 0895 ret |
222 .L59: |
223 0156 80E8 ldi r24,lo8(-128) |
224 0158 00C0 rjmp .L45 |
225 .L60: |
226 015a 80E8 ldi r24,lo8(-128) |
227 015c 00C0 rjmp .L47 |
228 /* epilogue: frame size=0 */ |
229 /* epilogue: noreturn */ |
230 /* epilogue end (size=0) */ |
231 /* function LED_Update size 162 (162) */ |
233 .comm Mixer,77,1 |
234 /* File "led.c": code 177 = 0x00b1 ( 176), prologues 0, epilogues 1 */ |
DEFINED SYMBOLS |
*ABS*:00000000 led.c |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:3 *ABS*:0000003f __SREG__ |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:4 *ABS*:0000003e __SP_H__ |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:5 *ABS*:0000003d __SP_L__ |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:14 .data:00000000 J17Mask |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:21 .bss:00000000 J17Blinkcount |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:27 .data:00000001 J16Mask |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:34 .bss:00000001 J16Blinkcount |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:40 .bss:00000002 LED2_Timing |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:46 .bss:00000004 LED1_Timing |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:51 .text:00000000 LED_Init |
.bss:00000006 delay.0 |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:69 .bss:00000007 J16Bitmask.1 |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:70 .bss:00000008 J17Bitmask.2 |
C:\Users\Bernd\AppData\Local\Temp/ccVwhCXf.s:74 .text:0000001e LED_Update |
*COM*:0000004d Mixer |
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
MikroKopterFlags |
EE_Parameter |
MotorenEin |
SenderOkay |
Parameter_J16Timing |
Parameter_J17Timing |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/main.c |
---|
0,0 → 1,491 |
/************************************************************************************************************************************** |
* File: main.c |
* |
* Purpose: main function fot Flight Ctrl |
* |
* Functions: void CalMk3Mag(void) |
* void LipoDetection(unsigned char print) |
* int main(void) |
* |
* hardware: Flight Ctrl V1.3 |
* |
* Created: Feb 2013 |
* |
* Revisions: 1.00 experimental subversion for a balancekopter |
* Achtung: nicht flugfähige Experimentalversion für eine Balenwaage mit Flight-CTRL |
* siehe: http://forum.mikrokopter.de/topic-39231.html |
* |
* Copyright: (c)2013 www.mikrokopter.de |
* All rights reserved. This software is available only for non-commercial or educational applications. |
* Other uses are prohibited. This software may be modified only if |
* the resulting code be made available publicly and the original author(s) given credit. |
* |
************************************************************************************************************************************/ |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Copyright (c) Holger Buss, Ingo Busker |
// + Nur für den privaten Gebrauch / NON-COMMERCIAL USE ONLY |
// + www.MikroKopter.com |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation), |
// + dass eine Nutzung (auch auszugsweise) nur für den privaten und nicht-kommerziellen Gebrauch zulässig ist. |
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt |
// + bzgl. der Nutzungsbedingungen aufzunehmen. |
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen, |
// + Verkauf von Luftbildaufnahmen, usw. |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht, |
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts |
// + auf anderen Webseiten oder Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de" |
// + eindeutig als Ursprung verlinkt und genannt werden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion |
// + Benutzung auf eigene Gefahr |
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Portierung oder Nutzung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur |
// + mit unserer Zustimmung zulässig |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + Redistributions of source code (with or without modifications) must retain the above copyright notice, |
// + this list of conditions and the following disclaimer. |
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived |
// + from this software without specific prior written permission. |
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet |
// + for non-commercial use (directly or indirectly) |
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted |
// + with our written permission |
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be |
// + clearly linked as origin |
// + * porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed |
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
// + POSSIBILITY OF SUCH DAMAGE. |
// ***************************************************************************************************************************************** |
#include "main.h" |
unsigned char PlatinenVersion = 13; |
unsigned char SendVersionToNavi = 1; |
unsigned char BattLowVoltageWarning = 94; |
unsigned int FlugMinuten = 0,FlugMinutenGesamt = 0; |
//----------------------------------------------------------------------------------------------------- |
// calibrate magnetic compass |
//----------------------------------------------------------------------------------------------------- |
void CalMk3Mag(void) |
{ |
static unsigned char stick = 1; |
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -20) stick = 0; |
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) && !stick) |
{ |
stick = 1; |
WinkelOut.CalcState++; |
if(WinkelOut.CalcState > 4) |
{ |
beeptime = 1000; |
} |
else Piep(WinkelOut.CalcState,150); |
} |
DebugOut.Analog[19] = WinkelOut.CalcState; |
} |
//----------------------------------------------------------------------------------------------------- |
//----------------------------------------------------------------------------------------------------- |
// recognize the LiPo accumulators |
// char print can be 0 or 1 |
//----------------------------------------------------------------------------------------------------- |
void LipoDetection(unsigned char print) |
{ |
unsigned int timer; |
if(print) printf("\n\rBatt:"); |
if(EE_Parameter.UnterspannungsWarnung < 50) // automatic recognition of lipo cells -> default = 33 |
{ |
timer = SetDelay(500); // |
if(print) while (!CheckDelay(timer)); |
if(UBat < 130) |
{ |
BattLowVoltageWarning = 3 * EE_Parameter.UnterspannungsWarnung; |
if(print) |
{ |
Piep(3,200); |
printf(" 3 Cells "); |
} |
} |
else |
{ |
BattLowVoltageWarning = 4 * EE_Parameter.UnterspannungsWarnung; |
if(print) |
{ |
Piep(4,200); |
printf(" 4 Cells "); |
} |
} |
} |
else BattLowVoltageWarning = EE_Parameter.UnterspannungsWarnung; |
if(print) printf(" Low warning level: %d.%d",BattLowVoltageWarning/10,BattLowVoltageWarning%10); |
} |
//----------------------------------------------------------------------------------------------------- |
// -------------------------------------------------------------------------------------------------------------------------- |
// main program starting here |
// |
// INPUT: None |
// OUTPUT: None |
// RETURN: 1 |
// -------------------------------------------------------------------------------------------------------------------------- |
int main(void) |
{ |
unsigned int timer,i,timer2 = 0; |
DDRB = 0x00; |
PORTB = 0x00; |
for(timer = 0; timer < 1000; timer++); // verzögern |
PlatinenVersion = 13; |
DDRC = 0x81; // SCL |
PORTC = 0xFF; // Pullup SDA |
DDRB = 0x1B; // LEDs und Druckoffset |
PORTB = 0x01; // LED_Rot |
DDRD = 0x3E; // Speaker & TXD & J3 J4 J5 |
PORTD = 0x47; // LED |
HEF4017R_OFF; // #define HEF4017R_OFF PORTC &= ~(1<<PORTC6) |
MCUSR &=~(1<<WDRF); // MCUSR – MCU Status Register provides information on which reset source caused an MCU reset |
WDTCSR |= (1<<WDCE)|(1<<WDE); // WDTCSR – Watchdog Timer Control Register |
WDTCSR = 0; |
beeptime = 2000; |
StickGier = 0; PPM_in[K_GAS] = 0; StickRoll = 0; StickNick = 0; |
GIER_GRAD_FAKTOR = 1291; |
ROT_OFF; // rote LED aus // PORTB |= 0x01; |
Timer_Init(); // goto timer0.c Zeile 40 |
TIMER2_Init(); // goto timer0.c Zeile 170 |
UART_Init(); // goto uart.c Zeile 488 |
rc_sum_init(); // goto rc.c line 17 |
ADC_Init(); // goto analog.c Zeile 26 |
i2c_init(); // goto twimaster.c Zeile 16 |
//--------------------------------------------------------------------------------------------------------------------------------- |
// passes one time through the following code before arriving at the forever loop |
//--------------------------------------------------------------------------------------------------------------------------------- |
sei(); |
printf("\n\r==================================="); |
printf("\n\rFlightControl\n\rHardware:%d.%d\n\rSoftware:V%d.%d%c ",PlatinenVersion/10,PlatinenVersion%10, VERSION_MAJOR, VERSION_MINOR,VERSION_PATCH + 'a'); |
printf("\n\rexperimental version"); |
printf("\n\r==================================="); |
GRN_ON; // switch green LED on // PORTB &=~0x02; |
ReadParameterSet(3, (unsigned char *) &EE_Parameter.Kanalbelegung[0], 9); // read first 9 Bytes = chanal setup of radio control |
// --------------------------------------------------------------------------------------------------------------------------- |
// setup of mixer |
// --------------------------------------------------------------------------------------------------------------------------- |
// check MIXER-Revision at first EEPROM Byte = 1000 // #define EEPROM_ADR_MIXER_TABLE 1000 |
// if((eeprom_read_byte(&EEPromArray[EEPROM_ADR_MIXER_TABLE]) == MIXER_REVISION) && (eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID]) != 0xff)) |
if((eeprom_read_byte(&EEPromArray[1000]) == 1) && (eeprom_read_byte(&EEPromArray[1]) != 0xFF)) // aufgelöst |
{ |
unsigned char i; // Settings via Koptertool zurücksetzen |
RequiredMotors = 0; |
eeprom_read_block(&Mixer, &EEPromArray[EEPROM_ADR_MIXER_TABLE], sizeof(Mixer)); |
for(i=0; i<16;i++) { if(Mixer.Motor[i][0] > 0) RequiredMotors++;} |
} |
else // default |
{ |
unsigned char i; |
printf("\n\rerzeugt default Mixer Table"); |
for(i=0; i<16;i++) { Mixer.Motor[i][0] = 0;Mixer.Motor[i][1] = 0;Mixer.Motor[i][2] = 0;Mixer.Motor[i][3] = 0;}; |
// default = Quadro |
// number 64 is equivalent to 100% |
// GasMischanteil pd_ergebnis_nick pd_ergebnis_roll GierMischanteil |
Mixer.Motor[0][0] = 64; Mixer.Motor[0][1] = +64; Mixer.Motor[0][2] = 0; Mixer.Motor[0][3] = +64; // vorne |
Mixer.Motor[1][0] = 64; Mixer.Motor[1][1] = -64; Mixer.Motor[1][2] = 0; Mixer.Motor[1][3] = +64; // hinten |
Mixer.Motor[2][0] = 64; Mixer.Motor[2][1] = 0; Mixer.Motor[2][2] = -64; Mixer.Motor[2][3] = -64; // rechts |
Mixer.Motor[3][0] = 64; Mixer.Motor[3][1] = 0; Mixer.Motor[3][2] = +64; Mixer.Motor[3][3] = -64; // links |
Mixer.Revision = MIXER_REVISION; // #define MIXER_REVISION 1 |
memcpy(Mixer.Name, "Quadro\0", 11); |
eeprom_write_block(&Mixer, &EEPromArray[EEPROM_ADR_MIXER_TABLE], sizeof(Mixer)); // sizeof(Mixer) = 77 |
} |
printf("\n\rMixer-Config: '%s' (%u Motors)",Mixer.Name,RequiredMotors); |
// --------------------------------------------------------------------------------------------------------------------------- |
// how many BL-Ctrls are connected ? |
// --------------------------------------------------------------------------------------------------------------------------- |
printf("\n\r...BL-Ctrl...."); |
motorread = 0; |
UpdateMotor = 0; |
SendMotorData(); |
while(!UpdateMotor); |
motorread = 0; // read the first I2C-Datasets |
timer = SetDelay(2000); // sets |
for(i=0; i < MAX_MOTORS; i++) // #define MAX_MOTORS 4 |
{ |
UpdateMotor = 0; |
SendMotorData(); // goto fc.c line 460 |
while(!UpdateMotor); |
if(Mixer.Motor[i][0] > 0) // wait maximum 2 sec to wake up the BL-Ctrls |
{ |
while(!CheckDelay(timer) && !MotorPresent[i]) |
{ |
UpdateMotor = 0; |
SendMotorData(); |
while(!UpdateMotor); |
} |
} |
if(MotorPresent[i]) printf("%d ",i+1); |
} |
for(i=0; i < MAX_MOTORS; i++) |
{ |
if(!MotorPresent[i] && Mixer.Motor[i][0] > 0) // #define MAX_MOTORS 4 |
{ |
printf("\n\r\n\r!! missing BL-CTRL: %d !!",i+1); |
ServoActive = 1; // just in case the FlightCtrl would be used as camera-stabilizer |
} |
MotorError[i] = 0; |
} |
printf("\n\r==================================="); |
SendMotorData(); |
// --------------------------------------------------------------------------------------------------------------------------- |
// check, that the revision in EEPROM fits to actual software |
// --------------------------------------------------------------------------------------------------------------------------- |
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID]) != EE_DATENREVISION) // #define EEPROM_ADR_VALID 1 |
{ // #define EE_DATENREVISION 80 |
DefaultKonstanten1(); // Funktion aus eeprom.c |
printf("\n\rInit. EEPROM"); |
for (unsigned char i=1;i<6;i++) // es gibt 5 verschiedene Settings |
{ |
if(i==2) DefaultKonstanten2(); // Kamera |
if(i==3) DefaultKonstanten3(); // Anfänger |
if(i>3) DefaultKonstanten2(); // Kamera |
// --------------------------------------------------------------------------------------------------------------------------- |
// valid Setting ? |
// --------------------------------------------------------------------------------------------------------------------------- |
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS]) < 12 && eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+1]) < 12 && eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+2]) < 12 && eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+3]) < 12) |
{ |
EE_Parameter.Kanalbelegung[0] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+0]); // Nick // #define EEPROM_ADR_CHANNELS 80 |
EE_Parameter.Kanalbelegung[1] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+1]); // Roll |
EE_Parameter.Kanalbelegung[2] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+2]); // Gas |
EE_Parameter.Kanalbelegung[3] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+3]); // Gier |
EE_Parameter.Kanalbelegung[4] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+4]); // Poti 1 |
EE_Parameter.Kanalbelegung[5] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+5]); // Poti 2 |
EE_Parameter.Kanalbelegung[6] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+6]); // Poti 3 |
EE_Parameter.Kanalbelegung[7] = eeprom_read_byte(&EEPromArray[EEPROM_ADR_CHANNELS+7]); // Poti 4 |
if(i==1) printf(": Generating Default-Parameter using old Stick Settings"); |
} else DefaultStickMapping(); |
WriteParameterSet(i, (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE); // #define STRUCT_PARAM_LAENGE sizeof(EE_Parameter) |
// WriteParameterSet(i, (unsigned char *) &EE_Parameter.Kanalbelegung[0], 101)); |
} |
SetActiveParamSetNumber(3); // default Setting ist Beginner |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_VALID], EE_DATENREVISION); // #define EE_DATENREVISION 80 |
// eeprom_write_byte(&EEPromArray[1], 80); // aufgelöst |
} // EOF : check existing revision at EEPROM |
FlugMinuten = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES2]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES2+1]); |
FlugMinutenGesamt = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_MINUTES+1]); |
if(FlugMinutenGesamt == 0xFFFF || FlugMinuten == 0xFFFF) // Flugminuten sind am überlaufen - zurücksetzen |
{ |
FlugMinuten = 0; |
FlugMinutenGesamt = 0; |
} |
printf("\n\rFlight-time %u min Total:%u min" ,FlugMinuten,FlugMinutenGesamt); |
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) > 4) |
{ |
printf("\n\rACC noch nicht calibriert !"); |
} |
ReadParameterSet(GetActiveParamSetNumber(), (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE); // #define STRUCT_PARAM_LAENGE sizeof(EE_Parameter) |
printf("\n\rUsing parameterset %d", GetActiveParamSetNumber()); |
if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG) |
{ |
printf("\n\rKalibrieren des Drucksensors."); |
timer = SetDelay(1000); // |
SucheLuftruckOffset(); |
while (!CheckDelay(timer)); // pause 1 sec |
printf("OK\n\r"); |
} |
SetNeutral(); // Nullwerte ermitteln und Startwerte festlegen - goto fc.c line 162 |
ROT_OFF; // redLED off // PORTB |= 0x01; |
beeptime = 2000; |
ExternControl.Digital[0] = 0x55; // externe Steuerung per serieller Schnittstelle - siehe uart.h |
printf("\n\rControl: "); |
if (EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) printf("HeadingHold"); |
else printf("normaler (ACC-Mode)"); |
LcdClear(); |
I2CTimeout = 5000; // watchdog set up to 10 sec |
WinkelOut.Orientation = 1; |
LipoDetection(1); // Lipos should be detected now |
printf("\n\r===================================\n\r"); |
timer = SetDelay(2000); |
// -------------------------------- end of main() prelude --------------------------------------------------------------------- |
//---------------------------------------------------------------------------------------------------------------------- |
// forever loop of main program |
//---------------------------------------------------------------------------------------------------------------------- |
while(1) |
{ |
if(UpdateMotor && AdReady) // motor is updated every 2 ms and ADC is already passed |
{ |
UpdateMotor=0; // reset and wait fpr the next 2ms timed trigger from timer0 IR |
if(WinkelOut.CalcState) CalMk3Mag(); // In diesem Spezial-Fall soll der Kompass kalibriert werden |
else MotorRegler(); // Im Normalfall Sollwerte für die Motoren berechnen = goto fc.c line 541 |
SendMotorData(); // Sollwerte an die Motorren senden -> fc.c Zeile 465 |
ROT_OFF; // switch red LED off // PORTB |= 0x01; |
if(SenderOkay) SenderOkay--; // ICIE1: Timer/Counter1, Input Capture Interrupt Enable |
else TIMSK1 |= _BV(ICIE1); // enable PPM-Input // TIMSK1 – Timer/Counter1 Interrupt Mask Register -> – – ICIE1 – – OCIE1B OCIE1A TOIE1 |
if(!--I2CTimeout || MissingMotor) // counting down I2CTimeout or motor is missing |
{ |
if(!I2CTimeout) |
{ |
i2c_reset(); |
I2CTimeout = 5; |
DebugOut.Analog[28]++; // I2C-Error |
} |
if((BeepMuster == 0xffff) && MotorenEin) |
{ |
beeptime = 10000; |
BeepMuster = 0x0080; |
} |
} |
else |
{ |
ROT_OFF; // switch red LED off // PORTB |= 0x01; |
} |
if( 1 && (!UpdateMotor || !MotorenEin)) |
{ |
DatenUebertragung(); |
BearbeiteRxDaten(); |
} |
else BearbeiteRxDaten(); |
// DatenUebertragung(); // where ist that contained? |
// BearbeiteRxDaten(); // where ist that contained? |
if(CheckDelay(timer)) // goto timer0.c line 65 |
{ |
timer += 20; |
if(PcZugriff) PcZugriff--; // flight-CTRL controlled by external PC |
else |
{ |
ExternControl.Config = 0; |
ExternStickNick = 0; |
ExternStickRoll = 0; |
ExternStickGier = 0; |
if(BeepMuster == 0xffff && SenderOkay == 0) |
{ |
beeptime = 15000; |
BeepMuster = 0x0c00; |
} |
} |
if(UBat < BattLowVoltageWarning) // low battery |
{ |
MikroKopterFlags |= FLAG_LOWBAT; |
if(BeepMuster == 0xffff) |
{ |
beeptime = 6000; |
BeepMuster = 0x0300; |
} |
} |
else MikroKopterFlags &= ~FLAG_LOWBAT; |
//SPI_StartTransmitPacket(); // where ist that contained? |
SendSPI = 4; |
if(!MotorenEin) timer2 = 1450; // round it up to 30 sec |
if(++timer2 == 2930) // one minute |
{ |
timer2 = 0; |
FlugMinuten++; |
FlugMinutenGesamt++; |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_MINUTES2],FlugMinuten / 256); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_MINUTES2+1],FlugMinuten % 256); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_MINUTES],FlugMinutenGesamt / 256); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_MINUTES+1],FlugMinutenGesamt % 256); |
timer = SetDelay(20); // delay 20 ms |
} |
} |
LED_Update(); // junmps erery 2ms to led.c line 32 |
} // *** EOF : if(UpdateMotor && AdReady) |
// *** EOF: if(!SendSPI) { SPI_TransmitByte(); } |
} // End of endlessloop |
return (1); |
} |
// *** EOF: main(void) ************************************************************************************************************ |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/main.d |
---|
0,0 → 1,2 |
main.o main.d : main.c main.h old_macros.h _Settings.h printf_P.h timer0.h uart.h \ |
analog.h eeprom.h twimaster.h menu.h rc.h fc.h led.h |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/main.h |
---|
0,0 → 1,113 |
/***************************************************************************************************************************** |
* File: main.h |
* Purpose: header of main.c |
*****************************************************************************************************************************/ |
#ifndef _MAIN_H |
#define _MAIN_H |
#define QUADRO |
//--------------------------------------------------------------------------------- |
// Quadro: |
// 1 |
// 4 3 |
// 2 |
//--------------------------------------------------------------------------------- |
// Hier wird die Quarz Frequenz angegeben = 20 MHz |
#if defined (__AVR_ATmega644__) |
#define SYSCLK 20000000L //Quarz Frequenz in Hz |
#endif |
#if defined (__AVR_ATmega644P__) |
#define SYSCLK 20000000L //Quarz Frequenz in Hz |
#endif |
// Definitionen für Hardware und LEDs |
#define ROT_OFF {if((PlatinenVersion == 10)||(PlatinenVersion == 20)) PORTB &=~0x01; else PORTB |= 0x01;} // rote LED aus // PORTB0 aus |
#define ROT_ON {if((PlatinenVersion == 10)||(PlatinenVersion == 20)) PORTB |= 0x01; else PORTB &=~0x01;} // rote LED an // PORTB0 ein |
#define ROT_FLASH PORTB ^= 0x01 |
#define GRN_OFF {if((PlatinenVersion < 12)) PORTB &=~0x02; else PORTB |= 0x02;} // grüne LED aus // PORTB1 aus |
#define GRN_ON {if((PlatinenVersion < 12)) PORTB |= 0x02; else PORTB &=~0x02;} // grüne LED an // PORTB1 ein |
#define GRN_FLASH PORTB ^= 0x02 |
#define CFG_HOEHENREGELUNG 0x01 // Höhenregler aktiv |
#define CFG_HOEHEN_SCHALTER 0x02 // Höhenschalter - wo wird dieser Parameter geschaltet ? |
#define CFG_HEADING_HOLD 0x04 // Heading Hold aktiv |
#define CFG_KOMPASS_AKTIV 0x08 // Kompass aktiv |
#define CFG_KOMPASS_FIX 0x10 // Orientation fix |
#define CFG_GPS_AKTIV 0x20 // GPS aktiv |
#define CFG_ACHSENKOPPLUNG_AKTIV 0x40 // Axis Decoupling |
#define CFG_DREHRATEN_BEGRENZER 0x80 // Rotationraten Limiter |
#define CFG_LOOP_OBEN 0x01 |
#define CFG_LOOP_UNTEN 0x02 |
#define CFG_LOOP_LINKS 0x04 |
#define CFG_LOOP_RECHTS 0x08 |
#define CFG_MOTOR_BLINK 0x10 |
#define CFG_MOTOR_OFF_LED1 0x20 |
#define CFG_MOTOR_OFF_LED2 0x40 |
#define CFG_RES4 0x80 |
#define CFG2_HEIGHT_LIMIT 0x01 |
#define CFG2_VARIO_BEEP 0x02 |
#define CFG_SENSITIVE_RC 0x04 |
#define J3High PORTD |= 0x20 // Servosausgang PORTPD5 |
#define J3Low PORTD &= ~0x20 |
#define J4High PORTD |= 0x10 // Servosausgang PORTPD4 |
#define J4Low PORTD &= ~0x10 |
#define J5High PORTD |= 0x08 // Servosausgang PORTPD3 |
#define J5Low PORTD &= ~0x08 |
//------------------------------------------ extern Variables -------------------------------- |
extern volatile unsigned char SenderOkay; |
extern unsigned char BattLowVoltageWarning; |
extern unsigned char CosinusNickWinkel, CosinusRollWinkel; |
extern unsigned char PlatinenVersion; |
extern unsigned char SendVersionToNavi; |
extern unsigned int FlugMinuten,FlugMinutenGesamt; |
//----------------------------------------- declaration of functions -------------------------- |
void LipoDetection(unsigned char print); |
//---------------------------------------------------------------------------------------------- |
#include <stdlib.h> |
#include <string.h> |
#include <avr/io.h> |
#include <avr/pgmspace.h> |
#include <avr/interrupt.h> |
#include <avr/eeprom.h> |
#include <avr/boot.h> |
#include <avr/wdt.h> |
#include "old_macros.h" |
#include "_Settings.h" |
#include "printf_P.h" |
#include "timer0.h" |
#include "uart.h" |
#include "analog.h" |
#include "eeprom.h" |
#include "twimaster.h" |
#include "menu.h" |
#include "rc.h" |
#include "fc.h" |
#include "led.h" |
// #define DEBUG_DISPLAY_INTERVALL 123 // in ms |
#define DELAY_US(x) ((unsigned int)( (x) * 1e-6 * F_CPU )) |
#endif |
// *** EOF: main.h *********************************************************************************************************** |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/main.lst |
---|
0,0 → 1,1825 |
1 .file "main.c" |
2 .arch atmega644 |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .global FlugMinutenGesamt |
11 .global FlugMinutenGesamt |
12 .section .bss |
15 FlugMinutenGesamt: |
16 0000 0000 .skip 2,0 |
17 .global FlugMinuten |
18 .global FlugMinuten |
21 FlugMinuten: |
22 0002 0000 .skip 2,0 |
23 .global BattLowVoltageWarning |
24 .data |
27 BattLowVoltageWarning: |
28 0000 5E .byte 94 |
29 .global SendVersionToNavi |
32 SendVersionToNavi: |
33 0001 01 .byte 1 |
34 .global PlatinenVersion |
37 PlatinenVersion: |
38 0002 0D .byte 13 |
39 .text |
41 eeprom_read_byte: |
42 /* prologue: frame size=0 */ |
43 /* prologue end (size=0) */ |
44 .L2: |
45 0000 F999 sbic 63-0x20,1 |
46 0002 00C0 rjmp .L2 |
47 0004 92BD out (65)+1-0x20,r25 |
48 0006 81BD out 65-0x20,r24 |
49 /* #APP */ |
50 /* START EEPROM READ CRITICAL SECTION */ |
51 0008 F89A sbi 31, 0 |
52 000a 80B5 in r24, 32 |
53 /* END EEPROM READ CRITICAL SECTION */ |
54 |
55 /* #NOAPP */ |
56 000c 9927 clr r25 |
57 /* epilogue: frame size=0 */ |
58 000e 0895 ret |
59 /* epilogue end (size=1) */ |
60 /* function eeprom_read_byte size 16 (15) */ |
63 eeprom_write_byte: |
64 /* prologue: frame size=0 */ |
65 /* prologue end (size=0) */ |
66 .L7: |
67 0010 F999 sbic 63-0x20,1 |
68 0012 00C0 rjmp .L7 |
69 0014 1FBA out 63-0x20,__zero_reg__ |
70 0016 92BD out (65)+1-0x20,r25 |
71 0018 81BD out 65-0x20,r24 |
72 001a 60BD out 64-0x20,r22 |
73 /* #APP */ |
74 /* START EEPROM WRITE CRITICAL SECTION */ |
75 001c 0FB6 in r0, 63 |
76 001e F894 cli |
77 0020 FA9A sbi 31, 2 |
78 0022 F99A sbi 31, 1 |
79 0024 0FBE out 63, r0 |
80 /* END EEPROM WRITE CRITICAL SECTION */ |
81 /* #NOAPP */ |
82 /* epilogue: frame size=0 */ |
83 0026 0895 ret |
84 /* epilogue end (size=1) */ |
85 /* function eeprom_write_byte size 21 (20) */ |
87 .data |
90 stick.25: |
91 0003 01 .byte 1 |
92 .text |
93 .global CalMk3Mag |
95 CalMk3Mag: |
96 /* prologue: frame size=0 */ |
97 /* prologue end (size=0) */ |
98 0028 8091 0000 lds r24,EE_Parameter |
99 002c E82F mov r30,r24 |
100 002e FF27 clr r31 |
101 0030 EE0F add r30,r30 |
102 0032 FF1F adc r31,r31 |
103 0034 E050 subi r30,lo8(-(PPM_in)) |
104 0036 F040 sbci r31,hi8(-(PPM_in)) |
105 0038 8081 ld r24,Z |
106 003a 9181 ldd r25,Z+1 |
107 003c 8D5E subi r24,lo8(-19) |
108 003e 9F4F sbci r25,hi8(-19) |
109 0040 04F0 brlt .L11 |
110 0042 1092 0000 sts stick.25,__zero_reg__ |
111 .L11: |
112 0046 8081 ld r24,Z |
113 0048 9181 ldd r25,Z+1 |
114 004a 8A5B subi r24,lo8(-70) |
115 004c 9F4F sbci r25,hi8(-70) |
116 004e 04F4 brge .L16 |
117 0050 8091 0000 lds r24,stick.25 |
118 0054 8823 tst r24 |
119 0056 01F0 breq .L17 |
120 .L16: |
121 0058 2091 0000 lds r18,WinkelOut+6 |
122 005c 00C0 rjmp .L12 |
123 .L17: |
124 005e 81E0 ldi r24,lo8(1) |
125 0060 8093 0000 sts stick.25,r24 |
126 0064 2091 0000 lds r18,WinkelOut+6 |
127 0068 280F add r18,r24 |
128 006a 2093 0000 sts WinkelOut+6,r18 |
129 006e 2530 cpi r18,lo8(5) |
130 0070 00F0 brlo .L13 |
131 0072 88EE ldi r24,lo8(1000) |
132 0074 93E0 ldi r25,hi8(1000) |
133 0076 9093 0000 sts (beeptime)+1,r25 |
134 007a 8093 0000 sts beeptime,r24 |
135 007e 00C0 rjmp .L12 |
136 .L13: |
137 0080 66E9 ldi r22,lo8(150) |
138 0082 70E0 ldi r23,hi8(150) |
139 0084 822F mov r24,r18 |
140 0086 0E94 0000 call Piep |
141 008a 00C0 rjmp .L16 |
142 .L12: |
143 008c 822F mov r24,r18 |
144 008e 9927 clr r25 |
145 0090 9093 0000 sts (DebugOut+40)+1,r25 |
146 0094 8093 0000 sts DebugOut+40,r24 |
147 /* epilogue: frame size=0 */ |
148 0098 0895 ret |
149 /* epilogue end (size=1) */ |
150 /* function CalMk3Mag size 59 (58) */ |
152 .section .progmem.data,"a",@progbits |
155 __c.21: |
156 0000 0A0D 4261 .string "\n\rBatt:" |
156 7474 3A00 |
159 __c.22: |
160 0008 2033 2043 .string " 3 Cells " |
160 656C 6C73 |
160 2020 00 |
163 __c.23: |
164 0013 2034 2043 .string " 4 Cells " |
164 656C 6C73 |
164 2020 00 |
167 __c.24: |
168 001e 204C 6F77 .string " Low warning level: %d.%d" |
168 2077 6172 |
168 6E69 6E67 |
168 206C 6576 |
168 656C 3A20 |
169 .text |
170 .global LipoDetection |
172 LipoDetection: |
173 /* prologue: frame size=0 */ |
174 009a 1F93 push r17 |
175 009c CF93 push r28 |
176 009e DF93 push r29 |
177 /* prologue end (size=3) */ |
178 00a0 182F mov r17,r24 |
179 00a2 8823 tst r24 |
180 00a4 01F4 brne .L33 |
181 00a6 8091 0000 lds r24,EE_Parameter+30 |
182 00aa 8233 cpi r24,lo8(50) |
183 00ac 00F0 brlo .L34 |
184 .L20: |
185 00ae 8093 0000 sts BattLowVoltageWarning,r24 |
186 .L29: |
187 00b2 1123 tst r17 |
188 00b4 01F4 brne .+2 |
189 00b6 00C0 rjmp .L18 |
190 00b8 00C0 rjmp .L35 |
191 .L33: |
192 00ba 80E0 ldi r24,lo8(__c.21) |
193 00bc 90E0 ldi r25,hi8(__c.21) |
194 00be 9F93 push r25 |
195 00c0 8F93 push r24 |
196 00c2 1F92 push __zero_reg__ |
197 00c4 0E94 0000 call _printf_P |
198 00c8 0F90 pop __tmp_reg__ |
199 00ca 0F90 pop __tmp_reg__ |
200 00cc 0F90 pop __tmp_reg__ |
201 00ce 8091 0000 lds r24,EE_Parameter+30 |
202 00d2 8233 cpi r24,lo8(50) |
203 00d4 00F4 brsh .L20 |
204 .L34: |
205 00d6 84EF ldi r24,lo8(500) |
206 00d8 91E0 ldi r25,hi8(500) |
207 00da 0E94 0000 call SetDelay |
208 00de EC01 movw r28,r24 |
209 00e0 1123 tst r17 |
210 00e2 01F4 brne .L22 |
211 .L21: |
212 00e4 8091 0000 lds r24,UBat |
213 00e8 9091 0000 lds r25,(UBat)+1 |
214 00ec 8238 cpi r24,130 |
215 00ee 9105 cpc r25,__zero_reg__ |
216 00f0 04F0 brlt .+2 |
217 00f2 00C0 rjmp .L25 |
218 00f4 8091 0000 lds r24,EE_Parameter+30 |
219 00f8 23E0 ldi r18,lo8(3) |
220 00fa 829F mul r24,r18 |
221 00fc C001 movw r24,r0 |
222 00fe 1124 clr r1 |
223 0100 8093 0000 sts BattLowVoltageWarning,r24 |
224 0104 1123 tst r17 |
225 0106 01F0 breq .L29 |
226 0108 68EC ldi r22,lo8(200) |
227 010a 70E0 ldi r23,hi8(200) |
228 010c 822F mov r24,r18 |
229 010e 0E94 0000 call Piep |
230 0112 80E0 ldi r24,lo8(__c.22) |
231 0114 90E0 ldi r25,hi8(__c.22) |
232 .L31: |
233 0116 9F93 push r25 |
234 0118 8F93 push r24 |
235 011a 1F92 push __zero_reg__ |
236 011c 0E94 0000 call _printf_P |
237 0120 0F90 pop __tmp_reg__ |
238 0122 0F90 pop __tmp_reg__ |
239 0124 0F90 pop __tmp_reg__ |
240 0126 00C0 rjmp .L29 |
241 .L35: |
242 0128 8091 0000 lds r24,BattLowVoltageWarning |
243 012c 6AE0 ldi r22,lo8(10) |
244 012e 0E94 0000 call __udivmodqi4 |
245 0132 892F mov r24,r25 |
246 0134 9927 clr r25 |
247 0136 9F93 push r25 |
248 0138 8F93 push r24 |
249 013a 8091 0000 lds r24,BattLowVoltageWarning |
250 013e 0E94 0000 call __udivmodqi4 |
251 0142 9927 clr r25 |
252 0144 9F93 push r25 |
253 0146 8F93 push r24 |
254 0148 80E0 ldi r24,lo8(__c.24) |
255 014a 90E0 ldi r25,hi8(__c.24) |
256 014c 9F93 push r25 |
257 014e 8F93 push r24 |
258 0150 1F92 push __zero_reg__ |
259 0152 0E94 0000 call _printf_P |
260 0156 8DB7 in r24,__SP_L__ |
261 0158 9EB7 in r25,__SP_H__ |
262 015a 0796 adiw r24,7 |
263 015c 8DBF out __SP_L__,r24 |
264 015e 00C0 rjmp .L18 |
265 .L22: |
266 0160 CE01 movw r24,r28 |
267 0162 0E94 0000 call CheckDelay |
268 0166 8823 tst r24 |
269 0168 01F0 breq .+2 |
270 016a 00C0 rjmp .L21 |
271 016c CE01 movw r24,r28 |
272 016e 0E94 0000 call CheckDelay |
273 0172 8823 tst r24 |
274 0174 01F0 breq .L22 |
275 0176 00C0 rjmp .L21 |
276 .L25: |
277 0178 8091 0000 lds r24,EE_Parameter+30 |
278 017c 9927 clr r25 |
279 017e 880F lsl r24 |
280 0180 991F rol r25 |
281 0182 880F lsl r24 |
282 0184 991F rol r25 |
283 0186 8093 0000 sts BattLowVoltageWarning,r24 |
284 018a 1123 tst r17 |
285 018c 01F4 brne .+2 |
286 018e 00C0 rjmp .L29 |
287 0190 68EC ldi r22,lo8(200) |
288 0192 70E0 ldi r23,hi8(200) |
289 0194 84E0 ldi r24,lo8(4) |
290 0196 0E94 0000 call Piep |
291 019a 80E0 ldi r24,lo8(__c.23) |
292 019c 90E0 ldi r25,hi8(__c.23) |
293 019e 00C0 rjmp .L31 |
294 .L18: |
295 /* epilogue: frame size=0 */ |
296 01a0 DF91 pop r29 |
297 01a2 CF91 pop r28 |
298 01a4 1F91 pop r17 |
299 01a6 0895 ret |
300 /* epilogue end (size=4) */ |
301 /* function LipoDetection size 135 (128) */ |
303 .section .progmem.data |
306 __c.0: |
307 0038 0A0D 3D3D .string "\n\r===================================" |
307 3D3D 3D3D |
307 3D3D 3D3D |
307 3D3D 3D3D |
307 3D3D 3D3D |
310 __c.1: |
311 005e 0A0D 466C .string "\n\rFlightControl\n\rHardware:%d.%d\n\rSoftware:V%d.%d%c " |
311 6967 6874 |
311 436F 6E74 |
311 726F 6C0A |
311 0D48 6172 |
314 __c.2: |
315 0092 0A0D 6578 .string "\n\rexperimental version" |
315 7065 7269 |
315 6D65 6E74 |
315 616C 2076 |
315 6572 7369 |
318 __c.3: |
319 00a9 0A0D 3D3D .string "\n\r===================================" |
319 3D3D 3D3D |
319 3D3D 3D3D |
319 3D3D 3D3D |
319 3D3D 3D3D |
322 __c.4: |
323 00cf 0A0D 6572 .string "\n\rerzeugt default Mixer Table" |
323 7A65 7567 |
323 7420 6465 |
323 6661 756C |
323 7420 4D69 |
326 __c.5: |
327 00ed 0A0D 4D69 .string "\n\rMixer-Config: '%s' (%u Motors)" |
327 7865 722D |
327 436F 6E66 |
327 6967 3A20 |
327 2725 7327 |
330 __c.6: |
331 010e 0A0D 2E2E .string "\n\r...BL-Ctrl...." |
331 2E42 4C2D |
331 4374 726C |
331 2E2E 2E2E |
331 00 |
334 __c.7: |
335 011f 2564 2000 .string "%d " |
338 __c.8: |
339 0123 0A0D 0A0D .string "\n\r\n\r!! missing BL-CTRL: %d !!" |
339 2121 206D |
339 6973 7369 |
339 6E67 2042 |
339 4C2D 4354 |
342 __c.9: |
343 0141 0A0D 3D3D .string "\n\r===================================" |
343 3D3D 3D3D |
343 3D3D 3D3D |
343 3D3D 3D3D |
343 3D3D 3D3D |
346 __c.10: |
347 0167 0A0D 496E .string "\n\rInit. EEPROM" |
347 6974 2E20 |
347 4545 5052 |
347 4F4D 00 |
350 __c.11: |
351 0176 3A20 4765 .string ": Generating Default-Parameter using old Stick Settings" |
351 6E65 7261 |
351 7469 6E67 |
351 2044 6566 |
351 6175 6C74 |
354 __c.12: |
355 01ae 0A0D 466C .string "\n\rFlight-time %u min Total:%u min" |
355 6967 6874 |
355 2D74 696D |
355 6520 2575 |
355 206D 696E |
358 __c.13: |
359 01d1 0A0D 4143 .string "\n\rACC noch nicht calibriert !" |
359 4320 6E6F |
359 6368 206E |
359 6963 6874 |
359 2063 616C |
362 __c.14: |
363 01ef 0A0D 5573 .string "\n\rUsing parameterset %d" |
363 696E 6720 |
363 7061 7261 |
363 6D65 7465 |
363 7273 6574 |
366 __c.15: |
367 0207 0A0D 4B61 .string "\n\rKalibrieren des Drucksensors." |
367 6C69 6272 |
367 6965 7265 |
367 6E20 6465 |
367 7320 4472 |
370 __c.16: |
371 0227 4F4B 0A0D .string "OK\n\r" |
371 00 |
374 __c.17: |
375 022c 0A0D 436F .string "\n\rControl: " |
375 6E74 726F |
375 6C3A 2000 |
378 __c.18: |
379 0238 4865 6164 .string "HeadingHold" |
379 696E 6748 |
379 6F6C 6400 |
382 __c.19: |
383 0244 6E6F 726D .string "normaler (ACC-Mode)" |
383 616C 6572 |
383 2028 4143 |
383 432D 4D6F |
383 6465 2900 |
386 __c.20: |
387 0258 0A0D 3D3D .string "\n\r===================================\n\r" |
387 3D3D 3D3D |
387 3D3D 3D3D |
387 3D3D 3D3D |
387 3D3D 3D3D |
388 .data |
389 .LC0: |
390 0004 5175 6164 .string "Quadro" |
390 726F 00 |
391 000b 00 .string "" |
392 .text |
393 .global main |
395 main: |
396 /* prologue: frame size=0 */ |
397 01a8 C0E0 ldi r28,lo8(__stack - 0) |
398 01aa D0E0 ldi r29,hi8(__stack - 0) |
399 01ac DEBF out __SP_H__,r29 |
400 01ae CDBF out __SP_L__,r28 |
401 /* prologue end (size=4) */ |
402 01b0 EE24 clr r14 |
403 01b2 FF24 clr r15 |
404 01b4 14B8 out 36-0x20,__zero_reg__ |
405 01b6 15B8 out 37-0x20,__zero_reg__ |
406 01b8 C7EE ldi r28,lo8(999) |
407 01ba D3E0 ldi r29,hi8(999) |
408 .L40: |
409 01bc E297 sbiw r28,50 |
410 01be D7FF sbrs r29,7 |
411 01c0 00C0 rjmp .L40 |
412 01c2 2DE0 ldi r18,lo8(13) |
413 01c4 2093 0000 sts PlatinenVersion,r18 |
414 01c8 81E8 ldi r24,lo8(-127) |
415 01ca 87B9 out 39-0x20,r24 |
416 01cc 8FEF ldi r24,lo8(-1) |
417 01ce 88B9 out 40-0x20,r24 |
418 01d0 8BE1 ldi r24,lo8(27) |
419 01d2 84B9 out 36-0x20,r24 |
420 01d4 81E0 ldi r24,lo8(1) |
421 01d6 85B9 out 37-0x20,r24 |
422 01d8 8EE3 ldi r24,lo8(62) |
423 01da 8AB9 out 42-0x20,r24 |
424 01dc 87E4 ldi r24,lo8(71) |
425 01de 8BB9 out 43-0x20,r24 |
426 01e0 4698 cbi 40-0x20,6 |
427 01e2 84B7 in r24,84-0x20 |
428 01e4 877F andi r24,lo8(-9) |
429 01e6 84BF out 84-0x20,r24 |
430 01e8 8091 6000 lds r24,96 |
431 01ec 8861 ori r24,lo8(24) |
432 01ee 8093 6000 sts 96,r24 |
433 01f2 1092 6000 sts 96,__zero_reg__ |
434 01f6 80ED ldi r24,lo8(2000) |
435 01f8 97E0 ldi r25,hi8(2000) |
436 01fa 9093 0000 sts (beeptime)+1,r25 |
437 01fe 8093 0000 sts beeptime,r24 |
438 0202 1092 0000 sts (StickGier)+1,__zero_reg__ |
439 0206 1092 0000 sts StickGier,__zero_reg__ |
440 020a 1092 0000 sts (PPM_in+4)+1,__zero_reg__ |
441 020e 1092 0000 sts PPM_in+4,__zero_reg__ |
442 0212 1092 0000 sts (StickRoll)+1,__zero_reg__ |
443 0216 1092 0000 sts StickRoll,__zero_reg__ |
444 021a 1092 0000 sts (StickNick)+1,__zero_reg__ |
445 021e 1092 0000 sts StickNick,__zero_reg__ |
446 0222 8BE0 ldi r24,lo8(1291) |
447 0224 95E0 ldi r25,hi8(1291) |
448 0226 A0E0 ldi r26,hlo8(1291) |
449 0228 B0E0 ldi r27,hhi8(1291) |
450 022a 8093 0000 sts GIER_GRAD_FAKTOR,r24 |
451 022e 9093 0000 sts (GIER_GRAD_FAKTOR)+1,r25 |
452 0232 A093 0000 sts (GIER_GRAD_FAKTOR)+2,r26 |
453 0236 B093 0000 sts (GIER_GRAD_FAKTOR)+3,r27 |
454 023a 289A sbi 37-0x20,0 |
455 023c 0E94 0000 call Timer_Init |
456 0240 0E94 0000 call TIMER2_Init |
457 0244 0E94 0000 call UART_Init |
458 0248 0E94 0000 call rc_sum_init |
459 024c 0E94 0000 call ADC_Init |
460 0250 0E94 0000 call i2c_init |
461 /* #APP */ |
462 0254 7894 sei |
463 /* #NOAPP */ |
464 0256 80E0 ldi r24,lo8(__c.0) |
465 0258 90E0 ldi r25,hi8(__c.0) |
466 025a 9F93 push r25 |
467 025c 8F93 push r24 |
468 025e 1F92 push __zero_reg__ |
469 0260 0E94 0000 call _printf_P |
470 0264 0F90 pop __tmp_reg__ |
471 0266 0F90 pop __tmp_reg__ |
472 0268 0F90 pop __tmp_reg__ |
473 026a 87E6 ldi r24,lo8(103) |
474 026c 90E0 ldi r25,hi8(103) |
475 026e 9F93 push r25 |
476 0270 8F93 push r24 |
477 0272 8CE4 ldi r24,lo8(76) |
478 0274 90E0 ldi r25,hi8(76) |
479 0276 9F93 push r25 |
480 0278 8F93 push r24 |
481 027a 1F92 push __zero_reg__ |
482 027c 1F92 push __zero_reg__ |
483 027e 8091 0000 lds r24,PlatinenVersion |
484 0282 6AE0 ldi r22,lo8(10) |
485 0284 0E94 0000 call __udivmodqi4 |
486 0288 892F mov r24,r25 |
487 028a 9927 clr r25 |
488 028c 9F93 push r25 |
489 028e 8F93 push r24 |
490 0290 8091 0000 lds r24,PlatinenVersion |
491 0294 0E94 0000 call __udivmodqi4 |
492 0298 9927 clr r25 |
493 029a 9F93 push r25 |
494 029c 8F93 push r24 |
495 029e 80E0 ldi r24,lo8(__c.1) |
496 02a0 90E0 ldi r25,hi8(__c.1) |
497 02a2 9F93 push r25 |
498 02a4 8F93 push r24 |
499 02a6 1F92 push __zero_reg__ |
500 02a8 0E94 0000 call _printf_P |
501 02ac 8DB7 in r24,__SP_L__ |
502 02ae 9EB7 in r25,__SP_H__ |
503 02b0 0D96 adiw r24,13 |
504 02b2 8DBF out __SP_L__,r24 |
505 02b4 80E0 ldi r24,lo8(__c.2) |
506 02b6 90E0 ldi r25,hi8(__c.2) |
507 02b8 9F93 push r25 |
508 02ba 8F93 push r24 |
509 02bc 1F92 push __zero_reg__ |
510 02be 0E94 0000 call _printf_P |
511 02c2 0F90 pop __tmp_reg__ |
512 02c4 0F90 pop __tmp_reg__ |
513 02c6 0F90 pop __tmp_reg__ |
514 02c8 80E0 ldi r24,lo8(__c.3) |
515 02ca 90E0 ldi r25,hi8(__c.3) |
516 02cc 9F93 push r25 |
517 02ce 8F93 push r24 |
518 02d0 1F92 push __zero_reg__ |
519 02d2 0E94 0000 call _printf_P |
520 02d6 8091 0000 lds r24,PlatinenVersion |
521 02da 0F90 pop __tmp_reg__ |
522 02dc 0F90 pop __tmp_reg__ |
523 02de 0F90 pop __tmp_reg__ |
524 02e0 8C30 cpi r24,lo8(12) |
525 02e2 00F0 brlo .+2 |
526 02e4 00C0 rjmp .L44 |
527 02e6 299A sbi 37-0x20,1 |
528 .L45: |
529 02e8 49E0 ldi r20,lo8(9) |
530 02ea 60E0 ldi r22,lo8(EE_Parameter) |
531 02ec 70E0 ldi r23,hi8(EE_Parameter) |
532 02ee 83E0 ldi r24,lo8(3) |
533 02f0 0E94 0000 call ReadParameterSet |
534 .L47: |
535 02f4 F999 sbic 63-0x20,1 |
536 02f6 00C0 rjmp .L47 |
537 02f8 80E0 ldi r24,lo8(EEPromArray+1000) |
538 02fa 90E0 ldi r25,hi8(EEPromArray+1000) |
539 02fc 92BD out (65)+1-0x20,r25 |
540 02fe 81BD out 65-0x20,r24 |
541 /* #APP */ |
542 /* START EEPROM READ CRITICAL SECTION */ |
543 0300 F89A sbi 31, 0 |
544 0302 80B5 in r24, 32 |
545 /* END EEPROM READ CRITICAL SECTION */ |
546 |
547 /* #NOAPP */ |
548 0304 8130 cpi r24,lo8(1) |
549 0306 01F4 brne .L46 |
550 .L51: |
551 0308 F999 sbic 63-0x20,1 |
552 030a 00C0 rjmp .L51 |
553 030c 80E0 ldi r24,lo8(EEPromArray+1) |
554 030e 90E0 ldi r25,hi8(EEPromArray+1) |
555 0310 92BD out (65)+1-0x20,r25 |
556 0312 81BD out 65-0x20,r24 |
557 /* #APP */ |
558 /* START EEPROM READ CRITICAL SECTION */ |
559 0314 F89A sbi 31, 0 |
560 0316 80B5 in r24, 32 |
561 /* END EEPROM READ CRITICAL SECTION */ |
562 |
563 /* #NOAPP */ |
564 0318 8F3F cpi r24,lo8(-1) |
565 031a 01F0 breq .L46 |
566 031c 1092 0000 sts RequiredMotors,__zero_reg__ |
567 0320 20E0 ldi r18,lo8(pm(eeprom_read_byte)) |
568 0322 30E0 ldi r19,hi8(pm(eeprom_read_byte)) |
569 0324 4DE4 ldi r20,lo8(77) |
570 0326 50E0 ldi r21,hi8(77) |
571 0328 60E0 ldi r22,lo8(EEPromArray+1000) |
572 032a 70E0 ldi r23,hi8(EEPromArray+1000) |
573 032c 80E0 ldi r24,lo8(Mixer) |
574 032e 90E0 ldi r25,hi8(Mixer) |
575 0330 0E94 0000 call __eerd_block |
576 0334 9091 0000 lds r25,RequiredMotors |
577 0338 E0E0 ldi r30,lo8(Mixer+13) |
578 033a F0E0 ldi r31,hi8(Mixer+13) |
579 033c 2FE0 ldi r18,lo8(15) |
580 .L60: |
581 033e 8081 ld r24,Z |
582 0340 3496 adiw r30,4 |
583 0342 1816 cp __zero_reg__,r24 |
584 0344 04F4 brge .L58 |
585 0346 9F5F subi r25,lo8(-(1)) |
586 .L58: |
587 0348 2150 subi r18,lo8(-(-1)) |
588 034a 27FF sbrs r18,7 |
589 034c 00C0 rjmp .L60 |
590 034e 9093 0000 sts RequiredMotors,r25 |
591 0352 C0E0 ldi r28,lo8(Mixer+1) |
592 0354 D0E0 ldi r29,hi8(Mixer+1) |
593 0356 00C0 rjmp .L61 |
594 .L44: |
595 0358 2998 cbi 37-0x20,1 |
596 035a 00C0 rjmp .L45 |
597 .L46: |
598 035c 80E0 ldi r24,lo8(__c.4) |
599 035e 90E0 ldi r25,hi8(__c.4) |
600 0360 9F93 push r25 |
601 0362 8F93 push r24 |
602 0364 1F92 push __zero_reg__ |
603 0366 0E94 0000 call _printf_P |
604 036a 0F90 pop __tmp_reg__ |
605 036c 0F90 pop __tmp_reg__ |
606 036e 0F90 pop __tmp_reg__ |
607 0370 E0E0 ldi r30,lo8(Mixer) |
608 0372 F0E0 ldi r31,hi8(Mixer) |
609 0374 8FE0 ldi r24,lo8(15) |
610 .L65: |
611 0376 1586 std Z+13,__zero_reg__ |
612 0378 1686 std Z+14,__zero_reg__ |
613 037a 1786 std Z+15,__zero_reg__ |
614 037c 108A std Z+16,__zero_reg__ |
615 037e 8150 subi r24,lo8(-(-1)) |
616 0380 3496 adiw r30,4 |
617 0382 87FF sbrs r24,7 |
618 0384 00C0 rjmp .L65 |
619 0386 80E4 ldi r24,lo8(64) |
620 0388 8093 0000 sts Mixer+13,r24 |
621 038c 8093 0000 sts Mixer+14,r24 |
622 0390 1092 0000 sts Mixer+15,__zero_reg__ |
623 0394 8093 0000 sts Mixer+16,r24 |
624 0398 8093 0000 sts Mixer+17,r24 |
625 039c 90EC ldi r25,lo8(-64) |
626 039e 9093 0000 sts Mixer+18,r25 |
627 03a2 1092 0000 sts Mixer+19,__zero_reg__ |
628 03a6 8093 0000 sts Mixer+20,r24 |
629 03aa 8093 0000 sts Mixer+21,r24 |
630 03ae 1092 0000 sts Mixer+22,__zero_reg__ |
631 03b2 9093 0000 sts Mixer+23,r25 |
632 03b6 9093 0000 sts Mixer+24,r25 |
633 03ba 8093 0000 sts Mixer+25,r24 |
634 03be 1092 0000 sts Mixer+26,__zero_reg__ |
635 03c2 8093 0000 sts Mixer+27,r24 |
636 03c6 9093 0000 sts Mixer+28,r25 |
637 03ca 81E0 ldi r24,lo8(1) |
638 03cc 8093 0000 sts Mixer,r24 |
639 03d0 C0E0 ldi r28,lo8(Mixer+1) |
640 03d2 D0E0 ldi r29,hi8(Mixer+1) |
641 03d4 8BE0 ldi r24,lo8(11) |
642 03d6 E0E0 ldi r30,lo8(.LC0) |
643 03d8 F0E0 ldi r31,hi8(.LC0) |
644 03da DE01 movw r26,r28 |
645 03dc 0190 ld __tmp_reg__,Z+ |
646 03de 0D92 st X+,__tmp_reg__ |
647 03e0 8A95 dec r24 |
648 03e2 01F4 brne .-8 |
649 03e4 20E0 ldi r18,lo8(pm(eeprom_write_byte)) |
650 03e6 30E0 ldi r19,hi8(pm(eeprom_write_byte)) |
651 03e8 4DE4 ldi r20,lo8(77) |
652 03ea 50E0 ldi r21,hi8(77) |
653 03ec BE01 movw r22,r28 |
654 03ee 6150 subi r22,lo8(-(-1)) |
655 03f0 7040 sbci r23,hi8(-(-1)) |
656 03f2 80E0 ldi r24,lo8(EEPromArray+1000) |
657 03f4 90E0 ldi r25,hi8(EEPromArray+1000) |
658 03f6 0E94 0000 call __eewr_block |
659 .L61: |
660 03fa 8091 0000 lds r24,RequiredMotors |
661 03fe 9927 clr r25 |
662 0400 9F93 push r25 |
663 0402 8F93 push r24 |
664 0404 DF93 push r29 |
665 0406 CF93 push r28 |
666 0408 80E0 ldi r24,lo8(__c.5) |
667 040a 90E0 ldi r25,hi8(__c.5) |
668 040c 9F93 push r25 |
669 040e 8F93 push r24 |
670 0410 1F92 push __zero_reg__ |
671 0412 0E94 0000 call _printf_P |
672 0416 EDB7 in r30,__SP_L__ |
673 0418 FEB7 in r31,__SP_H__ |
674 041a 3796 adiw r30,7 |
675 041c EDBF out __SP_L__,r30 |
676 041e 80E0 ldi r24,lo8(__c.6) |
677 0420 90E0 ldi r25,hi8(__c.6) |
678 0422 9F93 push r25 |
679 0424 8F93 push r24 |
680 0426 1F92 push __zero_reg__ |
681 0428 0E94 0000 call _printf_P |
682 042c 1092 0000 sts motorread,__zero_reg__ |
683 0430 1092 0000 sts UpdateMotor,__zero_reg__ |
684 0434 0E94 0000 call SendMotorData |
685 0438 0F90 pop __tmp_reg__ |
686 043a 0F90 pop __tmp_reg__ |
687 043c 0F90 pop __tmp_reg__ |
688 .L67: |
689 043e 8091 0000 lds r24,UpdateMotor |
690 0442 8823 tst r24 |
691 0444 01F0 breq .L67 |
692 0446 1092 0000 sts motorread,__zero_reg__ |
693 044a 80ED ldi r24,lo8(2000) |
694 044c 97E0 ldi r25,hi8(2000) |
695 044e 0E94 0000 call SetDelay |
696 0452 EC01 movw r28,r24 |
697 0454 CC24 clr r12 |
698 0456 DD24 clr r13 |
699 0458 B0E0 ldi r27,lo8(__c.7) |
700 045a AB2E mov r10,r27 |
701 045c B0E0 ldi r27,hi8(__c.7) |
702 045e BB2E mov r11,r27 |
703 .L84: |
704 0460 1092 0000 sts UpdateMotor,__zero_reg__ |
705 0464 0E94 0000 call SendMotorData |
706 .L73: |
707 0468 8091 0000 lds r24,UpdateMotor |
708 046c 8823 tst r24 |
709 046e 01F0 breq .L73 |
710 0470 F601 movw r30,r12 |
711 0472 EE0F lsl r30 |
712 0474 FF1F rol r31 |
713 0476 EE0F lsl r30 |
714 0478 FF1F rol r31 |
715 047a E050 subi r30,lo8(-(Mixer)) |
716 047c F040 sbci r31,hi8(-(Mixer)) |
717 047e 8585 ldd r24,Z+13 |
718 0480 1816 cp __zero_reg__,r24 |
719 0482 04F0 brlt .+2 |
720 0484 00C0 rjmp .L248 |
721 0486 8601 movw r16,r12 |
722 0488 0050 subi r16,lo8(-(MotorPresent)) |
723 048a 1040 sbci r17,hi8(-(MotorPresent)) |
724 048c CE01 movw r24,r28 |
725 048e 0E94 0000 call CheckDelay |
726 0492 8823 tst r24 |
727 0494 01F4 brne .L76 |
728 .L361: |
729 0496 D801 movw r26,r16 |
730 0498 8C91 ld r24,X |
731 049a 8823 tst r24 |
732 049c 01F4 brne .L76 |
733 049e 8093 0000 sts UpdateMotor,r24 |
734 04a2 0E94 0000 call SendMotorData |
735 .L79: |
736 04a6 8091 0000 lds r24,UpdateMotor |
737 04aa 8823 tst r24 |
738 04ac 01F0 breq .L79 |
739 04ae CE01 movw r24,r28 |
740 04b0 0E94 0000 call CheckDelay |
741 04b4 8823 tst r24 |
742 04b6 01F0 breq .L361 |
743 .L76: |
744 04b8 F801 movw r30,r16 |
745 04ba 8081 ld r24,Z |
746 04bc 8823 tst r24 |
747 04be 01F4 brne .L362 |
748 04c0 8601 movw r16,r12 |
749 04c2 0F5F subi r16,lo8(-(1)) |
750 04c4 1F4F sbci r17,hi8(-(1)) |
751 .L72: |
752 04c6 6801 movw r12,r16 |
753 04c8 0230 cpi r16,2 |
754 04ca 1105 cpc r17,__zero_reg__ |
755 04cc 00F0 brlo .L84 |
756 04ce CC24 clr r12 |
757 04d0 DD24 clr r13 |
758 04d2 E0E0 ldi r30,lo8(__c.8) |
759 04d4 AE2E mov r10,r30 |
760 04d6 E0E0 ldi r30,hi8(__c.8) |
761 04d8 BE2E mov r11,r30 |
762 04da C1E0 ldi r28,lo8(1) |
763 04dc 00C0 rjmp .L89 |
764 .L364: |
765 04de F601 movw r30,r12 |
766 04e0 EE0F lsl r30 |
767 04e2 FF1F rol r31 |
768 04e4 EE0F lsl r30 |
769 04e6 FF1F rol r31 |
770 04e8 E050 subi r30,lo8(-(Mixer)) |
771 04ea F040 sbci r31,hi8(-(Mixer)) |
772 04ec 8585 ldd r24,Z+13 |
773 04ee 1816 cp __zero_reg__,r24 |
774 04f0 04F4 brge .L251 |
775 04f2 8601 movw r16,r12 |
776 04f4 0F5F subi r16,lo8(-(1)) |
777 04f6 1F4F sbci r17,hi8(-(1)) |
778 04f8 1F93 push r17 |
779 04fa 0F93 push r16 |
780 04fc BF92 push r11 |
781 04fe AF92 push r10 |
782 0500 9F93 push r25 |
783 0502 0E94 0000 call _printf_P |
784 0506 C093 0000 sts ServoActive,r28 |
785 050a 0F90 pop __tmp_reg__ |
786 050c 0F90 pop __tmp_reg__ |
787 050e 0F90 pop __tmp_reg__ |
788 0510 0F90 pop __tmp_reg__ |
789 0512 0F90 pop __tmp_reg__ |
790 .L88: |
791 0514 80E0 ldi r24,lo8(MotorError) |
792 0516 90E0 ldi r25,hi8(MotorError) |
793 0518 C80E add r12,r24 |
794 051a D91E adc r13,r25 |
795 051c D601 movw r26,r12 |
796 051e 1C92 st X,__zero_reg__ |
797 0520 6801 movw r12,r16 |
798 0522 0230 cpi r16,2 |
799 0524 1105 cpc r17,__zero_reg__ |
800 0526 00F4 brsh .L363 |
801 .L89: |
802 0528 F601 movw r30,r12 |
803 052a E050 subi r30,lo8(-(MotorPresent)) |
804 052c F040 sbci r31,hi8(-(MotorPresent)) |
805 052e 9081 ld r25,Z |
806 0530 9923 tst r25 |
807 0532 01F0 breq .L364 |
808 .L251: |
809 0534 8601 movw r16,r12 |
810 0536 0F5F subi r16,lo8(-(1)) |
811 0538 1F4F sbci r17,hi8(-(1)) |
812 053a 00C0 rjmp .L88 |
813 .L362: |
814 053c 8601 movw r16,r12 |
815 053e 0F5F subi r16,lo8(-(1)) |
816 0540 1F4F sbci r17,hi8(-(1)) |
817 0542 1F93 push r17 |
818 0544 0F93 push r16 |
819 0546 BF92 push r11 |
820 0548 AF92 push r10 |
821 054a 1F92 push __zero_reg__ |
822 054c 0E94 0000 call _printf_P |
823 0550 0F90 pop __tmp_reg__ |
824 0552 0F90 pop __tmp_reg__ |
825 0554 0F90 pop __tmp_reg__ |
826 0556 0F90 pop __tmp_reg__ |
827 0558 0F90 pop __tmp_reg__ |
828 055a 00C0 rjmp .L72 |
829 .L248: |
830 055c 8601 movw r16,r12 |
831 055e 0050 subi r16,lo8(-(MotorPresent)) |
832 0560 1040 sbci r17,hi8(-(MotorPresent)) |
833 0562 00C0 rjmp .L76 |
834 .L363: |
835 0564 80E0 ldi r24,lo8(__c.9) |
836 0566 90E0 ldi r25,hi8(__c.9) |
837 0568 9F93 push r25 |
838 056a 8F93 push r24 |
839 056c 1F92 push __zero_reg__ |
840 056e 0E94 0000 call _printf_P |
841 0572 0E94 0000 call SendMotorData |
842 0576 0F90 pop __tmp_reg__ |
843 0578 0F90 pop __tmp_reg__ |
844 057a 0F90 pop __tmp_reg__ |
845 .L91: |
846 057c F999 sbic 63-0x20,1 |
847 057e 00C0 rjmp .L91 |
848 0580 80E0 ldi r24,lo8(EEPromArray+1) |
849 0582 90E0 ldi r25,hi8(EEPromArray+1) |
850 0584 92BD out (65)+1-0x20,r25 |
851 0586 81BD out 65-0x20,r24 |
852 /* #APP */ |
853 /* START EEPROM READ CRITICAL SECTION */ |
854 0588 F89A sbi 31, 0 |
855 058a 80B5 in r24, 32 |
856 /* END EEPROM READ CRITICAL SECTION */ |
857 |
858 /* #NOAPP */ |
859 058c 8035 cpi r24,lo8(80) |
860 058e 01F0 breq .+2 |
861 0590 00C0 rjmp .L365 |
862 .L157: |
863 0592 F999 sbic 63-0x20,1 |
864 0594 00C0 rjmp .L157 |
865 0596 80E0 ldi r24,lo8(EEPromArray+14) |
866 0598 90E0 ldi r25,hi8(EEPromArray+14) |
867 059a 92BD out (65)+1-0x20,r25 |
868 059c 81BD out 65-0x20,r24 |
869 /* #APP */ |
870 /* START EEPROM READ CRITICAL SECTION */ |
871 059e F89A sbi 31, 0 |
872 05a0 80B5 in r24, 32 |
873 /* END EEPROM READ CRITICAL SECTION */ |
874 |
875 /* #NOAPP */ |
876 05a2 9927 clr r25 |
877 05a4 382F mov r19,r24 |
878 05a6 2227 clr r18 |
879 .L161: |
880 05a8 F999 sbic 63-0x20,1 |
881 05aa 00C0 rjmp .L161 |
882 05ac 80E0 ldi r24,lo8(EEPromArray+15) |
883 05ae 90E0 ldi r25,hi8(EEPromArray+15) |
884 05b0 92BD out (65)+1-0x20,r25 |
885 05b2 81BD out 65-0x20,r24 |
886 /* #APP */ |
887 /* START EEPROM READ CRITICAL SECTION */ |
888 05b4 F89A sbi 31, 0 |
889 05b6 80B5 in r24, 32 |
890 /* END EEPROM READ CRITICAL SECTION */ |
891 |
892 /* #NOAPP */ |
893 05b8 B901 movw r22,r18 |
894 05ba 680F add r22,r24 |
895 05bc 711D adc r23,__zero_reg__ |
896 .L165: |
897 05be F999 sbic 63-0x20,1 |
898 05c0 00C0 rjmp .L165 |
899 05c2 80E0 ldi r24,lo8(EEPromArray+10) |
900 05c4 90E0 ldi r25,hi8(EEPromArray+10) |
901 05c6 92BD out (65)+1-0x20,r25 |
902 05c8 81BD out 65-0x20,r24 |
903 /* #APP */ |
904 /* START EEPROM READ CRITICAL SECTION */ |
905 05ca F89A sbi 31, 0 |
906 05cc 80B5 in r24, 32 |
907 /* END EEPROM READ CRITICAL SECTION */ |
908 |
909 /* #NOAPP */ |
910 05ce 9927 clr r25 |
911 05d0 382F mov r19,r24 |
912 05d2 2227 clr r18 |
913 .L169: |
914 05d4 8FB3 in r24,63-0x20 |
915 05d6 9927 clr r25 |
916 05d8 AC01 movw r20,r24 |
917 05da 4270 andi r20,lo8(2) |
918 05dc 5070 andi r21,hi8(2) |
919 05de 81FD sbrc r24,1 |
920 05e0 00C0 rjmp .L169 |
921 05e2 80E0 ldi r24,lo8(EEPromArray+11) |
922 05e4 90E0 ldi r25,hi8(EEPromArray+11) |
923 05e6 92BD out (65)+1-0x20,r25 |
924 05e8 81BD out 65-0x20,r24 |
925 /* #APP */ |
926 /* START EEPROM READ CRITICAL SECTION */ |
927 05ea F89A sbi 31, 0 |
928 05ec 80B5 in r24, 32 |
929 /* END EEPROM READ CRITICAL SECTION */ |
930 |
931 /* #NOAPP */ |
932 05ee 280F add r18,r24 |
933 05f0 311D adc r19,__zero_reg__ |
934 05f2 C901 movw r24,r18 |
935 05f4 2F5F subi r18,lo8(-1) |
936 05f6 3F4F sbci r19,hi8(-1) |
937 05f8 01F4 brne .+2 |
938 05fa 00C0 rjmp .L174 |
939 05fc 7093 0000 sts (FlugMinuten)+1,r23 |
940 0600 6093 0000 sts FlugMinuten,r22 |
941 0604 9B01 movw r18,r22 |
942 0606 6F5F subi r22,lo8(-1) |
943 0608 7F4F sbci r23,hi8(-1) |
944 060a 01F4 brne .+2 |
945 060c 00C0 rjmp .L174 |
946 060e 9093 0000 sts (FlugMinutenGesamt)+1,r25 |
947 0612 8093 0000 sts FlugMinutenGesamt,r24 |
948 .L173: |
949 0616 8091 0000 lds r24,FlugMinutenGesamt |
950 061a 9091 0000 lds r25,(FlugMinutenGesamt)+1 |
951 061e 9F93 push r25 |
952 0620 8F93 push r24 |
953 0622 3F93 push r19 |
954 0624 2F93 push r18 |
955 0626 80E0 ldi r24,lo8(__c.12) |
956 0628 90E0 ldi r25,hi8(__c.12) |
957 062a 9F93 push r25 |
958 062c 8F93 push r24 |
959 062e 1F92 push __zero_reg__ |
960 0630 0E94 0000 call _printf_P |
961 0634 8DB7 in r24,__SP_L__ |
962 0636 9EB7 in r25,__SP_H__ |
963 0638 0796 adiw r24,7 |
964 063a 8DBF out __SP_L__,r24 |
965 .L176: |
966 063c F999 sbic 63-0x20,1 |
967 063e 00C0 rjmp .L176 |
968 0640 80E0 ldi r24,lo8(EEPromArray+4) |
969 0642 90E0 ldi r25,hi8(EEPromArray+4) |
970 0644 92BD out (65)+1-0x20,r25 |
971 0646 81BD out 65-0x20,r24 |
972 /* #APP */ |
973 /* START EEPROM READ CRITICAL SECTION */ |
974 0648 F89A sbi 31, 0 |
975 064a 80B5 in r24, 32 |
976 /* END EEPROM READ CRITICAL SECTION */ |
977 |
978 /* #NOAPP */ |
979 064c 8530 cpi r24,lo8(5) |
980 064e 00F0 brlo .+2 |
981 0650 00C0 rjmp .L366 |
982 .L175: |
983 0652 0E94 0000 call GetActiveParamSetNumber |
984 0656 45E6 ldi r20,lo8(101) |
985 0658 60E0 ldi r22,lo8(EE_Parameter) |
986 065a 70E0 ldi r23,hi8(EE_Parameter) |
987 065c 0E94 0000 call ReadParameterSet |
988 0660 0E94 0000 call GetActiveParamSetNumber |
989 0664 9927 clr r25 |
990 0666 9F93 push r25 |
991 0668 8F93 push r24 |
992 066a 80E0 ldi r24,lo8(__c.14) |
993 066c 90E0 ldi r25,hi8(__c.14) |
994 066e 9F93 push r25 |
995 0670 8F93 push r24 |
996 0672 1F92 push __zero_reg__ |
997 0674 0E94 0000 call _printf_P |
998 0678 8091 0000 lds r24,EE_Parameter+8 |
999 067c 0F90 pop __tmp_reg__ |
1000 067e 0F90 pop __tmp_reg__ |
1001 0680 0F90 pop __tmp_reg__ |
1002 0682 0F90 pop __tmp_reg__ |
1003 0684 0F90 pop __tmp_reg__ |
1004 0686 80FD sbrc r24,0 |
1005 0688 00C0 rjmp .L367 |
1006 .L180: |
1007 068a 0E94 0000 call SetNeutral |
1008 068e 8091 0000 lds r24,PlatinenVersion |
1009 0692 8A30 cpi r24,lo8(10) |
1010 0694 01F4 brne .+2 |
1011 0696 00C0 rjmp .L185 |
1012 0698 8431 cpi r24,lo8(20) |
1013 069a 01F4 brne .+2 |
1014 069c 00C0 rjmp .L185 |
1015 069e 289A sbi 37-0x20,0 |
1016 .L186: |
1017 06a0 80ED ldi r24,lo8(2000) |
1018 06a2 97E0 ldi r25,hi8(2000) |
1019 06a4 9093 0000 sts (beeptime)+1,r25 |
1020 06a8 8093 0000 sts beeptime,r24 |
1021 06ac 85E5 ldi r24,lo8(85) |
1022 06ae 8093 0000 sts ExternControl,r24 |
1023 06b2 80E0 ldi r24,lo8(__c.17) |
1024 06b4 90E0 ldi r25,hi8(__c.17) |
1025 06b6 9F93 push r25 |
1026 06b8 8F93 push r24 |
1027 06ba 1F92 push __zero_reg__ |
1028 06bc 0E94 0000 call _printf_P |
1029 06c0 8091 0000 lds r24,EE_Parameter+8 |
1030 06c4 0F90 pop __tmp_reg__ |
1031 06c6 0F90 pop __tmp_reg__ |
1032 06c8 0F90 pop __tmp_reg__ |
1033 06ca 82FF sbrs r24,2 |
1034 06cc 00C0 rjmp .L187 |
1035 06ce 80E0 ldi r24,lo8(__c.18) |
1036 06d0 90E0 ldi r25,hi8(__c.18) |
1037 .L359: |
1038 06d2 9F93 push r25 |
1039 06d4 8F93 push r24 |
1040 06d6 1F92 push __zero_reg__ |
1041 06d8 0E94 0000 call _printf_P |
1042 06dc 0F90 pop __tmp_reg__ |
1043 06de 0F90 pop __tmp_reg__ |
1044 06e0 0F90 pop __tmp_reg__ |
1045 06e2 0E94 0000 call LcdClear |
1046 06e6 88E8 ldi r24,lo8(5000) |
1047 06e8 93E1 ldi r25,hi8(5000) |
1048 06ea 9093 0000 sts (I2CTimeout)+1,r25 |
1049 06ee 8093 0000 sts I2CTimeout,r24 |
1050 06f2 81E0 ldi r24,lo8(1) |
1051 06f4 8093 0000 sts WinkelOut+7,r24 |
1052 06f8 0E94 0000 call LipoDetection |
1053 06fc 80E0 ldi r24,lo8(__c.20) |
1054 06fe 90E0 ldi r25,hi8(__c.20) |
1055 0700 9F93 push r25 |
1056 0702 8F93 push r24 |
1057 0704 1F92 push __zero_reg__ |
1058 0706 0E94 0000 call _printf_P |
1059 070a 80ED ldi r24,lo8(2000) |
1060 070c 97E0 ldi r25,hi8(2000) |
1061 070e 0E94 0000 call SetDelay |
1062 0712 EC01 movw r28,r24 |
1063 0714 0F90 pop __tmp_reg__ |
1064 0716 0F90 pop __tmp_reg__ |
1065 0718 0F90 pop __tmp_reg__ |
1066 .L360: |
1067 071a 8091 0000 lds r24,UpdateMotor |
1068 071e 8823 tst r24 |
1069 0720 01F0 breq .L360 |
1070 0722 8091 0000 lds r24,AdReady |
1071 0726 8823 tst r24 |
1072 0728 01F0 breq .L360 |
1073 072a 1092 0000 sts UpdateMotor,__zero_reg__ |
1074 072e 8091 0000 lds r24,WinkelOut+6 |
1075 0732 8823 tst r24 |
1076 0734 01F4 brne .+2 |
1077 0736 00C0 rjmp .L192 |
1078 0738 0E94 0000 call CalMk3Mag |
1079 073c 0E94 0000 call SendMotorData |
1080 0740 2091 0000 lds r18,PlatinenVersion |
1081 0744 2A30 cpi r18,lo8(10) |
1082 0746 01F4 brne .+2 |
1083 0748 00C0 rjmp .L195 |
1084 .L372: |
1085 074a 2431 cpi r18,lo8(20) |
1086 074c 01F4 brne .+2 |
1087 074e 00C0 rjmp .L195 |
1088 0750 289A sbi 37-0x20,0 |
1089 .L196: |
1090 0752 8091 0000 lds r24,SenderOkay |
1091 0756 8823 tst r24 |
1092 0758 01F4 brne .+2 |
1093 075a 00C0 rjmp .L197 |
1094 075c 8091 0000 lds r24,SenderOkay |
1095 0760 8150 subi r24,lo8(-(-1)) |
1096 0762 8093 0000 sts SenderOkay,r24 |
1097 .L198: |
1098 0766 8091 0000 lds r24,I2CTimeout |
1099 076a 9091 0000 lds r25,(I2CTimeout)+1 |
1100 076e 0197 sbiw r24,1 |
1101 0770 9093 0000 sts (I2CTimeout)+1,r25 |
1102 0774 8093 0000 sts I2CTimeout,r24 |
1103 0778 8091 0000 lds r24,I2CTimeout |
1104 077c 9091 0000 lds r25,(I2CTimeout)+1 |
1105 0780 892B or r24,r25 |
1106 0782 01F0 breq .L200 |
1107 0784 8091 0000 lds r24,MissingMotor |
1108 0788 8823 tst r24 |
1109 078a 01F4 brne .+2 |
1110 078c 00C0 rjmp .L199 |
1111 .L200: |
1112 078e 8091 0000 lds r24,I2CTimeout |
1113 0792 9091 0000 lds r25,(I2CTimeout)+1 |
1114 0796 892B or r24,r25 |
1115 0798 01F4 brne .+2 |
1116 079a 00C0 rjmp .L368 |
1117 079c 8091 0000 lds r24,BeepMuster |
1118 07a0 9091 0000 lds r25,(BeepMuster)+1 |
1119 07a4 8F5F subi r24,lo8(-1) |
1120 07a6 9F4F sbci r25,hi8(-1) |
1121 07a8 01F4 brne .+2 |
1122 07aa 00C0 rjmp .L369 |
1123 .L203: |
1124 07ac 8091 0000 lds r24,UpdateMotor |
1125 07b0 8823 tst r24 |
1126 07b2 01F0 breq .L208 |
1127 07b4 8091 0000 lds r24,MotorenEin |
1128 07b8 8823 tst r24 |
1129 07ba 01F4 brne .L207 |
1130 .L208: |
1131 07bc 0E94 0000 call DatenUebertragung |
1132 .L207: |
1133 07c0 0E94 0000 call BearbeiteRxDaten |
1134 07c4 CE01 movw r24,r28 |
1135 07c6 0E94 0000 call CheckDelay |
1136 07ca 8823 tst r24 |
1137 07cc 01F0 breq .L210 |
1138 07ce 6496 adiw r28,20 |
1139 07d0 8091 0000 lds r24,PcZugriff |
1140 07d4 8823 tst r24 |
1141 07d6 01F4 brne .+2 |
1142 07d8 00C0 rjmp .L211 |
1143 07da 8150 subi r24,lo8(-(-1)) |
1144 07dc 8093 0000 sts PcZugriff,r24 |
1145 .L212: |
1146 07e0 8091 0000 lds r24,BattLowVoltageWarning |
1147 07e4 282F mov r18,r24 |
1148 07e6 3327 clr r19 |
1149 07e8 8091 0000 lds r24,UBat |
1150 07ec 9091 0000 lds r25,(UBat)+1 |
1151 07f0 8217 cp r24,r18 |
1152 07f2 9307 cpc r25,r19 |
1153 07f4 04F0 brlt .+2 |
1154 07f6 00C0 rjmp .L214 |
1155 07f8 8091 0000 lds r24,MikroKopterFlags |
1156 07fc 8062 ori r24,lo8(32) |
1157 07fe 8093 0000 sts MikroKopterFlags,r24 |
1158 0802 8091 0000 lds r24,BeepMuster |
1159 0806 9091 0000 lds r25,(BeepMuster)+1 |
1160 080a 8F5F subi r24,lo8(-1) |
1161 080c 9F4F sbci r25,hi8(-1) |
1162 080e 01F4 brne .+2 |
1163 0810 00C0 rjmp .L370 |
1164 .L216: |
1165 0812 84E0 ldi r24,lo8(4) |
1166 0814 8093 0000 sts SendSPI,r24 |
1167 0818 8091 0000 lds r24,MotorenEin |
1168 081c 8823 tst r24 |
1169 081e 01F4 brne .L217 |
1170 0820 4AEA ldi r20,lo8(1450) |
1171 0822 E42E mov r14,r20 |
1172 0824 45E0 ldi r20,hi8(1450) |
1173 0826 F42E mov r15,r20 |
1174 .L217: |
1175 0828 0894 sec |
1176 082a E11C adc r14,__zero_reg__ |
1177 082c F11C adc r15,__zero_reg__ |
1178 082e F2E7 ldi r31,lo8(2930) |
1179 0830 EF16 cp r14,r31 |
1180 0832 FBE0 ldi r31,hi8(2930) |
1181 0834 FF06 cpc r15,r31 |
1182 0836 01F0 breq .L371 |
1183 .L210: |
1184 0838 0E94 0000 call LED_Update |
1185 083c 00C0 rjmp .L360 |
1186 .L371: |
1187 083e EE24 clr r14 |
1188 0840 FF24 clr r15 |
1189 0842 8091 0000 lds r24,FlugMinuten |
1190 0846 9091 0000 lds r25,(FlugMinuten)+1 |
1191 084a 0196 adiw r24,1 |
1192 084c 9093 0000 sts (FlugMinuten)+1,r25 |
1193 0850 8093 0000 sts FlugMinuten,r24 |
1194 0854 2091 0000 lds r18,FlugMinutenGesamt |
1195 0858 3091 0000 lds r19,(FlugMinutenGesamt)+1 |
1196 085c 2F5F subi r18,lo8(-(1)) |
1197 085e 3F4F sbci r19,hi8(-(1)) |
1198 0860 3093 0000 sts (FlugMinutenGesamt)+1,r19 |
1199 0864 2093 0000 sts FlugMinutenGesamt,r18 |
1200 0868 892F mov r24,r25 |
1201 086a 9927 clr r25 |
1202 086c 282F mov r18,r24 |
1203 .L219: |
1204 086e F999 sbic 63-0x20,1 |
1205 0870 00C0 rjmp .L219 |
1206 0872 1FBA out 63-0x20,__zero_reg__ |
1207 0874 80E0 ldi r24,lo8(EEPromArray+14) |
1208 0876 90E0 ldi r25,hi8(EEPromArray+14) |
1209 0878 92BD out (65)+1-0x20,r25 |
1210 087a 81BD out 65-0x20,r24 |
1211 087c 20BD out 64-0x20,r18 |
1212 /* #APP */ |
1213 /* START EEPROM WRITE CRITICAL SECTION */ |
1214 087e 0FB6 in r0, 63 |
1215 0880 F894 cli |
1216 0882 FA9A sbi 31, 2 |
1217 0884 F99A sbi 31, 1 |
1218 0886 0FBE out 63, r0 |
1219 /* END EEPROM WRITE CRITICAL SECTION */ |
1220 /* #NOAPP */ |
1221 0888 2091 0000 lds r18,FlugMinuten |
1222 .L223: |
1223 088c F999 sbic 63-0x20,1 |
1224 088e 00C0 rjmp .L223 |
1225 0890 1FBA out 63-0x20,__zero_reg__ |
1226 0892 80E0 ldi r24,lo8(EEPromArray+15) |
1227 0894 90E0 ldi r25,hi8(EEPromArray+15) |
1228 0896 92BD out (65)+1-0x20,r25 |
1229 0898 81BD out 65-0x20,r24 |
1230 089a 20BD out 64-0x20,r18 |
1231 /* #APP */ |
1232 /* START EEPROM WRITE CRITICAL SECTION */ |
1233 089c 0FB6 in r0, 63 |
1234 089e F894 cli |
1235 08a0 FA9A sbi 31, 2 |
1236 08a2 F99A sbi 31, 1 |
1237 08a4 0FBE out 63, r0 |
1238 /* END EEPROM WRITE CRITICAL SECTION */ |
1239 /* #NOAPP */ |
1240 08a6 2091 0000 lds r18,FlugMinutenGesamt |
1241 08aa 3091 0000 lds r19,(FlugMinutenGesamt)+1 |
1242 08ae 4091 0000 lds r20,FlugMinutenGesamt+1 |
1243 .L227: |
1244 08b2 F999 sbic 63-0x20,1 |
1245 08b4 00C0 rjmp .L227 |
1246 08b6 1FBA out 63-0x20,__zero_reg__ |
1247 08b8 80E0 ldi r24,lo8(EEPromArray+10) |
1248 08ba 90E0 ldi r25,hi8(EEPromArray+10) |
1249 08bc 92BD out (65)+1-0x20,r25 |
1250 08be 81BD out 65-0x20,r24 |
1251 08c0 40BD out 64-0x20,r20 |
1252 /* #APP */ |
1253 /* START EEPROM WRITE CRITICAL SECTION */ |
1254 08c2 0FB6 in r0, 63 |
1255 08c4 F894 cli |
1256 08c6 FA9A sbi 31, 2 |
1257 08c8 F99A sbi 31, 1 |
1258 08ca 0FBE out 63, r0 |
1259 /* END EEPROM WRITE CRITICAL SECTION */ |
1260 /* #NOAPP */ |
1261 .L231: |
1262 08cc F999 sbic 63-0x20,1 |
1263 08ce 00C0 rjmp .L231 |
1264 08d0 1FBA out 63-0x20,__zero_reg__ |
1265 08d2 80E0 ldi r24,lo8(EEPromArray+11) |
1266 08d4 90E0 ldi r25,hi8(EEPromArray+11) |
1267 08d6 92BD out (65)+1-0x20,r25 |
1268 08d8 81BD out 65-0x20,r24 |
1269 08da 20BD out 64-0x20,r18 |
1270 /* #APP */ |
1271 /* START EEPROM WRITE CRITICAL SECTION */ |
1272 08dc 0FB6 in r0, 63 |
1273 08de F894 cli |
1274 08e0 FA9A sbi 31, 2 |
1275 08e2 F99A sbi 31, 1 |
1276 08e4 0FBE out 63, r0 |
1277 /* END EEPROM WRITE CRITICAL SECTION */ |
1278 /* #NOAPP */ |
1279 08e6 84E1 ldi r24,lo8(20) |
1280 08e8 90E0 ldi r25,hi8(20) |
1281 08ea 0E94 0000 call SetDelay |
1282 08ee EC01 movw r28,r24 |
1283 08f0 0E94 0000 call LED_Update |
1284 08f4 00C0 rjmp .L360 |
1285 .L197: |
1286 08f6 8091 6F00 lds r24,111 |
1287 08fa 8062 ori r24,lo8(32) |
1288 08fc 8093 6F00 sts 111,r24 |
1289 0900 00C0 rjmp .L198 |
1290 .L192: |
1291 0902 0E94 0000 call MotorRegler |
1292 0906 0E94 0000 call SendMotorData |
1293 090a 2091 0000 lds r18,PlatinenVersion |
1294 090e 2A30 cpi r18,lo8(10) |
1295 0910 01F0 breq .+2 |
1296 0912 00C0 rjmp .L372 |
1297 .L195: |
1298 0914 2898 cbi 37-0x20,0 |
1299 0916 00C0 rjmp .L196 |
1300 .L214: |
1301 0918 8091 0000 lds r24,MikroKopterFlags |
1302 091c 8F7D andi r24,lo8(-33) |
1303 091e 8093 0000 sts MikroKopterFlags,r24 |
1304 0922 00C0 rjmp .L216 |
1305 .L211: |
1306 0924 8093 0000 sts ExternControl+10,r24 |
1307 0928 1092 0000 sts (ExternStickNick)+1,__zero_reg__ |
1308 092c 1092 0000 sts ExternStickNick,__zero_reg__ |
1309 0930 1092 0000 sts (ExternStickRoll)+1,__zero_reg__ |
1310 0934 1092 0000 sts ExternStickRoll,__zero_reg__ |
1311 0938 1092 0000 sts (ExternStickGier)+1,__zero_reg__ |
1312 093c 1092 0000 sts ExternStickGier,__zero_reg__ |
1313 0940 8091 0000 lds r24,BeepMuster |
1314 0944 9091 0000 lds r25,(BeepMuster)+1 |
1315 0948 8F5F subi r24,lo8(-1) |
1316 094a 9F4F sbci r25,hi8(-1) |
1317 094c 01F0 breq .+2 |
1318 094e 00C0 rjmp .L212 |
1319 0950 8091 0000 lds r24,SenderOkay |
1320 0954 8823 tst r24 |
1321 0956 01F0 breq .+2 |
1322 0958 00C0 rjmp .L212 |
1323 095a 88E9 ldi r24,lo8(15000) |
1324 095c 9AE3 ldi r25,hi8(15000) |
1325 095e 9093 0000 sts (beeptime)+1,r25 |
1326 0962 8093 0000 sts beeptime,r24 |
1327 0966 80E0 ldi r24,lo8(3072) |
1328 0968 9CE0 ldi r25,hi8(3072) |
1329 096a 9093 0000 sts (BeepMuster)+1,r25 |
1330 096e 8093 0000 sts BeepMuster,r24 |
1331 0972 00C0 rjmp .L212 |
1332 .L199: |
1333 0974 2A30 cpi r18,lo8(10) |
1334 0976 01F0 breq .L205 |
1335 0978 2431 cpi r18,lo8(20) |
1336 097a 01F0 breq .L205 |
1337 097c 289A sbi 37-0x20,0 |
1338 097e 00C0 rjmp .L203 |
1339 .L368: |
1340 0980 0E94 0000 call i2c_reset |
1341 0984 85E0 ldi r24,lo8(5) |
1342 0986 90E0 ldi r25,hi8(5) |
1343 0988 9093 0000 sts (I2CTimeout)+1,r25 |
1344 098c 8093 0000 sts I2CTimeout,r24 |
1345 0990 8091 0000 lds r24,DebugOut+58 |
1346 0994 9091 0000 lds r25,(DebugOut+58)+1 |
1347 0998 0196 adiw r24,1 |
1348 099a 9093 0000 sts (DebugOut+58)+1,r25 |
1349 099e 8093 0000 sts DebugOut+58,r24 |
1350 09a2 8091 0000 lds r24,BeepMuster |
1351 09a6 9091 0000 lds r25,(BeepMuster)+1 |
1352 09aa 8F5F subi r24,lo8(-1) |
1353 09ac 9F4F sbci r25,hi8(-1) |
1354 09ae 01F0 breq .+2 |
1355 09b0 00C0 rjmp .L203 |
1356 .L369: |
1357 09b2 8091 0000 lds r24,MotorenEin |
1358 09b6 8823 tst r24 |
1359 09b8 01F4 brne .+2 |
1360 09ba 00C0 rjmp .L203 |
1361 09bc 80E1 ldi r24,lo8(10000) |
1362 09be 97E2 ldi r25,hi8(10000) |
1363 09c0 9093 0000 sts (beeptime)+1,r25 |
1364 09c4 8093 0000 sts beeptime,r24 |
1365 09c8 80E8 ldi r24,lo8(128) |
1366 09ca 90E0 ldi r25,hi8(128) |
1367 09cc 9093 0000 sts (BeepMuster)+1,r25 |
1368 09d0 8093 0000 sts BeepMuster,r24 |
1369 09d4 00C0 rjmp .L203 |
1370 .L205: |
1371 09d6 2898 cbi 37-0x20,0 |
1372 09d8 00C0 rjmp .L203 |
1373 .L370: |
1374 09da 80E7 ldi r24,lo8(6000) |
1375 09dc 97E1 ldi r25,hi8(6000) |
1376 09de 9093 0000 sts (beeptime)+1,r25 |
1377 09e2 8093 0000 sts beeptime,r24 |
1378 09e6 80E0 ldi r24,lo8(768) |
1379 09e8 93E0 ldi r25,hi8(768) |
1380 09ea 9093 0000 sts (BeepMuster)+1,r25 |
1381 09ee 8093 0000 sts BeepMuster,r24 |
1382 09f2 00C0 rjmp .L216 |
1383 .L365: |
1384 09f4 0E94 0000 call DefaultKonstanten1 |
1385 09f8 80E0 ldi r24,lo8(__c.10) |
1386 09fa 90E0 ldi r25,hi8(__c.10) |
1387 09fc 9F93 push r25 |
1388 09fe 8F93 push r24 |
1389 0a00 1F92 push __zero_reg__ |
1390 0a02 0E94 0000 call _printf_P |
1391 0a06 C1E0 ldi r28,lo8(1) |
1392 0a08 0F90 pop __tmp_reg__ |
1393 0a0a 0F90 pop __tmp_reg__ |
1394 0a0c 0F90 pop __tmp_reg__ |
1395 0a0e 00E0 ldi r16,lo8(__c.11) |
1396 0a10 10E0 ldi r17,hi8(__c.11) |
1397 .L152: |
1398 0a12 C230 cpi r28,lo8(2) |
1399 0a14 01F4 brne .+2 |
1400 0a16 00C0 rjmp .L358 |
1401 0a18 C330 cpi r28,lo8(3) |
1402 0a1a 01F4 brne .+2 |
1403 0a1c 00C0 rjmp .L373 |
1404 0a1e C430 cpi r28,lo8(4) |
1405 0a20 00F0 brlo .+2 |
1406 0a22 00C0 rjmp .L358 |
1407 .L102: |
1408 0a24 F999 sbic 63-0x20,1 |
1409 0a26 00C0 rjmp .L102 |
1410 0a28 80E0 ldi r24,lo8(EEPromArray+80) |
1411 0a2a 90E0 ldi r25,hi8(EEPromArray+80) |
1412 0a2c 92BD out (65)+1-0x20,r25 |
1413 0a2e 81BD out 65-0x20,r24 |
1414 /* #APP */ |
1415 /* START EEPROM READ CRITICAL SECTION */ |
1416 0a30 F89A sbi 31, 0 |
1417 0a32 80B5 in r24, 32 |
1418 /* END EEPROM READ CRITICAL SECTION */ |
1419 |
1420 /* #NOAPP */ |
1421 0a34 8C30 cpi r24,lo8(12) |
1422 0a36 00F0 brlo .+2 |
1423 0a38 00C0 rjmp .L101 |
1424 .L106: |
1425 0a3a F999 sbic 63-0x20,1 |
1426 0a3c 00C0 rjmp .L106 |
1427 0a3e 80E0 ldi r24,lo8(EEPromArray+81) |
1428 0a40 90E0 ldi r25,hi8(EEPromArray+81) |
1429 0a42 92BD out (65)+1-0x20,r25 |
1430 0a44 81BD out 65-0x20,r24 |
1431 /* #APP */ |
1432 /* START EEPROM READ CRITICAL SECTION */ |
1433 0a46 F89A sbi 31, 0 |
1434 0a48 80B5 in r24, 32 |
1435 /* END EEPROM READ CRITICAL SECTION */ |
1436 |
1437 /* #NOAPP */ |
1438 0a4a 8C30 cpi r24,lo8(12) |
1439 0a4c 00F0 brlo .+2 |
1440 0a4e 00C0 rjmp .L101 |
1441 .L110: |
1442 0a50 F999 sbic 63-0x20,1 |
1443 0a52 00C0 rjmp .L110 |
1444 0a54 80E0 ldi r24,lo8(EEPromArray+82) |
1445 0a56 90E0 ldi r25,hi8(EEPromArray+82) |
1446 0a58 92BD out (65)+1-0x20,r25 |
1447 0a5a 81BD out 65-0x20,r24 |
1448 /* #APP */ |
1449 /* START EEPROM READ CRITICAL SECTION */ |
1450 0a5c F89A sbi 31, 0 |
1451 0a5e 80B5 in r24, 32 |
1452 /* END EEPROM READ CRITICAL SECTION */ |
1453 |
1454 /* #NOAPP */ |
1455 0a60 8C30 cpi r24,lo8(12) |
1456 0a62 00F0 brlo .+2 |
1457 0a64 00C0 rjmp .L101 |
1458 .L114: |
1459 0a66 F999 sbic 63-0x20,1 |
1460 0a68 00C0 rjmp .L114 |
1461 0a6a 80E0 ldi r24,lo8(EEPromArray+83) |
1462 0a6c 90E0 ldi r25,hi8(EEPromArray+83) |
1463 0a6e 92BD out (65)+1-0x20,r25 |
1464 0a70 81BD out 65-0x20,r24 |
1465 /* #APP */ |
1466 /* START EEPROM READ CRITICAL SECTION */ |
1467 0a72 F89A sbi 31, 0 |
1468 0a74 80B5 in r24, 32 |
1469 /* END EEPROM READ CRITICAL SECTION */ |
1470 |
1471 /* #NOAPP */ |
1472 0a76 8C30 cpi r24,lo8(12) |
1473 0a78 00F0 brlo .+2 |
1474 0a7a 00C0 rjmp .L101 |
1475 .L118: |
1476 0a7c F999 sbic 63-0x20,1 |
1477 0a7e 00C0 rjmp .L118 |
1478 0a80 80E0 ldi r24,lo8(EEPromArray+80) |
1479 0a82 90E0 ldi r25,hi8(EEPromArray+80) |
1480 0a84 92BD out (65)+1-0x20,r25 |
1481 0a86 81BD out 65-0x20,r24 |
1482 /* #APP */ |
1483 /* START EEPROM READ CRITICAL SECTION */ |
1484 0a88 F89A sbi 31, 0 |
1485 0a8a 80B5 in r24, 32 |
1486 /* END EEPROM READ CRITICAL SECTION */ |
1487 |
1488 /* #NOAPP */ |
1489 0a8c 8093 0000 sts EE_Parameter,r24 |
1490 .L122: |
1491 0a90 F999 sbic 63-0x20,1 |
1492 0a92 00C0 rjmp .L122 |
1493 0a94 80E0 ldi r24,lo8(EEPromArray+81) |
1494 0a96 90E0 ldi r25,hi8(EEPromArray+81) |
1495 0a98 92BD out (65)+1-0x20,r25 |
1496 0a9a 81BD out 65-0x20,r24 |
1497 /* #APP */ |
1498 /* START EEPROM READ CRITICAL SECTION */ |
1499 0a9c F89A sbi 31, 0 |
1500 0a9e 80B5 in r24, 32 |
1501 /* END EEPROM READ CRITICAL SECTION */ |
1502 |
1503 /* #NOAPP */ |
1504 0aa0 8093 0000 sts EE_Parameter+1,r24 |
1505 .L126: |
1506 0aa4 F999 sbic 63-0x20,1 |
1507 0aa6 00C0 rjmp .L126 |
1508 0aa8 80E0 ldi r24,lo8(EEPromArray+82) |
1509 0aaa 90E0 ldi r25,hi8(EEPromArray+82) |
1510 0aac 92BD out (65)+1-0x20,r25 |
1511 0aae 81BD out 65-0x20,r24 |
1512 /* #APP */ |
1513 /* START EEPROM READ CRITICAL SECTION */ |
1514 0ab0 F89A sbi 31, 0 |
1515 0ab2 80B5 in r24, 32 |
1516 /* END EEPROM READ CRITICAL SECTION */ |
1517 |
1518 /* #NOAPP */ |
1519 0ab4 8093 0000 sts EE_Parameter+2,r24 |
1520 .L130: |
1521 0ab8 F999 sbic 63-0x20,1 |
1522 0aba 00C0 rjmp .L130 |
1523 0abc 80E0 ldi r24,lo8(EEPromArray+83) |
1524 0abe 90E0 ldi r25,hi8(EEPromArray+83) |
1525 0ac0 92BD out (65)+1-0x20,r25 |
1526 0ac2 81BD out 65-0x20,r24 |
1527 /* #APP */ |
1528 /* START EEPROM READ CRITICAL SECTION */ |
1529 0ac4 F89A sbi 31, 0 |
1530 0ac6 80B5 in r24, 32 |
1531 /* END EEPROM READ CRITICAL SECTION */ |
1532 |
1533 /* #NOAPP */ |
1534 0ac8 8093 0000 sts EE_Parameter+3,r24 |
1535 .L134: |
1536 0acc F999 sbic 63-0x20,1 |
1537 0ace 00C0 rjmp .L134 |
1538 0ad0 80E0 ldi r24,lo8(EEPromArray+84) |
1539 0ad2 90E0 ldi r25,hi8(EEPromArray+84) |
1540 0ad4 92BD out (65)+1-0x20,r25 |
1541 0ad6 81BD out 65-0x20,r24 |
1542 /* #APP */ |
1543 /* START EEPROM READ CRITICAL SECTION */ |
1544 0ad8 F89A sbi 31, 0 |
1545 0ada 80B5 in r24, 32 |
1546 /* END EEPROM READ CRITICAL SECTION */ |
1547 |
1548 /* #NOAPP */ |
1549 0adc 8093 0000 sts EE_Parameter+4,r24 |
1550 .L138: |
1551 0ae0 F999 sbic 63-0x20,1 |
1552 0ae2 00C0 rjmp .L138 |
1553 0ae4 80E0 ldi r24,lo8(EEPromArray+85) |
1554 0ae6 90E0 ldi r25,hi8(EEPromArray+85) |
1555 0ae8 92BD out (65)+1-0x20,r25 |
1556 0aea 81BD out 65-0x20,r24 |
1557 /* #APP */ |
1558 /* START EEPROM READ CRITICAL SECTION */ |
1559 0aec F89A sbi 31, 0 |
1560 0aee 80B5 in r24, 32 |
1561 /* END EEPROM READ CRITICAL SECTION */ |
1562 |
1563 /* #NOAPP */ |
1564 0af0 8093 0000 sts EE_Parameter+5,r24 |
1565 .L142: |
1566 0af4 F999 sbic 63-0x20,1 |
1567 0af6 00C0 rjmp .L142 |
1568 0af8 80E0 ldi r24,lo8(EEPromArray+86) |
1569 0afa 90E0 ldi r25,hi8(EEPromArray+86) |
1570 0afc 92BD out (65)+1-0x20,r25 |
1571 0afe 81BD out 65-0x20,r24 |
1572 /* #APP */ |
1573 /* START EEPROM READ CRITICAL SECTION */ |
1574 0b00 F89A sbi 31, 0 |
1575 0b02 80B5 in r24, 32 |
1576 /* END EEPROM READ CRITICAL SECTION */ |
1577 |
1578 /* #NOAPP */ |
1579 0b04 8093 0000 sts EE_Parameter+6,r24 |
1580 .L146: |
1581 0b08 F999 sbic 63-0x20,1 |
1582 0b0a 00C0 rjmp .L146 |
1583 0b0c 80E0 ldi r24,lo8(EEPromArray+87) |
1584 0b0e 90E0 ldi r25,hi8(EEPromArray+87) |
1585 0b10 92BD out (65)+1-0x20,r25 |
1586 0b12 81BD out 65-0x20,r24 |
1587 /* #APP */ |
1588 /* START EEPROM READ CRITICAL SECTION */ |
1589 0b14 F89A sbi 31, 0 |
1590 0b16 80B5 in r24, 32 |
1591 /* END EEPROM READ CRITICAL SECTION */ |
1592 |
1593 /* #NOAPP */ |
1594 0b18 8093 0000 sts EE_Parameter+7,r24 |
1595 0b1c C130 cpi r28,lo8(1) |
1596 0b1e 01F4 brne .L151 |
1597 0b20 1F93 push r17 |
1598 0b22 0F93 push r16 |
1599 0b24 1F92 push __zero_reg__ |
1600 0b26 0E94 0000 call _printf_P |
1601 0b2a 0F90 pop __tmp_reg__ |
1602 0b2c 0F90 pop __tmp_reg__ |
1603 0b2e 0F90 pop __tmp_reg__ |
1604 0b30 00C0 rjmp .L151 |
1605 .L101: |
1606 0b32 0E94 0000 call DefaultStickMapping |
1607 .L151: |
1608 0b36 45E6 ldi r20,lo8(101) |
1609 0b38 60E0 ldi r22,lo8(EE_Parameter) |
1610 0b3a 70E0 ldi r23,hi8(EE_Parameter) |
1611 0b3c 8C2F mov r24,r28 |
1612 0b3e 0E94 0000 call WriteParameterSet |
1613 0b42 CF5F subi r28,lo8(-(1)) |
1614 0b44 C630 cpi r28,lo8(6) |
1615 0b46 00F4 brsh .+2 |
1616 0b48 00C0 rjmp .L152 |
1617 0b4a 83E0 ldi r24,lo8(3) |
1618 0b4c 0E94 0000 call SetActiveParamSetNumber |
1619 .L153: |
1620 0b50 F999 sbic 63-0x20,1 |
1621 0b52 00C0 rjmp .L153 |
1622 0b54 1FBA out 63-0x20,__zero_reg__ |
1623 0b56 80E0 ldi r24,lo8(EEPromArray+1) |
1624 0b58 90E0 ldi r25,hi8(EEPromArray+1) |
1625 0b5a 92BD out (65)+1-0x20,r25 |
1626 0b5c 81BD out 65-0x20,r24 |
1627 0b5e 80E5 ldi r24,lo8(80) |
1628 0b60 80BD out 64-0x20,r24 |
1629 /* #APP */ |
1630 /* START EEPROM WRITE CRITICAL SECTION */ |
1631 0b62 0FB6 in r0, 63 |
1632 0b64 F894 cli |
1633 0b66 FA9A sbi 31, 2 |
1634 0b68 F99A sbi 31, 1 |
1635 0b6a 0FBE out 63, r0 |
1636 /* END EEPROM WRITE CRITICAL SECTION */ |
1637 /* #NOAPP */ |
1638 0b6c 00C0 rjmp .L157 |
1639 .L358: |
1640 0b6e 0E94 0000 call DefaultKonstanten2 |
1641 0b72 00C0 rjmp .L102 |
1642 .L373: |
1643 0b74 0E94 0000 call DefaultKonstanten3 |
1644 0b78 00C0 rjmp .L102 |
1645 .L174: |
1646 0b7a 5093 0000 sts (FlugMinuten)+1,r21 |
1647 0b7e 4093 0000 sts FlugMinuten,r20 |
1648 0b82 5093 0000 sts (FlugMinutenGesamt)+1,r21 |
1649 0b86 4093 0000 sts FlugMinutenGesamt,r20 |
1650 0b8a 9A01 movw r18,r20 |
1651 0b8c 00C0 rjmp .L173 |
1652 .L187: |
1653 0b8e 80E0 ldi r24,lo8(__c.19) |
1654 0b90 90E0 ldi r25,hi8(__c.19) |
1655 0b92 00C0 rjmp .L359 |
1656 .L367: |
1657 0b94 80E0 ldi r24,lo8(__c.15) |
1658 0b96 90E0 ldi r25,hi8(__c.15) |
1659 0b98 9F93 push r25 |
1660 0b9a 8F93 push r24 |
1661 0b9c 1F92 push __zero_reg__ |
1662 0b9e 0E94 0000 call _printf_P |
1663 0ba2 88EE ldi r24,lo8(1000) |
1664 0ba4 93E0 ldi r25,hi8(1000) |
1665 0ba6 0E94 0000 call SetDelay |
1666 0baa EC01 movw r28,r24 |
1667 0bac 0E94 0000 call SucheLuftruckOffset |
1668 0bb0 0F90 pop __tmp_reg__ |
1669 0bb2 0F90 pop __tmp_reg__ |
1670 0bb4 0F90 pop __tmp_reg__ |
1671 .L181: |
1672 0bb6 CE01 movw r24,r28 |
1673 0bb8 0E94 0000 call CheckDelay |
1674 0bbc 8823 tst r24 |
1675 0bbe 01F0 breq .L181 |
1676 0bc0 80E0 ldi r24,lo8(__c.16) |
1677 0bc2 90E0 ldi r25,hi8(__c.16) |
1678 0bc4 9F93 push r25 |
1679 0bc6 8F93 push r24 |
1680 0bc8 1F92 push __zero_reg__ |
1681 0bca 0E94 0000 call _printf_P |
1682 0bce 0F90 pop __tmp_reg__ |
1683 0bd0 0F90 pop __tmp_reg__ |
1684 0bd2 0F90 pop __tmp_reg__ |
1685 0bd4 00C0 rjmp .L180 |
1686 .L366: |
1687 0bd6 80E0 ldi r24,lo8(__c.13) |
1688 0bd8 90E0 ldi r25,hi8(__c.13) |
1689 0bda 9F93 push r25 |
1690 0bdc 8F93 push r24 |
1691 0bde 1F92 push __zero_reg__ |
1692 0be0 0E94 0000 call _printf_P |
1693 0be4 0F90 pop __tmp_reg__ |
1694 0be6 0F90 pop __tmp_reg__ |
1695 0be8 0F90 pop __tmp_reg__ |
1696 0bea 00C0 rjmp .L175 |
1697 .L185: |
1698 0bec 2898 cbi 37-0x20,0 |
1699 0bee 00C0 rjmp .L186 |
1700 /* epilogue: frame size=0 */ |
1701 /* epilogue: noreturn */ |
1702 /* epilogue end (size=0) */ |
1703 /* function main size 1528 (1524) */ |
1705 .comm Mixer,77,1 |
1706 /* File "main.c": code 1759 = 0x06df (1745), prologues 7, epilogues 7 */ |
DEFINED SYMBOLS |
*ABS*:00000000 main.c |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:3 *ABS*:0000003f __SREG__ |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:4 *ABS*:0000003e __SP_H__ |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:5 *ABS*:0000003d __SP_L__ |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:15 .bss:00000000 FlugMinutenGesamt |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:21 .bss:00000002 FlugMinuten |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:27 .data:00000000 BattLowVoltageWarning |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:32 .data:00000001 SendVersionToNavi |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:37 .data:00000002 PlatinenVersion |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:41 .text:00000000 eeprom_read_byte |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:63 .text:00000010 eeprom_write_byte |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:90 .data:00000003 stick.25 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:95 .text:00000028 CalMk3Mag |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:155 .progmem.data:00000000 __c.21 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:159 .progmem.data:00000008 __c.22 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:163 .progmem.data:00000013 __c.23 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:167 .progmem.data:0000001e __c.24 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:172 .text:0000009a LipoDetection |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:306 .progmem.data:00000038 __c.0 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:310 .progmem.data:0000005e __c.1 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:314 .progmem.data:00000092 __c.2 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:318 .progmem.data:000000a9 __c.3 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:322 .progmem.data:000000cf __c.4 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:326 .progmem.data:000000ed __c.5 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:330 .progmem.data:0000010e __c.6 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:334 .progmem.data:0000011f __c.7 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:338 .progmem.data:00000123 __c.8 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:342 .progmem.data:00000141 __c.9 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:346 .progmem.data:00000167 __c.10 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:350 .progmem.data:00000176 __c.11 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:354 .progmem.data:000001ae __c.12 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:358 .progmem.data:000001d1 __c.13 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:362 .progmem.data:000001ef __c.14 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:366 .progmem.data:00000207 __c.15 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:370 .progmem.data:00000227 __c.16 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:374 .progmem.data:0000022c __c.17 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:378 .progmem.data:00000238 __c.18 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:382 .progmem.data:00000244 __c.19 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:386 .progmem.data:00000258 __c.20 |
C:\Users\Bernd\AppData\Local\Temp/ccjJE4Oj.s:395 .text:000001a8 main |
*COM*:0000004d Mixer |
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
EE_Parameter |
PPM_in |
WinkelOut |
beeptime |
Piep |
DebugOut |
_printf_P |
SetDelay |
UBat |
__udivmodqi4 |
CheckDelay |
__stack |
StickGier |
StickRoll |
StickNick |
GIER_GRAD_FAKTOR |
Timer_Init |
TIMER2_Init |
UART_Init |
rc_sum_init |
ADC_Init |
i2c_init |
ReadParameterSet |
EEPromArray |
RequiredMotors |
__eerd_block |
__eewr_block |
motorread |
UpdateMotor |
SendMotorData |
MotorPresent |
ServoActive |
MotorError |
GetActiveParamSetNumber |
SetNeutral |
ExternControl |
LcdClear |
I2CTimeout |
AdReady |
SenderOkay |
MissingMotor |
BeepMuster |
MotorenEin |
DatenUebertragung |
BearbeiteRxDaten |
PcZugriff |
MikroKopterFlags |
SendSPI |
LED_Update |
MotorRegler |
ExternStickNick |
ExternStickRoll |
ExternStickGier |
i2c_reset |
DefaultKonstanten1 |
DefaultStickMapping |
WriteParameterSet |
SetActiveParamSetNumber |
DefaultKonstanten2 |
DefaultKonstanten3 |
SucheLuftruckOffset |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/makefile |
---|
0,0 → 1,462 |
#-------------------------------------------------------------------- |
# MCU name |
MCU = atmega644 |
F_CPU = 20000000 |
#------------------------------------------------------------------- |
VERSION_MAJOR = 0 |
VERSION_MINOR = 76 |
VERSION_PATCH = 6 |
VERSION_SERIAL_MAJOR = 10 # Serial Protocol |
VERSION_SERIAL_MINOR = 1 # Serial Protocol |
NC_SPI_COMPATIBLE = 10 # Navi-Kompatibilität |
#------------------------------------------------------------------- |
# get SVN revision |
# REV := $(shell sh -c "cat .svn/entries | sed -n '4p'") |
ifeq ($(MCU), atmega644) |
FUSE_SETTINGS = -u -U lfuse:w:0xff:m -U hfuse:w:0xdf:m |
#FUSE_SETTINGS = -U lfuse:w:0xff:m -U hfuse:w:0xdf:m |
# -u bei neuen Controllern wieder einspielen |
HEX_NAME = MEGA644 |
endif |
ifeq ($(MCU), atmega644p) |
FUSE_SETTINGS = -u -U lfuse:w:0xff:m -U hfuse:w:0xdf:m |
HEX_NAME = MEGA644 |
endif |
ifeq ($(F_CPU), 20000000) |
QUARZ = 20MHZ |
endif |
# Output format. (can be srec, ihex, binary) |
FORMAT = ihex |
# Target file name (without extension). |
ifeq ($(VERSION_PATCH), 0) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)a_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 1) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)b_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 2) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)c_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 3) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)d_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 4) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)e_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 5) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)f_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 6) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)g_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 7) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)h_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 8) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)i_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 9) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)j_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 10) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)k_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 11) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)L_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 12) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)m_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 13) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)n_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 14) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)o_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 15) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)p_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 16) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)q_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 17) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)r_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 18) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)s_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 19) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)t_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 20) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)u_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 21) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)v_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 22) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)w_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 23) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)x_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 24) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)y_SVN$(REV) |
endif |
ifeq ($(VERSION_PATCH), 25) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)z_SVN$(REV) |
endif |
# Optimization level, can be [0, 1, 2, 3, s]. 0 turns off optimization. |
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.) |
OPT = 2 |
########################################################################################################## |
# List C source files here. (C dependencies are automatically generated.) |
SRC = main.c analog.c fc.c led.c menu.c printf_P.c |
SRC += twimaster.c rc.c mymath.c timer0.c uart.c |
########################################################################################################## |
# List Assembler source files here. |
# Make them always end in a capital .S. Files ending in a lowercase .s |
# will not be considered source files but generated files (assembler |
# output from the compiler), and will be deleted upon "make clean"! |
# Even though the DOS/Win* filesystem matches both .s and .S the same, |
# it will preserve the spelling of the filenames, and gcc itself does |
# care about how the name is spelled on its command-line. |
ASRC = isqrt.S |
# List any extra directories to look for include files here. |
# Each directory must be seperated by a space. |
EXTRAINCDIRS = |
# Optional compiler flags. |
# -g: generate debugging information (for GDB, or for COFF conversion) |
# -O*: optimization level |
# -f...: tuning, see gcc manual and avr-libc documentation |
# -Wall...: warning level |
# -Wa,...: tell GCC to pass this to the assembler. |
# -ahlms: create assembler listing |
CFLAGS = -O$(OPT) -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=$(<:%.c=%.lst) $(patsubst %,-I%,$(EXTRAINCDIRS)) |
# Set a "language standard" compiler flag. |
# Unremark just one line below to set the language standard to use. |
# gnu99 = C99 + GNU extensions. See GCC manual for more information. |
#CFLAGS += -std=c89 |
#CFLAGS += -std=gnu89 |
#CFLAGS += -std=c99 |
CFLAGS += -std=gnu99 |
# shrink code size - das ist ist neu seit V0.78b |
CFLAGS += -mtiny-stack |
#CFLAGS += -fno-inline-functions |
# das ist ist neu seit V0.86 |
CFLAGS += -mcall-prologues |
# die Option -DF ist neu seit 0.78b |
CFLAGS += -DF_CPU=$(F_CPU) -DVERSION_MAJOR=$(VERSION_MAJOR) -DVERSION_MINOR=$(VERSION_MINOR) -DVERSION_PATCH=$(VERSION_PATCH) -DVERSION_SERIAL_MAJOR=$(VERSION_SERIAL_MAJOR) -DVERSION_SERIAL_MINOR=$(VERSION_SERIAL_MINOR) -DNC_SPI_COMPATIBLE=$(NC_SPI_COMPATIBLE) |
# Optional assembler flags. |
# -Wa,...: tell GCC to pass this to the assembler. |
# -ahlms: create listing |
# -gstabs: have the assembler create line number information; note that |
# for use in COFF files, additional information about filenames |
# and function names needs to be present in the assembler source |
# files -- see avr-libc docs [FIXME: not yet described there] |
ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs |
# Optional linker flags. |
# -Wl,...: tell GCC to pass this to linker. |
# -Map: create map file |
# --cref: add cross reference to map file |
LDFLAGS = -Wl,-Map=$(TARGET).map,--cref |
# Additional libraries |
# Minimalistic printf version |
#LDFLAGS += -Wl,-u,vfprintf -lprintf_min |
# Floating point printf version (requires -lm below) |
#LDFLAGS += -Wl,-u,vfprintf -lprintf_flt |
# -lm = math library |
LDFLAGS += -lm |
# LDFLAGS += -T./linkerfile/avr5.x |
# Programming support using avrdude. Settings and variables. |
# Programming hardware: alf avr910 avrisp bascom bsd |
# dt006 pavr picoweb pony-stk200 sp12 stk200 stk500 |
# |
# Type: avrdude -c ? |
# to get a full listing. |
# |
# AVRDUDE_PROGRAMMER = dt006 |
# AVRDUDE_PROGRAMMER = stk200 |
# AVRDUDE_PROGRAMMER = ponyser |
AVRDUDE_PROGRAMMER = avrispv2 |
#AVRDUDE_PORT = com1 # programmer connected to serial device |
#AVRDUDE_PORT = lpt1 # programmer connected to parallel port |
AVRDUDE_PORT = usb # programmer connected to USB |
#AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex |
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex $(FUSE_SETTINGS) |
#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep |
#avrdude -c avrispv2 -P usb -p m32 -U flash:w:blink.hex |
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) |
# Uncomment the following if you want avrdude's erase cycle counter. |
# Note that this counter needs to be initialized first using -Yn, |
# see avrdude manual. |
#AVRDUDE_ERASE += -y |
# Uncomment the following if you do /not/ wish a verification to be |
# performed after programming the device. |
AVRDUDE_FLAGS += -V |
# Increase verbosity level. Please use this when submitting bug |
# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude> |
# to submit bug reports. |
#AVRDUDE_FLAGS += -v -v |
# --------------------------------------------------------------------------- |
# Define directories, if needed. |
DIRAVR = c:/winavr |
DIRAVRBIN = $(DIRAVR)/bin |
DIRAVRUTILS = $(DIRAVR)/utils/bin |
DIRINC = . |
DIRLIB = $(DIRAVR)/avr/lib |
# Define programs and commands. |
SHELL = sh |
CC = avr-gcc |
OBJCOPY = avr-objcopy |
OBJDUMP = avr-objdump |
SIZE = avr-size |
# Programming support using avrdude. |
AVRDUDE = avrdude |
REMOVE = rm -f |
COPY = cp |
HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex |
ELFSIZE = $(SIZE) -A $(TARGET).elf |
LIMITS = $(SIZE) --mcu=$(MCU) -C $(TARGET).elf |
# Define Messages |
# English |
MSG_ERRORS_NONE = Errors: none |
MSG_BEGIN = -------- begin -------- |
MSG_END = -------- end -------- |
MSG_SIZE_BEFORE = Size before: |
MSG_SIZE_AFTER = Size after: |
MSG_COFF = Converting to AVR COFF: |
MSG_EXTENDED_COFF = Converting to AVR Extended COFF: |
MSG_FLASH = Creating load file for Flash: |
MSG_EEPROM = Creating load file for EEPROM: |
MSG_EXTENDED_LISTING = Creating Extended Listing: |
MSG_SYMBOL_TABLE = Creating Symbol Table: |
MSG_LINKING = Linking: |
MSG_COMPILING = Compiling: |
MSG_ASSEMBLING = Assembling: |
MSG_CLEANING = Cleaning project: |
# Define all object files. |
OBJ = $(SRC:.c=.o) $(ASRC:.S=.o) |
# Define all listing files. |
LST = $(ASRC:.S=.lst) $(SRC:.c=.lst) |
# Combine all necessary flags and optional flags. |
# Add target processor to flags. |
#ALL_CFLAGS = -mmcu=$(MCU) -DF_CPU=$(F_CPU) -I. $(CFLAGS) |
ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) |
ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS) |
# Default target. |
all: begin gccversion sizebefore $(TARGET).elf $(TARGET).hex sizeafter finished end |
# Eye candy. |
# AVR Studio 3.x does not check make's exit code but relies on |
# the following magic strings to be generated by the compile job. |
begin: |
@echo |
@echo $(MSG_BEGIN) |
finished: |
@echo $(MSG_ERRORS_NONE) |
end: |
@echo $(MSG_END) |
@echo |
# Display size of file |
sizebefore: |
@if [ -f $(TARGET).elf ]; then echo Size before:; $(ELFSIZE); $(HEXSIZE); echo; fi |
sizeafter: |
@if [ -f $(TARGET).elf ]; then echo Size after:; $(ELFSIZE); $(HEXSIZE); echo; fi |
# Display compiler version information. |
gccversion : |
@$(CC) --version |
# Convert ELF to COFF for use in debugging / simulating in |
# AVR Studio or VMLAB. |
COFFCONVERT=$(OBJCOPY) --debugging \ |
--change-section-address .data-0x800000 \ |
--change-section-address .bss-0x800000 \ |
--change-section-address .noinit-0x800000 \ |
--change-section-address .eeprom-0x810000 |
coff: $(TARGET).elf |
@echo |
@echo $(MSG_COFF) $(TARGET).cof |
$(COFFCONVERT) -O coff-avr $< $(TARGET).cof |
extcoff: $(TARGET).elf |
@echo |
@echo $(MSG_EXTENDED_COFF) $(TARGET).cof |
$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof |
# Program the device. |
program: $(TARGET).hex $(TARGET).eep |
$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) |
# Create final output files (.hex, .eep) from ELF output file. |
%.hex: %.elf |
@echo |
@echo $(MSG_FLASH) $@ |
$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@ |
%.eep: %.elf |
@echo |
@echo $(MSG_EEPROM) $@ |
-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ |
--change-section-lma .eeprom=0 -O $(FORMAT) $< $@ |
# Create extended listing file from ELF output file. |
%.lss: %.elf |
@echo |
@echo $(MSG_EXTENDED_LISTING) $@ |
$(OBJDUMP) -h -S $< > $@ |
# Create a symbol table from ELF output file. |
%.sym: %.elf |
@echo |
@echo $(MSG_SYMBOL_TABLE) $@ |
avr-nm -n $< > $@ |
# Link: create ELF output file from object files. |
.SECONDARY : $(TARGET).elf |
.PRECIOUS : $(OBJ) |
%.elf: $(OBJ) |
@echo |
@echo $(MSG_LINKING) $@ |
$(CC) $(ALL_CFLAGS) $(OBJ) --output $@ $(LDFLAGS) |
# Compile: create object files from C source files. |
%.o : %.c |
@echo |
@echo $(MSG_COMPILING) $< |
$(CC) -c $(ALL_CFLAGS) $< -o $@ |
# Compile: create assembler files from C source files. |
%.s : %.c |
$(CC) -S $(ALL_CFLAGS) $< -o $@ |
# Assemble: create object files from assembler source files. |
%.o : %.S |
@echo |
@echo $(MSG_ASSEMBLING) $< |
$(CC) -c $(ALL_ASFLAGS) $< -o $@ |
# Target: clean project. |
clean: begin clean_list finished end |
clean_list : |
@echo |
@echo $(MSG_CLEANING) |
# $(REMOVE) $(TARGET).hex |
$(REMOVE) $(TARGET).eep |
$(REMOVE) $(TARGET).obj |
$(REMOVE) $(TARGET).cof |
$(REMOVE) $(TARGET).elf |
$(REMOVE) $(TARGET).map |
$(REMOVE) $(TARGET).obj |
$(REMOVE) $(TARGET).a90 |
$(REMOVE) $(TARGET).sym |
$(REMOVE) $(TARGET).lnk |
$(REMOVE) $(TARGET).lss |
$(REMOVE) $(OBJ) |
$(REMOVE) $(LST) |
$(REMOVE) $(SRC:.c=.s) |
$(REMOVE) $(SRC:.c=.d) |
# Automatically generate C source code dependencies. |
# (Code originally taken from the GNU make user manual and modified |
# (See README.txt Credits).) |
# |
# Note that this will work with sh (bash) and sed that is shipped with WinAVR |
# (see the SHELL variable defined above). |
# This may not work with other shells or other seds. |
# |
%.d: %.c |
set -e; $(CC) -MM $(ALL_CFLAGS) $< \ |
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > $@; \ |
[ -s $@ ] || rm -f $@ |
# Remove the '-' if you want to see the dependency files generated. |
-include $(SRC:.c=.d) |
# Listing of phony targets. |
.PHONY : all begin finish end sizebefore sizeafter gccversion coff extcoff \ |
clean clean_list program |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/menu.c |
---|
0,0 → 1,207 |
/***************************************************************************************************************************** |
* File: menu.c |
* |
* Purpose: collecting ADC analog inputs from PORTA |
* |
* Functions: void ADC_Init(void) |
* void SucheLuftruckOffset(void) |
* void SucheGyroOffset(void) |
* ISR(ADC_vect) |
* |
*****************************************************************************************************************************/ |
#include "main.h" |
#include "menu.h" |
unsigned int TestInt = 0; |
#define ARRAYGROESSE 10 |
unsigned char Array[ARRAYGROESSE] = {1,2,3,4,5,6,7,8,9,10}; |
char DisplayBuff[80] = "cq de dk9nw"; |
unsigned char DispPtr = 0; |
unsigned char MaxMenue = 14; |
unsigned char MenuePunkt = 0; |
unsigned char RemoteKeys = 0; |
#define KEY1 0x01 |
#define KEY2 0x02 |
#define KEY3 0x04 |
#define KEY4 0x08 |
#define KEY5 0x10 |
// ---------------------------------------------------------------------------------------------------------------------------- |
// leert die LCD Anzeige |
// ---------------------------------------------------------------------------------------------------------------------------- |
void LcdClear(void) |
{ |
unsigned char i; |
for(i=0;i<80;i++) DisplayBuff[i] = ' '; |
} |
// ---------------------------------------------------------------------------------------------------------------------------- |
// --------------------------------------------------------------------------------------------------------------------------- |
// Anzeigen auf dem MK Toll auf dem dortigen LCD Display |
// --------------------------------------------------------------------------------------------------------------------------- |
void Menu(void) |
{ |
if(MenuePunkt > MaxMenue) MenuePunkt = MaxMenue; // MaxMenue = 14; |
if(RemoteKeys & KEY1) { if(MenuePunkt) MenuePunkt--; else MenuePunkt = MaxMenue;} // go down |
if(RemoteKeys & KEY2) { if(MenuePunkt == MaxMenue) MenuePunkt = 0; else MenuePunkt++;} // go up |
if((RemoteKeys & KEY1) && (RemoteKeys & KEY2)) MenuePunkt = 0; // both keys pressed |
LcdClear(); |
if(MenuePunkt < 10) |
{ |
LCD_printfxy(17,0,"[%i]",MenuePunkt); |
} |
else |
{ |
LCD_printfxy(16,0,"[%i]",MenuePunkt); |
} |
switch(MenuePunkt) |
{ |
case 0: |
LCD_printfxy(0,0,"+ MikroKopter +"); |
LCD_printfxy(0,1,"HW:V%d.%d SW:%d.%d%c",PlatinenVersion/10,PlatinenVersion%10, VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH +'a'); |
LCD_printfxy(0,2,"Setting:%d %s",GetActiveParamSetNumber(),Mixer.Name); |
if(I2CTimeout < 6) LCD_printfxy(0,3,"I2C ERROR!!!") |
else |
if(MissingMotor) LCD_printfxy(0,3,"Missing BL-Ctrl:%d!!",MissingMotor) |
else LCD_printfxy(0,3,"----BL-Ctrl ok---"); |
break; |
case 1: |
LCD_printfxy(0,0,"DAC Offset"); |
LCD_printfxy(0,1,"%5i",AnalogOffsetNick); // = 113 |
LCD_printfxy(0,2,"%5i",AnalogOffsetRoll); // = 114 |
LCD_printfxy(0,3,"%5i",AnalogOffsetGier); // = 149 |
break; |
case 2: |
LCD_printfxy(0,0,"GlobalConfig"); // |
LCD_printfxy(0,1,"%5i",EE_Parameter.GlobalConfig); // |
LCD_printfxy(0,2,"EEPROM310"); // |
unsigned char c47 = eeprom_read_byte(&EEPromArray[310]); // |
LCD_printfxy(0,3,"%5i",c47); // |
break; |
case 3: |
LCD_printfxy(0,0,"K1:%4i K2:%4i ",PPM_in[1],PPM_in[2]); // K1 = -125 kann -125 bis 120 = Gas K2 = 2 kann 115 bis -102 = Roll |
LCD_printfxy(0,1,"K3:%4i K4:%4i ",PPM_in[3],PPM_in[4]); // K3 = 0 kann -117 bis 120 = Nick K4 = 2 kann -120 bis +120 = Gier |
LCD_printfxy(0,2,"K5:%4i ",PPM_in[5]); // K5 = -117 oder +120 = Kippschalter |
/* |
LCD_printfxy(0,0,"Ni:%4i Ro:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_NICK]],PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]); |
LCD_printfxy(0,1,"Gs:%4i Gi:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_GAS]],PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]); |
LCD_printfxy(0,2,"P1:%4i P2:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]],PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]]); |
LCD_printfxy(0,3,"P3:%4i P4:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]],PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]]); |
*/ |
break; |
case 4: |
LCD_printfxy(0,0,"AdNeutral..."); |
LCD_printfxy(0,1,"Nick: %5i",AdNeutralNick); // 8461 ständig steigend |
LCD_printfxy(0,2,"Roll: %5i",AdNeutralRoll); // 8463 ständig steigend |
LCD_printfxy(0,3,"Gier: %5i",AdNeutralGier); // 1039 |
break; |
case 5: |
LCD_printfxy(0,0,"Gyro - Sensor"); |
LCD_printfxy(0,1,"Nick %4i (%3i)",AdWertNick - AdNeutralNick/8, AdNeutralNick/16); // = 1 (564) |
LCD_printfxy(0,2,"Roll %4i (%3i)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll/16); // = 1 (555) |
LCD_printfxy(0,3,"Gier %4i (%3i)",AdNeutralGier - AdWertGier, AdNeutralGier/2); // = 3 (322) |
break; |
case 6: |
LCD_printfxy(0,0,"ACC - Sensor"); |
LCD_printfxy(0,1,"Nick %4i (%3i)",AdWertAccNick,NeutralAccX); // = -4 (504) |
LCD_printfxy(0,2,"Roll %4i (%3i)",AdWertAccRoll,NeutralAccY); // = 7 (487) |
LCD_printfxy(0,3,"Gier %4i (%3i)",Mittelwert_AccHoch/*accumulate_AccHoch / messanzahl_AccHoch*/,(int)NeutralAccZ); // = 0 (713) |
break; |
case 7: |
LCD_printfxy(0,1,"Spannung: %5i",UBat); // = 120 müsst 12V sein |
LCD_printfxy(0,2,"Empf.Pegel:%5i",SenderOkay); // = 200 bei gutem Empfang = 0 bei keinem Empfang |
break; |
case 8: |
LCD_printfxy(0,0,"Kompass..."); |
LCD_printfxy(0,1,"Richtung: %4i",KompassRichtung); // = -75 wurde nach dem Start nach links gedreht |
LCD_printfxy(0,2,"Value: %4i",KompassValue); // = 318 Anzeigewert des Kompass |
LCD_printfxy(0,3,"Startwert: %4i",KompassStartwert); // = 34 ist die Differenz zwischen beiden Werten |
break; |
case 9: |
LCD_printfxy(0,0,"Poti1: %3i",Poti1); // = 0 |
LCD_printfxy(0,1,"Poti2: %3i",Poti2); // = 154 |
LCD_printfxy(0,2,"Poti3: %3i",Poti3); // = 110 |
LCD_printfxy(0,3,"Poti4: %3i",Poti4); // = 110 |
break; |
case 10: |
LCD_printfxy(0,0,"Servo " ); |
LCD_printfxy(0,1,"Setpoint %3i",Parameter_ServoNickControl); // = 100 |
//LCD_printfxy(0,2,"Stellung: %3i",ServoValue); |
LCD_printfxy(0,3,"Range:%3i-%3i",EE_Parameter.ServoNickMin,EE_Parameter.ServoNickMax); // 50-150 |
break; |
case 11: |
if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG) |
{ |
LCD_printfxy(0,0,"Hoehe: %5i",HoehenWert); |
LCD_printfxy(0,1,"SollHoehe: %5i",SollHoehe); |
LCD_printfxy(0,2,"Luftdruck: %5i",MessLuftdruck); |
LCD_printfxy(0,3,"Off : %5i",DruckOffsetSetting); |
} |
else |
{ |
LCD_printfxy(0,1,"Keine "); |
LCD_printfxy(0,2,"Höhenregelung"); |
} |
break; |
case 12: |
LCD_printfxy(0,0,"BL-Ctrl Errors " ); |
LCD_printfxy(0,1," %3d %3d %3d %3d ",MotorError[0],MotorError[1],MotorError[2],MotorError[3]); |
LCD_printfxy(0,2," %3d %3d %3d %3d ",MotorError[4],MotorError[5],MotorError[6],MotorError[7]); |
LCD_printfxy(0,3," %3d %3d %3d %3d ",MotorError[8],MotorError[9],MotorError[10],MotorError[11]); |
break; |
case 13: |
LCD_printfxy(0,0,"BL-Ctrl found " ); |
LCD_printfxy(0,1," %c %c %c %c ",MotorPresent[0] + '-',MotorPresent[1] + '-',MotorPresent[2] + '-',MotorPresent[3] + '-'); |
LCD_printfxy(0,2," %c %c %c %c ",MotorPresent[4] + '-',MotorPresent[5] + '-',MotorPresent[6] + '-',MotorPresent[7] + '-'); |
LCD_printfxy(0,3," %c - - -",MotorPresent[8] + '-'); |
if(MotorPresent[9]) LCD_printfxy(4,3,"10"); |
if(MotorPresent[10]) LCD_printfxy(8,3,"11"); |
if(MotorPresent[11]) LCD_printfxy(12,3,"12"); |
break; |
case 14: |
LCD_printfxy(0,0,"Flight-Time " ); |
LCD_printfxy(0,1," %5umin",FlugMinuten); |
LCD_printfxy(0,2,"Total:%5umin",FlugMinutenGesamt); |
LCD_printfxy(13,3,"(reset)"); |
if(RemoteKeys & KEY4) // #define KEY4 0x08 |
{ |
FlugMinuten = 0; |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_MINUTES2],FlugMinuten / 256); // FlugMinuten gesamt auf Null setzen |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_MINUTES2+1],FlugMinuten % 256); |
} |
break; |
default: |
MaxMenue = MenuePunkt - 1; |
MenuePunkt = 0; |
break; |
} |
RemoteKeys = 0; |
} |
//------------------------------------------------------------------------------------------------------------------------------------ |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/menu.d |
---|
0,0 → 1,2 |
menu.o menu.d : menu.c main.h old_macros.h _Settings.h printf_P.h timer0.h uart.h \ |
analog.h eeprom.h twimaster.h menu.h rc.h fc.h led.h |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/menu.h |
---|
0,0 → 1,19 |
/***************************************************************************************************************************** |
* File: menu.h |
* Purpose: header of menu.c |
*****************************************************************************************************************************/ |
#ifndef _MENU_H |
#define _MENU_H |
extern void Menu(void); |
extern void LcdClear(void); |
extern char DisplayBuff[80]; |
extern unsigned char DispPtr; |
extern unsigned char MaxMenue; |
extern unsigned char MenuePunkt; |
extern unsigned char RemoteKeys; |
#endif |
//*** EOF: _MENU_H *********************************************************************************************************** |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/menu.lst |
---|
0,0 → 1,1807 |
1 .file "menu.c" |
2 .arch atmega644 |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .global RemoteKeys |
11 .global RemoteKeys |
12 .section .bss |
15 RemoteKeys: |
16 0000 00 .skip 1,0 |
17 .global MenuePunkt |
18 .global MenuePunkt |
21 MenuePunkt: |
22 0001 00 .skip 1,0 |
23 .global MaxMenue |
24 .data |
27 MaxMenue: |
28 0000 0E .byte 14 |
29 .global DispPtr |
30 .global DispPtr |
31 .section .bss |
34 DispPtr: |
35 0002 00 .skip 1,0 |
36 .global DisplayBuff |
37 .data |
40 DisplayBuff: |
41 0001 6371 2064 .string "cq de dk9nw" |
41 6520 646B |
41 396E 7700 |
42 000d 0000 0000 .skip 68,0 |
42 0000 0000 |
42 0000 0000 |
42 0000 0000 |
42 0000 0000 |
43 .global Array |
46 Array: |
47 0051 01 .byte 1 |
48 0052 02 .byte 2 |
49 0053 03 .byte 3 |
50 0054 04 .byte 4 |
51 0055 05 .byte 5 |
52 0056 06 .byte 6 |
53 0057 07 .byte 7 |
54 0058 08 .byte 8 |
55 0059 09 .byte 9 |
56 005a 0A .byte 10 |
57 .global TestInt |
58 .global TestInt |
59 .section .bss |
62 TestInt: |
63 0003 0000 .skip 2,0 |
64 .text |
65 .global LcdClear |
67 LcdClear: |
68 /* prologue: frame size=0 */ |
69 /* prologue end (size=0) */ |
70 0000 90E2 ldi r25,lo8(32) |
71 0002 E0E0 ldi r30,lo8(DisplayBuff) |
72 0004 F0E0 ldi r31,hi8(DisplayBuff) |
73 0006 8FE4 ldi r24,lo8(79) |
74 .L5: |
75 0008 9193 st Z+,r25 |
76 000a 8150 subi r24,lo8(-(-1)) |
77 000c 87FF sbrs r24,7 |
78 000e 00C0 rjmp .L5 |
79 /* epilogue: frame size=0 */ |
80 0010 0895 ret |
81 /* epilogue end (size=1) */ |
82 /* function LcdClear size 9 (8) */ |
84 .section .progmem.data,"a",@progbits |
87 __c.0: |
88 0000 5B25 695D .string "[%i]" |
88 00 |
91 __c.1: |
92 0005 5B25 695D .string "[%i]" |
92 00 |
95 __c.2: |
96 000a 2B20 4D69 .string "+ MikroKopter +" |
96 6B72 6F4B |
96 6F70 7465 |
96 7220 2B00 |
99 __c.3: |
100 001a 4857 3A56 .string "HW:V%d.%d SW:%d.%d%c" |
100 2564 2E25 |
100 6420 5357 |
100 3A25 642E |
100 2564 2563 |
103 __c.4: |
104 002f 5365 7474 .string "Setting:%d %s" |
104 696E 673A |
104 2564 2025 |
104 7300 |
107 __c.5: |
108 003d 4932 4320 .string "I2C ERROR!!!" |
108 4552 524F |
108 5221 2121 |
108 00 |
111 __c.6: |
112 004a 4D69 7373 .string "Missing BL-Ctrl:%d!!" |
112 696E 6720 |
112 424C 2D43 |
112 7472 6C3A |
112 2564 2121 |
115 __c.7: |
116 005f 2D2D 2D2D .string "----BL-Ctrl ok---" |
116 424C 2D43 |
116 7472 6C20 |
116 6F6B 2D2D |
116 2D00 |
119 __c.8: |
120 0071 4441 4320 .string "DAC Offset" |
120 4F66 6673 |
120 6574 00 |
123 __c.9: |
124 007c 2535 6900 .string "%5i" |
127 __c.10: |
128 0080 2535 6900 .string "%5i" |
131 __c.11: |
132 0084 2535 6900 .string "%5i" |
135 __c.12: |
136 0088 476C 6F62 .string "GlobalConfig" |
136 616C 436F |
136 6E66 6967 |
136 00 |
139 __c.13: |
140 0095 2535 6900 .string "%5i" |
143 __c.14: |
144 0099 4545 5052 .string "EEPROM310" |
144 4F4D 3331 |
144 3000 |
147 __c.15: |
148 00a3 2535 6900 .string "%5i" |
151 __c.16: |
152 00a7 4B31 3A25 .string "K1:%4i K2:%4i " |
152 3469 2020 |
152 4B32 3A25 |
152 3469 2000 |
155 __c.17: |
156 00b7 4B33 3A25 .string "K3:%4i K4:%4i " |
156 3469 2020 |
156 4B34 3A25 |
156 3469 2000 |
159 __c.18: |
160 00c7 4B35 3A25 .string "K5:%4i " |
160 3469 2020 |
160 2020 2020 |
160 2020 2000 |
163 __c.19: |
164 00d7 4164 4E65 .string "AdNeutral..." |
164 7574 7261 |
164 6C2E 2E2E |
164 00 |
167 __c.20: |
168 00e4 4E69 636B .string "Nick: %5i" |
168 3A20 2020 |
168 2020 2025 |
168 3569 00 |
171 __c.21: |
172 00f3 526F 6C6C .string "Roll: %5i" |
172 3A20 2020 |
172 2020 2025 |
172 3569 00 |
175 __c.22: |
176 0102 4769 6572 .string "Gier: %5i" |
176 3A20 2020 |
176 2020 2025 |
176 3569 00 |
179 __c.23: |
180 0111 4779 726F .string "Gyro - Sensor" |
180 202D 2053 |
180 656E 736F |
180 7200 |
183 __c.24: |
184 011f 4E69 636B .string "Nick %4i (%3i)" |
184 2025 3469 |
184 2028 2533 |
184 6929 00 |
187 __c.25: |
188 012e 526F 6C6C .string "Roll %4i (%3i)" |
188 2025 3469 |
188 2028 2533 |
188 6929 00 |
191 __c.26: |
192 013d 4769 6572 .string "Gier %4i (%3i)" |
192 2025 3469 |
192 2028 2533 |
192 6929 00 |
195 __c.27: |
196 014c 4143 4320 .string "ACC - Sensor" |
196 2D20 5365 |
196 6E73 6F72 |
196 00 |
199 __c.28: |
200 0159 4E69 636B .string "Nick %4i (%3i)" |
200 2025 3469 |
200 2028 2533 |
200 6929 00 |
203 __c.29: |
204 0168 526F 6C6C .string "Roll %4i (%3i)" |
204 2025 3469 |
204 2028 2533 |
204 6929 00 |
207 __c.30: |
208 0177 4769 6572 .string "Gier %4i (%3i)" |
208 2025 3469 |
208 2028 2533 |
208 6929 00 |
211 __c.31: |
212 0186 5370 616E .string "Spannung: %5i" |
212 6E75 6E67 |
212 3A20 2025 |
212 3569 00 |
215 __c.32: |
216 0195 456D 7066 .string "Empf.Pegel:%5i" |
216 2E50 6567 |
216 656C 3A25 |
216 3569 00 |
219 __c.33: |
220 01a4 4B6F 6D70 .string "Kompass..." |
220 6173 732E |
220 2E2E 00 |
223 __c.34: |
224 01af 5269 6368 .string "Richtung: %4i" |
224 7475 6E67 |
224 3A20 2534 |
224 6900 |
227 __c.35: |
228 01bd 5661 6C75 .string "Value: %4i" |
228 653A 2025 |
228 3469 00 |
231 __c.36: |
232 01c8 5374 6172 .string "Startwert: %4i" |
232 7477 6572 |
232 743A 2025 |
232 3469 00 |
235 __c.37: |
236 01d7 506F 7469 .string "Poti1: %3i" |
236 313A 2020 |
236 2533 6900 |
239 __c.38: |
240 01e3 506F 7469 .string "Poti2: %3i" |
240 323A 2020 |
240 2533 6900 |
243 __c.39: |
244 01ef 506F 7469 .string "Poti3: %3i" |
244 333A 2020 |
244 2533 6900 |
247 __c.40: |
248 01fb 506F 7469 .string "Poti4: %3i" |
248 343A 2020 |
248 2533 6900 |
251 __c.41: |
252 0207 5365 7276 .string "Servo " |
252 6F20 2000 |
255 __c.42: |
256 020f 5365 7470 .string "Setpoint %3i" |
256 6F69 6E74 |
256 2020 2533 |
256 6900 |
259 __c.43: |
260 021d 5261 6E67 .string "Range:%3i-%3i" |
260 653A 2533 |
260 692D 2533 |
260 6900 |
263 __c.44: |
264 022b 486F 6568 .string "Hoehe: %5i" |
264 653A 2020 |
264 2020 2025 |
264 3569 00 |
267 __c.45: |
268 023a 536F 6C6C .string "SollHoehe: %5i" |
268 486F 6568 |
268 653A 2025 |
268 3569 00 |
271 __c.46: |
272 0249 4C75 6674 .string "Luftdruck: %5i" |
272 6472 7563 |
272 6B3A 2025 |
272 3569 00 |
275 __c.47: |
276 0258 4F66 6620 .string "Off : %5i" |
276 2020 2020 |
276 203A 2025 |
276 3569 00 |
279 __c.48: |
280 0267 4B65 696E .string "Keine " |
280 6520 00 |
283 __c.49: |
284 026e 48F6 6865 .string "H\366henregelung" |
284 6E72 6567 |
284 656C 756E |
284 6700 |
287 __c.50: |
288 027c 424C 2D43 .string "BL-Ctrl Errors " |
288 7472 6C20 |
288 4572 726F |
288 7273 2000 |
291 __c.51: |
292 028c 2025 3364 .string " %3d %3d %3d %3d " |
292 2020 2533 |
292 6420 2025 |
292 3364 2020 |
292 2533 6420 |
295 __c.52: |
296 02a1 2025 3364 .string " %3d %3d %3d %3d " |
296 2020 2533 |
296 6420 2025 |
296 3364 2020 |
296 2533 6420 |
299 __c.53: |
300 02b6 2025 3364 .string " %3d %3d %3d %3d " |
300 2020 2533 |
300 6420 2025 |
300 3364 2020 |
300 2533 6420 |
303 __c.54: |
304 02cb 424C 2D43 .string "BL-Ctrl found " |
304 7472 6C20 |
304 666F 756E |
304 6420 00 |
307 __c.55: |
308 02da 2025 6320 .string " %c %c %c %c " |
308 2020 2563 |
308 2020 2025 |
308 6320 2020 |
308 2563 2000 |
311 __c.56: |
312 02ee 2025 6320 .string " %c %c %c %c " |
312 2020 2563 |
312 2020 2025 |
312 6320 2020 |
312 2563 2000 |
315 __c.57: |
316 0302 2025 6320 .string " %c - - -" |
316 2020 2D20 |
316 2020 2D20 |
316 2020 2D00 |
319 __c.58: |
320 0312 3130 00 .string "10" |
323 __c.59: |
324 0315 3131 00 .string "11" |
327 __c.60: |
328 0318 3132 00 .string "12" |
331 __c.61: |
332 031b 466C 6967 .string "Flight-Time " |
332 6874 2D54 |
332 696D 6520 |
332 2000 |
335 __c.62: |
336 0329 2020 2020 .string " %5umin" |
336 2020 2535 |
336 756D 696E |
336 00 |
339 __c.63: |
340 0336 546F 7461 .string "Total:%5umin" |
340 6C3A 2535 |
340 756D 696E |
340 00 |
343 __c.64: |
344 0343 2872 6573 .string "(reset)" |
344 6574 2900 |
345 .text |
346 .global Menu |
348 Menu: |
349 /* prologue: frame size=0 */ |
350 0012 1F93 push r17 |
351 /* prologue end (size=1) */ |
352 0014 8091 0000 lds r24,MenuePunkt |
353 0018 2091 0000 lds r18,MaxMenue |
354 001c 2817 cp r18,r24 |
355 001e 00F4 brsh .L10 |
356 0020 2093 0000 sts MenuePunkt,r18 |
357 .L10: |
358 0024 9091 0000 lds r25,RemoteKeys |
359 0028 90FF sbrs r25,0 |
360 002a 00C0 rjmp .L11 |
361 002c 8091 0000 lds r24,MenuePunkt |
362 0030 8823 tst r24 |
363 0032 01F4 brne .+2 |
364 0034 00C0 rjmp .L12 |
365 0036 8150 subi r24,lo8(-(-1)) |
366 0038 8093 0000 sts MenuePunkt,r24 |
367 .L11: |
368 003c 91FF sbrs r25,1 |
369 003e 00C0 rjmp .L14 |
370 0040 8091 0000 lds r24,MenuePunkt |
371 0044 8217 cp r24,r18 |
372 0046 01F4 brne .+2 |
373 0048 00C0 rjmp .L71 |
374 004a 8F5F subi r24,lo8(-(1)) |
375 004c 8093 0000 sts MenuePunkt,r24 |
376 .L14: |
377 0050 892F mov r24,r25 |
378 0052 9927 clr r25 |
379 0054 80FF sbrs r24,0 |
380 0056 00C0 rjmp .L17 |
381 0058 81FD sbrc r24,1 |
382 005a 00C0 rjmp .L72 |
383 .L17: |
384 005c 0E94 0000 call LcdClear |
385 0060 9091 0000 lds r25,MenuePunkt |
386 0064 9A30 cpi r25,lo8(10) |
387 0066 00F4 brsh .L18 |
388 0068 81E1 ldi r24,lo8(17) |
389 006a 8093 0000 sts DispPtr,r24 |
390 006e 892F mov r24,r25 |
391 0070 9927 clr r25 |
392 0072 9F93 push r25 |
393 0074 8F93 push r24 |
394 0076 80E0 ldi r24,lo8(__c.0) |
395 0078 90E0 ldi r25,hi8(__c.0) |
396 .L65: |
397 007a 9F93 push r25 |
398 007c 8F93 push r24 |
399 007e 81E0 ldi r24,lo8(1) |
400 0080 8F93 push r24 |
401 0082 0E94 0000 call _printf_P |
402 0086 0F90 pop __tmp_reg__ |
403 0088 0F90 pop __tmp_reg__ |
404 008a 0F90 pop __tmp_reg__ |
405 008c 0F90 pop __tmp_reg__ |
406 008e 0F90 pop __tmp_reg__ |
407 0090 2091 0000 lds r18,MenuePunkt |
408 0094 822F mov r24,r18 |
409 0096 9927 clr r25 |
410 0098 AA27 clr r26 |
411 009a BB27 clr r27 |
412 009c FC01 movw r30,r24 |
413 009e 0F97 sbiw r24,15 |
414 00a0 00F4 brsh .L63 |
415 00a2 E050 subi r30,lo8(-(pm(.L64))) |
416 00a4 F040 sbci r31,hi8(-(pm(.L64))) |
417 00a6 0C94 0000 jmp __tablejump2__ |
418 .data |
419 .section .progmem.gcc_sw_table, "a", @progbits |
420 .p2align 1 |
421 .L64: |
422 0000 0000 .word pm(.L21) |
423 0002 0000 .word pm(.L26) |
424 0004 0000 .word pm(.L27) |
425 0006 0000 .word pm(.L32) |
426 0008 0000 .word pm(.L33) |
427 000a 0000 .word pm(.L34) |
428 000c 0000 .word pm(.L40) |
429 000e 0000 .word pm(.L41) |
430 0010 0000 .word pm(.L42) |
431 0012 0000 .word pm(.L43) |
432 0014 0000 .word pm(.L44) |
433 0016 0000 .word pm(.L45) |
434 0018 0000 .word pm(.L48) |
435 001a 0000 .word pm(.L49) |
436 001c 0000 .word pm(.L53) |
437 .text |
438 .L18: |
439 00aa 80E1 ldi r24,lo8(16) |
440 00ac 8093 0000 sts DispPtr,r24 |
441 00b0 892F mov r24,r25 |
442 00b2 9927 clr r25 |
443 00b4 9F93 push r25 |
444 00b6 8F93 push r24 |
445 00b8 80E0 ldi r24,lo8(__c.1) |
446 00ba 90E0 ldi r25,hi8(__c.1) |
447 00bc 00C0 rjmp .L65 |
448 .L63: |
449 00be 2150 subi r18,lo8(-(-1)) |
450 00c0 2093 0000 sts MaxMenue,r18 |
451 00c4 1092 0000 sts MenuePunkt,__zero_reg__ |
452 00c8 00C0 rjmp .L20 |
453 .L12: |
454 00ca 2093 0000 sts MenuePunkt,r18 |
455 00ce 00C0 rjmp .L11 |
456 .L72: |
457 00d0 1092 0000 sts MenuePunkt,__zero_reg__ |
458 00d4 00C0 rjmp .L17 |
459 .L71: |
460 00d6 1092 0000 sts MenuePunkt,__zero_reg__ |
461 00da 00C0 rjmp .L14 |
462 .L41: |
463 00dc 84E1 ldi r24,lo8(20) |
464 00de 8093 0000 sts DispPtr,r24 |
465 00e2 8091 0000 lds r24,UBat |
466 00e6 9091 0000 lds r25,(UBat)+1 |
467 00ea 9F93 push r25 |
468 00ec 8F93 push r24 |
469 00ee 80E0 ldi r24,lo8(__c.31) |
470 00f0 90E0 ldi r25,hi8(__c.31) |
471 00f2 9F93 push r25 |
472 00f4 8F93 push r24 |
473 00f6 11E0 ldi r17,lo8(1) |
474 00f8 1F93 push r17 |
475 00fa 0E94 0000 call _printf_P |
476 00fe 88E2 ldi r24,lo8(40) |
477 0100 8093 0000 sts DispPtr,r24 |
478 0104 0F90 pop __tmp_reg__ |
479 0106 0F90 pop __tmp_reg__ |
480 0108 0F90 pop __tmp_reg__ |
481 010a 0F90 pop __tmp_reg__ |
482 010c 0F90 pop __tmp_reg__ |
483 010e 8091 0000 lds r24,SenderOkay |
484 0112 9927 clr r25 |
485 0114 9F93 push r25 |
486 0116 8F93 push r24 |
487 0118 80E0 ldi r24,lo8(__c.32) |
488 011a 90E0 ldi r25,hi8(__c.32) |
489 .L67: |
490 011c 9F93 push r25 |
491 011e 8F93 push r24 |
492 0120 1F93 push r17 |
493 .L70: |
494 0122 0E94 0000 call _printf_P |
495 0126 0F90 pop __tmp_reg__ |
496 0128 0F90 pop __tmp_reg__ |
497 012a 0F90 pop __tmp_reg__ |
498 012c 0F90 pop __tmp_reg__ |
499 012e 0F90 pop __tmp_reg__ |
500 0130 00C0 rjmp .L20 |
501 .L21: |
502 0132 1092 0000 sts DispPtr,__zero_reg__ |
503 0136 80E0 ldi r24,lo8(__c.2) |
504 0138 90E0 ldi r25,hi8(__c.2) |
505 013a 9F93 push r25 |
506 013c 8F93 push r24 |
507 013e 11E0 ldi r17,lo8(1) |
508 0140 1F93 push r17 |
509 0142 0E94 0000 call _printf_P |
510 0146 84E1 ldi r24,lo8(20) |
511 0148 8093 0000 sts DispPtr,r24 |
512 014c 0F90 pop __tmp_reg__ |
513 014e 0F90 pop __tmp_reg__ |
514 0150 0F90 pop __tmp_reg__ |
515 0152 87E6 ldi r24,lo8(103) |
516 0154 90E0 ldi r25,hi8(103) |
517 0156 9F93 push r25 |
518 0158 8F93 push r24 |
519 015a 8CE4 ldi r24,lo8(76) |
520 015c 90E0 ldi r25,hi8(76) |
521 015e 9F93 push r25 |
522 0160 8F93 push r24 |
523 0162 1F92 push __zero_reg__ |
524 0164 1F92 push __zero_reg__ |
525 0166 8091 0000 lds r24,PlatinenVersion |
526 016a 6AE0 ldi r22,lo8(10) |
527 016c 0E94 0000 call __udivmodqi4 |
528 0170 892F mov r24,r25 |
529 0172 9927 clr r25 |
530 0174 9F93 push r25 |
531 0176 8F93 push r24 |
532 0178 8091 0000 lds r24,PlatinenVersion |
533 017c 0E94 0000 call __udivmodqi4 |
534 0180 9927 clr r25 |
535 0182 9F93 push r25 |
536 0184 8F93 push r24 |
537 0186 80E0 ldi r24,lo8(__c.3) |
538 0188 90E0 ldi r25,hi8(__c.3) |
539 018a 9F93 push r25 |
540 018c 8F93 push r24 |
541 018e 1F93 push r17 |
542 0190 0E94 0000 call _printf_P |
543 0194 88E2 ldi r24,lo8(40) |
544 0196 8093 0000 sts DispPtr,r24 |
545 019a 2DB7 in r18,__SP_L__ |
546 019c 3EB7 in r19,__SP_H__ |
547 019e 235F subi r18,lo8(-(13)) |
548 01a0 3F4F sbci r19,hi8(-(13)) |
549 01a2 2DBF out __SP_L__,r18 |
550 01a4 80E0 ldi r24,lo8(Mixer+1) |
551 01a6 90E0 ldi r25,hi8(Mixer+1) |
552 01a8 9F93 push r25 |
553 01aa 8F93 push r24 |
554 01ac 0E94 0000 call GetActiveParamSetNumber |
555 01b0 9927 clr r25 |
556 01b2 9F93 push r25 |
557 01b4 8F93 push r24 |
558 01b6 80E0 ldi r24,lo8(__c.4) |
559 01b8 90E0 ldi r25,hi8(__c.4) |
560 01ba 9F93 push r25 |
561 01bc 8F93 push r24 |
562 01be 1F93 push r17 |
563 01c0 0E94 0000 call _printf_P |
564 01c4 8091 0000 lds r24,I2CTimeout |
565 01c8 9091 0000 lds r25,(I2CTimeout)+1 |
566 01cc 2DB7 in r18,__SP_L__ |
567 01ce 3EB7 in r19,__SP_H__ |
568 01d0 295F subi r18,lo8(-(7)) |
569 01d2 3F4F sbci r19,hi8(-(7)) |
570 01d4 2DBF out __SP_L__,r18 |
571 01d6 0697 sbiw r24,6 |
572 01d8 00F4 brsh .+2 |
573 01da 00C0 rjmp .L73 |
574 01dc 9091 0000 lds r25,MissingMotor |
575 01e0 9923 tst r25 |
576 01e2 01F4 brne .+2 |
577 01e4 00C0 rjmp .L24 |
578 01e6 8CE3 ldi r24,lo8(60) |
579 01e8 8093 0000 sts DispPtr,r24 |
580 01ec 892F mov r24,r25 |
581 01ee 9927 clr r25 |
582 01f0 9F93 push r25 |
583 01f2 8F93 push r24 |
584 01f4 80E0 ldi r24,lo8(__c.6) |
585 01f6 90E0 ldi r25,hi8(__c.6) |
586 01f8 00C0 rjmp .L67 |
587 .L27: |
588 01fa 1092 0000 sts DispPtr,__zero_reg__ |
589 01fe 80E0 ldi r24,lo8(__c.12) |
590 0200 90E0 ldi r25,hi8(__c.12) |
591 0202 9F93 push r25 |
592 0204 8F93 push r24 |
593 0206 11E0 ldi r17,lo8(1) |
594 0208 1F93 push r17 |
595 020a 0E94 0000 call _printf_P |
596 020e 84E1 ldi r24,lo8(20) |
597 0210 8093 0000 sts DispPtr,r24 |
598 0214 0F90 pop __tmp_reg__ |
599 0216 0F90 pop __tmp_reg__ |
600 0218 0F90 pop __tmp_reg__ |
601 021a 8091 0000 lds r24,EE_Parameter+8 |
602 021e 9927 clr r25 |
603 0220 9F93 push r25 |
604 0222 8F93 push r24 |
605 0224 80E0 ldi r24,lo8(__c.13) |
606 0226 90E0 ldi r25,hi8(__c.13) |
607 0228 9F93 push r25 |
608 022a 8F93 push r24 |
609 022c 1F93 push r17 |
610 022e 0E94 0000 call _printf_P |
611 0232 88E2 ldi r24,lo8(40) |
612 0234 8093 0000 sts DispPtr,r24 |
613 0238 0F90 pop __tmp_reg__ |
614 023a 0F90 pop __tmp_reg__ |
615 023c 0F90 pop __tmp_reg__ |
616 023e 0F90 pop __tmp_reg__ |
617 0240 0F90 pop __tmp_reg__ |
618 0242 80E0 ldi r24,lo8(__c.14) |
619 0244 90E0 ldi r25,hi8(__c.14) |
620 0246 9F93 push r25 |
621 0248 8F93 push r24 |
622 024a 1F93 push r17 |
623 024c 0E94 0000 call _printf_P |
624 0250 0F90 pop __tmp_reg__ |
625 0252 0F90 pop __tmp_reg__ |
626 0254 0F90 pop __tmp_reg__ |
627 .L28: |
628 0256 F999 sbic 63-0x20,1 |
629 0258 00C0 rjmp .L28 |
630 025a 80E0 ldi r24,lo8(EEPromArray+310) |
631 025c 90E0 ldi r25,hi8(EEPromArray+310) |
632 025e 92BD out (65)+1-0x20,r25 |
633 0260 81BD out 65-0x20,r24 |
634 /* #APP */ |
635 /* START EEPROM READ CRITICAL SECTION */ |
636 0262 F89A sbi 31, 0 |
637 0264 90B5 in r25, 32 |
638 /* END EEPROM READ CRITICAL SECTION */ |
639 |
640 /* #NOAPP */ |
641 0266 8CE3 ldi r24,lo8(60) |
642 0268 8093 0000 sts DispPtr,r24 |
643 026c 892F mov r24,r25 |
644 026e 9927 clr r25 |
645 0270 9F93 push r25 |
646 0272 8F93 push r24 |
647 0274 80E0 ldi r24,lo8(__c.15) |
648 0276 90E0 ldi r25,hi8(__c.15) |
649 0278 9F93 push r25 |
650 027a 8F93 push r24 |
651 027c 81E0 ldi r24,lo8(1) |
652 027e 8F93 push r24 |
653 0280 00C0 rjmp .L70 |
654 .L26: |
655 0282 1092 0000 sts DispPtr,__zero_reg__ |
656 0286 80E0 ldi r24,lo8(__c.8) |
657 0288 90E0 ldi r25,hi8(__c.8) |
658 028a 9F93 push r25 |
659 028c 8F93 push r24 |
660 028e 11E0 ldi r17,lo8(1) |
661 0290 1F93 push r17 |
662 0292 0E94 0000 call _printf_P |
663 0296 84E1 ldi r24,lo8(20) |
664 0298 8093 0000 sts DispPtr,r24 |
665 029c 0F90 pop __tmp_reg__ |
666 029e 0F90 pop __tmp_reg__ |
667 02a0 0F90 pop __tmp_reg__ |
668 02a2 8091 0000 lds r24,AnalogOffsetNick |
669 02a6 9927 clr r25 |
670 02a8 9F93 push r25 |
671 02aa 8F93 push r24 |
672 02ac 80E0 ldi r24,lo8(__c.9) |
673 02ae 90E0 ldi r25,hi8(__c.9) |
674 02b0 9F93 push r25 |
675 02b2 8F93 push r24 |
676 02b4 1F93 push r17 |
677 02b6 0E94 0000 call _printf_P |
678 02ba 88E2 ldi r24,lo8(40) |
679 02bc 8093 0000 sts DispPtr,r24 |
680 02c0 0F90 pop __tmp_reg__ |
681 02c2 0F90 pop __tmp_reg__ |
682 02c4 0F90 pop __tmp_reg__ |
683 02c6 0F90 pop __tmp_reg__ |
684 02c8 0F90 pop __tmp_reg__ |
685 02ca 8091 0000 lds r24,AnalogOffsetRoll |
686 02ce 9927 clr r25 |
687 02d0 9F93 push r25 |
688 02d2 8F93 push r24 |
689 02d4 80E0 ldi r24,lo8(__c.10) |
690 02d6 90E0 ldi r25,hi8(__c.10) |
691 02d8 9F93 push r25 |
692 02da 8F93 push r24 |
693 02dc 1F93 push r17 |
694 02de 0E94 0000 call _printf_P |
695 02e2 8CE3 ldi r24,lo8(60) |
696 02e4 8093 0000 sts DispPtr,r24 |
697 02e8 0F90 pop __tmp_reg__ |
698 02ea 0F90 pop __tmp_reg__ |
699 02ec 0F90 pop __tmp_reg__ |
700 02ee 0F90 pop __tmp_reg__ |
701 02f0 0F90 pop __tmp_reg__ |
702 02f2 8091 0000 lds r24,AnalogOffsetGier |
703 02f6 9927 clr r25 |
704 02f8 9F93 push r25 |
705 02fa 8F93 push r24 |
706 02fc 80E0 ldi r24,lo8(__c.11) |
707 02fe 90E0 ldi r25,hi8(__c.11) |
708 0300 00C0 rjmp .L67 |
709 .L40: |
710 0302 1092 0000 sts DispPtr,__zero_reg__ |
711 0306 80E0 ldi r24,lo8(__c.27) |
712 0308 90E0 ldi r25,hi8(__c.27) |
713 030a 9F93 push r25 |
714 030c 8F93 push r24 |
715 030e 11E0 ldi r17,lo8(1) |
716 0310 1F93 push r17 |
717 0312 0E94 0000 call _printf_P |
718 0316 84E1 ldi r24,lo8(20) |
719 0318 8093 0000 sts DispPtr,r24 |
720 031c 0F90 pop __tmp_reg__ |
721 031e 0F90 pop __tmp_reg__ |
722 0320 0F90 pop __tmp_reg__ |
723 0322 8091 0000 lds r24,NeutralAccX |
724 0326 9091 0000 lds r25,(NeutralAccX)+1 |
725 032a 9F93 push r25 |
726 032c 8F93 push r24 |
727 032e 8091 0000 lds r24,AdWertAccNick |
728 0332 9091 0000 lds r25,(AdWertAccNick)+1 |
729 0336 9F93 push r25 |
730 0338 8F93 push r24 |
731 033a 80E0 ldi r24,lo8(__c.28) |
732 033c 90E0 ldi r25,hi8(__c.28) |
733 033e 9F93 push r25 |
734 0340 8F93 push r24 |
735 0342 1F93 push r17 |
736 0344 0E94 0000 call _printf_P |
737 0348 88E2 ldi r24,lo8(40) |
738 034a 8093 0000 sts DispPtr,r24 |
739 034e 2DB7 in r18,__SP_L__ |
740 0350 3EB7 in r19,__SP_H__ |
741 0352 295F subi r18,lo8(-(7)) |
742 0354 3F4F sbci r19,hi8(-(7)) |
743 0356 2DBF out __SP_L__,r18 |
744 0358 8091 0000 lds r24,NeutralAccY |
745 035c 9091 0000 lds r25,(NeutralAccY)+1 |
746 0360 9F93 push r25 |
747 0362 8F93 push r24 |
748 0364 8091 0000 lds r24,AdWertAccRoll |
749 0368 9091 0000 lds r25,(AdWertAccRoll)+1 |
750 036c 9F93 push r25 |
751 036e 8F93 push r24 |
752 0370 80E0 ldi r24,lo8(__c.29) |
753 0372 90E0 ldi r25,hi8(__c.29) |
754 0374 9F93 push r25 |
755 0376 8F93 push r24 |
756 0378 1F93 push r17 |
757 037a 0E94 0000 call _printf_P |
758 037e 8CE3 ldi r24,lo8(60) |
759 0380 8093 0000 sts DispPtr,r24 |
760 0384 8DB7 in r24,__SP_L__ |
761 0386 9EB7 in r25,__SP_H__ |
762 0388 0796 adiw r24,7 |
763 038a 8DBF out __SP_L__,r24 |
764 038c 8091 0000 lds r24,NeutralAccZ |
765 0390 9091 0000 lds r25,(NeutralAccZ)+1 |
766 0394 A091 0000 lds r26,(NeutralAccZ)+2 |
767 0398 B091 0000 lds r27,(NeutralAccZ)+3 |
768 039c BC01 movw r22,r24 |
769 039e CD01 movw r24,r26 |
770 03a0 0E94 0000 call __fixsfsi |
771 03a4 DC01 movw r26,r24 |
772 03a6 CB01 movw r24,r22 |
773 03a8 9F93 push r25 |
774 03aa 8F93 push r24 |
775 03ac 8091 0000 lds r24,Mittelwert_AccHoch |
776 03b0 9091 0000 lds r25,(Mittelwert_AccHoch)+1 |
777 03b4 9F93 push r25 |
778 03b6 8F93 push r24 |
779 03b8 80E0 ldi r24,lo8(__c.30) |
780 03ba 90E0 ldi r25,hi8(__c.30) |
781 03bc 9F93 push r25 |
782 03be 8F93 push r24 |
783 03c0 1F93 push r17 |
784 03c2 0E94 0000 call _printf_P |
785 03c6 2DB7 in r18,__SP_L__ |
786 03c8 3EB7 in r19,__SP_H__ |
787 03ca 295F subi r18,lo8(-(7)) |
788 03cc 3F4F sbci r19,hi8(-(7)) |
789 03ce 2DBF out __SP_L__,r18 |
790 03d0 00C0 rjmp .L20 |
791 .L34: |
792 03d2 1092 0000 sts DispPtr,__zero_reg__ |
793 03d6 80E0 ldi r24,lo8(__c.23) |
794 03d8 90E0 ldi r25,hi8(__c.23) |
795 03da 9F93 push r25 |
796 03dc 8F93 push r24 |
797 03de 11E0 ldi r17,lo8(1) |
798 03e0 1F93 push r17 |
799 03e2 0E94 0000 call _printf_P |
800 03e6 84E1 ldi r24,lo8(20) |
801 03e8 8093 0000 sts DispPtr,r24 |
802 03ec 0F90 pop __tmp_reg__ |
803 03ee 0F90 pop __tmp_reg__ |
804 03f0 0F90 pop __tmp_reg__ |
805 03f2 2091 0000 lds r18,AdNeutralNick |
806 03f6 3091 0000 lds r19,(AdNeutralNick)+1 |
807 03fa C901 movw r24,r18 |
808 03fc 37FD sbrc r19,7 |
809 03fe 00C0 rjmp .L74 |
810 .L35: |
811 0400 9595 asr r25 |
812 0402 8795 ror r24 |
813 0404 9595 asr r25 |
814 0406 8795 ror r24 |
815 0408 9595 asr r25 |
816 040a 8795 ror r24 |
817 040c 9595 asr r25 |
818 040e 8795 ror r24 |
819 0410 9F93 push r25 |
820 0412 8F93 push r24 |
821 0414 37FD sbrc r19,7 |
822 0416 00C0 rjmp .L75 |
823 .L36: |
824 0418 3595 asr r19 |
825 041a 2795 ror r18 |
826 041c 3595 asr r19 |
827 041e 2795 ror r18 |
828 0420 3595 asr r19 |
829 0422 2795 ror r18 |
830 0424 8091 0000 lds r24,AdWertNick |
831 0428 9091 0000 lds r25,(AdWertNick)+1 |
832 042c 821B sub r24,r18 |
833 042e 930B sbc r25,r19 |
834 0430 9F93 push r25 |
835 0432 8F93 push r24 |
836 0434 80E0 ldi r24,lo8(__c.24) |
837 0436 90E0 ldi r25,hi8(__c.24) |
838 0438 9F93 push r25 |
839 043a 8F93 push r24 |
840 043c 1F93 push r17 |
841 043e 0E94 0000 call _printf_P |
842 0442 88E2 ldi r24,lo8(40) |
843 0444 8093 0000 sts DispPtr,r24 |
844 0448 8DB7 in r24,__SP_L__ |
845 044a 9EB7 in r25,__SP_H__ |
846 044c 0796 adiw r24,7 |
847 044e 8DBF out __SP_L__,r24 |
848 0450 2091 0000 lds r18,AdNeutralRoll |
849 0454 3091 0000 lds r19,(AdNeutralRoll)+1 |
850 0458 C901 movw r24,r18 |
851 045a 37FD sbrc r19,7 |
852 045c 00C0 rjmp .L76 |
853 .L37: |
854 045e 9595 asr r25 |
855 0460 8795 ror r24 |
856 0462 9595 asr r25 |
857 0464 8795 ror r24 |
858 0466 9595 asr r25 |
859 0468 8795 ror r24 |
860 046a 9595 asr r25 |
861 046c 8795 ror r24 |
862 046e 9F93 push r25 |
863 0470 8F93 push r24 |
864 0472 37FD sbrc r19,7 |
865 0474 00C0 rjmp .L77 |
866 .L38: |
867 0476 3595 asr r19 |
868 0478 2795 ror r18 |
869 047a 3595 asr r19 |
870 047c 2795 ror r18 |
871 047e 3595 asr r19 |
872 0480 2795 ror r18 |
873 0482 8091 0000 lds r24,AdWertRoll |
874 0486 9091 0000 lds r25,(AdWertRoll)+1 |
875 048a 821B sub r24,r18 |
876 048c 930B sbc r25,r19 |
877 048e 9F93 push r25 |
878 0490 8F93 push r24 |
879 0492 80E0 ldi r24,lo8(__c.25) |
880 0494 90E0 ldi r25,hi8(__c.25) |
881 0496 9F93 push r25 |
882 0498 8F93 push r24 |
883 049a 1F93 push r17 |
884 049c 0E94 0000 call _printf_P |
885 04a0 8CE3 ldi r24,lo8(60) |
886 04a2 8093 0000 sts DispPtr,r24 |
887 04a6 2DB7 in r18,__SP_L__ |
888 04a8 3EB7 in r19,__SP_H__ |
889 04aa 295F subi r18,lo8(-(7)) |
890 04ac 3F4F sbci r19,hi8(-(7)) |
891 04ae 2DBF out __SP_L__,r18 |
892 04b0 2091 0000 lds r18,AdNeutralGier |
893 04b4 3091 0000 lds r19,(AdNeutralGier)+1 |
894 04b8 C901 movw r24,r18 |
895 04ba 37FD sbrc r19,7 |
896 04bc 00C0 rjmp .L78 |
897 .L39: |
898 04be 9595 asr r25 |
899 04c0 8795 ror r24 |
900 04c2 9F93 push r25 |
901 04c4 8F93 push r24 |
902 04c6 8091 0000 lds r24,AdWertGier |
903 04ca 9091 0000 lds r25,(AdWertGier)+1 |
904 04ce 281B sub r18,r24 |
905 04d0 390B sbc r19,r25 |
906 04d2 3F93 push r19 |
907 04d4 2F93 push r18 |
908 04d6 80E0 ldi r24,lo8(__c.26) |
909 04d8 90E0 ldi r25,hi8(__c.26) |
910 .L69: |
911 04da 9F93 push r25 |
912 04dc 8F93 push r24 |
913 04de 1F93 push r17 |
914 04e0 0E94 0000 call _printf_P |
915 04e4 8DB7 in r24,__SP_L__ |
916 04e6 9EB7 in r25,__SP_H__ |
917 04e8 0796 adiw r24,7 |
918 04ea 8DBF out __SP_L__,r24 |
919 04ec 00C0 rjmp .L20 |
920 .L33: |
921 04ee 1092 0000 sts DispPtr,__zero_reg__ |
922 04f2 80E0 ldi r24,lo8(__c.19) |
923 04f4 90E0 ldi r25,hi8(__c.19) |
924 04f6 9F93 push r25 |
925 04f8 8F93 push r24 |
926 04fa 11E0 ldi r17,lo8(1) |
927 04fc 1F93 push r17 |
928 04fe 0E94 0000 call _printf_P |
929 0502 84E1 ldi r24,lo8(20) |
930 0504 8093 0000 sts DispPtr,r24 |
931 0508 0F90 pop __tmp_reg__ |
932 050a 0F90 pop __tmp_reg__ |
933 050c 0F90 pop __tmp_reg__ |
934 050e 8091 0000 lds r24,AdNeutralNick |
935 0512 9091 0000 lds r25,(AdNeutralNick)+1 |
936 0516 9F93 push r25 |
937 0518 8F93 push r24 |
938 051a 80E0 ldi r24,lo8(__c.20) |
939 051c 90E0 ldi r25,hi8(__c.20) |
940 051e 9F93 push r25 |
941 0520 8F93 push r24 |
942 0522 1F93 push r17 |
943 0524 0E94 0000 call _printf_P |
944 0528 88E2 ldi r24,lo8(40) |
945 052a 8093 0000 sts DispPtr,r24 |
946 052e 0F90 pop __tmp_reg__ |
947 0530 0F90 pop __tmp_reg__ |
948 0532 0F90 pop __tmp_reg__ |
949 0534 0F90 pop __tmp_reg__ |
950 0536 0F90 pop __tmp_reg__ |
951 0538 8091 0000 lds r24,AdNeutralRoll |
952 053c 9091 0000 lds r25,(AdNeutralRoll)+1 |
953 0540 9F93 push r25 |
954 0542 8F93 push r24 |
955 0544 80E0 ldi r24,lo8(__c.21) |
956 0546 90E0 ldi r25,hi8(__c.21) |
957 0548 9F93 push r25 |
958 054a 8F93 push r24 |
959 054c 1F93 push r17 |
960 054e 0E94 0000 call _printf_P |
961 0552 8CE3 ldi r24,lo8(60) |
962 0554 8093 0000 sts DispPtr,r24 |
963 0558 0F90 pop __tmp_reg__ |
964 055a 0F90 pop __tmp_reg__ |
965 055c 0F90 pop __tmp_reg__ |
966 055e 0F90 pop __tmp_reg__ |
967 0560 0F90 pop __tmp_reg__ |
968 0562 8091 0000 lds r24,AdNeutralGier |
969 0566 9091 0000 lds r25,(AdNeutralGier)+1 |
970 056a 9F93 push r25 |
971 056c 8F93 push r24 |
972 056e 80E0 ldi r24,lo8(__c.22) |
973 0570 90E0 ldi r25,hi8(__c.22) |
974 0572 00C0 rjmp .L67 |
975 .L32: |
976 0574 1092 0000 sts DispPtr,__zero_reg__ |
977 0578 8091 0000 lds r24,PPM_in+4 |
978 057c 9091 0000 lds r25,(PPM_in+4)+1 |
979 0580 9F93 push r25 |
980 0582 8F93 push r24 |
981 0584 8091 0000 lds r24,PPM_in+2 |
982 0588 9091 0000 lds r25,(PPM_in+2)+1 |
983 058c 9F93 push r25 |
984 058e 8F93 push r24 |
985 0590 80E0 ldi r24,lo8(__c.16) |
986 0592 90E0 ldi r25,hi8(__c.16) |
987 0594 9F93 push r25 |
988 0596 8F93 push r24 |
989 0598 11E0 ldi r17,lo8(1) |
990 059a 1F93 push r17 |
991 059c 0E94 0000 call _printf_P |
992 05a0 84E1 ldi r24,lo8(20) |
993 05a2 8093 0000 sts DispPtr,r24 |
994 05a6 8DB7 in r24,__SP_L__ |
995 05a8 9EB7 in r25,__SP_H__ |
996 05aa 0796 adiw r24,7 |
997 05ac 8DBF out __SP_L__,r24 |
998 05ae 8091 0000 lds r24,PPM_in+8 |
999 05b2 9091 0000 lds r25,(PPM_in+8)+1 |
1000 05b6 9F93 push r25 |
1001 05b8 8F93 push r24 |
1002 05ba 8091 0000 lds r24,PPM_in+6 |
1003 05be 9091 0000 lds r25,(PPM_in+6)+1 |
1004 05c2 9F93 push r25 |
1005 05c4 8F93 push r24 |
1006 05c6 80E0 ldi r24,lo8(__c.17) |
1007 05c8 90E0 ldi r25,hi8(__c.17) |
1008 05ca 9F93 push r25 |
1009 05cc 8F93 push r24 |
1010 05ce 1F93 push r17 |
1011 05d0 0E94 0000 call _printf_P |
1012 05d4 88E2 ldi r24,lo8(40) |
1013 05d6 8093 0000 sts DispPtr,r24 |
1014 05da 2DB7 in r18,__SP_L__ |
1015 05dc 3EB7 in r19,__SP_H__ |
1016 05de 295F subi r18,lo8(-(7)) |
1017 05e0 3F4F sbci r19,hi8(-(7)) |
1018 05e2 2DBF out __SP_L__,r18 |
1019 05e4 8091 0000 lds r24,PPM_in+10 |
1020 05e8 9091 0000 lds r25,(PPM_in+10)+1 |
1021 05ec 9F93 push r25 |
1022 05ee 8F93 push r24 |
1023 05f0 80E0 ldi r24,lo8(__c.18) |
1024 05f2 90E0 ldi r25,hi8(__c.18) |
1025 05f4 00C0 rjmp .L67 |
1026 .L53: |
1027 05f6 1092 0000 sts DispPtr,__zero_reg__ |
1028 05fa 80E0 ldi r24,lo8(__c.61) |
1029 05fc 90E0 ldi r25,hi8(__c.61) |
1030 05fe 9F93 push r25 |
1031 0600 8F93 push r24 |
1032 0602 11E0 ldi r17,lo8(1) |
1033 0604 1F93 push r17 |
1034 0606 0E94 0000 call _printf_P |
1035 060a 84E1 ldi r24,lo8(20) |
1036 060c 8093 0000 sts DispPtr,r24 |
1037 0610 0F90 pop __tmp_reg__ |
1038 0612 0F90 pop __tmp_reg__ |
1039 0614 0F90 pop __tmp_reg__ |
1040 0616 8091 0000 lds r24,FlugMinuten |
1041 061a 9091 0000 lds r25,(FlugMinuten)+1 |
1042 061e 9F93 push r25 |
1043 0620 8F93 push r24 |
1044 0622 80E0 ldi r24,lo8(__c.62) |
1045 0624 90E0 ldi r25,hi8(__c.62) |
1046 0626 9F93 push r25 |
1047 0628 8F93 push r24 |
1048 062a 1F93 push r17 |
1049 062c 0E94 0000 call _printf_P |
1050 0630 88E2 ldi r24,lo8(40) |
1051 0632 8093 0000 sts DispPtr,r24 |
1052 0636 0F90 pop __tmp_reg__ |
1053 0638 0F90 pop __tmp_reg__ |
1054 063a 0F90 pop __tmp_reg__ |
1055 063c 0F90 pop __tmp_reg__ |
1056 063e 0F90 pop __tmp_reg__ |
1057 0640 8091 0000 lds r24,FlugMinutenGesamt |
1058 0644 9091 0000 lds r25,(FlugMinutenGesamt)+1 |
1059 0648 9F93 push r25 |
1060 064a 8F93 push r24 |
1061 064c 80E0 ldi r24,lo8(__c.63) |
1062 064e 90E0 ldi r25,hi8(__c.63) |
1063 0650 9F93 push r25 |
1064 0652 8F93 push r24 |
1065 0654 1F93 push r17 |
1066 0656 0E94 0000 call _printf_P |
1067 065a 89E4 ldi r24,lo8(73) |
1068 065c 8093 0000 sts DispPtr,r24 |
1069 0660 0F90 pop __tmp_reg__ |
1070 0662 0F90 pop __tmp_reg__ |
1071 0664 0F90 pop __tmp_reg__ |
1072 0666 0F90 pop __tmp_reg__ |
1073 0668 0F90 pop __tmp_reg__ |
1074 066a 80E0 ldi r24,lo8(__c.64) |
1075 066c 90E0 ldi r25,hi8(__c.64) |
1076 066e 9F93 push r25 |
1077 0670 8F93 push r24 |
1078 0672 1F93 push r17 |
1079 0674 0E94 0000 call _printf_P |
1080 0678 8091 0000 lds r24,RemoteKeys |
1081 067c 0F90 pop __tmp_reg__ |
1082 067e 0F90 pop __tmp_reg__ |
1083 0680 0F90 pop __tmp_reg__ |
1084 0682 83FF sbrs r24,3 |
1085 0684 00C0 rjmp .L20 |
1086 0686 1092 0000 sts (FlugMinuten)+1,__zero_reg__ |
1087 068a 1092 0000 sts FlugMinuten,__zero_reg__ |
1088 .L55: |
1089 068e F999 sbic 63-0x20,1 |
1090 0690 00C0 rjmp .L55 |
1091 0692 1FBA out 63-0x20,__zero_reg__ |
1092 0694 80E0 ldi r24,lo8(EEPromArray+14) |
1093 0696 90E0 ldi r25,hi8(EEPromArray+14) |
1094 0698 92BD out (65)+1-0x20,r25 |
1095 069a 81BD out 65-0x20,r24 |
1096 069c 10BC out 64-0x20,__zero_reg__ |
1097 /* #APP */ |
1098 /* START EEPROM WRITE CRITICAL SECTION */ |
1099 069e 0FB6 in r0, 63 |
1100 06a0 F894 cli |
1101 06a2 FA9A sbi 31, 2 |
1102 06a4 F99A sbi 31, 1 |
1103 06a6 0FBE out 63, r0 |
1104 /* END EEPROM WRITE CRITICAL SECTION */ |
1105 /* #NOAPP */ |
1106 06a8 2091 0000 lds r18,FlugMinuten |
1107 .L59: |
1108 06ac F999 sbic 63-0x20,1 |
1109 06ae 00C0 rjmp .L59 |
1110 06b0 1FBA out 63-0x20,__zero_reg__ |
1111 06b2 80E0 ldi r24,lo8(EEPromArray+15) |
1112 06b4 90E0 ldi r25,hi8(EEPromArray+15) |
1113 06b6 92BD out (65)+1-0x20,r25 |
1114 06b8 81BD out 65-0x20,r24 |
1115 06ba 20BD out 64-0x20,r18 |
1116 /* #APP */ |
1117 /* START EEPROM WRITE CRITICAL SECTION */ |
1118 06bc 0FB6 in r0, 63 |
1119 06be F894 cli |
1120 06c0 FA9A sbi 31, 2 |
1121 06c2 F99A sbi 31, 1 |
1122 06c4 0FBE out 63, r0 |
1123 /* END EEPROM WRITE CRITICAL SECTION */ |
1124 /* #NOAPP */ |
1125 06c6 00C0 rjmp .L20 |
1126 .L49: |
1127 06c8 1092 0000 sts DispPtr,__zero_reg__ |
1128 06cc 80E0 ldi r24,lo8(__c.54) |
1129 06ce 90E0 ldi r25,hi8(__c.54) |
1130 06d0 9F93 push r25 |
1131 06d2 8F93 push r24 |
1132 06d4 11E0 ldi r17,lo8(1) |
1133 06d6 1F93 push r17 |
1134 06d8 0E94 0000 call _printf_P |
1135 06dc 84E1 ldi r24,lo8(20) |
1136 06de 8093 0000 sts DispPtr,r24 |
1137 06e2 0F90 pop __tmp_reg__ |
1138 06e4 0F90 pop __tmp_reg__ |
1139 06e6 0F90 pop __tmp_reg__ |
1140 06e8 8091 0000 lds r24,MotorPresent+3 |
1141 06ec 9927 clr r25 |
1142 06ee 8D96 adiw r24,45 |
1143 06f0 9F93 push r25 |
1144 06f2 8F93 push r24 |
1145 06f4 8091 0000 lds r24,MotorPresent+2 |
1146 06f8 9927 clr r25 |
1147 06fa 8D96 adiw r24,45 |
1148 06fc 9F93 push r25 |
1149 06fe 8F93 push r24 |
1150 0700 8091 0000 lds r24,MotorPresent+1 |
1151 0704 9927 clr r25 |
1152 0706 8D96 adiw r24,45 |
1153 0708 9F93 push r25 |
1154 070a 8F93 push r24 |
1155 070c 8091 0000 lds r24,MotorPresent |
1156 0710 9927 clr r25 |
1157 0712 8D96 adiw r24,45 |
1158 0714 9F93 push r25 |
1159 0716 8F93 push r24 |
1160 0718 80E0 ldi r24,lo8(__c.55) |
1161 071a 90E0 ldi r25,hi8(__c.55) |
1162 071c 9F93 push r25 |
1163 071e 8F93 push r24 |
1164 0720 1F93 push r17 |
1165 0722 0E94 0000 call _printf_P |
1166 0726 88E2 ldi r24,lo8(40) |
1167 0728 8093 0000 sts DispPtr,r24 |
1168 072c 8DB7 in r24,__SP_L__ |
1169 072e 9EB7 in r25,__SP_H__ |
1170 0730 0B96 adiw r24,11 |
1171 0732 8DBF out __SP_L__,r24 |
1172 0734 8091 0000 lds r24,MotorPresent+7 |
1173 0738 9927 clr r25 |
1174 073a 8D96 adiw r24,45 |
1175 073c 9F93 push r25 |
1176 073e 8F93 push r24 |
1177 0740 8091 0000 lds r24,MotorPresent+6 |
1178 0744 9927 clr r25 |
1179 0746 8D96 adiw r24,45 |
1180 0748 9F93 push r25 |
1181 074a 8F93 push r24 |
1182 074c 8091 0000 lds r24,MotorPresent+5 |
1183 0750 9927 clr r25 |
1184 0752 8D96 adiw r24,45 |
1185 0754 9F93 push r25 |
1186 0756 8F93 push r24 |
1187 0758 8091 0000 lds r24,MotorPresent+4 |
1188 075c 9927 clr r25 |
1189 075e 8D96 adiw r24,45 |
1190 0760 9F93 push r25 |
1191 0762 8F93 push r24 |
1192 0764 80E0 ldi r24,lo8(__c.56) |
1193 0766 90E0 ldi r25,hi8(__c.56) |
1194 0768 9F93 push r25 |
1195 076a 8F93 push r24 |
1196 076c 1F93 push r17 |
1197 076e 0E94 0000 call _printf_P |
1198 0772 8CE3 ldi r24,lo8(60) |
1199 0774 8093 0000 sts DispPtr,r24 |
1200 0778 2DB7 in r18,__SP_L__ |
1201 077a 3EB7 in r19,__SP_H__ |
1202 077c 255F subi r18,lo8(-(11)) |
1203 077e 3F4F sbci r19,hi8(-(11)) |
1204 0780 2DBF out __SP_L__,r18 |
1205 0782 8091 0000 lds r24,MotorPresent+8 |
1206 0786 9927 clr r25 |
1207 0788 8D96 adiw r24,45 |
1208 078a 9F93 push r25 |
1209 078c 8F93 push r24 |
1210 078e 80E0 ldi r24,lo8(__c.57) |
1211 0790 90E0 ldi r25,hi8(__c.57) |
1212 0792 9F93 push r25 |
1213 0794 8F93 push r24 |
1214 0796 1F93 push r17 |
1215 0798 0E94 0000 call _printf_P |
1216 079c 0F90 pop __tmp_reg__ |
1217 079e 0F90 pop __tmp_reg__ |
1218 07a0 0F90 pop __tmp_reg__ |
1219 07a2 0F90 pop __tmp_reg__ |
1220 07a4 0F90 pop __tmp_reg__ |
1221 07a6 8091 0000 lds r24,MotorPresent+9 |
1222 07aa 8823 tst r24 |
1223 07ac 01F0 breq .+2 |
1224 07ae 00C0 rjmp .L79 |
1225 .L50: |
1226 07b0 8091 0000 lds r24,MotorPresent+10 |
1227 07b4 8823 tst r24 |
1228 07b6 01F0 breq .+2 |
1229 07b8 00C0 rjmp .L80 |
1230 .L51: |
1231 07ba 8091 0000 lds r24,MotorPresent+11 |
1232 07be 8823 tst r24 |
1233 07c0 01F4 brne .+2 |
1234 07c2 00C0 rjmp .L20 |
1235 07c4 88E4 ldi r24,lo8(72) |
1236 07c6 8093 0000 sts DispPtr,r24 |
1237 07ca 80E0 ldi r24,lo8(__c.60) |
1238 07cc 90E0 ldi r25,hi8(__c.60) |
1239 .L66: |
1240 07ce 9F93 push r25 |
1241 07d0 8F93 push r24 |
1242 07d2 1F93 push r17 |
1243 07d4 0E94 0000 call _printf_P |
1244 07d8 0F90 pop __tmp_reg__ |
1245 07da 0F90 pop __tmp_reg__ |
1246 07dc 0F90 pop __tmp_reg__ |
1247 07de 00C0 rjmp .L20 |
1248 .L45: |
1249 07e0 8091 0000 lds r24,EE_Parameter+8 |
1250 07e4 80FF sbrs r24,0 |
1251 07e6 00C0 rjmp .L46 |
1252 07e8 1092 0000 sts DispPtr,__zero_reg__ |
1253 07ec 8091 0000 lds r24,HoehenWert |
1254 07f0 9091 0000 lds r25,(HoehenWert)+1 |
1255 07f4 A091 0000 lds r26,(HoehenWert)+2 |
1256 07f8 B091 0000 lds r27,(HoehenWert)+3 |
1257 07fc BF93 push r27 |
1258 07fe AF93 push r26 |
1259 0800 9F93 push r25 |
1260 0802 8F93 push r24 |
1261 0804 80E0 ldi r24,lo8(__c.44) |
1262 0806 90E0 ldi r25,hi8(__c.44) |
1263 0808 9F93 push r25 |
1264 080a 8F93 push r24 |
1265 080c 11E0 ldi r17,lo8(1) |
1266 080e 1F93 push r17 |
1267 0810 0E94 0000 call _printf_P |
1268 0814 84E1 ldi r24,lo8(20) |
1269 0816 8093 0000 sts DispPtr,r24 |
1270 081a 2DB7 in r18,__SP_L__ |
1271 081c 3EB7 in r19,__SP_H__ |
1272 081e 295F subi r18,lo8(-(7)) |
1273 0820 3F4F sbci r19,hi8(-(7)) |
1274 0822 2DBF out __SP_L__,r18 |
1275 0824 8091 0000 lds r24,SollHoehe |
1276 0828 9091 0000 lds r25,(SollHoehe)+1 |
1277 082c A091 0000 lds r26,(SollHoehe)+2 |
1278 0830 B091 0000 lds r27,(SollHoehe)+3 |
1279 0834 BF93 push r27 |
1280 0836 AF93 push r26 |
1281 0838 9F93 push r25 |
1282 083a 8F93 push r24 |
1283 083c 80E0 ldi r24,lo8(__c.45) |
1284 083e 90E0 ldi r25,hi8(__c.45) |
1285 0840 9F93 push r25 |
1286 0842 8F93 push r24 |
1287 0844 1F93 push r17 |
1288 0846 0E94 0000 call _printf_P |
1289 084a 88E2 ldi r24,lo8(40) |
1290 084c 8093 0000 sts DispPtr,r24 |
1291 0850 8DB7 in r24,__SP_L__ |
1292 0852 9EB7 in r25,__SP_H__ |
1293 0854 0796 adiw r24,7 |
1294 0856 8DBF out __SP_L__,r24 |
1295 0858 8091 0000 lds r24,MessLuftdruck |
1296 085c 9091 0000 lds r25,(MessLuftdruck)+1 |
1297 0860 9F93 push r25 |
1298 0862 8F93 push r24 |
1299 0864 80E0 ldi r24,lo8(__c.46) |
1300 0866 90E0 ldi r25,hi8(__c.46) |
1301 0868 9F93 push r25 |
1302 086a 8F93 push r24 |
1303 086c 1F93 push r17 |
1304 086e 0E94 0000 call _printf_P |
1305 0872 8CE3 ldi r24,lo8(60) |
1306 0874 8093 0000 sts DispPtr,r24 |
1307 0878 0F90 pop __tmp_reg__ |
1308 087a 0F90 pop __tmp_reg__ |
1309 087c 0F90 pop __tmp_reg__ |
1310 087e 0F90 pop __tmp_reg__ |
1311 0880 0F90 pop __tmp_reg__ |
1312 0882 8091 0000 lds r24,DruckOffsetSetting |
1313 0886 9927 clr r25 |
1314 0888 9F93 push r25 |
1315 088a 8F93 push r24 |
1316 088c 80E0 ldi r24,lo8(__c.47) |
1317 088e 90E0 ldi r25,hi8(__c.47) |
1318 0890 00C0 rjmp .L67 |
1319 .L44: |
1320 0892 1092 0000 sts DispPtr,__zero_reg__ |
1321 0896 80E0 ldi r24,lo8(__c.41) |
1322 0898 90E0 ldi r25,hi8(__c.41) |
1323 089a 9F93 push r25 |
1324 089c 8F93 push r24 |
1325 089e 11E0 ldi r17,lo8(1) |
1326 08a0 1F93 push r17 |
1327 08a2 0E94 0000 call _printf_P |
1328 08a6 84E1 ldi r24,lo8(20) |
1329 08a8 8093 0000 sts DispPtr,r24 |
1330 08ac 0F90 pop __tmp_reg__ |
1331 08ae 0F90 pop __tmp_reg__ |
1332 08b0 0F90 pop __tmp_reg__ |
1333 08b2 8091 0000 lds r24,Parameter_ServoNickControl |
1334 08b6 9927 clr r25 |
1335 08b8 9F93 push r25 |
1336 08ba 8F93 push r24 |
1337 08bc 80E0 ldi r24,lo8(__c.42) |
1338 08be 90E0 ldi r25,hi8(__c.42) |
1339 08c0 9F93 push r25 |
1340 08c2 8F93 push r24 |
1341 08c4 1F93 push r17 |
1342 08c6 0E94 0000 call _printf_P |
1343 08ca 8CE3 ldi r24,lo8(60) |
1344 08cc 8093 0000 sts DispPtr,r24 |
1345 08d0 0F90 pop __tmp_reg__ |
1346 08d2 0F90 pop __tmp_reg__ |
1347 08d4 0F90 pop __tmp_reg__ |
1348 08d6 0F90 pop __tmp_reg__ |
1349 08d8 0F90 pop __tmp_reg__ |
1350 08da 8091 0000 lds r24,EE_Parameter+42 |
1351 08de 9927 clr r25 |
1352 08e0 9F93 push r25 |
1353 08e2 8F93 push r24 |
1354 08e4 8091 0000 lds r24,EE_Parameter+41 |
1355 08e8 9927 clr r25 |
1356 08ea 9F93 push r25 |
1357 08ec 8F93 push r24 |
1358 08ee 80E0 ldi r24,lo8(__c.43) |
1359 08f0 90E0 ldi r25,hi8(__c.43) |
1360 08f2 00C0 rjmp .L69 |
1361 .L48: |
1362 08f4 1092 0000 sts DispPtr,__zero_reg__ |
1363 08f8 80E0 ldi r24,lo8(__c.50) |
1364 08fa 90E0 ldi r25,hi8(__c.50) |
1365 08fc 9F93 push r25 |
1366 08fe 8F93 push r24 |
1367 0900 11E0 ldi r17,lo8(1) |
1368 0902 1F93 push r17 |
1369 0904 0E94 0000 call _printf_P |
1370 0908 84E1 ldi r24,lo8(20) |
1371 090a 8093 0000 sts DispPtr,r24 |
1372 090e 0F90 pop __tmp_reg__ |
1373 0910 0F90 pop __tmp_reg__ |
1374 0912 0F90 pop __tmp_reg__ |
1375 0914 8091 0000 lds r24,MotorError+3 |
1376 0918 9927 clr r25 |
1377 091a 9F93 push r25 |
1378 091c 8F93 push r24 |
1379 091e 8091 0000 lds r24,MotorError+2 |
1380 0922 9927 clr r25 |
1381 0924 9F93 push r25 |
1382 0926 8F93 push r24 |
1383 0928 8091 0000 lds r24,MotorError+1 |
1384 092c 9927 clr r25 |
1385 092e 9F93 push r25 |
1386 0930 8F93 push r24 |
1387 0932 8091 0000 lds r24,MotorError |
1388 0936 9927 clr r25 |
1389 0938 9F93 push r25 |
1390 093a 8F93 push r24 |
1391 093c 80E0 ldi r24,lo8(__c.51) |
1392 093e 90E0 ldi r25,hi8(__c.51) |
1393 0940 9F93 push r25 |
1394 0942 8F93 push r24 |
1395 0944 1F93 push r17 |
1396 0946 0E94 0000 call _printf_P |
1397 094a 88E2 ldi r24,lo8(40) |
1398 094c 8093 0000 sts DispPtr,r24 |
1399 0950 2DB7 in r18,__SP_L__ |
1400 0952 3EB7 in r19,__SP_H__ |
1401 0954 255F subi r18,lo8(-(11)) |
1402 0956 3F4F sbci r19,hi8(-(11)) |
1403 0958 2DBF out __SP_L__,r18 |
1404 095a 8091 0000 lds r24,MotorError+7 |
1405 095e 9927 clr r25 |
1406 0960 9F93 push r25 |
1407 0962 8F93 push r24 |
1408 0964 8091 0000 lds r24,MotorError+6 |
1409 0968 9927 clr r25 |
1410 096a 9F93 push r25 |
1411 096c 8F93 push r24 |
1412 096e 8091 0000 lds r24,MotorError+5 |
1413 0972 9927 clr r25 |
1414 0974 9F93 push r25 |
1415 0976 8F93 push r24 |
1416 0978 8091 0000 lds r24,MotorError+4 |
1417 097c 9927 clr r25 |
1418 097e 9F93 push r25 |
1419 0980 8F93 push r24 |
1420 0982 80E0 ldi r24,lo8(__c.52) |
1421 0984 90E0 ldi r25,hi8(__c.52) |
1422 0986 9F93 push r25 |
1423 0988 8F93 push r24 |
1424 098a 1F93 push r17 |
1425 098c 0E94 0000 call _printf_P |
1426 0990 8CE3 ldi r24,lo8(60) |
1427 0992 8093 0000 sts DispPtr,r24 |
1428 0996 8DB7 in r24,__SP_L__ |
1429 0998 9EB7 in r25,__SP_H__ |
1430 099a 0B96 adiw r24,11 |
1431 099c 8DBF out __SP_L__,r24 |
1432 099e 8091 0000 lds r24,MotorError+11 |
1433 09a2 9927 clr r25 |
1434 09a4 9F93 push r25 |
1435 09a6 8F93 push r24 |
1436 09a8 8091 0000 lds r24,MotorError+10 |
1437 09ac 9927 clr r25 |
1438 09ae 9F93 push r25 |
1439 09b0 8F93 push r24 |
1440 09b2 8091 0000 lds r24,MotorError+9 |
1441 09b6 9927 clr r25 |
1442 09b8 9F93 push r25 |
1443 09ba 8F93 push r24 |
1444 09bc 8091 0000 lds r24,MotorError+8 |
1445 09c0 9927 clr r25 |
1446 09c2 9F93 push r25 |
1447 09c4 8F93 push r24 |
1448 09c6 80E0 ldi r24,lo8(__c.53) |
1449 09c8 90E0 ldi r25,hi8(__c.53) |
1450 09ca 9F93 push r25 |
1451 09cc 8F93 push r24 |
1452 09ce 1F93 push r17 |
1453 09d0 0E94 0000 call _printf_P |
1454 09d4 2DB7 in r18,__SP_L__ |
1455 09d6 3EB7 in r19,__SP_H__ |
1456 09d8 255F subi r18,lo8(-(11)) |
1457 09da 3F4F sbci r19,hi8(-(11)) |
1458 09dc 2DBF out __SP_L__,r18 |
1459 09de 00C0 rjmp .L20 |
1460 .L43: |
1461 09e0 1092 0000 sts DispPtr,__zero_reg__ |
1462 09e4 8091 0000 lds r24,Poti1 |
1463 09e8 9091 0000 lds r25,(Poti1)+1 |
1464 09ec 9F93 push r25 |
1465 09ee 8F93 push r24 |
1466 09f0 80E0 ldi r24,lo8(__c.37) |
1467 09f2 90E0 ldi r25,hi8(__c.37) |
1468 09f4 9F93 push r25 |
1469 09f6 8F93 push r24 |
1470 09f8 11E0 ldi r17,lo8(1) |
1471 09fa 1F93 push r17 |
1472 09fc 0E94 0000 call _printf_P |
1473 0a00 84E1 ldi r24,lo8(20) |
1474 0a02 8093 0000 sts DispPtr,r24 |
1475 0a06 0F90 pop __tmp_reg__ |
1476 0a08 0F90 pop __tmp_reg__ |
1477 0a0a 0F90 pop __tmp_reg__ |
1478 0a0c 0F90 pop __tmp_reg__ |
1479 0a0e 0F90 pop __tmp_reg__ |
1480 0a10 8091 0000 lds r24,Poti2 |
1481 0a14 9091 0000 lds r25,(Poti2)+1 |
1482 0a18 9F93 push r25 |
1483 0a1a 8F93 push r24 |
1484 0a1c 80E0 ldi r24,lo8(__c.38) |
1485 0a1e 90E0 ldi r25,hi8(__c.38) |
1486 0a20 9F93 push r25 |
1487 0a22 8F93 push r24 |
1488 0a24 1F93 push r17 |
1489 0a26 0E94 0000 call _printf_P |
1490 0a2a 88E2 ldi r24,lo8(40) |
1491 0a2c 8093 0000 sts DispPtr,r24 |
1492 0a30 0F90 pop __tmp_reg__ |
1493 0a32 0F90 pop __tmp_reg__ |
1494 0a34 0F90 pop __tmp_reg__ |
1495 0a36 0F90 pop __tmp_reg__ |
1496 0a38 0F90 pop __tmp_reg__ |
1497 0a3a 8091 0000 lds r24,Poti3 |
1498 0a3e 9091 0000 lds r25,(Poti3)+1 |
1499 0a42 9F93 push r25 |
1500 0a44 8F93 push r24 |
1501 0a46 80E0 ldi r24,lo8(__c.39) |
1502 0a48 90E0 ldi r25,hi8(__c.39) |
1503 0a4a 9F93 push r25 |
1504 0a4c 8F93 push r24 |
1505 0a4e 1F93 push r17 |
1506 0a50 0E94 0000 call _printf_P |
1507 0a54 8CE3 ldi r24,lo8(60) |
1508 0a56 8093 0000 sts DispPtr,r24 |
1509 0a5a 0F90 pop __tmp_reg__ |
1510 0a5c 0F90 pop __tmp_reg__ |
1511 0a5e 0F90 pop __tmp_reg__ |
1512 0a60 0F90 pop __tmp_reg__ |
1513 0a62 0F90 pop __tmp_reg__ |
1514 0a64 8091 0000 lds r24,Poti4 |
1515 0a68 9091 0000 lds r25,(Poti4)+1 |
1516 0a6c 9F93 push r25 |
1517 0a6e 8F93 push r24 |
1518 0a70 80E0 ldi r24,lo8(__c.40) |
1519 0a72 90E0 ldi r25,hi8(__c.40) |
1520 0a74 00C0 rjmp .L67 |
1521 .L42: |
1522 0a76 1092 0000 sts DispPtr,__zero_reg__ |
1523 0a7a 80E0 ldi r24,lo8(__c.33) |
1524 0a7c 90E0 ldi r25,hi8(__c.33) |
1525 0a7e 9F93 push r25 |
1526 0a80 8F93 push r24 |
1527 0a82 11E0 ldi r17,lo8(1) |
1528 0a84 1F93 push r17 |
1529 0a86 0E94 0000 call _printf_P |
1530 0a8a 84E1 ldi r24,lo8(20) |
1531 0a8c 8093 0000 sts DispPtr,r24 |
1532 0a90 0F90 pop __tmp_reg__ |
1533 0a92 0F90 pop __tmp_reg__ |
1534 0a94 0F90 pop __tmp_reg__ |
1535 0a96 8091 0000 lds r24,KompassRichtung |
1536 0a9a 9091 0000 lds r25,(KompassRichtung)+1 |
1537 0a9e 9F93 push r25 |
1538 0aa0 8F93 push r24 |
1539 0aa2 80E0 ldi r24,lo8(__c.34) |
1540 0aa4 90E0 ldi r25,hi8(__c.34) |
1541 0aa6 9F93 push r25 |
1542 0aa8 8F93 push r24 |
1543 0aaa 1F93 push r17 |
1544 0aac 0E94 0000 call _printf_P |
1545 0ab0 88E2 ldi r24,lo8(40) |
1546 0ab2 8093 0000 sts DispPtr,r24 |
1547 0ab6 0F90 pop __tmp_reg__ |
1548 0ab8 0F90 pop __tmp_reg__ |
1549 0aba 0F90 pop __tmp_reg__ |
1550 0abc 0F90 pop __tmp_reg__ |
1551 0abe 0F90 pop __tmp_reg__ |
1552 0ac0 8091 0000 lds r24,KompassValue |
1553 0ac4 9091 0000 lds r25,(KompassValue)+1 |
1554 0ac8 9F93 push r25 |
1555 0aca 8F93 push r24 |
1556 0acc 80E0 ldi r24,lo8(__c.35) |
1557 0ace 90E0 ldi r25,hi8(__c.35) |
1558 0ad0 9F93 push r25 |
1559 0ad2 8F93 push r24 |
1560 0ad4 1F93 push r17 |
1561 0ad6 0E94 0000 call _printf_P |
1562 0ada 8CE3 ldi r24,lo8(60) |
1563 0adc 8093 0000 sts DispPtr,r24 |
1564 0ae0 0F90 pop __tmp_reg__ |
1565 0ae2 0F90 pop __tmp_reg__ |
1566 0ae4 0F90 pop __tmp_reg__ |
1567 0ae6 0F90 pop __tmp_reg__ |
1568 0ae8 0F90 pop __tmp_reg__ |
1569 0aea 8091 0000 lds r24,KompassStartwert |
1570 0aee 9091 0000 lds r25,(KompassStartwert)+1 |
1571 0af2 9F93 push r25 |
1572 0af4 8F93 push r24 |
1573 0af6 80E0 ldi r24,lo8(__c.36) |
1574 0af8 90E0 ldi r25,hi8(__c.36) |
1575 0afa 00C0 rjmp .L67 |
1576 .L46: |
1577 0afc 84E1 ldi r24,lo8(20) |
1578 0afe 8093 0000 sts DispPtr,r24 |
1579 0b02 80E0 ldi r24,lo8(__c.48) |
1580 0b04 90E0 ldi r25,hi8(__c.48) |
1581 0b06 9F93 push r25 |
1582 0b08 8F93 push r24 |
1583 0b0a 11E0 ldi r17,lo8(1) |
1584 0b0c 1F93 push r17 |
1585 0b0e 0E94 0000 call _printf_P |
1586 0b12 88E2 ldi r24,lo8(40) |
1587 0b14 8093 0000 sts DispPtr,r24 |
1588 0b18 0F90 pop __tmp_reg__ |
1589 0b1a 0F90 pop __tmp_reg__ |
1590 0b1c 0F90 pop __tmp_reg__ |
1591 0b1e 80E0 ldi r24,lo8(__c.49) |
1592 0b20 90E0 ldi r25,hi8(__c.49) |
1593 0b22 00C0 rjmp .L66 |
1594 .L24: |
1595 0b24 8CE3 ldi r24,lo8(60) |
1596 0b26 8093 0000 sts DispPtr,r24 |
1597 0b2a 80E0 ldi r24,lo8(__c.7) |
1598 0b2c 90E0 ldi r25,hi8(__c.7) |
1599 0b2e 00C0 rjmp .L66 |
1600 .L73: |
1601 0b30 8CE3 ldi r24,lo8(60) |
1602 0b32 8093 0000 sts DispPtr,r24 |
1603 0b36 80E0 ldi r24,lo8(__c.5) |
1604 0b38 90E0 ldi r25,hi8(__c.5) |
1605 0b3a 00C0 rjmp .L66 |
1606 .L80: |
1607 0b3c 84E4 ldi r24,lo8(68) |
1608 0b3e 8093 0000 sts DispPtr,r24 |
1609 0b42 80E0 ldi r24,lo8(__c.59) |
1610 0b44 90E0 ldi r25,hi8(__c.59) |
1611 0b46 9F93 push r25 |
1612 0b48 8F93 push r24 |
1613 0b4a 1F93 push r17 |
1614 0b4c 0E94 0000 call _printf_P |
1615 0b50 0F90 pop __tmp_reg__ |
1616 0b52 0F90 pop __tmp_reg__ |
1617 0b54 0F90 pop __tmp_reg__ |
1618 0b56 00C0 rjmp .L51 |
1619 .L79: |
1620 0b58 80E4 ldi r24,lo8(64) |
1621 0b5a 8093 0000 sts DispPtr,r24 |
1622 0b5e 80E0 ldi r24,lo8(__c.58) |
1623 0b60 90E0 ldi r25,hi8(__c.58) |
1624 0b62 9F93 push r25 |
1625 0b64 8F93 push r24 |
1626 0b66 1F93 push r17 |
1627 0b68 0E94 0000 call _printf_P |
1628 0b6c 0F90 pop __tmp_reg__ |
1629 0b6e 0F90 pop __tmp_reg__ |
1630 0b70 0F90 pop __tmp_reg__ |
1631 0b72 00C0 rjmp .L50 |
1632 .L78: |
1633 0b74 0196 adiw r24,1 |
1634 0b76 00C0 rjmp .L39 |
1635 .L75: |
1636 0b78 295F subi r18,lo8(-(7)) |
1637 0b7a 3F4F sbci r19,hi8(-(7)) |
1638 0b7c 00C0 rjmp .L36 |
1639 .L74: |
1640 0b7e 0F96 adiw r24,15 |
1641 0b80 00C0 rjmp .L35 |
1642 .L77: |
1643 0b82 295F subi r18,lo8(-(7)) |
1644 0b84 3F4F sbci r19,hi8(-(7)) |
1645 0b86 00C0 rjmp .L38 |
1646 .L76: |
1647 0b88 0F96 adiw r24,15 |
1648 0b8a 00C0 rjmp .L37 |
1649 .L20: |
1650 0b8c 1092 0000 sts RemoteKeys,__zero_reg__ |
1651 /* epilogue: frame size=0 */ |
1652 0b90 1F91 pop r17 |
1653 0b92 0895 ret |
1654 /* epilogue end (size=2) */ |
1655 /* function Menu size 1516 (1513) */ |
1657 .comm Mixer,77,1 |
1658 /* File "menu.c": code 1525 = 0x05f5 (1521), prologues 1, epilogues 3 */ |
DEFINED SYMBOLS |
*ABS*:00000000 menu.c |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:3 *ABS*:0000003f __SREG__ |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:4 *ABS*:0000003e __SP_H__ |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:5 *ABS*:0000003d __SP_L__ |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:15 .bss:00000000 RemoteKeys |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:21 .bss:00000001 MenuePunkt |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:27 .data:00000000 MaxMenue |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:34 .bss:00000002 DispPtr |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:40 .data:00000001 DisplayBuff |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:46 .data:00000051 Array |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:62 .bss:00000003 TestInt |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:67 .text:00000000 LcdClear |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:87 .progmem.data:00000000 __c.0 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:91 .progmem.data:00000005 __c.1 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:95 .progmem.data:0000000a __c.2 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:99 .progmem.data:0000001a __c.3 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:103 .progmem.data:0000002f __c.4 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:107 .progmem.data:0000003d __c.5 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:111 .progmem.data:0000004a __c.6 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:115 .progmem.data:0000005f __c.7 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:119 .progmem.data:00000071 __c.8 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:123 .progmem.data:0000007c __c.9 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:127 .progmem.data:00000080 __c.10 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:131 .progmem.data:00000084 __c.11 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:135 .progmem.data:00000088 __c.12 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:139 .progmem.data:00000095 __c.13 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:143 .progmem.data:00000099 __c.14 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:147 .progmem.data:000000a3 __c.15 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:151 .progmem.data:000000a7 __c.16 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:155 .progmem.data:000000b7 __c.17 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:159 .progmem.data:000000c7 __c.18 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:163 .progmem.data:000000d7 __c.19 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:167 .progmem.data:000000e4 __c.20 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:171 .progmem.data:000000f3 __c.21 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:175 .progmem.data:00000102 __c.22 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:179 .progmem.data:00000111 __c.23 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:183 .progmem.data:0000011f __c.24 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:187 .progmem.data:0000012e __c.25 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:191 .progmem.data:0000013d __c.26 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:195 .progmem.data:0000014c __c.27 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:199 .progmem.data:00000159 __c.28 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:203 .progmem.data:00000168 __c.29 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:207 .progmem.data:00000177 __c.30 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:211 .progmem.data:00000186 __c.31 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:215 .progmem.data:00000195 __c.32 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:219 .progmem.data:000001a4 __c.33 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:223 .progmem.data:000001af __c.34 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:227 .progmem.data:000001bd __c.35 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:231 .progmem.data:000001c8 __c.36 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:235 .progmem.data:000001d7 __c.37 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:239 .progmem.data:000001e3 __c.38 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:243 .progmem.data:000001ef __c.39 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:247 .progmem.data:000001fb __c.40 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:251 .progmem.data:00000207 __c.41 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:255 .progmem.data:0000020f __c.42 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:259 .progmem.data:0000021d __c.43 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:263 .progmem.data:0000022b __c.44 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:267 .progmem.data:0000023a __c.45 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:271 .progmem.data:00000249 __c.46 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:275 .progmem.data:00000258 __c.47 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:279 .progmem.data:00000267 __c.48 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:283 .progmem.data:0000026e __c.49 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:287 .progmem.data:0000027c __c.50 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:291 .progmem.data:0000028c __c.51 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:295 .progmem.data:000002a1 __c.52 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:299 .progmem.data:000002b6 __c.53 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:303 .progmem.data:000002cb __c.54 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:307 .progmem.data:000002da __c.55 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:311 .progmem.data:000002ee __c.56 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:315 .progmem.data:00000302 __c.57 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:319 .progmem.data:00000312 __c.58 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:323 .progmem.data:00000315 __c.59 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:327 .progmem.data:00000318 __c.60 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:331 .progmem.data:0000031b __c.61 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:335 .progmem.data:00000329 __c.62 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:339 .progmem.data:00000336 __c.63 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:343 .progmem.data:00000343 __c.64 |
C:\Users\Bernd\AppData\Local\Temp/cchoZETG.s:348 .text:00000012 Menu |
*COM*:0000004d Mixer |
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
_printf_P |
__tablejump2__ |
UBat |
SenderOkay |
PlatinenVersion |
__udivmodqi4 |
GetActiveParamSetNumber |
I2CTimeout |
MissingMotor |
EE_Parameter |
EEPromArray |
AnalogOffsetNick |
AnalogOffsetRoll |
AnalogOffsetGier |
NeutralAccX |
AdWertAccNick |
NeutralAccY |
AdWertAccRoll |
NeutralAccZ |
__fixsfsi |
Mittelwert_AccHoch |
AdNeutralNick |
AdWertNick |
AdNeutralRoll |
AdWertRoll |
AdNeutralGier |
AdWertGier |
PPM_in |
FlugMinuten |
FlugMinutenGesamt |
MotorPresent |
HoehenWert |
SollHoehe |
MessLuftdruck |
DruckOffsetSetting |
Parameter_ServoNickControl |
MotorError |
Poti1 |
Poti2 |
Poti3 |
Poti4 |
KompassRichtung |
KompassValue |
KompassStartwert |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/mymath.c |
---|
0,0 → 1,134 |
/************************************************************************************************************************************** |
* File: mymath.c |
* |
* Purpose: mathematic functions |
* |
* Functions: int16_t c_sin_8192(int16_t angle) |
* int16_t c_cos_8192(int16_t angle) |
* int16_t c_atan2(int16_t y, int16_t x) |
* uint32_t c_sqrt(uint32_t a) |
* |
* hardware: Flight Ctrl V1.3 |
* |
* Created: Feb 2013 |
* |
*************************************************************************************************************************************/ |
#include "mymath.h" |
#include <stdlib.h> |
#include <avr/pgmspace.h> |
const uint16_t pgm_sinlookup[91] PROGMEM = {0, 143, 286, 429, 571, 714, 856, 998, 1140, 1282, 1423, 1563, 1703, 1843, 1982, 2120, 2258, 2395, 2531, 2667, 2802, 2936, 3069, 3201, 3332, 3462, 3591, 3719, 3846, 3972, 4096, 4219, 4341, 4462, 4581, 4699, 4815, 4930, 5043, 5155, 5266, 5374, 5482, 5587, 5691, 5793, 5893, 5991, 6088, 6183, 6275, 6366, 6455, 6542, 6627, 6710, 6791, 6870, 6947, 7022, 7094, 7165, 7233, 7299, 7363, 7424, 7484, 7541, 7595, 7648, 7698, 7746, 7791, 7834, 7875, 7913, 7949, 7982, 8013, 8041, 8068, 8091, 8112, 8131, 8147, 8161, 8172, 8181, 8187, 8191, 8192}; |
//---------------------------------------------------------------------------------------------------------------------------------- |
// Sinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit. |
//---------------------------------------------------------------------------------------------------------------------------------- |
int16_t c_sin_8192(int16_t angle) |
{ |
int8_t m,n; |
int16_t sinus; |
// avoid negative angles |
if (angle < 0) |
{ |
m = -1; |
angle = abs(angle); |
} |
else m = +1; |
// fold angle to intervall 0 to 359 |
angle %= 360; |
// check quadrant |
if (angle <= 90) n=1; // first quadrant |
else if ((angle > 90) && (angle <= 180)) {angle = 180 - angle; n = 1;} // second quadrant |
else if ((angle > 180) && (angle <= 270)) {angle = angle - 180; n = -1;} // third quadrant |
else {angle = 360 - angle; n = -1;} //fourth quadrant |
// get lookup value |
sinus = pgm_read_word(&pgm_sinlookup[angle]); |
// calculate sinus value |
return (sinus * m * n); |
} |
// ---------------------------------------------------------------------------------------------------------------------------------- |
//---------------------------------------------------------------------------------------------------------------------------------- |
// Cosinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit. |
//---------------------------------------------------------------------------------------------------------------------------------- |
int16_t c_cos_8192(int16_t angle) |
{ |
return (c_sin_8192(90 - angle)); |
} |
// ---------------------------------------------------------------------------------------------------------------------------------- |
const uint8_t pgm_atanlookup[346] PROGMEM = {0,1,2,3,4,4,5,6,7,8,9,10,11,11,12,13,14,15,16,17,17,18,19,20,21,21,22,23,24,24,25,26,27,27,28,29,29,30,31,31,32,33,33,34,35,35,36,36,37,37,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,45,46,46,47,47,48,48,48,49,49,50,50,50,51,51,51,52,52,52,53,53,53,54,54,54,55,55,55,55,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,60,61,61,61,61,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,65,65,65,65,65,65,66,66,66,66,66,66,66,67,67,67,67,67,67,67,68,68,68,68,68,68,68,68,69,69,69,69,69,69,69,69,69,70,70,70,70,70,70,70,70,70,71,71,71,71,71,71,71,71,71,71,71,72,72,72,72,72,72,72,72,72,72,72,73,73,73,73,73,73,73,73,73,73,73,73,73,73,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79}; |
//---------------------------------------------------------------------------------------------------------------------------------- |
// arcustangens returns degree in a range of +/. 180 deg |
//---------------------------------------------------------------------------------------------------------------------------------- |
int16_t c_atan2(int16_t y, int16_t x) |
{ |
int16_t index, angle; |
int8_t m; |
if (!x && !y) return 0; //atan2(0, 0) is undefined |
if (y < 0) m = -1; |
else m = 1; |
if (!x) return (90 * m); // atan2(y,0) = +/- 90 deg |
index = (int16_t)(((int32_t)y * 64) / x);// calculate index for lookup table |
if (index < 0) index = -index; |
if (index < 346) angle = pgm_read_byte(&pgm_atanlookup[index]); // lookup for 0 deg to 79 deg |
else if (index > 7334) angle = 90; // limit is 90 deg |
else if (index > 2444) angle = 89; // 89 deg to 80 deg is mapped via intervalls |
else if (index > 1465) angle = 88; |
else if (index > 1046) angle = 87; |
else if (index > 813) angle = 86; |
else if (index > 664) angle = 85; |
else if (index > 561) angle = 84; |
else if (index > 486) angle = 83; |
else if (index > 428) angle = 82; |
else if (index > 382) angle = 81; |
else angle = 80; // (index>345) |
if (x > 0) return (angle * m); // 1st and 4th quadrant |
else if ((x < 0) && (m > 0)) return (180 - angle); // 2nd quadrant |
else return (angle - 180); // ( (x < 0) && (y < 0)) 3rd quadrant |
} |
// ---------------------------------------------------------------------------------------------------------------------------------- |
//---------------------------------------------------------------------------------------------------------------------------------- |
// Integer square root |
//---------------------------------------------------------------------------------------------------------------------------------- |
uint32_t c_sqrt(uint32_t a) |
{ |
uint32_t rem = 0; |
uint32_t root = 0; |
uint8_t i; |
for(i = 0; i < 16; i++) |
{ |
root <<= 1; |
rem = ((rem << 2) + (a >> 30)); |
a <<= 2; |
root++; |
if(root <= rem) |
{ |
rem -= root; |
root++; |
} |
else root--; |
} |
return (root >> 1); |
} |
// ---------------------------------------------------------------------------------------------------------------------------------- |
// *** EOF: ************************************************************************************************************************ |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/mymath.d |
---|
0,0 → 1,0 |
mymath.o mymath.d : mymath.c mymath.h |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/mymath.h |
---|
0,0 → 1,16 |
/***************************************************************************************************************************** |
* File: mymath.h |
* Purpose: header of mymath.c |
*****************************************************************************************************************************/ |
#ifndef _MYMATH_H |
#define _MYMATH_H |
#include <inttypes.h> |
extern int16_t c_sin_8192(int16_t angle); |
extern int16_t c_cos_8192(int16_t angle); |
extern int16_t c_atan2(int16_t y, int16_t x); |
extern uint32_t c_sqrt(uint32_t a); |
#endif |
// EOF: _MYMATH_H ************************************************************************************************************* |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/mymath.lst |
---|
0,0 → 1,869 |
1 .file "mymath.c" |
2 .arch atmega644 |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .global pgm_atanlookup |
11 .section .progmem.data,"a",@progbits |
14 pgm_atanlookup: |
15 0000 00 .byte 0 |
16 0001 01 .byte 1 |
17 0002 02 .byte 2 |
18 0003 03 .byte 3 |
19 0004 04 .byte 4 |
20 0005 04 .byte 4 |
21 0006 05 .byte 5 |
22 0007 06 .byte 6 |
23 0008 07 .byte 7 |
24 0009 08 .byte 8 |
25 000a 09 .byte 9 |
26 000b 0A .byte 10 |
27 000c 0B .byte 11 |
28 000d 0B .byte 11 |
29 000e 0C .byte 12 |
30 000f 0D .byte 13 |
31 0010 0E .byte 14 |
32 0011 0F .byte 15 |
33 0012 10 .byte 16 |
34 0013 11 .byte 17 |
35 0014 11 .byte 17 |
36 0015 12 .byte 18 |
37 0016 13 .byte 19 |
38 0017 14 .byte 20 |
39 0018 15 .byte 21 |
40 0019 15 .byte 21 |
41 001a 16 .byte 22 |
42 001b 17 .byte 23 |
43 001c 18 .byte 24 |
44 001d 18 .byte 24 |
45 001e 19 .byte 25 |
46 001f 1A .byte 26 |
47 0020 1B .byte 27 |
48 0021 1B .byte 27 |
49 0022 1C .byte 28 |
50 0023 1D .byte 29 |
51 0024 1D .byte 29 |
52 0025 1E .byte 30 |
53 0026 1F .byte 31 |
54 0027 1F .byte 31 |
55 0028 20 .byte 32 |
56 0029 21 .byte 33 |
57 002a 21 .byte 33 |
58 002b 22 .byte 34 |
59 002c 23 .byte 35 |
60 002d 23 .byte 35 |
61 002e 24 .byte 36 |
62 002f 24 .byte 36 |
63 0030 25 .byte 37 |
64 0031 25 .byte 37 |
65 0032 26 .byte 38 |
66 0033 27 .byte 39 |
67 0034 27 .byte 39 |
68 0035 28 .byte 40 |
69 0036 28 .byte 40 |
70 0037 29 .byte 41 |
71 0038 29 .byte 41 |
72 0039 2A .byte 42 |
73 003a 2A .byte 42 |
74 003b 2B .byte 43 |
75 003c 2B .byte 43 |
76 003d 2C .byte 44 |
77 003e 2C .byte 44 |
78 003f 2D .byte 45 |
79 0040 2D .byte 45 |
80 0041 2D .byte 45 |
81 0042 2E .byte 46 |
82 0043 2E .byte 46 |
83 0044 2F .byte 47 |
84 0045 2F .byte 47 |
85 0046 30 .byte 48 |
86 0047 30 .byte 48 |
87 0048 30 .byte 48 |
88 0049 31 .byte 49 |
89 004a 31 .byte 49 |
90 004b 32 .byte 50 |
91 004c 32 .byte 50 |
92 004d 32 .byte 50 |
93 004e 33 .byte 51 |
94 004f 33 .byte 51 |
95 0050 33 .byte 51 |
96 0051 34 .byte 52 |
97 0052 34 .byte 52 |
98 0053 34 .byte 52 |
99 0054 35 .byte 53 |
100 0055 35 .byte 53 |
101 0056 35 .byte 53 |
102 0057 36 .byte 54 |
103 0058 36 .byte 54 |
104 0059 36 .byte 54 |
105 005a 37 .byte 55 |
106 005b 37 .byte 55 |
107 005c 37 .byte 55 |
108 005d 37 .byte 55 |
109 005e 38 .byte 56 |
110 005f 38 .byte 56 |
111 0060 38 .byte 56 |
112 0061 39 .byte 57 |
113 0062 39 .byte 57 |
114 0063 39 .byte 57 |
115 0064 39 .byte 57 |
116 0065 3A .byte 58 |
117 0066 3A .byte 58 |
118 0067 3A .byte 58 |
119 0068 3A .byte 58 |
120 0069 3B .byte 59 |
121 006a 3B .byte 59 |
122 006b 3B .byte 59 |
123 006c 3B .byte 59 |
124 006d 3C .byte 60 |
125 006e 3C .byte 60 |
126 006f 3C .byte 60 |
127 0070 3C .byte 60 |
128 0071 3C .byte 60 |
129 0072 3D .byte 61 |
130 0073 3D .byte 61 |
131 0074 3D .byte 61 |
132 0075 3D .byte 61 |
133 0076 3E .byte 62 |
134 0077 3E .byte 62 |
135 0078 3E .byte 62 |
136 0079 3E .byte 62 |
137 007a 3E .byte 62 |
138 007b 3F .byte 63 |
139 007c 3F .byte 63 |
140 007d 3F .byte 63 |
141 007e 3F .byte 63 |
142 007f 3F .byte 63 |
143 0080 3F .byte 63 |
144 0081 40 .byte 64 |
145 0082 40 .byte 64 |
146 0083 40 .byte 64 |
147 0084 40 .byte 64 |
148 0085 40 .byte 64 |
149 0086 40 .byte 64 |
150 0087 41 .byte 65 |
151 0088 41 .byte 65 |
152 0089 41 .byte 65 |
153 008a 41 .byte 65 |
154 008b 41 .byte 65 |
155 008c 41 .byte 65 |
156 008d 42 .byte 66 |
157 008e 42 .byte 66 |
158 008f 42 .byte 66 |
159 0090 42 .byte 66 |
160 0091 42 .byte 66 |
161 0092 42 .byte 66 |
162 0093 42 .byte 66 |
163 0094 43 .byte 67 |
164 0095 43 .byte 67 |
165 0096 43 .byte 67 |
166 0097 43 .byte 67 |
167 0098 43 .byte 67 |
168 0099 43 .byte 67 |
169 009a 43 .byte 67 |
170 009b 44 .byte 68 |
171 009c 44 .byte 68 |
172 009d 44 .byte 68 |
173 009e 44 .byte 68 |
174 009f 44 .byte 68 |
175 00a0 44 .byte 68 |
176 00a1 44 .byte 68 |
177 00a2 44 .byte 68 |
178 00a3 45 .byte 69 |
179 00a4 45 .byte 69 |
180 00a5 45 .byte 69 |
181 00a6 45 .byte 69 |
182 00a7 45 .byte 69 |
183 00a8 45 .byte 69 |
184 00a9 45 .byte 69 |
185 00aa 45 .byte 69 |
186 00ab 45 .byte 69 |
187 00ac 46 .byte 70 |
188 00ad 46 .byte 70 |
189 00ae 46 .byte 70 |
190 00af 46 .byte 70 |
191 00b0 46 .byte 70 |
192 00b1 46 .byte 70 |
193 00b2 46 .byte 70 |
194 00b3 46 .byte 70 |
195 00b4 46 .byte 70 |
196 00b5 47 .byte 71 |
197 00b6 47 .byte 71 |
198 00b7 47 .byte 71 |
199 00b8 47 .byte 71 |
200 00b9 47 .byte 71 |
201 00ba 47 .byte 71 |
202 00bb 47 .byte 71 |
203 00bc 47 .byte 71 |
204 00bd 47 .byte 71 |
205 00be 47 .byte 71 |
206 00bf 47 .byte 71 |
207 00c0 48 .byte 72 |
208 00c1 48 .byte 72 |
209 00c2 48 .byte 72 |
210 00c3 48 .byte 72 |
211 00c4 48 .byte 72 |
212 00c5 48 .byte 72 |
213 00c6 48 .byte 72 |
214 00c7 48 .byte 72 |
215 00c8 48 .byte 72 |
216 00c9 48 .byte 72 |
217 00ca 48 .byte 72 |
218 00cb 49 .byte 73 |
219 00cc 49 .byte 73 |
220 00cd 49 .byte 73 |
221 00ce 49 .byte 73 |
222 00cf 49 .byte 73 |
223 00d0 49 .byte 73 |
224 00d1 49 .byte 73 |
225 00d2 49 .byte 73 |
226 00d3 49 .byte 73 |
227 00d4 49 .byte 73 |
228 00d5 49 .byte 73 |
229 00d6 49 .byte 73 |
230 00d7 49 .byte 73 |
231 00d8 49 .byte 73 |
232 00d9 4A .byte 74 |
233 00da 4A .byte 74 |
234 00db 4A .byte 74 |
235 00dc 4A .byte 74 |
236 00dd 4A .byte 74 |
237 00de 4A .byte 74 |
238 00df 4A .byte 74 |
239 00e0 4A .byte 74 |
240 00e1 4A .byte 74 |
241 00e2 4A .byte 74 |
242 00e3 4A .byte 74 |
243 00e4 4A .byte 74 |
244 00e5 4A .byte 74 |
245 00e6 4A .byte 74 |
246 00e7 4B .byte 75 |
247 00e8 4B .byte 75 |
248 00e9 4B .byte 75 |
249 00ea 4B .byte 75 |
250 00eb 4B .byte 75 |
251 00ec 4B .byte 75 |
252 00ed 4B .byte 75 |
253 00ee 4B .byte 75 |
254 00ef 4B .byte 75 |
255 00f0 4B .byte 75 |
256 00f1 4B .byte 75 |
257 00f2 4B .byte 75 |
258 00f3 4B .byte 75 |
259 00f4 4B .byte 75 |
260 00f5 4B .byte 75 |
261 00f6 4B .byte 75 |
262 00f7 4B .byte 75 |
263 00f8 4C .byte 76 |
264 00f9 4C .byte 76 |
265 00fa 4C .byte 76 |
266 00fb 4C .byte 76 |
267 00fc 4C .byte 76 |
268 00fd 4C .byte 76 |
269 00fe 4C .byte 76 |
270 00ff 4C .byte 76 |
271 0100 4C .byte 76 |
272 0101 4C .byte 76 |
273 0102 4C .byte 76 |
274 0103 4C .byte 76 |
275 0104 4C .byte 76 |
276 0105 4C .byte 76 |
277 0106 4C .byte 76 |
278 0107 4C .byte 76 |
279 0108 4C .byte 76 |
280 0109 4C .byte 76 |
281 010a 4C .byte 76 |
282 010b 4D .byte 77 |
283 010c 4D .byte 77 |
284 010d 4D .byte 77 |
285 010e 4D .byte 77 |
286 010f 4D .byte 77 |
287 0110 4D .byte 77 |
288 0111 4D .byte 77 |
289 0112 4D .byte 77 |
290 0113 4D .byte 77 |
291 0114 4D .byte 77 |
292 0115 4D .byte 77 |
293 0116 4D .byte 77 |
294 0117 4D .byte 77 |
295 0118 4D .byte 77 |
296 0119 4D .byte 77 |
297 011a 4D .byte 77 |
298 011b 4D .byte 77 |
299 011c 4D .byte 77 |
300 011d 4D .byte 77 |
301 011e 4D .byte 77 |
302 011f 4D .byte 77 |
303 0120 4D .byte 77 |
304 0121 4E .byte 78 |
305 0122 4E .byte 78 |
306 0123 4E .byte 78 |
307 0124 4E .byte 78 |
308 0125 4E .byte 78 |
309 0126 4E .byte 78 |
310 0127 4E .byte 78 |
311 0128 4E .byte 78 |
312 0129 4E .byte 78 |
313 012a 4E .byte 78 |
314 012b 4E .byte 78 |
315 012c 4E .byte 78 |
316 012d 4E .byte 78 |
317 012e 4E .byte 78 |
318 012f 4E .byte 78 |
319 0130 4E .byte 78 |
320 0131 4E .byte 78 |
321 0132 4E .byte 78 |
322 0133 4E .byte 78 |
323 0134 4E .byte 78 |
324 0135 4E .byte 78 |
325 0136 4E .byte 78 |
326 0137 4E .byte 78 |
327 0138 4E .byte 78 |
328 0139 4E .byte 78 |
329 013a 4E .byte 78 |
330 013b 4F .byte 79 |
331 013c 4F .byte 79 |
332 013d 4F .byte 79 |
333 013e 4F .byte 79 |
334 013f 4F .byte 79 |
335 0140 4F .byte 79 |
336 0141 4F .byte 79 |
337 0142 4F .byte 79 |
338 0143 4F .byte 79 |
339 0144 4F .byte 79 |
340 0145 4F .byte 79 |
341 0146 4F .byte 79 |
342 0147 4F .byte 79 |
343 0148 4F .byte 79 |
344 0149 4F .byte 79 |
345 014a 4F .byte 79 |
346 014b 4F .byte 79 |
347 014c 4F .byte 79 |
348 014d 4F .byte 79 |
349 014e 4F .byte 79 |
350 014f 4F .byte 79 |
351 0150 4F .byte 79 |
352 0151 4F .byte 79 |
353 0152 4F .byte 79 |
354 0153 4F .byte 79 |
355 0154 4F .byte 79 |
356 0155 4F .byte 79 |
357 0156 4F .byte 79 |
358 0157 4F .byte 79 |
359 0158 4F .byte 79 |
360 0159 4F .byte 79 |
361 .global pgm_sinlookup |
364 pgm_sinlookup: |
365 015a 0000 .word 0 |
366 015c 8F00 .word 143 |
367 015e 1E01 .word 286 |
368 0160 AD01 .word 429 |
369 0162 3B02 .word 571 |
370 0164 CA02 .word 714 |
371 0166 5803 .word 856 |
372 0168 E603 .word 998 |
373 016a 7404 .word 1140 |
374 016c 0205 .word 1282 |
375 016e 8F05 .word 1423 |
376 0170 1B06 .word 1563 |
377 0172 A706 .word 1703 |
378 0174 3307 .word 1843 |
379 0176 BE07 .word 1982 |
380 0178 4808 .word 2120 |
381 017a D208 .word 2258 |
382 017c 5B09 .word 2395 |
383 017e E309 .word 2531 |
384 0180 6B0A .word 2667 |
385 0182 F20A .word 2802 |
386 0184 780B .word 2936 |
387 0186 FD0B .word 3069 |
388 0188 810C .word 3201 |
389 018a 040D .word 3332 |
390 018c 860D .word 3462 |
391 018e 070E .word 3591 |
392 0190 870E .word 3719 |
393 0192 060F .word 3846 |
394 0194 840F .word 3972 |
395 0196 0010 .word 4096 |
396 0198 7B10 .word 4219 |
397 019a F510 .word 4341 |
398 019c 6E11 .word 4462 |
399 019e E511 .word 4581 |
400 01a0 5B12 .word 4699 |
401 01a2 CF12 .word 4815 |
402 01a4 4213 .word 4930 |
403 01a6 B313 .word 5043 |
404 01a8 2314 .word 5155 |
405 01aa 9214 .word 5266 |
406 01ac FE14 .word 5374 |
407 01ae 6A15 .word 5482 |
408 01b0 D315 .word 5587 |
409 01b2 3B16 .word 5691 |
410 01b4 A116 .word 5793 |
411 01b6 0517 .word 5893 |
412 01b8 6717 .word 5991 |
413 01ba C817 .word 6088 |
414 01bc 2718 .word 6183 |
415 01be 8318 .word 6275 |
416 01c0 DE18 .word 6366 |
417 01c2 3719 .word 6455 |
418 01c4 8E19 .word 6542 |
419 01c6 E319 .word 6627 |
420 01c8 361A .word 6710 |
421 01ca 871A .word 6791 |
422 01cc D61A .word 6870 |
423 01ce 231B .word 6947 |
424 01d0 6E1B .word 7022 |
425 01d2 B61B .word 7094 |
426 01d4 FD1B .word 7165 |
427 01d6 411C .word 7233 |
428 01d8 831C .word 7299 |
429 01da C31C .word 7363 |
430 01dc 001D .word 7424 |
431 01de 3C1D .word 7484 |
432 01e0 751D .word 7541 |
433 01e2 AB1D .word 7595 |
434 01e4 E01D .word 7648 |
435 01e6 121E .word 7698 |
436 01e8 421E .word 7746 |
437 01ea 6F1E .word 7791 |
438 01ec 9A1E .word 7834 |
439 01ee C31E .word 7875 |
440 01f0 E91E .word 7913 |
441 01f2 0D1F .word 7949 |
442 01f4 2E1F .word 7982 |
443 01f6 4D1F .word 8013 |
444 01f8 691F .word 8041 |
445 01fa 841F .word 8068 |
446 01fc 9B1F .word 8091 |
447 01fe B01F .word 8112 |
448 0200 C31F .word 8131 |
449 0202 D31F .word 8147 |
450 0204 E11F .word 8161 |
451 0206 EC1F .word 8172 |
452 0208 F51F .word 8181 |
453 020a FB1F .word 8187 |
454 020c FF1F .word 8191 |
455 020e 0020 .word 8192 |
456 .text |
457 .global c_sin_8192 |
459 c_sin_8192: |
460 /* prologue: frame size=0 */ |
461 0000 CF93 push r28 |
462 /* prologue end (size=1) */ |
463 0002 FC01 movw r30,r24 |
464 0004 97FD sbrc r25,7 |
465 0006 00C0 rjmp .L14 |
466 0008 C1E0 ldi r28,lo8(1) |
467 .L4: |
468 000a 28E6 ldi r18,lo8(360) |
469 000c 31E0 ldi r19,hi8(360) |
470 000e CF01 movw r24,r30 |
471 0010 B901 movw r22,r18 |
472 0012 0E94 0000 call __divmodhi4 |
473 0016 FC01 movw r30,r24 |
474 0018 8B35 cpi r24,91 |
475 001a 9105 cpc r25,__zero_reg__ |
476 001c 04F0 brlt .L12 |
477 001e 8B55 subi r24,lo8(-(-91)) |
478 0020 9040 sbci r25,hi8(-(-91)) |
479 0022 8A35 cpi r24,90 |
480 0024 9105 cpc r25,__zero_reg__ |
481 0026 00F4 brsh .L7 |
482 0028 84EB ldi r24,lo8(180) |
483 002a 90E0 ldi r25,hi8(180) |
484 002c 8E1B sub r24,r30 |
485 002e 9F0B sbc r25,r31 |
486 0030 FC01 movw r30,r24 |
487 .L12: |
488 0032 41E0 ldi r20,lo8(1) |
489 0034 00C0 rjmp .L6 |
490 .L7: |
491 0036 CF01 movw r24,r30 |
492 0038 855B subi r24,lo8(-(-181)) |
493 003a 9040 sbci r25,hi8(-(-181)) |
494 003c 8A35 cpi r24,90 |
495 003e 9105 cpc r25,__zero_reg__ |
496 0040 00F4 brsh .L9 |
497 0042 E45B subi r30,lo8(-(-180)) |
498 0044 F040 sbci r31,hi8(-(-180)) |
499 0046 4FEF ldi r20,lo8(-1) |
500 0048 00C0 rjmp .L6 |
501 .L14: |
502 004a CFEF ldi r28,lo8(-1) |
503 004c F095 com r31 |
504 004e E195 neg r30 |
505 0050 FF4F sbci r31,lo8(-1) |
506 0052 00C0 rjmp .L4 |
507 .L9: |
508 0054 2E1B sub r18,r30 |
509 0056 3F0B sbc r19,r31 |
510 0058 F901 movw r30,r18 |
511 005a 4FEF ldi r20,lo8(-1) |
512 .L6: |
513 005c EE0F add r30,r30 |
514 005e FF1F adc r31,r31 |
515 0060 E050 subi r30,lo8(-(pgm_sinlookup)) |
516 0062 F040 sbci r31,hi8(-(pgm_sinlookup)) |
517 /* #APP */ |
518 0064 2591 lpm r18, Z+ |
519 0066 3491 lpm r19, Z |
520 |
521 /* #NOAPP */ |
522 0068 8C2F mov r24,r28 |
523 006a 9927 clr r25 |
524 006c 87FD sbrc r24,7 |
525 006e 9095 com r25 |
526 0070 829F mul r24,r18 |
527 0072 B001 movw r22,r0 |
528 0074 839F mul r24,r19 |
529 0076 700D add r23,r0 |
530 0078 929F mul r25,r18 |
531 007a 700D add r23,r0 |
532 007c 1124 clr r1 |
533 007e 842F mov r24,r20 |
534 0080 9927 clr r25 |
535 0082 87FD sbrc r24,7 |
536 0084 9095 com r25 |
537 0086 689F mul r22,r24 |
538 0088 A001 movw r20,r0 |
539 008a 699F mul r22,r25 |
540 008c 500D add r21,r0 |
541 008e 789F mul r23,r24 |
542 0090 500D add r21,r0 |
543 0092 1124 clr r1 |
544 0094 CA01 movw r24,r20 |
545 /* epilogue: frame size=0 */ |
546 0096 CF91 pop r28 |
547 0098 0895 ret |
548 /* epilogue end (size=2) */ |
549 /* function c_sin_8192 size 81 (78) */ |
551 .global c_cos_8192 |
553 c_cos_8192: |
554 /* prologue: frame size=0 */ |
555 /* prologue end (size=0) */ |
556 009a 2AE5 ldi r18,lo8(90) |
557 009c 30E0 ldi r19,hi8(90) |
558 009e 281B sub r18,r24 |
559 00a0 390B sbc r19,r25 |
560 00a2 C901 movw r24,r18 |
561 00a4 0E94 0000 call c_sin_8192 |
562 /* epilogue: frame size=0 */ |
563 00a8 0895 ret |
564 /* epilogue end (size=1) */ |
565 /* function c_cos_8192 size 8 (7) */ |
567 .global c_atan2 |
569 c_atan2: |
570 /* prologue: frame size=0 */ |
571 00aa 1F93 push r17 |
572 00ac CF93 push r28 |
573 00ae DF93 push r29 |
574 /* prologue end (size=3) */ |
575 00b0 EB01 movw r28,r22 |
576 00b2 6115 cp r22,__zero_reg__ |
577 00b4 7105 cpc r23,__zero_reg__ |
578 00b6 01F4 brne .L17 |
579 00b8 0097 sbiw r24,0 |
580 00ba 01F4 brne .+2 |
581 00bc 00C0 rjmp .L16 |
582 .L17: |
583 00be 97FD sbrc r25,7 |
584 00c0 00C0 rjmp .L48 |
585 00c2 11E0 ldi r17,lo8(1) |
586 .L19: |
587 00c4 2097 sbiw r28,0 |
588 00c6 01F4 brne .L20 |
589 00c8 8AE5 ldi r24,lo8(90) |
590 00ca 1802 muls r17,r24 |
591 00cc B001 movw r22,r0 |
592 00ce 1124 clr r1 |
593 00d0 00C0 rjmp .L16 |
594 .L20: |
595 00d2 AA27 clr r26 |
596 00d4 97FD sbrc r25,7 |
597 00d6 A095 com r26 |
598 00d8 BA2F mov r27,r26 |
599 00da 26E0 ldi r18,6 |
600 00dc 880F 1: lsl r24 |
601 00de 991F rol r25 |
602 00e0 AA1F rol r26 |
603 00e2 BB1F rol r27 |
604 00e4 2A95 dec r18 |
605 00e6 01F4 brne 1b |
606 00e8 9E01 movw r18,r28 |
607 00ea 4427 clr r20 |
608 00ec 37FD sbrc r19,7 |
609 00ee 4095 com r20 |
610 00f0 542F mov r21,r20 |
611 00f2 BC01 movw r22,r24 |
612 00f4 CD01 movw r24,r26 |
613 00f6 0E94 0000 call __divmodsi4 |
614 00fa F901 movw r30,r18 |
615 00fc 37FD sbrc r19,7 |
616 00fe 00C0 rjmp .L49 |
617 .L21: |
618 0100 81E0 ldi r24,hi8(346) |
619 0102 EA35 cpi r30,lo8(346) |
620 0104 F807 cpc r31,r24 |
621 0106 04F0 brlt .L50 |
622 0108 8CE1 ldi r24,hi8(7335) |
623 010a E73A cpi r30,lo8(7335) |
624 010c F807 cpc r31,r24 |
625 010e 04F0 brlt .L24 |
626 0110 2AE5 ldi r18,lo8(90) |
627 0112 30E0 ldi r19,hi8(90) |
628 .L23: |
629 0114 1C16 cp __zero_reg__,r28 |
630 0116 1D06 cpc __zero_reg__,r29 |
631 0118 04F4 brge .L44 |
632 011a 812F mov r24,r17 |
633 011c 9927 clr r25 |
634 011e 87FD sbrc r24,7 |
635 0120 9095 com r25 |
636 0122 829F mul r24,r18 |
637 0124 B001 movw r22,r0 |
638 0126 839F mul r24,r19 |
639 0128 700D add r23,r0 |
640 012a 929F mul r25,r18 |
641 012c 700D add r23,r0 |
642 012e 1124 clr r1 |
643 0130 00C0 rjmp .L16 |
644 .L50: |
645 0132 E050 subi r30,lo8(-(pgm_atanlookup)) |
646 0134 F040 sbci r31,hi8(-(pgm_atanlookup)) |
647 /* #APP */ |
648 0136 8491 lpm r24, Z |
649 |
650 /* #NOAPP */ |
651 0138 282F mov r18,r24 |
652 013a 3327 clr r19 |
653 013c 00C0 rjmp .L23 |
654 .L48: |
655 013e 1FEF ldi r17,lo8(-1) |
656 0140 00C0 rjmp .L19 |
657 .L24: |
658 0142 89E0 ldi r24,hi8(2445) |
659 0144 ED38 cpi r30,lo8(2445) |
660 0146 F807 cpc r31,r24 |
661 0148 04F4 brge .L51 |
662 014a 85E0 ldi r24,hi8(1466) |
663 014c EA3B cpi r30,lo8(1466) |
664 014e F807 cpc r31,r24 |
665 0150 04F0 brlt .L28 |
666 0152 28E5 ldi r18,lo8(88) |
667 0154 30E0 ldi r19,hi8(88) |
668 0156 00C0 rjmp .L23 |
669 .L49: |
670 0158 F095 com r31 |
671 015a E195 neg r30 |
672 015c FF4F sbci r31,lo8(-1) |
673 015e 00C0 rjmp .L21 |
674 .L44: |
675 0160 D7FD sbrc r29,7 |
676 0162 00C0 rjmp .L52 |
677 .L46: |
678 0164 B901 movw r22,r18 |
679 0166 645B subi r22,lo8(-(-180)) |
680 0168 7040 sbci r23,hi8(-(-180)) |
681 016a 00C0 rjmp .L16 |
682 .L51: |
683 016c 29E5 ldi r18,lo8(89) |
684 016e 30E0 ldi r19,hi8(89) |
685 0170 00C0 rjmp .L23 |
686 .L28: |
687 0172 84E0 ldi r24,hi8(1047) |
688 0174 E731 cpi r30,lo8(1047) |
689 0176 F807 cpc r31,r24 |
690 0178 04F0 brlt .L30 |
691 017a 27E5 ldi r18,lo8(87) |
692 017c 30E0 ldi r19,hi8(87) |
693 017e 00C0 rjmp .L23 |
694 .L52: |
695 0180 1116 cp __zero_reg__,r17 |
696 0182 04F4 brge .L46 |
697 0184 64EB ldi r22,lo8(180) |
698 0186 70E0 ldi r23,hi8(180) |
699 0188 621B sub r22,r18 |
700 018a 730B sbc r23,r19 |
701 018c 00C0 rjmp .L16 |
702 .L30: |
703 018e 83E0 ldi r24,hi8(814) |
704 0190 EE32 cpi r30,lo8(814) |
705 0192 F807 cpc r31,r24 |
706 0194 04F0 brlt .L32 |
707 0196 26E5 ldi r18,lo8(86) |
708 0198 30E0 ldi r19,hi8(86) |
709 019a 00C0 rjmp .L23 |
710 .L32: |
711 019c 82E0 ldi r24,hi8(665) |
712 019e E939 cpi r30,lo8(665) |
713 01a0 F807 cpc r31,r24 |
714 01a2 04F0 brlt .L34 |
715 01a4 25E5 ldi r18,lo8(85) |
716 01a6 30E0 ldi r19,hi8(85) |
717 01a8 00C0 rjmp .L23 |
718 .L34: |
719 01aa 82E0 ldi r24,hi8(562) |
720 01ac E233 cpi r30,lo8(562) |
721 01ae F807 cpc r31,r24 |
722 01b0 04F0 brlt .L36 |
723 01b2 24E5 ldi r18,lo8(84) |
724 01b4 30E0 ldi r19,hi8(84) |
725 01b6 00C0 rjmp .L23 |
726 .L36: |
727 01b8 81E0 ldi r24,hi8(487) |
728 01ba E73E cpi r30,lo8(487) |
729 01bc F807 cpc r31,r24 |
730 01be 04F0 brlt .L38 |
731 01c0 23E5 ldi r18,lo8(83) |
732 01c2 30E0 ldi r19,hi8(83) |
733 01c4 00C0 rjmp .L23 |
734 .L38: |
735 01c6 81E0 ldi r24,hi8(429) |
736 01c8 ED3A cpi r30,lo8(429) |
737 01ca F807 cpc r31,r24 |
738 01cc 04F0 brlt .L40 |
739 01ce 22E5 ldi r18,lo8(82) |
740 01d0 30E0 ldi r19,hi8(82) |
741 01d2 00C0 rjmp .L23 |
742 .L40: |
743 01d4 EF57 subi r30,lo8(383) |
744 01d6 F140 sbci r31,hi8(383) |
745 01d8 04F0 brlt .L42 |
746 01da 21E5 ldi r18,lo8(81) |
747 01dc 30E0 ldi r19,hi8(81) |
748 01de 00C0 rjmp .L23 |
749 .L42: |
750 01e0 20E5 ldi r18,lo8(80) |
751 01e2 30E0 ldi r19,hi8(80) |
752 01e4 00C0 rjmp .L23 |
753 .L16: |
754 01e6 CB01 movw r24,r22 |
755 /* epilogue: frame size=0 */ |
756 01e8 DF91 pop r29 |
757 01ea CF91 pop r28 |
758 01ec 1F91 pop r17 |
759 01ee 0895 ret |
760 /* epilogue end (size=4) */ |
761 /* function c_atan2 size 167 (160) */ |
763 .global c_sqrt |
765 c_sqrt: |
766 /* prologue: frame size=0 */ |
767 01f0 EF92 push r14 |
768 01f2 FF92 push r15 |
769 01f4 0F93 push r16 |
770 01f6 1F93 push r17 |
771 01f8 CF93 push r28 |
772 01fa DF93 push r29 |
773 /* prologue end (size=6) */ |
774 01fc 7B01 movw r14,r22 |
775 01fe 8C01 movw r16,r24 |
776 0200 20E0 ldi r18,lo8(0) |
777 0202 30E0 ldi r19,hi8(0) |
778 0204 40E0 ldi r20,hlo8(0) |
779 0206 50E0 ldi r21,hhi8(0) |
780 0208 FA01 movw r30,r20 |
781 020a E901 movw r28,r18 |
782 020c 6FE0 ldi r22,lo8(15) |
783 020e 00C0 rjmp .L59 |
784 .L63: |
785 0210 C21B sub r28,r18 |
786 0212 D30B sbc r29,r19 |
787 0214 E40B sbc r30,r20 |
788 0216 F50B sbc r31,r21 |
789 0218 2F5F subi r18,lo8(-(1)) |
790 021a 3F4F sbci r19,hi8(-(1)) |
791 021c 4F4F sbci r20,hlo8(-(1)) |
792 021e 5F4F sbci r21,hhi8(-(1)) |
793 0220 6150 subi r22,lo8(-(-1)) |
794 0222 67FD sbrc r22,7 |
795 0224 00C0 rjmp .L62 |
796 .L59: |
797 0226 220F lsl r18 |
798 0228 331F rol r19 |
799 022a 441F rol r20 |
800 022c 551F rol r21 |
801 022e CC0F lsl r28 |
802 0230 DD1F rol r29 |
803 0232 EE1F rol r30 |
804 0234 FF1F rol r31 |
805 0236 CC0F lsl r28 |
806 0238 DD1F rol r29 |
807 023a EE1F rol r30 |
808 023c FF1F rol r31 |
809 023e D801 movw r26,r16 |
810 0240 C701 movw r24,r14 |
811 0242 7EE1 ldi r23,30 |
812 0244 B695 1: lsr r27 |
813 0246 A795 ror r26 |
814 0248 9795 ror r25 |
815 024a 8795 ror r24 |
816 024c 7A95 dec r23 |
817 024e 01F4 brne 1b |
818 0250 C80F add r28,r24 |
819 0252 D91F adc r29,r25 |
820 0254 EA1F adc r30,r26 |
821 0256 FB1F adc r31,r27 |
822 0258 EE0C lsl r14 |
823 025a FF1C rol r15 |
824 025c 001F rol r16 |
825 025e 111F rol r17 |
826 0260 EE0C lsl r14 |
827 0262 FF1C rol r15 |
828 0264 001F rol r16 |
829 0266 111F rol r17 |
830 0268 2F5F subi r18,lo8(-(1)) |
831 026a 3F4F sbci r19,hi8(-(1)) |
832 026c 4F4F sbci r20,hlo8(-(1)) |
833 026e 5F4F sbci r21,hhi8(-(1)) |
834 0270 C217 cp r28,r18 |
835 0272 D307 cpc r29,r19 |
836 0274 E407 cpc r30,r20 |
837 0276 F507 cpc r31,r21 |
838 0278 00F4 brsh .L63 |
839 027a 2150 subi r18,lo8(-(-1)) |
840 027c 3040 sbci r19,hi8(-(-1)) |
841 027e 4040 sbci r20,hlo8(-(-1)) |
842 0280 5040 sbci r21,hhi8(-(-1)) |
843 0282 6150 subi r22,lo8(-(-1)) |
844 0284 67FF sbrs r22,7 |
845 0286 00C0 rjmp .L59 |
846 .L62: |
847 0288 5695 lsr r21 |
848 028a 4795 ror r20 |
849 028c 3795 ror r19 |
850 028e 2795 ror r18 |
851 0290 CA01 movw r24,r20 |
852 0292 B901 movw r22,r18 |
853 /* epilogue: frame size=0 */ |
854 0294 E6E0 ldi r30,6 |
855 0296 CDB7 in r28,__SP_L__ |
856 0298 DEB7 in r29,__SP_H__ |
857 029a 0C94 0000 jmp __epilogue_restores__+24 |
858 /* epilogue end (size=5) */ |
859 /* function c_sqrt size 87 (76) */ |
861 /* File "mymath.c": code 343 = 0x0157 ( 321), prologues 10, epilogues 12 */ |
DEFINED SYMBOLS |
*ABS*:00000000 mymath.c |
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:3 *ABS*:0000003f __SREG__ |
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:4 *ABS*:0000003e __SP_H__ |
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:5 *ABS*:0000003d __SP_L__ |
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:14 .progmem.data:00000000 pgm_atanlookup |
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:364 .progmem.data:0000015a pgm_sinlookup |
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:459 .text:00000000 c_sin_8192 |
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:553 .text:0000009a c_cos_8192 |
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:569 .text:000000aa c_atan2 |
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:765 .text:000001f0 c_sqrt |
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
__divmodhi4 |
__divmodsi4 |
__epilogue_restores__ |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/old_macros.h |
---|
0,0 → 1,46 |
//---------------------------------------------------------------------------------------------------------------------------------- |
// For backwards compatibility only. |
//---------------------------------------------------------------------------------------------------------------------------------- |
#ifndef cbi |
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) |
#endif |
#ifndef sbi |
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) |
#endif |
#ifndef inb |
#define inb(sfr) _SFR_BYTE(sfr) |
#endif |
#ifndef outb |
#define outb(sfr, val) (_SFR_BYTE(sfr) = (val)) |
#endif |
#ifndef inw |
#define inw(sfr) _SFR_WORD(sfr) |
#endif |
#ifndef outw |
#define outw(sfr, val) (_SFR_WORD(sfr) = (val)) |
#endif |
#ifndef outp |
#define outp(val, sfr) outb(sfr, val) |
#endif |
#ifndef inp |
#define inp(sfr) inb(sfr) |
#endif |
#ifndef BV |
#define BV(bit) _BV(bit) |
#endif |
#ifndef PRG_RDB |
#define PRG_RDB pgm_read_byte |
#endif |
//---------------------------------------------------------------------------------------------------------------------------------- |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/printf_P.c |
---|
0,0 → 1,482 |
//---------------------------------------------------------------------------------------------------------------------------------- |
// Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist nicht von der Lizenz für den MikroKopter-Teil unterstellt |
/* |
Copyright (C) 1993 Free Software Foundation |
This file is part of the GNU IO Library. This library is free |
software; you can redistribute it and/or modify it under the |
terms of the GNU General Public License as published by the |
Free Software Foundation; either version 2, or (at your option) |
any later version. |
This library is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this library; see the file COPYING. If not, write to the Free |
Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
As a special exception, if you link this library with files |
compiled with a GNU compiler to produce an executable, this does not cause |
the resulting executable to be covered by the GNU General Public License. |
This exception does not however invalidate any other reasons why |
the executable file might be covered by the GNU General Public License. */ |
/* |
* Copyright (c) 1990 Regents of the University of California. |
* All rights reserved. |
* |
* Redistribution and use in source and binary forms, with or without |
* modification, are permitted provided that the following conditions |
* are met: |
* 1. Redistributions of source code must retain the above copyright |
* notice, this list of conditions and the following disclaimer. |
* 2. Redistributions in binary form must reproduce the above copyright |
* notice, this list of conditions and the following disclaimer in the |
* documentation and/or other materials provided with the distribution. |
* 3. [rescinded 22 July 1999] |
* 4. Neither the name of the University nor the names of its contributors |
* may be used to endorse or promote products derived from this software |
* without specific prior written permission. |
* |
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
* SUCH DAMAGE. |
*/ |
/****************************************************************************** |
This file is a patched version of printf called _printf_P |
It is made to work with avr-gcc for Atmel AVR MCUs. |
There are some differences from standard printf: |
1. There is no floating point support (with fp the code is about 8K!) |
2. Return type is void |
3. Format string must be in program memory (by using macro printf this is |
done automaticaly) |
4. %n is not implemented (just remove the comment around it if you need it) |
5. If LIGHTPRINTF is defined, the code is about 550 bytes smaller and the |
folowing specifiers are disabled : |
space # * . - + p s o O |
6. A function void uart_sendchar(char c) is used for output. The UART must |
be initialized before using printf. |
Alexander Popov |
sasho@vip.orbitel.bg |
******************************************************************************/ |
/* |
* Actual printf innards. |
* |
* This code is large and complicated... |
*/ |
#include <string.h> |
#ifdef __STDC__ |
#include <stdarg.h> |
#else |
#include <varargs.h> |
#endif |
#include "main.h" |
//#define LIGHTPRINTF |
char PrintZiel; |
char Putchar(char zeichen) |
{ |
if(PrintZiel == OUT_LCD) { DisplayBuff[DispPtr++] = zeichen; return(1);} |
else return(uart_putchar(zeichen)); |
} |
void PRINT(const char * ptr, unsigned int len) |
{ |
for(;len;len--) Putchar(*ptr++); |
} |
void PRINTP(const char * ptr, unsigned int len) |
{ |
for(;len;len--) Putchar(pgm_read_byte(ptr++)); |
} |
void PAD_SP(signed char howmany) |
{ |
for(;howmany>0;howmany--) Putchar(' '); |
} |
void PAD_0(signed char howmany) |
{ |
for(;howmany>0;howmany--) Putchar('0'); |
} |
#define BUF 40 |
/* |
* Macros for converting digits to letters and vice versa |
*/ |
#define to_digit(c) ((c) - '0') |
#define is_digit(c) ((c)<='9' && (c)>='0') |
#define to_char(n) ((n) + '0') |
/* |
* Flags used during conversion. |
*/ |
#define LONGINT 0x01 /* long integer */ |
#define LONGDBL 0x02 /* long double; unimplemented */ |
#define SHORTINT 0x04 /* short integer */ |
#define ALT 0x08 /* alternate form */ |
#define LADJUST 0x10 /* left adjustment */ |
#define ZEROPAD 0x20 /* zero (as opposed to blank) pad */ |
#define HEXPREFIX 0x40 /* add 0x or 0X prefix */ |
void _printf_P (char ziel,char const *fmt0, ...) /* Works with string from FLASH */ |
{ |
va_list ap; |
register const char *fmt; /* format string */ |
register char ch; /* character from fmt */ |
register int n; /* handy integer (short term usage) */ |
register char *cp; /* handy char pointer (short term usage) */ |
const char *fmark; /* for remembering a place in fmt */ |
register unsigned char flags; /* flags as above */ |
signed char width; /* width from format (%8d), or 0 */ |
signed char prec; /* precision from format (%.3d), or -1 */ |
char sign; /* sign prefix (' ', '+', '-', or \0) */ |
unsigned long _ulong=0; /* integer arguments %[diouxX] */ |
#define OCT 8 |
#define DEC 10 |
#define HEX 16 |
unsigned char base; /* base for [diouxX] conversion */ |
signed char dprec; /* a copy of prec if [diouxX], 0 otherwise */ |
signed char dpad; /* extra 0 padding needed for integers */ |
signed char fieldsz; /* field size expanded by sign, dpad etc */ |
/* The initialization of 'size' is to suppress a warning that |
'size' might be used unitialized. It seems gcc can't |
quite grok this spaghetti code ... */ |
signed char size = 0; /* size of converted field or string */ |
char buf[BUF]; /* space for %c, %[diouxX], %[eEfgG] */ |
char ox[2]; /* space for 0x hex-prefix */ |
PrintZiel = ziel; // bestimmt, LCD oder UART |
va_start(ap, fmt0); |
fmt = fmt0; |
/* |
* Scan the format for conversions (`%' character). |
*/ |
for (;;) { |
for (fmark = fmt; (ch = pgm_read_byte(fmt)) != '\0' && ch != '%'; fmt++) |
/* void */; |
if ((n = fmt - fmark) != 0) { |
PRINTP(fmark, n); |
} |
if (ch == '\0') |
goto done; |
fmt++; /* skip over '%' */ |
flags = 0; |
dprec = 0; |
width = 0; |
prec = -1; |
sign = '\0'; |
rflag: ch = PRG_RDB(fmt++); |
reswitch: |
#ifdef LIGHTPRINTF |
if (ch=='o' || ch=='u' || (ch|0x20)=='x') { |
#else |
if (ch=='u' || (ch|0x20)=='x') { |
#endif |
if (flags&LONGINT) { |
_ulong=va_arg(ap, unsigned long); |
} else { |
register unsigned int _d; |
_d=va_arg(ap, unsigned int); |
_ulong = flags&SHORTINT ? (unsigned long)(unsigned short)_d : (unsigned long)_d; |
} |
} |
#ifndef LIGHTPRINTF |
if(ch==' ') { |
/* |
* ``If the space and + flags both appear, the space |
* flag will be ignored.'' |
* -- ANSI X3J11 |
*/ |
if (!sign) |
sign = ' '; |
goto rflag; |
} else if (ch=='#') { |
flags |= ALT; |
goto rflag; |
} else if (ch=='*'||ch=='-') { |
if (ch=='*') { |
/* |
* ``A negative field width argument is taken as a |
* - flag followed by a positive field width.'' |
* -- ANSI X3J11 |
* They don't exclude field widths read from args. |
*/ |
if ((width = va_arg(ap, int)) >= 0) |
goto rflag; |
width = -width; |
} |
flags |= LADJUST; |
flags &= ~ZEROPAD; /* '-' disables '0' */ |
goto rflag; |
} else if (ch=='+') { |
sign = '+'; |
goto rflag; |
} else if (ch=='.') { |
if ((ch = PRG_RDB(fmt++)) == '*') { |
n = va_arg(ap, int); |
prec = n < 0 ? -1 : n; |
goto rflag; |
} |
n = 0; |
while (is_digit(ch)) { |
n = n*10 + to_digit(ch); |
ch = PRG_RDB(fmt++); |
} |
prec = n < 0 ? -1 : n; |
goto reswitch; |
} else |
#endif /* LIGHTPRINTF */ |
if (ch=='0') { |
/* |
* ``Note that 0 is taken as a flag, not as the |
* beginning of a field width.'' |
* -- ANSI X3J11 |
*/ |
if (!(flags & LADJUST)) |
flags |= ZEROPAD; /* '-' disables '0' */ |
goto rflag; |
} else if (ch>='1' && ch<='9') { |
n = 0; |
do { |
n = 10 * n + to_digit(ch); |
ch = PRG_RDB(fmt++); |
} while (is_digit(ch)); |
width = n; |
goto reswitch; |
} else if (ch=='h') { |
flags |= SHORTINT; |
goto rflag; |
} else if (ch=='l') { |
flags |= LONGINT; |
goto rflag; |
} else if (ch=='c') { |
*(cp = buf) = va_arg(ap, int); |
size = 1; |
sign = '\0'; |
} else if (ch=='D'||ch=='d'||ch=='i') { |
if(ch=='D') |
flags |= LONGINT; |
if (flags&LONGINT) { |
_ulong=va_arg(ap, long); |
} else { |
register int _d; |
_d=va_arg(ap, int); |
_ulong = flags&SHORTINT ? (long)(short)_d : (long)_d; |
} |
if ((long)_ulong < 0) { |
_ulong = -_ulong; |
sign = '-'; |
} |
base = DEC; |
goto number; |
} else |
/* |
if (ch=='n') { |
if (flags & LONGINT) |
*va_arg(ap, long *) = ret; |
else if (flags & SHORTINT) |
*va_arg(ap, short *) = ret; |
else |
*va_arg(ap, int *) = ret; |
continue; // no output |
} else |
*/ |
#ifndef LIGHTPRINTF |
if (ch=='O'||ch=='o') { |
if (ch=='O') |
flags |= LONGINT; |
base = OCT; |
goto nosign; |
} else if (ch=='p') { |
/* |
* ``The argument shall be a pointer to void. The |
* value of the pointer is converted to a sequence |
* of printable characters, in an implementation- |
* defined manner.'' |
* -- ANSI X3J11 |
*/ |
/* NOSTRICT */ |
_ulong = (unsigned int)va_arg(ap, void *); |
base = HEX; |
flags |= HEXPREFIX; |
ch = 'x'; |
goto nosign; |
} else if (ch=='s') { // print a string from RAM |
if ((cp = va_arg(ap, char *)) == NULL) { |
cp=buf; |
cp[0] = '('; |
cp[1] = 'n'; |
cp[2] = 'u'; |
cp[4] = cp[3] = 'l'; |
cp[5] = ')'; |
cp[6] = '\0'; |
} |
if (prec >= 0) { |
/* |
* can't use strlen; can only look for the |
* NUL in the first `prec' characters, and |
* strlen() will go further. |
*/ |
char *p = (char*)memchr(cp, 0, prec); |
if (p != NULL) { |
size = p - cp; |
if (size > prec) |
size = prec; |
} else |
size = prec; |
} else |
size = strlen(cp); |
sign = '\0'; |
} else |
#endif /* LIGHTPRINTF */ |
if(ch=='U'||ch=='u') { |
if (ch=='U') |
flags |= LONGINT; |
base = DEC; |
goto nosign; |
} else if (ch=='X'||ch=='x') { |
base = HEX; |
/* leading 0x/X only if non-zero */ |
if (flags & ALT && _ulong != 0) |
flags |= HEXPREFIX; |
/* unsigned conversions */ |
nosign: sign = '\0'; |
/* |
* ``... diouXx conversions ... if a precision is |
* specified, the 0 flag will be ignored.'' |
* -- ANSI X3J11 |
*/ |
number: if ((dprec = prec) >= 0) |
flags &= ~ZEROPAD; |
/* |
* ``The result of converting a zero value with an |
* explicit precision of zero is no characters.'' |
* -- ANSI X3J11 |
*/ |
cp = buf + BUF; |
if (_ulong != 0 || prec != 0) { |
register unsigned char _d,notlastdigit; |
do { |
notlastdigit=(_ulong>=base); |
_d = _ulong % base; |
if (_d<10) { |
_d+='0'; |
} else { |
_d+='a'-10; |
if (ch=='X') _d&=~0x20; |
} |
*--cp=_d; |
_ulong /= base; |
} while (notlastdigit); |
#ifndef LIGHTPRINTF |
// handle octal leading 0 |
if (base==OCT && flags & ALT && *cp != '0') |
*--cp = '0'; |
#endif |
} |
size = buf + BUF - cp; |
} else { //default |
/* "%?" prints ?, unless ? is NUL */ |
if (ch == '\0') |
goto done; |
/* pretend it was %c with argument ch */ |
cp = buf; |
*cp = ch; |
size = 1; |
sign = '\0'; |
} |
/* |
* All reasonable formats wind up here. At this point, |
* `cp' points to a string which (if not flags&LADJUST) |
* should be padded out to `width' places. If |
* flags&ZEROPAD, it should first be prefixed by any |
* sign or other prefix; otherwise, it should be blank |
* padded before the prefix is emitted. After any |
* left-hand padding and prefixing, emit zeroes |
* required by a decimal [diouxX] precision, then print |
* the string proper, then emit zeroes required by any |
* leftover floating precision; finally, if LADJUST, |
* pad with blanks. |
*/ |
/* |
* compute actual size, so we know how much to pad. |
*/ |
fieldsz = size; |
dpad = dprec - size; |
if (dpad < 0) |
dpad = 0; |
if (sign) |
fieldsz++; |
else if (flags & HEXPREFIX) |
fieldsz += 2; |
fieldsz += dpad; |
/* right-adjusting blank padding */ |
if ((flags & (LADJUST|ZEROPAD)) == 0) |
PAD_SP(width - fieldsz); |
/* prefix */ |
if (sign) { |
PRINT(&sign, 1); |
} else if (flags & HEXPREFIX) { |
ox[0] = '0'; |
ox[1] = ch; |
PRINT(ox, 2); |
} |
/* right-adjusting zero padding */ |
if ((flags & (LADJUST|ZEROPAD)) == ZEROPAD) |
PAD_0(width - fieldsz); |
/* leading zeroes from decimal precision */ |
PAD_0(dpad); |
/* the string or number proper */ |
PRINT(cp, size); |
/* left-adjusting padding (always blank) */ |
if (flags & LADJUST) |
PAD_SP(width - fieldsz); |
} |
done: |
va_end(ap); |
} |
//---------------------------------------------------------------------------------------------------------------------------------- |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/printf_P.d |
---|
0,0 → 1,2 |
printf_P.o printf_P.d : printf_P.c main.h old_macros.h _Settings.h printf_P.h \ |
timer0.h uart.h analog.h eeprom.h twimaster.h menu.h rc.h fc.h led.h |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/printf_P.h |
---|
0,0 → 1,24 |
//---------------------------------------------------------------------------------------------------------------------------------- |
// printf_P.h |
//---------------------------------------------------------------------------------------------------------------------------------- |
#ifndef _PRINTF_P_H_ |
#define _PRINTF_P_H_ |
#include <avr/pgmspace.h> |
#define OUT_V24 0 |
#define OUT_LCD 1 |
void _printf_P (char, char const *fmt0, ...); |
extern char PrintZiel; |
#define printf_P(format, args...) _printf_P(OUT_V24,format , ## args) |
#define printf(format, args...) _printf_P(OUT_V24,PSTR(format) , ## args) |
#define LCD_printfxy(x,y,format, args...) { DispPtr = y * 20 + x; _printf_P(OUT_LCD,PSTR(format) , ## args);} |
#define LCD_printf(format, args...) { _printf_P(OUT_LCD,PSTR(format) , ## args);} |
#endif |
//---------------------------------------------------------------------------------------------------------------------------------- |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/printf_P.lst |
---|
0,0 → 1,888 |
1 .file "printf_P.c" |
2 .arch atmega644 |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .text |
11 .global Putchar |
13 Putchar: |
14 /* prologue: frame size=0 */ |
15 /* prologue end (size=0) */ |
16 0000 982F mov r25,r24 |
17 0002 8091 0000 lds r24,PrintZiel |
18 0006 8130 cpi r24,lo8(1) |
19 0008 01F0 breq .L5 |
20 000a 892F mov r24,r25 |
21 000c 0E94 0000 call uart_putchar |
22 0010 282F mov r18,r24 |
23 0012 3327 clr r19 |
24 0014 00C0 rjmp .L1 |
25 .L5: |
26 0016 8091 0000 lds r24,DispPtr |
27 001a E82F mov r30,r24 |
28 001c FF27 clr r31 |
29 001e E050 subi r30,lo8(-(DisplayBuff)) |
30 0020 F040 sbci r31,hi8(-(DisplayBuff)) |
31 0022 9083 st Z,r25 |
32 0024 8F5F subi r24,lo8(-(1)) |
33 0026 8093 0000 sts DispPtr,r24 |
34 002a 21E0 ldi r18,lo8(1) |
35 002c 30E0 ldi r19,hi8(1) |
36 .L1: |
37 002e C901 movw r24,r18 |
38 /* epilogue: frame size=0 */ |
39 0030 0895 ret |
40 /* epilogue end (size=1) */ |
41 /* function Putchar size 25 (24) */ |
43 .global PRINT |
45 PRINT: |
46 /* prologue: frame size=0 */ |
47 0032 0F93 push r16 |
48 0034 1F93 push r17 |
49 0036 CF93 push r28 |
50 0038 DF93 push r29 |
51 /* prologue end (size=4) */ |
52 003a 8C01 movw r16,r24 |
53 003c EB01 movw r28,r22 |
54 003e 672B or r22,r23 |
55 0040 01F0 breq .L12 |
56 .L10: |
57 0042 F801 movw r30,r16 |
58 0044 8191 ld r24,Z+ |
59 0046 8F01 movw r16,r30 |
60 0048 0E94 0000 call Putchar |
61 004c 2197 sbiw r28,1 |
62 004e 01F0 breq .L12 |
63 0050 F801 movw r30,r16 |
64 0052 8191 ld r24,Z+ |
65 0054 8F01 movw r16,r30 |
66 0056 0E94 0000 call Putchar |
67 005a 2197 sbiw r28,1 |
68 005c 01F4 brne .L10 |
69 .L12: |
70 /* epilogue: frame size=0 */ |
71 005e DF91 pop r29 |
72 0060 CF91 pop r28 |
73 0062 1F91 pop r17 |
74 0064 0F91 pop r16 |
75 0066 0895 ret |
76 /* epilogue end (size=5) */ |
77 /* function PRINT size 29 (20) */ |
79 .global PRINTP |
81 PRINTP: |
82 /* prologue: frame size=0 */ |
83 0068 0F93 push r16 |
84 006a 1F93 push r17 |
85 006c CF93 push r28 |
86 006e DF93 push r29 |
87 /* prologue end (size=4) */ |
88 0070 8C01 movw r16,r24 |
89 0072 EB01 movw r28,r22 |
90 0074 672B or r22,r23 |
91 0076 01F0 breq .L20 |
92 .L18: |
93 0078 F801 movw r30,r16 |
94 007a 0F5F subi r16,lo8(-(1)) |
95 007c 1F4F sbci r17,hi8(-(1)) |
96 /* #APP */ |
97 007e 8491 lpm r24, Z |
98 |
99 /* #NOAPP */ |
100 0080 0E94 0000 call Putchar |
101 0084 2197 sbiw r28,1 |
102 0086 01F0 breq .L20 |
103 0088 F801 movw r30,r16 |
104 008a 0F5F subi r16,lo8(-(1)) |
105 008c 1F4F sbci r17,hi8(-(1)) |
106 /* #APP */ |
107 008e 8491 lpm r24, Z |
108 |
109 /* #NOAPP */ |
110 0090 0E94 0000 call Putchar |
111 0094 2197 sbiw r28,1 |
112 0096 01F4 brne .L18 |
113 .L20: |
114 /* epilogue: frame size=0 */ |
115 0098 DF91 pop r29 |
116 009a CF91 pop r28 |
117 009c 1F91 pop r17 |
118 009e 0F91 pop r16 |
119 00a0 0895 ret |
120 /* epilogue end (size=5) */ |
121 /* function PRINTP size 37 (28) */ |
123 .global PAD_SP |
125 PAD_SP: |
126 /* prologue: frame size=0 */ |
127 00a2 CF93 push r28 |
128 /* prologue end (size=1) */ |
129 00a4 C82F mov r28,r24 |
130 00a6 1816 cp __zero_reg__,r24 |
131 00a8 04F4 brge .L28 |
132 .L26: |
133 00aa 80E2 ldi r24,lo8(32) |
134 00ac 0E94 0000 call Putchar |
135 00b0 C150 subi r28,lo8(-(-1)) |
136 00b2 1C16 cp __zero_reg__,r28 |
137 00b4 04F0 brlt .L26 |
138 .L28: |
139 /* epilogue: frame size=0 */ |
140 00b6 CF91 pop r28 |
141 00b8 0895 ret |
142 /* epilogue end (size=2) */ |
143 /* function PAD_SP size 12 (9) */ |
145 .global PAD_0 |
147 PAD_0: |
148 /* prologue: frame size=0 */ |
149 00ba CF93 push r28 |
150 /* prologue end (size=1) */ |
151 00bc C82F mov r28,r24 |
152 00be 1816 cp __zero_reg__,r24 |
153 00c0 04F4 brge .L35 |
154 .L33: |
155 00c2 80E3 ldi r24,lo8(48) |
156 00c4 0E94 0000 call Putchar |
157 00c8 C150 subi r28,lo8(-(-1)) |
158 00ca 1C16 cp __zero_reg__,r28 |
159 00cc 04F0 brlt .L33 |
160 .L35: |
161 /* epilogue: frame size=0 */ |
162 00ce CF91 pop r28 |
163 00d0 0895 ret |
164 /* epilogue end (size=2) */ |
165 /* function PAD_0 size 12 (9) */ |
167 .global _printf_P |
169 _printf_P: |
170 /* prologue: frame size=48 */ |
171 00d2 A0E3 ldi r26,lo8(48) |
172 00d4 B0E0 ldi r27,hi8(48) |
173 00d6 E0E0 ldi r30,pm_lo8(1f) |
174 00d8 F0E0 ldi r31,pm_hi8(1f) |
175 00da 0C94 0000 jmp __prologue_saves__+0 |
176 1: |
177 /* prologue end (size=6) */ |
178 00de 2696 adiw r28,69-63 |
179 00e0 8FAD ldd r24,Y+63 |
180 00e2 2697 sbiw r28,69-63 |
181 00e4 2896 adiw r28,70-62 |
182 00e6 EEAD ldd r30,Y+62 |
183 00e8 FFAD ldd r31,Y+63 |
184 00ea 2897 sbiw r28,70-62 |
185 00ec 8824 clr r8 |
186 00ee 9924 clr r9 |
187 00f0 5401 movw r10,r8 |
188 00f2 8093 0000 sts PrintZiel,r24 |
189 00f6 48E4 ldi r20,lo8(72) |
190 00f8 C42E mov r12,r20 |
191 00fa D12C mov r13,__zero_reg__ |
192 00fc CC0E add r12,r28 |
193 00fe DD1E adc r13,r29 |
194 0100 7F01 movw r14,r30 |
195 .L160: |
196 0102 C701 movw r24,r14 |
197 .L154: |
198 0104 F701 movw r30,r14 |
199 /* #APP */ |
200 0106 1491 lpm r17, Z |
201 |
202 /* #NOAPP */ |
203 0108 1123 tst r17 |
204 010a 01F0 breq .L40 |
205 010c 1532 cpi r17,lo8(37) |
206 010e 01F0 breq .L40 |
207 0110 0894 sec |
208 0112 E11C adc r14,__zero_reg__ |
209 0114 F11C adc r15,__zero_reg__ |
210 0116 00C0 rjmp .L154 |
211 .L40: |
212 0118 B701 movw r22,r14 |
213 011a 681B sub r22,r24 |
214 011c 790B sbc r23,r25 |
215 011e 01F0 breq .+2 |
216 0120 00C0 rjmp .L163 |
217 .L43: |
218 0122 1123 tst r17 |
219 0124 01F4 brne .+2 |
220 0126 00C0 rjmp .L45 |
221 0128 0894 sec |
222 012a E11C adc r14,__zero_reg__ |
223 012c F11C adc r15,__zero_reg__ |
224 012e 1FA6 std Y+47,__zero_reg__ |
225 0130 3FA4 ldd r3,Y+47 |
226 0132 232C mov r2,r3 |
227 0134 0FEF ldi r16,lo8(-1) |
228 0136 39A6 std Y+41,r3 |
229 .L46: |
230 .L161: |
231 0138 F701 movw r30,r14 |
232 013a 0894 sec |
233 013c E11C adc r14,__zero_reg__ |
234 013e F11C adc r15,__zero_reg__ |
235 /* #APP */ |
236 0140 1491 lpm r17, Z |
237 |
238 .L47: |
239 /* #NOAPP */ |
240 .L162: |
241 0142 1537 cpi r17,lo8(117) |
242 0144 01F0 breq .L49 |
243 .L168: |
244 0146 812F mov r24,r17 |
245 0148 8062 ori r24,lo8(32) |
246 014a 8837 cpi r24,lo8(120) |
247 014c 01F0 breq .L49 |
248 .L48: |
249 014e 1032 cpi r17,lo8(32) |
250 0150 01F4 brne .+2 |
251 0152 00C0 rjmp .L164 |
252 .L52: |
253 0154 1332 cpi r17,lo8(35) |
254 0156 01F4 brne .+2 |
255 0158 00C0 rjmp .L165 |
256 015a 1A32 cpi r17,lo8(42) |
257 015c 01F4 brne .+2 |
258 015e 00C0 rjmp .L58 |
259 0160 1D32 cpi r17,lo8(45) |
260 0162 01F4 brne .+2 |
261 0164 00C0 rjmp .L58 |
262 0166 1B32 cpi r17,lo8(43) |
263 0168 01F0 breq .L155 |
264 016a 1E32 cpi r17,lo8(46) |
265 016c 01F0 breq .L166 |
266 016e 1033 cpi r17,lo8(48) |
267 0170 01F4 brne .+2 |
268 0172 00C0 rjmp .L167 |
269 0174 812F mov r24,r17 |
270 0176 8153 subi r24,lo8(-(-49)) |
271 0178 8930 cpi r24,lo8(9) |
272 017a 00F0 brlo .+2 |
273 017c 00C0 rjmp .L75 |
274 017e 60E0 ldi r22,lo8(0) |
275 0180 70E0 ldi r23,hi8(0) |
276 .L76: |
277 0182 CB01 movw r24,r22 |
278 0184 880F lsl r24 |
279 0186 991F rol r25 |
280 0188 880F lsl r24 |
281 018a 991F rol r25 |
282 018c 880F lsl r24 |
283 018e 991F rol r25 |
284 0190 860F add r24,r22 |
285 0192 971F adc r25,r23 |
286 0194 680F add r22,r24 |
287 0196 791F adc r23,r25 |
288 0198 610F add r22,r17 |
289 019a 711D adc r23,__zero_reg__ |
290 019c 6053 subi r22,lo8(-(-48)) |
291 019e 7040 sbci r23,hi8(-(-48)) |
292 01a0 F701 movw r30,r14 |
293 01a2 0894 sec |
294 01a4 E11C adc r14,__zero_reg__ |
295 01a6 F11C adc r15,__zero_reg__ |
296 /* #APP */ |
297 01a8 1491 lpm r17, Z |
298 |
299 /* #NOAPP */ |
300 01aa 812F mov r24,r17 |
301 01ac 8053 subi r24,lo8(-(-48)) |
302 01ae 8A30 cpi r24,lo8(10) |
303 01b0 00F0 brlo .L76 |
304 01b2 262E mov r2,r22 |
305 01b4 1537 cpi r17,lo8(117) |
306 01b6 01F4 brne .L168 |
307 .L49: |
308 01b8 30FE sbrs r3,0 |
309 01ba 00C0 rjmp .L50 |
310 01bc F601 movw r30,r12 |
311 01be 84E0 ldi r24,lo8(4) |
312 01c0 90E0 ldi r25,hi8(4) |
313 01c2 C80E add r12,r24 |
314 01c4 D91E adc r13,r25 |
315 01c6 8080 ld r8,Z |
316 01c8 9180 ldd r9,Z+1 |
317 01ca A280 ldd r10,Z+2 |
318 01cc B380 ldd r11,Z+3 |
319 01ce 1032 cpi r17,lo8(32) |
320 01d0 01F0 breq .+2 |
321 01d2 00C0 rjmp .L52 |
322 .L164: |
323 01d4 89A5 ldd r24,Y+41 |
324 01d6 8823 tst r24 |
325 01d8 01F0 breq .+2 |
326 01da 00C0 rjmp .L161 |
327 .L155: |
328 01dc 19A7 std Y+41,r17 |
329 01de 00C0 rjmp .L161 |
330 .L166: |
331 01e0 F701 movw r30,r14 |
332 01e2 0894 sec |
333 01e4 E11C adc r14,__zero_reg__ |
334 01e6 F11C adc r15,__zero_reg__ |
335 /* #APP */ |
336 01e8 1491 lpm r17, Z |
337 |
338 /* #NOAPP */ |
339 01ea 1A32 cpi r17,lo8(42) |
340 01ec 01F4 brne .+2 |
341 01ee 00C0 rjmp .L169 |
342 01f0 60E0 ldi r22,lo8(0) |
343 01f2 70E0 ldi r23,hi8(0) |
344 01f4 00C0 rjmp .L156 |
345 .L170: |
346 01f6 CB01 movw r24,r22 |
347 01f8 880F lsl r24 |
348 01fa 991F rol r25 |
349 01fc 880F lsl r24 |
350 01fe 991F rol r25 |
351 0200 880F lsl r24 |
352 0202 991F rol r25 |
353 0204 860F add r24,r22 |
354 0206 971F adc r25,r23 |
355 0208 680F add r22,r24 |
356 020a 791F adc r23,r25 |
357 020c 610F add r22,r17 |
358 020e 711D adc r23,__zero_reg__ |
359 0210 6053 subi r22,lo8(-(-48)) |
360 0212 7040 sbci r23,hi8(-(-48)) |
361 0214 F701 movw r30,r14 |
362 0216 0894 sec |
363 0218 E11C adc r14,__zero_reg__ |
364 021a F11C adc r15,__zero_reg__ |
365 /* #APP */ |
366 021c 1491 lpm r17, Z |
367 |
368 /* #NOAPP */ |
369 .L156: |
370 021e 812F mov r24,r17 |
371 0220 8053 subi r24,lo8(-(-48)) |
372 0222 8A30 cpi r24,lo8(10) |
373 0224 00F0 brlo .L170 |
374 0226 EFEF ldi r30,hi8(-1) |
375 0228 6F3F cpi r22,lo8(-1) |
376 022a 7E07 cpc r23,r30 |
377 022c 04F4 brge .L70 |
378 022e 6FEF ldi r22,lo8(-1) |
379 0230 7FEF ldi r23,hi8(-1) |
380 .L70: |
381 0232 062F mov r16,r22 |
382 0234 00C0 rjmp .L162 |
383 .L50: |
384 0236 F601 movw r30,r12 |
385 0238 82E0 ldi r24,lo8(2) |
386 023a 90E0 ldi r25,hi8(2) |
387 023c C80E add r12,r24 |
388 023e D91E adc r13,r25 |
389 0240 8081 ld r24,Z |
390 0242 9181 ldd r25,Z+1 |
391 0244 4C01 movw r8,r24 |
392 0246 AA24 clr r10 |
393 0248 BB24 clr r11 |
394 024a 00C0 rjmp .L48 |
395 .L163: |
396 024c 0E94 0000 call PRINTP |
397 0250 00C0 rjmp .L43 |
398 .L58: |
399 0252 1A32 cpi r17,lo8(42) |
400 0254 01F4 brne .L59 |
401 0256 F601 movw r30,r12 |
402 0258 82E0 ldi r24,lo8(2) |
403 025a 90E0 ldi r25,hi8(2) |
404 025c C80E add r12,r24 |
405 025e D91E adc r13,r25 |
406 0260 2080 ld r2,Z |
407 0262 2220 tst r2 |
408 0264 04F0 brlt .+2 |
409 0266 00C0 rjmp .L161 |
410 0268 2194 neg r2 |
411 .L59: |
412 026a 90E1 ldi r25,lo8(16) |
413 026c 392A or r3,r25 |
414 026e EFED ldi r30,lo8(-33) |
415 0270 3E22 and r3,r30 |
416 0272 00C0 rjmp .L161 |
417 .L165: |
418 0274 98E0 ldi r25,lo8(8) |
419 0276 392A or r3,r25 |
420 0278 00C0 rjmp .L161 |
421 .L75: |
422 027a 1836 cpi r17,lo8(104) |
423 027c 01F0 breq .L171 |
424 027e 1C36 cpi r17,lo8(108) |
425 0280 01F4 brne .L82 |
426 0282 81E0 ldi r24,lo8(1) |
427 0284 382A or r3,r24 |
428 0286 00C0 rjmp .L161 |
429 .L167: |
430 0288 34FC sbrc r3,4 |
431 028a 00C0 rjmp .L161 |
432 028c F0E2 ldi r31,lo8(32) |
433 028e 3F2A or r3,r31 |
434 0290 00C0 rjmp .L161 |
435 .L169: |
436 0292 F601 movw r30,r12 |
437 0294 82E0 ldi r24,lo8(2) |
438 0296 90E0 ldi r25,hi8(2) |
439 0298 C80E add r12,r24 |
440 029a D91E adc r13,r25 |
441 029c 6081 ld r22,Z |
442 029e 7181 ldd r23,Z+1 |
443 02a0 9FEF ldi r25,hi8(-1) |
444 02a2 6F3F cpi r22,lo8(-1) |
445 02a4 7907 cpc r23,r25 |
446 02a6 04F4 brge .L66 |
447 02a8 6FEF ldi r22,lo8(-1) |
448 02aa 7FEF ldi r23,hi8(-1) |
449 .L66: |
450 02ac 062F mov r16,r22 |
451 02ae 00C0 rjmp .L161 |
452 .L171: |
453 02b0 24E0 ldi r18,lo8(4) |
454 02b2 322A or r3,r18 |
455 02b4 00C0 rjmp .L161 |
456 .L82: |
457 02b6 1336 cpi r17,lo8(99) |
458 02b8 01F4 brne .+2 |
459 02ba 00C0 rjmp .L172 |
460 02bc 1434 cpi r17,lo8(68) |
461 02be 01F4 brne .+2 |
462 02c0 00C0 rjmp .L87 |
463 02c2 1436 cpi r17,lo8(100) |
464 02c4 01F4 brne .+2 |
465 02c6 00C0 rjmp .L87 |
466 02c8 1936 cpi r17,lo8(105) |
467 02ca 01F4 brne .+2 |
468 02cc 00C0 rjmp .L87 |
469 02ce 1F34 cpi r17,lo8(79) |
470 02d0 01F4 brne .+2 |
471 02d2 00C0 rjmp .L95 |
472 02d4 1F36 cpi r17,lo8(111) |
473 02d6 01F4 brne .+2 |
474 02d8 00C0 rjmp .L95 |
475 02da 1037 cpi r17,lo8(112) |
476 02dc 01F4 brne .+2 |
477 02de 00C0 rjmp .L173 |
478 02e0 1337 cpi r17,lo8(115) |
479 02e2 01F4 brne .+2 |
480 02e4 00C0 rjmp .L174 |
481 02e6 1535 cpi r17,lo8(85) |
482 02e8 01F4 brne .+2 |
483 02ea 00C0 rjmp .L110 |
484 02ec 1537 cpi r17,lo8(117) |
485 02ee 01F4 brne .+2 |
486 02f0 00C0 rjmp .L110 |
487 02f2 1835 cpi r17,lo8(88) |
488 02f4 01F4 brne .+2 |
489 02f6 00C0 rjmp .L114 |
490 02f8 1837 cpi r17,lo8(120) |
491 02fa 01F4 brne .+2 |
492 02fc 00C0 rjmp .L114 |
493 02fe 1123 tst r17 |
494 0300 01F4 brne .+2 |
495 0302 00C0 rjmp .L45 |
496 0304 CE01 movw r24,r28 |
497 0306 0196 adiw r24,1 |
498 0308 9DA7 std Y+45,r25 |
499 030a 8CA7 std Y+44,r24 |
500 030c 1983 std Y+1,r17 |
501 .L159: |
502 030e 81E0 ldi r24,lo8(1) |
503 0310 482E mov r4,r24 |
504 .L157: |
505 0312 19A6 std Y+41,__zero_reg__ |
506 0314 632C mov r6,r3 |
507 0316 7724 clr r7 |
508 .L54: |
509 0318 042D mov r16,r4 |
510 031a 5FA4 ldd r5,Y+47 |
511 031c 5418 sub r5,r4 |
512 031e 57FC sbrc r5,7 |
513 0320 00C0 rjmp .L175 |
514 .L129: |
515 0322 29A5 ldd r18,Y+41 |
516 0324 2223 tst r18 |
517 0326 01F0 breq .L130 |
518 0328 0F5F subi r16,lo8(-(1)) |
519 .L131: |
520 032a 050D add r16,r5 |
521 032c C301 movw r24,r6 |
522 032e 8073 andi r24,lo8(48) |
523 0330 9070 andi r25,hi8(48) |
524 0332 892B or r24,r25 |
525 0334 01F4 brne .+2 |
526 0336 00C0 rjmp .L176 |
527 .L133: |
528 0338 2223 tst r18 |
529 033a 01F0 breq .+2 |
530 033c 00C0 rjmp .L177 |
531 033e 66FC sbrc r6,6 |
532 0340 00C0 rjmp .L178 |
533 .L135: |
534 0342 C301 movw r24,r6 |
535 0344 8073 andi r24,lo8(48) |
536 0346 9070 andi r25,hi8(48) |
537 0348 8097 sbiw r24,32 |
538 034a 01F4 brne .+2 |
539 034c 00C0 rjmp .L179 |
540 .L137: |
541 034e 852D mov r24,r5 |
542 0350 0E94 0000 call PAD_0 |
543 0354 842D mov r24,r4 |
544 0356 9927 clr r25 |
545 0358 87FD sbrc r24,7 |
546 035a 9095 com r25 |
547 035c BC01 movw r22,r24 |
548 035e 8CA5 ldd r24,Y+44 |
549 0360 9DA5 ldd r25,Y+45 |
550 0362 0E94 0000 call PRINT |
551 0366 64FE sbrs r6,4 |
552 0368 00C0 rjmp .L160 |
553 036a 822D mov r24,r2 |
554 036c 801B sub r24,r16 |
555 036e 0E94 0000 call PAD_SP |
556 0372 00C0 rjmp .L160 |
557 .L130: |
558 0374 66FE sbrs r6,6 |
559 0376 00C0 rjmp .L131 |
560 0378 0E5F subi r16,lo8(-(2)) |
561 037a 00C0 rjmp .L131 |
562 .L175: |
563 037c 5524 clr r5 |
564 037e 00C0 rjmp .L129 |
565 .L114: |
566 0380 E0E1 ldi r30,lo8(16) |
567 0382 EEA7 std Y+46,r30 |
568 0384 33FE sbrs r3,3 |
569 0386 00C0 rjmp .L97 |
570 0388 8114 cp r8,__zero_reg__ |
571 038a 9104 cpc r9,__zero_reg__ |
572 038c A104 cpc r10,__zero_reg__ |
573 038e B104 cpc r11,__zero_reg__ |
574 0390 01F0 breq .L97 |
575 0392 F0E4 ldi r31,lo8(64) |
576 0394 3F2A or r3,r31 |
577 .L97: |
578 0396 19A6 std Y+41,__zero_reg__ |
579 .L92: |
580 0398 0FA7 std Y+47,r16 |
581 039a 07FD sbrc r16,7 |
582 039c 00C0 rjmp .L116 |
583 039e 2FED ldi r18,lo8(-33) |
584 03a0 3222 and r3,r18 |
585 .L116: |
586 03a2 CE01 movw r24,r28 |
587 03a4 8996 adiw r24,41 |
588 03a6 9DA7 std Y+45,r25 |
589 03a8 8CA7 std Y+44,r24 |
590 03aa 8114 cp r8,__zero_reg__ |
591 03ac 9104 cpc r9,__zero_reg__ |
592 03ae A104 cpc r10,__zero_reg__ |
593 03b0 B104 cpc r11,__zero_reg__ |
594 03b2 01F4 brne .L118 |
595 03b4 9FA5 ldd r25,Y+47 |
596 03b6 9923 tst r25 |
597 03b8 01F0 breq .L143 |
598 .L118: |
599 03ba EEA5 ldd r30,Y+46 |
600 03bc 4E2E mov r4,r30 |
601 03be 5524 clr r5 |
602 03c0 6624 clr r6 |
603 03c2 7724 clr r7 |
604 .L119: |
605 03c4 18AA std Y+48,__zero_reg__ |
606 03c6 8414 cp r8,r4 |
607 03c8 9504 cpc r9,r5 |
608 03ca A604 cpc r10,r6 |
609 03cc B704 cpc r11,r7 |
610 03ce 00F0 brlo .L122 |
611 03d0 F1E0 ldi r31,lo8(1) |
612 03d2 F8AB std Y+48,r31 |
613 .L122: |
614 03d4 C501 movw r24,r10 |
615 03d6 B401 movw r22,r8 |
616 03d8 A301 movw r20,r6 |
617 03da 9201 movw r18,r4 |
618 03dc 0E94 0000 call __udivmodsi4 |
619 03e0 DC01 movw r26,r24 |
620 03e2 CB01 movw r24,r22 |
621 03e4 082F mov r16,r24 |
622 03e6 8A30 cpi r24,lo8(10) |
623 03e8 00F4 brsh .L123 |
624 03ea 005D subi r16,lo8(-(48)) |
625 .L124: |
626 03ec ECA5 ldd r30,Y+44 |
627 03ee FDA5 ldd r31,Y+45 |
628 03f0 0293 st -Z,r16 |
629 03f2 FDA7 std Y+45,r31 |
630 03f4 ECA7 std Y+44,r30 |
631 03f6 C501 movw r24,r10 |
632 03f8 B401 movw r22,r8 |
633 03fa A301 movw r20,r6 |
634 03fc 9201 movw r18,r4 |
635 03fe 0E94 0000 call __udivmodsi4 |
636 0402 4901 movw r8,r18 |
637 0404 5A01 movw r10,r20 |
638 0406 F8A9 ldd r31,Y+48 |
639 0408 FF23 tst r31 |
640 040a 01F4 brne .L119 |
641 040c 2EA5 ldd r18,Y+46 |
642 040e 2830 cpi r18,lo8(8) |
643 0410 01F0 breq .L180 |
644 .L143: |
645 0412 632C mov r6,r3 |
646 0414 7724 clr r7 |
647 .L117: |
648 0416 CE01 movw r24,r28 |
649 0418 0196 adiw r24,1 |
650 041a 482E mov r4,r24 |
651 041c FCA5 ldd r31,Y+44 |
652 041e 4F1A sub r4,r31 |
653 0420 28E2 ldi r18,lo8(40) |
654 0422 420E add r4,r18 |
655 0424 00C0 rjmp .L54 |
656 .L123: |
657 0426 095A subi r16,lo8(-(87)) |
658 0428 1835 cpi r17,lo8(88) |
659 042a 01F4 brne .L124 |
660 042c 0F7D andi r16,lo8(-33) |
661 042e 00C0 rjmp .L124 |
662 .L180: |
663 0430 632C mov r6,r3 |
664 0432 7724 clr r7 |
665 0434 63FE sbrs r6,3 |
666 0436 00C0 rjmp .L117 |
667 0438 0033 cpi r16,lo8(48) |
668 043a 01F0 breq .L117 |
669 043c 80E3 ldi r24,lo8(48) |
670 043e ECA5 ldd r30,Y+44 |
671 0440 FDA5 ldd r31,Y+45 |
672 0442 8293 st -Z,r24 |
673 0444 FDA7 std Y+45,r31 |
674 0446 ECA7 std Y+44,r30 |
675 0448 00C0 rjmp .L117 |
676 .L174: |
677 044a F601 movw r30,r12 |
678 044c 82E0 ldi r24,lo8(2) |
679 044e 90E0 ldi r25,hi8(2) |
680 0450 C80E add r12,r24 |
681 0452 D91E adc r13,r25 |
682 0454 0190 ld __tmp_reg__,Z+ |
683 0456 F081 ld r31,Z |
684 0458 E02D mov r30,__tmp_reg__ |
685 045a FDA7 std Y+45,r31 |
686 045c ECA7 std Y+44,r30 |
687 045e EF2B or r30,r31 |
688 0460 01F4 brne .L102 |
689 0462 FE01 movw r30,r28 |
690 0464 3196 adiw r30,1 |
691 0466 FDA7 std Y+45,r31 |
692 0468 ECA7 std Y+44,r30 |
693 046a 88E2 ldi r24,lo8(40) |
694 046c 8983 std Y+1,r24 |
695 046e 8EE6 ldi r24,lo8(110) |
696 0470 8183 std Z+1,r24 |
697 0472 85E7 ldi r24,lo8(117) |
698 0474 8B83 std Y+3,r24 |
699 0476 8CE6 ldi r24,lo8(108) |
700 0478 8C83 std Y+4,r24 |
701 047a 8D83 std Y+5,r24 |
702 047c 89E2 ldi r24,lo8(41) |
703 047e 8E83 std Y+6,r24 |
704 0480 1F82 std Y+7,__zero_reg__ |
705 .L102: |
706 0482 07FD sbrc r16,7 |
707 0484 00C0 rjmp .L103 |
708 0486 802F mov r24,r16 |
709 0488 9927 clr r25 |
710 048a 87FD sbrc r24,7 |
711 048c 9095 com r25 |
712 048e AC01 movw r20,r24 |
713 0490 60E0 ldi r22,lo8(0) |
714 0492 70E0 ldi r23,hi8(0) |
715 0494 8CA5 ldd r24,Y+44 |
716 0496 9DA5 ldd r25,Y+45 |
717 0498 0E94 0000 call memchr |
718 049c 0097 sbiw r24,0 |
719 049e 01F0 breq .L104 |
720 04a0 482E mov r4,r24 |
721 04a2 FCA5 ldd r31,Y+44 |
722 04a4 4F1A sub r4,r31 |
723 04a6 0415 cp r16,r4 |
724 04a8 04F0 brlt .+2 |
725 04aa 00C0 rjmp .L157 |
726 .L104: |
727 04ac 402E mov r4,r16 |
728 04ae 00C0 rjmp .L157 |
729 .L103: |
730 04b0 ECA5 ldd r30,Y+44 |
731 04b2 FDA5 ldd r31,Y+45 |
732 04b4 0190 ld __tmp_reg__,Z+ |
733 04b6 0020 tst __tmp_reg__ |
734 04b8 01F4 brne .-6 |
735 04ba 3197 sbiw r30,1 |
736 04bc 4E2E mov r4,r30 |
737 04be 2CA5 ldd r18,Y+44 |
738 04c0 421A sub r4,r18 |
739 04c2 00C0 rjmp .L157 |
740 .L110: |
741 04c4 1535 cpi r17,lo8(85) |
742 04c6 01F4 brne .L111 |
743 04c8 81E0 ldi r24,lo8(1) |
744 04ca 382A or r3,r24 |
745 .L111: |
746 04cc 9AE0 ldi r25,lo8(10) |
747 04ce 9EA7 std Y+46,r25 |
748 04d0 00C0 rjmp .L97 |
749 .L173: |
750 04d2 F601 movw r30,r12 |
751 04d4 82E0 ldi r24,lo8(2) |
752 04d6 90E0 ldi r25,hi8(2) |
753 04d8 C80E add r12,r24 |
754 04da D91E adc r13,r25 |
755 04dc 8081 ld r24,Z |
756 04de 9181 ldd r25,Z+1 |
757 04e0 4C01 movw r8,r24 |
758 04e2 AA24 clr r10 |
759 04e4 BB24 clr r11 |
760 04e6 90E1 ldi r25,lo8(16) |
761 04e8 9EA7 std Y+46,r25 |
762 04ea E0E4 ldi r30,lo8(64) |
763 04ec 3E2A or r3,r30 |
764 04ee 18E7 ldi r17,lo8(120) |
765 04f0 00C0 rjmp .L97 |
766 .L95: |
767 04f2 1F34 cpi r17,lo8(79) |
768 04f4 01F4 brne .L96 |
769 04f6 E1E0 ldi r30,lo8(1) |
770 04f8 3E2A or r3,r30 |
771 .L96: |
772 04fa F8E0 ldi r31,lo8(8) |
773 04fc FEA7 std Y+46,r31 |
774 04fe 00C0 rjmp .L97 |
775 .L87: |
776 0500 1434 cpi r17,lo8(68) |
777 0502 01F4 brne .L88 |
778 0504 91E0 ldi r25,lo8(1) |
779 0506 392A or r3,r25 |
780 .L88: |
781 0508 30FE sbrs r3,0 |
782 050a 00C0 rjmp .L89 |
783 050c F601 movw r30,r12 |
784 050e 84E0 ldi r24,lo8(4) |
785 0510 90E0 ldi r25,hi8(4) |
786 0512 C80E add r12,r24 |
787 0514 D91E adc r13,r25 |
788 0516 8080 ld r8,Z |
789 0518 9180 ldd r9,Z+1 |
790 051a A280 ldd r10,Z+2 |
791 051c B380 ldd r11,Z+3 |
792 .L90: |
793 051e B7FE sbrs r11,7 |
794 0520 00C0 rjmp .L91 |
795 0522 B094 com r11 |
796 0524 A094 com r10 |
797 0526 9094 com r9 |
798 0528 8094 com r8 |
799 052a 811C adc r8,__zero_reg__ |
800 052c 911C adc r9,__zero_reg__ |
801 052e A11C adc r10,__zero_reg__ |
802 0530 B11C adc r11,__zero_reg__ |
803 0532 8DE2 ldi r24,lo8(45) |
804 0534 89A7 std Y+41,r24 |
805 .L91: |
806 0536 9AE0 ldi r25,lo8(10) |
807 0538 9EA7 std Y+46,r25 |
808 053a 00C0 rjmp .L92 |
809 .L89: |
810 053c F601 movw r30,r12 |
811 053e 82E0 ldi r24,lo8(2) |
812 0540 90E0 ldi r25,hi8(2) |
813 0542 C80E add r12,r24 |
814 0544 D91E adc r13,r25 |
815 0546 8081 ld r24,Z |
816 0548 9181 ldd r25,Z+1 |
817 054a 4C01 movw r8,r24 |
818 054c AA24 clr r10 |
819 054e 97FC sbrc r9,7 |
820 0550 A094 com r10 |
821 0552 BA2C mov r11,r10 |
822 0554 00C0 rjmp .L90 |
823 .L172: |
824 0556 FE01 movw r30,r28 |
825 0558 3196 adiw r30,1 |
826 055a FDA7 std Y+45,r31 |
827 055c ECA7 std Y+44,r30 |
828 055e F601 movw r30,r12 |
829 0560 82E0 ldi r24,lo8(2) |
830 0562 90E0 ldi r25,hi8(2) |
831 0564 C80E add r12,r24 |
832 0566 D91E adc r13,r25 |
833 0568 8081 ld r24,Z |
834 056a 8983 std Y+1,r24 |
835 056c 00C0 rjmp .L159 |
836 .L179: |
837 056e 822D mov r24,r2 |
838 0570 801B sub r24,r16 |
839 0572 0E94 0000 call PAD_0 |
840 0576 00C0 rjmp .L137 |
841 .L178: |
842 0578 80E3 ldi r24,lo8(48) |
843 057a 8AA7 std Y+42,r24 |
844 057c 1BA7 std Y+43,r17 |
845 057e 62E0 ldi r22,lo8(2) |
846 0580 70E0 ldi r23,hi8(2) |
847 0582 CE01 movw r24,r28 |
848 0584 8A96 adiw r24,42 |
849 .L158: |
850 0586 0E94 0000 call PRINT |
851 058a 00C0 rjmp .L135 |
852 .L177: |
853 058c 61E0 ldi r22,lo8(1) |
854 058e 70E0 ldi r23,hi8(1) |
855 0590 CE01 movw r24,r28 |
856 0592 8996 adiw r24,41 |
857 0594 00C0 rjmp .L158 |
858 .L176: |
859 0596 822D mov r24,r2 |
860 0598 801B sub r24,r16 |
861 059a 0E94 0000 call PAD_SP |
862 059e 29A5 ldd r18,Y+41 |
863 05a0 00C0 rjmp .L133 |
864 .L45: |
865 /* epilogue: frame size=48 */ |
866 05a2 E2E1 ldi r30,18 |
867 05a4 C05D subi r28,-48 |
868 05a6 0C94 0000 jmp __epilogue_restores__+0 |
869 /* epilogue end (size=4) */ |
870 /* function _printf_P size 639 (629) */ |
872 .comm PrintZiel,1,1 |
873 .comm Mixer,77,1 |
874 /* File "printf_P.c": code 754 = 0x02f2 ( 719), prologues 16, epilogues 19 */ |
DEFINED SYMBOLS |
*ABS*:00000000 printf_P.c |
C:\Users\Bernd\AppData\Local\Temp/ccF6QCGh.s:3 *ABS*:0000003f __SREG__ |
C:\Users\Bernd\AppData\Local\Temp/ccF6QCGh.s:4 *ABS*:0000003e __SP_H__ |
C:\Users\Bernd\AppData\Local\Temp/ccF6QCGh.s:5 *ABS*:0000003d __SP_L__ |
C:\Users\Bernd\AppData\Local\Temp/ccF6QCGh.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccF6QCGh.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccF6QCGh.s:13 .text:00000000 Putchar |
*COM*:00000001 PrintZiel |
C:\Users\Bernd\AppData\Local\Temp/ccF6QCGh.s:45 .text:00000032 PRINT |
C:\Users\Bernd\AppData\Local\Temp/ccF6QCGh.s:81 .text:00000068 PRINTP |
C:\Users\Bernd\AppData\Local\Temp/ccF6QCGh.s:125 .text:000000a2 PAD_SP |
C:\Users\Bernd\AppData\Local\Temp/ccF6QCGh.s:147 .text:000000ba PAD_0 |
C:\Users\Bernd\AppData\Local\Temp/ccF6QCGh.s:169 .text:000000d2 _printf_P |
*COM*:0000004d Mixer |
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
uart_putchar |
DispPtr |
DisplayBuff |
__prologue_saves__ |
__udivmodsi4 |
memchr |
__epilogue_restores__ |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/rc.c |
---|
0,0 → 1,104 |
/************************************************************************************************************************************** |
* File: rc.c |
* |
* Purpose: Decoding of the radio control sum signal |
* |
* Functions: void rc_sum_init(void) |
* ISR(TIMER1_CAPT_vect) |
* |
*************************************************************************************************************************************/ |
#include "rc.h" |
#include "main.h" |
volatile int PPM_in[11]; // containing the stick signal of the according radio control chanel |
volatile int PPM_diff[11]; // the differential stick signal of the appropriate radio control chanel |
volatile char Channels; // containing the number of channels |
volatile char tmpChannels = 0; // |
volatile unsigned char NewPpmData = 1; // |
//---------------------------------------------------------------------------------------------------------------------------------- |
// The input capture function of Timer1 is used to decode the PPM sum signal |
//---------------------------------------------------------------------------------------------------------------------------------- |
void rc_sum_init(void) |
{ |
//------------------------------------------------------------------------------------------------ |
// TCCR1B = Timer/Counter1 Control Register B -> ICNC1 ICES1 – WGM13 WGM12 CS12 CS11 CS10 |
// |
// ICES1: Input Capture Edge Select = activated |
// ICNC1: Input Capture Noise Canceler = activated |
// CSn2:0 Clock Select = 1:64 from prescaler |
// |
TCCR1B= (1<<ICES1)|(1<<ICNC1)|(1<<CS11)|(1<<CS10); |
//------------------------------------------------------------------------------------------------ |
// TIMSK1 = Timer/Counter1 Interrupt Mask Register -> – – ICIE1 – – OCIE1B OCIE1A TOIE1 |
// ICIE1: Timer/Counter1, Input Capture Interrupt Enable |
// |
TIMSK1 |= (1<<ICIE1); |
AdNeutralGier = 0; |
AdNeutralRoll = 0; |
AdNeutralNick = 0; |
return; |
} |
//---------------------------------------------------------------------------------------------------------------------------------- |
//---------------------------------------------------------------------------------------------------------------------------------- |
// This function works with Timer1 to decode the radio control |
//---------------------------------------------------------------------------------------------------------------------------------- |
ISR(TIMER1_CAPT_vect) |
{ |
static unsigned int AltICR=0; |
signed int signal = 0; |
signed int tmp; |
static int index; |
signal = (unsigned int) ICR1 - AltICR; // ICR1H and ICR1L – Input Capture Register 1 |
AltICR = ICR1; |
if((signal > 1100) && (signal < 8000)) // Syncronisation break? (3.52 ms < signal < 25.6 ms) |
{ |
Channels = index; |
if(index >= 4) NewPpmData = 0; // zero is equal to new Data |
index = 1; |
} |
else |
{ |
if(index < 10) |
{ |
if((signal > 250) && (signal < 687)) |
{ |
signal -= 466; |
if(abs(signal - PPM_in[index]) < 6) // good signal |
{ |
if(SenderOkay < 200) SenderOkay += 10; |
else SenderOkay = 200; |
} |
tmp = (3 * (PPM_in[index]) + signal) / 4; |
if(tmp > signal+1) tmp--; |
else if(tmp < signal-1) tmp++; |
if(SenderOkay >= 195) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3; |
else PPM_diff[index] = 0; |
PPM_in[index] = tmp; |
} |
index++; |
if(index == 5) J3High; else J3Low; // Servosignal an J3 anlegen |
if(index == 6) J4High; else J4Low; // Servosignal an J4 anlegen |
if(index == 7) J5High; else J5Low; // Servosignal an J5 anlegen |
} |
} |
} |
//---------------------------------------------------------------------------------------------------------------------------------- |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/rc.d |
---|
0,0 → 1,2 |
rc.o rc.d : rc.c rc.h main.h old_macros.h _Settings.h printf_P.h timer0.h \ |
uart.h analog.h eeprom.h twimaster.h menu.h fc.h led.h |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/rc.h |
---|
0,0 → 1,25 |
//------------------------------------------------------------------------------------------------------------------------------------- |
// rc.c |
//------------------------------------------------------------------------------------------------------------------------------------- |
#ifndef _RC_H |
#define _RC_H |
#if defined (__AVR_ATmega644__) |
#define TIMER_RELOAD_VALUE 250 |
#endif |
#if defined (__AVR_ATmega644P__) |
#define TIMER_RELOAD_VALUE 250 |
#endif |
#define GAS PPM_in[2] |
extern void rc_sum_init (void); |
extern volatile int PPM_in[11]; // das Fernsteuer-Summensignal - decodiert // PPM_in[1] = Gas // PPM_in[2] = Roll // PPM_in[3] = Nick // PPM_in[4] = Gier |
extern volatile int PPM_diff[11]; // das diffenzierte Stick-Signal |
extern volatile unsigned char NewPpmData; |
extern volatile char Channels,tmpChannels; |
#endif //_RC_H |
//------------------------------------------------------------------------------------------------------------------------------------- |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/rc.lst |
---|
0,0 → 1,325 |
1 .file "rc.c" |
2 .arch atmega644 |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .global NewPpmData |
11 .data |
14 NewPpmData: |
15 0000 01 .byte 1 |
16 .global tmpChannels |
17 .global tmpChannels |
18 .section .bss |
21 tmpChannels: |
22 0000 00 .skip 1,0 |
23 .text |
24 .global rc_sum_init |
26 rc_sum_init: |
27 /* prologue: frame size=0 */ |
28 /* prologue end (size=0) */ |
29 0000 83EC ldi r24,lo8(-61) |
30 0002 8093 8100 sts 129,r24 |
31 0006 8091 6F00 lds r24,111 |
32 000a 8062 ori r24,lo8(32) |
33 000c 8093 6F00 sts 111,r24 |
34 0010 1092 0000 sts (AdNeutralGier)+1,__zero_reg__ |
35 0014 1092 0000 sts AdNeutralGier,__zero_reg__ |
36 0018 1092 0000 sts (AdNeutralRoll)+1,__zero_reg__ |
37 001c 1092 0000 sts AdNeutralRoll,__zero_reg__ |
38 0020 1092 0000 sts (AdNeutralNick)+1,__zero_reg__ |
39 0024 1092 0000 sts AdNeutralNick,__zero_reg__ |
40 /* epilogue: frame size=0 */ |
41 0028 0895 ret |
42 /* epilogue end (size=1) */ |
43 /* function rc_sum_init size 21 (20) */ |
45 .lcomm AltICR.0,2 |
46 .lcomm index.1,2 |
47 .global __vector_12 |
49 __vector_12: |
50 /* prologue: frame size=0 */ |
51 002a 1F92 push __zero_reg__ |
52 002c 0F92 push __tmp_reg__ |
53 002e 0FB6 in __tmp_reg__,__SREG__ |
54 0030 0F92 push __tmp_reg__ |
55 0032 1124 clr __zero_reg__ |
56 0034 EF92 push r14 |
57 0036 FF92 push r15 |
58 0038 0F93 push r16 |
59 003a 1F93 push r17 |
60 003c 2F93 push r18 |
61 003e 3F93 push r19 |
62 0040 4F93 push r20 |
63 0042 5F93 push r21 |
64 0044 6F93 push r22 |
65 0046 7F93 push r23 |
66 0048 8F93 push r24 |
67 004a 9F93 push r25 |
68 004c AF93 push r26 |
69 004e BF93 push r27 |
70 0050 CF93 push r28 |
71 0052 DF93 push r29 |
72 0054 EF93 push r30 |
73 0056 FF93 push r31 |
74 /* prologue end (size=23) */ |
75 0058 2091 8600 lds r18,134 |
76 005c 3091 8700 lds r19,(134)+1 |
77 0060 8091 0000 lds r24,AltICR.0 |
78 0064 9091 0000 lds r25,(AltICR.0)+1 |
79 0068 281B sub r18,r24 |
80 006a 390B sbc r19,r25 |
81 006c 8091 8600 lds r24,134 |
82 0070 9091 8700 lds r25,(134)+1 |
83 0074 9093 0000 sts (AltICR.0)+1,r25 |
84 0078 8093 0000 sts AltICR.0,r24 |
85 007c C901 movw r24,r18 |
86 007e 8D54 subi r24,lo8(-(-1101)) |
87 0080 9440 sbci r25,hi8(-(-1101)) |
88 0082 835F subi r24,lo8(6899) |
89 0084 9A41 sbci r25,hi8(6899) |
90 0086 00F4 brsh .L3 |
91 0088 8091 0000 lds r24,index.1 |
92 008c 8093 0000 sts Channels,r24 |
93 0090 8091 0000 lds r24,index.1 |
94 0094 9091 0000 lds r25,(index.1)+1 |
95 0098 0497 sbiw r24,4 |
96 009a 04F0 brlt .L4 |
97 009c 1092 0000 sts NewPpmData,__zero_reg__ |
98 .L4: |
99 00a0 C1E0 ldi r28,lo8(1) |
100 00a2 D0E0 ldi r29,hi8(1) |
101 00a4 D093 0000 sts (index.1)+1,r29 |
102 00a8 C093 0000 sts index.1,r28 |
103 00ac 00C0 rjmp .L2 |
104 .L3: |
105 00ae C091 0000 lds r28,index.1 |
106 00b2 D091 0000 lds r29,(index.1)+1 |
107 00b6 CA30 cpi r28,10 |
108 00b8 D105 cpc r29,__zero_reg__ |
109 00ba 04F0 brlt .+2 |
110 00bc 00C0 rjmp .L2 |
111 00be C901 movw r24,r18 |
112 00c0 8B5F subi r24,lo8(-(-251)) |
113 00c2 9040 sbci r25,hi8(-(-251)) |
114 00c4 845B subi r24,lo8(436) |
115 00c6 9140 sbci r25,hi8(436) |
116 00c8 00F0 brlo .L26 |
117 .L7: |
118 00ca FE01 movw r30,r28 |
119 00cc 3196 adiw r30,1 |
120 00ce F093 0000 sts (index.1)+1,r31 |
121 00d2 E093 0000 sts index.1,r30 |
122 00d6 E530 cpi r30,5 |
123 00d8 F105 cpc r31,__zero_reg__ |
124 00da 01F4 brne .+2 |
125 00dc 00C0 rjmp .L27 |
126 00de 5D98 cbi 43-0x20,5 |
127 .L19: |
128 00e0 E630 cpi r30,6 |
129 00e2 F105 cpc r31,__zero_reg__ |
130 00e4 01F4 brne .+2 |
131 00e6 00C0 rjmp .L28 |
132 00e8 5C98 cbi 43-0x20,4 |
133 .L21: |
134 00ea 3797 sbiw r30,7 |
135 00ec 01F4 brne .+2 |
136 00ee 00C0 rjmp .L29 |
137 00f0 5B98 cbi 43-0x20,3 |
138 00f2 00C0 rjmp .L2 |
139 .L26: |
140 00f4 225D subi r18,lo8(-(-466)) |
141 00f6 3140 sbci r19,hi8(-(-466)) |
142 00f8 FE01 movw r30,r28 |
143 00fa EC0F add r30,r28 |
144 00fc FD1F adc r31,r29 |
145 00fe E050 subi r30,lo8(-(PPM_in)) |
146 0100 F040 sbci r31,hi8(-(PPM_in)) |
147 0102 8081 ld r24,Z |
148 0104 9181 ldd r25,Z+1 |
149 0106 F901 movw r30,r18 |
150 0108 E81B sub r30,r24 |
151 010a F90B sbc r31,r25 |
152 010c CF01 movw r24,r30 |
153 010e F7FD sbrc r31,7 |
154 0110 00C0 rjmp .L30 |
155 .L9: |
156 0112 0697 sbiw r24,6 |
157 0114 04F4 brge .L8 |
158 0116 8091 0000 lds r24,SenderOkay |
159 011a 883C cpi r24,lo8(-56) |
160 011c 00F0 brlo .+2 |
161 011e 00C0 rjmp .L10 |
162 0120 8091 0000 lds r24,SenderOkay |
163 0124 865F subi r24,lo8(-(10)) |
164 0126 8093 0000 sts SenderOkay,r24 |
165 .L8: |
166 012a FE01 movw r30,r28 |
167 012c EC0F add r30,r28 |
168 012e FD1F adc r31,r29 |
169 0130 E050 subi r30,lo8(-(PPM_in)) |
170 0132 F040 sbci r31,hi8(-(PPM_in)) |
171 0134 8081 ld r24,Z |
172 0136 9181 ldd r25,Z+1 |
173 0138 AC01 movw r20,r24 |
174 013a 440F lsl r20 |
175 013c 551F rol r21 |
176 013e 480F add r20,r24 |
177 0140 591F adc r21,r25 |
178 0142 420F add r20,r18 |
179 0144 531F adc r21,r19 |
180 0146 57FD sbrc r21,7 |
181 0148 00C0 rjmp .L31 |
182 .L12: |
183 014a 7A01 movw r14,r20 |
184 014c F594 asr r15 |
185 014e E794 ror r14 |
186 0150 F594 asr r15 |
187 0152 E794 ror r14 |
188 0154 C901 movw r24,r18 |
189 0156 0196 adiw r24,1 |
190 0158 8E15 cp r24,r14 |
191 015a 9F05 cpc r25,r15 |
192 015c 04F4 brge .L13 |
193 015e 0894 sec |
194 0160 E108 sbc r14,__zero_reg__ |
195 0162 F108 sbc r15,__zero_reg__ |
196 .L14: |
197 0164 8091 0000 lds r24,SenderOkay |
198 0168 833C cpi r24,lo8(-61) |
199 016a 00F0 brlo .L16 |
200 016c 8E01 movw r16,r28 |
201 016e 0C0F add r16,r28 |
202 0170 1D1F adc r17,r29 |
203 0172 F801 movw r30,r16 |
204 0174 E050 subi r30,lo8(-(PPM_in)) |
205 0176 F040 sbci r31,hi8(-(PPM_in)) |
206 0178 8081 ld r24,Z |
207 017a 9181 ldd r25,Z+1 |
208 017c 9701 movw r18,r14 |
209 017e 281B sub r18,r24 |
210 0180 390B sbc r19,r25 |
211 0182 C901 movw r24,r18 |
212 0184 63E0 ldi r22,lo8(3) |
213 0186 70E0 ldi r23,hi8(3) |
214 0188 0E94 0000 call __divmodhi4 |
215 018c CB01 movw r24,r22 |
216 018e 880F lsl r24 |
217 0190 991F rol r25 |
218 0192 860F add r24,r22 |
219 0194 971F adc r25,r23 |
220 0196 0050 subi r16,lo8(-(PPM_diff)) |
221 0198 1040 sbci r17,hi8(-(PPM_diff)) |
222 019a F801 movw r30,r16 |
223 019c 9183 std Z+1,r25 |
224 019e 8083 st Z,r24 |
225 .L17: |
226 01a0 FE01 movw r30,r28 |
227 01a2 EC0F add r30,r28 |
228 01a4 FD1F adc r31,r29 |
229 01a6 E050 subi r30,lo8(-(PPM_in)) |
230 01a8 F040 sbci r31,hi8(-(PPM_in)) |
231 01aa F182 std Z+1,r15 |
232 01ac E082 st Z,r14 |
233 01ae 00C0 rjmp .L7 |
234 .L29: |
235 01b0 5B9A sbi 43-0x20,3 |
236 01b2 00C0 rjmp .L2 |
237 .L28: |
238 01b4 5C9A sbi 43-0x20,4 |
239 01b6 00C0 rjmp .L21 |
240 .L27: |
241 01b8 5D9A sbi 43-0x20,5 |
242 01ba 00C0 rjmp .L19 |
243 .L16: |
244 01bc FE01 movw r30,r28 |
245 01be EC0F add r30,r28 |
246 01c0 FD1F adc r31,r29 |
247 01c2 E050 subi r30,lo8(-(PPM_diff)) |
248 01c4 F040 sbci r31,hi8(-(PPM_diff)) |
249 01c6 1182 std Z+1,__zero_reg__ |
250 01c8 1082 st Z,__zero_reg__ |
251 01ca 00C0 rjmp .L17 |
252 .L13: |
253 01cc 2150 subi r18,lo8(-(-1)) |
254 01ce 3040 sbci r19,hi8(-(-1)) |
255 01d0 E216 cp r14,r18 |
256 01d2 F306 cpc r15,r19 |
257 01d4 04F4 brge .L14 |
258 01d6 0894 sec |
259 01d8 E11C adc r14,__zero_reg__ |
260 01da F11C adc r15,__zero_reg__ |
261 01dc 00C0 rjmp .L14 |
262 .L10: |
263 01de 88EC ldi r24,lo8(-56) |
264 01e0 8093 0000 sts SenderOkay,r24 |
265 01e4 00C0 rjmp .L8 |
266 .L31: |
267 01e6 4D5F subi r20,lo8(-(3)) |
268 01e8 5F4F sbci r21,hi8(-(3)) |
269 01ea 00C0 rjmp .L12 |
270 .L30: |
271 01ec 9095 com r25 |
272 01ee 8195 neg r24 |
273 01f0 9F4F sbci r25,lo8(-1) |
274 01f2 00C0 rjmp .L9 |
275 .L2: |
276 /* epilogue: frame size=0 */ |
277 01f4 FF91 pop r31 |
278 01f6 EF91 pop r30 |
279 01f8 DF91 pop r29 |
280 01fa CF91 pop r28 |
281 01fc BF91 pop r27 |
282 01fe AF91 pop r26 |
283 0200 9F91 pop r25 |
284 0202 8F91 pop r24 |
285 0204 7F91 pop r23 |
286 0206 6F91 pop r22 |
287 0208 5F91 pop r21 |
288 020a 4F91 pop r20 |
289 020c 3F91 pop r19 |
290 020e 2F91 pop r18 |
291 0210 1F91 pop r17 |
292 0212 0F91 pop r16 |
293 0214 FF90 pop r15 |
294 0216 EF90 pop r14 |
295 0218 0F90 pop __tmp_reg__ |
296 021a 0FBE out __SREG__,__tmp_reg__ |
297 021c 0F90 pop __tmp_reg__ |
298 021e 1F90 pop __zero_reg__ |
299 0220 1895 reti |
300 /* epilogue end (size=23) */ |
301 /* function __vector_12 size 257 (211) */ |
303 .comm PPM_in,22,1 |
304 .comm PPM_diff,22,1 |
305 .comm Channels,1,1 |
306 .comm Mixer,77,1 |
307 /* File "rc.c": code 278 = 0x0116 ( 231), prologues 23, epilogues 24 */ |
DEFINED SYMBOLS |
*ABS*:00000000 rc.c |
C:\Users\Bernd\AppData\Local\Temp/ccgzl0K0.s:3 *ABS*:0000003f __SREG__ |
C:\Users\Bernd\AppData\Local\Temp/ccgzl0K0.s:4 *ABS*:0000003e __SP_H__ |
C:\Users\Bernd\AppData\Local\Temp/ccgzl0K0.s:5 *ABS*:0000003d __SP_L__ |
C:\Users\Bernd\AppData\Local\Temp/ccgzl0K0.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccgzl0K0.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccgzl0K0.s:14 .data:00000000 NewPpmData |
C:\Users\Bernd\AppData\Local\Temp/ccgzl0K0.s:21 .bss:00000000 tmpChannels |
C:\Users\Bernd\AppData\Local\Temp/ccgzl0K0.s:26 .text:00000000 rc_sum_init |
.bss:00000001 AltICR.0 |
C:\Users\Bernd\AppData\Local\Temp/ccgzl0K0.s:45 .bss:00000003 index.1 |
C:\Users\Bernd\AppData\Local\Temp/ccgzl0K0.s:49 .text:0000002a __vector_12 |
*COM*:00000001 Channels |
*COM*:00000016 PPM_in |
*COM*:00000016 PPM_diff |
*COM*:0000004d Mixer |
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
AdNeutralGier |
AdNeutralRoll |
AdNeutralNick |
SenderOkay |
__divmodhi4 |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/timer0.c |
---|
0,0 → 1,380 |
/***************************************************************************************************************************** |
* File: timer0.c |
* |
* Purpose: setup of timer0 and timer2 |
* and delay functions |
* |
* Functions: void Timer_Init(void); |
* void TIMER2_Init(void); |
* void Delay_ms(unsigned int); |
* void Delay_ms_Mess(unsigned int); |
* |
*****************************************************************************************************************************/ |
// |
#include "main.h" |
volatile unsigned int CountMilliseconds = 0; |
volatile static unsigned int tim_main; |
volatile unsigned char UpdateMotor = 0; |
volatile unsigned int cntKompass = 0; |
volatile unsigned int beeptime = 0; |
volatile unsigned char SendSPI = 0; |
volatile unsigned char ServoActive = 0; |
unsigned int BeepMuster = 0xFFFF; |
volatile int16_t ServoNickValue = 0; |
volatile int16_t ServoRollValue = 0; |
//--------------------------- |
enum |
{ |
STOP = 0, |
CK = 1, |
CK8 = 2, |
CK64 = 3, |
CK256 = 4, |
CK1024 = 5, |
T0_FALLING_EDGE = 6, |
T0_RISING_EDGE = 7 |
}; |
//--------------------------- |
//******************************************************************************************************************** |
// Timer0 is running with "fast PWM" at OC0A=PORTB3 and OC0B=PORTB4 |
// setup of Offset P_OFF1 and P_OFF2 for the air pressure sensor |
//-------------------------------------------------------------------------------------------------------------------- |
void Timer_Init(void) |
{ |
tim_main = SetDelay(10); |
// ---------------------------------------------------------------------------------------------------------------- |
// TCCR0B – Timer/Counter Control Register B containing: FOC0A FOC0B – – WGM02 CS02 CS01 CS0 |
// |
TCCR0B = CK8; // CK8 = 2 = clk/8 (From prescaler) one turnarround takes 0.1024ms |
// ---------------------------------------------------------------------------------------------------------------- |
// TCCR0A – Timer/Counter Control Register A containing: COM0A1 COM0A0 COM0B1 COM0B0 – – WGM01 WGM00 |
// |
TCCR0A = (1<<COM0A1)|(1<<COM0B1)|3; // WGM02 WGM01 WGM00 = 011 = Fast PWM |
OCR0A = 0; // output compare Register A for Counter 0 |
OCR0B = 120; // output compare Register B for Counter 0 |
TCNT0 = (unsigned char)-TIMER_RELOAD_VALUE; // reload // #define TIMER_RELOAD_VALUE 250 |
// ---------------------------------------------------------------------------------------------------------------- |
// TIMSK0 – Timer/Counter Interrupt Mask Register containing: – – – – – OCIE0B OCIE0A TOIE0 |
// TOIE0: Timer/Counter0 Overflow Interrupt Enable - When the TOIE0 bit is written to one, and the I-bit in the Status Register is set |
// |
TIMSK0 |= (1<<TOIE0); |
} |
// **************************** EOF: void Timer_Init(void) ******************************************************************* |
// ************************************************************************************************************************* |
// this funktions returns the variable "CountMilliseconds" as it will be after the waiting time hase been exipired |
// ------------------------------------------------------------------------------------------------------------------------- |
unsigned int SetDelay(unsigned int t) |
{ |
return(CountMilliseconds + t + 1); |
} |
// ************************************************************************************************************************* |
// ************************************************************************************************************************* |
// Hier wird also die Zeitdifferenz (t-CountsMilliseconds) mit der Maske 0x08000 maskiert. |
// 0x8000 = 1000 0000 0000 0000 setzt also bis auf das höchste Bit der 16-bit Zeitdifferenz alle Bits auf 0. |
// Bei einer Integerzahl codiert das höchst bit das Vorzeichen. Ist also t < CountMillisconds wird, |
// so flippt das Vorzeichen-Bit auf 1 sonst ist es 0. Diese Eigenschaft wird hier genutzt. |
// Das Ganze wird dann noch um 9 Bits nach rechts geshiftet, damit die Information im unteren Byte liegt, |
// um beim Typecast des Rückgabewertes auf 8-Bit die Ändeurng im oberen Byte nicht abgeschnitten wird. |
// |
// Man könnte den Code auch so aufschreiben: |
/* |
char CheckDelay(unsigned int t) |
{ |
int diff; |
diff = int(t-CountMilliseconds); |
if (diff < 0) return 255; |
else return 0; |
} |
*/ |
// |
char CheckDelay(unsigned int t) |
{ |
return(((t - CountMilliseconds) & 0x8000) >> 9); // 0x8000 = 0b 1000 0000 0000 0000 |
} |
// ************************************************************************************************************************* |
// ************************************************************************************************************************* |
void Delay_ms(unsigned int w) |
{ |
unsigned int akt; |
akt = SetDelay(w); |
while (!CheckDelay(akt)); |
} |
// ************************************************************************************************************************* |
// ************************************************************************************************************************* |
void Delay_ms_Mess(unsigned int w) |
{ |
unsigned int akt; |
akt = SetDelay(w); |
while (!CheckDelay(akt)) if(AdReady) {AdReady = 0; ANALOG_ON;} // #define ANALOG_ON ADCSRA=(1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE) |
} |
// ************************************************************************************************************************* |
// ************************************************************************************************************************* |
// Interrupt due to overflow of Timer0 |
// -------------------------------------- |
ISR(TIMER0_OVF_vect) |
{ |
static unsigned char cnt_1ms=1, cnt=0; // one turnarround of Timer0 takes 0.1024ms at 256 steps |
unsigned char pieper_ein = 0; |
if(SendSPI) SendSPI--; // |
if(!cnt--) |
{ |
cnt=9; // 10 steps * 0.1024ms -> 1ms |
cnt_1ms++; |
cnt_1ms %= 2; // modulo division |
if(!cnt_1ms) UpdateMotor = 1; // all 2 ms the motor is updated |
CountMilliseconds++; |
} |
if(beeptime >= 1) |
{ |
beeptime--; |
if(beeptime & BeepMuster) |
{ |
pieper_ein = 1; |
} |
else pieper_ein = 0; |
} |
else |
{ |
pieper_ein = 0; |
BeepMuster = 0xFFFF; |
} |
if(pieper_ein) |
{ |
PORTC |= (1<<7); // beeper is connected to PORTC.7 |
} |
else |
{ |
PORTC &= ~(1<<7); |
} |
//------------------------------------------------------------------------------------------------------------------------ |
// Compass works per PWM at PORTC4 |
//------------------------------------------------------------------------------------------------------------------------ |
if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV) |
{ |
if(PINC & 0x10) // PORTC4 is up |
{ |
cntKompass++; |
} |
else // PORTC4 is doing down now -> check lenght of PWM pulse |
{ |
if((cntKompass) && (cntKompass < 362)) // if value is positiv and less then 362 |
{ |
cntKompass += cntKompass / 41; |
if(cntKompass > 10) KompassValue = cntKompass - 10; else KompassValue = 0; // indicated value of compass |
} |
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180; // differential direction |
cntKompass = 0; // reset PWM counter |
} |
} |
} |
// ************************************************************************************************************************* |
// ************************************************************************************************************************* |
// Purpose: Initialize Timer 2 |
// |
// Timer 2 is used to generate the PWM at PD7 (J7) to control a camera servo for nick compensation. |
// |
//--------------------------------------------------------------------------------------------------------------------------------------- |
void TIMER2_Init(void) |
{ |
unsigned char sreg = SREG; // copy SREG – Status Register |
cli(); // disable all interrupts before reconfiguration |
PORTD &= ~(1<<PORTD7); // set PD7 = OC2A to low = Servo PPM |
//------------------------------------------------------------------------------------------ |
// DDRC – Port C Data Direction Register containing: DDC7 DDC6 DDC5 DDC4 DDC3 DDC2 DDC1 DDC0 |
DDRC |= (1<<DDC6); // set PC6 as output (Reset for HEF4017) |
HEF4017R_ON; // #define HEF4017R_ON PORTC |= (1<<PORTC6) |
//------------------------------------------------------------------------------------------ |
// TCCR2A = Timer/Counter 2 Control Register A containing: COM2A1 COM2A0 COM2B1 COM2B0 – – WGM21 WGM20 |
// COM2A1:0: Compare Match Output A Mode. These bits control the Output Compare pin (OC2A) behavior |
// COM2B1:0: Compare Match Output B Mode. These bits control the Output Compare pin (OC2B) behavior |
TCCR2A &= ~((1<<COM2A1)|(1<<COM2A0)|(1<<COM2B1)|(1<<COM2B0)); // Normal port operation |
// |
// The counter counts from BOTTOM to TOP then restarts from BOTTOM. |
// TOP is defined as OCR2A asxxx, MGM22:0 = 111. |
TCCR2A |= (1<<WGM21)|(1<<WGM20); |
//------------------------------------------------------------------------------------------ |
// TCCR2B = Timer/Counter 2 Control Register B containing: FOC2A FOC2B – – WGM22 CS22 CS21 CS20 |
// FOC2A: Force Output Compare A. The FOC2A bit is only active when the WGM bits specify a non-PWM mode |
// FOC2B: Force Output Compare B. The FOC2B bit is only active when the WGM bits specify a non-PWM mode. |
// CS22:0: Clock Select. The three Clock Select bits select the clock source to be used by the Timer/Counter |
// Clock Select = 011 = SYSKLOCK/32 at 20MHz / 32 = 625 kHz |
// The timer increments from 0x00 to OCR2A with an update rate of 625 kHz or 0.0016 ms |
// |
TCCR2B &= ~((1<<FOC2A)|(1<<FOC2B)|(1<<CS22)); |
TCCR2B |= (1<<CS21)|(1<<CS20)|(1<<WGM22); |
//------------------------------------------------------------------------------------------ |
// Reset the Timer/Counter 2 |
TCNT2 = 0; |
OCR2A = 255; // Initialize the Output Compare Register A used for PWM generation on port PD7. |
TCCR2A |= (1<<COM2A1); // Clear OC2A on Compare Match when up-counting. Set OC2A on Compare Match when down-counting |
//------------------------------------------------------------------------------------------ |
// TIMSK2 – Timer/Counter2 Interrupt Mask Register containing: – – – – – OCIE2B OCIE2A TOIE2 |
// OCIE2B: Timer/Counter2 Output Compare Match B Interrupt Enable |
// TOIE2: Timer/Counter2 Overflow Interrupt Enable |
// |
TIMSK2 &= ~((1<<OCIE2B)|(1<<TOIE2)); // Output Compare Match B Interrupt is dissabled as Overflow Interrupt |
TIMSK2 |= (1<<OCIE2A); // Timer/Counter2 Output Compare Match A Interrupt is enabled |
SREG = sreg; // recopy SREG – Status Register |
} |
// ************************************************************************************************************************* |
// ************************************************************************************************************************* |
// Timer2 controlls the Position of Control Servos at |
// OC2A=PORTD7 |
//--------------------------------------------------------------------------------------------------------------------------------------------- |
ISR(TIMER2_COMPA_vect) |
{ |
// frame len 22.5 ms = 14063 * 1.6 us |
// stop pulse: 0.3 ms = 188 * 1.6 us |
// min servo pulse: 0.6 ms = 375 * 1.6 us |
// max servo pulse: 2.4 ms = 1500 * 1.6 us |
// resolution: 1500 - 375 = 1125 steps |
#define IRS_RUNTIME 127 |
#define PPM_STOPPULSE 188 |
#define PPM_FRAMELEN (1757 * EE_Parameter.ServoNickRefresh) |
#define MINSERVOPULSE 375 |
#define MAXSERVOPULSE 1500 |
#define SERVORANGE (MAXSERVOPULSE - MINSERVOPULSE) |
static uint8_t PulseOutput = 0; |
static uint16_t RemainingPulse = 0; |
static uint16_t ServoFrameTime = 0; |
//static uint8_t ServoIndex = 0; |
#define MULTIPLYER 4 |
static int16_t ServoNickOffset = (255 / 2) * MULTIPLYER; // initial value near center positon |
//static int16_t ServoRollOffset = (255 / 2) * MULTIPLYER; // initial value near center positon |
//------------------------------------------------------------------------------------------------------------------------ |
// Nick servo state machine |
//------------------------------------------------------------------------------------------------------------------------ |
if(!PulseOutput) // pulse output complete |
{ |
if(TCCR2A & (1<<COM2A0)) // we had a low pulse |
{ |
TCCR2A &= ~(1<<COM2A0); // make a high pulse |
RemainingPulse = MINSERVOPULSE + SERVORANGE/2; // center position ~ 1.5ms |
ServoNickOffset = (ServoNickOffset * 3 + (int16_t)Parameter_ServoNickControl * MULTIPLYER) / 4; // lowpass offset |
ServoNickValue = ServoNickOffset; // offset (Range from 0 to 255 * 3 = 765) |
if(EE_Parameter.ServoCompInvert & 0x01) |
{ // inverting movement of servo |
ServoNickValue += (int16_t)( ( (int32_t)EE_Parameter.ServoNickComp * MULTIPLYER * (IntegralNick / 128L ) ) / (256L) ); |
} |
else |
{ // non inverting movement of servo |
ServoNickValue -= (int16_t)( ( (int32_t)EE_Parameter.ServoNickComp * MULTIPLYER * (IntegralNick / 128L ) ) / (256L) ); |
} |
// limit servo value to its parameter range definition |
if(ServoNickValue < ((int16_t)EE_Parameter.ServoNickMin * MULTIPLYER) ) |
{ |
ServoNickValue = (int16_t)EE_Parameter.ServoNickMin * MULTIPLYER; |
} |
else if(ServoNickValue > ((int16_t)EE_Parameter.ServoNickMax * MULTIPLYER) ) |
{ |
ServoNickValue = (int16_t)EE_Parameter.ServoNickMax * MULTIPLYER; |
} |
RemainingPulse += ServoNickValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position |
ServoNickValue /= MULTIPLYER; |
// range servo pulse width |
if(RemainingPulse > MAXSERVOPULSE ) RemainingPulse = MAXSERVOPULSE; // upper servo pulse limit |
else if(RemainingPulse < MINSERVOPULSE ) RemainingPulse = MINSERVOPULSE; // lower servo pulse limit |
ServoFrameTime = RemainingPulse; // accumulate time for correct update rate |
} |
else // we had a high pulse |
{ |
TCCR2A |= (1<<COM2A0); // make a low pulse |
RemainingPulse = PPM_FRAMELEN - ServoFrameTime; |
} |
PulseOutput = 1; // set pulse output active |
} |
if(RemainingPulse > (255 + IRS_RUNTIME)) // General pulse output generator |
{ |
OCR2A = 255; |
RemainingPulse -= 255; |
} |
else |
{ |
if(RemainingPulse > 255) // this is the 2nd last part |
{ |
if((RemainingPulse - 255) < IRS_RUNTIME) |
{ |
OCR2A = 255 - IRS_RUNTIME; |
RemainingPulse -= 255 - IRS_RUNTIME; |
} |
else // last part > ISR_RUNTIME |
{ |
OCR2A = 255; |
RemainingPulse -= 255; |
} |
} |
else // this is the last part |
{ |
OCR2A = RemainingPulse; |
RemainingPulse = 0; |
PulseOutput = 0; // trigger to stop pulse |
} |
} // EOF: general pulse output generator |
} |
// *** EOF: ISR(TIMER2_COMPA_vect) *************************************************************************************** |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/timer0.d |
---|
0,0 → 1,2 |
timer0.o timer0.d : timer0.c main.h old_macros.h _Settings.h printf_P.h timer0.h \ |
uart.h analog.h eeprom.h twimaster.h menu.h rc.h fc.h led.h |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/timer0.h |
---|
0,0 → 1,30 |
/***************************************************************************************************************************** |
* File: timer0.h |
* Purpose: header of timer0.c |
*****************************************************************************************************************************/ |
#ifndef _TIMER0 |
#define _TIMER0 |
#define TIMER_TEILER CK8 |
#define TIMER_RELOAD_VALUE 250 |
#define HEF4017R_ON PORTC |= (1<<PORTC6) |
#define HEF4017R_OFF PORTC &= ~(1<<PORTC6) |
void Timer_Init(void); |
void TIMER2_Init(void); |
void Delay_ms(unsigned int); |
void Delay_ms_Mess(unsigned int); |
unsigned int SetDelay (unsigned int t); |
char CheckDelay (unsigned int t); |
extern volatile unsigned int CountMilliseconds; |
extern volatile unsigned char UpdateMotor; |
extern volatile unsigned int beeptime; |
extern volatile unsigned int cntKompass; |
extern unsigned int BeepMuster; |
extern volatile unsigned char SendSPI, ServoActive; |
extern volatile int16_t ServoNickValue; |
extern volatile int16_t ServoRollValue; |
#endif |
//*** EOF: _TIMER0_H *********************************************************************************************************** |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/timer0.lst |
---|
0,0 → 1,768 |
1 .file "timer0.c" |
2 .arch atmega644 |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .global ServoRollValue |
11 .global ServoRollValue |
12 .section .bss |
15 ServoRollValue: |
16 0000 0000 .skip 2,0 |
17 .global ServoNickValue |
18 .global ServoNickValue |
21 ServoNickValue: |
22 0002 0000 .skip 2,0 |
23 .global BeepMuster |
24 .data |
27 BeepMuster: |
28 0000 FFFF .word -1 |
29 .global ServoActive |
30 .global ServoActive |
31 .section .bss |
34 ServoActive: |
35 0004 00 .skip 1,0 |
36 .global SendSPI |
37 .global SendSPI |
40 SendSPI: |
41 0005 00 .skip 1,0 |
42 .global beeptime |
43 .global beeptime |
46 beeptime: |
47 0006 0000 .skip 2,0 |
48 .global cntKompass |
49 .global cntKompass |
52 cntKompass: |
53 0008 0000 .skip 2,0 |
54 .global UpdateMotor |
55 .global UpdateMotor |
58 UpdateMotor: |
59 000a 00 .skip 1,0 |
60 .global CountMilliseconds |
61 .global CountMilliseconds |
64 CountMilliseconds: |
65 000b 0000 .skip 2,0 |
66 .text |
67 .global SetDelay |
69 SetDelay: |
70 /* prologue: frame size=0 */ |
71 /* prologue end (size=0) */ |
72 0000 2091 0000 lds r18,CountMilliseconds |
73 0004 3091 0000 lds r19,(CountMilliseconds)+1 |
74 0008 280F add r18,r24 |
75 000a 391F adc r19,r25 |
76 000c C901 movw r24,r18 |
77 000e 0196 adiw r24,1 |
78 /* epilogue: frame size=0 */ |
79 0010 0895 ret |
80 /* epilogue end (size=1) */ |
81 /* function SetDelay size 9 (8) */ |
83 .global Timer_Init |
85 Timer_Init: |
86 /* prologue: frame size=0 */ |
87 /* prologue end (size=0) */ |
88 0012 8AE0 ldi r24,lo8(10) |
89 0014 90E0 ldi r25,hi8(10) |
90 0016 0E94 0000 call SetDelay |
91 001a 9093 0000 sts (tim_main)+1,r25 |
92 001e 8093 0000 sts tim_main,r24 |
93 0022 82E0 ldi r24,lo8(2) |
94 0024 85BD out 69-0x20,r24 |
95 0026 83EA ldi r24,lo8(-93) |
96 0028 84BD out 68-0x20,r24 |
97 002a 17BC out 71-0x20,__zero_reg__ |
98 002c 88E7 ldi r24,lo8(120) |
99 002e 88BD out 72-0x20,r24 |
100 0030 86E0 ldi r24,lo8(6) |
101 0032 86BD out 70-0x20,r24 |
102 0034 8091 6E00 lds r24,110 |
103 0038 8160 ori r24,lo8(1) |
104 003a 8093 6E00 sts 110,r24 |
105 /* epilogue: frame size=0 */ |
106 003e 0895 ret |
107 /* epilogue end (size=1) */ |
108 /* function Timer_Init size 23 (22) */ |
110 .global CheckDelay |
112 CheckDelay: |
113 /* prologue: frame size=0 */ |
114 /* prologue end (size=0) */ |
115 0040 2091 0000 lds r18,CountMilliseconds |
116 0044 3091 0000 lds r19,(CountMilliseconds)+1 |
117 0048 821B sub r24,r18 |
118 004a 930B sbc r25,r19 |
119 004c 892F mov r24,r25 |
120 004e 9927 clr r25 |
121 0050 8695 lsr r24 |
122 0052 8074 andi r24,lo8(64) |
123 0054 9070 andi r25,hi8(64) |
124 /* epilogue: frame size=0 */ |
125 0056 0895 ret |
126 /* epilogue end (size=1) */ |
127 /* function CheckDelay size 12 (11) */ |
129 .global Delay_ms |
131 Delay_ms: |
132 /* prologue: frame size=0 */ |
133 0058 CF93 push r28 |
134 005a DF93 push r29 |
135 /* prologue end (size=2) */ |
136 005c 0E94 0000 call SetDelay |
137 0060 EC01 movw r28,r24 |
138 .L5: |
139 0062 CE01 movw r24,r28 |
140 0064 0E94 0000 call CheckDelay |
141 0068 8823 tst r24 |
142 006a 01F0 breq .L5 |
143 /* epilogue: frame size=0 */ |
144 006c DF91 pop r29 |
145 006e CF91 pop r28 |
146 0070 0895 ret |
147 /* epilogue end (size=3) */ |
148 /* function Delay_ms size 13 (8) */ |
150 .global Delay_ms_Mess |
152 Delay_ms_Mess: |
153 /* prologue: frame size=0 */ |
154 0072 1F93 push r17 |
155 0074 CF93 push r28 |
156 0076 DF93 push r29 |
157 /* prologue end (size=3) */ |
158 0078 0E94 0000 call SetDelay |
159 007c EC01 movw r28,r24 |
160 007e 1FEC ldi r17,lo8(-49) |
161 0080 00C0 rjmp .L17 |
162 .L13: |
163 0082 8091 0000 lds r24,AdReady |
164 0086 8823 tst r24 |
165 0088 01F0 breq .L17 |
166 008a 9093 0000 sts AdReady,r25 |
167 008e 1093 7A00 sts 122,r17 |
168 .L17: |
169 0092 CE01 movw r24,r28 |
170 0094 0E94 0000 call CheckDelay |
171 0098 982F mov r25,r24 |
172 009a 8823 tst r24 |
173 009c 01F0 breq .L13 |
174 /* epilogue: frame size=0 */ |
175 009e DF91 pop r29 |
176 00a0 CF91 pop r28 |
177 00a2 1F91 pop r17 |
178 00a4 0895 ret |
179 /* epilogue end (size=4) */ |
180 /* function Delay_ms_Mess size 26 (19) */ |
182 .data |
185 cnt_1ms.4: |
186 0002 01 .byte 1 |
187 .lcomm cnt.5,1 |
188 .text |
189 .global __vector_18 |
191 __vector_18: |
192 /* prologue: frame size=0 */ |
193 00a6 1F92 push __zero_reg__ |
194 00a8 0F92 push __tmp_reg__ |
195 00aa 0FB6 in __tmp_reg__,__SREG__ |
196 00ac 0F92 push __tmp_reg__ |
197 00ae 1124 clr __zero_reg__ |
198 00b0 2F93 push r18 |
199 00b2 3F93 push r19 |
200 00b4 5F93 push r21 |
201 00b6 6F93 push r22 |
202 00b8 7F93 push r23 |
203 00ba 8F93 push r24 |
204 00bc 9F93 push r25 |
205 00be AF93 push r26 |
206 00c0 BF93 push r27 |
207 00c2 EF93 push r30 |
208 00c4 FF93 push r31 |
209 /* prologue end (size=16) */ |
210 00c6 8091 0000 lds r24,SendSPI |
211 00ca 8823 tst r24 |
212 00cc 01F0 breq .L19 |
213 00ce 8091 0000 lds r24,SendSPI |
214 00d2 8150 subi r24,lo8(-(-1)) |
215 00d4 8093 0000 sts SendSPI,r24 |
216 .L19: |
217 00d8 8091 0000 lds r24,cnt.5 |
218 00dc 8150 subi r24,lo8(-(-1)) |
219 00de 8F3F cpi r24,lo8(-1) |
220 00e0 01F0 breq .L36 |
221 00e2 8093 0000 sts cnt.5,r24 |
222 .L20: |
223 00e6 8091 0000 lds r24,beeptime |
224 00ea 9091 0000 lds r25,(beeptime)+1 |
225 00ee 892B or r24,r25 |
226 00f0 01F0 breq .L22 |
227 00f2 8091 0000 lds r24,beeptime |
228 00f6 9091 0000 lds r25,(beeptime)+1 |
229 00fa 0197 sbiw r24,1 |
230 00fc 9093 0000 sts (beeptime)+1,r25 |
231 0100 8093 0000 sts beeptime,r24 |
232 0104 8091 0000 lds r24,beeptime |
233 0108 9091 0000 lds r25,(beeptime)+1 |
234 010c 2091 0000 lds r18,BeepMuster |
235 0110 3091 0000 lds r19,(BeepMuster)+1 |
236 0114 8223 and r24,r18 |
237 0116 9323 and r25,r19 |
238 0118 892B or r24,r25 |
239 011a 01F4 brne .L37 |
240 .L26: |
241 011c 4798 cbi 40-0x20,7 |
242 .L27: |
243 011e 8091 0000 lds r24,EE_Parameter+8 |
244 0122 83FF sbrs r24,3 |
245 0124 00C0 rjmp .L18 |
246 0126 86B1 in r24,38-0x20 |
247 0128 9927 clr r25 |
248 012a FC01 movw r30,r24 |
249 012c E071 andi r30,lo8(16) |
250 012e F070 andi r31,hi8(16) |
251 0130 84FF sbrs r24,4 |
252 0132 00C0 rjmp .L29 |
253 0134 8091 0000 lds r24,cntKompass |
254 0138 9091 0000 lds r25,(cntKompass)+1 |
255 013c 0196 adiw r24,1 |
256 013e 9093 0000 sts (cntKompass)+1,r25 |
257 0142 8093 0000 sts cntKompass,r24 |
258 0146 00C0 rjmp .L18 |
259 .L22: |
260 0148 8FEF ldi r24,lo8(-1) |
261 014a 9FEF ldi r25,hi8(-1) |
262 014c 9093 0000 sts (BeepMuster)+1,r25 |
263 0150 8093 0000 sts BeepMuster,r24 |
264 0154 00C0 rjmp .L26 |
265 .L37: |
266 0156 479A sbi 40-0x20,7 |
267 0158 00C0 rjmp .L27 |
268 .L36: |
269 015a 89E0 ldi r24,lo8(9) |
270 015c 8093 0000 sts cnt.5,r24 |
271 0160 8091 0000 lds r24,cnt_1ms.4 |
272 0164 8F5F subi r24,lo8(-(1)) |
273 0166 8170 andi r24,lo8(1) |
274 0168 8093 0000 sts cnt_1ms.4,r24 |
275 016c 8823 tst r24 |
276 016e 01F4 brne .L21 |
277 0170 81E0 ldi r24,lo8(1) |
278 0172 8093 0000 sts UpdateMotor,r24 |
279 .L21: |
280 0176 8091 0000 lds r24,CountMilliseconds |
281 017a 9091 0000 lds r25,(CountMilliseconds)+1 |
282 017e 0196 adiw r24,1 |
283 0180 9093 0000 sts (CountMilliseconds)+1,r25 |
284 0184 8093 0000 sts CountMilliseconds,r24 |
285 0188 00C0 rjmp .L20 |
286 .L29: |
287 018a 8091 0000 lds r24,cntKompass |
288 018e 9091 0000 lds r25,(cntKompass)+1 |
289 0192 892B or r24,r25 |
290 0194 01F0 breq .L31 |
291 0196 8091 0000 lds r24,cntKompass |
292 019a 9091 0000 lds r25,(cntKompass)+1 |
293 019e 8A56 subi r24,lo8(362) |
294 01a0 9140 sbci r25,hi8(362) |
295 01a2 00F4 brsh .L31 |
296 01a4 8091 0000 lds r24,cntKompass |
297 01a8 9091 0000 lds r25,(cntKompass)+1 |
298 01ac 69E2 ldi r22,lo8(41) |
299 01ae 70E0 ldi r23,hi8(41) |
300 01b0 0E94 0000 call __udivmodhi4 |
301 01b4 8091 0000 lds r24,cntKompass |
302 01b8 9091 0000 lds r25,(cntKompass)+1 |
303 01bc 860F add r24,r22 |
304 01be 971F adc r25,r23 |
305 01c0 9093 0000 sts (cntKompass)+1,r25 |
306 01c4 8093 0000 sts cntKompass,r24 |
307 01c8 8091 0000 lds r24,cntKompass |
308 01cc 9091 0000 lds r25,(cntKompass)+1 |
309 01d0 0B97 sbiw r24,11 |
310 01d2 00F0 brlo .L32 |
311 01d4 8091 0000 lds r24,cntKompass |
312 01d8 9091 0000 lds r25,(cntKompass)+1 |
313 01dc 0A97 sbiw r24,10 |
314 01de 9093 0000 sts (KompassValue)+1,r25 |
315 01e2 8093 0000 sts KompassValue,r24 |
316 .L31: |
317 01e6 8091 0000 lds r24,KompassValue |
318 01ea 9091 0000 lds r25,(KompassValue)+1 |
319 01ee 2091 0000 lds r18,KompassStartwert |
320 01f2 3091 0000 lds r19,(KompassStartwert)+1 |
321 01f6 821B sub r24,r18 |
322 01f8 930B sbc r25,r19 |
323 01fa 845E subi r24,lo8(-(540)) |
324 01fc 9D4F sbci r25,hi8(-(540)) |
325 01fe 68E6 ldi r22,lo8(360) |
326 0200 71E0 ldi r23,hi8(360) |
327 0202 0E94 0000 call __divmodhi4 |
328 0206 845B subi r24,lo8(-(-180)) |
329 0208 9040 sbci r25,hi8(-(-180)) |
330 020a 9093 0000 sts (KompassRichtung)+1,r25 |
331 020e 8093 0000 sts KompassRichtung,r24 |
332 0212 1092 0000 sts (cntKompass)+1,__zero_reg__ |
333 0216 1092 0000 sts cntKompass,__zero_reg__ |
334 021a 00C0 rjmp .L18 |
335 .L32: |
336 021c F093 0000 sts (KompassValue)+1,r31 |
337 0220 E093 0000 sts KompassValue,r30 |
338 0224 00C0 rjmp .L31 |
339 .L18: |
340 /* epilogue: frame size=0 */ |
341 0226 FF91 pop r31 |
342 0228 EF91 pop r30 |
343 022a BF91 pop r27 |
344 022c AF91 pop r26 |
345 022e 9F91 pop r25 |
346 0230 8F91 pop r24 |
347 0232 7F91 pop r23 |
348 0234 6F91 pop r22 |
349 0236 5F91 pop r21 |
350 0238 3F91 pop r19 |
351 023a 2F91 pop r18 |
352 023c 0F90 pop __tmp_reg__ |
353 023e 0FBE out __SREG__,__tmp_reg__ |
354 0240 0F90 pop __tmp_reg__ |
355 0242 1F90 pop __zero_reg__ |
356 0244 1895 reti |
357 /* epilogue end (size=16) */ |
358 /* function __vector_18 size 210 (178) */ |
360 .global TIMER2_Init |
362 TIMER2_Init: |
363 /* prologue: frame size=0 */ |
364 /* prologue end (size=0) */ |
365 0246 9FB7 in r25,95-0x20 |
366 /* #APP */ |
367 0248 F894 cli |
368 /* #NOAPP */ |
369 024a 5F98 cbi 43-0x20,7 |
370 024c 3E9A sbi 39-0x20,6 |
371 024e 469A sbi 40-0x20,6 |
372 0250 8091 B000 lds r24,176 |
373 0254 8F70 andi r24,lo8(15) |
374 0256 8093 B000 sts 176,r24 |
375 025a 8091 B000 lds r24,176 |
376 025e 8360 ori r24,lo8(3) |
377 0260 8093 B000 sts 176,r24 |
378 0264 8091 B100 lds r24,177 |
379 0268 8B73 andi r24,lo8(59) |
380 026a 8093 B100 sts 177,r24 |
381 026e 8091 B100 lds r24,177 |
382 0272 8B60 ori r24,lo8(11) |
383 0274 8093 B100 sts 177,r24 |
384 0278 1092 B200 sts 178,__zero_reg__ |
385 027c 8FEF ldi r24,lo8(-1) |
386 027e 8093 B300 sts 179,r24 |
387 0282 8091 B000 lds r24,176 |
388 0286 8068 ori r24,lo8(-128) |
389 0288 8093 B000 sts 176,r24 |
390 028c 8091 7000 lds r24,112 |
391 0290 8A7F andi r24,lo8(-6) |
392 0292 8093 7000 sts 112,r24 |
393 0296 8091 7000 lds r24,112 |
394 029a 8260 ori r24,lo8(2) |
395 029c 8093 7000 sts 112,r24 |
396 02a0 9FBF out 95-0x20,r25 |
397 /* epilogue: frame size=0 */ |
398 02a2 0895 ret |
399 /* epilogue end (size=1) */ |
400 /* function TIMER2_Init size 48 (47) */ |
402 .lcomm PulseOutput.0,1 |
403 .lcomm RemainingPulse.1,2 |
404 .lcomm ServoFrameTime.2,2 |
405 .data |
408 ServoNickOffset.3: |
409 0003 FC01 .word 508 |
410 .text |
411 .global __vector_9 |
413 __vector_9: |
414 /* prologue: frame size=0 */ |
415 02a4 1F92 push __zero_reg__ |
416 02a6 0F92 push __tmp_reg__ |
417 02a8 0FB6 in __tmp_reg__,__SREG__ |
418 02aa 0F92 push __tmp_reg__ |
419 02ac 1124 clr __zero_reg__ |
420 02ae 2F93 push r18 |
421 02b0 3F93 push r19 |
422 02b2 4F93 push r20 |
423 02b4 5F93 push r21 |
424 02b6 6F93 push r22 |
425 02b8 7F93 push r23 |
426 02ba 8F93 push r24 |
427 02bc 9F93 push r25 |
428 02be AF93 push r26 |
429 02c0 BF93 push r27 |
430 02c2 EF93 push r30 |
431 02c4 FF93 push r31 |
432 /* prologue end (size=17) */ |
433 02c6 8091 0000 lds r24,PulseOutput.0 |
434 02ca 8823 tst r24 |
435 02cc 01F4 brne .L63 |
436 02ce 8091 B000 lds r24,176 |
437 02d2 86FD sbrc r24,6 |
438 02d4 00C0 rjmp .L69 |
439 02d6 8091 B000 lds r24,176 |
440 02da 8064 ori r24,lo8(64) |
441 02dc 8093 B000 sts 176,r24 |
442 02e0 8091 0000 lds r24,EE_Parameter+47 |
443 02e4 282F mov r18,r24 |
444 02e6 3327 clr r19 |
445 02e8 8DED ldi r24,lo8(1757) |
446 02ea 96E0 ldi r25,hi8(1757) |
447 02ec 289F mul r18,r24 |
448 02ee A001 movw r20,r0 |
449 02f0 299F mul r18,r25 |
450 02f2 500D add r21,r0 |
451 02f4 389F mul r19,r24 |
452 02f6 500D add r21,r0 |
453 02f8 1124 clr r1 |
454 02fa CA01 movw r24,r20 |
455 02fc 2091 0000 lds r18,ServoFrameTime.2 |
456 0300 3091 0000 lds r19,(ServoFrameTime.2)+1 |
457 0304 821B sub r24,r18 |
458 0306 930B sbc r25,r19 |
459 0308 9093 0000 sts (RemainingPulse.1)+1,r25 |
460 030c 8093 0000 sts RemainingPulse.1,r24 |
461 0310 9C01 movw r18,r24 |
462 .L56: |
463 0312 81E0 ldi r24,lo8(1) |
464 0314 8093 0000 sts PulseOutput.0,r24 |
465 0318 51E0 ldi r21,hi8(383) |
466 031a 2F37 cpi r18,lo8(383) |
467 031c 3507 cpc r19,r21 |
468 031e 00F4 brsh .L70 |
469 .L57: |
470 0320 2F3F cpi r18,255 |
471 0322 3105 cpc r19,__zero_reg__ |
472 0324 01F0 breq .L59 |
473 0326 00F0 brlo .L59 |
474 0328 A901 movw r20,r18 |
475 032a 4F5F subi r20,lo8(-(-255)) |
476 032c 5040 sbci r21,hi8(-(-255)) |
477 032e 4F37 cpi r20,127 |
478 0330 5105 cpc r21,__zero_reg__ |
479 0332 00F0 brlo .+2 |
480 0334 00C0 rjmp .L60 |
481 0336 80E8 ldi r24,lo8(-128) |
482 0338 8093 B300 sts 179,r24 |
483 033c 2058 subi r18,lo8(-(-128)) |
484 033e 3040 sbci r19,hi8(-(-128)) |
485 0340 00C0 rjmp .L68 |
486 .L63: |
487 0342 2091 0000 lds r18,RemainingPulse.1 |
488 0346 3091 0000 lds r19,(RemainingPulse.1)+1 |
489 034a 51E0 ldi r21,hi8(383) |
490 034c 2F37 cpi r18,lo8(383) |
491 034e 3507 cpc r19,r21 |
492 0350 00F0 brlo .L57 |
493 .L70: |
494 0352 8FEF ldi r24,lo8(-1) |
495 0354 8093 B300 sts 179,r24 |
496 0358 2F5F subi r18,lo8(-(-255)) |
497 035a 3040 sbci r19,hi8(-(-255)) |
498 .L68: |
499 035c 3093 0000 sts (RemainingPulse.1)+1,r19 |
500 0360 2093 0000 sts RemainingPulse.1,r18 |
501 0364 00C0 rjmp .L39 |
502 .L59: |
503 0366 8091 0000 lds r24,RemainingPulse.1 |
504 036a 8093 B300 sts 179,r24 |
505 036e 1092 0000 sts (RemainingPulse.1)+1,__zero_reg__ |
506 0372 1092 0000 sts RemainingPulse.1,__zero_reg__ |
507 0376 1092 0000 sts PulseOutput.0,__zero_reg__ |
508 037a 00C0 rjmp .L39 |
509 .L69: |
510 037c 8091 B000 lds r24,176 |
511 0380 8F7B andi r24,lo8(-65) |
512 0382 8093 B000 sts 176,r24 |
513 0386 89EA ldi r24,lo8(937) |
514 0388 93E0 ldi r25,hi8(937) |
515 038a 9093 0000 sts (RemainingPulse.1)+1,r25 |
516 038e 8093 0000 sts RemainingPulse.1,r24 |
517 0392 8091 0000 lds r24,ServoNickOffset.3 |
518 0396 9091 0000 lds r25,(ServoNickOffset.3)+1 |
519 039a 9C01 movw r18,r24 |
520 039c 220F lsl r18 |
521 039e 331F rol r19 |
522 03a0 280F add r18,r24 |
523 03a2 391F adc r19,r25 |
524 03a4 8091 0000 lds r24,Parameter_ServoNickControl |
525 03a8 9927 clr r25 |
526 03aa 880F lsl r24 |
527 03ac 991F rol r25 |
528 03ae 880F lsl r24 |
529 03b0 991F rol r25 |
530 03b2 280F add r18,r24 |
531 03b4 391F adc r19,r25 |
532 03b6 37FD sbrc r19,7 |
533 03b8 00C0 rjmp .L71 |
534 .L42: |
535 03ba C901 movw r24,r18 |
536 03bc 9595 asr r25 |
537 03be 8795 ror r24 |
538 03c0 9595 asr r25 |
539 03c2 8795 ror r24 |
540 03c4 9093 0000 sts (ServoNickOffset.3)+1,r25 |
541 03c8 8093 0000 sts ServoNickOffset.3,r24 |
542 03cc 9093 0000 sts (ServoNickValue)+1,r25 |
543 03d0 8093 0000 sts ServoNickValue,r24 |
544 03d4 8091 0000 lds r24,EE_Parameter+87 |
545 03d8 80FF sbrs r24,0 |
546 03da 00C0 rjmp .L43 |
547 03dc 8091 0000 lds r24,EE_Parameter+40 |
548 03e0 682F mov r22,r24 |
549 03e2 7727 clr r23 |
550 03e4 8827 clr r24 |
551 03e6 9927 clr r25 |
552 03e8 2091 0000 lds r18,IntegralNick |
553 03ec 3091 0000 lds r19,(IntegralNick)+1 |
554 03f0 4091 0000 lds r20,(IntegralNick)+2 |
555 03f4 5091 0000 lds r21,(IntegralNick)+3 |
556 03f8 57FD sbrc r21,7 |
557 03fa 00C0 rjmp .L72 |
558 .L44: |
559 03fc A7E0 ldi r26,7 |
560 03fe 5595 1: asr r21 |
561 0400 4795 ror r20 |
562 0402 3795 ror r19 |
563 0404 2795 ror r18 |
564 0406 AA95 dec r26 |
565 0408 01F4 brne 1b |
566 040a 0E94 0000 call __mulsi3 |
567 040e 9B01 movw r18,r22 |
568 0410 AC01 movw r20,r24 |
569 0412 97FD sbrc r25,7 |
570 0414 00C0 rjmp .L73 |
571 .L45: |
572 0416 F6E0 ldi r31,6 |
573 0418 5595 1: asr r21 |
574 041a 4795 ror r20 |
575 041c 3795 ror r19 |
576 041e 2795 ror r18 |
577 0420 FA95 dec r31 |
578 0422 01F4 brne 1b |
579 0424 8091 0000 lds r24,ServoNickValue |
580 0428 9091 0000 lds r25,(ServoNickValue)+1 |
581 042c 820F add r24,r18 |
582 042e 931F adc r25,r19 |
583 .L65: |
584 0430 9093 0000 sts (ServoNickValue)+1,r25 |
585 0434 8093 0000 sts ServoNickValue,r24 |
586 0438 8091 0000 lds r24,EE_Parameter+41 |
587 043c 282F mov r18,r24 |
588 043e 3327 clr r19 |
589 0440 220F lsl r18 |
590 0442 331F rol r19 |
591 0444 220F lsl r18 |
592 0446 331F rol r19 |
593 0448 8091 0000 lds r24,ServoNickValue |
594 044c 9091 0000 lds r25,(ServoNickValue)+1 |
595 0450 8217 cp r24,r18 |
596 0452 9307 cpc r25,r19 |
597 0454 04F0 brlt .L66 |
598 0456 8091 0000 lds r24,EE_Parameter+42 |
599 045a 282F mov r18,r24 |
600 045c 3327 clr r19 |
601 045e 220F lsl r18 |
602 0460 331F rol r19 |
603 0462 220F lsl r18 |
604 0464 331F rol r19 |
605 0466 8091 0000 lds r24,ServoNickValue |
606 046a 9091 0000 lds r25,(ServoNickValue)+1 |
607 046e 2817 cp r18,r24 |
608 0470 3907 cpc r19,r25 |
609 0472 04F4 brge .L50 |
610 .L66: |
611 0474 3093 0000 sts (ServoNickValue)+1,r19 |
612 0478 2093 0000 sts ServoNickValue,r18 |
613 .L50: |
614 047c 2091 0000 lds r18,ServoNickValue |
615 0480 3091 0000 lds r19,(ServoNickValue)+1 |
616 0484 8091 0000 lds r24,RemainingPulse.1 |
617 0488 9091 0000 lds r25,(RemainingPulse.1)+1 |
618 048c 280F add r18,r24 |
619 048e 391F adc r19,r25 |
620 0490 2050 subi r18,lo8(-(-512)) |
621 0492 3240 sbci r19,hi8(-(-512)) |
622 0494 8091 0000 lds r24,ServoNickValue |
623 0498 9091 0000 lds r25,(ServoNickValue)+1 |
624 049c 97FD sbrc r25,7 |
625 049e 00C0 rjmp .L74 |
626 .L52: |
627 04a0 9595 asr r25 |
628 04a2 8795 ror r24 |
629 04a4 9595 asr r25 |
630 04a6 8795 ror r24 |
631 04a8 9093 0000 sts (ServoNickValue)+1,r25 |
632 04ac 8093 0000 sts ServoNickValue,r24 |
633 04b0 45E0 ldi r20,hi8(1501) |
634 04b2 2D3D cpi r18,lo8(1501) |
635 04b4 3407 cpc r19,r20 |
636 04b6 00F4 brsh .+2 |
637 04b8 00C0 rjmp .L53 |
638 04ba 8CED ldi r24,lo8(1500) |
639 04bc 95E0 ldi r25,hi8(1500) |
640 .L67: |
641 04be 9093 0000 sts (RemainingPulse.1)+1,r25 |
642 04c2 8093 0000 sts RemainingPulse.1,r24 |
643 .L54: |
644 04c6 2091 0000 lds r18,RemainingPulse.1 |
645 04ca 3091 0000 lds r19,(RemainingPulse.1)+1 |
646 04ce 3093 0000 sts (ServoFrameTime.2)+1,r19 |
647 04d2 2093 0000 sts ServoFrameTime.2,r18 |
648 04d6 00C0 rjmp .L56 |
649 .L60: |
650 04d8 8FEF ldi r24,lo8(-1) |
651 04da 8093 B300 sts 179,r24 |
652 04de 5093 0000 sts (RemainingPulse.1)+1,r21 |
653 04e2 4093 0000 sts RemainingPulse.1,r20 |
654 04e6 00C0 rjmp .L39 |
655 .L71: |
656 04e8 2D5F subi r18,lo8(-(3)) |
657 04ea 3F4F sbci r19,hi8(-(3)) |
658 04ec 00C0 rjmp .L42 |
659 .L43: |
660 04ee 8091 0000 lds r24,EE_Parameter+40 |
661 04f2 682F mov r22,r24 |
662 04f4 7727 clr r23 |
663 04f6 8827 clr r24 |
664 04f8 9927 clr r25 |
665 04fa 2091 0000 lds r18,IntegralNick |
666 04fe 3091 0000 lds r19,(IntegralNick)+1 |
667 0502 4091 0000 lds r20,(IntegralNick)+2 |
668 0506 5091 0000 lds r21,(IntegralNick)+3 |
669 050a 57FD sbrc r21,7 |
670 050c 00C0 rjmp .L75 |
671 .L47: |
672 050e E7E0 ldi r30,7 |
673 0510 5595 1: asr r21 |
674 0512 4795 ror r20 |
675 0514 3795 ror r19 |
676 0516 2795 ror r18 |
677 0518 EA95 dec r30 |
678 051a 01F4 brne 1b |
679 051c 0E94 0000 call __mulsi3 |
680 0520 9B01 movw r18,r22 |
681 0522 AC01 movw r20,r24 |
682 0524 97FD sbrc r25,7 |
683 0526 00C0 rjmp .L76 |
684 .L48: |
685 0528 76E0 ldi r23,6 |
686 052a 5595 1: asr r21 |
687 052c 4795 ror r20 |
688 052e 3795 ror r19 |
689 0530 2795 ror r18 |
690 0532 7A95 dec r23 |
691 0534 01F4 brne 1b |
692 0536 8091 0000 lds r24,ServoNickValue |
693 053a 9091 0000 lds r25,(ServoNickValue)+1 |
694 053e 821B sub r24,r18 |
695 0540 930B sbc r25,r19 |
696 0542 00C0 rjmp .L65 |
697 .L53: |
698 0544 51E0 ldi r21,hi8(375) |
699 0546 2737 cpi r18,lo8(375) |
700 0548 3507 cpc r19,r21 |
701 054a 00F4 brsh .L64 |
702 054c 87E7 ldi r24,lo8(375) |
703 054e 91E0 ldi r25,hi8(375) |
704 0550 00C0 rjmp .L67 |
705 .L64: |
706 0552 3093 0000 sts (RemainingPulse.1)+1,r19 |
707 0556 2093 0000 sts RemainingPulse.1,r18 |
708 055a 00C0 rjmp .L54 |
709 .L74: |
710 055c 0396 adiw r24,3 |
711 055e 00C0 rjmp .L52 |
712 .L72: |
713 0560 2158 subi r18,lo8(-(127)) |
714 0562 3F4F sbci r19,hi8(-(127)) |
715 0564 4F4F sbci r20,hlo8(-(127)) |
716 0566 5F4F sbci r21,hhi8(-(127)) |
717 0568 00C0 rjmp .L44 |
718 .L76: |
719 056a 215C subi r18,lo8(-(63)) |
720 056c 3F4F sbci r19,hi8(-(63)) |
721 056e 4F4F sbci r20,hlo8(-(63)) |
722 0570 5F4F sbci r21,hhi8(-(63)) |
723 0572 00C0 rjmp .L48 |
724 .L75: |
725 0574 2158 subi r18,lo8(-(127)) |
726 0576 3F4F sbci r19,hi8(-(127)) |
727 0578 4F4F sbci r20,hlo8(-(127)) |
728 057a 5F4F sbci r21,hhi8(-(127)) |
729 057c 00C0 rjmp .L47 |
730 .L73: |
731 057e 215C subi r18,lo8(-(63)) |
732 0580 3F4F sbci r19,hi8(-(63)) |
733 0582 4F4F sbci r20,hlo8(-(63)) |
734 0584 5F4F sbci r21,hhi8(-(63)) |
735 0586 00C0 rjmp .L45 |
736 .L39: |
737 /* epilogue: frame size=0 */ |
738 0588 FF91 pop r31 |
739 058a EF91 pop r30 |
740 058c BF91 pop r27 |
741 058e AF91 pop r26 |
742 0590 9F91 pop r25 |
743 0592 8F91 pop r24 |
744 0594 7F91 pop r23 |
745 0596 6F91 pop r22 |
746 0598 5F91 pop r21 |
747 059a 4F91 pop r20 |
748 059c 3F91 pop r19 |
749 059e 2F91 pop r18 |
750 05a0 0F90 pop __tmp_reg__ |
751 05a2 0FBE out __SREG__,__tmp_reg__ |
752 05a4 0F90 pop __tmp_reg__ |
753 05a6 1F90 pop __zero_reg__ |
754 05a8 1895 reti |
755 /* epilogue end (size=17) */ |
756 /* function __vector_9 size 387 (353) */ |
758 .comm Mixer,77,1 |
759 .lcomm tim_main,2 |
760 /* File "timer0.c": code 728 = 0x02d8 ( 646), prologues 38, epilogues 44 */ |
DEFINED SYMBOLS |
*ABS*:00000000 timer0.c |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:3 *ABS*:0000003f __SREG__ |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:4 *ABS*:0000003e __SP_H__ |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:5 *ABS*:0000003d __SP_L__ |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:15 .bss:00000000 ServoRollValue |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:21 .bss:00000002 ServoNickValue |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:27 .data:00000000 BeepMuster |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:34 .bss:00000004 ServoActive |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:40 .bss:00000005 SendSPI |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:46 .bss:00000006 beeptime |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:52 .bss:00000008 cntKompass |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:58 .bss:0000000a UpdateMotor |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:64 .bss:0000000b CountMilliseconds |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:69 .text:00000000 SetDelay |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:85 .text:00000012 Timer_Init |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:404 .bss:00000013 tim_main |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:112 .text:00000040 CheckDelay |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:131 .text:00000058 Delay_ms |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:152 .text:00000072 Delay_ms_Mess |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:185 .data:00000002 cnt_1ms.4 |
.bss:0000000d cnt.5 |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:191 .text:000000a6 __vector_18 |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:362 .text:00000246 TIMER2_Init |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:187 .bss:0000000e PulseOutput.0 |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:402 .bss:0000000f RemainingPulse.1 |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:403 .bss:00000011 ServoFrameTime.2 |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:408 .data:00000003 ServoNickOffset.3 |
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:413 .text:000002a4 __vector_9 |
*COM*:0000004d Mixer |
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
AdReady |
EE_Parameter |
__udivmodhi4 |
KompassValue |
KompassStartwert |
__divmodhi4 |
KompassRichtung |
Parameter_ServoNickControl |
IntegralNick |
__mulsi3 |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/twimaster.c |
---|
0,0 → 1,308 |
/***************************************************************************************************************************** |
* File: twimaster.c |
* |
* Purpose: setup of I2C (TWI) |
* |
* Functions: extern void i2c_init (void); // initialize I2C |
* extern void i2c_start (void); // Start I2C |
* extern void i2c_reset(void); // resert I2C |
* extern void i2c_stop (void); // Stop I2C |
* extern void i2c_write_byte (char byte); // write 1 Byte |
* |
*****************************************************************************************************************************/ |
#include "twimaster.h" |
#include "main.h" |
volatile unsigned char twi_state = 0; |
unsigned char motor=0; |
unsigned char motorread=0, MissingMotor=0; |
unsigned char motor_rx[16], motor_rx2[16]; |
unsigned char MotorPresent[MAX_MOTORS]; // #define MAX_MOTORS 4 |
unsigned char MotorError[MAX_MOTORS]; |
unsigned int I2CError=0; |
// ************************************************************************************************************************************* |
// Initzialize I2C (TWI) |
// |
void i2c_init(void) |
{ |
//-------------------------------------------------------------------------------------------------------------------- |
// TWSR = TWI Status Register containing: TWS7 TWS6 TWS5 TWS4 TWS3 – TWPS1 TWPS0 |
// |
TWSR = 0; // TWSR – TWI Status Register |
//-------------------------------------------------------------------------------------------------------------------- |
// TWBR = TWI Bit Rate Register containing: TWBR7 TWBR6 TWBR5 TWBR4 TWBR3 TWBR2 TWBR1 TWBR0 |
// set TWI Bit Rate Register // SYSCLK = 16000000 and SCL_CLOCK = 200000 |
TWBR = ((SYSCLK/SCL_CLOCK)-16)/2; // selects the division factor for the bit rate generator |
} |
// ************************************************************************************************************************************* |
//------------------------------------------------------------------------------------------------------------------------------------- |
// Start I2C |
// |
void i2c_start(void) |
{ |
// --------------------------------------------------------------------------- |
// TWCR = TWI Control Register -> TWINT TWEA TWSTA TWSTO TWWC TWEN – TWIE |
// TWINT = TWI interrupt flag - to be set to one, to reset the TWINT Flag |
// TWSTA = TWI start and should be set to one, that TWI is started as Master. |
// TWEN = TWI enable -> now TWI/I2C is working properly. |
// TWIE = TWI Interrupt enable is the TWIE Bit -> should be set |
// |
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE); |
} |
//------------------------------------------------------------------------------------------------------------------------------------- |
//------------------------------------------------------------------------------------------------------------------------------------- |
// Stop I2C |
// |
void i2c_stop(void) |
{ |
// --------------------------------------------------------------------------- |
// TWCR = TWI Control Register -> TWINT TWEA TWSTA TWSTO TWWC TWEN – TWIE |
// TWINT = TWI interrupt flag - to be set to one, to reset the TWINT Flag |
// TWSTO = TWI STOP Condition Bit (TWSTO = 1) -> now will be stoped |
// TWEN = TWI enable -> TWI/I2C is working properly |
// |
TWCR = (1<<TWINT)|(1<<TWSTO)|(1<<TWEN); |
} |
//------------------------------------------------------------------------------------------------------------------------------------- |
//------------------------------------------------------------------------------------------------------------------------------------- |
// I2C Reset |
// |
void i2c_reset(void) |
{ |
i2c_stop(); |
twi_state = 0; |
motor = TWDR; // TWI Data Register (TWDR) siehe S 227 |
motor = 0; // ist das letzte gesendete oder empfangene Byte |
TWCR = 0x80; |
TWAMR = 0; |
TWAR = 0; |
TWDR = 0; |
TWSR = 0; |
TWBR = 0; |
i2c_init(); |
i2c_start(); |
i2c_write_byte(0); |
} |
//------------------------------------------------------------------------------------------------------------------------------------- |
//--------------------------------------------------------------------------------------------------------------------------------------------- |
// write via I2C |
// |
void i2c_write_byte(char byte) |
{ |
TWSR = 0x00; |
TWDR = byte; // sende dieses Byte via TWI Data Register |
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE); |
} |
//--------------------------------------------------------------------------------------------------------------------------------------------- |
//--------------------------------------------------------------------------------------------------------------------------------------------- |
// write byte via I2C |
// |
void I2C_WriteByte(int8_t byte) |
{ |
// move byte to send into TWI Data Register |
TWDR = byte; |
// clear interrupt flag (TWINT = 1) |
// enable i2c bus (TWEN = 1) |
// enable interrupt (TWIE = 1) |
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE); |
} |
//--------------------------------------------------------------------------------------------------------------------------------------------- |
//--------------------------------------------------------------------------------------------------------------------------------------------- |
// ein Byte gelesen und sendet ACK |
// |
void I2C_ReceiveByte(void) |
{ |
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE) | (1<<TWEA); |
} |
//--------------------------------------------------------------------------------------------------------------------------------------------- |
//--------------------------------------------------------------------------------------------------------------------------------------------- |
// I2C empfing das letzte Byte und sendet kein ACK |
// |
void I2C_ReceiveLastByte(void) |
{ |
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE); |
} |
//--------------------------------------------------------------------------------------------------------------------------------------------- |
//----------------------------------------------------------------------------------------------------------------------------------------------- |
// Interrupt I2C |
// |
ISR (TWI_vect) |
{ |
static unsigned char missing_motor; |
switch(twi_state++) |
{ |
//---------------------------------------------------------------------------------------------------------------------------- |
// write Motor-Data |
//---------------------------------------------------------------------------------------------------------------------------- |
case 0: |
while(Mixer.Motor[motor][0] <= 0 && motor < MAX_MOTORS) motor++; // #define MAX_MOTORS 2 |
if(motor == MAX_MOTORS) // writing finished -> now read |
{ |
motor = 0; |
twi_state = 3; |
if(motorread==0) i2c_write_byte(0x53); // Read-Adress of: Motor 1 = 0x53 / 2 = 0x55 / 3 = 0x57 / 4 = 0x59 |
if(motorread==1) i2c_write_byte(0x57); |
} |
else |
{ |
if(motor==0) i2c_write_byte(0x52); // Write-Adress of: Motor 1 = 0x52 / 2 = 0x54 / 3 = 0x56 / 4 = 0x58 |
if(motor==1) i2c_write_byte(0x56); |
} |
break; |
case 1: |
i2c_write_byte(Motor[motor++]); |
break; |
case 2: |
// TWSR – TWI Status Register -> TWS7 TWS6 TWS5 TWS4 TWS3 - TWPS1 TWPS0 |
// Data byte has been transmitted; NOT ACK has been received |
if(TWSR == 0x30) |
{ |
if(!missing_motor) missing_motor = motor; // |
if(++MotorError[motor-1] == 0) MotorError[motor-1] = 255; // |
} |
i2c_stop(); |
I2CTimeout = 10; // counted down every 2ms = watchdog |
twi_state = 0; |
i2c_start(); |
break; |
//---------------------------------------------------------------------------------------------------------- |
// read Motor-Data |
//---------------------------------------------------------------------------------------------------------- |
case 3: |
if(TWSR != 0x40) // Error? |
{ // send 1. Byte to be read |
MotorPresent[motorread] = 0; |
motorread++; |
if(motorread >= MAX_MOTORS) motorread = 0; // #define MAX_MOTORS 2 |
i2c_stop(); |
twi_state = 0; |
} |
else |
{ |
MotorPresent[motorread] = ('1' - '-') + motorread; |
I2C_ReceiveByte(); |
} |
//MissingMotor = missing_motor; |
MissingMotor = 0; |
missing_motor = 0; |
break; |
case 4: // read 1. Byte and send 2. Byte |
motor_rx[motorread] = TWDR; |
I2C_ReceiveLastByte(); // no acknowledge |
break; |
case 5: |
motor_rx2[motorread++] = TWDR; // read 2. Byte |
if(motorread >= MAX_MOTORS) motorread = 0; // #define MAX_MOTORS 4 |
i2c_stop(); |
twi_state = 0; |
break; |
//---------------------------------------------------------------------------------------------------------------------------------- |
// write Gyro-Offset |
//---------------------------------------------------------------------------------------------------------------------------------- |
case 8: |
i2c_write_byte(0x98); // Address of DAC see DAC Manual page 17 |
break; |
case 9: |
i2c_write_byte(0x10); // byte sent to chanel A |
break; |
case 10: |
i2c_write_byte(AnalogOffsetNick); // offset sent to DAC |
break; |
case 11: |
i2c_write_byte(0x80); // The 2nd Byte does not care = 0x80 (Dummy) |
break; |
case 12: |
i2c_stop(); |
I2CTimeout = 10; |
i2c_start(); |
break; |
case 13: |
i2c_write_byte(0x98); // Address of DAC see DAC Manual page 17 |
break; |
case 14: |
i2c_write_byte(0x12); // byte sent to chanel B |
break; |
case 15: |
i2c_write_byte(AnalogOffsetRoll); // offset sent to DAC |
break; |
case 16: |
i2c_write_byte(0x80); // The 2nd Byte does not care = 0x80 (Dummy) |
break; |
case 17: |
i2c_stop(); |
I2CTimeout = 10; |
i2c_start(); |
break; |
case 18: |
i2c_write_byte(0x98); // Address of DAC see DAC Manual page 17 |
break; |
case 19: |
i2c_write_byte(0x14); // byte sent to chanel C |
break; |
case 20: |
i2c_write_byte(AnalogOffsetGier); // offset sent to DAC |
break; |
case 21: |
i2c_write_byte(0x80); // The 2nd Byte does not care = 0x80 (Dummy) |
break; |
case 22: |
i2c_stop(); |
I2CTimeout = 10; |
twi_state = 0; |
break; |
default: twi_state = 0; |
break; |
} |
TWCR |= 0x80; // TWWC: TWI Write Collision Flag is set to 1 |
} |
//----------------------------------------------------------------------------------------------------------------------------------- |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/twimaster.d |
---|
0,0 → 1,2 |
twimaster.o twimaster.d : twimaster.c twimaster.h main.h old_macros.h _Settings.h \ |
printf_P.h timer0.h uart.h analog.h eeprom.h menu.h rc.h fc.h led.h |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/twimaster.h |
---|
0,0 → 1,35 |
/***************************************************************************************************************************** |
* File: twimaster.h |
* Purpose: header of twimaster.c |
*****************************************************************************************************************************/ |
#ifndef _I2C_MASTER_H |
#define _I2C_MASTER_H |
// ------------------------ definions for I2C --- |
#define SCL_CLOCK 200000L |
#define I2C_TIMEOUT 30000 |
#define I2C_START 0x08 |
#define I2C_REPEATED_START 0x10 |
#define I2C_TX_SLA_ACK 0x18 |
#define I2C_TX_DATA_ACK 0x28 |
#define I2C_RX_SLA_ACK 0x40 |
#define I2C_RX_DATA_ACK 0x50 |
extern volatile unsigned char twi_state; |
extern unsigned char motor,MissingMotor; |
extern unsigned char motorread; |
extern unsigned char motor_rx[]; |
extern unsigned char MotorPresent[]; |
extern unsigned char MotorError[]; |
extern void i2c_init(void); // initialize I2C |
extern void i2c_start(void); // start I2C |
extern void i2c_stop(void); // stop I2C |
extern void i2c_write_byte(char byte); // write 1 Byte |
extern void i2c_reset(void); // reset |
#endif |
// *** EOF: I2C_MASTER_H ****************************************************************************************************** |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/twimaster.lst |
---|
0,0 → 1,494 |
1 .file "twimaster.c" |
2 .arch atmega644 |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .global I2CError |
11 .global I2CError |
12 .section .bss |
15 I2CError: |
16 0000 0000 .skip 2,0 |
17 .global MissingMotor |
18 .global MissingMotor |
21 MissingMotor: |
22 0002 00 .skip 1,0 |
23 .global motorread |
24 .global motorread |
27 motorread: |
28 0003 00 .skip 1,0 |
29 .global motor |
30 .global motor |
33 motor: |
34 0004 00 .skip 1,0 |
35 .global twi_state |
36 .global twi_state |
39 twi_state: |
40 0005 00 .skip 1,0 |
41 .text |
42 .global i2c_init |
44 i2c_init: |
45 /* prologue: frame size=0 */ |
46 /* prologue end (size=0) */ |
47 0000 1092 B900 sts 185,__zero_reg__ |
48 0004 8AE2 ldi r24,lo8(42) |
49 0006 8093 B800 sts 184,r24 |
50 /* epilogue: frame size=0 */ |
51 000a 0895 ret |
52 /* epilogue end (size=1) */ |
53 /* function i2c_init size 6 (5) */ |
55 .global i2c_start |
57 i2c_start: |
58 /* prologue: frame size=0 */ |
59 /* prologue end (size=0) */ |
60 000c 85EA ldi r24,lo8(-91) |
61 000e 8093 BC00 sts 188,r24 |
62 /* epilogue: frame size=0 */ |
63 0012 0895 ret |
64 /* epilogue end (size=1) */ |
65 /* function i2c_start size 4 (3) */ |
67 .global i2c_stop |
69 i2c_stop: |
70 /* prologue: frame size=0 */ |
71 /* prologue end (size=0) */ |
72 0014 84E9 ldi r24,lo8(-108) |
73 0016 8093 BC00 sts 188,r24 |
74 /* epilogue: frame size=0 */ |
75 001a 0895 ret |
76 /* epilogue end (size=1) */ |
77 /* function i2c_stop size 4 (3) */ |
79 .global i2c_write_byte |
81 i2c_write_byte: |
82 /* prologue: frame size=0 */ |
83 /* prologue end (size=0) */ |
84 001c 1092 B900 sts 185,__zero_reg__ |
85 0020 8093 BB00 sts 187,r24 |
86 0024 85E8 ldi r24,lo8(-123) |
87 0026 8093 BC00 sts 188,r24 |
88 /* epilogue: frame size=0 */ |
89 002a 0895 ret |
90 /* epilogue end (size=1) */ |
91 /* function i2c_write_byte size 8 (7) */ |
93 .global i2c_reset |
95 i2c_reset: |
96 /* prologue: frame size=0 */ |
97 /* prologue end (size=0) */ |
98 002c 0E94 0000 call i2c_stop |
99 0030 1092 0000 sts twi_state,__zero_reg__ |
100 0034 8091 BB00 lds r24,187 |
101 0038 1092 0000 sts motor,__zero_reg__ |
102 003c 80E8 ldi r24,lo8(-128) |
103 003e 8093 BC00 sts 188,r24 |
104 0042 1092 BD00 sts 189,__zero_reg__ |
105 0046 1092 BA00 sts 186,__zero_reg__ |
106 004a 1092 BB00 sts 187,__zero_reg__ |
107 004e 1092 B900 sts 185,__zero_reg__ |
108 0052 1092 B800 sts 184,__zero_reg__ |
109 0056 0E94 0000 call i2c_init |
110 005a 0E94 0000 call i2c_start |
111 005e 80E0 ldi r24,lo8(0) |
112 0060 0E94 0000 call i2c_write_byte |
113 /* epilogue: frame size=0 */ |
114 0064 0895 ret |
115 /* epilogue end (size=1) */ |
116 /* function i2c_reset size 29 (28) */ |
118 .global I2C_WriteByte |
120 I2C_WriteByte: |
121 /* prologue: frame size=0 */ |
122 /* prologue end (size=0) */ |
123 0066 8093 BB00 sts 187,r24 |
124 006a 85E8 ldi r24,lo8(-123) |
125 006c 8093 BC00 sts 188,r24 |
126 /* epilogue: frame size=0 */ |
127 0070 0895 ret |
128 /* epilogue end (size=1) */ |
129 /* function I2C_WriteByte size 6 (5) */ |
131 .global I2C_ReceiveByte |
133 I2C_ReceiveByte: |
134 /* prologue: frame size=0 */ |
135 /* prologue end (size=0) */ |
136 0072 85EC ldi r24,lo8(-59) |
137 0074 8093 BC00 sts 188,r24 |
138 /* epilogue: frame size=0 */ |
139 0078 0895 ret |
140 /* epilogue end (size=1) */ |
141 /* function I2C_ReceiveByte size 4 (3) */ |
143 .global I2C_ReceiveLastByte |
145 I2C_ReceiveLastByte: |
146 /* prologue: frame size=0 */ |
147 /* prologue end (size=0) */ |
148 007a 85E8 ldi r24,lo8(-123) |
149 007c 8093 BC00 sts 188,r24 |
150 /* epilogue: frame size=0 */ |
151 0080 0895 ret |
152 /* epilogue end (size=1) */ |
153 /* function I2C_ReceiveLastByte size 4 (3) */ |
155 .lcomm missing_motor.0,1 |
156 .global __vector_26 |
158 __vector_26: |
159 /* prologue: frame size=0 */ |
160 0082 1F92 push __zero_reg__ |
161 0084 0F92 push __tmp_reg__ |
162 0086 0FB6 in __tmp_reg__,__SREG__ |
163 0088 0F92 push __tmp_reg__ |
164 008a 1124 clr __zero_reg__ |
165 008c 2F93 push r18 |
166 008e 3F93 push r19 |
167 0090 4F93 push r20 |
168 0092 5F93 push r21 |
169 0094 6F93 push r22 |
170 0096 7F93 push r23 |
171 0098 8F93 push r24 |
172 009a 9F93 push r25 |
173 009c AF93 push r26 |
174 009e BF93 push r27 |
175 00a0 EF93 push r30 |
176 00a2 FF93 push r31 |
177 /* prologue end (size=17) */ |
178 00a4 8091 0000 lds r24,twi_state |
179 00a8 282F mov r18,r24 |
180 00aa 3327 clr r19 |
181 00ac 4427 clr r20 |
182 00ae 5527 clr r21 |
183 00b0 8F5F subi r24,lo8(-(1)) |
184 00b2 8093 0000 sts twi_state,r24 |
185 00b6 F901 movw r30,r18 |
186 00b8 2731 cpi r18,23 |
187 00ba 3105 cpc r19,__zero_reg__ |
188 00bc 00F4 brsh .L48 |
189 00be E050 subi r30,lo8(-(pm(.L49))) |
190 00c0 F040 sbci r31,hi8(-(pm(.L49))) |
191 00c2 0C94 0000 jmp __tablejump2__ |
192 .data |
193 .section .progmem.gcc_sw_table, "a", @progbits |
194 .p2align 1 |
195 .L49: |
196 0000 0000 .word pm(.L11) |
197 0002 0000 .word pm(.L21) |
198 0004 0000 .word pm(.L22) |
199 0006 0000 .word pm(.L26) |
200 0008 0000 .word pm(.L30) |
201 000a 0000 .word pm(.L31) |
202 000c 0000 .word pm(.L48) |
203 000e 0000 .word pm(.L48) |
204 0010 0000 .word pm(.L43) |
205 0012 0000 .word pm(.L34) |
206 0014 0000 .word pm(.L35) |
207 0016 0000 .word pm(.L46) |
208 0018 0000 .word pm(.L42) |
209 001a 0000 .word pm(.L43) |
210 001c 0000 .word pm(.L39) |
211 001e 0000 .word pm(.L40) |
212 0020 0000 .word pm(.L46) |
213 0022 0000 .word pm(.L42) |
214 0024 0000 .word pm(.L43) |
215 0026 0000 .word pm(.L44) |
216 0028 0000 .word pm(.L45) |
217 002a 0000 .word pm(.L46) |
218 002c 0000 .word pm(.L47) |
219 .text |
220 .L31: |
221 00c6 8091 0000 lds r24,motorread |
222 00ca E82F mov r30,r24 |
223 00cc FF27 clr r31 |
224 00ce E050 subi r30,lo8(-(motor_rx2)) |
225 00d0 F040 sbci r31,hi8(-(motor_rx2)) |
226 00d2 9091 BB00 lds r25,187 |
227 00d6 9083 st Z,r25 |
228 00d8 8F5F subi r24,lo8(-(1)) |
229 00da 8230 cpi r24,lo8(2) |
230 00dc 00F4 brsh .+2 |
231 00de 00C0 rjmp .L55 |
232 00e0 1092 0000 sts motorread,__zero_reg__ |
233 00e4 0E94 0000 call i2c_stop |
234 .L48: |
235 00e8 1092 0000 sts twi_state,__zero_reg__ |
236 00ec 00C0 rjmp .L10 |
237 .L46: |
238 00ee 80E8 ldi r24,lo8(-128) |
239 00f0 0E94 0000 call i2c_write_byte |
240 00f4 00C0 rjmp .L10 |
241 .L43: |
242 00f6 88E9 ldi r24,lo8(-104) |
243 00f8 0E94 0000 call i2c_write_byte |
244 00fc 00C0 rjmp .L10 |
245 .L42: |
246 00fe 0E94 0000 call i2c_stop |
247 0102 8AE0 ldi r24,lo8(10) |
248 0104 90E0 ldi r25,hi8(10) |
249 0106 9093 0000 sts (I2CTimeout)+1,r25 |
250 010a 8093 0000 sts I2CTimeout,r24 |
251 010e 0E94 0000 call i2c_start |
252 0112 00C0 rjmp .L10 |
253 .L44: |
254 0114 84E1 ldi r24,lo8(20) |
255 0116 0E94 0000 call i2c_write_byte |
256 011a 00C0 rjmp .L10 |
257 .L39: |
258 011c 82E1 ldi r24,lo8(18) |
259 011e 0E94 0000 call i2c_write_byte |
260 0122 00C0 rjmp .L10 |
261 .L35: |
262 0124 8091 0000 lds r24,AnalogOffsetNick |
263 0128 0E94 0000 call i2c_write_byte |
264 012c 00C0 rjmp .L10 |
265 .L34: |
266 012e 80E1 ldi r24,lo8(16) |
267 0130 0E94 0000 call i2c_write_byte |
268 0134 00C0 rjmp .L10 |
269 .L40: |
270 0136 8091 0000 lds r24,AnalogOffsetRoll |
271 013a 0E94 0000 call i2c_write_byte |
272 013e 00C0 rjmp .L10 |
273 .L45: |
274 0140 8091 0000 lds r24,AnalogOffsetGier |
275 0144 0E94 0000 call i2c_write_byte |
276 0148 00C0 rjmp .L10 |
277 .L21: |
278 014a 8091 0000 lds r24,motor |
279 014e E82F mov r30,r24 |
280 0150 FF27 clr r31 |
281 0152 E050 subi r30,lo8(-(Motor)) |
282 0154 F040 sbci r31,hi8(-(Motor)) |
283 0156 8F5F subi r24,lo8(-(1)) |
284 0158 8093 0000 sts motor,r24 |
285 015c 8081 ld r24,Z |
286 015e 0E94 0000 call i2c_write_byte |
287 0162 00C0 rjmp .L10 |
288 .L11: |
289 0164 9091 0000 lds r25,motor |
290 0168 292F mov r18,r25 |
291 016a E92F mov r30,r25 |
292 016c FF27 clr r31 |
293 016e EE0F lsl r30 |
294 0170 FF1F rol r31 |
295 0172 EE0F lsl r30 |
296 0174 FF1F rol r31 |
297 0176 E050 subi r30,lo8(-(Mixer)) |
298 0178 F040 sbci r31,hi8(-(Mixer)) |
299 017a 8585 ldd r24,Z+13 |
300 017c 1816 cp __zero_reg__,r24 |
301 017e 04F0 brlt .+2 |
302 0180 00C0 rjmp .L59 |
303 .L13: |
304 0182 9230 cpi r25,lo8(2) |
305 0184 01F4 brne .+2 |
306 0186 00C0 rjmp .L60 |
307 0188 9923 tst r25 |
308 018a 01F4 brne .+2 |
309 018c 00C0 rjmp .L61 |
310 .L19: |
311 018e 9130 cpi r25,lo8(1) |
312 0190 01F0 breq .+2 |
313 0192 00C0 rjmp .L10 |
314 0194 86E5 ldi r24,lo8(86) |
315 0196 0E94 0000 call i2c_write_byte |
316 019a 00C0 rjmp .L10 |
317 .L30: |
318 019c 8091 0000 lds r24,motorread |
319 01a0 E82F mov r30,r24 |
320 01a2 FF27 clr r31 |
321 01a4 E050 subi r30,lo8(-(motor_rx)) |
322 01a6 F040 sbci r31,hi8(-(motor_rx)) |
323 01a8 8091 BB00 lds r24,187 |
324 01ac 8083 st Z,r24 |
325 01ae 0E94 0000 call I2C_ReceiveLastByte |
326 01b2 00C0 rjmp .L10 |
327 .L26: |
328 01b4 8091 B900 lds r24,185 |
329 01b8 8034 cpi r24,lo8(64) |
330 01ba 01F4 brne .+2 |
331 01bc 00C0 rjmp .L27 |
332 01be 8091 0000 lds r24,motorread |
333 01c2 E82F mov r30,r24 |
334 01c4 FF27 clr r31 |
335 01c6 E050 subi r30,lo8(-(MotorPresent)) |
336 01c8 F040 sbci r31,hi8(-(MotorPresent)) |
337 01ca 1082 st Z,__zero_reg__ |
338 01cc 8F5F subi r24,lo8(-(1)) |
339 01ce 8230 cpi r24,lo8(2) |
340 01d0 00F0 brlo .L54 |
341 01d2 1092 0000 sts motorread,__zero_reg__ |
342 .L28: |
343 01d6 0E94 0000 call i2c_stop |
344 01da 1092 0000 sts twi_state,__zero_reg__ |
345 .L29: |
346 01de 1092 0000 sts MissingMotor,__zero_reg__ |
347 01e2 1092 0000 sts missing_motor.0,__zero_reg__ |
348 01e6 00C0 rjmp .L10 |
349 .L22: |
350 01e8 8091 B900 lds r24,185 |
351 01ec 8033 cpi r24,lo8(48) |
352 01ee 01F4 brne .+2 |
353 01f0 00C0 rjmp .L62 |
354 .L23: |
355 01f2 0E94 0000 call i2c_stop |
356 01f6 8AE0 ldi r24,lo8(10) |
357 01f8 90E0 ldi r25,hi8(10) |
358 01fa 9093 0000 sts (I2CTimeout)+1,r25 |
359 01fe 8093 0000 sts I2CTimeout,r24 |
360 0202 1092 0000 sts twi_state,__zero_reg__ |
361 0206 0E94 0000 call i2c_start |
362 020a 00C0 rjmp .L10 |
363 .L47: |
364 020c 0E94 0000 call i2c_stop |
365 0210 8AE0 ldi r24,lo8(10) |
366 0212 90E0 ldi r25,hi8(10) |
367 0214 9093 0000 sts (I2CTimeout)+1,r25 |
368 0218 8093 0000 sts I2CTimeout,r24 |
369 021c 00C0 rjmp .L48 |
370 .L55: |
371 021e 8093 0000 sts motorread,r24 |
372 0222 0E94 0000 call i2c_stop |
373 0226 00C0 rjmp .L48 |
374 .L54: |
375 0228 8093 0000 sts motorread,r24 |
376 022c 00C0 rjmp .L28 |
377 .L59: |
378 022e 9230 cpi r25,lo8(2) |
379 0230 00F0 brlo .+2 |
380 0232 00C0 rjmp .L13 |
381 .L14: |
382 0234 922F mov r25,r18 |
383 0236 9F5F subi r25,lo8(-(1)) |
384 0238 E92F mov r30,r25 |
385 023a FF27 clr r31 |
386 023c EE0F lsl r30 |
387 023e FF1F rol r31 |
388 0240 EE0F lsl r30 |
389 0242 FF1F rol r31 |
390 0244 E050 subi r30,lo8(-(Mixer)) |
391 0246 F040 sbci r31,hi8(-(Mixer)) |
392 0248 8585 ldd r24,Z+13 |
393 024a 1816 cp __zero_reg__,r24 |
394 024c 04F0 brlt .L51 |
395 024e 292F mov r18,r25 |
396 0250 9230 cpi r25,lo8(2) |
397 0252 00F0 brlo .L14 |
398 .L51: |
399 0254 9093 0000 sts motor,r25 |
400 0258 00C0 rjmp .L13 |
401 .L60: |
402 025a 1092 0000 sts motor,__zero_reg__ |
403 025e 83E0 ldi r24,lo8(3) |
404 0260 8093 0000 sts twi_state,r24 |
405 0264 8091 0000 lds r24,motorread |
406 0268 8823 tst r24 |
407 026a 01F0 breq .L63 |
408 .L16: |
409 026c 8130 cpi r24,lo8(1) |
410 026e 01F4 brne .L10 |
411 0270 87E5 ldi r24,lo8(87) |
412 0272 0E94 0000 call i2c_write_byte |
413 0276 00C0 rjmp .L10 |
414 .L62: |
415 0278 8091 0000 lds r24,missing_motor.0 |
416 027c 8823 tst r24 |
417 027e 01F4 brne .L52 |
418 0280 9091 0000 lds r25,motor |
419 0284 9093 0000 sts missing_motor.0,r25 |
420 .L24: |
421 0288 E92F mov r30,r25 |
422 028a FF27 clr r31 |
423 028c E050 subi r30,lo8(-(MotorError-1)) |
424 028e F040 sbci r31,hi8(-(MotorError-1)) |
425 0290 8081 ld r24,Z |
426 0292 8F5F subi r24,lo8(-(1)) |
427 0294 01F4 brne .L53 |
428 0296 8FEF ldi r24,lo8(-1) |
429 .L53: |
430 0298 8083 st Z,r24 |
431 029a 00C0 rjmp .L23 |
432 .L61: |
433 029c 82E5 ldi r24,lo8(82) |
434 029e 0E94 0000 call i2c_write_byte |
435 02a2 9091 0000 lds r25,motor |
436 02a6 00C0 rjmp .L19 |
437 .L27: |
438 02a8 8091 0000 lds r24,motorread |
439 02ac E82F mov r30,r24 |
440 02ae FF27 clr r31 |
441 02b0 E050 subi r30,lo8(-(MotorPresent)) |
442 02b2 F040 sbci r31,hi8(-(MotorPresent)) |
443 02b4 8C5F subi r24,lo8(-(4)) |
444 02b6 8083 st Z,r24 |
445 02b8 0E94 0000 call I2C_ReceiveByte |
446 02bc 00C0 rjmp .L29 |
447 .L52: |
448 02be 9091 0000 lds r25,motor |
449 02c2 00C0 rjmp .L24 |
450 .L63: |
451 02c4 83E5 ldi r24,lo8(83) |
452 02c6 0E94 0000 call i2c_write_byte |
453 02ca 8091 0000 lds r24,motorread |
454 02ce 00C0 rjmp .L16 |
455 .L10: |
456 02d0 8091 BC00 lds r24,188 |
457 02d4 8068 ori r24,lo8(-128) |
458 02d6 8093 BC00 sts 188,r24 |
459 /* epilogue: frame size=0 */ |
460 02da FF91 pop r31 |
461 02dc EF91 pop r30 |
462 02de BF91 pop r27 |
463 02e0 AF91 pop r26 |
464 02e2 9F91 pop r25 |
465 02e4 8F91 pop r24 |
466 02e6 7F91 pop r23 |
467 02e8 6F91 pop r22 |
468 02ea 5F91 pop r21 |
469 02ec 4F91 pop r20 |
470 02ee 3F91 pop r19 |
471 02f0 2F91 pop r18 |
472 02f2 0F90 pop __tmp_reg__ |
473 02f4 0FBE out __SREG__,__tmp_reg__ |
474 02f6 0F90 pop __tmp_reg__ |
475 02f8 1F90 pop __zero_reg__ |
476 02fa 1895 reti |
477 /* epilogue end (size=17) */ |
478 /* function __vector_26 size 342 (308) */ |
480 .comm motor_rx,16,1 |
481 .comm MotorPresent,2,1 |
482 .comm MotorError,2,1 |
483 .comm Mixer,77,1 |
484 .comm motor_rx2,16,1 |
485 /* File "twimaster.c": code 407 = 0x0197 ( 365), prologues 17, epilogues 25 */ |
DEFINED SYMBOLS |
*ABS*:00000000 twimaster.c |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:3 *ABS*:0000003f __SREG__ |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:4 *ABS*:0000003e __SP_H__ |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:5 *ABS*:0000003d __SP_L__ |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:15 .bss:00000000 I2CError |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:21 .bss:00000002 MissingMotor |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:27 .bss:00000003 motorread |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:33 .bss:00000004 motor |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:39 .bss:00000005 twi_state |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:44 .text:00000000 i2c_init |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:57 .text:0000000c i2c_start |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:69 .text:00000014 i2c_stop |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:81 .text:0000001c i2c_write_byte |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:95 .text:0000002c i2c_reset |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:120 .text:00000066 I2C_WriteByte |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:133 .text:00000072 I2C_ReceiveByte |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:145 .text:0000007a I2C_ReceiveLastByte |
.bss:00000006 missing_motor.0 |
C:\Users\Bernd\AppData\Local\Temp/ccqYbtJB.s:158 .text:00000082 __vector_26 |
*COM*:00000010 motor_rx2 |
*COM*:0000004d Mixer |
*COM*:00000010 motor_rx |
*COM*:00000002 MotorPresent |
*COM*:00000002 MotorError |
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
__tablejump2__ |
I2CTimeout |
AnalogOffsetNick |
AnalogOffsetRoll |
AnalogOffsetGier |
Motor |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/uart.c |
---|
0,0 → 1,625 |
/************************************************************************************************************************************** |
* File: uart.c |
* |
* Purpose: This program treats the RS232 USRAT interface |
* |
* Functions: void UART_Init(void) |
* ISR(USART0_TX_vect) |
* ISR(USART0_RX_vect) |
* void AddCRC(unsigned int wieviele) |
* void SendOutData(unsigned char cmd,unsigned char address, unsigned char BufferAnzahl, ...) |
* void Decode64(void) |
* void BearbeiteRxDaten(void) |
* int uart_putchar(char c) |
* void DatenUebertragung(void) |
* |
******************************************************************************************************************************************/ |
#include "main.h" |
#include "uart.h" |
#include <stdarg.h> |
#include <string.h> |
//------------------------ Definitionen --------- |
#define FC_ADDRESS 1 |
#define NC_ADDRESS 2 |
#define MK3MAG_ADDRESS 3 |
//---------------------------------------------Variables------- |
unsigned char GetExternalControl = 0; |
unsigned char DebugDisplayAnforderung1 = 0; |
unsigned char DebugDisplayAnforderung = 0; |
unsigned char DebugDataAnforderung = 0; |
unsigned char GetVersionAnforderung = 0; |
unsigned char GetPPMChannelAnforderung = 0; |
unsigned char DisplayLine = 0; |
unsigned volatile char SioTmp = 0; |
unsigned volatile char SendeBuffer[MAX_SENDE_BUFF]; |
unsigned volatile char RxdBuffer[MAX_EMPFANGS_BUFF]; |
unsigned volatile char NMEABuffer[MAX_EMPFANGS_BUFF]; |
unsigned volatile char NeuerDatensatzEmpfangen = 0; |
unsigned volatile char NeueKoordinateEmpfangen = 0; |
unsigned volatile char UebertragungAbgeschlossen = 1; |
unsigned volatile char CntCrcError = 0; |
unsigned volatile char AnzahlEmpfangsBytes = 0; |
unsigned char *pRxData = 0; |
unsigned char RxDataLen = 0; |
unsigned volatile char PC_DebugTimeout = 0; |
unsigned volatile char PC_MotortestActive = 0; |
unsigned char DebugTextAnforderung = 255; |
unsigned char PcZugriff = 100; |
unsigned char MotorTest[16]; |
unsigned char MeineSlaveAdresse = 1; // Flight-Ctrl |
unsigned char ConfirmFrame; |
int Debug_Timer,Kompass_Timer,Timer3D; |
unsigned int DebugDataIntervall = 200, Intervall3D = 0; |
//---------------------------------------structs---------- |
struct str_DebugOut DebugOut; |
struct str_ExternControl ExternControl; |
struct str_VersionInfo VersionInfo; |
struct str_WinkelOut WinkelOut; |
struct str_Data3D Data3D; |
const unsigned char ANALOG_TEXT[32][16] = |
{ |
//1234567890123456 // -------------------------------------------------------------// siehe "Debugwerte zuordnen" in fc.c Zeile 1270 |
"3D Nick-Winkel ", // 0 = IntegralNick / (EE_Parameter.GyroAccFaktor * 4); // = Winkel * 10 |
"AccNick ", // 1 = Mittelwert_AccNick / 4; // = so um die Null |
"maxcontrollerDD ", // 2 = // = so um die Null |
"mincontrollerDD ", // 3 = // = so um die Null |
"MesswertNick ", // 4 = MesswertGier; // = -450 |
"HiResNick ", // 5 = auf Null bezogener Gyro Nickwert // = so um die Null |
"AdWertAccNick ", // 6 = // = 713 |
"Gas = thrust ", // 7 = Gas // = min 72 max 840 entspricht der Gashebelstellung |
" ", // 8 = // = 0 bis 360 Grad jenachdem wie der MK steht |
"Spannung V ", // 9 = UBat; // = 120 bei 12V |
"Empfang ", // 10 = SenderOkay; // = 0 wenn Sender aus und ca 200 wenn Sender an |
"controllerP ", // 11 = controllerP // = dreht sich im Kreis - Umlauf 40 sec |
"Motor vorne ", // 12 = Motor[0] // = 0 // wird in SendMotorData(void) hier in fc.c zugewiesen |
"Motor hinten ", // 13 = Motor[1] // = 0 |
"controllerD ", // 14 = // = 0 |
"controllerDD ", // 15 = // = 0 |
"PPM_in[3] Nick ", // 16 = // = -120...+120 // ab hier beginjnt der zweite Teil der Anzeige ------------ |
"ipk[0] ", // 17 = // = |
"ipk[1] ", // 18 = // = |
"ipk[2] ", // 19 = // = |
"ucflg1 ", // 20 = // = |
"Stick Kanal 5 ", // 21 = PPM_in[5] // = ca -120 oder +120 |
"MesswertNick ", // 22 = MesswertNick; // = 0 |
"maxcontrollerD ", // 23 = // = 0 |
"mincontrollerD ", // 24 = // = -560 |
"AdWertNick ", // 25 = AdWertNick; // = 1130 |
"maxcontrollerP ", // 26 = // |
"mincontrollerP ", // 27 = // |
"PPM_in[4] Gier ", // 28 = PPM_in[4]; // = ca -120 bis +120 |
"PPM_in[3] Nick ", // 29 = PPM_in[3]; // = ca -120 bis +120 |
"PPM_in[2] Roll ", // 30 = PPM_in[2]; // = ca -120 bis +120 |
"PPM_in[1] Gas " // 31 = PPM_in[1]; // = ca -120 bis +120 |
}; |
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
//------------------------------------------------------------------------------------------------------------------ |
// Installation of the USART COM Port |
//------------------------------------------------------------------------------------------------------------------ |
void UART_Init(void) |
{ |
//------------------------------------------------------------------------------------------------------------ |
// UCSR0B – USART Control and Status Register 0 B containing RXCIE0 TXCIE0 UDRIE0 RXEN0 TXEN0 UCSZ02 RXB80 TXB80 |
// |
UCSR0B = (1 << TXEN0) | (1 << RXEN0); // Writing this bit to one enables the USART Transmitter |
//------------------------------------------------------------------------------------------------------------ |
// UCSR0A – USART Control and Status Register A containing RXC0 TXC0 UDRE0 FE0 DORn UPEn U2X0 MPCM0 |
// |
UCSR0A |= (1<<U2X0); // Double the USART Transmission Speed |
//------------------------------------------------------------------------------------------------------------ |
// UCSR0B – USART Control and Status Register 0 B containing RXCIE0 TXCIE0 UDRIE0 RXEN0 TXEN0 UCSZ02 RXB80 TXB80 |
// |
UCSR0B |= (1<<RXCIE); // RX Complete Interrupt Enable |
UCSR0B |= (1<<TXCIE); // TX Complete Interrupt Enable |
//------------------------------------------------------------------------------------------------------------ |
// UBRRnL and UBRRnH – USART Baud Rate Registers |
// |
UBRR0L = (SYSCLK / (BAUD_RATE * 8L) - 1); // set Baudrate to 57600 |
Debug_Timer = SetDelay(DebugDataIntervall); |
Kompass_Timer = SetDelay(220); |
VersionInfo.SWMajor = VERSION_MAJOR; |
VersionInfo.SWMinor = VERSION_MINOR; |
VersionInfo.SWPatch = VERSION_PATCH; |
VersionInfo.ProtoMajor = VERSION_SERIAL_MAJOR; |
VersionInfo.ProtoMinor = VERSION_SERIAL_MINOR; |
pRxData = 0; |
RxDataLen = 0; |
} |
//------------------------------------------------------------------------------------------------------------------ |
//----------------------------------------------------------------------------------------------------- |
// Interrupt due to USART0 TX Complete |
//----------------------------------------------------------------------------------------------------- |
ISR(USART0_TX_vect) |
{ |
static unsigned int ptr = 0; |
unsigned char tmp_tx; |
if(!UebertragungAbgeschlossen) |
{ |
ptr++; // die [0] wurde schon gesendet |
tmp_tx = SendeBuffer[ptr]; |
if((tmp_tx == '\r') || (ptr == MAX_SENDE_BUFF)) |
{ |
ptr = 0; |
UebertragungAbgeschlossen = 1; |
} |
UDR = tmp_tx; |
} |
else ptr = 0; |
} |
//----------------------------------------------------------------------------------------------------- |
//----------------------------------------------------------------------------------------------------- |
// Interrupt due to USART0 RX Complete |
//----------------------------------------------------------------------------------------------------- |
ISR(USART0_RX_vect) |
{ |
static unsigned int crc; |
static unsigned char crc1,crc2,buf_ptr; |
static unsigned char UartState = 0; |
unsigned char CrcOkay = 0; |
SioTmp = UDR; |
if(buf_ptr >= MAX_EMPFANGS_BUFF) UartState = 0; |
if(SioTmp == '\r' && UartState == 2) |
{ |
UartState = 0; |
crc -= RxdBuffer[buf_ptr-2]; |
crc -= RxdBuffer[buf_ptr-1]; |
crc %= 4096; |
crc1 = '=' + crc / 64; |
crc2 = '=' + crc % 64; |
CrcOkay = 0; |
if((crc1 == RxdBuffer[buf_ptr-2]) && (crc2 == RxdBuffer[buf_ptr-1])) CrcOkay = 1; else { CrcOkay = 0; CntCrcError++;}; |
if(!NeuerDatensatzEmpfangen && CrcOkay) // Datensatz schon verarbeitet |
{ |
NeuerDatensatzEmpfangen = 1; |
AnzahlEmpfangsBytes = buf_ptr + 1; |
RxdBuffer[buf_ptr] = '\r'; |
if(RxdBuffer[2] == 'R') |
{ |
wdt_enable(WDTO_250MS); // Reset-Commando |
ServoActive = 0; |
} |
} |
} |
else |
switch(UartState) |
{ |
case 0: |
if(SioTmp == '#' && !NeuerDatensatzEmpfangen) UartState = 1; // Startzeichen und Daten schon verarbeitet |
buf_ptr = 0; |
RxdBuffer[buf_ptr++] = SioTmp; |
crc = SioTmp; |
break; |
case 1: // Adresse auswerten |
UartState++; |
RxdBuffer[buf_ptr++] = SioTmp; |
crc += SioTmp; |
break; |
case 2: // Eingangsdaten sammeln |
RxdBuffer[buf_ptr] = SioTmp; |
if(buf_ptr < MAX_EMPFANGS_BUFF) buf_ptr++; |
else UartState = 0; |
crc += SioTmp; |
break; |
default: |
UartState = 0; |
break; |
} |
} |
//----------------------------------------------------------------------------------------------------- |
// -------------------------------------------------------------------------- |
// checksum |
// -------------------------------------------------------------------------- |
void AddCRC(unsigned int wieviele) |
{ |
unsigned int tmpCRC = 0,i; |
for(i = 0; i < wieviele;i++) |
{ |
tmpCRC += SendeBuffer[i]; |
} |
tmpCRC %= 4096; |
SendeBuffer[i++] = '=' + tmpCRC / 64; |
SendeBuffer[i++] = '=' + tmpCRC % 64; |
SendeBuffer[i++] = '\r'; |
UebertragungAbgeschlossen = 0; |
UDR = SendeBuffer[0]; |
} |
//----------------------------------------------------------------------------------------------------- |
// --------------------------------------------------------------------------------------------------------------------------- |
//unsigned char *snd, unsigned char len) |
// --------------------------------------------------------------------------------------------------------------------------- |
void SendOutData(unsigned char cmd,unsigned char address, unsigned char BufferAnzahl, ...) |
{ |
va_list ap; |
unsigned int pt = 0; |
unsigned char a,b,c; |
unsigned char ptr = 0; |
unsigned char *snd = 0; |
int len = 0; |
SendeBuffer[pt++] = '#'; // Startzeichen |
SendeBuffer[pt++] = 'a' + address; // Adresse (a=0; b=1,...) |
SendeBuffer[pt++] = cmd; // Commando |
va_start(ap, BufferAnzahl); |
if(BufferAnzahl) |
{ |
snd = va_arg(ap, unsigned char*); |
len = va_arg(ap, int); |
ptr = 0; |
BufferAnzahl--; |
} |
while(len) |
{ |
if(len) |
{ |
a = snd[ptr++]; |
len--; |
if((!len) && BufferAnzahl) |
{ |
snd = va_arg(ap, unsigned char*); |
len = va_arg(ap, int); |
ptr = 0; |
BufferAnzahl--; |
} |
} |
else a = 0; |
if(len) |
{ |
b = snd[ptr++]; |
len--; |
if((!len) && BufferAnzahl) |
{ |
snd = va_arg(ap, unsigned char*); |
len = va_arg(ap, int); |
ptr = 0; |
BufferAnzahl--; |
} |
} |
else b = 0; |
if(len) |
{ |
c = snd[ptr++]; |
len--; |
if((!len) && BufferAnzahl) |
{ |
snd = va_arg(ap, unsigned char*); |
len = va_arg(ap, int); |
ptr = 0; |
BufferAnzahl--; |
} |
} |
else c = 0; |
SendeBuffer[pt++] = '=' + (a >> 2); |
SendeBuffer[pt++] = '=' + (((a & 0x03) << 4) | ((b & 0xf0) >> 4)); |
SendeBuffer[pt++] = '=' + (((b & 0x0f) << 2) | ((c & 0xc0) >> 6)); |
SendeBuffer[pt++] = '=' + ( c & 0x3f); |
} |
va_end(ap); |
AddCRC(pt); |
} |
// EOF : SendOutData() ---------------------------------------------------------------------------------------------------- |
// ---------------------------------------------------------------------------------------------------------------------- |
// die daten werden im rx buffer dekodiert, das geht nur, weil aus 4 byte immer 3 gemacht werden. |
// ---------------------------------------------------------------------------------------------------------------------- |
void Decode64(void) |
{ |
unsigned char a,b,c,d; |
unsigned char x,y,z; |
unsigned char ptrIn = 3; // start at begin of data block |
unsigned char ptrOut = 3; |
unsigned char len = AnzahlEmpfangsBytes - 6; // von der Gesamtbytezahl eines Frames gehen 3 Bytes des Headers ('#',Addr, Cmd) und 3 Bytes des Footers (CRC1, CRC2, '\r') ab. |
while(len) |
{ |
a = RxdBuffer[ptrIn++] - '='; |
b = RxdBuffer[ptrIn++] - '='; |
c = RxdBuffer[ptrIn++] - '='; |
d = RxdBuffer[ptrIn++] - '='; |
x = (a << 2) | (b >> 4); |
y = ((b & 0x0f) << 4) | (c >> 2); |
z = ((c & 0x03) << 6) | d; |
if(len--) RxdBuffer[ptrOut++] = x; else break; |
if(len--) RxdBuffer[ptrOut++] = y; else break; |
if(len--) RxdBuffer[ptrOut++] = z; else break; |
} |
pRxData = (unsigned char*)&RxdBuffer[3]; // decodierte Daten beginnen beim 4. Byte |
RxDataLen = ptrOut - 3; // wie viele Bytes wurden dekodiert? |
} |
//----------------------------------------------------------------------------------------------------- |
// ---------------------------------------------------------------------------------------------------------------------- |
void BearbeiteRxDaten(void) |
{ |
if(!NeuerDatensatzEmpfangen) return; |
unsigned char tempchar1, tempchar2; |
Decode64(); // dekodiere datenblock im Empfangsbuffer |
switch(RxdBuffer[1]-'a') // check for Slave Address |
{ |
case FC_ADDRESS: // FC special commands |
switch(RxdBuffer[2]) |
{ |
case 'K': // Kompasswert |
memcpy((unsigned char *)&KompassValue , (unsigned char *)pRxData, sizeof(KompassValue)); |
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180; |
break; |
case 't': // Motortest |
if(AnzahlEmpfangsBytes > 20) memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest)); |
else memcpy(&MotorTest[0], (unsigned char *)pRxData, 4); |
PC_MotortestActive = 240; |
//while(!UebertragungAbgeschlossen); |
//SendOutData('T', MeineSlaveAdresse, 0); |
PcZugriff = 255; |
break; |
case 'n': // "Get Mixer |
while(!UebertragungAbgeschlossen); |
SendOutData('N', FC_ADDRESS, 1, (unsigned char *) &Mixer,sizeof(Mixer)); |
break; |
case 'm': // "Write Mixer |
while(!UebertragungAbgeschlossen); |
if(pRxData[0] == MIXER_REVISION) |
{ |
memcpy(&Mixer, (unsigned char *)pRxData, sizeof(Mixer)); |
eeprom_write_block(&Mixer, &EEPromArray[EEPROM_ADR_MIXER_TABLE], sizeof(Mixer)); |
tempchar1 = 1; |
} |
else tempchar1 = 0; |
SendOutData('M', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1)); |
break; |
case 'p': // get PPM Channels |
GetPPMChannelAnforderung = 1; |
break; |
case 'q': // "Get"-Anforderung für Settings |
// Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen |
if(pRxData[0] == 0xFF) |
{ |
pRxData[0] = GetActiveParamSetNumber(); |
} |
// limit settings range |
if(pRxData[0] < 1) pRxData[0] = 1; // limit to 5 |
else if(pRxData[0] > 5) pRxData[0] = 5; // limit to 5 |
// load requested parameter set |
ReadParameterSet(pRxData[0], (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE); // #define STRUCT_PARAM_LAENGE sizeof(EE_Parameter) |
while(!UebertragungAbgeschlossen); |
tempchar1 = pRxData[0]; |
tempchar2 = EE_DATENREVISION; // #define EE_DATENREVISION 80 // Parameter fürs Koptertool; entspricht den EEPROM-Daten von FlightCtrl Version V0.76g |
SendOutData('Q', FC_ADDRESS, 3, &tempchar1, sizeof(tempchar1), &tempchar2, sizeof(tempchar2), (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE); // #define STRUCT_PARAM_LAENGE sizeof(EE_Parameter) |
break; |
case 's': // Parametersatz speichern |
if((1 <= pRxData[0]) && (pRxData[0] <= 5) && (pRxData[1] == EE_DATENREVISION)) // check for setting to be in range |
{ |
memcpy((unsigned char *) &EE_Parameter.Kanalbelegung[0], (unsigned char *)&pRxData[2], STRUCT_PARAM_LAENGE); // #define STRUCT_PARAM_LAENGE sizeof(EE_Parameter) |
WriteParameterSet(pRxData[0], (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE); |
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L; |
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L; |
SetActiveParamSetNumber(pRxData[0]); |
tempchar1 = GetActiveParamSetNumber(); |
LipoDetection(0); // jump tp main.c line 59 |
Piep(tempchar1,110); |
} |
else |
{ |
tempchar1 = 0; // mark in response an invlid setting |
} |
while(!UebertragungAbgeschlossen); |
SendOutData('S', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1)); |
break; |
} // EOF : case FC_ADDRESS |
default: // any Slave Address |
switch(RxdBuffer[2]) |
{ |
// 't' comand placed here only for compatibility to BL |
case 't': // Motortest |
if(AnzahlEmpfangsBytes > 20) memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest)); |
else memcpy(&MotorTest[0], (unsigned char *)pRxData, 4); |
while(!UebertragungAbgeschlossen); |
SendOutData('T', MeineSlaveAdresse, 0); |
PC_MotortestActive = 250; |
PcZugriff = 255; |
break; |
// 'K' comand placed here only for compatibility to old MK3MAG software, that does not send the right Slave Address |
case 'K': // Kompasswert |
memcpy((unsigned char *)&KompassValue , (unsigned char *)pRxData, sizeof(KompassValue)); |
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180; |
break; |
case 'a': // Texte der Analogwerte |
DebugTextAnforderung = pRxData[0]; |
if (DebugTextAnforderung > 31) DebugTextAnforderung = 31; |
PcZugriff = 255; |
break; |
case 'b': |
memcpy((unsigned char *)&ExternControl, (unsigned char *)pRxData, sizeof(ExternControl)); |
ConfirmFrame = ExternControl.Frame; |
PcZugriff = 255; |
break; |
case 'c': // Poll the 3D-Data |
if(!Intervall3D) { if(pRxData[0]) Timer3D = SetDelay(pRxData[0] * 10);} |
Intervall3D = pRxData[0] * 10; |
break; |
case 'd': // Poll the debug data |
DebugDataIntervall = pRxData[0] * 10; |
if(DebugDataIntervall > 0) DebugDataAnforderung = 1; |
break; |
case 'h': // x-1 Displayzeilen |
PcZugriff = 255; |
RemoteKeys |= pRxData[0]; |
if(RemoteKeys) DisplayLine = 0; |
DebugDisplayAnforderung = 1; |
break; |
case 'l': // x-1 Displayzeilen |
PcZugriff = 255; |
MenuePunkt = pRxData[0]; |
DebugDisplayAnforderung1 = 1; |
break; |
case 'v': // Version-Anforderung und Ausbaustufe |
GetVersionAnforderung = 1; |
break; |
case 'g': // |
GetExternalControl = 1; |
break; |
} |
break; // default: |
} |
NeuerDatensatzEmpfangen = 0; |
pRxData = 0; |
RxDataLen = 0; |
} |
//----------------------------------------------------------------------------------------------------- |
// -------------------------------------------------------------------------- |
// function serial output |
// -------------------------------------------------------------------------- |
int uart_putchar(char c) |
{ |
if (c == '\n') uart_putchar('\r'); |
loop_until_bit_is_set(USR, UDRE); // Warten solange bis Zeichen gesendet wurde |
UDR = c; // Ausgabe des Zeichens |
return (0); |
} |
//----------------------------------------------------------------------------------------------------- |
//--------------------------------------------------------------------------------------------- |
// Datenübertragung |
//--------------------------------------------------------------------------------------------- |
void DatenUebertragung(void) |
{ |
if(!UebertragungAbgeschlossen) return; |
if(DebugDisplayAnforderung && UebertragungAbgeschlossen) |
{ |
Menu(); |
SendOutData('H', FC_ADDRESS, 2, &DisplayLine, sizeof(DisplayLine), &DisplayBuff[DisplayLine * 20], 20); |
DisplayLine++; |
if(DisplayLine >= 4) DisplayLine = 0; |
DebugDisplayAnforderung = 0; |
} |
if(DebugDisplayAnforderung1 && UebertragungAbgeschlossen) |
{ |
Menu(); |
SendOutData('L', FC_ADDRESS, 3, &MenuePunkt, sizeof(MenuePunkt), &MaxMenue, sizeof(MaxMenue), DisplayBuff, sizeof(DisplayBuff)); |
DebugDisplayAnforderung1 = 0; |
} |
if(GetVersionAnforderung && UebertragungAbgeschlossen) |
{ |
SendOutData('V', FC_ADDRESS, 1, (unsigned char *) &VersionInfo, sizeof(VersionInfo)); |
GetVersionAnforderung = 0; |
} |
if(GetExternalControl && UebertragungAbgeschlossen) // Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen |
{ |
SendOutData('G',MeineSlaveAdresse, 1, (unsigned char *) &ExternControl, sizeof(ExternControl)); |
GetExternalControl = 0; |
} |
if((CheckDelay(Kompass_Timer)) && UebertragungAbgeschlossen) |
{ |
WinkelOut.Winkel[0] = (int) (IntegralNick / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad |
WinkelOut.Winkel[1] = (int) (IntegralRoll / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad |
WinkelOut.UserParameter[0] = Parameter_UserParam1; |
WinkelOut.UserParameter[1] = Parameter_UserParam2; |
SendOutData('w', MK3MAG_ADDRESS, 1, (unsigned char *) &WinkelOut,sizeof(WinkelOut)); |
if(WinkelOut.CalcState > 4) WinkelOut.CalcState = 6; // wird dann in SPI auf Null gesetzt |
Kompass_Timer = SetDelay(99); |
} |
if(((DebugDataIntervall>0 && CheckDelay(Debug_Timer)) || DebugDataAnforderung) && UebertragungAbgeschlossen) |
{ |
//if(Poti3 > 64) |
SendOutData('D', FC_ADDRESS, 1, (unsigned char *) &DebugOut,sizeof(DebugOut)); |
DebugDataAnforderung = 0; |
if(DebugDataIntervall>0) Debug_Timer = SetDelay(DebugDataIntervall); |
} |
if(Intervall3D > 0 && CheckDelay(Timer3D) && UebertragungAbgeschlossen) |
{ |
Data3D.Winkel[0] = (int) (IntegralNick / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad |
Data3D.Winkel[1] = (int) (IntegralRoll / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad |
Data3D.Winkel[2] = (int) ((10 * ErsatzKompass) / GIER_GRAD_FAKTOR); |
SendOutData('C', FC_ADDRESS, 1, (unsigned char *) &Data3D,sizeof(Data3D)); |
Timer3D = SetDelay(Intervall3D); |
} |
if(DebugTextAnforderung != 255) // Texte für die Analogdaten |
{ |
SendOutData('A', FC_ADDRESS, 2, (unsigned char *)&DebugTextAnforderung, sizeof(DebugTextAnforderung),(unsigned char *) ANALOG_TEXT[DebugTextAnforderung], 16); |
DebugTextAnforderung = 255; |
} |
if(ConfirmFrame && UebertragungAbgeschlossen) // Datensatz bestätigen |
{ |
SendOutData('B', FC_ADDRESS, 1, (uint8_t*)&ConfirmFrame, sizeof(ConfirmFrame)); |
ConfirmFrame = 0; |
} |
if(GetPPMChannelAnforderung && UebertragungAbgeschlossen) |
{ |
SendOutData('P', FC_ADDRESS, 1, (unsigned char *) &PPM_in, sizeof(PPM_in)); |
GetPPMChannelAnforderung = 0; |
} |
} |
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/uart.d |
---|
0,0 → 1,2 |
uart.o uart.d : uart.c main.h old_macros.h _Settings.h printf_P.h timer0.h uart.h \ |
analog.h eeprom.h twimaster.h menu.h rc.h fc.h led.h |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/uart.h |
---|
0,0 → 1,124 |
// ------------------------------------------------------------------------------------------------------------------------------------- |
// uart.h |
// ------------------------------------------------------------------------------------------------------------------------------------- |
#ifndef _UART_H |
#define _UART_H |
#define MAX_SENDE_BUFF 150 |
#define MAX_EMPFANGS_BUFF 150 |
void BearbeiteRxDaten(void); |
extern unsigned char DebugGetAnforderung; |
extern unsigned volatile char SendeBuffer[MAX_SENDE_BUFF]; |
extern unsigned volatile char RxdBuffer[MAX_EMPFANGS_BUFF]; |
extern unsigned volatile char UebertragungAbgeschlossen; |
extern unsigned volatile char PC_DebugTimeout; |
extern unsigned volatile char NeueKoordinateEmpfangen; |
extern unsigned volatile char PC_MotortestActive; |
extern unsigned char MeineSlaveAdresse; |
extern unsigned char PcZugriff; |
extern unsigned char RemotePollDisplayLine; |
extern int Debug_Timer,Kompass_Timer; |
extern void UART_Init (void); |
extern int uart_putchar(char c); |
extern void boot_program_page(uint32_t page, uint8_t *buf); |
extern void DatenUebertragung(void); |
extern void BearbeiteRxDaten(void); |
extern unsigned char MotorTest[16]; |
struct str_DebugOut |
{ |
unsigned char Digital[2]; |
signed int Analog[32]; // Debugwerte |
}; |
extern struct str_DebugOut DebugOut; |
struct str_WinkelOut |
{ |
signed int Winkel[2]; |
unsigned char UserParameter[2]; |
unsigned char CalcState; // wird als vierstufiges Flag in spi.c uart.c fc.c und main.c verwendet |
unsigned char Orientation; |
}; |
extern struct str_WinkelOut WinkelOut; |
struct str_Data3D |
{ |
signed int Winkel[3]; // nick, roll, compass in 0,1° |
signed char reserve[8]; |
}; |
extern struct str_Data3D Data3D; |
struct str_ExternControl |
{ |
unsigned char Digital[2]; |
unsigned char RemoteTasten; |
signed char Nick; |
signed char Roll; |
signed char Gier; |
unsigned char Gas; |
signed char Hight; |
unsigned char free; |
unsigned char Frame; |
unsigned char Config; |
}; |
extern struct str_ExternControl ExternControl; |
struct str_VersionInfo |
{ |
unsigned char SWMajor; |
unsigned char SWMinor; |
unsigned char ProtoMajor; |
unsigned char ProtoMinor; |
unsigned char SWPatch; |
unsigned char Reserved[5]; |
}; |
extern struct str_VersionInfo VersionInfo; |
#define BAUD_RATE 57600 //Die Baud_Rate der Seriellen Schnittstelle ist 57600 Baud |
//Anpassen der seriellen Schnittstellen Register----- |
#if defined (__AVR_ATmega644__) |
# define USR UCSR0A |
// # define UCR UCSR0B |
# define UDR UDR0 |
# define UBRR UBRR0L |
# define EICR EICR0B |
# define TXEN TXEN0 |
# define RXEN RXEN0 |
# define RXCIE RXCIE0 |
# define TXCIE TXCIE0 |
# define U2X U2X0 |
# define UCSRB UCSR0B |
# define UDRE UDRE0 |
# define INT_VEC_RX SIG_USART_RECV |
# define INT_VEC_TX SIG_USART_TRANS |
#endif |
//-------------------------------------- |
#if defined (__AVR_ATmega644P__) |
# define USR UCSR0A |
# define UCR UCSR0B |
# define UDR UDR0 |
# define UBRR UBRR0L |
# define EICR EICR0B |
# define TXEN TXEN0 |
# define RXEN RXEN0 |
# define RXCIE RXCIE0 |
# define TXCIE TXCIE0 |
# define U2X U2X0 |
# define UCSRB UCSR0B |
# define UDRE UDRE0 |
# define INT_VEC_RX SIG_USART_RECV |
# define INT_VEC_TX SIG_USART_TRANS |
#endif |
#endif //_UART_H |
//-------------------------------------------------- |
/branches/V0.76g_dk9nw_balancekopter/794 MK FC V0.76g balance/uart.lst |
---|
0,0 → 1,2237 |
1 .file "uart.c" |
2 .arch atmega644 |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .global ANALOG_TEXT |
11 .data |
14 ANALOG_TEXT: |
15 0000 3344 204E .ascii "3D Nick-Winkel " |
15 6963 6B2D |
15 5769 6E6B |
15 656C 2020 |
16 0010 4163 634E .ascii "AccNick " |
16 6963 6B20 |
16 2020 2020 |
16 2020 2020 |
17 0020 6D61 7863 .ascii "maxcontrollerDD " |
17 6F6E 7472 |
17 6F6C 6C65 |
17 7244 4420 |
18 0030 6D69 6E63 .ascii "mincontrollerDD " |
18 6F6E 7472 |
18 6F6C 6C65 |
18 7244 4420 |
19 0040 4D65 7373 .ascii "MesswertNick " |
19 7765 7274 |
19 4E69 636B |
19 2020 2020 |
20 0050 4869 5265 .ascii "HiResNick " |
20 734E 6963 |
20 6B20 2020 |
20 2020 2020 |
21 0060 4164 5765 .ascii "AdWertAccNick " |
21 7274 4163 |
21 634E 6963 |
21 6B20 2020 |
22 0070 4761 7320 .ascii "Gas = thrust " |
22 3D20 7468 |
22 7275 7374 |
22 2020 2020 |
23 0080 2020 2020 .ascii " " |
23 2020 2020 |
23 2020 2020 |
23 2020 2020 |
24 0090 5370 616E .ascii "Spannung V " |
24 6E75 6E67 |
24 2056 2020 |
24 2020 2020 |
25 00a0 456D 7066 .ascii "Empfang " |
25 616E 6720 |
25 2020 2020 |
25 2020 2020 |
26 00b0 636F 6E74 .ascii "controllerP " |
26 726F 6C6C |
26 6572 5020 |
26 2020 2020 |
27 00c0 4D6F 746F .ascii "Motor vorne " |
27 7220 766F |
27 726E 6520 |
27 2020 2020 |
28 00d0 4D6F 746F .ascii "Motor hinten " |
28 7220 6869 |
28 6E74 656E |
28 2020 2020 |
29 00e0 636F 6E74 .ascii "controllerD " |
29 726F 6C6C |
29 6572 4420 |
29 2020 2020 |
30 00f0 636F 6E74 .ascii "controllerDD " |
30 726F 6C6C |
30 6572 4444 |
30 2020 2020 |
31 0100 5050 4D5F .ascii "PPM_in[3] Nick " |
31 696E 5B33 |
31 5D20 4E69 |
31 636B 2020 |
32 0110 6970 6B5B .ascii "ipk[0] " |
32 305D 2020 |
32 2020 2020 |
32 2020 2020 |
33 0120 6970 6B5B .ascii "ipk[1] " |
33 315D 2020 |
33 2020 2020 |
33 2020 2020 |
34 0130 6970 6B5B .ascii "ipk[2] " |
34 325D 2020 |
34 2020 2020 |
34 2020 2020 |
35 0140 7563 666C .ascii "ucflg1 " |
35 6731 2020 |
35 2020 2020 |
35 2020 2020 |
36 0150 5374 6963 .ascii "Stick Kanal 5 " |
36 6B20 4B61 |
36 6E61 6C20 |
36 3520 2020 |
37 0160 4D65 7373 .ascii "MesswertNick " |
37 7765 7274 |
37 4E69 636B |
37 2020 2020 |
38 0170 6D61 7863 .ascii "maxcontrollerD " |
38 6F6E 7472 |
38 6F6C 6C65 |
38 7244 2020 |
39 0180 6D69 6E63 .ascii "mincontrollerD " |
39 6F6E 7472 |
39 6F6C 6C65 |
39 7244 2020 |
40 0190 4164 5765 .ascii "AdWertNick " |
40 7274 4E69 |
40 636B 2020 |
40 2020 2020 |
41 01a0 6D61 7863 .ascii "maxcontrollerP " |
41 6F6E 7472 |
41 6F6C 6C65 |
41 7250 2020 |
42 01b0 6D69 6E63 .ascii "mincontrollerP " |
42 6F6E 7472 |
42 6F6C 6C65 |
42 7250 2020 |
43 01c0 5050 4D5F .ascii "PPM_in[4] Gier " |
43 696E 5B34 |
43 5D20 4769 |
43 6572 2020 |
44 01d0 5050 4D5F .ascii "PPM_in[3] Nick " |
44 696E 5B33 |
44 5D20 4E69 |
44 636B 2020 |
45 01e0 5050 4D5F .ascii "PPM_in[2] Roll " |
45 696E 5B32 |
45 5D20 526F |
45 6C6C 2020 |
46 01f0 5050 4D5F .ascii "PPM_in[1] Gas " |
46 696E 5B31 |
46 5D20 4761 |
46 7320 2020 |
47 .global Intervall3D |
48 .global Intervall3D |
49 .section .bss |
52 Intervall3D: |
53 0000 0000 .skip 2,0 |
54 .global DebugDataIntervall |
55 .data |
58 DebugDataIntervall: |
59 0200 C800 .word 200 |
60 .global MeineSlaveAdresse |
63 MeineSlaveAdresse: |
64 0202 01 .byte 1 |
65 .global PcZugriff |
68 PcZugriff: |
69 0203 64 .byte 100 |
70 .global DebugTextAnforderung |
73 DebugTextAnforderung: |
74 0204 FF .byte -1 |
75 .global PC_MotortestActive |
76 .global PC_MotortestActive |
77 .section .bss |
80 PC_MotortestActive: |
81 0002 00 .skip 1,0 |
82 .global PC_DebugTimeout |
83 .global PC_DebugTimeout |
86 PC_DebugTimeout: |
87 0003 00 .skip 1,0 |
88 .global RxDataLen |
89 .global RxDataLen |
92 RxDataLen: |
93 0004 00 .skip 1,0 |
94 .global pRxData |
95 .global pRxData |
98 pRxData: |
99 0005 0000 .skip 2,0 |
100 .global AnzahlEmpfangsBytes |
101 .global AnzahlEmpfangsBytes |
104 AnzahlEmpfangsBytes: |
105 0007 00 .skip 1,0 |
106 .global CntCrcError |
107 .global CntCrcError |
110 CntCrcError: |
111 0008 00 .skip 1,0 |
112 .global UebertragungAbgeschlossen |
113 .data |
116 UebertragungAbgeschlossen: |
117 0205 01 .byte 1 |
118 .global NeueKoordinateEmpfangen |
119 .global NeueKoordinateEmpfangen |
120 .section .bss |
123 NeueKoordinateEmpfangen: |
124 0009 00 .skip 1,0 |
125 .global NeuerDatensatzEmpfangen |
126 .global NeuerDatensatzEmpfangen |
129 NeuerDatensatzEmpfangen: |
130 000a 00 .skip 1,0 |
131 .global SioTmp |
132 .global SioTmp |
135 SioTmp: |
136 000b 00 .skip 1,0 |
137 .global DisplayLine |
138 .global DisplayLine |
141 DisplayLine: |
142 000c 00 .skip 1,0 |
143 .global GetPPMChannelAnforderung |
144 .global GetPPMChannelAnforderung |
147 GetPPMChannelAnforderung: |
148 000d 00 .skip 1,0 |
149 .global GetVersionAnforderung |
150 .global GetVersionAnforderung |
153 GetVersionAnforderung: |
154 000e 00 .skip 1,0 |
155 .global DebugDataAnforderung |
156 .global DebugDataAnforderung |
159 DebugDataAnforderung: |
160 000f 00 .skip 1,0 |
161 .global DebugDisplayAnforderung |
162 .global DebugDisplayAnforderung |
165 DebugDisplayAnforderung: |
166 0010 00 .skip 1,0 |
167 .global DebugDisplayAnforderung1 |
168 .global DebugDisplayAnforderung1 |
171 DebugDisplayAnforderung1: |
172 0011 00 .skip 1,0 |
173 .global GetExternalControl |
174 .global GetExternalControl |
177 GetExternalControl: |
178 0012 00 .skip 1,0 |
179 .text |
181 eeprom_write_byte: |
182 /* prologue: frame size=0 */ |
183 /* prologue end (size=0) */ |
184 .L2: |
185 0000 F999 sbic 63-0x20,1 |
186 0002 00C0 rjmp .L2 |
187 0004 1FBA out 63-0x20,__zero_reg__ |
188 0006 92BD out (65)+1-0x20,r25 |
189 0008 81BD out 65-0x20,r24 |
190 000a 60BD out 64-0x20,r22 |
191 /* #APP */ |
192 /* START EEPROM WRITE CRITICAL SECTION */ |
193 000c 0FB6 in r0, 63 |
194 000e F894 cli |
195 0010 FA9A sbi 31, 2 |
196 0012 F99A sbi 31, 1 |
197 0014 0FBE out 63, r0 |
198 /* END EEPROM WRITE CRITICAL SECTION */ |
199 /* #NOAPP */ |
200 /* epilogue: frame size=0 */ |
201 0016 0895 ret |
202 /* epilogue end (size=1) */ |
203 /* function eeprom_write_byte size 21 (20) */ |
205 .global UART_Init |
207 UART_Init: |
208 /* prologue: frame size=0 */ |
209 /* prologue end (size=0) */ |
210 0018 88E1 ldi r24,lo8(24) |
211 001a 8093 C100 sts 193,r24 |
212 001e 8091 C000 lds r24,192 |
213 0022 8260 ori r24,lo8(2) |
214 0024 8093 C000 sts 192,r24 |
215 0028 8091 C100 lds r24,193 |
216 002c 8068 ori r24,lo8(-128) |
217 002e 8093 C100 sts 193,r24 |
218 0032 8091 C100 lds r24,193 |
219 0036 8064 ori r24,lo8(64) |
220 0038 8093 C100 sts 193,r24 |
221 003c 8AE2 ldi r24,lo8(42) |
222 003e 8093 C400 sts 196,r24 |
223 0042 8091 0000 lds r24,DebugDataIntervall |
224 0046 9091 0000 lds r25,(DebugDataIntervall)+1 |
225 004a 0E94 0000 call SetDelay |
226 004e 9093 0000 sts (Debug_Timer)+1,r25 |
227 0052 8093 0000 sts Debug_Timer,r24 |
228 0056 8CED ldi r24,lo8(220) |
229 0058 90E0 ldi r25,hi8(220) |
230 005a 0E94 0000 call SetDelay |
231 005e 9093 0000 sts (Kompass_Timer)+1,r25 |
232 0062 8093 0000 sts Kompass_Timer,r24 |
233 0066 1092 0000 sts VersionInfo,__zero_reg__ |
234 006a 8CE4 ldi r24,lo8(76) |
235 006c 8093 0000 sts VersionInfo+1,r24 |
236 0070 86E0 ldi r24,lo8(6) |
237 0072 8093 0000 sts VersionInfo+4,r24 |
238 0076 8AE0 ldi r24,lo8(10) |
239 0078 8093 0000 sts VersionInfo+2,r24 |
240 007c 81E0 ldi r24,lo8(1) |
241 007e 8093 0000 sts VersionInfo+3,r24 |
242 0082 1092 0000 sts (pRxData)+1,__zero_reg__ |
243 0086 1092 0000 sts pRxData,__zero_reg__ |
244 008a 1092 0000 sts RxDataLen,__zero_reg__ |
245 /* epilogue: frame size=0 */ |
246 008e 0895 ret |
247 /* epilogue end (size=1) */ |
248 /* function UART_Init size 60 (59) */ |
250 .lcomm ptr.5,2 |
251 .global __vector_22 |
253 __vector_22: |
254 /* prologue: frame size=0 */ |
255 0090 1F92 push __zero_reg__ |
256 0092 0F92 push __tmp_reg__ |
257 0094 0FB6 in __tmp_reg__,__SREG__ |
258 0096 0F92 push __tmp_reg__ |
259 0098 1124 clr __zero_reg__ |
260 009a 8F93 push r24 |
261 009c 9F93 push r25 |
262 009e EF93 push r30 |
263 00a0 FF93 push r31 |
264 /* prologue end (size=9) */ |
265 00a2 8091 0000 lds r24,UebertragungAbgeschlossen |
266 00a6 8823 tst r24 |
267 00a8 01F4 brne .L8 |
268 00aa 8091 0000 lds r24,ptr.5 |
269 00ae 9091 0000 lds r25,(ptr.5)+1 |
270 00b2 0196 adiw r24,1 |
271 00b4 FC01 movw r30,r24 |
272 00b6 E050 subi r30,lo8(-(SendeBuffer)) |
273 00b8 F040 sbci r31,hi8(-(SendeBuffer)) |
274 00ba E081 ld r30,Z |
275 00bc ED30 cpi r30,lo8(13) |
276 00be 01F0 breq .L10 |
277 00c0 8639 cpi r24,150 |
278 00c2 9105 cpc r25,__zero_reg__ |
279 00c4 01F0 breq .L10 |
280 00c6 9093 0000 sts (ptr.5)+1,r25 |
281 00ca 8093 0000 sts ptr.5,r24 |
282 00ce E093 C600 sts 198,r30 |
283 00d2 00C0 rjmp .L7 |
284 .L8: |
285 00d4 1092 0000 sts (ptr.5)+1,__zero_reg__ |
286 00d8 1092 0000 sts ptr.5,__zero_reg__ |
287 00dc 00C0 rjmp .L7 |
288 .L10: |
289 00de 1092 0000 sts (ptr.5)+1,__zero_reg__ |
290 00e2 1092 0000 sts ptr.5,__zero_reg__ |
291 00e6 81E0 ldi r24,lo8(1) |
292 00e8 8093 0000 sts UebertragungAbgeschlossen,r24 |
293 00ec E093 C600 sts 198,r30 |
294 .L7: |
295 /* epilogue: frame size=0 */ |
296 00f0 FF91 pop r31 |
297 00f2 EF91 pop r30 |
298 00f4 9F91 pop r25 |
299 00f6 8F91 pop r24 |
300 00f8 0F90 pop __tmp_reg__ |
301 00fa 0FBE out __SREG__,__tmp_reg__ |
302 00fc 0F90 pop __tmp_reg__ |
303 00fe 1F90 pop __zero_reg__ |
304 0100 1895 reti |
305 /* epilogue end (size=9) */ |
306 /* function __vector_22 size 57 (39) */ |
308 .lcomm crc.0,2 |
309 .lcomm crc1.1,1 |
310 .lcomm crc2.2,1 |
311 .lcomm buf_ptr.3,1 |
312 .lcomm UartState.4,1 |
313 .global __vector_20 |
315 __vector_20: |
316 /* prologue: frame size=0 */ |
317 0102 1F92 push __zero_reg__ |
318 0104 0F92 push __tmp_reg__ |
319 0106 0FB6 in __tmp_reg__,__SREG__ |
320 0108 0F92 push __tmp_reg__ |
321 010a 1124 clr __zero_reg__ |
322 010c 2F93 push r18 |
323 010e 3F93 push r19 |
324 0110 4F93 push r20 |
325 0112 5F93 push r21 |
326 0114 8F93 push r24 |
327 0116 9F93 push r25 |
328 0118 AF93 push r26 |
329 011a BF93 push r27 |
330 011c EF93 push r30 |
331 011e FF93 push r31 |
332 /* prologue end (size=15) */ |
333 0120 90E0 ldi r25,lo8(0) |
334 0122 8091 C600 lds r24,198 |
335 0126 8093 0000 sts SioTmp,r24 |
336 012a 5091 0000 lds r21,buf_ptr.3 |
337 012e 5639 cpi r21,lo8(-106) |
338 0130 00F0 brlo .L14 |
339 0132 9093 0000 sts UartState.4,r25 |
340 .L14: |
341 0136 8091 0000 lds r24,SioTmp |
342 013a 8D30 cpi r24,lo8(13) |
343 013c 01F0 breq .L33 |
344 013e 2091 0000 lds r18,UartState.4 |
345 .L15: |
346 0142 822F mov r24,r18 |
347 0144 9927 clr r25 |
348 0146 8130 cpi r24,1 |
349 0148 9105 cpc r25,__zero_reg__ |
350 014a 01F4 brne .+2 |
351 014c 00C0 rjmp .L24 |
352 014e 8230 cpi r24,2 |
353 0150 9105 cpc r25,__zero_reg__ |
354 0152 04F4 brge .+2 |
355 0154 00C0 rjmp .L34 |
356 0156 0297 sbiw r24,2 |
357 0158 01F4 brne .+2 |
358 015a 00C0 rjmp .L25 |
359 .L28: |
360 015c 1092 0000 sts UartState.4,__zero_reg__ |
361 0160 00C0 rjmp .L13 |
362 .L33: |
363 0162 2091 0000 lds r18,UartState.4 |
364 0166 2230 cpi r18,lo8(2) |
365 0168 01F4 brne .L15 |
366 016a 9093 0000 sts UartState.4,r25 |
367 016e 852F mov r24,r21 |
368 0170 9927 clr r25 |
369 0172 8050 subi r24,lo8(-(RxdBuffer)) |
370 0174 9040 sbci r25,hi8(-(RxdBuffer)) |
371 0176 FC01 movw r30,r24 |
372 0178 3297 sbiw r30,2 |
373 017a 4081 ld r20,Z |
374 017c 2091 0000 lds r18,crc.0 |
375 0180 3091 0000 lds r19,(crc.0)+1 |
376 0184 241B sub r18,r20 |
377 0186 3109 sbc r19,__zero_reg__ |
378 0188 DC01 movw r26,r24 |
379 018a 1197 sbiw r26,1 |
380 018c 8C91 ld r24,X |
381 018e 281B sub r18,r24 |
382 0190 3109 sbc r19,__zero_reg__ |
383 0192 C901 movw r24,r18 |
384 0194 9F70 andi r25,hi8(4095) |
385 0196 9093 0000 sts (crc.0)+1,r25 |
386 019a 8093 0000 sts crc.0,r24 |
387 019e 0024 clr __tmp_reg__ |
388 01a0 880F lsl r24 |
389 01a2 991F rol r25 |
390 01a4 001C rol __tmp_reg__ |
391 01a6 880F lsl r24 |
392 01a8 991F rol r25 |
393 01aa 001C rol __tmp_reg__ |
394 01ac 892F mov r24,r25 |
395 01ae 902D mov r25,__tmp_reg__ |
396 01b0 982F mov r25,r24 |
397 01b2 935C subi r25,lo8(-(61)) |
398 01b4 9093 0000 sts crc1.1,r25 |
399 01b8 2F73 andi r18,lo8(63) |
400 01ba 3070 andi r19,hi8(63) |
401 01bc 235C subi r18,lo8(-(61)) |
402 01be 2093 0000 sts crc2.2,r18 |
403 01c2 8081 ld r24,Z |
404 01c4 8917 cp r24,r25 |
405 01c6 01F4 brne .+2 |
406 01c8 00C0 rjmp .L35 |
407 .L16: |
408 01ca 90E0 ldi r25,lo8(0) |
409 01cc 8091 0000 lds r24,CntCrcError |
410 01d0 8F5F subi r24,lo8(-(1)) |
411 01d2 8093 0000 sts CntCrcError,r24 |
412 .L17: |
413 01d6 3091 0000 lds r19,NeuerDatensatzEmpfangen |
414 01da 3323 tst r19 |
415 01dc 01F0 breq .+2 |
416 01de 00C0 rjmp .L13 |
417 01e0 9923 tst r25 |
418 01e2 01F4 brne .+2 |
419 01e4 00C0 rjmp .L13 |
420 01e6 81E0 ldi r24,lo8(1) |
421 01e8 8093 0000 sts NeuerDatensatzEmpfangen,r24 |
422 01ec 580F add r21,r24 |
423 01ee 5093 0000 sts AnzahlEmpfangsBytes,r21 |
424 01f2 5150 subi r21,lo8(-(-1)) |
425 01f4 E52F mov r30,r21 |
426 01f6 FF27 clr r31 |
427 01f8 E050 subi r30,lo8(-(RxdBuffer)) |
428 01fa F040 sbci r31,hi8(-(RxdBuffer)) |
429 01fc 8DE0 ldi r24,lo8(13) |
430 01fe 8083 st Z,r24 |
431 0200 8091 0000 lds r24,RxdBuffer+2 |
432 0204 8235 cpi r24,lo8(82) |
433 0206 01F0 breq .+2 |
434 0208 00C0 rjmp .L13 |
435 020a 88E1 ldi r24,lo8(24) |
436 020c 90E0 ldi r25,hi8(24) |
437 020e 2CE0 ldi r18,lo8(12) |
438 /* #APP */ |
439 0210 0FB6 in __tmp_reg__,__SREG__ |
440 0212 F894 cli |
441 0214 A895 wdr |
442 0216 8093 6000 sts 96,r24 |
443 021a 0FBE out __SREG__,__tmp_reg__ |
444 021c 2093 6000 sts 96,r18 |
445 |
446 /* #NOAPP */ |
447 0220 3093 0000 sts ServoActive,r19 |
448 0224 00C0 rjmp .L13 |
449 .L24: |
450 0226 2F5F subi r18,lo8(-(1)) |
451 0228 2093 0000 sts UartState.4,r18 |
452 022c E52F mov r30,r21 |
453 022e FF27 clr r31 |
454 0230 E050 subi r30,lo8(-(RxdBuffer)) |
455 0232 F040 sbci r31,hi8(-(RxdBuffer)) |
456 0234 8091 0000 lds r24,SioTmp |
457 0238 8083 st Z,r24 |
458 .L32: |
459 023a 5F5F subi r21,lo8(-(1)) |
460 023c 5093 0000 sts buf_ptr.3,r21 |
461 .L27: |
462 0240 2091 0000 lds r18,SioTmp |
463 0244 8091 0000 lds r24,crc.0 |
464 0248 9091 0000 lds r25,(crc.0)+1 |
465 024c 820F add r24,r18 |
466 024e 911D adc r25,__zero_reg__ |
467 .L31: |
468 0250 9093 0000 sts (crc.0)+1,r25 |
469 0254 8093 0000 sts crc.0,r24 |
470 0258 00C0 rjmp .L13 |
471 .L25: |
472 025a E52F mov r30,r21 |
473 025c FF27 clr r31 |
474 025e E050 subi r30,lo8(-(RxdBuffer)) |
475 0260 F040 sbci r31,hi8(-(RxdBuffer)) |
476 0262 8091 0000 lds r24,SioTmp |
477 0266 8083 st Z,r24 |
478 0268 5639 cpi r21,lo8(-106) |
479 026a 00F0 brlo .L32 |
480 026c 1092 0000 sts UartState.4,__zero_reg__ |
481 0270 00C0 rjmp .L27 |
482 .L34: |
483 0272 892B or r24,r25 |
484 0274 01F0 breq .+2 |
485 0276 00C0 rjmp .L28 |
486 0278 8091 0000 lds r24,SioTmp |
487 027c 8332 cpi r24,lo8(35) |
488 027e 01F0 breq .L36 |
489 .L23: |
490 0280 8091 0000 lds r24,SioTmp |
491 0284 8093 0000 sts RxdBuffer,r24 |
492 0288 81E0 ldi r24,lo8(1) |
493 028a 8093 0000 sts buf_ptr.3,r24 |
494 028e 8091 0000 lds r24,SioTmp |
495 0292 9927 clr r25 |
496 0294 00C0 rjmp .L31 |
497 .L36: |
498 0296 8091 0000 lds r24,NeuerDatensatzEmpfangen |
499 029a 8823 tst r24 |
500 029c 01F4 brne .L23 |
501 029e 81E0 ldi r24,lo8(1) |
502 02a0 8093 0000 sts UartState.4,r24 |
503 02a4 00C0 rjmp .L23 |
504 .L35: |
505 02a6 8C91 ld r24,X |
506 02a8 8217 cp r24,r18 |
507 02aa 01F0 breq .+2 |
508 02ac 00C0 rjmp .L16 |
509 02ae 91E0 ldi r25,lo8(1) |
510 02b0 00C0 rjmp .L17 |
511 .L13: |
512 /* epilogue: frame size=0 */ |
513 02b2 FF91 pop r31 |
514 02b4 EF91 pop r30 |
515 02b6 BF91 pop r27 |
516 02b8 AF91 pop r26 |
517 02ba 9F91 pop r25 |
518 02bc 8F91 pop r24 |
519 02be 5F91 pop r21 |
520 02c0 4F91 pop r20 |
521 02c2 3F91 pop r19 |
522 02c4 2F91 pop r18 |
523 02c6 0F90 pop __tmp_reg__ |
524 02c8 0FBE out __SREG__,__tmp_reg__ |
525 02ca 0F90 pop __tmp_reg__ |
526 02cc 1F90 pop __zero_reg__ |
527 02ce 1895 reti |
528 /* epilogue end (size=15) */ |
529 /* function __vector_20 size 239 (209) */ |
531 .global AddCRC |
533 AddCRC: |
534 /* prologue: frame size=0 */ |
535 /* prologue end (size=0) */ |
536 02d0 AC01 movw r20,r24 |
537 02d2 A0E0 ldi r26,lo8(0) |
538 02d4 B0E0 ldi r27,hi8(0) |
539 02d6 9D01 movw r18,r26 |
540 02d8 A817 cp r26,r24 |
541 02da B907 cpc r27,r25 |
542 02dc 00F4 brsh .L43 |
543 02de E0E0 ldi r30,lo8(SendeBuffer) |
544 02e0 F0E0 ldi r31,hi8(SendeBuffer) |
545 .L41: |
546 02e2 8191 ld r24,Z+ |
547 02e4 280F add r18,r24 |
548 02e6 311D adc r19,__zero_reg__ |
549 02e8 1196 adiw r26,1 |
550 02ea A417 cp r26,r20 |
551 02ec B507 cpc r27,r21 |
552 02ee 00F0 brlo .L41 |
553 .L43: |
554 02f0 3F70 andi r19,hi8(4095) |
555 02f2 FD01 movw r30,r26 |
556 02f4 E050 subi r30,lo8(-(SendeBuffer)) |
557 02f6 F040 sbci r31,hi8(-(SendeBuffer)) |
558 02f8 C901 movw r24,r18 |
559 02fa 0024 clr __tmp_reg__ |
560 02fc 880F lsl r24 |
561 02fe 991F rol r25 |
562 0300 001C rol __tmp_reg__ |
563 0302 880F lsl r24 |
564 0304 991F rol r25 |
565 0306 001C rol __tmp_reg__ |
566 0308 892F mov r24,r25 |
567 030a 902D mov r25,__tmp_reg__ |
568 030c 835C subi r24,lo8(-(61)) |
569 030e 8083 st Z,r24 |
570 0310 1196 adiw r26,1 |
571 0312 FD01 movw r30,r26 |
572 0314 E050 subi r30,lo8(-(SendeBuffer)) |
573 0316 F040 sbci r31,hi8(-(SendeBuffer)) |
574 0318 2F73 andi r18,lo8(63) |
575 031a 3070 andi r19,hi8(63) |
576 031c 822F mov r24,r18 |
577 031e 835C subi r24,lo8(-(61)) |
578 0320 8083 st Z,r24 |
579 0322 A050 subi r26,lo8(-(SendeBuffer+1)) |
580 0324 B040 sbci r27,hi8(-(SendeBuffer+1)) |
581 0326 8DE0 ldi r24,lo8(13) |
582 0328 8C93 st X,r24 |
583 032a 1092 0000 sts UebertragungAbgeschlossen,__zero_reg__ |
584 032e 8091 0000 lds r24,SendeBuffer |
585 0332 8093 C600 sts 198,r24 |
586 /* epilogue: frame size=0 */ |
587 0336 0895 ret |
588 /* epilogue end (size=1) */ |
589 /* function AddCRC size 53 (52) */ |
591 .global SendOutData |
593 SendOutData: |
594 /* prologue: frame size=0 */ |
595 0338 A0E0 ldi r26,lo8(0) |
596 033a B0E0 ldi r27,hi8(0) |
597 033c E0E0 ldi r30,pm_lo8(1f) |
598 033e F0E0 ldi r31,pm_hi8(1f) |
599 0340 0C94 0000 jmp __prologue_saves__+18 |
600 1: |
601 /* prologue end (size=6) */ |
602 0344 2C85 ldd r18,Y+12 |
603 0346 9D85 ldd r25,Y+13 |
604 0348 7E85 ldd r23,Y+14 |
605 034a BB24 clr r11 |
606 034c 83E2 ldi r24,lo8(35) |
607 034e 8093 0000 sts SendeBuffer,r24 |
608 0352 9F59 subi r25,lo8(-(97)) |
609 0354 9093 0000 sts SendeBuffer+1,r25 |
610 0358 2093 0000 sts SendeBuffer+2,r18 |
611 035c 03E0 ldi r16,lo8(3) |
612 035e 10E0 ldi r17,hi8(3) |
613 0360 7723 tst r23 |
614 0362 01F4 brne .+2 |
615 0364 00C0 rjmp .L60 |
616 0366 CF84 ldd r12,Y+15 |
617 0368 D888 ldd r13,Y+16 |
618 036a 43E1 ldi r20,lo8(19) |
619 036c E42E mov r14,r20 |
620 036e F12C mov r15,__zero_reg__ |
621 0370 EC0E add r14,r28 |
622 0372 FD1E adc r15,r29 |
623 0374 A989 ldd r26,Y+17 |
624 0376 BA89 ldd r27,Y+18 |
625 0378 7150 subi r23,lo8(-(-1)) |
626 037a 1097 sbiw r26,0 |
627 037c 01F4 brne .+2 |
628 037e 00C0 rjmp .L60 |
629 .L63: |
630 0380 1097 sbiw r26,0 |
631 0382 01F4 brne .+2 |
632 0384 00C0 rjmp .L49 |
633 0386 F601 movw r30,r12 |
634 0388 EB0D add r30,r11 |
635 038a F11D adc r31,__zero_reg__ |
636 038c B394 inc r11 |
637 038e 9081 ld r25,Z |
638 0390 1197 sbiw r26,1 |
639 0392 01F4 brne .L51 |
640 0394 7723 tst r23 |
641 0396 01F0 breq .L52 |
642 0398 F701 movw r30,r14 |
643 039a 22E0 ldi r18,lo8(2) |
644 039c 30E0 ldi r19,hi8(2) |
645 039e E20E add r14,r18 |
646 03a0 F31E adc r15,r19 |
647 03a2 D701 movw r26,r14 |
648 03a4 C080 ld r12,Z |
649 03a6 D180 ldd r13,Z+1 |
650 03a8 E20E add r14,r18 |
651 03aa F31E adc r15,r19 |
652 03ac 0D90 ld __tmp_reg__,X+ |
653 03ae BC91 ld r27,X |
654 03b0 A02D mov r26,__tmp_reg__ |
655 03b2 BB24 clr r11 |
656 03b4 7150 subi r23,lo8(-(-1)) |
657 .L51: |
658 03b6 1097 sbiw r26,0 |
659 03b8 01F0 breq .L52 |
660 03ba F601 movw r30,r12 |
661 03bc EB0D add r30,r11 |
662 03be F11D adc r31,__zero_reg__ |
663 03c0 B394 inc r11 |
664 03c2 4081 ld r20,Z |
665 03c4 1197 sbiw r26,1 |
666 03c6 01F4 brne .+2 |
667 03c8 00C0 rjmp .L62 |
668 .L54: |
669 03ca 1097 sbiw r26,0 |
670 03cc 01F0 breq .L55 |
671 03ce F601 movw r30,r12 |
672 03d0 EB0D add r30,r11 |
673 03d2 F11D adc r31,__zero_reg__ |
674 03d4 B394 inc r11 |
675 03d6 6081 ld r22,Z |
676 03d8 1197 sbiw r26,1 |
677 03da 01F4 brne .L57 |
678 03dc 7723 tst r23 |
679 03de 01F0 breq .L57 |
680 03e0 F701 movw r30,r14 |
681 03e2 3296 adiw r30,2 |
682 03e4 D701 movw r26,r14 |
683 03e6 CD90 ld r12,X+ |
684 03e8 DC90 ld r13,X |
685 03ea 32E0 ldi r19,lo8(2) |
686 03ec E32E mov r14,r19 |
687 03ee F12C mov r15,__zero_reg__ |
688 03f0 EE0E add r14,r30 |
689 03f2 FF1E adc r15,r31 |
690 03f4 A081 ld r26,Z |
691 03f6 B181 ldd r27,Z+1 |
692 03f8 BB24 clr r11 |
693 03fa 7150 subi r23,lo8(-(-1)) |
694 03fc 00C0 rjmp .L57 |
695 .L49: |
696 03fe 90E0 ldi r25,lo8(0) |
697 .L52: |
698 0400 40E0 ldi r20,lo8(0) |
699 .L55: |
700 0402 60E0 ldi r22,lo8(0) |
701 .L57: |
702 0404 F801 movw r30,r16 |
703 0406 E050 subi r30,lo8(-(SendeBuffer)) |
704 0408 F040 sbci r31,hi8(-(SendeBuffer)) |
705 040a 892F mov r24,r25 |
706 040c 8695 lsr r24 |
707 040e 8695 lsr r24 |
708 0410 835C subi r24,lo8(-(61)) |
709 0412 8083 st Z,r24 |
710 0414 0F5F subi r16,lo8(-(1)) |
711 0416 1F4F sbci r17,hi8(-(1)) |
712 0418 F801 movw r30,r16 |
713 041a E050 subi r30,lo8(-(SendeBuffer)) |
714 041c F040 sbci r31,hi8(-(SendeBuffer)) |
715 041e 892F mov r24,r25 |
716 0420 9927 clr r25 |
717 0422 8370 andi r24,lo8(3) |
718 0424 9070 andi r25,hi8(3) |
719 0426 8295 swap r24 |
720 0428 9295 swap r25 |
721 042a 907F andi r25,0xf0 |
722 042c 9827 eor r25,r24 |
723 042e 807F andi r24,0xf0 |
724 0430 9827 eor r25,r24 |
725 0432 5527 clr r21 |
726 0434 9A01 movw r18,r20 |
727 0436 3295 swap r19 |
728 0438 2295 swap r18 |
729 043a 2F70 andi r18,0x0f |
730 043c 2327 eor r18,r19 |
731 043e 3F70 andi r19,0x0f |
732 0440 2327 eor r18,r19 |
733 0442 822B or r24,r18 |
734 0444 835C subi r24,lo8(-(61)) |
735 0446 8083 st Z,r24 |
736 0448 0F5F subi r16,lo8(-(1)) |
737 044a 1F4F sbci r17,hi8(-(1)) |
738 044c F801 movw r30,r16 |
739 044e E050 subi r30,lo8(-(SendeBuffer)) |
740 0450 F040 sbci r31,hi8(-(SendeBuffer)) |
741 0452 4F70 andi r20,lo8(15) |
742 0454 5070 andi r21,hi8(15) |
743 0456 440F lsl r20 |
744 0458 551F rol r21 |
745 045a 440F lsl r20 |
746 045c 551F rol r21 |
747 045e 862F mov r24,r22 |
748 0460 9927 clr r25 |
749 0462 0024 clr __tmp_reg__ |
750 0464 880F lsl r24 |
751 0466 991F rol r25 |
752 0468 001C rol __tmp_reg__ |
753 046a 880F lsl r24 |
754 046c 991F rol r25 |
755 046e 001C rol __tmp_reg__ |
756 0470 892F mov r24,r25 |
757 0472 902D mov r25,__tmp_reg__ |
758 0474 842B or r24,r20 |
759 0476 835C subi r24,lo8(-(61)) |
760 0478 8083 st Z,r24 |
761 047a 0F5F subi r16,lo8(-(1)) |
762 047c 1F4F sbci r17,hi8(-(1)) |
763 047e F801 movw r30,r16 |
764 0480 E050 subi r30,lo8(-(SendeBuffer)) |
765 0482 F040 sbci r31,hi8(-(SendeBuffer)) |
766 0484 6F73 andi r22,lo8(63) |
767 0486 635C subi r22,lo8(-(61)) |
768 0488 6083 st Z,r22 |
769 048a 0F5F subi r16,lo8(-(1)) |
770 048c 1F4F sbci r17,hi8(-(1)) |
771 048e 1097 sbiw r26,0 |
772 0490 01F0 breq .+2 |
773 0492 00C0 rjmp .L63 |
774 0494 00C0 rjmp .L60 |
775 .L62: |
776 0496 7723 tst r23 |
777 0498 01F4 brne .+2 |
778 049a 00C0 rjmp .L55 |
779 049c F701 movw r30,r14 |
780 049e A2E0 ldi r26,lo8(2) |
781 04a0 B0E0 ldi r27,hi8(2) |
782 04a2 EA0E add r14,r26 |
783 04a4 FB1E adc r15,r27 |
784 04a6 D701 movw r26,r14 |
785 04a8 C080 ld r12,Z |
786 04aa D180 ldd r13,Z+1 |
787 04ac 22E0 ldi r18,lo8(2) |
788 04ae 30E0 ldi r19,hi8(2) |
789 04b0 E20E add r14,r18 |
790 04b2 F31E adc r15,r19 |
791 04b4 0D90 ld __tmp_reg__,X+ |
792 04b6 BC91 ld r27,X |
793 04b8 A02D mov r26,__tmp_reg__ |
794 04ba BB24 clr r11 |
795 04bc 7150 subi r23,lo8(-(-1)) |
796 04be 00C0 rjmp .L54 |
797 .L60: |
798 04c0 C801 movw r24,r16 |
799 04c2 0E94 0000 call AddCRC |
800 /* epilogue: frame size=0 */ |
801 04c6 E9E0 ldi r30,9 |
802 04c8 0C94 0000 jmp __epilogue_restores__+18 |
803 /* epilogue end (size=3) */ |
804 /* function SendOutData size 204 (195) */ |
806 .global Decode64 |
808 Decode64: |
809 /* prologue: frame size=0 */ |
810 /* prologue end (size=0) */ |
811 04cc A3E0 ldi r26,lo8(3) |
812 04ce 7A2F mov r23,r26 |
813 04d0 4091 0000 lds r20,AnzahlEmpfangsBytes |
814 04d4 4650 subi r20,lo8(-(-6)) |
815 04d6 01F4 brne .+2 |
816 04d8 00C0 rjmp .L66 |
817 .L76: |
818 04da E72F mov r30,r23 |
819 04dc FF27 clr r31 |
820 04de E050 subi r30,lo8(-(RxdBuffer)) |
821 04e0 F040 sbci r31,hi8(-(RxdBuffer)) |
822 04e2 8081 ld r24,Z |
823 04e4 8D53 subi r24,lo8(-(-61)) |
824 04e6 7F5F subi r23,lo8(-(1)) |
825 04e8 E72F mov r30,r23 |
826 04ea FF27 clr r31 |
827 04ec E050 subi r30,lo8(-(RxdBuffer)) |
828 04ee F040 sbci r31,hi8(-(RxdBuffer)) |
829 04f0 2081 ld r18,Z |
830 04f2 2D53 subi r18,lo8(-(-61)) |
831 04f4 7F5F subi r23,lo8(-(1)) |
832 04f6 E72F mov r30,r23 |
833 04f8 FF27 clr r31 |
834 04fa E050 subi r30,lo8(-(RxdBuffer)) |
835 04fc F040 sbci r31,hi8(-(RxdBuffer)) |
836 04fe 3081 ld r19,Z |
837 0500 3D53 subi r19,lo8(-(-61)) |
838 0502 7F5F subi r23,lo8(-(1)) |
839 0504 E72F mov r30,r23 |
840 0506 FF27 clr r31 |
841 0508 E050 subi r30,lo8(-(RxdBuffer)) |
842 050a F040 sbci r31,hi8(-(RxdBuffer)) |
843 050c 6081 ld r22,Z |
844 050e 6D53 subi r22,lo8(-(-61)) |
845 0510 7F5F subi r23,lo8(-(1)) |
846 0512 9927 clr r25 |
847 0514 880F lsl r24 |
848 0516 991F rol r25 |
849 0518 880F lsl r24 |
850 051a 991F rol r25 |
851 051c 522F mov r21,r18 |
852 051e 5295 swap r21 |
853 0520 5F70 andi r21,0x0f |
854 0522 582B or r21,r24 |
855 0524 822F mov r24,r18 |
856 0526 9927 clr r25 |
857 0528 8F70 andi r24,lo8(15) |
858 052a 9070 andi r25,hi8(15) |
859 052c 8295 swap r24 |
860 052e 9295 swap r25 |
861 0530 907F andi r25,0xf0 |
862 0532 9827 eor r25,r24 |
863 0534 807F andi r24,0xf0 |
864 0536 9827 eor r25,r24 |
865 0538 232F mov r18,r19 |
866 053a 2695 lsr r18 |
867 053c 2695 lsr r18 |
868 053e 282B or r18,r24 |
869 0540 832F mov r24,r19 |
870 0542 9927 clr r25 |
871 0544 8370 andi r24,lo8(3) |
872 0546 9070 andi r25,hi8(3) |
873 0548 0024 clr __tmp_reg__ |
874 054a 9695 lsr r25 |
875 054c 8795 ror r24 |
876 054e 0794 ror __tmp_reg__ |
877 0550 9695 lsr r25 |
878 0552 8795 ror r24 |
879 0554 0794 ror __tmp_reg__ |
880 0556 982F mov r25,r24 |
881 0558 802D mov r24,__tmp_reg__ |
882 055a 682B or r22,r24 |
883 055c 4150 subi r20,lo8(-(-1)) |
884 055e 4F3F cpi r20,lo8(-1) |
885 0560 01F0 breq .L66 |
886 0562 EA2F mov r30,r26 |
887 0564 FF27 clr r31 |
888 0566 E050 subi r30,lo8(-(RxdBuffer)) |
889 0568 F040 sbci r31,hi8(-(RxdBuffer)) |
890 056a 5083 st Z,r21 |
891 056c AF5F subi r26,lo8(-(1)) |
892 056e 4150 subi r20,lo8(-(-1)) |
893 0570 4F3F cpi r20,lo8(-1) |
894 0572 01F0 breq .L66 |
895 0574 EA2F mov r30,r26 |
896 0576 FF27 clr r31 |
897 0578 E050 subi r30,lo8(-(RxdBuffer)) |
898 057a F040 sbci r31,hi8(-(RxdBuffer)) |
899 057c 2083 st Z,r18 |
900 057e AF5F subi r26,lo8(-(1)) |
901 0580 4150 subi r20,lo8(-(-1)) |
902 0582 4F3F cpi r20,lo8(-1) |
903 0584 01F0 breq .L66 |
904 0586 EA2F mov r30,r26 |
905 0588 FF27 clr r31 |
906 058a E050 subi r30,lo8(-(RxdBuffer)) |
907 058c F040 sbci r31,hi8(-(RxdBuffer)) |
908 058e 6083 st Z,r22 |
909 0590 AF5F subi r26,lo8(-(1)) |
910 0592 4423 tst r20 |
911 0594 01F0 breq .+2 |
912 0596 00C0 rjmp .L76 |
913 .L66: |
914 0598 80E0 ldi r24,lo8(RxdBuffer+3) |
915 059a 90E0 ldi r25,hi8(RxdBuffer+3) |
916 059c 9093 0000 sts (pRxData)+1,r25 |
917 05a0 8093 0000 sts pRxData,r24 |
918 05a4 A350 subi r26,lo8(-(-3)) |
919 05a6 A093 0000 sts RxDataLen,r26 |
920 /* epilogue: frame size=0 */ |
921 05aa 0895 ret |
922 /* epilogue end (size=1) */ |
923 /* function Decode64 size 113 (112) */ |
925 .global BearbeiteRxDaten |
927 BearbeiteRxDaten: |
928 /* prologue: frame size=2 */ |
929 05ac A2E0 ldi r26,lo8(2) |
930 05ae B0E0 ldi r27,hi8(2) |
931 05b0 E0E0 ldi r30,pm_lo8(1f) |
932 05b2 F0E0 ldi r31,pm_hi8(1f) |
933 05b4 0C94 0000 jmp __prologue_saves__+30 |
934 1: |
935 /* prologue end (size=6) */ |
936 05b8 8091 0000 lds r24,NeuerDatensatzEmpfangen |
937 05bc 8823 tst r24 |
938 05be 01F4 brne .+2 |
939 05c0 00C0 rjmp .L77 |
940 05c2 0E94 0000 call Decode64 |
941 05c6 8091 0000 lds r24,RxdBuffer+1 |
942 05ca 8236 cpi r24,lo8(98) |
943 05cc 01F0 breq .L143 |
944 .L115: |
945 05ce 8091 0000 lds r24,RxdBuffer+2 |
946 05d2 9927 clr r25 |
947 05d4 AA27 clr r26 |
948 05d6 BB27 clr r27 |
949 05d8 FC01 movw r30,r24 |
950 05da EB54 subi r30,lo8(-(-75)) |
951 05dc F040 sbci r31,hi8(-(-75)) |
952 05de EC32 cpi r30,44 |
953 05e0 F105 cpc r31,__zero_reg__ |
954 05e2 00F4 brsh .L79 |
955 05e4 E050 subi r30,lo8(-(pm(.L137))) |
956 05e6 F040 sbci r31,hi8(-(pm(.L137))) |
957 05e8 0C94 0000 jmp __tablejump2__ |
958 .data |
959 .section .progmem.gcc_sw_table, "a", @progbits |
960 .p2align 1 |
961 .L137: |
962 0000 0000 .word pm(.L123) |
963 0002 0000 .word pm(.L79) |
964 0004 0000 .word pm(.L79) |
965 0006 0000 .word pm(.L79) |
966 0008 0000 .word pm(.L79) |
967 000a 0000 .word pm(.L79) |
968 000c 0000 .word pm(.L79) |
969 000e 0000 .word pm(.L79) |
970 0010 0000 .word pm(.L79) |
971 0012 0000 .word pm(.L79) |
972 0014 0000 .word pm(.L79) |
973 0016 0000 .word pm(.L79) |
974 0018 0000 .word pm(.L79) |
975 001a 0000 .word pm(.L79) |
976 001c 0000 .word pm(.L79) |
977 001e 0000 .word pm(.L79) |
978 0020 0000 .word pm(.L79) |
979 0022 0000 .word pm(.L79) |
980 0024 0000 .word pm(.L79) |
981 0026 0000 .word pm(.L79) |
982 0028 0000 .word pm(.L79) |
983 002a 0000 .word pm(.L79) |
984 002c 0000 .word pm(.L124) |
985 002e 0000 .word pm(.L126) |
986 0030 0000 .word pm(.L127) |
987 0032 0000 .word pm(.L130) |
988 0034 0000 .word pm(.L79) |
989 0036 0000 .word pm(.L79) |
990 0038 0000 .word pm(.L136) |
991 003a 0000 .word pm(.L132) |
992 003c 0000 .word pm(.L79) |
993 003e 0000 .word pm(.L79) |
994 0040 0000 .word pm(.L79) |
995 0042 0000 .word pm(.L134) |
996 0044 0000 .word pm(.L79) |
997 0046 0000 .word pm(.L79) |
998 0048 0000 .word pm(.L79) |
999 004a 0000 .word pm(.L79) |
1000 004c 0000 .word pm(.L79) |
1001 004e 0000 .word pm(.L79) |
1002 0050 0000 .word pm(.L79) |
1003 0052 0000 .word pm(.L117) |
1004 0054 0000 .word pm(.L79) |
1005 0056 0000 .word pm(.L135) |
1006 .text |
1007 .L132: |
1008 05ec 8FEF ldi r24,lo8(-1) |
1009 05ee 8093 0000 sts PcZugriff,r24 |
1010 05f2 E091 0000 lds r30,pRxData |
1011 05f6 F091 0000 lds r31,(pRxData)+1 |
1012 05fa 8081 ld r24,Z |
1013 05fc 9091 0000 lds r25,RemoteKeys |
1014 0600 892B or r24,r25 |
1015 0602 8093 0000 sts RemoteKeys,r24 |
1016 0606 8823 tst r24 |
1017 0608 01F0 breq .L133 |
1018 060a 1092 0000 sts DisplayLine,__zero_reg__ |
1019 .L133: |
1020 060e 81E0 ldi r24,lo8(1) |
1021 0610 8093 0000 sts DebugDisplayAnforderung,r24 |
1022 .L79: |
1023 0614 1092 0000 sts NeuerDatensatzEmpfangen,__zero_reg__ |
1024 0618 1092 0000 sts (pRxData)+1,__zero_reg__ |
1025 061c 1092 0000 sts pRxData,__zero_reg__ |
1026 0620 1092 0000 sts RxDataLen,__zero_reg__ |
1027 0624 00C0 rjmp .L77 |
1028 .L143: |
1029 0626 8091 0000 lds r24,RxdBuffer+2 |
1030 062a 9927 clr r25 |
1031 062c 8037 cpi r24,112 |
1032 062e 9105 cpc r25,__zero_reg__ |
1033 0630 01F4 brne .+2 |
1034 0632 00C0 rjmp .L97 |
1035 0634 8137 cpi r24,113 |
1036 0636 9105 cpc r25,__zero_reg__ |
1037 0638 04F4 brge .+2 |
1038 063a 00C0 rjmp .L144 |
1039 063c 8337 cpi r24,115 |
1040 063e 9105 cpc r25,__zero_reg__ |
1041 0640 01F4 brne .+2 |
1042 0642 00C0 rjmp .L106 |
1043 0644 8437 cpi r24,116 |
1044 0646 9105 cpc r25,__zero_reg__ |
1045 0648 04F0 brlt .+2 |
1046 064a 00C0 rjmp .L114 |
1047 064c 8137 cpi r24,113 |
1048 064e 9105 cpc r25,__zero_reg__ |
1049 0650 01F0 breq .+2 |
1050 0652 00C0 rjmp .L115 |
1051 0654 A091 0000 lds r26,pRxData |
1052 0658 B091 0000 lds r27,(pRxData)+1 |
1053 065c 8C91 ld r24,X |
1054 065e 8F3F cpi r24,lo8(-1) |
1055 0660 01F4 brne .+2 |
1056 0662 00C0 rjmp .L145 |
1057 .L99: |
1058 0664 8C91 ld r24,X |
1059 0666 8823 tst r24 |
1060 0668 01F0 breq .+2 |
1061 066a 00C0 rjmp .L100 |
1062 066c 81E0 ldi r24,lo8(1) |
1063 .L140: |
1064 066e 8C93 st X,r24 |
1065 0670 A091 0000 lds r26,pRxData |
1066 0674 B091 0000 lds r27,(pRxData)+1 |
1067 .L101: |
1068 0678 45E6 ldi r20,lo8(101) |
1069 067a 60E0 ldi r22,lo8(EE_Parameter) |
1070 067c 70E0 ldi r23,hi8(EE_Parameter) |
1071 067e 8C91 ld r24,X |
1072 0680 0E94 0000 call ReadParameterSet |
1073 .L103: |
1074 0684 8091 0000 lds r24,UebertragungAbgeschlossen |
1075 0688 8823 tst r24 |
1076 068a 01F0 breq .L103 |
1077 068c E091 0000 lds r30,pRxData |
1078 0690 F091 0000 lds r31,(pRxData)+1 |
1079 0694 8081 ld r24,Z |
1080 0696 8983 std Y+1,r24 |
1081 0698 80E5 ldi r24,lo8(80) |
1082 069a 8A83 std Y+2,r24 |
1083 069c 85E6 ldi r24,lo8(101) |
1084 069e 90E0 ldi r25,hi8(101) |
1085 06a0 9F93 push r25 |
1086 06a2 8F93 push r24 |
1087 06a4 80E0 ldi r24,lo8(EE_Parameter) |
1088 06a6 90E0 ldi r25,hi8(EE_Parameter) |
1089 06a8 9F93 push r25 |
1090 06aa 8F93 push r24 |
1091 06ac 21E0 ldi r18,lo8(1) |
1092 06ae 30E0 ldi r19,hi8(1) |
1093 06b0 3F93 push r19 |
1094 06b2 2F93 push r18 |
1095 06b4 CE01 movw r24,r28 |
1096 06b6 0296 adiw r24,2 |
1097 06b8 9F93 push r25 |
1098 06ba 8F93 push r24 |
1099 06bc 3F93 push r19 |
1100 06be 2F93 push r18 |
1101 06c0 CE01 movw r24,r28 |
1102 06c2 820F add r24,r18 |
1103 06c4 931F adc r25,r19 |
1104 06c6 9F93 push r25 |
1105 06c8 8F93 push r24 |
1106 06ca 83E0 ldi r24,lo8(3) |
1107 06cc 8F93 push r24 |
1108 06ce 81E0 ldi r24,lo8(1) |
1109 06d0 8F93 push r24 |
1110 06d2 81E5 ldi r24,lo8(81) |
1111 06d4 8F93 push r24 |
1112 06d6 0E94 0000 call SendOutData |
1113 06da ADB7 in r26,__SP_L__ |
1114 06dc BEB7 in r27,__SP_H__ |
1115 06de 1F96 adiw r26,15 |
1116 06e0 ADBF out __SP_L__,r26 |
1117 06e2 00C0 rjmp .L115 |
1118 .L144: |
1119 06e4 8D36 cpi r24,109 |
1120 06e6 9105 cpc r25,__zero_reg__ |
1121 06e8 01F0 breq .L91 |
1122 06ea 8E36 cpi r24,110 |
1123 06ec 9105 cpc r25,__zero_reg__ |
1124 06ee 04F0 brlt .+2 |
1125 06f0 00C0 rjmp .L113 |
1126 06f2 8B34 cpi r24,75 |
1127 06f4 9105 cpc r25,__zero_reg__ |
1128 06f6 01F0 breq .+2 |
1129 06f8 00C0 rjmp .L115 |
1130 06fa A091 0000 lds r26,pRxData |
1131 06fe B091 0000 lds r27,(pRxData)+1 |
1132 0702 8D91 ld r24,X+ |
1133 0704 9C91 ld r25,X |
1134 0706 9093 0000 sts (KompassValue)+1,r25 |
1135 070a 8093 0000 sts KompassValue,r24 |
1136 070e 2091 0000 lds r18,KompassStartwert |
1137 0712 3091 0000 lds r19,(KompassStartwert)+1 |
1138 0716 821B sub r24,r18 |
1139 0718 930B sbc r25,r19 |
1140 071a 845E subi r24,lo8(-(540)) |
1141 071c 9D4F sbci r25,hi8(-(540)) |
1142 071e 68E6 ldi r22,lo8(360) |
1143 0720 71E0 ldi r23,hi8(360) |
1144 0722 0E94 0000 call __divmodhi4 |
1145 0726 845B subi r24,lo8(-(-180)) |
1146 0728 9040 sbci r25,hi8(-(-180)) |
1147 072a 9093 0000 sts (KompassRichtung)+1,r25 |
1148 072e 8093 0000 sts KompassRichtung,r24 |
1149 0732 00C0 rjmp .L115 |
1150 .L91: |
1151 0734 8091 0000 lds r24,UebertragungAbgeschlossen |
1152 0738 8823 tst r24 |
1153 073a 01F0 breq .L91 |
1154 073c A091 0000 lds r26,pRxData |
1155 0740 B091 0000 lds r27,(pRxData)+1 |
1156 0744 1C91 ld r17,X |
1157 0746 1130 cpi r17,lo8(1) |
1158 0748 01F4 brne .+2 |
1159 074a 00C0 rjmp .L146 |
1160 074c 1982 std Y+1,__zero_reg__ |
1161 .L96: |
1162 074e 81E0 ldi r24,lo8(1) |
1163 0750 90E0 ldi r25,hi8(1) |
1164 0752 9F93 push r25 |
1165 0754 8F93 push r24 |
1166 0756 CE01 movw r24,r28 |
1167 0758 0196 adiw r24,1 |
1168 075a 9F93 push r25 |
1169 075c 8F93 push r24 |
1170 075e 81E0 ldi r24,lo8(1) |
1171 0760 8F93 push r24 |
1172 0762 8F93 push r24 |
1173 0764 8DE4 ldi r24,lo8(77) |
1174 .L141: |
1175 0766 8F93 push r24 |
1176 0768 0E94 0000 call SendOutData |
1177 076c 8DB7 in r24,__SP_L__ |
1178 076e 9EB7 in r25,__SP_H__ |
1179 0770 0796 adiw r24,7 |
1180 0772 8DBF out __SP_L__,r24 |
1181 0774 00C0 rjmp .L115 |
1182 .L135: |
1183 0776 81E0 ldi r24,lo8(1) |
1184 0778 8093 0000 sts GetVersionAnforderung,r24 |
1185 077c 00C0 rjmp .L79 |
1186 .L134: |
1187 077e 8FEF ldi r24,lo8(-1) |
1188 0780 8093 0000 sts PcZugriff,r24 |
1189 0784 E091 0000 lds r30,pRxData |
1190 0788 F091 0000 lds r31,(pRxData)+1 |
1191 078c 8081 ld r24,Z |
1192 078e 8093 0000 sts MenuePunkt,r24 |
1193 0792 81E0 ldi r24,lo8(1) |
1194 0794 8093 0000 sts DebugDisplayAnforderung1,r24 |
1195 0798 00C0 rjmp .L79 |
1196 .L136: |
1197 079a 81E0 ldi r24,lo8(1) |
1198 079c 8093 0000 sts GetExternalControl,r24 |
1199 07a0 00C0 rjmp .L79 |
1200 .L130: |
1201 07a2 E091 0000 lds r30,pRxData |
1202 07a6 F091 0000 lds r31,(pRxData)+1 |
1203 07aa 9081 ld r25,Z |
1204 07ac 8AE0 ldi r24,lo8(10) |
1205 07ae 989F mul r25,r24 |
1206 07b0 C001 movw r24,r0 |
1207 07b2 1124 clr r1 |
1208 07b4 9093 0000 sts (DebugDataIntervall)+1,r25 |
1209 07b8 8093 0000 sts DebugDataIntervall,r24 |
1210 07bc 892B or r24,r25 |
1211 07be 01F4 brne .+2 |
1212 07c0 00C0 rjmp .L79 |
1213 07c2 81E0 ldi r24,lo8(1) |
1214 07c4 8093 0000 sts DebugDataAnforderung,r24 |
1215 07c8 00C0 rjmp .L79 |
1216 .L127: |
1217 07ca 8091 0000 lds r24,Intervall3D |
1218 07ce 9091 0000 lds r25,(Intervall3D)+1 |
1219 07d2 892B or r24,r25 |
1220 07d4 01F0 breq .+2 |
1221 07d6 00C0 rjmp .L138 |
1222 07d8 A091 0000 lds r26,pRxData |
1223 07dc B091 0000 lds r27,(pRxData)+1 |
1224 07e0 9C91 ld r25,X |
1225 07e2 9923 tst r25 |
1226 07e4 01F0 breq .+2 |
1227 07e6 00C0 rjmp .L147 |
1228 .L128: |
1229 07e8 9C91 ld r25,X |
1230 07ea 8AE0 ldi r24,lo8(10) |
1231 07ec 989F mul r25,r24 |
1232 07ee C001 movw r24,r0 |
1233 07f0 1124 clr r1 |
1234 07f2 9093 0000 sts (Intervall3D)+1,r25 |
1235 07f6 8093 0000 sts Intervall3D,r24 |
1236 07fa 00C0 rjmp .L79 |
1237 .L126: |
1238 07fc A091 0000 lds r26,pRxData |
1239 0800 B091 0000 lds r27,(pRxData)+1 |
1240 0804 8BE0 ldi r24,lo8(11) |
1241 0806 E0E0 ldi r30,lo8(ExternControl) |
1242 0808 F0E0 ldi r31,hi8(ExternControl) |
1243 080a 0D90 ld __tmp_reg__,X+ |
1244 080c 0192 st Z+,__tmp_reg__ |
1245 080e 8A95 dec r24 |
1246 0810 01F4 brne .-8 |
1247 0812 8091 0000 lds r24,ExternControl+9 |
1248 0816 8093 0000 sts ConfirmFrame,r24 |
1249 .L142: |
1250 081a 8FEF ldi r24,lo8(-1) |
1251 081c 8093 0000 sts PcZugriff,r24 |
1252 0820 00C0 rjmp .L79 |
1253 .L124: |
1254 0822 E091 0000 lds r30,pRxData |
1255 0826 F091 0000 lds r31,(pRxData)+1 |
1256 082a E081 ld r30,Z |
1257 082c E032 cpi r30,lo8(32) |
1258 082e 00F4 brsh .+2 |
1259 0830 00C0 rjmp .L139 |
1260 0832 8FE1 ldi r24,lo8(31) |
1261 0834 8093 0000 sts DebugTextAnforderung,r24 |
1262 0838 00C0 rjmp .L142 |
1263 .L123: |
1264 083a E091 0000 lds r30,pRxData |
1265 083e F091 0000 lds r31,(pRxData)+1 |
1266 0842 8081 ld r24,Z |
1267 0844 9181 ldd r25,Z+1 |
1268 0846 9093 0000 sts (KompassValue)+1,r25 |
1269 084a 8093 0000 sts KompassValue,r24 |
1270 084e 2091 0000 lds r18,KompassStartwert |
1271 0852 3091 0000 lds r19,(KompassStartwert)+1 |
1272 0856 821B sub r24,r18 |
1273 0858 930B sbc r25,r19 |
1274 085a 845E subi r24,lo8(-(540)) |
1275 085c 9D4F sbci r25,hi8(-(540)) |
1276 085e 68E6 ldi r22,lo8(360) |
1277 0860 71E0 ldi r23,hi8(360) |
1278 0862 0E94 0000 call __divmodhi4 |
1279 0866 845B subi r24,lo8(-(-180)) |
1280 0868 9040 sbci r25,hi8(-(-180)) |
1281 086a 9093 0000 sts (KompassRichtung)+1,r25 |
1282 086e 8093 0000 sts KompassRichtung,r24 |
1283 0872 00C0 rjmp .L79 |
1284 .L117: |
1285 0874 8091 0000 lds r24,AnzahlEmpfangsBytes |
1286 0878 8531 cpi r24,lo8(21) |
1287 087a 00F4 brsh .+2 |
1288 087c 00C0 rjmp .L118 |
1289 087e E091 0000 lds r30,pRxData |
1290 0882 F091 0000 lds r31,(pRxData)+1 |
1291 0886 80E1 ldi r24,lo8(16) |
1292 0888 A0E0 ldi r26,lo8(MotorTest) |
1293 088a B0E0 ldi r27,hi8(MotorTest) |
1294 088c 0190 ld __tmp_reg__,Z+ |
1295 088e 0D92 st X+,__tmp_reg__ |
1296 0890 8A95 dec r24 |
1297 0892 01F4 brne .-8 |
1298 .L120: |
1299 0894 8091 0000 lds r24,UebertragungAbgeschlossen |
1300 0898 8823 tst r24 |
1301 089a 01F0 breq .L120 |
1302 089c 1F92 push __zero_reg__ |
1303 089e 8091 0000 lds r24,MeineSlaveAdresse |
1304 08a2 8F93 push r24 |
1305 08a4 84E5 ldi r24,lo8(84) |
1306 08a6 8F93 push r24 |
1307 08a8 0E94 0000 call SendOutData |
1308 08ac 8AEF ldi r24,lo8(-6) |
1309 08ae 8093 0000 sts PC_MotortestActive,r24 |
1310 08b2 8FEF ldi r24,lo8(-1) |
1311 08b4 8093 0000 sts PcZugriff,r24 |
1312 08b8 0F90 pop __tmp_reg__ |
1313 08ba 0F90 pop __tmp_reg__ |
1314 08bc 0F90 pop __tmp_reg__ |
1315 08be 00C0 rjmp .L79 |
1316 .L97: |
1317 08c0 81E0 ldi r24,lo8(1) |
1318 08c2 8093 0000 sts GetPPMChannelAnforderung,r24 |
1319 08c6 00C0 rjmp .L115 |
1320 .L113: |
1321 08c8 8E36 cpi r24,110 |
1322 08ca 9105 cpc r25,__zero_reg__ |
1323 08cc 01F0 breq .+2 |
1324 08ce 00C0 rjmp .L115 |
1325 .L87: |
1326 08d0 8091 0000 lds r24,UebertragungAbgeschlossen |
1327 08d4 8823 tst r24 |
1328 08d6 01F0 breq .L87 |
1329 08d8 8DE4 ldi r24,lo8(77) |
1330 08da 90E0 ldi r25,hi8(77) |
1331 08dc 9F93 push r25 |
1332 08de 8F93 push r24 |
1333 08e0 80E0 ldi r24,lo8(Mixer) |
1334 08e2 90E0 ldi r25,hi8(Mixer) |
1335 08e4 9F93 push r25 |
1336 08e6 8F93 push r24 |
1337 08e8 81E0 ldi r24,lo8(1) |
1338 08ea 8F93 push r24 |
1339 08ec 8F93 push r24 |
1340 08ee 8EE4 ldi r24,lo8(78) |
1341 08f0 00C0 rjmp .L141 |
1342 .L114: |
1343 08f2 8437 cpi r24,116 |
1344 08f4 9105 cpc r25,__zero_reg__ |
1345 08f6 01F0 breq .+2 |
1346 08f8 00C0 rjmp .L115 |
1347 08fa 8091 0000 lds r24,AnzahlEmpfangsBytes |
1348 08fe 8531 cpi r24,lo8(21) |
1349 0900 00F4 brsh .+2 |
1350 0902 00C0 rjmp .L84 |
1351 0904 A091 0000 lds r26,pRxData |
1352 0908 B091 0000 lds r27,(pRxData)+1 |
1353 090c 80E1 ldi r24,lo8(16) |
1354 090e E0E0 ldi r30,lo8(MotorTest) |
1355 0910 F0E0 ldi r31,hi8(MotorTest) |
1356 0912 0D90 ld __tmp_reg__,X+ |
1357 0914 0192 st Z+,__tmp_reg__ |
1358 0916 8A95 dec r24 |
1359 0918 01F4 brne .-8 |
1360 .L85: |
1361 091a 80EF ldi r24,lo8(-16) |
1362 091c 8093 0000 sts PC_MotortestActive,r24 |
1363 0920 8FEF ldi r24,lo8(-1) |
1364 0922 8093 0000 sts PcZugriff,r24 |
1365 0926 00C0 rjmp .L115 |
1366 .L106: |
1367 0928 2091 0000 lds r18,pRxData |
1368 092c 3091 0000 lds r19,(pRxData)+1 |
1369 0930 F901 movw r30,r18 |
1370 0932 8081 ld r24,Z |
1371 0934 8150 subi r24,lo8(-(-1)) |
1372 0936 8530 cpi r24,lo8(5) |
1373 0938 00F4 brsh .L107 |
1374 093a 8181 ldd r24,Z+1 |
1375 093c 8035 cpi r24,lo8(80) |
1376 093e 01F0 breq .L148 |
1377 .L107: |
1378 0940 1982 std Y+1,__zero_reg__ |
1379 .L109: |
1380 0942 8091 0000 lds r24,UebertragungAbgeschlossen |
1381 0946 8823 tst r24 |
1382 0948 01F0 breq .L109 |
1383 094a 81E0 ldi r24,lo8(1) |
1384 094c 90E0 ldi r25,hi8(1) |
1385 094e 9F93 push r25 |
1386 0950 8F93 push r24 |
1387 0952 CE01 movw r24,r28 |
1388 0954 0196 adiw r24,1 |
1389 0956 9F93 push r25 |
1390 0958 8F93 push r24 |
1391 095a 81E0 ldi r24,lo8(1) |
1392 095c 8F93 push r24 |
1393 095e 8F93 push r24 |
1394 0960 83E5 ldi r24,lo8(83) |
1395 0962 8F93 push r24 |
1396 0964 0E94 0000 call SendOutData |
1397 0968 EDB7 in r30,__SP_L__ |
1398 096a FEB7 in r31,__SP_H__ |
1399 096c 3796 adiw r30,7 |
1400 096e EDBF out __SP_L__,r30 |
1401 0970 00C0 rjmp .L115 |
1402 .L148: |
1403 0972 60E0 ldi r22,lo8(EE_Parameter) |
1404 0974 70E0 ldi r23,hi8(EE_Parameter) |
1405 0976 85E6 ldi r24,lo8(101) |
1406 0978 2E5F subi r18,lo8(-(2)) |
1407 097a 3F4F sbci r19,hi8(-(2)) |
1408 097c DB01 movw r26,r22 |
1409 097e F901 movw r30,r18 |
1410 0980 982F mov r25,r24 |
1411 0982 0190 ld __tmp_reg__,Z+ |
1412 0984 0D92 st X+,__tmp_reg__ |
1413 0986 9A95 dec r25 |
1414 0988 01F4 brne .-8 |
1415 098a 2250 subi r18,lo8(-(-2)) |
1416 098c 3040 sbci r19,hi8(-(-2)) |
1417 098e 482F mov r20,r24 |
1418 0990 D901 movw r26,r18 |
1419 0992 8C91 ld r24,X |
1420 0994 0E94 0000 call WriteParameterSet |
1421 0998 8091 0000 lds r24,EE_Parameter+54 |
1422 099c 9927 clr r25 |
1423 099e AA27 clr r26 |
1424 09a0 BB27 clr r27 |
1425 09a2 BC01 movw r22,r24 |
1426 09a4 CD01 movw r24,r26 |
1427 09a6 24EC ldi r18,lo8(2500) |
1428 09a8 39E0 ldi r19,hi8(2500) |
1429 09aa 40E0 ldi r20,hlo8(2500) |
1430 09ac 50E0 ldi r21,hhi8(2500) |
1431 09ae 0E94 0000 call __mulsi3 |
1432 09b2 DC01 movw r26,r24 |
1433 09b4 CB01 movw r24,r22 |
1434 09b6 8093 0000 sts Umschlag180Nick,r24 |
1435 09ba 9093 0000 sts (Umschlag180Nick)+1,r25 |
1436 09be A093 0000 sts (Umschlag180Nick)+2,r26 |
1437 09c2 B093 0000 sts (Umschlag180Nick)+3,r27 |
1438 09c6 8091 0000 lds r24,EE_Parameter+55 |
1439 09ca 9927 clr r25 |
1440 09cc AA27 clr r26 |
1441 09ce BB27 clr r27 |
1442 09d0 BC01 movw r22,r24 |
1443 09d2 CD01 movw r24,r26 |
1444 09d4 0E94 0000 call __mulsi3 |
1445 09d8 DC01 movw r26,r24 |
1446 09da CB01 movw r24,r22 |
1447 09dc 8093 0000 sts Umschlag180Roll,r24 |
1448 09e0 9093 0000 sts (Umschlag180Roll)+1,r25 |
1449 09e4 A093 0000 sts (Umschlag180Roll)+2,r26 |
1450 09e8 B093 0000 sts (Umschlag180Roll)+3,r27 |
1451 09ec E091 0000 lds r30,pRxData |
1452 09f0 F091 0000 lds r31,(pRxData)+1 |
1453 09f4 8081 ld r24,Z |
1454 09f6 0E94 0000 call SetActiveParamSetNumber |
1455 09fa 0E94 0000 call GetActiveParamSetNumber |
1456 09fe 8983 std Y+1,r24 |
1457 0a00 80E0 ldi r24,lo8(0) |
1458 0a02 0E94 0000 call LipoDetection |
1459 0a06 6EE6 ldi r22,lo8(110) |
1460 0a08 70E0 ldi r23,hi8(110) |
1461 0a0a 8981 ldd r24,Y+1 |
1462 0a0c 0E94 0000 call Piep |
1463 0a10 00C0 rjmp .L109 |
1464 .L147: |
1465 0a12 8AE0 ldi r24,lo8(10) |
1466 0a14 989F mul r25,r24 |
1467 0a16 C001 movw r24,r0 |
1468 0a18 1124 clr r1 |
1469 0a1a 0E94 0000 call SetDelay |
1470 0a1e 9093 0000 sts (Timer3D)+1,r25 |
1471 0a22 8093 0000 sts Timer3D,r24 |
1472 .L138: |
1473 0a26 A091 0000 lds r26,pRxData |
1474 0a2a B091 0000 lds r27,(pRxData)+1 |
1475 0a2e 00C0 rjmp .L128 |
1476 .L118: |
1477 0a30 E091 0000 lds r30,pRxData |
1478 0a34 F091 0000 lds r31,(pRxData)+1 |
1479 0a38 8081 ld r24,Z |
1480 0a3a 9181 ldd r25,Z+1 |
1481 0a3c A281 ldd r26,Z+2 |
1482 0a3e B381 ldd r27,Z+3 |
1483 0a40 8093 0000 sts MotorTest,r24 |
1484 0a44 9093 0000 sts (MotorTest)+1,r25 |
1485 0a48 A093 0000 sts (MotorTest)+2,r26 |
1486 0a4c B093 0000 sts (MotorTest)+3,r27 |
1487 0a50 00C0 rjmp .L120 |
1488 .L139: |
1489 0a52 E093 0000 sts DebugTextAnforderung,r30 |
1490 0a56 00C0 rjmp .L142 |
1491 .L84: |
1492 0a58 A091 0000 lds r26,pRxData |
1493 0a5c B091 0000 lds r27,(pRxData)+1 |
1494 0a60 8D91 ld r24,X+ |
1495 0a62 9D91 ld r25,X+ |
1496 0a64 0D90 ld __tmp_reg__,X+ |
1497 0a66 BC91 ld r27,X |
1498 0a68 A02D mov r26,__tmp_reg__ |
1499 0a6a 8093 0000 sts MotorTest,r24 |
1500 0a6e 9093 0000 sts (MotorTest)+1,r25 |
1501 0a72 A093 0000 sts (MotorTest)+2,r26 |
1502 0a76 B093 0000 sts (MotorTest)+3,r27 |
1503 0a7a 00C0 rjmp .L85 |
1504 .L100: |
1505 0a7c 8630 cpi r24,lo8(6) |
1506 0a7e 00F4 brsh .+2 |
1507 0a80 00C0 rjmp .L101 |
1508 0a82 85E0 ldi r24,lo8(5) |
1509 0a84 00C0 rjmp .L140 |
1510 .L146: |
1511 0a86 60E0 ldi r22,lo8(Mixer) |
1512 0a88 70E0 ldi r23,hi8(Mixer) |
1513 0a8a 8DE4 ldi r24,lo8(77) |
1514 0a8c FB01 movw r30,r22 |
1515 0a8e 0D90 ld __tmp_reg__,X+ |
1516 0a90 0192 st Z+,__tmp_reg__ |
1517 0a92 8A95 dec r24 |
1518 0a94 01F4 brne .-8 |
1519 0a96 20E0 ldi r18,lo8(pm(eeprom_write_byte)) |
1520 0a98 30E0 ldi r19,hi8(pm(eeprom_write_byte)) |
1521 0a9a 4DE4 ldi r20,lo8(77) |
1522 0a9c 50E0 ldi r21,hi8(77) |
1523 0a9e 80E0 ldi r24,lo8(EEPromArray+1000) |
1524 0aa0 90E0 ldi r25,hi8(EEPromArray+1000) |
1525 0aa2 0E94 0000 call __eewr_block |
1526 0aa6 1983 std Y+1,r17 |
1527 0aa8 00C0 rjmp .L96 |
1528 .L145: |
1529 0aaa 0E94 0000 call GetActiveParamSetNumber |
1530 0aae E091 0000 lds r30,pRxData |
1531 0ab2 F091 0000 lds r31,(pRxData)+1 |
1532 0ab6 8083 st Z,r24 |
1533 0ab8 A091 0000 lds r26,pRxData |
1534 0abc B091 0000 lds r27,(pRxData)+1 |
1535 0ac0 00C0 rjmp .L99 |
1536 .L77: |
1537 /* epilogue: frame size=2 */ |
1538 0ac2 E3E0 ldi r30,3 |
1539 0ac4 CE5F subi r28,-2 |
1540 0ac6 0C94 0000 jmp __epilogue_restores__+30 |
1541 /* epilogue end (size=4) */ |
1542 /* function BearbeiteRxDaten size 699 (689) */ |
1544 .global uart_putchar |
1546 uart_putchar: |
1547 /* prologue: frame size=0 */ |
1548 0aca CF93 push r28 |
1549 /* prologue end (size=1) */ |
1550 0acc C82F mov r28,r24 |
1551 0ace 8A30 cpi r24,lo8(10) |
1552 0ad0 01F0 breq .L155 |
1553 .L152: |
1554 0ad2 8091 C000 lds r24,192 |
1555 0ad6 85FF sbrs r24,5 |
1556 0ad8 00C0 rjmp .L152 |
1557 0ada 00C0 rjmp .L156 |
1558 .L155: |
1559 0adc 8DE0 ldi r24,lo8(13) |
1560 0ade 0E94 0000 call uart_putchar |
1561 0ae2 00C0 rjmp .L152 |
1562 .L156: |
1563 0ae4 C093 C600 sts 198,r28 |
1564 0ae8 80E0 ldi r24,lo8(0) |
1565 0aea 90E0 ldi r25,hi8(0) |
1566 /* epilogue: frame size=0 */ |
1567 0aec CF91 pop r28 |
1568 0aee 0895 ret |
1569 /* epilogue end (size=2) */ |
1570 /* function uart_putchar size 19 (16) */ |
1572 .global DatenUebertragung |
1574 DatenUebertragung: |
1575 /* prologue: frame size=0 */ |
1576 0af0 EF92 push r14 |
1577 0af2 FF92 push r15 |
1578 0af4 0F93 push r16 |
1579 0af6 1F93 push r17 |
1580 /* prologue end (size=4) */ |
1581 0af8 8091 0000 lds r24,UebertragungAbgeschlossen |
1582 0afc 8823 tst r24 |
1583 0afe 01F4 brne .+2 |
1584 0b00 00C0 rjmp .L157 |
1585 0b02 8091 0000 lds r24,DebugDisplayAnforderung |
1586 0b06 8823 tst r24 |
1587 0b08 01F0 breq .+2 |
1588 0b0a 00C0 rjmp .L175 |
1589 .L159: |
1590 0b0c 8091 0000 lds r24,DebugDisplayAnforderung1 |
1591 0b10 8823 tst r24 |
1592 0b12 01F0 breq .L161 |
1593 0b14 8091 0000 lds r24,UebertragungAbgeschlossen |
1594 0b18 8823 tst r24 |
1595 0b1a 01F0 breq .+2 |
1596 0b1c 00C0 rjmp .L176 |
1597 .L161: |
1598 0b1e 8091 0000 lds r24,GetVersionAnforderung |
1599 0b22 8823 tst r24 |
1600 0b24 01F0 breq .L162 |
1601 0b26 8091 0000 lds r24,UebertragungAbgeschlossen |
1602 0b2a 8823 tst r24 |
1603 0b2c 01F0 breq .+2 |
1604 0b2e 00C0 rjmp .L177 |
1605 .L162: |
1606 0b30 8091 0000 lds r24,GetExternalControl |
1607 0b34 8823 tst r24 |
1608 0b36 01F0 breq .L163 |
1609 0b38 8091 0000 lds r24,UebertragungAbgeschlossen |
1610 0b3c 8823 tst r24 |
1611 0b3e 01F0 breq .+2 |
1612 0b40 00C0 rjmp .L178 |
1613 .L163: |
1614 0b42 8091 0000 lds r24,Kompass_Timer |
1615 0b46 9091 0000 lds r25,(Kompass_Timer)+1 |
1616 0b4a 0E94 0000 call CheckDelay |
1617 0b4e 8823 tst r24 |
1618 0b50 01F0 breq .L164 |
1619 0b52 8091 0000 lds r24,UebertragungAbgeschlossen |
1620 0b56 8823 tst r24 |
1621 0b58 01F0 breq .+2 |
1622 0b5a 00C0 rjmp .L179 |
1623 .L164: |
1624 0b5c 8091 0000 lds r24,DebugDataIntervall |
1625 0b60 9091 0000 lds r25,(DebugDataIntervall)+1 |
1626 0b64 892B or r24,r25 |
1627 0b66 01F0 breq .+2 |
1628 0b68 00C0 rjmp .L180 |
1629 .L168: |
1630 0b6a 8091 0000 lds r24,DebugDataAnforderung |
1631 0b6e 8823 tst r24 |
1632 0b70 01F0 breq .L166 |
1633 .L167: |
1634 0b72 8091 0000 lds r24,UebertragungAbgeschlossen |
1635 0b76 8823 tst r24 |
1636 0b78 01F0 breq .+2 |
1637 0b7a 00C0 rjmp .L181 |
1638 .L166: |
1639 0b7c 8091 0000 lds r24,Intervall3D |
1640 0b80 9091 0000 lds r25,(Intervall3D)+1 |
1641 0b84 892B or r24,r25 |
1642 0b86 01F0 breq .+2 |
1643 0b88 00C0 rjmp .L182 |
1644 .L170: |
1645 0b8a 2091 0000 lds r18,DebugTextAnforderung |
1646 0b8e 2F3F cpi r18,lo8(-1) |
1647 0b90 01F0 breq .L171 |
1648 0b92 80E1 ldi r24,lo8(16) |
1649 0b94 90E0 ldi r25,hi8(16) |
1650 0b96 9F93 push r25 |
1651 0b98 8F93 push r24 |
1652 0b9a 822F mov r24,r18 |
1653 0b9c 9927 clr r25 |
1654 0b9e 8295 swap r24 |
1655 0ba0 9295 swap r25 |
1656 0ba2 907F andi r25,0xf0 |
1657 0ba4 9827 eor r25,r24 |
1658 0ba6 807F andi r24,0xf0 |
1659 0ba8 9827 eor r25,r24 |
1660 0baa 8050 subi r24,lo8(-(ANALOG_TEXT)) |
1661 0bac 9040 sbci r25,hi8(-(ANALOG_TEXT)) |
1662 0bae 9F93 push r25 |
1663 0bb0 8F93 push r24 |
1664 0bb2 81E0 ldi r24,lo8(1) |
1665 0bb4 90E0 ldi r25,hi8(1) |
1666 0bb6 9F93 push r25 |
1667 0bb8 8F93 push r24 |
1668 0bba 80E0 ldi r24,lo8(DebugTextAnforderung) |
1669 0bbc 90E0 ldi r25,hi8(DebugTextAnforderung) |
1670 0bbe 9F93 push r25 |
1671 0bc0 8F93 push r24 |
1672 0bc2 82E0 ldi r24,lo8(2) |
1673 0bc4 8F93 push r24 |
1674 0bc6 81E0 ldi r24,lo8(1) |
1675 0bc8 8F93 push r24 |
1676 0bca 81E4 ldi r24,lo8(65) |
1677 0bcc 8F93 push r24 |
1678 0bce 0E94 0000 call SendOutData |
1679 0bd2 8FEF ldi r24,lo8(-1) |
1680 0bd4 8093 0000 sts DebugTextAnforderung,r24 |
1681 0bd8 8DB7 in r24,__SP_L__ |
1682 0bda 9EB7 in r25,__SP_H__ |
1683 0bdc 0B96 adiw r24,11 |
1684 0bde 8DBF out __SP_L__,r24 |
1685 .L171: |
1686 0be0 8091 0000 lds r24,ConfirmFrame |
1687 0be4 8823 tst r24 |
1688 0be6 01F0 breq .L172 |
1689 0be8 8091 0000 lds r24,UebertragungAbgeschlossen |
1690 0bec 8823 tst r24 |
1691 0bee 01F0 breq .+2 |
1692 0bf0 00C0 rjmp .L183 |
1693 .L172: |
1694 0bf2 8091 0000 lds r24,GetPPMChannelAnforderung |
1695 0bf6 8823 tst r24 |
1696 0bf8 01F4 brne .+2 |
1697 0bfa 00C0 rjmp .L157 |
1698 0bfc 8091 0000 lds r24,UebertragungAbgeschlossen |
1699 0c00 8823 tst r24 |
1700 0c02 01F4 brne .+2 |
1701 0c04 00C0 rjmp .L157 |
1702 0c06 00C0 rjmp .L184 |
1703 .L175: |
1704 0c08 8091 0000 lds r24,UebertragungAbgeschlossen |
1705 0c0c 8823 tst r24 |
1706 0c0e 01F4 brne .+2 |
1707 0c10 00C0 rjmp .L159 |
1708 0c12 0E94 0000 call Menu |
1709 0c16 84E1 ldi r24,lo8(20) |
1710 0c18 90E0 ldi r25,hi8(20) |
1711 0c1a 9F93 push r25 |
1712 0c1c 8F93 push r24 |
1713 0c1e 9091 0000 lds r25,DisplayLine |
1714 0c22 84E1 ldi r24,lo8(20) |
1715 0c24 989F mul r25,r24 |
1716 0c26 C001 movw r24,r0 |
1717 0c28 1124 clr r1 |
1718 0c2a 8050 subi r24,lo8(-(DisplayBuff)) |
1719 0c2c 9040 sbci r25,hi8(-(DisplayBuff)) |
1720 0c2e 9F93 push r25 |
1721 0c30 8F93 push r24 |
1722 0c32 81E0 ldi r24,lo8(1) |
1723 0c34 90E0 ldi r25,hi8(1) |
1724 0c36 9F93 push r25 |
1725 0c38 8F93 push r24 |
1726 0c3a 80E0 ldi r24,lo8(DisplayLine) |
1727 0c3c 90E0 ldi r25,hi8(DisplayLine) |
1728 0c3e 9F93 push r25 |
1729 0c40 8F93 push r24 |
1730 0c42 82E0 ldi r24,lo8(2) |
1731 0c44 8F93 push r24 |
1732 0c46 81E0 ldi r24,lo8(1) |
1733 0c48 8F93 push r24 |
1734 0c4a 88E4 ldi r24,lo8(72) |
1735 0c4c 8F93 push r24 |
1736 0c4e 0E94 0000 call SendOutData |
1737 0c52 8091 0000 lds r24,DisplayLine |
1738 0c56 8F5F subi r24,lo8(-(1)) |
1739 0c58 2DB7 in r18,__SP_L__ |
1740 0c5a 3EB7 in r19,__SP_H__ |
1741 0c5c 255F subi r18,lo8(-(11)) |
1742 0c5e 3F4F sbci r19,hi8(-(11)) |
1743 0c60 2DBF out __SP_L__,r18 |
1744 0c62 8430 cpi r24,lo8(4) |
1745 0c64 00F4 brsh .+2 |
1746 0c66 00C0 rjmp .L174 |
1747 0c68 1092 0000 sts DisplayLine,__zero_reg__ |
1748 0c6c 1092 0000 sts DebugDisplayAnforderung,__zero_reg__ |
1749 0c70 00C0 rjmp .L159 |
1750 .L184: |
1751 0c72 86E1 ldi r24,lo8(22) |
1752 0c74 90E0 ldi r25,hi8(22) |
1753 0c76 9F93 push r25 |
1754 0c78 8F93 push r24 |
1755 0c7a 80E0 ldi r24,lo8(PPM_in) |
1756 0c7c 90E0 ldi r25,hi8(PPM_in) |
1757 0c7e 9F93 push r25 |
1758 0c80 8F93 push r24 |
1759 0c82 81E0 ldi r24,lo8(1) |
1760 0c84 8F93 push r24 |
1761 0c86 8F93 push r24 |
1762 0c88 80E5 ldi r24,lo8(80) |
1763 0c8a 8F93 push r24 |
1764 0c8c 0E94 0000 call SendOutData |
1765 0c90 1092 0000 sts GetPPMChannelAnforderung,__zero_reg__ |
1766 0c94 8DB7 in r24,__SP_L__ |
1767 0c96 9EB7 in r25,__SP_H__ |
1768 0c98 0796 adiw r24,7 |
1769 0c9a 8DBF out __SP_L__,r24 |
1770 0c9c 00C0 rjmp .L157 |
1771 .L183: |
1772 0c9e 81E0 ldi r24,lo8(1) |
1773 0ca0 90E0 ldi r25,hi8(1) |
1774 0ca2 9F93 push r25 |
1775 0ca4 8F93 push r24 |
1776 0ca6 80E0 ldi r24,lo8(ConfirmFrame) |
1777 0ca8 90E0 ldi r25,hi8(ConfirmFrame) |
1778 0caa 9F93 push r25 |
1779 0cac 8F93 push r24 |
1780 0cae 81E0 ldi r24,lo8(1) |
1781 0cb0 8F93 push r24 |
1782 0cb2 8F93 push r24 |
1783 0cb4 82E4 ldi r24,lo8(66) |
1784 0cb6 8F93 push r24 |
1785 0cb8 0E94 0000 call SendOutData |
1786 0cbc 1092 0000 sts ConfirmFrame,__zero_reg__ |
1787 0cc0 2DB7 in r18,__SP_L__ |
1788 0cc2 3EB7 in r19,__SP_H__ |
1789 0cc4 295F subi r18,lo8(-(7)) |
1790 0cc6 3F4F sbci r19,hi8(-(7)) |
1791 0cc8 2DBF out __SP_L__,r18 |
1792 0cca 00C0 rjmp .L172 |
1793 .L179: |
1794 0ccc 8091 0000 lds r24,EE_Parameter+23 |
1795 0cd0 9927 clr r25 |
1796 0cd2 880F lsl r24 |
1797 0cd4 991F rol r25 |
1798 0cd6 880F lsl r24 |
1799 0cd8 991F rol r25 |
1800 0cda 7C01 movw r14,r24 |
1801 0cdc 0027 clr r16 |
1802 0cde F7FC sbrc r15,7 |
1803 0ce0 0095 com r16 |
1804 0ce2 102F mov r17,r16 |
1805 0ce4 8091 0000 lds r24,IntegralNick |
1806 0ce8 9091 0000 lds r25,(IntegralNick)+1 |
1807 0cec A091 0000 lds r26,(IntegralNick)+2 |
1808 0cf0 B091 0000 lds r27,(IntegralNick)+3 |
1809 0cf4 BC01 movw r22,r24 |
1810 0cf6 CD01 movw r24,r26 |
1811 0cf8 A801 movw r20,r16 |
1812 0cfa 9701 movw r18,r14 |
1813 0cfc 0E94 0000 call __divmodsi4 |
1814 0d00 3093 0000 sts (WinkelOut)+1,r19 |
1815 0d04 2093 0000 sts WinkelOut,r18 |
1816 0d08 8091 0000 lds r24,IntegralRoll |
1817 0d0c 9091 0000 lds r25,(IntegralRoll)+1 |
1818 0d10 A091 0000 lds r26,(IntegralRoll)+2 |
1819 0d14 B091 0000 lds r27,(IntegralRoll)+3 |
1820 0d18 BC01 movw r22,r24 |
1821 0d1a CD01 movw r24,r26 |
1822 0d1c A801 movw r20,r16 |
1823 0d1e 9701 movw r18,r14 |
1824 0d20 0E94 0000 call __divmodsi4 |
1825 0d24 3093 0000 sts (WinkelOut+2)+1,r19 |
1826 0d28 2093 0000 sts WinkelOut+2,r18 |
1827 0d2c 8091 0000 lds r24,Parameter_UserParam1 |
1828 0d30 8093 0000 sts WinkelOut+4,r24 |
1829 0d34 8091 0000 lds r24,Parameter_UserParam2 |
1830 0d38 8093 0000 sts WinkelOut+5,r24 |
1831 0d3c 88E0 ldi r24,lo8(8) |
1832 0d3e 90E0 ldi r25,hi8(8) |
1833 0d40 9F93 push r25 |
1834 0d42 8F93 push r24 |
1835 0d44 80E0 ldi r24,lo8(WinkelOut) |
1836 0d46 90E0 ldi r25,hi8(WinkelOut) |
1837 0d48 9F93 push r25 |
1838 0d4a 8F93 push r24 |
1839 0d4c 81E0 ldi r24,lo8(1) |
1840 0d4e 8F93 push r24 |
1841 0d50 83E0 ldi r24,lo8(3) |
1842 0d52 8F93 push r24 |
1843 0d54 87E7 ldi r24,lo8(119) |
1844 0d56 8F93 push r24 |
1845 0d58 0E94 0000 call SendOutData |
1846 0d5c 8091 0000 lds r24,WinkelOut+6 |
1847 0d60 2DB7 in r18,__SP_L__ |
1848 0d62 3EB7 in r19,__SP_H__ |
1849 0d64 295F subi r18,lo8(-(7)) |
1850 0d66 3F4F sbci r19,hi8(-(7)) |
1851 0d68 2DBF out __SP_L__,r18 |
1852 0d6a 8530 cpi r24,lo8(5) |
1853 0d6c 00F0 brlo .L165 |
1854 0d6e 86E0 ldi r24,lo8(6) |
1855 0d70 8093 0000 sts WinkelOut+6,r24 |
1856 .L165: |
1857 0d74 83E6 ldi r24,lo8(99) |
1858 0d76 90E0 ldi r25,hi8(99) |
1859 0d78 0E94 0000 call SetDelay |
1860 0d7c 9093 0000 sts (Kompass_Timer)+1,r25 |
1861 0d80 8093 0000 sts Kompass_Timer,r24 |
1862 0d84 00C0 rjmp .L164 |
1863 .L178: |
1864 0d86 8BE0 ldi r24,lo8(11) |
1865 0d88 90E0 ldi r25,hi8(11) |
1866 0d8a 9F93 push r25 |
1867 0d8c 8F93 push r24 |
1868 0d8e 80E0 ldi r24,lo8(ExternControl) |
1869 0d90 90E0 ldi r25,hi8(ExternControl) |
1870 0d92 9F93 push r25 |
1871 0d94 8F93 push r24 |
1872 0d96 81E0 ldi r24,lo8(1) |
1873 0d98 8F93 push r24 |
1874 0d9a 8091 0000 lds r24,MeineSlaveAdresse |
1875 0d9e 8F93 push r24 |
1876 0da0 87E4 ldi r24,lo8(71) |
1877 0da2 8F93 push r24 |
1878 0da4 0E94 0000 call SendOutData |
1879 0da8 1092 0000 sts GetExternalControl,__zero_reg__ |
1880 0dac 8DB7 in r24,__SP_L__ |
1881 0dae 9EB7 in r25,__SP_H__ |
1882 0db0 0796 adiw r24,7 |
1883 0db2 8DBF out __SP_L__,r24 |
1884 0db4 00C0 rjmp .L163 |
1885 .L177: |
1886 0db6 8AE0 ldi r24,lo8(10) |
1887 0db8 90E0 ldi r25,hi8(10) |
1888 0dba 9F93 push r25 |
1889 0dbc 8F93 push r24 |
1890 0dbe 80E0 ldi r24,lo8(VersionInfo) |
1891 0dc0 90E0 ldi r25,hi8(VersionInfo) |
1892 0dc2 9F93 push r25 |
1893 0dc4 8F93 push r24 |
1894 0dc6 81E0 ldi r24,lo8(1) |
1895 0dc8 8F93 push r24 |
1896 0dca 8F93 push r24 |
1897 0dcc 86E5 ldi r24,lo8(86) |
1898 0dce 8F93 push r24 |
1899 0dd0 0E94 0000 call SendOutData |
1900 0dd4 1092 0000 sts GetVersionAnforderung,__zero_reg__ |
1901 0dd8 2DB7 in r18,__SP_L__ |
1902 0dda 3EB7 in r19,__SP_H__ |
1903 0ddc 295F subi r18,lo8(-(7)) |
1904 0dde 3F4F sbci r19,hi8(-(7)) |
1905 0de0 2DBF out __SP_L__,r18 |
1906 0de2 00C0 rjmp .L162 |
1907 .L176: |
1908 0de4 0E94 0000 call Menu |
1909 0de8 80E5 ldi r24,lo8(80) |
1910 0dea 90E0 ldi r25,hi8(80) |
1911 0dec 9F93 push r25 |
1912 0dee 8F93 push r24 |
1913 0df0 80E0 ldi r24,lo8(DisplayBuff) |
1914 0df2 90E0 ldi r25,hi8(DisplayBuff) |
1915 0df4 9F93 push r25 |
1916 0df6 8F93 push r24 |
1917 0df8 21E0 ldi r18,lo8(1) |
1918 0dfa 30E0 ldi r19,hi8(1) |
1919 0dfc 3F93 push r19 |
1920 0dfe 2F93 push r18 |
1921 0e00 80E0 ldi r24,lo8(MaxMenue) |
1922 0e02 90E0 ldi r25,hi8(MaxMenue) |
1923 0e04 9F93 push r25 |
1924 0e06 8F93 push r24 |
1925 0e08 3F93 push r19 |
1926 0e0a 2F93 push r18 |
1927 0e0c 80E0 ldi r24,lo8(MenuePunkt) |
1928 0e0e 90E0 ldi r25,hi8(MenuePunkt) |
1929 0e10 9F93 push r25 |
1930 0e12 8F93 push r24 |
1931 0e14 83E0 ldi r24,lo8(3) |
1932 0e16 8F93 push r24 |
1933 0e18 81E0 ldi r24,lo8(1) |
1934 0e1a 8F93 push r24 |
1935 0e1c 8CE4 ldi r24,lo8(76) |
1936 0e1e 8F93 push r24 |
1937 0e20 0E94 0000 call SendOutData |
1938 0e24 1092 0000 sts DebugDisplayAnforderung1,__zero_reg__ |
1939 0e28 8DB7 in r24,__SP_L__ |
1940 0e2a 9EB7 in r25,__SP_H__ |
1941 0e2c 0F96 adiw r24,15 |
1942 0e2e 8DBF out __SP_L__,r24 |
1943 0e30 00C0 rjmp .L161 |
1944 .L180: |
1945 0e32 8091 0000 lds r24,Debug_Timer |
1946 0e36 9091 0000 lds r25,(Debug_Timer)+1 |
1947 0e3a 0E94 0000 call CheckDelay |
1948 0e3e 8823 tst r24 |
1949 0e40 01F0 breq .+2 |
1950 0e42 00C0 rjmp .L167 |
1951 0e44 00C0 rjmp .L168 |
1952 .L182: |
1953 0e46 8091 0000 lds r24,Timer3D |
1954 0e4a 9091 0000 lds r25,(Timer3D)+1 |
1955 0e4e 0E94 0000 call CheckDelay |
1956 0e52 8823 tst r24 |
1957 0e54 01F4 brne .+2 |
1958 0e56 00C0 rjmp .L170 |
1959 0e58 8091 0000 lds r24,UebertragungAbgeschlossen |
1960 0e5c 8823 tst r24 |
1961 0e5e 01F4 brne .+2 |
1962 0e60 00C0 rjmp .L170 |
1963 0e62 8091 0000 lds r24,EE_Parameter+23 |
1964 0e66 9927 clr r25 |
1965 0e68 880F lsl r24 |
1966 0e6a 991F rol r25 |
1967 0e6c 880F lsl r24 |
1968 0e6e 991F rol r25 |
1969 0e70 7C01 movw r14,r24 |
1970 0e72 0027 clr r16 |
1971 0e74 F7FC sbrc r15,7 |
1972 0e76 0095 com r16 |
1973 0e78 102F mov r17,r16 |
1974 0e7a 8091 0000 lds r24,IntegralNick |
1975 0e7e 9091 0000 lds r25,(IntegralNick)+1 |
1976 0e82 A091 0000 lds r26,(IntegralNick)+2 |
1977 0e86 B091 0000 lds r27,(IntegralNick)+3 |
1978 0e8a BC01 movw r22,r24 |
1979 0e8c CD01 movw r24,r26 |
1980 0e8e A801 movw r20,r16 |
1981 0e90 9701 movw r18,r14 |
1982 0e92 0E94 0000 call __divmodsi4 |
1983 0e96 3093 0000 sts (Data3D)+1,r19 |
1984 0e9a 2093 0000 sts Data3D,r18 |
1985 0e9e 8091 0000 lds r24,IntegralRoll |
1986 0ea2 9091 0000 lds r25,(IntegralRoll)+1 |
1987 0ea6 A091 0000 lds r26,(IntegralRoll)+2 |
1988 0eaa B091 0000 lds r27,(IntegralRoll)+3 |
1989 0eae BC01 movw r22,r24 |
1990 0eb0 CD01 movw r24,r26 |
1991 0eb2 A801 movw r20,r16 |
1992 0eb4 9701 movw r18,r14 |
1993 0eb6 0E94 0000 call __divmodsi4 |
1994 0eba 3093 0000 sts (Data3D+2)+1,r19 |
1995 0ebe 2093 0000 sts Data3D+2,r18 |
1996 0ec2 2091 0000 lds r18,ErsatzKompass |
1997 0ec6 3091 0000 lds r19,(ErsatzKompass)+1 |
1998 0eca 4091 0000 lds r20,(ErsatzKompass)+2 |
1999 0ece 5091 0000 lds r21,(ErsatzKompass)+3 |
2000 0ed2 DA01 movw r26,r20 |
2001 0ed4 C901 movw r24,r18 |
2002 0ed6 03E0 ldi r16,3 |
2003 0ed8 880F 1: lsl r24 |
2004 0eda 991F rol r25 |
2005 0edc AA1F rol r26 |
2006 0ede BB1F rol r27 |
2007 0ee0 0A95 dec r16 |
2008 0ee2 01F4 brne 1b |
2009 0ee4 820F add r24,r18 |
2010 0ee6 931F adc r25,r19 |
2011 0ee8 A41F adc r26,r20 |
2012 0eea B51F adc r27,r21 |
2013 0eec 820F add r24,r18 |
2014 0eee 931F adc r25,r19 |
2015 0ef0 A41F adc r26,r20 |
2016 0ef2 B51F adc r27,r21 |
2017 0ef4 2091 0000 lds r18,GIER_GRAD_FAKTOR |
2018 0ef8 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1 |
2019 0efc 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2 |
2020 0f00 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3 |
2021 0f04 BC01 movw r22,r24 |
2022 0f06 CD01 movw r24,r26 |
2023 0f08 0E94 0000 call __divmodsi4 |
2024 0f0c 3093 0000 sts (Data3D+4)+1,r19 |
2025 0f10 2093 0000 sts Data3D+4,r18 |
2026 0f14 8EE0 ldi r24,lo8(14) |
2027 0f16 90E0 ldi r25,hi8(14) |
2028 0f18 9F93 push r25 |
2029 0f1a 8F93 push r24 |
2030 0f1c 80E0 ldi r24,lo8(Data3D) |
2031 0f1e 90E0 ldi r25,hi8(Data3D) |
2032 0f20 9F93 push r25 |
2033 0f22 8F93 push r24 |
2034 0f24 81E0 ldi r24,lo8(1) |
2035 0f26 8F93 push r24 |
2036 0f28 8F93 push r24 |
2037 0f2a 83E4 ldi r24,lo8(67) |
2038 0f2c 8F93 push r24 |
2039 0f2e 0E94 0000 call SendOutData |
2040 0f32 8091 0000 lds r24,Intervall3D |
2041 0f36 9091 0000 lds r25,(Intervall3D)+1 |
2042 0f3a 0E94 0000 call SetDelay |
2043 0f3e 9093 0000 sts (Timer3D)+1,r25 |
2044 0f42 8093 0000 sts Timer3D,r24 |
2045 0f46 2DB7 in r18,__SP_L__ |
2046 0f48 3EB7 in r19,__SP_H__ |
2047 0f4a 295F subi r18,lo8(-(7)) |
2048 0f4c 3F4F sbci r19,hi8(-(7)) |
2049 0f4e 2DBF out __SP_L__,r18 |
2050 0f50 00C0 rjmp .L170 |
2051 .L181: |
2052 0f52 82E4 ldi r24,lo8(66) |
2053 0f54 90E0 ldi r25,hi8(66) |
2054 0f56 9F93 push r25 |
2055 0f58 8F93 push r24 |
2056 0f5a 80E0 ldi r24,lo8(DebugOut) |
2057 0f5c 90E0 ldi r25,hi8(DebugOut) |
2058 0f5e 9F93 push r25 |
2059 0f60 8F93 push r24 |
2060 0f62 81E0 ldi r24,lo8(1) |
2061 0f64 8F93 push r24 |
2062 0f66 8F93 push r24 |
2063 0f68 84E4 ldi r24,lo8(68) |
2064 0f6a 8F93 push r24 |
2065 0f6c 0E94 0000 call SendOutData |
2066 0f70 1092 0000 sts DebugDataAnforderung,__zero_reg__ |
2067 0f74 8DB7 in r24,__SP_L__ |
2068 0f76 9EB7 in r25,__SP_H__ |
2069 0f78 0796 adiw r24,7 |
2070 0f7a 8DBF out __SP_L__,r24 |
2071 0f7c 8091 0000 lds r24,DebugDataIntervall |
2072 0f80 9091 0000 lds r25,(DebugDataIntervall)+1 |
2073 0f84 0097 sbiw r24,0 |
2074 0f86 01F4 brne .+2 |
2075 0f88 00C0 rjmp .L166 |
2076 0f8a 0E94 0000 call SetDelay |
2077 0f8e 9093 0000 sts (Debug_Timer)+1,r25 |
2078 0f92 8093 0000 sts Debug_Timer,r24 |
2079 0f96 00C0 rjmp .L166 |
2080 .L174: |
2081 0f98 8093 0000 sts DisplayLine,r24 |
2082 0f9c 1092 0000 sts DebugDisplayAnforderung,__zero_reg__ |
2083 0fa0 00C0 rjmp .L159 |
2084 .L157: |
2085 /* epilogue: frame size=0 */ |
2086 0fa2 1F91 pop r17 |
2087 0fa4 0F91 pop r16 |
2088 0fa6 FF90 pop r15 |
2089 0fa8 EF90 pop r14 |
2090 0faa 0895 ret |
2091 /* epilogue end (size=5) */ |
2092 /* function DatenUebertragung size 606 (597) */ |
2094 .comm SendeBuffer,150,1 |
2095 .comm RxdBuffer,150,1 |
2096 .comm Debug_Timer,2,1 |
2097 .comm Kompass_Timer,2,1 |
2098 .comm MotorTest,16,1 |
2099 .comm DebugOut,66,1 |
2100 .comm WinkelOut,8,1 |
2101 .comm Data3D,14,1 |
2102 .comm ExternControl,11,1 |
2103 .comm VersionInfo,10,1 |
2104 .comm Mixer,77,1 |
2105 .comm NMEABuffer,150,1 |
2106 .comm ConfirmFrame,1,1 |
2107 .comm Timer3D,2,1 |
2108 /* File "uart.c": code 2071 = 0x0817 (1988), prologues 41, epilogues 42 */ |
DEFINED SYMBOLS |
*ABS*:00000000 uart.c |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:3 *ABS*:0000003f __SREG__ |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:4 *ABS*:0000003e __SP_H__ |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:5 *ABS*:0000003d __SP_L__ |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:14 .data:00000000 ANALOG_TEXT |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:52 .bss:00000000 Intervall3D |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:58 .data:00000200 DebugDataIntervall |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:63 .data:00000202 MeineSlaveAdresse |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:68 .data:00000203 PcZugriff |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:73 .data:00000204 DebugTextAnforderung |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:80 .bss:00000002 PC_MotortestActive |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:86 .bss:00000003 PC_DebugTimeout |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:92 .bss:00000004 RxDataLen |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:98 .bss:00000005 pRxData |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:104 .bss:00000007 AnzahlEmpfangsBytes |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:110 .bss:00000008 CntCrcError |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:116 .data:00000205 UebertragungAbgeschlossen |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:123 .bss:00000009 NeueKoordinateEmpfangen |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:129 .bss:0000000a NeuerDatensatzEmpfangen |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:135 .bss:0000000b SioTmp |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:141 .bss:0000000c DisplayLine |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:147 .bss:0000000d GetPPMChannelAnforderung |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:153 .bss:0000000e GetVersionAnforderung |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:159 .bss:0000000f DebugDataAnforderung |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:165 .bss:00000010 DebugDisplayAnforderung |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:171 .bss:00000011 DebugDisplayAnforderung1 |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:177 .bss:00000012 GetExternalControl |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:181 .text:00000000 eeprom_write_byte |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:207 .text:00000018 UART_Init |
*COM*:00000002 Debug_Timer |
*COM*:00000002 Kompass_Timer |
*COM*:0000000a VersionInfo |
.bss:00000013 ptr.5 |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:253 .text:00000090 __vector_22 |
*COM*:00000096 SendeBuffer |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:250 .bss:00000015 crc.0 |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:308 .bss:00000017 crc1.1 |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:309 .bss:00000018 crc2.2 |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:310 .bss:00000019 buf_ptr.3 |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:311 .bss:0000001a UartState.4 |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:315 .text:00000102 __vector_20 |
*COM*:00000096 RxdBuffer |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:533 .text:000002d0 AddCRC |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:593 .text:00000338 SendOutData |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:808 .text:000004cc Decode64 |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:927 .text:000005ac BearbeiteRxDaten |
*COM*:0000000b ExternControl |
*COM*:00000001 ConfirmFrame |
*COM*:00000010 MotorTest |
*COM*:0000004d Mixer |
*COM*:00000002 Timer3D |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:1546 .text:00000aca uart_putchar |
C:\Users\Bernd\AppData\Local\Temp/ccjOzKk7.s:1574 .text:00000af0 DatenUebertragung |
*COM*:00000008 WinkelOut |
*COM*:0000000e Data3D |
*COM*:00000042 DebugOut |
*COM*:00000096 NMEABuffer |
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
SetDelay |
ServoActive |
__prologue_saves__ |
__epilogue_restores__ |
__tablejump2__ |
RemoteKeys |
EE_Parameter |
ReadParameterSet |
KompassValue |
KompassStartwert |
__divmodhi4 |
KompassRichtung |
MenuePunkt |
WriteParameterSet |
__mulsi3 |
Umschlag180Nick |
Umschlag180Roll |
SetActiveParamSetNumber |
GetActiveParamSetNumber |
LipoDetection |
Piep |
EEPromArray |
__eewr_block |
CheckDelay |
Menu |
DisplayBuff |
PPM_in |
IntegralNick |
__divmodsi4 |
IntegralRoll |
Parameter_UserParam1 |
Parameter_UserParam2 |
MaxMenue |
ErsatzKompass |
GIER_GRAD_FAKTOR |