Subversion Repositories MK3Mag

Compare Revisions

Ignore whitespace Rev 3 → Rev 2

/trunk/Compass_V0_4.hex
0,0 → 1,394
:100000000C945A000C9475000C9475000C947500B7
:100010000C9475000C9475000C9475000C9475008C
:100020000C9475000C9475000C9475000C9475007C
:100030000C9475000C9475000C9475000C9475006C
:100040000C94A9070C9475000C94F9040C94750099
:100050000C9429040C9475000C9475000C94750094
:100060000C945E080C947500083B3BD74ABC846E28
:10007000023D2FC1FEBD9A31743DDA3D83BE117F32
:10008000C73E4CBBE5BEAAAA6C3F80000000082911
:10009000573F9F2D49CBA5310F76C73493F27E375A
:1000A000D00D013AB60B613D2AAAAB3F0000003FDC
:1000B0008000000011241FBECFEFD4E0DEBFCDBF13
:1000C00013E0A0E0B1E0EEE6F6E102C005900D928B
:1000D000AA31B107D9F714E0AAE1B3E001C01D923B
:1000E000A636B107E1F70C940A030C94000096B50C
:1000F000980F86B5891B87FDFCCF0895EF92FF927C
:100100000F931F934091410350914203440F551F99
:1001100080914D0390914E0320913F033091400315
:10012000821B930B23E0E22EF12C840F951FB70165
:100130000E94100B8B017093420360934103209146
:10014000550330915603220F331F80914503909140
:10015000460340913D0350913E03841B950B820F53
:10016000931FB7010E94100BFB017093560360931D
:1001700055032091490330914A03220F331F809188
:100180005703909158034091590350915A03841B8F
:10019000950B820F931FB7010E94100B9B01709368
:1001A0004A036093490380914B0390914C03081BD1
:1001B000190B1093520300935103809147039091C0
:1001C0004803E81BF90BF0935403E0935303809129
:1001D000430390914403281B390B30935003209321
:1001E0004F031F910F91FF90EF9008952F923F9230
:1001F0004F925F926F927F928F929F92AF92BF9237
:10020000CF92DF92EF92FF920F931F93CF93DF93E2
:10021000CDB7DEB72E970FB6F894DEBF0FBECDBFB9
:100220008091CF039091D003AA2797FDA095BA2F74
:10023000BC01CD010E949609DC01CB012BED3FE012
:1002400049E450E4BC01CD010E94AC0ADC01CB01C1
:1002500020E030E044E353E4BC01CD010E943309C7
:100260005B016C018091D1039091D203AA2797FD85
:10027000A095BA2FBC01CD010E949609DC01CB01EB
:100280002BED3FE049E450E4BC01CD010E94AC0AF3
:10029000DC01CB0120E030E044E353E4BC01CD01BC
:1002A0000E94330969837A838B839C8380915103F5
:1002B00090915203AA2797FDA095BA2FBC01CD01BA
:1002C0000E9496097B018C01809153039091540305
:1002D000AA2797FDA095BA2FBC01CD010E949609CF
:1002E0006D837E838F83988780914F039091500315
:1002F000909581959F4FAA2797FDA095BA2FBC0195
:10030000CD010E94960969877A878B879C87C601F1
:10031000B5010E942D09DC01CB019C01AD01C80192
:10032000B7010E94AC0A3B014C01C601B5010E9415
:10033000F40A5B016C019B01AC016D817E818F81B0
:1003400098850E94AC0A7B018C0169817A818B813E
:100350009C810E94F40A1B012C019B01AC01C80185
:10036000B7010E94AC0ADC01CB019C01AD01C401C4
:10037000B3010E94BC083B014C01A60195016985AF
:100380007A858B859C850E94AC0A7B018C016981F2
:100390007A818B819C810E942D095B016C019B01FC
:1003A000AC01C801B7010E94AC0ADC01CB019C0181
:1003B000AD01C401B3010E94BB083B014C01A60181
:1003C00095016D817E818F8198850E94AC0A7B01A9
:1003D0008C01A201910169857A858B859C850E949B
:1003E000AC0ADC01CB019C01AD01C801B7010E9440
:1003F000BC087B018C0120E030E040E050E0C4010B
:10040000B3010E94B309882369F420E030E040E0A2
:1004100050E0C801B7010E94B30988231CF48AE5A3
:1004200090E0C8C020E030E040E050E0C401B301FB
:100430000E94B309882379F420E030E040E050E0E6
:10044000C801B7010E94B60918162CF4EEE0F1E0DD
:10045000FE87ED87B1C020E030E040E050E0C4010D
:10046000B3010E94B30988234CF5A4019301C8018C
:10047000B7010E943309DC01CB01BC01CD010E9410
:10048000FE08DC01CB0120E030E044E353E4BC0192
:10049000CD010E94AC0ADC01CB012BED3FE049E429
:1004A00050E4BC01CD010E943309DC01CB019C0169
:1004B000AD0160E070E084E393E472C020E030E0DE
:1004C00040E050E0C401B3010E94B60918165CF583
:1004D00020E030E040E050E0C801B7010E94B309DD
:1004E00088230CF5A4019301C801B7010E943309C8
:1004F000DC01CB01BC01CD010E94FE08DC01CB0177
:1005000020E030E044E353E4BC01CD010E94AC0A9A
:10051000DC01CB012BED3FE049E450ECBC01CD0107
:100520000E9433093FC020E030E040E050E0C401C9
:10053000B3010E94B60918160CF03EC020E030E06E
:1005400040E050E0C801B7010E94B6091816A4F5B2
:10055000A4019301C801B7010E943309DC01CB015A
:10056000BC01CD010E94FE08DC01CB0120E030E09F
:1005700044E353E4BC01CD010E94AC0ADC01CB0191
:100580002BED3FE049E450E4BC01CD010E9433096A
:10059000DC01CB019C01AD0160E070E084EB93E4F1
:1005A0000E94BB08DC01CB01BC01CD010E9479098E
:1005B000DC01CB019E878D878D859E85E1E08936A4
:1005C0009E0724F490936104809360048D859E853A
:1005D00090935D0380935C030A9690931C03809331
:1005E0001B032E960FB6F894DEBF0FBECDBFDF9172
:1005F000CF911F910F91FF90EF90DF90CF90BF9020
:10060000AF909F908F907F906F905F904F903F90B2
:100610002F900895CFEFD4E0DEBFCDBF88E087B93B
:1006200088B984EF8AB980EA8BB984E084B985E31C
:1006300085B95F9A0E947A060E9408080E943608CF
:10064000789484E690E00E9415089093C303809309
:10065000C20380E50E9458082091100130911101D9
:100660008091120190911301280F391F809114017C
:1006700090911501280F391F809116019091170153
:10068000280F391F37FF02C02D5F3F4F3595279543
:100690003595279530934C0320934B032091080107
:1006A0003091090180910A0190910B01280F391FA7
:1006B00080910C0190910D01280F391F80910E013E
:1006C00090910F01280F391F37FF02C02D5F3F4F58
:1006D0003595279535952795309348032093470303
:1006E000209100013091010180910201909103015C
:1006F000280F391F8091040190910501280F391F9F
:100700008091060190910701280F391F37FF02C021
:100710002D5F3F4F359527953595279530934403A9
:10072000209343031092C50383E08093C60387E0C0
:100730008093C7035F9A8BB18F798BB982E090E089
:100740000E94290880E00E94430890934E03809302
:100750004D0381E00E944308909358038093570310
:1007600087E00E944308909346038093450381E00D
:1007700090E00E9429085F988BB180668BB982E077
:1007800090E00E94290880E00E9443089093400373
:1007900080933F0381E00E94430890935A03809323
:1007A000590387E00E94430890933E0380933D03E2
:1007B00081E090E00E9429080E947E008091510310
:1007C0009091520390934504809344048091530385
:1007D00090915403909347048093460480914F0373
:1007E0009091500390934904809348048091410371
:1007F0009091420390934B0480934A048091550357
:100800009091560390934D0480934C04809149033A
:1008100090914A0390934F0480934E048091CF03AC
:100820009091D00390935104809350048091D10310
:100830009091D20390935304809352040E94F60047
:100840000E94B60683E680931A030E944007519ADD
:1008500071CF1F920F920FB60F9211248F939F9317
:10086000EF93FF93809118038823E1F4809129038B
:1008700090912A03019690932A0380932903FC0107
:10088000E25AFC4FE081ED3019F08436910539F4DD
:1008900010922A031092290381E080931803E093B9
:1008A000C60004C010922A0310922903FF91EF9111
:1008B0009F918F910F900FBE0F901F901895809170
:1008C000C00086FF29C080911803882309F5809114
:1008D0002B0390912C03019690932C0380932B0370
:1008E000FC01E25AFC4FE081ED3019F084369105AD
:1008F00039F410922C0310922B0381E0809318039B
:100900008091C00081608093C000E093C60008958C
:1009100010922C0310922B0308951F93CF93DF9313
:10092000EC0110E0662309F460C0A22FBB271297E8
:10093000E42FFF27E252FC4F30813D534F5FE42FFD
:10094000FF27E252FC4F50815D534F5FE42FFF279A
:10095000E252FC4F70817D534F5FE42FFF27E2523C
:10096000FC4FE081ED534F5F842F9927A817B907FB
:10097000E4F1832F9927880F991F880F991F352F2E
:1009800032953F70382B852F99278F70907054E0E7
:10099000880F991F5A95E1F7572F56955695582B62
:1009A000872F99278370907026E0880F991F2A95CA
:1009B000E1F78E2B61506F3FC1F0FE01E10FF11D99
:1009C00030831F5F61506F3F81F0FE01E10FF11D29
:1009D00050831F5F61506F3F41F0FE01E10FF11D39
:1009E00080831F5F662309F0A3CFDF91CF911F9112
:1009F00008951F920F920FB60F9211242F933F93D9
:100A00004F935F938F939F93AF93BF93CF93DF9356
:100A1000EF93FF938091C6008093270340913103A9
:100A2000443610F010923203509127035D3009F0E4
:100A30004DC080913203823009F048C010923203D9
:100A4000A42FBB27A252BC4FFD0132978081209179
:100A50002D0330912E03281B3109ED012197888148
:100A6000281B3109C9019F7090932E0380932D0399
:100A7000689415F8969587951694E1F7982F935CEE
:100A800090932F032F733070235C20933003808169
:100A9000981709F06AC08881281709F066C081E0BC
:100AA0008093260340931D035C938091E00382357D
:100AB00009F05BC088E190E02CE00FB6F894A895AF
:100AC000809360000FBE209360004FC020913203DE
:100AD000822F992781309105F9F0823091051CF41D
:100AE000892B21F040C0029711F13DC0809127036E
:100AF000833239F480912603882319F481E08093AE
:100B00003203809127038093DE0381E080933103D9
:100B100080912703992722C02F5F20933203E42F6F
:100B2000FF27E252FC4F80912703808309C0E42F06
:100B3000FF27E252FC4F809127038083443620F444
:100B40004F5F4093310302C010923203209127037C
:100B500080912D0390912E03820F911D90932E036F
:100B600080932D0302C010923203FF91EF91DF9129
:100B7000CF91BF91AF919F918F915F914F913F9195
:100B80002F910F900FBE0F901F901895AC01A0E011
:100B9000B0E09D01A817B90748F4EEE5F3E08191B4
:100BA000280F311D1196A417B507C8F33F70FD013A
:100BB000E25AFC4FC90176E0969587957A95E1F760
:100BC000835C80831196FD01E25AFC4F2F733070D5
:100BD000822F835C8083A15ABC4F8DE08C9310924E
:100BE000180380915E038093C60008951F93CF93EE
:100BF000DF93382FEA01722F10E083E280935E03C7
:100C000060935F0330936003A3E0B0E0772309F4BF
:100C100058C0772311F4972F07C0FE01E10FF11D93
:100C20001F5F9081715011F4472F0EC0FE01E10F3C
:100C3000F11D1F5F4081715039F0FE01E10FF11D80
:100C40001F5F6081715001C0672FFD01E25AFC4FA8
:100C5000892F86958695835C80831196FD01E25AE3
:100C6000FC4F892F99278370907024E0880F991F7B
:100C70002A95E1F755279A0194E0369527959A959C
:100C8000E1F7822B835C80831196FD01E25AFC4FD1
:100C90004F705070440F551F440F551F862F9927D2
:100CA00026E0969587952A95E1F7842B835C8083CF
:100CB0001196FD01E25AFC4F6F73635C60831196DD
:100CC000A5CFCD010E94C605DF91CF911F91089558
:100CD000CF93C82F8A3019F48DE00E946806809166
:100CE000C00085FFFCCFC093C60080E090E0CF91AC
:100CF0000895089588E18093C1008091C0008260CA
:100D00008093C0008091C10080688093C100809171
:100D1000C10080648093C10080E18093C40088ECAE
:100D200090E00E9415089093C3038093C2038AE069
:100D30000E94680683E40E94680680E50E946806B7
:100D40008AE30E94680686E50E94680680E30E94A6
:100D500068068EE20E94680680E30E94680684E3CB
:100D60000E9468068AE00E94680608951F93CF9348
:100D7000DF93CDB7DEB722970FB6F894DEBF0FBE74
:100D8000CDBF80912603882309F470C01FEF109314
:100D9000C4038091E00399278736910509F45CC06C
:100DA000883691056CF48136910509F449C0813685
:100DB00091050CF459C0843691050CF055C025C03E
:100DC00086379105C9F1873791052CF4883691054E
:100DD00009F448C049C08737910509F045C0209102
:100DE0001D0343E064E08FEC93E00E948D0480914A
:100DF000620490916304019690936304809362046B
:100E000081E0809322035F9A2FC020911D0343E06D
:100E10006BE083ED93E00E948D048091DB039927C2
:100E20009093D0038093CF038091DC039927909314
:100E3000D2038093D10318C081E08093250312C0B0
:100E400020911D0343E062E0CE0101960E948D04D3
:100E500089818093240306C010931A0381E0809354
:100E6000230302C010931A031092260322960FB692
:100E7000F894DEBF0FBECDBFDF91CF911F910895D3
:100E80008091C2039091C3030E941E088823A1F0A1
:100E900080911803882381F022E242E454E06091BB
:100EA0005B0384E40E94F6058AEF90E00E94150837
:100EB0009093C3038093C20380912503882371F02C
:100EC00080911803882351F02AE045EC53E06091AB
:100ED0005B0386E50E94F6051092250360912403CA
:100EE0006F3F91F0862F992734E0880F991F3A952C
:100EF000E1F7885E9E4F605D20E1AC0181E40E94D5
:100F0000F6058FEF8093240380912303882371F0EB
:100F100080911803882351F02BE043ED53E060915A
:100F20005B0387E40E94F60510922303809122035D
:100F3000882371F080911803882351F022E04CE55A
:100F400053E060915B038BE40E94F605109222034C
:100F500008951F920F920FB60F9211242F933F9373
:100F60008F939F9386B5815686BD809164048F5F71
:100F70008093640420913A0330913B032F5F3F4FED
:100F800030933B0320933A0381E02C37380731F448
:100F90002A9A10923B0310923A0308C080911B03D7
:100FA00090911C032817390709F42A988091390376
:100FB000815080933903882311F58AE080933903A7
:100FC0008091370390913803019690933803809372
:100FD00037038091350390913603009729F00197EC
:100FE00090933603809335038091330390913403BB
:100FF000009729F0019790933403809333039F91D6
:101000008F913F912F910F900FBE0F901F901895C9
:1010100082E085BD80916E00816080936E0080913A
:101020006E00806480936E000895209137033091A4
:101030003803280F391FC9010197089520913703FC
:1010400030913803821B930B892F99278078992739
:101050000895CF93DF930E941508EC01CE010E9402
:101060001E088823D9F3DF91CF91089510927C0058
:1010700087E880937A0010927C0080917A008064E7
:1010800080937A00089580937C0080917A0080613B
:1010900080937A0080917A00806480937A008091B6
:1010A0007A0084FFFCCF80917800909179000895B8
:1010B0008093BA0085EC8093BC0008951F920F9234
:1010C0000FB60F9211248F939F938091B9009927A7
:1010D000887F907080389105F9F08138910534F45B
:1010E0000097D1F18036910579F03BC0883B91059E
:1010F000F1F0893B910524F4883A9105C1F031C0A3
:10110000883F910521F12DC08091BC0080688093BB
:10111000BC0010923C0328C08091BB008093650402
:1011200084EF91E090933603809335030CC0809157
:101130003C03882331F48093BB008F5F80933C0392
:1011400002C01092BB008091BC0080680BC08091EF
:10115000BC0080698093BC008091BC008069809352
:10116000BC0085EC8093BC009F918F910F900FBEC7
:101170000F901F9018955058192E90D101D040C152
:10118000BA176207730784079507B1F188F40EF464
:1011900010940B2EBA2FA02D062E622F202D072E75
:1011A000732F302D082E842F402D092E952F502D72
:1011B000FF275523B9F0591B49F0573E98F0469543
:1011C00037952795A795F0405395C9F776F0BA0F54
:1011D000621F731F841F30F4879577956795B795C5
:1011E000F040939517FA0F2E0895BF1BBB27BA0B3B
:1011F000620B730B840BF6CFDEF67CC11F930F934B
:101200000027192F10789F775FE340E86130710560
:101210008407950718F000680E94F309912B6F93DB
:101220007F938F939F930E94070BE8E6F0E003D132
:101230005F914F913F912F910E94AC0A002351F092
:101240002BED3FE049EC5FE300E8902717FD506885
:101250000E94BC080F911F91089550E449EC3FE0B3
:101260002BED6ED0A2C01AD101D0CAC0552359F0BF
:10127000992369F09F575F57951B33F442F49038D8
:1012800011F4915805C0D4C091589F3F09F432C160
:10129000BB27112462177307840730F4660F771F8A
:1012A000881FBB1F915098F311D00F920FD00F924F
:1012B0000DD0A0E82617370748071B0609F0A048FD
:1012C000BA2F602D7F918F9100240895A0E800240B
:1012D000621773078407B10528F0621B730B840B38
:1012E000B1090A2A660F771F881FBB1FA69581F7D1
:1012F000089597FBDFD09F3738F0FEE9F91B982F50
:10130000872F762F6B2F05C0F2C09695879577951E
:101310006795F150D0F73EF4909580957095619562
:101320007F4F8F4F9F4F0895E89403C097FB0EF4B3
:10133000F3DFB62F672F782F892F9EE9002460C036
:101340005F77552319F444230AF072C02F933F931B
:101350004F935F9388DF55274427CED05F914F91FD
:101360003F912F91F9C00ED05EF004C00BD026F053
:1013700001C008D019F020F48FEF089580E008959F
:1013800081E0089597FB092E052600F8689489D01E
:10139000E89407FC07C0621773078407950721F0DC
:1013A00008F400940794989408951F939F7750EC45
:1013B00049E43FE02BEDE0DE10E89F775FE349EC86
:1013C0003FE02BED621773078407950720F050EC80
:1013D00049E4D2DE11271BD19068EEE8F0E02BD073
:1013E00091271F9108959B01AC019FE380E8772727
:1013F00066270C9433099A95BB0F661F771F881FC9
:1014000011249923A1F08823B2F79F3F59F0BB0F15
:1014100048F421F4002011F460FF04C06F5F7F4F97
:101420008F4F9F4F881F9795879597F908955FC0B5
:101430009FEF80EC0895FF92EF92DF92CF92BF92E0
:101440006B017C01B59016D0B590BB2069F09F93DD
:101450008F937F936F93B601C7010CD02F913F916B
:101460004F915F910E943309BF90CF90DF90EF9032
:10147000FF900895D0D002C09601A701EF93FF938B
:101480000E94AC0AFF91EF91C6D0EF93FF930E94A8
:10149000BC08FF91EF91BA9479F70895052E0926BB
:1014A00007FA440F551F5F3F79F0AA27A51708F0E8
:1014B00051E04795880F991F9F3F31F0BB27B9171F
:1014C00008F091E0879508959F919F911124B0CFE6
:1014D00097FB880F991F9F3F31F0BB27B91708F082
:1014E00091E0879508959F919F911124A1CF662740
:1014F0007727882799270895EBDFCF93DF93D52FA0
:10150000C42F55274427332722279923D9F09F3703
:10151000C8F0F92F75DF592F482F372F262FF639AE
:1015200068F4E7DE03DFC030CD0721F069937993DB
:10153000899399939058DF91CF911ECE9927882750
:1015400077276627C030CD0721F029933993499337
:101550005993DF91CF9154CFA1DF01D051CF99237F
:1015600039F0552329F09F575F57950F13F49AF1DF
:10157000C1CF91589F3FE1F3629FA12D0F92BB27EE
:10158000639FA00DB11DEE27729FA00DB11DEE1F30
:10159000AF93AA27649FB00DE11D739FB00DE11DAD
:1015A000AA1F6627829FB00DE11DA61F5527749FB5
:1015B000E00DA11D551F839FE00DA11D561F849FA7
:1015C000A00D511D852F7A2F6E2F1F900F9088230D
:1015D0001AF4939539F42CCF000C111CBB1F661F15
:1015E000771F881F012808959F939F77993358F09C
:1015F00050E449EC3FE02BEDA3DE5FEB49EC3FE02C
:101600002BEDBADDD2DE5F915078952708959B01CE
:10161000AC010C94AC0A55914591359125910895F2
:1016200097FB092E07260AD077FD04D00CD006D0F0
:1016300000201AF4709561957F4F0895F6F7909504
:1016400081959F4F0895AA1BBB1B51E107C0AA1F9C
:10165000BB1FA617B70710F0A61BB70B881F991F53
:0E1660005A95A9F780959095BC01CD0108958B
:10166E00DEFEE8FE2C002100FBFF1AFF4200F60012
:10167E004B004CFF48FE5AFF4D61676E6574204E5D
:10168E0020202020202020204D61676E657420527E
:10169E0020202020202020204D61676E6574205A66
:1016AE002020202020202020526F68202020204E35
:1016BE002020202020202020526F68202020205221
:1016CE002020202020202020526F68202020205A09
:1016DE0020202020202020204C616765204E2020D5
:1016EE0020202020202020204C61676520522020C1
:1016FE0020202020202020202020202020202020DC
:10170E0020202020202020205370616E6E756E6781
:10171E002020202020202020456D7066616E6720DD
:10172E002020202020202020416E616C6F673131F7
:10173E0020202020202020204D6F746F725F566F66
:10174E00726E6520202020204D6F746F725F486985
:10175E006E74656E202020204B616F6D7061737307
:10176E0020202020202020204D6F746F725F526544
:10177E0063687473202020204163635F5A20202009
:10178E0020202020202020204D697474656C416338
:10179E00634E69636B2020204D697474656C4163E0
:1017AE0063526F6C6C202020496E74656772616C99
:1017BE004572724E69636B20496E74656772616C17
:1017CE00457272526F6C6C204D697474656C496E03
:1017DE00744E69636B2020204D697474656C496E7C
:1017EE0074526F6C6C2020204E65757472616C4E55
:1017FE0069636B2020202020526F6C6C4F666673DD
:10180E006574202020202020496E74526F6C6C2A43
:10181E0046616B746F722020416E616C6F67323659
:10182E002020202020202020446972656B74417591
:10183E0073676C526F6C6C204D6573737765727441
:10184E00526F6C6C20202020417573676C65696344
:10185E0068526F6C6C202020492D4C616765526F69
:10186E006C6C202020202020537469636B526F6CA7
:0A187E006C20202020202020010013
:00000001FF
/trunk/main.c
15,7 → 15,6
signed int MagnetN,MagnetR,MagnetZ; // Kalibrierte Messerte
unsigned int PwmHeading = 0;
unsigned char PC_Connected = 0;
int Heading;
#include "main.h"
 
 
76,7 → 75,7
// if (FromFlightCtrl.IntegralNick > 0) heading = heading + FromFlightCtrl.IntegralNick/60;
if(heading < 361) DebugOut.Analog[14] = heading;
Heading = heading;
AnFlightCtrl.Heading = heading;
PwmHeading = heading + 10;
// MicroMag.Heading = heading;
// DebugOut.Analog[14] = heading;
101,17 → 100,16
UART_Init();
Timer0_Init();
ADC_Init();
InitIC2_Slave();
sei();//Globale Interrupts Einschalten
Debug_Timer = SetDelay(100); // Sendeintervall
InitIC2_Slave(0x50);
 
OffsetN = (CalTabelleHorizontalN[0] + CalTabelleHorizontalN[1] + CalTabelleHorizontalN[2] + CalTabelleHorizontalN[3]) / 4;
OffsetR = (CalTabelleHorizontalR[0] + CalTabelleHorizontalR[1] + CalTabelleHorizontalR[2] + CalTabelleHorizontalR[3]) / 4;
OffsetZ = (CalTabelleHorizontalZ[0] + CalTabelleHorizontalZ[1] + CalTabelleHorizontalZ[2] + CalTabelleHorizontalZ[3]) / 4;
 
VersionInfo.Hauptversion = VERSION_HAUPTVERSION;
VersionInfo.Nebenversion = VERSION_NEBENVERSION;
VersionInfo.Hauptversion = 0;
VersionInfo.Nebenversion = 3;
VersionInfo.PCKompatibel = 7;
/trunk/main.h
57,8 → 57,6
 
extern unsigned int PwmHeading;
extern unsigned char PC_Connected;
extern int Heading;
extern signed int MagnetN,MagnetR,MagnetZ;
#endif //_MAIN_H
 
 
/trunk/makefile
3,7 → 3,7
MCU = atmega168
#-------------------------------------------------------------------
HAUPT_VERSION = 0
NEBEN_VERSION = 5
NEBEN_VERSION = 4
#-------------------------------------------------------------------
 
# Output format. (can be srec, ihex, binary)
/trunk/twislave.c
1,37 → 1,23
/*############################################################################
Slaveadr = 0x52 = Vorne, 0x54 = Hinten, 0x56 = Rechts, 0x58 = Links
############################################################################*/
 
#include <avr/io.h>
#include <util/twi.h>
#include "main.h"
 
unsigned char I2C_RxBufferSize, I2C_TxBufferSize;
unsigned char *I2C_TxBuffer, *I2C_RxBuffer;
unsigned char Tx_Idx=0, Rx_Idx=0, I2C_Direction;
unsigned char I2C_Command;
unsigned char Tx_Idx, Rx_Idx;
unsigned char I2C_RXBuffer;
unsigned char Byte_Counter=0;
 
struct str_I2C_Heading I2C_Heading;
struct str_I2C_WriteNickRoll I2C_WriteNickRoll;
struct str_I2C_Mag I2C_Mag;
struct str_I2C_EEPROM I2C_ReadEEPROM, I2C_WriteEEPROM;
struct str_I2C_Version I2C_Version;
 
 
 
//############################################################################
//I2C (TWI) Interface Init
void InitIC2_Slave(void)
void InitIC2_Slave(uint8_t adr)
//############################################################################
{
TWAR = I2C_SLAVE_ADDRESS; // Eigene Adresse setzen
TWAR = adr; // Eigene Adresse setzen
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE) | (1<<TWEA);
I2C_Version.Hauptversion = VersionInfo.Hauptversion;
I2C_Version.Nebenversion = VersionInfo.Nebenversion;
I2C_Version.Comp = 1;
}
#define TWCR_ACK TWCR = (1<<TWEN)|(1<<TWIE)|(1<<TWINT)|(1<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|(0<<TWWC)
 
//############################################################################
//ISR, die bei einem Ereignis auf dem Bus ausgelöst wird. Im Register TWSR befindet
//sich dann ein Statuscode, anhand dessen die Situation festgestellt werden kann.
41,85 → 27,40
switch (TWSR & 0xF8)
{
case SR_SLA_ACK:
//TWCR |= (1<<TWINT);
Rx_Idx = 0;
TWCR_ACK;
TWCR |= (1<<TWINT);
Byte_Counter=0;
return;
// Daten Empfangen
case SR_PREV_ACK:
if (Rx_Idx == 0)
{ I2C_Command = TWDR;
switch(I2C_Command)
{
case I2C_CMD_VERSION:
I2C_TxBuffer = (unsigned char *)&I2C_Version;
I2C_TxBufferSize = sizeof(I2C_Version);
I2C_RxBufferSize = 0;
break;
case I2C_CMD_WRITE_EEPROM:
I2C_TxBufferSize = 0;
I2C_RxBuffer = (unsigned char *)&I2C_WriteEEPROM;
I2C_RxBufferSize = sizeof(I2C_WriteEEPROM);
break;
case I2C_CMD_READ_EEPROM:
I2C_TxBuffer = (unsigned char *)&I2C_ReadEEPROM.Inhalt;
I2C_TxBufferSize = 2;
I2C_RxBuffer = (unsigned char *)&I2C_ReadEEPROM;
I2C_RxBufferSize = 1;
break;
case I2C_CMD_READ_MAG:
I2C_TxBuffer = (unsigned char *)&I2C_Mag;
I2C_TxBufferSize = sizeof(I2C_Mag);
I2C_RxBufferSize = 0;
I2C_Mag.MagX = MagnetN;
I2C_Mag.MagY = MagnetR;
I2C_Mag.MagZ = MagnetZ;
break;
case I2C_CMD_READ_HEADING:
I2C_TxBuffer = (unsigned char *)&I2C_Heading;
I2C_TxBufferSize = sizeof(I2C_Heading);
I2C_RxBuffer = (unsigned char *)&I2C_WriteNickRoll;
I2C_RxBufferSize = sizeof(I2C_WriteNickRoll);
I2C_Heading.Heading = Heading;
WinkelOut.Winkel[NICK] = I2C_WriteNickRoll.Nick;
WinkelOut.Winkel[ROLL] = I2C_WriteNickRoll.Roll;
break;
}
}
else
{
if (Rx_Idx < I2C_RxBufferSize) I2C_RxBuffer[Rx_Idx] = TWDR;
}
Rx_Idx++;
I2C_RXBuffer = TWDR;
I2C_Timeout = 500;
//TWCR |= (1<<TWINT);
TWCR_ACK;
TWCR |= (1<<TWINT);
return;
// Daten Senden
case SW_SLA_ACK:
Tx_Idx = 0;
if (I2C_TxBufferSize > 0) TWDR = I2C_TxBuffer[Tx_Idx++];
// TWCR |= (1<<TWINT) | (1<< TWEA);
TWCR_ACK;
if (Byte_Counter==0)
{
TWDR = 0;//Mittelstrom;
Byte_Counter++;
}
else
{
TWDR = 0;//MaxPWM;
}
TWCR |= (1<<TWINT);
return;
// Daten Senden
case SW_DATA_ACK:
if (Tx_Idx < I2C_TxBufferSize) TWDR = I2C_TxBuffer[Tx_Idx++];
else TWDR = 0x00;
//TWCR |= (1<<TWINT) | (1<< TWEA);
TWCR_ACK;
case SW_DATA_ACK:
if (Byte_Counter==0)
{
TWDR = 0;//Mittelstrom;
Byte_Counter++;
}
else
{
TWDR = 0;//MaxPWM;
}
TWCR |= (1<<TWINT);
return;
// Bus-Fehler zurücksetzen
case TWI_BUS_ERR_2:
/trunk/twislave.h
1,56 → 1,11
#ifndef _TWI_SLAVE_H_
#define _TWI_SLAVE_H_
 
#define I2C_SLAVE_ADDRESS 0x50
extern unsigned char I2C_RXBuffer;
extern unsigned char Byte_Counter;
 
#define I2C_CMD_VERSION 0x01
struct str_I2C_Version
{
unsigned char Hauptversion;
unsigned char Nebenversion;
unsigned char Comp;
} ;
extern void InitIC2_Slave (uint8_t adr);
 
#define I2C_CMD_WRITE_EEPROM 0x0A
#define I2C_CMD_READ_EEPROM 0x0B
struct str_I2C_EEPROM
{
unsigned char Adresse;
unsigned int Inhalt;
} ;
 
#define I2C_CMD_READ_MAG 0x02
struct str_I2C_Mag
{
int MagX;
int MagY;
int MagZ;
} ;
 
#define I2C_CMD_READ_HEADING 0x03
struct str_I2C_WriteNickRoll
{
int Nick;
int Roll;
} ;
 
struct str_I2C_Heading
{
unsigned int Heading;
} ;
 
 
extern unsigned char Tx_Idx, Rx_Idx, I2C_Direction;
 
extern struct str_I2C_Heading I2C_Heading;
extern struct str_I2C_WriteNickRoll I2C_WriteNickRoll;
extern struct str_I2C_Mag I2C_Mag;
extern struct str_I2C_EEPROM I2C_ReadEEPROM, I2C_WriteEEPROM;
extern struct str_I2C_Version I2C_Version;
 
 
extern void InitIC2_Slave (void);
 
#define TWI_BUS_ERR_1 0x00
#define TWI_BUS_ERR_2 0xF8
 
/trunk/uart.c
31,9 → 31,9
struct str_WinkelOut WinkelOut;
struct str_ExternControl ExternControl;
struct str_VersionInfo VersionInfo;
struct str_AnFlightCtrl AnFlightCtrl;
 
 
 
int Debug_Timer;
 
const unsigned char ANALOG_TEXT[32][16] =
420,7 → 420,7
}
if(KompassAntwort && UebertragungAbgeschlossen) // Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
{
SendOutData('K',MeineSlaveAdresse,(unsigned char *) &I2C_Heading,sizeof(I2C_Heading));
SendOutData('K',MeineSlaveAdresse,(unsigned char *) &AnFlightCtrl,sizeof(AnFlightCtrl));
KompassAntwort = 0;
}
}
/trunk/uart.h
24,9 → 24,12
signed int Winkel[2];
};
extern struct str_WinkelOut WinkelOut;
#define NICK 0
#define ROLL 1
 
struct str_AnFlightCtrl
{
int Heading;
};
extern struct str_AnFlightCtrl AnFlightCtrl;
 
struct str_ExternControl
{