endlich geht mal wieder was
This commit is contained in:
parent
d5ca50f475
commit
9414322a19
Binary file not shown.
|
@ -3,264 +3,294 @@
|
|||
:100020000C947D000C947D000C947D000C947D005C
|
||||
:100030000C947D000C947D000C947D000C947D004C
|
||||
:100040000C947D000C947D000C947D000C947D003C
|
||||
:100050000C9429010C947D000C947F000C947D007D
|
||||
:100050000C9470080C947D000C949A080C947D000C
|
||||
:100060000C947D000C947D000C947D000C947D001C
|
||||
:100070000C947D000C947D000C947D000C947D000C
|
||||
:100080000C947D000C947D000C947D000E011101F8
|
||||
:100090001401080117011A011D01200123010601A5
|
||||
:1000A0000B012601F60711241FBECFEFD0E4DEBFFF
|
||||
:1000B000CDBF11E0A0E0B1E0EEE5F0E100E00BBF64
|
||||
:1000C00002C007900D92AE32B107D9F721E0AEE23F
|
||||
:1000D000B1E001C01D92A93CB207E1F710E0C3E511
|
||||
:1000E000D0E004C02197FE010E942408C235D10748
|
||||
:1000F000C9F70E94DA070C942D080C9400001F9297
|
||||
:100100000F920FB60F9211240BB60F928F939F93FD
|
||||
:10011000EF93FF9390912F0180912E01981760F437
|
||||
:10012000E0912F0181E08E0F80932F01F0E0E05DE0
|
||||
:10013000FE4F80818093C600FF91EF919F918F9138
|
||||
:100140000F900BBE0F900FBE0F901F90189588EC6C
|
||||
:1001500091E00E946C0160E085EC91E00E94AF01AB
|
||||
:100160006FEF85EC91E00E94D00160E082EC91E0BD
|
||||
:100170000E94AF016FEF82EC91E00E94D0016FEF1F
|
||||
:100180008FEB91E00E94D00188EB91E00E94A702E2
|
||||
:1001900081E791E00E949F03789484B7877F84BFB2
|
||||
:1001A000109260000FB6F894A89580916000886165
|
||||
:1001B00080936000109260000FBE08950FB6F8940F
|
||||
:1001C000A895809160008861809360001092600023
|
||||
:1001D0000FBE81E791E00E94BE04E82F10922F012C
|
||||
:1001E0009EE088E10FB6F894A895809360000FBE5A
|
||||
:1001F00090936000A8958E2F90E0FC013197EC3031
|
||||
:10020000F10530F4EA5BFF4F0C9424080E9451077B
|
||||
:100210001092500108950E946307FACF0E94A6062B
|
||||
:10022000F7CF0E94BB06F4CF0E94F006F1CF0E94E8
|
||||
:100230000107EECF0E941307EBCF0E942507E8CFFE
|
||||
:100240000E943207E5CF0E943F07E2CF0E94750768
|
||||
:10025000DFCF1F920F920FB60F9211240BB60F92A1
|
||||
:100260002F933F934F935F936F937F938F939F93BE
|
||||
:10027000AF93BF93EF93FF93E0915001F0E0809133
|
||||
:10028000C600EF5AFE4F8083809150018F5F8093AC
|
||||
:100290005001E091510180915001F0E0E050FF4F9A
|
||||
:1002A0009081981799F0FF91EF91BF91AF919F9135
|
||||
:1002B0008F917F916F915F914F913F912F910F900F
|
||||
:1002C0000BBE0F900FBE0F901F901895109250010B
|
||||
:1002D0000E94DE00E8CF089584B1806B84B926982F
|
||||
:1002E0008AB18C618AB980E58CBD81E08DBD8BB10E
|
||||
:1002F000837E8BB95A9A5B9A5C9A08958BB1837E00
|
||||
:100300008BB98BB160FD10C090E0892B8BB98BB19C
|
||||
:1003100061FD10C090E0892B8BB98BB162FD10C0DC
|
||||
:1003200090E0892B8BB9089594E0892B8BB98BB120
|
||||
:1003300061FFF0CF98E0892B8BB98BB162FFF0CFD2
|
||||
:1003400090E1892B8BB908956EBD0DB407FEFDCFEA
|
||||
:100350008EB50895FC0171836083428308951F93D5
|
||||
:10036000CF93DF93EC01162F6A81888199810E94D7
|
||||
:100370007E0160E4888199810E94A40160E0888107
|
||||
:1003800099810E94A401612F888199810E94A40112
|
||||
:1003900067E088819981DF91CF911F910C947E0154
|
||||
:1003A0001F93CF93DF93EC01162F6A818881998187
|
||||
:1003B0000E947E0160E4888199810E94A40161E02D
|
||||
:1003C000888199810E94A401612F888199810E946E
|
||||
:1003D000A40167E088819981DF91CF911F910C94EE
|
||||
:1003E0007E011F93CF93DF93EC01162F6A818881E2
|
||||
:1003F00099810E947E0160E4888199810E94A40114
|
||||
:1004000062E1888199810E94A401612F888199818C
|
||||
:100410000E94A40167E088819981DF91CF911F91AB
|
||||
:100420000C947E011F93CF93DF93EC01162F6A810A
|
||||
:10043000888199810E947E0160E4888199810E946F
|
||||
:10044000A40163E1888199810E94A401612F8881C0
|
||||
:1004500099810E94A40167E088819981DF91CF9101
|
||||
:100460001F910C947E011F93CF93DF93EC016A815F
|
||||
:10047000888199810E947E0161E4888199810E942E
|
||||
:10048000A40162E1888199810E94A40160E08881D1
|
||||
:1004900099810E94A401182F67E0888199810E94A8
|
||||
:1004A0007E01812FDF91CF911F9108951F93CF93EC
|
||||
:1004B000DF93EC016A81888199810E947E0161E469
|
||||
:1004C000888199810E94A40163E1888199810E94B9
|
||||
:1004D000A40160E0888199810E94A401182F67E03F
|
||||
:1004E000888199810E947E01812FDF91CF911F9198
|
||||
:1004F0000895FC0171836083428308950F931F93D5
|
||||
:10050000CF93DF93EC018B016A81888199810E94EE
|
||||
:100510007E01B8010024660F771F001C660F771F4D
|
||||
:10052000001C672F702D888199810E94A401602F83
|
||||
:10053000660F660F888199810E94A40167E0888117
|
||||
:100540009981DF91CF911F910F910C947E011092B0
|
||||
:100550007C0087E880937A00089580917C00807EFB
|
||||
:10056000682B60937C0080917A00806480937A008D
|
||||
:1005700083EA91E00197F1F700C0000080917A00D2
|
||||
:1005800086FDFCCF809178009091790008950F93BB
|
||||
:100590001F93CF93DF9361E085EC91E00E94F1011E
|
||||
:1005A000C1E0D0E001E010E02FEF84E39CE02150B7
|
||||
:1005B00080409040E1F700C00000B8010C2E01C05F
|
||||
:1005C000660F0A94EAF785EC91E00E94F10121960A
|
||||
:1005D000C930D10549F7DF91CF911F910F9108954F
|
||||
:1005E0000F931F93CF93DF9361E082EC91E00E9421
|
||||
:1005F000F101C1E0D0E001E010E02FEF84E39CE0E6
|
||||
:10060000215080409040E1F700C00000B8010C2E5E
|
||||
:1006100001C0660F0A94EAF782EC91E00E94F101B2
|
||||
:100620002196C930D10549F7DF91CF911F910F91E4
|
||||
:100630000895CF93DF93C0E0D0E0BE018CEB91E052
|
||||
:100640000E947E0287E893E10197F1F700C0000065
|
||||
:100650002196C11594E0D90781F72FE78AE196E04A
|
||||
:10066000215080409040E1F700C0000060E070E061
|
||||
:100670008CEB91E0DF91CF910C947E02CF93DF93CE
|
||||
:10068000C0E0D0E0BE0189EB91E00E947E0287E8E5
|
||||
:1006900093E10197F1F700C000002196C11594E0A5
|
||||
:1006A000D90781F72FE78AE196E0215080409040FA
|
||||
:1006B000E1F700C0000060E070E089EB91E0DF91BD
|
||||
:1006C000CF910C947E020FB6F894A89580916000AB
|
||||
:1006D000886180936000109260000FBE60E088EB3C
|
||||
:1006E00091E00E94AD02BC018CEB91E00E947E0281
|
||||
:1006F00061E088EB91E00E94AD02BC0189EB91E0E2
|
||||
:100700000E947E0285EC91E00E945602682F85ECE3
|
||||
:1007100091E00E94F1018FEB91E00E945602682F58
|
||||
:1007200082EC91E00E94F101D9CF0E94C7020E94A1
|
||||
:10073000F0020E9419030E943E030E94630382E0BC
|
||||
:100740008093C00088ED8093C10086E08093C20052
|
||||
:100750001092C50084E18093C40008958091C60082
|
||||
:100760008FE792E00197F1F700C000008091C00090
|
||||
:1007700087FDF4CF089580912F0180932E01109270
|
||||
:100780002F018091C00085FFFCCFE0912F0181E017
|
||||
:100790008E0F80932F01F0E0E05DFE4F808180930B
|
||||
:1007A000C6000895E0912F0181E08E0F80932F0104
|
||||
:1007B000F0E0E05DFE4F60830895E0912F0181E05D
|
||||
:1007C0008E0F80932F01F0E0E05DFE4F6083E0919B
|
||||
:1007D0002F0181E08E0F80932F01F0E0E05DFE4F4E
|
||||
:1007E00070830895E0912F0181E08E0F80932F0197
|
||||
:1007F000F0E0E05DFE4F40838FEF840F442371F003
|
||||
:10080000DB019D91E0912F0121E02E0F20932F011C
|
||||
:10081000F0E0E05DFE4F9083815098F70895CF930C
|
||||
:10082000DF93E0912F0181E08E0F80932F01F0E0A4
|
||||
:10083000E05DFE4F40835FEF540F442309F486C010
|
||||
:10084000FB0180E041E939C0822F90E09C013595A1
|
||||
:100850002795942F922720FD53C0822F90E09C0172
|
||||
:1008600035952795942F922720FD53C0822F90E035
|
||||
:100870009C0135952795942F922720FD53C0822FF8
|
||||
:1008800090E09C0135952795942F922720FD53C029
|
||||
:10089000822F90E09C0135952795942F922720FD7B
|
||||
:1008A00053C0822F90E095958795242F282780FDAF
|
||||
:1008B000822F8695515008F44AC0EF019191A09182
|
||||
:1008C0002F0121E02A0F20932F01B0E0A05DBE4F41
|
||||
:1008D0009C9328818227982F942780FD892F90E070
|
||||
:1008E0009C0135952795942F922720FFADCF892F16
|
||||
:1008F00090E09C0135952795942F922720FFADCF4E
|
||||
:10090000892F90E09C0135952795942F922720FF01
|
||||
:10091000ADCF892F90E09C0135952795942F922794
|
||||
:1009200020FFADCF892F90E09C0135952795942F1E
|
||||
:10093000922720FFADCF892F90E09C013595279518
|
||||
:10094000942F922720FFADCF892FACCF80E0E0918C
|
||||
:100950002F0191E09E0F90932F01F0E0E05DFE4F9C
|
||||
:100960008083E091500181E08E0F80935001F0E090
|
||||
:10097000EF5AFE4F8081DF91CF910895E0915001B1
|
||||
:1009800081E08E0F80935001F0E0EF5AFE4F80819E
|
||||
:100990000895E091500181E08E0F80935001F0E0C6
|
||||
:1009A000EF5AFE4F8081E091500191E09E0F9093AD
|
||||
:1009B0005001F0E0EF5AFE4F208190E0922B089515
|
||||
:1009C000CF93DF93FC01DC01AB5BBF4F8D919C911A
|
||||
:1009D00011978230910509F460C090F40097D9F125
|
||||
:1009E000019799F58081EF01C80FD11D698322E03D
|
||||
:1009F00030E02D933C938F5F8083DF91CF910895FA
|
||||
:100A00008330910509F4A8C00497F9F48091C600D9
|
||||
:100A10008FE792E00197F1F700C000008091C000DD
|
||||
:100A200087FDF4CFEF01CC5BDF4F88818111E8C0F7
|
||||
:100A30008FEFC0912F0191E09C0F90932F01D0E098
|
||||
:100A4000C05DDE4F88831D921C9280818F5F808302
|
||||
:100A5000DF91CF910895613408F4D4C08091C6002D
|
||||
:100A60008FE792E00197F1F700C000008091C0008D
|
||||
:100A700087FDF4CFC0912F0181E08C0F80932F016F
|
||||
:100A8000D0E0C05DDE4F8EEF88831D921C92808186
|
||||
:100A90008F5F8083DF91CF9108958081EF01C80F30
|
||||
:100AA000D11D6983EF01CC5BDF4F9881692760FF1F
|
||||
:100AB00002C091E9692770E075956795462F60FF40
|
||||
:100AC00002C041E9462750E055954795242F40FF45
|
||||
:100AD00002C021E9242730E035952795422F20FFD9
|
||||
:100AE00002C041E9422750E055954795242F40FF29
|
||||
:100AF00002C021E9242730E035952795422F20FFB9
|
||||
:100B000002C041E9422750E055954795242F40FF08
|
||||
:100B100002C021E9242730E035952795922F20FF48
|
||||
:100B200002C091E99227292F30E035952795288337
|
||||
:100B30009181891709F470C0891708F487CF8091D3
|
||||
:100B4000C6008FE792E00197F1F700C000008091A6
|
||||
:100B5000C00087FDF4CF8ECF8081EF01C80FD11D7B
|
||||
:100B60006983EF01CC5BDF4F9881692760FF02C08A
|
||||
:100B700091E9692770E075956795462F60FF02C07F
|
||||
:100B800041E9462750E055954795242F40FF02C084
|
||||
:100B900021E9242730E035952795422F20FF02C018
|
||||
:100BA00041E9422750E055954795242F40FF02C068
|
||||
:100BB00021E9242730E035952795422F20FF02C0F8
|
||||
:100BC00041E9422750E055954795242F40FF02C048
|
||||
:100BD00021E9242730E035952795922F20FF02C088
|
||||
:100BE00091E99227292F30E035952795288324E035
|
||||
:100BF00030E02D933C938F5F8083DF91CF910895F8
|
||||
:100C00008EEF17CF6183EF01CC5BDF4F188281E05D
|
||||
:100C100090E08D939C931BCF23E030E02D933C9389
|
||||
:100C20008F5F15CFCF93DF93CB0171E99C01240F28
|
||||
:100C3000311DA901AEEFE091500181E08E0F80934C
|
||||
:100C40005001F0E0EF5AFE4FE081E03809F46EC049
|
||||
:100C5000E13408F0E0E060E080E0C091500191E014
|
||||
:100C60009C0F90935001D0E0CF5ADE4FF8818F2730
|
||||
:100C700080FD872790E095958795282F80FF02C0FB
|
||||
:100C8000272F2827822F90E095958795282F80FF82
|
||||
:100C900002C0272F282730E035952795822F20FF87
|
||||
:100CA00002C0872F822790E095958795282F80FF97
|
||||
:100CB00002C0272F282730E035952795822F20FF67
|
||||
:100CC00002C0872F822790E095958795282F80FF77
|
||||
:100CD00002C0272F282730E035952795822F20FF47
|
||||
:100CE00002C0872F822786956E1758F16F5FE6172F
|
||||
:100CF00008F0B3CF9091C600EFE7F2E03197F1F73B
|
||||
:100D000000C000009091C00097FDF4CF81110EC08B
|
||||
:100D1000E0912F0181E08E0F80932F01F0E0E05DE4
|
||||
:100D2000FE4F8FEF8083DF91CF910895E0912F01E7
|
||||
:100D300081E08E0F80932F01F0E0E05DFE4FA083F5
|
||||
:100D40007ACFEA01C60FD11DF883D0CFCF9381E7C8
|
||||
:100D500091E00E94BE04C82F6FEF81E791E00E94EE
|
||||
:100D6000D2036C2F81E791E00E94D20381E791E0EA
|
||||
:100D7000CF910C94BB0363E081E791E00E94D20322
|
||||
:100D800081E791E00E94BB0310922F014CE062E2E8
|
||||
:100D900071E081E791E00E94F20381E791E00E9417
|
||||
:100DA000BB0310922F0149E069E171E081E791E016
|
||||
:100DB0000E94F20381E791E00E94BB0310922F0191
|
||||
:100DC0004CE06DE071E081E791E00E94F2036FEF8B
|
||||
:100DD00081E791E00E94D20381E791E00C94BB038C
|
||||
:100DE00081E791E00E94C904BC01660F771F680F7C
|
||||
:100DF000791F81E791E00E94DD0381E791E00C9487
|
||||
:100E0000BB0381E791E00E94BE04682F85EC91E06E
|
||||
:100E10000E94F1016FEF81E791E00E94D20381E728
|
||||
:100E200091E00C94BB0381E791E00E94BE04682F1F
|
||||
:100E300082EC91E00E94F1016FEF81E791E00E9466
|
||||
:100E4000D20381E791E00C94BB0385EC91E00E9412
|
||||
:100E50005602682F81E791E00E94D20381E791E07A
|
||||
:100E60000C94BB0382EC91E00E945602682F81E74C
|
||||
:100E700091E00E94D20381E791E00C94BB0381E7EB
|
||||
:100E800091E00E94C904BC018CEB91E00E947E02BB
|
||||
:100E90006FEF81E791E00E94D20381E791E00C942B
|
||||
:100EA000BB0381E791E00E94C904BC0189EB91E09A
|
||||
:100EB0000E947E026FEF81E791E00E94D20381E7FA
|
||||
:100EC00091E00C94BB0381E791E00E94BE04682F7F
|
||||
:100ED00088EB91E00E94AD02BC0181E791E00E94A5
|
||||
:100EE000DD0381E791E00C94BB038F929F92AF9258
|
||||
:100EF000BF92CF92DF92EF92FF920F931F93CF9307
|
||||
:100F0000DF9381E791E00E94BE04882E81E791E0A3
|
||||
:100F10000E94BE04982E81E791E00E94C904EC0172
|
||||
:100F200081E791E00E94C9045C0181E791E00E94A1
|
||||
:100F3000C904A89E6001A99ED00CB89ED00C1124B3
|
||||
:100F40006FEF82EC91E00E94F101CC15DD050CF50C
|
||||
:100F5000BE018CEB91E00E947E02A895682D88EB83
|
||||
:100F600091E00E94AD027C01692D88EB91E00E9426
|
||||
:100F7000AD028C01B70181E791E00E94DD03B80169
|
||||
:100F800081E791E00E94DD03CA0DDB1DCC15DD0574
|
||||
:100F9000FCF26FEF81E791E0DF91CF911F910F910C
|
||||
:100FA000FF90EF90DF90CF90BF90AF909F908F9089
|
||||
:100FB0000C94D2030E94A7006FEF85EC91E00E9491
|
||||
:100FC000F1012FE78AE196E0215080409040E1F75F
|
||||
:100FD00000C0000060E085EC91E00E94F10187E82C
|
||||
:100FE00093E10197F1F700C00000F9CF88EC91E0A0
|
||||
:100FF0000E946B0142E068EC71E085EC91E00E9498
|
||||
:10100000AA0143E068EC71E082EC91E00E94AA0141
|
||||
:1010100045E068EC71E08FEB91E00E94AA0140E0AE
|
||||
:1010200068EC71E08CEB91E00E94790241E068ECA1
|
||||
:1010300071E089EB91E00E947902109271011092A7
|
||||
:10104000B7011092B6010895EE0FFF1F0024001C97
|
||||
:0E1050000BBE0790F691E02D0994F894FFCFA7
|
||||
:10105E0001020103000202010103030209626F6132
|
||||
:10106E007264696E666F2E680031323A31303A35ED
|
||||
:0E107E003400417072202032203230313900AF
|
||||
:100080000C947D000C947D000C947D00B600B900AA
|
||||
:10009000BC00A200BF00C200C500C800CB00A00089
|
||||
:1000A000B300CE00E00811241FBECFEFD0E4DEBFC6
|
||||
:1000B000CDBF11E0A0E0B1E0E2E3F2E100E00BBF70
|
||||
:1000C00002C007900D92AE32B107D9F722E0AEE23E
|
||||
:1000D000B1E001C01D92AF30B207E1F710E0C3E517
|
||||
:1000E000D0E004C02197FE010E940E09C235D1075D
|
||||
:1000F000C9F70E94C4080C9417090C940000CF9310
|
||||
:100100009EE088E10FB6F894A895809360000FBE3A
|
||||
:1001100090936000A89581E791E00E94D104C82FD8
|
||||
:10012000682F86E092E00E9494018C2F90E0FC0101
|
||||
:100130003197EC30F10530F4EA5BFF4F0C940E0977
|
||||
:100140000E94DF0781E791E00E94B6030FB6F894A2
|
||||
:10015000A895809160008861809360001092600093
|
||||
:100160000FBECF9108950E94F507ECCF0E9426079D
|
||||
:10017000E9CF0E943F07E6CF0E946607E3CF0E94C7
|
||||
:100180007B07E0CF0E949107DDCF0E94A707DACF5F
|
||||
:100190000E94B807D7CF0E94C907D4CF0E940B088E
|
||||
:1001A000D1CF8CE092E00E940F0160E089E092E004
|
||||
:1001B0000E9452016FEF89E092E00E94730160E0BB
|
||||
:1001C00086E092E00E9452016FEF86E092E00E948A
|
||||
:1001D00073016FEF83E092E00E9473018CEF91E076
|
||||
:1001E0000E944A026FE770E081E791E00E944203BB
|
||||
:1001F00081E791E00E94B603789484B7877F84BF3B
|
||||
:10020000109260000FB6F894A89580916000886104
|
||||
:1002100080936000109260000FBE0895089584B12D
|
||||
:10022000806B84B926988AB18C618AB980E58CBDCF
|
||||
:1002300081E08DBD8BB1837E8BB95A9A5B9A5C9AB3
|
||||
:1002400008958BB1837E8BB98BB160FD10C090E0B7
|
||||
:10025000892B8BB98BB161FD10C090E0892B8BB9D4
|
||||
:100260008BB162FD10C090E0892B8BB9089594E0AA
|
||||
:10027000892B8BB98BB161FFF0CF98E0892B8BB9BB
|
||||
:100280008BB162FFF0CF90E1892B8BB908956EBDE1
|
||||
:100290000DB407FEFDCF8EB50895FC017183608318
|
||||
:1002A000428308951F93CF93DF93EC01162F6A8149
|
||||
:1002B000888199810E94210160E4888199810E944E
|
||||
:1002C000470160E0888199810E944701612F888100
|
||||
:1002D00099810E94470167E088819981DF91CF91E0
|
||||
:1002E0001F910C9421011F93CF93DF93EC01162FE4
|
||||
:1002F0006A81888199810E94210160E488819981C5
|
||||
:100300000E94470161E0888199810E944701612F25
|
||||
:10031000888199810E94470167E088819981DF91F6
|
||||
:10032000CF911F910C9421011F93CF93DF93EC0188
|
||||
:10033000162F6A81888199810E94210160E4888159
|
||||
:1003400099810E94470162E1888199810E94470159
|
||||
:10035000612F888199810E94470167E08881998196
|
||||
:10036000DF91CF911F910C9421011F93CF93DF93C5
|
||||
:10037000EC01162F6A81888199810E94210160E435
|
||||
:10038000888199810E94470163E1888199810E9457
|
||||
:100390004701612F888199810E94470167E0888128
|
||||
:1003A0009981DF91CF911F910C9421011F93CF93DD
|
||||
:1003B000DF93EC016A81888199810E94210161E4C7
|
||||
:1003C000888199810E94470162E1888199810E9418
|
||||
:1003D000470160E0888199810E944701182F67E0FA
|
||||
:1003E000888199810E942101812FDF91CF911F91F6
|
||||
:1003F00008951F93CF93DF93EC016A8188819981DF
|
||||
:100400000E94210161E4888199810E94470163E192
|
||||
:10041000888199810E94470160E0888199810E94CA
|
||||
:100420004701182F67E0888199810E942101812F5F
|
||||
:10043000DF91CF911F910895FC0171836083428306
|
||||
:1004400008950F931F93CF93DF93EC018B016A8183
|
||||
:10045000888199810E942101B8010024660F771FCD
|
||||
:10046000001C660F771F001C672F702D88819981F3
|
||||
:100470000E944701602F660F660F888199810E9454
|
||||
:10048000470167E088819981DF91CF911F910F919A
|
||||
:100490000C94210110927C0087E880937A000895E3
|
||||
:1004A00080917C00807E682B60937C0080917A0034
|
||||
:1004B000806480937A0083EA91E00197F1F700C0AD
|
||||
:1004C000000080917A0086FDFCCF809178009091A9
|
||||
:1004D000790008950F931F93CF93DF9361E089E034
|
||||
:1004E00092E00E949401C1E0D0E001E010E02FEF23
|
||||
:1004F00084E39CE0215080409040E1F700C0000080
|
||||
:10050000B8010C2E01C0660F0A94EAF789E092E068
|
||||
:100510000E9494012196C930D10549F7DF91CF910E
|
||||
:100520001F910F9108950F931F93CF93DF9361E075
|
||||
:1005300086E092E00E949401C1E0D0E001E010E08A
|
||||
:100540002FEF84E39CE0215080409040E1F700C011
|
||||
:100550000000B8010C2E01C0660F0A94EAF786E08D
|
||||
:1005600092E00E9494012196C930D10549F7DF91AC
|
||||
:10057000CF911F910F910895CF93DF93C0E0D0E00A
|
||||
:10058000BE0180E092E00E94210287E893E101979A
|
||||
:10059000F1F700C000002196C11594E0D90781F75A
|
||||
:1005A0002FE78AE196E0215080409040E1F700C0BB
|
||||
:1005B000000060E070E080E092E0DF91CF910C9469
|
||||
:1005C0002102CF93DF93C0E0D0E0BE018DEF91E038
|
||||
:1005D0000E94210287E893E10197F1F700C0000033
|
||||
:1005E0002196C11594E0D90781F72FE78AE196E0BB
|
||||
:1005F000215080409040E1F700C0000060E070E0D2
|
||||
:100600008DEF91E0DF91CF910C9421020FB6F89419
|
||||
:10061000A8958091600088618093600010926000CE
|
||||
:100620000FBE60E08CEF91E00E945002BC0180E0C0
|
||||
:1006300092E00E94210261E08CEF91E00E94500262
|
||||
:10064000BC018DEF91E00E94210289E092E00E94BE
|
||||
:10065000F901682F89E092E00E94940183E092E022
|
||||
:100660000E94F901682F86E092E00E949401D9CFA0
|
||||
:100670000E946A020E9493020E94BC020E94E10250
|
||||
:100680000E94060322E02093C00028ED2093C100C1
|
||||
:1006900026E02093C2001092C50024E12093C400FC
|
||||
:1006A00070930E0260930D0286519F4FFC011082E1
|
||||
:1006B00008958091C6008FE792E00197F1F700C09E
|
||||
:1006C00000008091C00087FDF4CF0895DC01A9519E
|
||||
:1006D000BF4F3C912091C600FC01E30FF11DE9538F
|
||||
:1006E000FF4F20832C912F5F2C932C91FC01E95319
|
||||
:1006F000FF4FE081F0E0E050FF4F8081281708F4C1
|
||||
:1007000008951C92E0910D02F0910E0209940F934E
|
||||
:100710001F93CF93DF93EC018C0108511F4FF80119
|
||||
:10072000608189E092E00E949401F8019081319605
|
||||
:100730008081981740F0C651DF4F1882DF91CF912A
|
||||
:100740001F910F9108958091C00085FFFCCFF801A3
|
||||
:10075000808191E0980F9083C80FD11D898180938B
|
||||
:10076000C600DF91CF911F910F91089589519F4F3E
|
||||
:10077000FC01108208959C01FC01E651FF4F90811D
|
||||
:100780009111FDCFF901E851FF4F10820895CF92EA
|
||||
:10079000DF92EF92FF920F931F93CF93DF93EC01C1
|
||||
:1007A000C851DF4F2881211109C0DF91CF911F91DE
|
||||
:1007B0000F91FF90EF90DF90CF9008958C0188818A
|
||||
:1007C000780199EEE90EF11CF70180831882680127
|
||||
:1007D000FAEECF0ED11C81E0F6018083688189E0BA
|
||||
:1007E00092E00E9494019881F7018081981778F433
|
||||
:1007F0009091C00095FFFCCF888191E0980F98837D
|
||||
:10080000E801C80FD11D89818093C600CECFF601C3
|
||||
:100810001082CBCFFC01E851FF4F208131E0320F35
|
||||
:100820003083FC01E20FF11D61830895FC01E85162
|
||||
:10083000FF4F208131E0320F3083DC01A20FB11D68
|
||||
:1008400011966C93208131E0320F3083FC01E20F6E
|
||||
:10085000F11D718308950F931F93CF93DF938C0144
|
||||
:10086000FC01E851FF4F808191E0980F9083D801FF
|
||||
:10087000A80FB11D11964C939FEF940F442361F084
|
||||
:10088000DB013D91208141E0420F4083E801C20F2E
|
||||
:10089000D11D39839150A8F7DF91CF911F910F910E
|
||||
:1008A0000895EF92FF920F931F93CF93DF937C01F4
|
||||
:1008B000EC01C851DF4F888191E0980F9883F701D0
|
||||
:1008C000E80FF11D41835FEF540F442309F467C023
|
||||
:1008D000FB0120E041E9BF013191888191E0980F4F
|
||||
:1008E00098838701080F111DD80111963C93DB01F5
|
||||
:1008F0008C912827822F842720FD282F30E03595E2
|
||||
:100900002795842F822720FD282F30E035952795C5
|
||||
:10091000842F822720FD282F30E035952795842FBE
|
||||
:10092000822720FD282F30E035952795842F8227B8
|
||||
:1009300020FD282F30E035952795942F922720FD14
|
||||
:10094000292F30E035952795942F922720FD292FC8
|
||||
:1009500030E035952795842F822720FD282F269576
|
||||
:10096000515008F0B8CF888191E0980F9883F70133
|
||||
:10097000E80FF11D2183F701E951FF4F808191E0DC
|
||||
:10098000980F9083D701A80FB11DA953BF4F8C9129
|
||||
:10099000DF91CF911F910F91FF90EF90089520E08C
|
||||
:1009A000E2CFFC01E951FF4F208131E0320F30836B
|
||||
:1009B000820F911DFC01E953FF4F80810895FC01D6
|
||||
:1009C000E951FF4F208131E0320F3083DC01A20F6B
|
||||
:1009D000B11DA953BF4F2C91308141E0430F40839B
|
||||
:1009E000830F911DFC01E953FF4F3081822F90E06E
|
||||
:1009F000932B0895CF93DF93DC01EC01CB53DF4FB2
|
||||
:100A0000888199818230910509F467C0B0F400971C
|
||||
:100A100009F440C0019759F48C91FD01E80FF11DD4
|
||||
:100A2000EF57FF4F608382E090E0998388838C9139
|
||||
:100A30008F5F8C93DF91CF9108958330910509F4F6
|
||||
:100A4000D3C00497A1F78091C6008FE792E0019789
|
||||
:100A5000F1F700C000008091C00087FDF4CFFD01D8
|
||||
:100A6000EC53FF4F8081882309F435C19EEFFD01CF
|
||||
:100A7000E851FF4F808121E0280F2083FD01E80F1E
|
||||
:100A8000F11D9183198218828C918F5F8C93DF9175
|
||||
:100A9000CF910895613408F420C18091C6008FE79A
|
||||
:100AA00092E00197F1F700C000008091C00087FD3F
|
||||
:100AB000F4CFFD01E851FF4F808191E0980F9083C2
|
||||
:100AC000FD01E80FF11D8EEF8183198218828C9150
|
||||
:100AD0008F5F8C93DF91CF9108958C91FD01E80F8A
|
||||
:100AE000F11DEF57FF4F6083FD01EC53FF4F8081F5
|
||||
:100AF00068276083808180FF04C0908181E9892715
|
||||
:100B00008083808190E0959587958083808180FFA8
|
||||
:100B100004C0908181E989278083808190E0959548
|
||||
:100B200087958083808180FF04C0908181E9892737
|
||||
:100B30008083808190E0959587958083808180FF78
|
||||
:100B400004C0908181E989278083808190E0959518
|
||||
:100B500087958083808180FF04C0908181E9892707
|
||||
:100B60008083808190E0959587958083808180FF48
|
||||
:100B700004C0908181E989278083808190E09595E8
|
||||
:100B800087958083808180FF04C0908181E98927D7
|
||||
:100B90008083808190E0959587958083808180FF18
|
||||
:100BA00004C0908181E989278083808190E09595B8
|
||||
:100BB000879580839C91FD01EF57FF4F80819817A7
|
||||
:100BC00009F498C09C918081981708F430CF8091E7
|
||||
:100BD000C6008FE792E00197F1F700C00000809116
|
||||
:100BE000C00087FDF4CF65CF8C91FD01E80FF11DAA
|
||||
:100BF000EF57FF4F6083FD01EC53FF4F8081682763
|
||||
:100C00006083808180FF04C0908181E9892780838F
|
||||
:100C1000808190E0959587958083808180FF04C0D6
|
||||
:100C2000908181E989278083808190E095958795DF
|
||||
:100C30008083808180FF04C0908181E9892780833F
|
||||
:100C4000808190E0959587958083808180FF04C0A6
|
||||
:100C5000908181E989278083808190E095958795AF
|
||||
:100C60008083808180FF04C0908181E9892780830F
|
||||
:100C7000808190E0959587958083808180FF04C076
|
||||
:100C8000908181E989278083808190E0959587957F
|
||||
:100C90008083808180FF04C0908181E989278083DF
|
||||
:100CA000808190E0959587958083808180FF04C046
|
||||
:100CB000908181E989278083808190E0959587954F
|
||||
:100CC000808384E090E0998388838C918F5F8C93FC
|
||||
:100CD000DF91CF9108959FEFCACEFD01EF57FF4FEF
|
||||
:100CE0006083ED5BFF4F10821C9281E090E099835E
|
||||
:100CF00088839DCE83E090E09983888398CECF92BD
|
||||
:100D0000DF92FF920F931F93CF93DF93FC01E95182
|
||||
:100D1000FF4F9C0128513F4F6901D1E9640F711DBC
|
||||
:100D2000AEEFFA2E208131E0320F3083AC01420F5A
|
||||
:100D3000511D9A0129533F4FD9011C91103809F4D4
|
||||
:100D400073C0113408F010E0C0E020E0308141E0D1
|
||||
:100D5000430F4083AC01430F511DDA01A953BF4F2C
|
||||
:100D60000C91202720FD2D2730E035952795422F27
|
||||
:100D700020FF02C04D2F4227242F30E035952795C4
|
||||
:100D8000422F20FF02C04D2F422750E05595479536
|
||||
:100D9000242F40FF02C02D2F242730E035952795C2
|
||||
:100DA000422F20FF02C04D2F422750E05595479516
|
||||
:100DB000242F40FF02C02D2F242730E035952795A2
|
||||
:100DC000422F20FF02C04D2F422750E055954795F6
|
||||
:100DD000242F40FF02C02D2F24272695C11780F114
|
||||
:100DE000CF5F1C1708F0B2CF3091C600AFE7B2E07A
|
||||
:100DF0001197F1F700C000003091C00037FDF4CF2B
|
||||
:100E0000211112C0F601208131E0320F3083FC0144
|
||||
:100E1000E20FF11D2FEF2183DF91CF911F910F91F1
|
||||
:100E2000FF90DF90CF900895D6012C9131E0320FE2
|
||||
:100E30003C93AC01420F511DDA011196FC9272CF26
|
||||
:100E4000AB014C0F511DDA010C93CACFCF9381E750
|
||||
:100E500091E00E94BB0381E791E00E94D104C82F7A
|
||||
:100E60006FEF81E791E00E940A046C2F81E791E027
|
||||
:100E70000E940A0481E791E0CF910C94C70381E7B7
|
||||
:100E800091E00E94BB0363E081E791E00E940A04C5
|
||||
:100E90004CE062E271E081E791E00E942B0449E0BE
|
||||
:100EA00069E171E081E791E00E942B044CE06DE084
|
||||
:100EB00071E081E791E00E942B046FEF81E791E000
|
||||
:100EC0000E940A0481E791E00C94C70381E791E056
|
||||
:100ED0000E94BB0381E791E00E94DF04BC01660F22
|
||||
:100EE000771F680F791F81E791E00E94160481E760
|
||||
:100EF00091E00C94C70381E791E00E94BB0381E776
|
||||
:100F000091E00E94D104682F89E092E00E94940150
|
||||
:100F10006FEF81E791E00E940A0481E791E00C9471
|
||||
:100F2000C70381E791E00E94BB0381E791E00E9443
|
||||
:100F3000D104682F86E092E00E9494016FEF81E770
|
||||
:100F400091E00E940A0481E791E00C94C70381E7D5
|
||||
:100F500091E00E94BB0389E092E00E94F901682FB2
|
||||
:100F600081E791E00E940A0481E791E00C94C703B5
|
||||
:100F700081E791E00E94BB0386E092E00E94F901C4
|
||||
:100F8000682F81E791E00E940A0481E791E00C94C8
|
||||
:100F9000C70381E791E00E94BB0381E791E00E94D3
|
||||
:100FA000DF04BC0180E092E00E9421026FEF81E744
|
||||
:100FB00091E00E940A0481E791E00C94C70381E765
|
||||
:100FC00091E00E94BB0381E791E00E94DF04BC0135
|
||||
:100FD0008DEF91E00E9421026FEF81E791E00E9486
|
||||
:100FE0000A0481E791E00C94C70381E791E00E9435
|
||||
:100FF000BB0381E791E00E94D104682F8CEF91E060
|
||||
:101000000E945002BC0181E791E00E94160481E732
|
||||
:1010100091E00C94C7038F929F92AF92BF92CF92B0
|
||||
:10102000DF92EF92FF920F931F93CF93DF9381E7AD
|
||||
:1010300091E00E94D104882E81E791E00E94D104C2
|
||||
:10104000982E81E791E00E94DF04EC0181E791E0B6
|
||||
:101050000E94DF045C0181E791E00E94DF04A89E0A
|
||||
:101060006001A99ED00CB89ED00C11246FEF86E0D1
|
||||
:1010700092E00E949401CC15DD050CF5BE0180E0E4
|
||||
:1010800092E00E942102A895682D8CEF91E00E94C9
|
||||
:1010900050027C01692D8CEF91E00E9450028C017E
|
||||
:1010A000B70181E791E00E941604B80181E791E061
|
||||
:1010B0000E941604CA0DDB1DCC15DD05FCF26FEF96
|
||||
:1010C00081E791E0DF91CF911F910F91FF90EF9019
|
||||
:1010D000DF90CF90BF90AF909F908F900C940A04B8
|
||||
:1010E0001F920F920FB60F9211240BB60F922F93EF
|
||||
:1010F0003F934F935F936F937F938F939F93AF93A0
|
||||
:10110000BF93EF93FF9381E791E00E946603FF9105
|
||||
:10111000EF91BF91AF919F918F917F916F915F916F
|
||||
:101120004F913F912F910F900BBE0F900FBE0F90DC
|
||||
:101130001F9018951F920F920FB60F9211240BB6A5
|
||||
:101140000F922F933F934F935F936F937F938F9360
|
||||
:101150009F93AF93BF93EF93FF9381E791E00E943A
|
||||
:101160008703FF91EF91BF91AF919F918F917F91F5
|
||||
:101170006F915F914F913F912F910F900BBE0F9008
|
||||
:101180000FBE0F901F9018950E94D1006FEF89E05D
|
||||
:1011900092E00E9494012FE78AE196E0215080407E
|
||||
:1011A0009040E1F700C0000060E089E092E00E941A
|
||||
:1011B00094018FE493EC0197F1F700C00000F9CFA0
|
||||
:1011C0008CE092E00E940E0142E06CE072E089E067
|
||||
:1011D00092E00E944D0143E06CE072E086E092E014
|
||||
:1011E0000E944D0145E06CE072E083E092E00E94D5
|
||||
:1011F0004D0140E06CE072E080E092E00E941C0251
|
||||
:1012000041E06CE072E08DEF91E00E941C021092D0
|
||||
:1012100071011092B7011092B6010895EE0FFF1FF1
|
||||
:101220000024001C0BBE0790F691E02D0994F89461
|
||||
:02123000FFCFEE
|
||||
:1012320001020103000202010103030209626F615C
|
||||
:101242007264696E666F2E680031353A33323A3213
|
||||
:0E1252003500417072202032203230313900D8
|
||||
:00000001FF
|
||||
|
|
|
@ -13,7 +13,7 @@ HEX = B15F.hex
|
|||
MCU = atmega1284p
|
||||
CFLAGS = -Wall -Wextra -std=c++14 -O3 -mmcu=$(MCU) -DF_CPU=20000000
|
||||
LDFLAGS =
|
||||
OBJECTS = main.o spi.o mcp23s17.o tlc5615.o adu.o selftest.o global_vars.o usart.o requests.o
|
||||
OBJECTS = main.o spi.o mcp23s17.o tlc5615.o adu.o selftest.o global_vars.o usart.o requests.o interrupts.o
|
||||
|
||||
|
||||
COMPILE = $(COMPILER_PATH) $(CFLAGS)
|
||||
|
@ -33,7 +33,7 @@ clean:
|
|||
@echo "Cleaning..."
|
||||
rm -f $(OBJECTS) $(OUTPUT) $(HEX)
|
||||
|
||||
upload:
|
||||
upload: B15F
|
||||
avrdude -Pusb -p $(MCU) -c avrispmkII -U flash:w:$(HEX)
|
||||
|
||||
.cpp.o:
|
||||
|
|
|
@ -15,10 +15,4 @@ extern volatile TLC5615 dac1;
|
|||
extern volatile ADU adu;
|
||||
extern volatile USART usart;
|
||||
|
||||
extern volatile uint8_t receive_buffer[32];
|
||||
extern volatile uint8_t receive_pos;
|
||||
extern volatile uint8_t send_buffer[32];
|
||||
extern volatile uint8_t send_pos;
|
||||
extern volatile uint8_t send_len;
|
||||
extern volatile bool send_active;
|
||||
#endif // GLOBAL_VARS_H
|
||||
|
|
12
firmware/interrupts.cpp
Normal file
12
firmware/interrupts.cpp
Normal file
|
@ -0,0 +1,12 @@
|
|||
#include <avr/interrupt.h>
|
||||
#include "global_vars.h"
|
||||
|
||||
ISR(USART0_RX_vect)
|
||||
{
|
||||
usart.handleRX();
|
||||
}
|
||||
|
||||
ISR(USART0_TX_vect)
|
||||
{
|
||||
usart.handleTX();
|
||||
}
|
|
@ -9,46 +9,8 @@
|
|||
|
||||
#define WDT_TIMEOUT WDTO_1S
|
||||
|
||||
uint8_t const rq_len[] = {
|
||||
/* RQ_DISC */ 1,
|
||||
/* RQ_TEST */ 2,
|
||||
/* RQ_INFO */ 1,
|
||||
/* RQ_INT */ 3,
|
||||
/* [ reserved ] */ 0,
|
||||
/* RQ_BA0 */ 2,
|
||||
/* RQ_BA1 */ 2,
|
||||
/* RQ_BE0 */ 1,
|
||||
/* RQ_BE1 */ 1,
|
||||
/* RQ_AA0 */ 3,
|
||||
/* RQ_AA1 */ 3,
|
||||
/* RQ_ADC */ 2,
|
||||
/* RQ_ADC_DAC_STROKE */ 9
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void handleRequest(void);
|
||||
|
||||
ISR(USART0_RX_vect)
|
||||
{
|
||||
receive_buffer[receive_pos] = UDR0;
|
||||
receive_pos++;
|
||||
|
||||
if(receive_pos == rq_len[receive_buffer[0]]) // last byte
|
||||
{
|
||||
receive_pos = 0;
|
||||
handleRequest();
|
||||
}
|
||||
}
|
||||
|
||||
ISR(USART0_TX_vect)
|
||||
{
|
||||
if(send_pos < send_len)
|
||||
UDR0 = send_buffer[send_pos++];
|
||||
}
|
||||
|
||||
void initAll()
|
||||
{
|
||||
((SPI*) &spi)->init();
|
||||
|
@ -60,7 +22,8 @@ void initAll()
|
|||
((MCP23S17*) &sw)->setDirB(0xFF); // alle Eingang
|
||||
|
||||
((ADU*) &adu)->init();
|
||||
((USART*) &usart)->init();
|
||||
usart.init(&handleRequest);
|
||||
usart.initRX();
|
||||
|
||||
// aktiviere Interrupts
|
||||
sei();
|
||||
|
@ -72,17 +35,14 @@ void initAll()
|
|||
}
|
||||
|
||||
void handleRequest()
|
||||
{
|
||||
wdt_disable();
|
||||
|
||||
const uint8_t req = ((USART*) &usart)->readByte();
|
||||
send_pos = 0;
|
||||
|
||||
{
|
||||
// starte WDT
|
||||
wdt_enable(WDT_TIMEOUT);
|
||||
wdt_reset();
|
||||
|
||||
//((MCP23S17*) &beba0)->writePortA(receive_buffer[0]);
|
||||
const uint8_t req = usart.readByte();
|
||||
((MCP23S17*) &beba1)->writePortA(req);
|
||||
|
||||
switch(req)
|
||||
{
|
||||
case RQ_DISC:
|
||||
|
@ -135,34 +95,24 @@ void handleRequest()
|
|||
default:
|
||||
break;
|
||||
}
|
||||
//((MCP23S17*) &beba1)->writePortA(0x00);
|
||||
|
||||
receive_pos = 0;
|
||||
|
||||
usart.initRX();
|
||||
|
||||
wdt_disable();
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
initAll();
|
||||
|
||||
|
||||
// Reset anzeigen
|
||||
((MCP23S17*) &beba0)->writePortA(0xFF);
|
||||
_delay_ms(100);
|
||||
((MCP23S17*) &beba0)->writePortA(0x00);
|
||||
|
||||
uint8_t n = 0;
|
||||
uint8_t block[16];
|
||||
while(1)
|
||||
{
|
||||
//testAll();
|
||||
_delay_ms(1);
|
||||
}
|
||||
|
||||
while(1)
|
||||
{
|
||||
handleRequest();
|
||||
_delay_ms(10);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -2,106 +2,107 @@
|
|||
|
||||
void rqTestConnection()
|
||||
{
|
||||
uint8_t dummy = ((USART*) &usart)->readByte();
|
||||
((USART*) &usart)->writeByte(USART::MSG_OK);
|
||||
((USART*) &usart)->writeByte(dummy);
|
||||
((USART*) &usart)->write();
|
||||
usart.initTX();
|
||||
uint8_t dummy = usart.readByte();
|
||||
usart.writeByte(USART::MSG_OK);
|
||||
usart.writeByte(dummy);
|
||||
usart.flush();
|
||||
}
|
||||
|
||||
void rqBoardInfo()
|
||||
{
|
||||
((USART*) &usart)->writeByte(3); // Anzahl an Strings
|
||||
((USART*) &usart)->write();
|
||||
|
||||
send_pos = 0;
|
||||
((USART*) &usart)->writeStr(DATE, sizeof(DATE));
|
||||
((USART*) &usart)->write();
|
||||
|
||||
send_pos = 0;
|
||||
((USART*) &usart)->writeStr(TIME, sizeof(TIME));
|
||||
((USART*) &usart)->write();
|
||||
|
||||
send_pos = 0;
|
||||
((USART*) &usart)->writeStr(FSRC, sizeof(FSRC));
|
||||
((USART*) &usart)->writeByte(USART::MSG_OK);
|
||||
((USART*) &usart)->write();
|
||||
usart.initTX();
|
||||
usart.writeByte(3); // Anzahl an Strings
|
||||
usart.writeStr(DATE, sizeof(DATE));
|
||||
usart.writeStr(TIME, sizeof(TIME));
|
||||
usart.writeStr(FSRC, sizeof(FSRC));
|
||||
usart.writeByte(USART::MSG_OK);
|
||||
usart.flush();
|
||||
}
|
||||
|
||||
void rqTestIntConv()
|
||||
{
|
||||
uint16_t d = ((USART*) &usart)->readInt();
|
||||
((USART*) &usart)->writeInt(d * 3);
|
||||
((USART*) &usart)->write();
|
||||
usart.initTX();
|
||||
uint16_t d = usart.readInt();
|
||||
usart.writeInt(d * 3);
|
||||
usart.flush();
|
||||
}
|
||||
|
||||
void rqDigitalWrite0()
|
||||
{
|
||||
uint8_t port = ((USART*) &usart)->readByte();
|
||||
usart.initTX();
|
||||
uint8_t port = usart.readByte();
|
||||
((MCP23S17*) &beba0)->writePortA(port);
|
||||
|
||||
((USART*) &usart)->writeByte(USART::MSG_OK);
|
||||
((USART*) &usart)->write();
|
||||
usart.writeByte(USART::MSG_OK);
|
||||
usart.flush();
|
||||
}
|
||||
|
||||
void rqDigitalWrite1()
|
||||
{
|
||||
uint8_t port = ((USART*) &usart)->readByte();
|
||||
usart.initTX();
|
||||
uint8_t port = usart.readByte();
|
||||
((MCP23S17*) &beba1)->writePortA(port);
|
||||
|
||||
((USART*) &usart)->writeByte(USART::MSG_OK);
|
||||
((USART*) &usart)->write();
|
||||
usart.writeByte(USART::MSG_OK);
|
||||
usart.flush();
|
||||
}
|
||||
|
||||
void rqDigitalRead0()
|
||||
{
|
||||
usart.initTX();
|
||||
uint8_t port = ((MCP23S17*) &beba0)->readPortB();
|
||||
((USART*) &usart)->writeByte(port);
|
||||
((USART*) &usart)->write();
|
||||
usart.writeByte(port);
|
||||
usart.flush();
|
||||
}
|
||||
|
||||
void rqDigitalRead1()
|
||||
{
|
||||
usart.initTX();
|
||||
uint8_t port = ((MCP23S17*) &beba1)->readPortB();
|
||||
((USART*) &usart)->writeByte(port);
|
||||
((USART*) &usart)->write();
|
||||
usart.writeByte(port);
|
||||
usart.flush();
|
||||
}
|
||||
|
||||
void rqAnalogWrite0()
|
||||
{
|
||||
uint16_t value = ((USART*) &usart)->readInt();
|
||||
usart.initTX();
|
||||
uint16_t value = usart.readInt();
|
||||
((TLC5615*) &dac0)->setValue(value);
|
||||
|
||||
((USART*) &usart)->writeByte(USART::MSG_OK);
|
||||
((USART*) &usart)->write();
|
||||
usart.writeByte(USART::MSG_OK);
|
||||
usart.flush();
|
||||
}
|
||||
|
||||
void rqAnalogWrite1()
|
||||
{
|
||||
uint16_t value = ((USART*) &usart)->readInt();
|
||||
usart.initTX();
|
||||
uint16_t value = usart.readInt();
|
||||
((TLC5615*) &dac1)->setValue(value);
|
||||
|
||||
((USART*) &usart)->writeByte(USART::MSG_OK);
|
||||
((USART*) &usart)->write();
|
||||
usart.writeByte(USART::MSG_OK);
|
||||
usart.flush();
|
||||
}
|
||||
|
||||
void rqAnalogRead()
|
||||
{
|
||||
uint8_t channel = ((USART*) &usart)->readByte();
|
||||
usart.initTX();
|
||||
uint8_t channel = usart.readByte();
|
||||
uint16_t value = ((ADU*) &adu)->getValue(channel);
|
||||
((USART*) &usart)->writeInt(value);
|
||||
((USART*) &usart)->write();
|
||||
usart.writeInt(value);
|
||||
usart.flush();
|
||||
}
|
||||
|
||||
void rqAdcDacStroke()
|
||||
{
|
||||
uint8_t channel_a = ((USART*) &usart)->readByte();
|
||||
uint8_t channel_b = ((USART*) &usart)->readByte();
|
||||
uint8_t channel_a = usart.readByte();
|
||||
uint8_t channel_b = usart.readByte();
|
||||
|
||||
int16_t start = static_cast<int16_t>(((USART*) &usart)->readInt());
|
||||
int16_t delta = static_cast<int16_t>(((USART*) &usart)->readInt());
|
||||
int16_t count = static_cast<int16_t>(((USART*) &usart)->readInt());
|
||||
int16_t start = static_cast<int16_t>(usart.readInt());
|
||||
int16_t delta = static_cast<int16_t>(usart.readInt());
|
||||
int16_t count = static_cast<int16_t>(usart.readInt());
|
||||
|
||||
//((USART*) &usart)->writeByte(USART::MSG_OK);
|
||||
//usart.writeByte(USART::MSG_OK);
|
||||
|
||||
count *= delta;
|
||||
((MCP23S17*) &beba1)->writePortA(0xFF);
|
||||
|
@ -113,8 +114,8 @@ void rqAdcDacStroke()
|
|||
|
||||
uint16_t val_a = ((ADU*) &adu)->getValue(channel_a);
|
||||
uint16_t val_b = ((ADU*) &adu)->getValue(channel_b);
|
||||
((USART*) &usart)->writeInt(val_a);
|
||||
((USART*) &usart)->writeInt(val_b);
|
||||
usart.writeInt(val_a);
|
||||
usart.writeInt(val_b);
|
||||
|
||||
/*union doubleword
|
||||
{
|
||||
|
@ -130,12 +131,12 @@ void rqAdcDacStroke()
|
|||
do
|
||||
{
|
||||
wdt_reset();
|
||||
ret = ((USART*) &usart)->writeBlock(&(dw.byte[0]), 4);
|
||||
ret = usart.writeBlock(&(dw.byte[0]), 4);
|
||||
|
||||
if(ret == 0)
|
||||
return;
|
||||
} while(ret != USART::MSG_OK);*/
|
||||
}
|
||||
|
||||
((USART*) &usart)->writeByte(USART::MSG_OK);
|
||||
usart.writeByte(USART::MSG_OK);
|
||||
}
|
||||
|
|
|
@ -18,6 +18,22 @@ constexpr static uint8_t RQ_AA1 = 10;
|
|||
constexpr static uint8_t RQ_ADC = 11;
|
||||
constexpr static uint8_t RQ_ADC_DAC_STROKE = 12;
|
||||
|
||||
uint8_t const rq_len[] = {
|
||||
/* RQ_DISC */ 1,
|
||||
/* RQ_TEST */ 2,
|
||||
/* RQ_INFO */ 1,
|
||||
/* RQ_INT */ 3,
|
||||
/* [ reserved ] */ 0,
|
||||
/* RQ_BA0 */ 2,
|
||||
/* RQ_BA1 */ 2,
|
||||
/* RQ_BE0 */ 1,
|
||||
/* RQ_BE1 */ 1,
|
||||
/* RQ_AA0 */ 3,
|
||||
/* RQ_AA1 */ 3,
|
||||
/* RQ_ADC */ 2,
|
||||
/* RQ_ADC_DAC_STROKE */ 9
|
||||
};
|
||||
|
||||
void rqTestConnection(void);
|
||||
void rqBoardInfo(void);
|
||||
void rqTestIntConv(void);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "TLC5615.h"
|
||||
#include "tlc5615.h"
|
||||
|
||||
TLC5615::TLC5615(SPI& spi, uint8_t adr) : spi(spi), adr(adr)
|
||||
{
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#include "usart.h"
|
||||
|
||||
void USART::init()
|
||||
handler_t USART::receive_handler = nullptr;
|
||||
|
||||
void USART::init(handler_t handler) volatile
|
||||
{
|
||||
UCSR0A = _BV(U2X0);
|
||||
|
||||
|
@ -13,9 +15,11 @@ void USART::init()
|
|||
UBRR0H = (((F_CPU / (8UL * BAUDRATE))-1) >> 8) & 0xFF;
|
||||
UBRR0L = ((F_CPU / (8UL * BAUDRATE))-1) & 0xFF;
|
||||
|
||||
receive_handler = handler;
|
||||
send_active = false;
|
||||
}
|
||||
|
||||
void USART::clearInputBuffer()
|
||||
void USART::clearInputBuffer() volatile
|
||||
{
|
||||
uint8_t dummy;
|
||||
do
|
||||
|
@ -29,35 +33,77 @@ void USART::clearInputBuffer()
|
|||
return;
|
||||
}
|
||||
|
||||
void USART::write(void)
|
||||
void USART::handleRX(void) volatile
|
||||
{
|
||||
send_len = send_pos;
|
||||
send_pos = 0;
|
||||
while (!(UCSR0A & (1<<UDRE0)));
|
||||
UDR0 = send_buffer[send_pos++];
|
||||
receive_buffer[receive_pos] = UDR0;
|
||||
receive_pos++;
|
||||
|
||||
if(receive_pos >= rq_len[receive_buffer[0]]) // last byte
|
||||
{
|
||||
receive_pos = 0;
|
||||
receive_handler();
|
||||
}
|
||||
}
|
||||
|
||||
void USART::writeByte(uint8_t b)
|
||||
void USART::handleTX(void) volatile
|
||||
{
|
||||
((MCP23S17*) &beba0)->writePortA(send_pos);
|
||||
if(send_pos < send_len)
|
||||
{
|
||||
while (!(UCSR0A & (1<<UDRE0)));
|
||||
UDR0 = send_buffer[send_pos++];
|
||||
}
|
||||
else
|
||||
{
|
||||
send_active = false;
|
||||
}
|
||||
}
|
||||
|
||||
void USART::initRX(void) volatile
|
||||
{
|
||||
receive_pos = 0;
|
||||
}
|
||||
|
||||
void USART::initTX(void) volatile
|
||||
{
|
||||
while(send_active);
|
||||
|
||||
send_pos = 0;
|
||||
}
|
||||
|
||||
void USART::flush(void) volatile
|
||||
{
|
||||
if(send_pos == 0)
|
||||
return;
|
||||
|
||||
send_len = send_pos;
|
||||
send_pos = 0;
|
||||
send_active = true;
|
||||
|
||||
handleTX();
|
||||
}
|
||||
|
||||
void USART::writeByte(uint8_t b) volatile
|
||||
{
|
||||
send_buffer[send_pos++] = b;
|
||||
}
|
||||
|
||||
|
||||
void USART::writeInt(uint16_t v)
|
||||
void USART::writeInt(uint16_t v) volatile
|
||||
{
|
||||
writeByte(v & 0xFF);
|
||||
v >>= 8;
|
||||
writeByte(v & 0xFF);
|
||||
}
|
||||
|
||||
void USART::writeStr(const char* str, uint8_t len)
|
||||
void USART::writeStr(const char* str, uint8_t len) volatile
|
||||
{
|
||||
writeByte(len);
|
||||
while(len--)
|
||||
writeByte(*str++);
|
||||
}
|
||||
|
||||
uint8_t USART::writeBlock(uint8_t* ptr, uint8_t len)
|
||||
uint8_t USART::writeBlock(uint8_t* ptr, uint8_t len) volatile
|
||||
{
|
||||
writeByte(len);
|
||||
|
||||
|
@ -79,19 +125,19 @@ uint8_t USART::writeBlock(uint8_t* ptr, uint8_t len)
|
|||
return readByte();
|
||||
}
|
||||
|
||||
uint8_t USART::readByte()
|
||||
uint8_t USART::readByte() volatile
|
||||
{
|
||||
return receive_buffer[receive_pos++];
|
||||
}
|
||||
|
||||
uint16_t USART::readInt()
|
||||
uint16_t USART::readInt() volatile
|
||||
{
|
||||
uint16_t v = readByte();
|
||||
v |= readByte() << 8;
|
||||
return v;
|
||||
}
|
||||
|
||||
void USART::nextByte(uint8_t byte)
|
||||
void USART::nextByte(uint8_t byte) volatile
|
||||
{
|
||||
switch(seq)
|
||||
{
|
||||
|
@ -164,7 +210,7 @@ void USART::nextByte(uint8_t byte)
|
|||
block_pos++;
|
||||
}
|
||||
|
||||
void USART::readBlock(uint8_t* ptr, uint8_t offset)
|
||||
void USART::readBlock(uint8_t* ptr, uint8_t offset) volatile
|
||||
{
|
||||
ptr += offset;
|
||||
uint8_t crc = 0x7F;
|
||||
|
|
|
@ -4,13 +4,14 @@
|
|||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#include <stdint.h>
|
||||
#include <avr/interrupt.h>
|
||||
|
||||
class USART;
|
||||
#include "global_vars.h"
|
||||
#include "requests.h"
|
||||
|
||||
|
||||
extern volatile uint8_t receive_buffer[32];
|
||||
extern volatile uint8_t receive_pos;
|
||||
extern volatile uint8_t send_buffer[32];
|
||||
extern volatile uint8_t send_pos;
|
||||
extern volatile uint8_t send_len;
|
||||
typedef void (*handler_t)(void);
|
||||
|
||||
enum BlockSequence
|
||||
{
|
||||
|
@ -23,38 +24,57 @@ enum BlockSequence
|
|||
|
||||
class USART
|
||||
{
|
||||
public:
|
||||
void init(void);
|
||||
void clearInputBuffer(void);
|
||||
public:
|
||||
|
||||
void init(handler_t handler) volatile;
|
||||
void clearInputBuffer(void) volatile;
|
||||
|
||||
void writeByte(uint8_t);
|
||||
void writeInt(uint16_t);
|
||||
void writeLong(uint32_t);
|
||||
void writeStr(const char*, uint8_t);
|
||||
void writeByte(uint8_t) volatile;
|
||||
void writeInt(uint16_t) volatile;
|
||||
void writeStr(const char*, uint8_t) volatile;
|
||||
|
||||
uint8_t writeBlock(uint8_t*, uint8_t);
|
||||
uint8_t readByte(void);
|
||||
uint16_t readInt(void);
|
||||
uint32_t readLong(void);
|
||||
void write(void);
|
||||
uint8_t readByte(void) volatile;
|
||||
uint16_t readInt(void) volatile;
|
||||
|
||||
// NEU
|
||||
void handleRX(void) volatile;
|
||||
void handleTX(void) volatile;
|
||||
|
||||
void initRX(void) volatile;
|
||||
void initTX(void) volatile;
|
||||
void flush(void) volatile;
|
||||
|
||||
void nextByte(uint8_t byte);
|
||||
void readBlock(uint8_t*, uint8_t);
|
||||
// Blockgedöns
|
||||
void nextByte(uint8_t byte) volatile;
|
||||
uint8_t writeBlock(uint8_t*, uint8_t) volatile;
|
||||
void readBlock(uint8_t*, uint8_t) volatile;
|
||||
|
||||
constexpr static uint8_t MSG_OK = 0xFF;
|
||||
constexpr static uint8_t MSG_FAIL = 0xFE;
|
||||
|
||||
uint8_t block_pos = 0;
|
||||
|
||||
|
||||
|
||||
// constants
|
||||
constexpr static uint32_t BAUDRATE = 115200; // 38400
|
||||
constexpr static uint8_t CRC7_POLY = 0x91;
|
||||
constexpr static uint8_t MAX_BLOCK_SIZE = 64;
|
||||
constexpr static uint8_t BLOCK_END = 0x80;
|
||||
|
||||
volatile uint8_t send_buffer[128];
|
||||
private:
|
||||
static handler_t receive_handler;
|
||||
uint8_t block_buffer[MAX_BLOCK_SIZE + 3]; // don't store BLOCK_END byte
|
||||
uint8_t crc;
|
||||
|
||||
BlockSequence seq = BlockSequence::IDLE;
|
||||
|
||||
volatile uint8_t receive_buffer[32];
|
||||
volatile uint8_t receive_pos;
|
||||
volatile uint8_t send_pos;
|
||||
volatile uint8_t send_len;
|
||||
volatile bool send_active;
|
||||
};
|
||||
|
||||
#endif // USART_H
|
||||
|
|
Loading…
Reference in a new issue