更改内容:1、增加玄恒耳机芯片双向通讯协议;2、将部分参数配置移植到config.h;3、解决部分bug,包括电池复充、按键等相关功能;4、优化ADC相关算法。

This commit is contained in:
Alex xu 2025-01-08 19:36:31 +08:00
parent e95df26e70
commit 4179608ce4
26 changed files with 1684 additions and 951 deletions

Binary file not shown.

View File

@ -1,816 +0,0 @@
:030000000227468E
:10274600758E3075D20078FFE4F6D8FD9000007FD4
:10275600007E01E4F0A3DFFCDEFA7581A80227A162
:0F2E580053797374656D20496E69742E0D0A00ED
:102DED00122A507BFF7A2E7958120F5CD2AED2BECA
:082DFD00122864122C3E80F440
:101CC800010D000113000112000111000110004173
:101CD80000DA00020E00004200D400004200D800E2
:101CE800004200CD00004200CF00004200D60000B4
:0F1CF8004200D200004100D1004100DB00C14694
:102E050075FE0F43FF8075FE2975FFB575A5217504
:082E1500FE1E43FF01D2BD22A5
:1021D400AB0720460302230B9000D4E0FEA3E07873
:1021E40003CEC313CE13D8F9F0EE9000D4F09000D0
:1021F400D1E024FD603014606514700302229E2433
:10220400FE70030222D224056003022308780DE63F
:10221400FF3395E0FEC39000D5E09FFF9000D4E02B
:102224009E9000D8806E9000D4E0FEA3E0FF7C096D
:102234007DC412187D780A12181B9000D4EEF0A306
:10224400EFF07810E6FD3395E0FCC3EF9DFFEE9CC4
:10225400FE7C007D0512173A9000CDEE803690008A
:10226400D4E0FEA3E0FF7C097DC412187D780A1235
:10227400181B9000D4EEF0A3EFF07811E6FD33952F
:10228400E0FCC3EF9DFFEE9CFE7C007D0512173A37
:102294009000CFEEF0A3EFF0806A780DE6FF33955F
:1022A400E0FEC39000D5E09FFF9000D4E09EFE7C4A
:1022B400097DC412187D780A12181BEEF0A3EFF002
:1022C400E025E0FE9000D4E0339000D68032780D13
:1022D400E6FF3395E0FEC39000D5E09FFF9000D465
:1022E400E09EFE7C097DC412187D780A12181BEE4C
:1022F400F0A3EFF0E025E0FE9000D4E0339000D2AC
:10230400F0A3CEF0C246229000D1EBF0C454F044C6
:0F23140001F5A5E49000D4F0A3F09000DBF022D7
:03006B000228CD9B
:1028CD00C0E0C0F0C083C082C0D075D000C000C0D1
:1028DD0006C007E5F330E038AFA1780E760008A604
:1028ED0007E5A254031846F608E6F69000DBE0C3B0
:1028FD009408501718E6FE08E6FF9000D4EE8FF00E
:10290D0012178F9000DBE004F08005D24653A5FE30
:10291D0075F301D007D006D000D0D0D082D083D0AF
:04292D00F0D0E032D4
:051D0700C123011403DB
:102C700075FE8743FF2075FE7043FF1853B3F14381
:102C8000B301E47816F67818F67814E67817F67833
:102C90001976017916E718461846F5B175B2012282
:10205B00E4FE9000D8E0FCA3E0FDC394D8EC94031D
:10206B0040037F0022EF7003022174D3ED940FEC39
:10207B0094034003022152ED94CBEC9400500302E5
:10208B002152D3ED94AAEC94024022D2217814E68B
:10209B00FF137817F6302211D3ED94BFEC94024066
:1020AB0004C22280047817A607E4FE8070D3ED9457
:1020BB00AAEC94025043ED9437EC9401403BD222AE
:1020CB007814E6FF7817F6302113D3ED9493EC9444
:1020DB00025004C2218006EFC3137817F6781976E5
:1020EB0001301C11D3ED9451EC94015004C21C80AF
:1020FB0004E47819F6E4FE8024D3ED9437EC9401D4
:10210B00501BD21CE47819F6302210ED9426EC9477
:10211B00015004C222800478197601E4FE301F11AD
:10212B00C3ED94F3EC94025006C21FE4FE80027ED2
:10213B000130202FD3ED94DDEC94004006C220E457
:10214B00FE80207E01801CD3ED940FEC940340069F
:10215B00D21F7E01800DD3ED94CBEC94005004D2B2
:10216B00207E01C21DC21E8058C21FC220D3ED9417
:10217B009FEC94035031ED9471EC94004029301D89
:10218B0010ED9484EC94035006C21DE4FE80027E95
:10219B0001301E2DD3ED9482EC94004006C21EE458
:1021AB00FE801E7E01801AD3ED949FEC94034004B5
:1021BB00D21D800BC3ED9471EC94005002D21E7EA5
:0821CB00017819E6F5B2AF0638
:0121D30022E9
:10252500E5E65480FFE4FCFDFEEF700753B3FE784B
:1025350015F62278157601E5E830E50575E8208081
:102545000FE5E530E1028008E5F230E50775F22098
:1025550053B3FE22E5F2540C601353B3FEE5F35476
:10256500C070030225EF75F20C75F3C02275F3C038
:102575007F0112205BEF600653B3FED22322C223F4
:10258500E5F230E4247819E6246AFFE434FFFEC35B
:102595009000D7E09F9000D6E09E500575F2108020
:1025A5000353B3FE78157603227916E77818461893
:1025B50046F5B17819E6F5B243B311781BE6FFD3BA
:1025C50094014002C23DEFD394034002C239EFD3D8
:1025D50094074002C23BEFD3940C4002C23AEFD3BA
:0B25E50094114002C23C7815760222DF
:061D0C00C13EC13FC140D1
:10000E00303F10EFB4010475B5C02253B5BFED44B7
:04001E0080F5B52292
:102E4700E5B55480FFEF6008303F05E4F5B5C23FB4
:012E57002258
:1029F400C23FE5E520E154E5E230E703D24022E5B9
:102A0400E830E00D30254475E8017D3FE4FF020025
:102A14000EE4FF12205BEF6006122E47D23E22C264
:102A24003E303D03022E47D23F30401F7815E6B4B6
:102A34000219C39000D7E094109000D6E0940E40A1
:0C2A440005D23FC24022122E47C23F22A2
:081D1200C144C1454100F5FF89
:102CA000E5E25408FF9000F5E06F6021E5E230E3D3
:102CB000089000F47401F08005E49000F4F0D24430
:0D2CC000C210D245D2389000F5EFF0D24896
:012CCD0022E4
:101D1A00C132C131C130011C004100EC004100F068
:0E1D2A00004100EB004200ED00004100EF0020
:101E9B00E5E25402FFE4FCFDFEEF70319000ED75BE
:101EAB00F00112178F9000EDE0FEA3E0FFC3941733
:101EBB00EE94024004D230800EC3EF9487EE940070
:101ECB004005202F02D22FD22CC22D8040302C3631
:101EDB00D248E4781CF6C22CD22D9000EFF0900083
:101EEB00EDE0FEA3E0FFD3941EEE94005008D23237
:101EFB00D22ED238800EC3EF944FEE9401500530A2
:101F0B002F02D231C22FE49000EDF0A3F0302D66FA
:101F1B00303F6330312720100280287F03122AA71D
:101F2B009000EFE0D394235003022047C231781C7A
:101F3B007602E49000ECF0900071F0A3F0303029C1
:101F4B0020100A7D3FE4FF12000ED210227F0312F5
:101F5B002AA79000EFE0D394235003022047C2300E
:101F6B00E49000F0F0781C7603302E06C22E781C1D
:101F7B007601C22DC2109000F4E0640160030220D0
:101F8B005A781CE66402600302201B9000ECE0C34D
:101F9B00940150107D227F02122323E4900071F0F4
:101FAB00A3F080549000EBE0D394054003E4803918
:101FBB00900072E0B4010F7D117F03122323900078
:101FCB00727402F08032900072E06402702A90000A
:101FDB0071E0601D7D227F03122323E4900071F0DA
:101FEB00A3F09000ECF09000EBF0781CF6D211808F
:101FFB00597D117F021223239000ECE0D3941440FF
:10200B000A9000EBE004F0E4A3F0229000EC802CAB
:10201B00781CE6640370389000F0E0FFC394B45072
:10202B001FEF540F70047D22800A9000F0E05407DC
:10203B0070077D117F041223239000F0E004F0223F
:0F204B00E4781CF6D2119000F0F07F04122AA75F
:01205A002263
:101D3800410079004100780041007A0041007700B5
:102D1D0075FE0675FF3C75FE0E53FF0F75FE0F53C6
:102D2D00FFF075FE0375FFFFC282C283C285C284A8
:012D3D002273
:102DB900EF14600D14600D14600D2403700BD282A2
:0A2DC90022D28322D28422D2852276
:052D5E00900000E0FF01
:102D6300EF14600D14600D14600D2403700BC28208
:0A2D730022C28322C28422C28522FC
:10299400E4FF747B2FF582E43400F583E4F0747F64
:1029A4002FF582E43400F583E4F0EF25E02483F589
:1029B40082E43400F583E4F0A3F0EF25E0248BF502
:1029C40082E43400F583E4F0A3F0EF25E02493F5EA
:1029D40082E43400F583E4F0A3F0EF25E0249BF5D2
:0F29E40082E43400F583E4F0A3F00FEFB404A312
:0129F30022C1
:10293100AC07747B2CF582E43400F583EDF0EAC337
:1029410013FEEB13FFEC25E02483F582E43400F55C
:1029510083EEF0A3EFF0AF03EC25E0248BF582E4E6
:102961003400F583EAF0A3EFF0900005E0FEA3E068
:10297100FFEC25E02493F582E43400F583EEF0A327
:10298100EFF0EC25E0249BF582E43400F583E4F0DC
:03299100A3F0228E
:102BD000747B2FF582E43400F583EDF0747F2FF5DC
:102BE00082E43400F583EBF0EF25E02483F582E402
:102BF0003400F583E4F0A37469F0EF25E0249BF53D
:0B2C000082E43400F583E4F0A3F0222E
:100B8400E4900000F0F0900000E0FFC39404400300
:100B9400020EC6747B2FF582E43400F583E06022F4
:100BA40024FE6024147003020C8E147003020D05DD
:100BB40024036003020E62900000E0FF122DB902CC
:100BC4000E62122D5E020E62900000E0FF25E0240A
:100BD40083F582E43400F583E0FCA3E0FDEF25E037
:100BE400249BF582E43400F583E0FEA3E0C39DEE8C
:100BF4009C5005122DB98003122D5E900000E0FF79
:100C040025E0248BF582E43400F583E0FCA3E0FDC9
:100C1400EF25E0249BF582E43400F583E0FEA3E0B5
:100C2400C39DEE9C5003020E62900000E025E02478
:100C34009BF582E43400F583E4F0A3F0EF25E0248F
:100C440093F582E43400F583E0FEA3E0D39400EE50
:100C540094004016900000E025E02493F582E434EB
:100C640000F58374FFF5F012178F900000E0FF2564
:100C7400E02493F582E43400F583E0FCA3E04C60C7
:100C840003020E62747B2F020D21900000E0FF2509
:100C9400E02483F582E43400F583E0FCA3E0FDEF77
:100CA40025E0249BF582E43400F583E0FEA3E0D341
:100CB4009DEE9C5005122DB98003122D5E9000000C
:100CC400E0FF25E0248BF582E43400F583E0FCA307
:100CD400E0FDEF25E0249BF582E43400F583E0FE9B
:100CE400A3E0C39DEE9C5003020E62900000E02539
:100CF400E0249BF582E43400F583E4F0A3F0020ED3
:100D040062900000E0FF247FF582E43400F583E084
:100D14007017122B49C247900000E0247BF582E44F
:100D24003400F583E4F0020E62900000E0FF247FBB
:100D3400F582E43400F583E0FE6402704B2047142E
:100D4400D247EF25E02483F582E43400F583E4F010
:100D5400A37469F0900000E0FF25E02483F582E4A9
:100D64003400F583E475F00112178FEF25E0248336
:100D7400F582E43400F583E0FCA3E0C394FEEC9434
:100D8400005003020E4C804EEE6401705A20471747
:100D9400D247900000E025E02483F582E43400F596
:100DA40083E4F0A374FEF0900000E0FF25E02483C8
:100DB400F582E43400F58374FFF5F012178FEF2504
:100DC400E02483F582E43400F583E0FEA3E0D394C9
:100DD40069EE94005072900000E0247FF582E434C0
:100DE40000F583E4F08061900000E0FF247FF58249
:100DF400E43400F583E06403704EEF25E02483F5CA
:100E040082E43400F583E0FEA3E0FFC394FEEE9495
:100E1400004004D247800BD3EF946AEE9400500252
:100E2400C247900000E025E0248330470DF582E4BA
:100E34003400F58374FFF5F0800BF582E43400F59B
:100E440083E475F00112178F900000E0FF25E02481
:100E540083F582E43400F583A3E0FD122AF89000C0
:100E640000E0FF7011747B2FF582E43400F583E019
:100E7400900079F08043900000E0B40110247BF5E9
:100E840082E43400F583E0900078F0802C90000038
:100E9400E0B40210247BF582E43400F583E0900092
:100EA4007AF08015900000E0B4030E247BF582E410
:100EB4003400F583E0900077F0900000E004F00245
:100EC4000B8AE4900000F0900000E0FFC39404500B
:100ED4001BEF25E0249BF582E43400F583E475F0F0
:0C0EE4000112178F900000E004F080DB8A
:010EF00022DF
:0B1D48004200F100004100F30FC14811
:102CCE0075FE1E43FF0275FE2143FF0875D48775FE
:102CDE00FE2143FF0475FE2143FF02300F0775FEF0
:0C2CEE002453FFC32275FE2443FF3C2248
:10005600D2AC759A01D2B9D2BDD2A9D2AB75FE295E
:0400660043FFB02282
:10006E00C2ACE4F59AD2B9C2BDC2A9C2AB75FE2923
:04007E0053FF4F22BB
:092E9D0012006E43870202005688
:102E33007815E6D394015006201203304804C248A3
:042E4300C322D322B1
:102A500075FE01E4F5FF122DD3122E90122E75E4AF
:102A6000F58675B7C375FE6A75FF0475FE6C43FF86
:102A70000B122E0575FE8043FF0275FE0E53FFFC00
:102A800043FF0175FE1775FF3CD2A8D2AF122C7020
:102A90007D697F03122E1D122D1D122994122CCE3A
:072AA0009000E07401F02238
:03000300020006F2
:03000600D24832AB
:03004B00022EAED4
:062EAE0075EB3CD2483236
:03005300022EB4C6
:062EB40075F302D2483262
:101D530020402A00000000000000000000000000F6
:101D63000000000000000000000000000000000070
:101D73000000000000000000000000000000000060
:101D83000000000000000000000000000000000050
:0F1D9300000000C143C1424100F6004100F700CB
:0E2E6700900029EFF0122EA6900029E0FF2225
:082EA6002041FDD2418F992269
:102DD30075FE0E53FFF343FF04D2DF43878075BABA
:0A2DE3000375AAFD759852D2AC22C8
:03002300022E8327
:0D2E8300309904C299C241309802C29832C1
:0D2E900075BB03759DDC759B92439A012272
:062C0B0090004312184E78
:102C1100E4900046F0F0900046E0C39FE49E501C13
:102C21002042FDD242900043E475F00112183712A0
:0C2C3100169FF59C900046E004F080DA4D
:012C3D002274
:0300830002269DB5
:10269D00C0E0C083C082C0D075D000C000C005C0EE
:1026AD0006C007E59B30E105539BFDC242E59B301B
:1026BD00E076539BFED2489000F6E014601914604A
:1026CD003424027063E59C9000F6B455087401F053
:1026DD00A3E4F0800E8018E59C9000F6B4AA107467
:1026ED0002F0A3E0FF04F0742A2FF8A69C8039E4D1
:1026FD00F0A3F080339000F7E0FF04F0742A2FF878
:10270D00A69C782EE62406FFE433FEE0FDC39FEE83
:10271D006480F87480985005ED9440400B9000F75C
:10272D00E4F09000F6F0D243D007D006D005D000EB
:09273D00D0D0D082D083D0E0326C
:102441004177616B6520536F757263653A57505FD1
:10245100466C6167303A307825782C57505F466C6E
:102461006167313A307825782C57505F466C616747
:10247100333A307825782E286C696E653A256429BF
:102481000D0A00536C6565702053746174652028D2
:102491006C696E653A2564290D0A004348475F530C
:1024A10054413A25642C53545F564F583A3078259D
:1024B100782C535441303A307825782C535441319B
:1024C1003A307825782C535441323A307825782C9B
:1024D100535441333A307825782C535441343A30AF
:1024E1007825782E4465635F536C6565703A256481
:1024F1000D0A004465636E745F536C6565704465D5
:102501006C61792052656C6F61642E0D0A00456E15
:10251100746572205374616E646279204D6F6465D5
:04252100210D0A007E
:101DA2004300E00402024100DD004100DE00C138D0
:0E1DB200C1374100DF004100E3004100DC00CA
:10002600E4FB7D04FF122BD0E4FB7D047F01122B41
:10003600D0E4FB7D047F02122BD0E4FB7D047F031A
:03004600022BD0BA
:1007B100303859C238E49000DEF0781AF69000051E
:1007C100F0A3F0FBFAFDFF122931E4900005F0A33C
:1007D100F0FBFAFD7F01122931E4900005F0A3F04E
:1007E100FBFAFD7F02122931E4900005F0A3F0FB32
:1007F100FAFD7F031229319000797402F09000789C
:10080100F090007AF0900077F0D2482220230F2058
:100811003E0C200D030208C6300F030208C6203328
:1008210005D233D23822900079E06402601A900038
:1008310005E4F0A3740AF07B147A007D02E4FF1250
:1008410029319000797403F0900078E06402601A15
:10085100900005E4F0A3740AF07B147A007D027F16
:10086100011229319000787403F090007AE064025B
:10087100601A900005E4F0A3740AF07B147A007DFD
:10088100027F0212293190007A7403F0900077E020
:100891006402601A900005E4F0A3740AF07B147AF4
:1008A100007D027F031229319000777403F0200D3F
:1008B10003020B839000DEE0C394285003020A0177
:1008C100D20FD2382230330CC233C235C234C245C2
:1008D100C20ED2377815E6FF70030209DB6403709C
:1008E1005E203507D235C234020026E4900005F0BF
:1008F100A3F0FBFA7D01FF122931E4900005F0A37A
:10090100F0FBFA7D017F01122931E4900005F0A38B
:10091100F0FBFA7D017F02122931E4900005F0A37A
:10092100F0FBFA7D017F031229319000797401F007
:10093100900078F090007AF0900077F00209D220D0
:10094100340ED234C235D238E49000E3F00209D239
:100951009000DEE0C394015057E004F09000E3E022
:1009610014601A14602714603424037064900079B1
:10097100E06404605C7B017D04E4FF802E900078DC
:10098100E06404604C7B017D047F01801E90007A4D
:10099100E06404603C7B017D047F02800E9000775F
:1009A100E06404602C7B017D047F03122BD0802145
:1009B1009000DEE0C3940F5005E004F08013E49052
:1009C10000DEF09000E3E004F0E0C394044002E4B0
:1009D100F0C245C20EC232D2362230340AC23412BB
:1009E1000026D238D2372220450C203609200E06A7
:1009F100203203020B839000DEE0FFC39401500418
:100A0100E004F022EFC394644003020B2E9000DE59
:100A1100E004F0303B37900079E064037003020B8F
:100A210083E4900005F0A3F07B64FA7D03FF1229B3
:100A3100319000797404F0E4900005F0A3F0FBFA22
:100A4100FD7F011229319000787402802D303A41E6
:100A5100E4900005F0A3F0FBFA7D01FF122931902B
:100A610000797401F0E4900005F0A3F0FBFA7D0138
:100A71007F011229319000787401F0E4900005F0B3
:100A8100A3F0FBFAFD7F0212293190007A740280F3
:100A910043E4900005303C53F0A3F0FBFA7D01FFE5
:100AA1001229319000797401F0E4900005F0A3F06F
:100AB100FBFA7D017F011229319000787401F0E485
:100AC100900005F0A3F0FBFA7D017F02122931901D
:100AD100007A7401F0E4900005F0A3F0FBFAFD7FC9
:100AE100031229319000777402F022F0A3F0FBFA8F
:100AF1007D01FF122931E4900005F0A3F0FBFA7D9E
:100B0100017F01122931E4900005F0A3F0FBFA7D89
:100B1100017F02122931E4900005F0A3F0FBFA7D78
:100B2100017F0312293190007974018048C245C2C6
:100B310036C20EC232E4900005F0A3F0FBFAFDFFCD
:100B4100122931E4900005F0A3F0FBFAFD7F0112B8
:100B51002931E4900005F0A3F0FBFAFD7F02122990
:100B610031E4900005F0A3F0FBFAFD7F0312293177
:100B71009000797402F0900078F090007AF0900083
:020B810077F00B
:010B8300224F
:102D3E009000DAE0FF04F01221D49000DAE0B4063D
:102D4E000204F09000DAE0C3940840037402F0220B
:102D7D00122CA0121E9B1227E6302411C2241225FC
:0E2D8D00251229F41225F01207B11212562257
:1018BC00E4900000F09000E0E0FFA3E0FE6F700306
:1018CC00021960A3EEF09000E0E0A3F024FE603576
:1018DC0014606714606B24036003021ADF90000528
:1018EC00E4F0A37403F07B647A007D02E4FF122918
:1018FC0031900005E4F0A37403F07B647A007D0260
:10190C007F01022931300F09D24475E80CC20DC297
:10191C000F7BFF7A247941AFF6900004E4F0A3EF3B
:10192C00F0AFF8A3E4F0A3EFF0AFFAA3E4F0A3EF69
:10193C00F0A37402F0A3740680169000F3740FF0F9
:10194C00227BFF7A2479849000047402F0A3741E25
:10195C00F0021A669000E1E024FE60351460761403
:10196C007003021A7924036003021ADF9000DCE092
:10197C0004F0E0C394085003021ADF9000E07402F4
:10198C00F0E49000DCF0781BE66003021ADF021A28
:10199C0072E5F6700CE5F87008E5FA7004E5E160A4
:1019AC002D9000E07403F0E5F6540FFFE4FCFDFE0F
:1019BC007B08FAF9F8C312180A70069000E0740458
:1019CC00F075E11F75F60F75F8FC75FABC229000E6
:1019DC00E07403F022202803021ADFC22875FE6E81
:1019EC00900000E5FFF07BFF7A24799C7815E6FFE8
:1019FC00900004E4F0A3EFF0900000E0FF900006EC
:101A0C00E4F0A3EFF0AFE2A3E4F0A3EFF0AFE3A3B5
:101A1C00E4F0A3EFF0AFE4A3E4F0A3EFF0AFE5A3A1
:101A2C00E4F0A3EFF0AFE6A3E4F0A3EFF09000F343
:101A3C00E0FF900012E4F0A3EFF0120F5C9000F3C3
:101A4C00E0D394004017E014F0204803021ADFC2E0
:101A5C0048740FF07BFF7A2479F4020F5C7BFF7AD9
:101A6C0025790F120F5C9000E07404F022122E33D3
:101A7C00505B122CCE7F04122AA7122E47E4900042
:101A8C0005F0A3F0FBFAFDFF122931E4900005F0FC
:101A9C00A3F0FBFAFD7F01122931E4900005F0A3BD
:101AAC00F0FBFAFD7F02122931E4900005F0A3F05F
:101ABC00FBFAFD7F031229319000797402F090003B
:101ACC0078F090007AF0900077F0022E9D9000E074
:031ADC007402F0A1
:011ADF0022E4
:102C3E00302726C2279000DDE0FF04F0EF14600C71
:102C4E0014600E24027012122D3E800D122D7D8006
:102C5E00081218BCE49000DDF0302905C229120BD1
:022C6E008422BE
:101AE000426F7820436C6F73652E286C696E653A7F
:101AF0002564290D0A00426F78204F70656E2E28EC
:101B00006C696E653A2564290D0A004F70656E2F69
:101B1000436C6F736520426F782C45617270686FFB
:101B20006E657320496E20426F78284E756D3A2598
:101B3000642928566F785374613A30782578292EB5
:101B40000D0A004F70656E20426F7820434D44208F
:101B50005458204F7665722E0D0A004F70656E2026
:101B6000426F7820416E642045617270686F6E65C7
:101B700020476574496E284E756D3A2564292856AC
:101B80006F785374613A30782578292E0D0A004316
:101B90006C6F736520426F7820416E6420466F72CF
:101BA000636520566F6C746167652055702E0D0A51
:101BB00000564F5820566F7574203556285354419F
:101BC000313A307825782C6C696E653A2564292E77
:101BD0000D0A00564F58204348472046756C6C2E1E
:101BE0000D0A00564F582047657420496E746F20C7
:101BF000536C6565702E0D0A005258315F42756650
:101C00006665725B305D3A307825782C5258315FCA
:101C10004275666665725B315D3A307825782C5284
:101C200058315F4275666665725B325D3A30782581
:101C3000782C5258315F4275666665725B335D3A47
:101C4000307825782C5258315F4275666665725B34
:101C5000345D3A307825782C5258315F427566668B
:101C600065725B355D3A307825782C5258315F4289
:101C700075666665725B365D3A307825782C6C69DE
:101C80006E653A25640D0A000000000000000000A7
:101C90000000000000000000000000000000000044
:101CA0000000000000000000000000000000000034
:101CB0000000000000000000000000000000000024
:081CC00000000000000000001C
:101DC000C112C10EC110410073FFC10D42004D0090
:101DD0000042004B000042007100001A6A0000003F
:101DE00000000000000000000000000000000000F3
:101DF000000000000000002024840000000000001B
:101E000000000000000000000000000000000000D2
:101E10000000000000000000000000000000410081
:101E2000700042006E00004200740000C10FC1113A
:031E300001A80006
:102AA700EF24FE601E14602814602F24FE60352476
:102AB70005703D43BD8853BDBB75FE6F53FFF243A1
:102AC700FF092243BDCC75FE6F53FFFE43FF0C2267
:102AD70053BD7753B7CF43B7302253B7CF43B7036D
:102AE70053BD772253B7CC53BD7775FE6A43FF308A
:012AF70022BC
:10125600203F0302157030447A20100A7D3FE4FFD8
:1012660012000ED210227F03122AA7E490004AF041
:10127600900048F0A3F0C200C201D20B9000F4E047
:10128600702EC20ED202D203C205C208C204C2091F
:10129600C20AD212C23790006CF0A3F0900076F02A
:1012A6007BFF7A1A79E090000404F0A374E38017B8
:1012B600C202C203D205C2067BFF7A1A79F69000F3
:1012C600047401F0A374F0F0120F5CC210C20DC2D8
:1012D6000FC244900048E0C3940550030214FD3049
:1012E6000B05C20B0214B520004CD200E5E354A056
:1012F6006021E5E354A0FFE4FCFDFE7BA0FAF9F8CB
:10130600C312180A90007070057402F0800A740106
:10131600F08005E4900070F07BFF7A1B790B90005B
:1013260070E0FF900004E4F0A3EFF0AFE3A3E4F075
:10133600A3EFF0120F5C2005030213ED900049E0C5
:10134600C3940550077F06122AA7802720014490E0
:10135600004AE0FFD39414501FEF540370047D112C
:10136600800990004AE020E0077D227F01122323B6
:1013760090004AE004F0806F7F04122AA7E49000F0
:101386004AF0D201D211C2127BFF7A1B7943120FA7
:101396005C8054781CE6704F301104C2118040E521
:1013A600E354A0FBE4FAF9F8900047E0FFE4FCFD03
:1013B600FEC312180A6030E5E354A06004D20ED2D0
:1013C600387BFF7A1B795B900070E0FF900004E4A5
:1013D600F0A3EFF0AFE3A3E4F0A3EFF0120F5CE5A8
:1013E600E354A0900047F020020302156D30374801
:1013F6002010237D3FE4FF12000ED210D212E4909B
:10140600006CF0A3F0900076F0900048F0C208D28D
:101416000BC200D204227F03122AA77BFF7A1B7914
:101426008F120F5CC210D203900048E0D394035091
:10143600030214FDC237805020044D900049E0FF9E
:10144600D39414501DEF540370047D11800990004D
:1014560049E020E0077D227F0812232390004902FD
:1014660014FD90004AE0FFD39414501CEF5403700F
:10147600047D11800990004AE020E0077D227F026A
:1014860012232390004A806FE5E8540C6026200F53
:101496001E90004AE004F0E0C3940550030215A82C
:1014A600E4F075E80C7F03122AA7D20DC212227F40
:1014B60004022AA7C20DC20F3003257F03122AA7F2
:1014C6007BFF7A1B79B1AFE3900004E4F0A3EFF061
:1014D600A37403F0A37428F0120F5CC20302156D07
:1014E600200846E5E354AC64AC600330392A90002A
:1014F60048E0D394285004E004F0227BFF7A1B795D
:10150600D3120F5CD208E490004AF0900048F0C273
:10151600097F04122AA7804F90006DE070497B0175
:101526007A00794F120086803E90004AE0FFD394FD
:1015360014501FEF540370047D11800990004AE097
:1015460020E0077D227F0512232390004AE004F065
:101556008015200912D2097F04122AA7C2127BFF26
:101566007A1B79E3120F5CC2072220070BD2077F92
:1015760004122AA7C2128022E5E354A0FBE4FAF97A
:10158600F8900047E0FFE4FCFDFEC312180A601263
:10159600E5E354A06004D20ED238E5E354A09000EF
:0215A60047F00C
:0115A8002220
:0600860090000012184E6C
:10008C00900076E014700302016314700302023DC9
:10009C001470030202AE14700302041A24046003E9
:1000AC0002059A90000012182E90001E1216B860CD
:1000BC000302059A78A8E6D3940A50260690001AF3
:1000CC00743F121718300C0302059A900000121896
:1000DC002E90001A1216B8FDE4FF12000ED20C027C
:1000EC00059AE478A8F6C20C90000012182E900025
:1000FC0037E4121718900026E4121718900034E415
:10010C00121718900023E4121718900032E41217FB
:10011C0018900021E4121718900039E41217189067
:10012C000028E4121718900050E4F5F01217DD9037
:10013C00002EE4F5F01217DD900019E41217189058
:10014C00001B743F1217189000767401F0E49000B5
:10015C004DF0A3F002059AE5E35408FFE4FCEF60D0
:10016C001CE5E35404601690000012182E90001E3B
:10017C007401121718E4900076F002059AE5E35426
:10018C0008FFE4FCEF704A9000CFE0FEA3E0FF9084
:10019C00000012182E900044EE8FF01217DD7D0532
:1001AC0012173AEF7802C333CE33CED8F9FF900052
:1001BC000012182E900048EE8FF01217DD9000D030
:1001CC00E025E0FF9000CFE03390004C8FF0121749
:1001DC00DDE5E35404FFE4FCEF704A9000CDE0FE53
:1001EC00A3E0FF90000012182E900022EE8FF01268
:1001FC0017DD7D0512173AEF7802C333CE33CED814
:10020C00F9FF90000012182E900026EE8FF01217B6
:10021C00DD9000CEE025E0FF9000CDE03390002A89
:10022C008FF01217DD90000012182E90001D0205A1
:10023C008FD390004EE0940590004DE09400500256
:10024C00806FE490004DF0A3F0E5E35408FFEF70ED
:10025C001F9000CFE0FEA3E0FF90000012182E903C
:10026C000050EE8FF01217DD900039740112171840
:10027C00E5E35404FFE4FCEF701F9000CDE0FEA317
:10028C00E0FF90000012182E90002EEE8FF0121747
:10029C00DD90002874011217189000767403F00298
:1002AC00059AD390004EE0940290004DE0940050DB
:1002BC000AE475F00112178F02059AE490004DF0D4
:1002CC00A3F090000012182E90004C1217A5FFAE50
:1002DC00F09000501217A5D39FE5F09E501C900093
:1002EC000012182E90002A1217A5FFAEF090002EC7
:1002FC001217A5D39FE5F09E4011E4900076F09084
:10030C00000012182E90001D0203DC900000121841
:10031C002E9000391216B86401706D9000501217AF
:10032C00A5FFAEF0D39414EE94005031E5E330E326
:10033C001F900037740112171890001A1216B8C3C8
:10034C00943F404490000012182E900039E4803500
:10035C0090000012182E9000347401802890000038
:10036C0012182E9000481217A5FDD3EF9DEE95F0B4
:10037C00900000400812182E900034800612182E9F
:10038C00900037740112171890000012182E90006C
:10039C00281216B86401600302059A90002E1217F9
:1003AC00A5FFAEF0D39414EE94005034E5E330E2A4
:1003BC0022900026740112171890001A1216B8C356
:1003CC00943F500302059A90000012182E900028BA
:1003DC00E4803590000012182E90002374018028C0
:1003EC0090000012182E9000261217A5FDD3EF9D39
:1003FC00EE95F0900000400812182E900023800615
:10040C0012182E900026740112171802059AD39018
:10041C00004EE0941490004DE094005031E475F0DF
:10042C000112178F9000CFE0FEA3E0FF90000012A6
:10043C00182E900050EE8FF01217DD9000CDE0FFDB
:10044C00A3E090002ECF8FF01217DD02059AE490F6
:10045C00004DF0A3F090000012182E9000391216E7
:10046C00B8640160030204F89000281216B8640105
:10047C00707A9000481217A5FFAEF090005012173A
:10048C00A5FDACF0C39FEC9E401890000012182EF6
:10049C0090004C1217A5FFD3ED9FEC95F050030282
:1004AC00059A90000012182E9000261217A5FFAE88
:1004BC00F090002E1217A5FDACF0C39FEC9E4018D7
:1004CC0090000012182E90002A1217A5FFD3ED9F52
:1004DC00EC95F0500302059A90000012182E900033
:1004EC0037740112171890002602058F9000001225
:1004FC00182E9000391216B8640170419000481201
:10050C0017A5FFAEF09000501217A5FDACF0C39FDD
:10051C00EC9E401590000012182E90004C1217A55E
:10052C00FFD3ED9FEC95F0401490000012182E9024
:10053C00003774011217189000767402F0900000C6
:10054C0012182E9000281216B86401704190002ADF
:10055C001217A5FFAEF090002E1217A5FDACF0D32C
:10056C009FEC9E501590000012182E90002612172A
:10057C00A5FFC3ED9FEC95F0501490000012182EBF
:10058C0090002674011217189000767402F09000F7
:10059C000012182E9000391216B8FF6401600D90ED
:1005AC0000281216B86401600302079790003412F9
:1005BC0016B8FE6401600D9000231216B864016039
:1005CC0003020711EFB4011E9000281216B8B401F3
:1005DC0015EEB401119000341216B8B40108900055
:1005EC001474011217189000391216B8FFB40118C0
:1005FC009000281216B870109000341216B86401CE
:10060C00702390001404801AEF701A9000281216B0
:10061C00B8B401119000231216B8B401089000145C
:10062C007401121718900034E4121718900023E488
:10063C001217189000141216B8640160030207B068
:10064C0090000012182E90001A1216B8D394004085
:10065C000890001A74FE1216E59000191216B8FFD5
:10066C0090001A1216B8D39F401B9000D7E024C8F4
:10067C00FF9000D6E03400FEC39000D3E09F9000C2
:10068C00D2E09E504890000012182E9000191216BD
:10069C00B8FF90001A1216B8D39F90000050131296
:1006AC00182E90001AEF12171890001CE41217184D
:1006BC00801312182E90001C740112171890001A37
:1006CC0074021216E59000767404F0801390007694
:1006DC007402F090000012182E90001CE4121718EF
:1006EC00E490004DF0A3F090000012182E9000142E
:1006FC00E412171890001C1216B8FF90001A12166C
:10070C00B8FD02079490000012182E9000371216B4
:10071C00B86401600D9000261216B86401600302E3
:10072C0007B0900037E4121718900026E41217183F
:10073C0090001A1216B8C3943F500E900000121875
:10074C002E90001A74021216E59000767404F09044
:10075C00000012182E90001B1216B8FF90001A12EF
:10076C0016B8C39F401390000012182E90001AEF79
:10077C001217189000767401F090000012182E9049
:10078C00001A1216B8FDE4FF02000E900076E0D3BA
:10079C0094024010E4F090000012182E90001E7489
:0407AC000112171807
:0107B0002226
:0B2B8D0090004312184E900046EDF03F
:102B9800E4FE900046E0FD14F0ED6029900043E467
:102BA80075F00112183712169F6EFEE4FFEFC394FA
:102BB8000850DFEE30E007C313648CFE8004EEC3D8
:072BC80013FE0F80E8AF06C9
:012BCF0022E3
:08232300900000EFF0A3EDF0C3
:10232B00E4A3F078037C007D017BFF7A1C7988FEA7
:10233B007F401216799000037455F0A374AAF0A392
:10234B0074FFF0900001E0900008F0900000E09026
:10235B000006F0121857237D0123B402239903239F
:10236B00B40423B40523B408237D09237D0A00009C
:10237B0023BA9000077403F07815E65402C4333384
:10238B0054C0781B46900009F0E4A3F08021E4FFD1
:10239B00742A2FF8E6FE74032FF582E43400F583DC
:1023AB00EEF00FEFB440E980069000077401F09057
:1023BB000007E02405FF900002F0FD7B017A007915
:1023CB0003122B8D900002E02403F582E43400F518
:1023DB0083EFF07F01122AA7900001E0FFB41108F0
:1023EB0043BD0253BDFE8016EFB4220843BD2053FC
:1023FB00BDEF800AEFB4FF0643BD2253BDEE900044
:10240B0002E02402FFE433FE7B017A007903122CF5
:10241B000B900001E0FFB4110753BDFD43BD01223A
:10242B00EFB4220753BDDF43BD1022EFB4FF0653B9
:05243B00BDDF43BD11EF
:012440002279
:102D9B00E4900001F0EF24FD60028011782FE6B47F
:0D2DAB00110590007180039000727401F01A
:012DB80022F8
:1027E600E4900000F0304375C2437BFF7A1B79F911
:1027F600782AE6FF900004E4F0A3EFF008E6FFA3D2
:10280600E4F0A3EFF008E6FFA3E4F0A3EFF008E698
:10281600FFA3E4F0A3EFF008E6FFA3E4F0A3EFF0D4
:1028260008E6FFA3E4F0A3EFF008E6FFA3E4F0A3B5
:10283600EFF0A37407F0A37455F0120F5C7B007AD7
:1028460000792A782EE62405FD122B8D782EE624B3
:0D2856002FF8E6B50707782DE6FF122D9B41
:012863002252
:101E3300011B00C139C13DC13BC13AC13C011A6913
:101E4300602A00A30BB80BEA0C1C0C800CB20CE448
:101E53000D160D480D7A0DAC0E100E420E740EA623
:0E1E63000ED80F0A0F3C0F870FD2101D10680B
:1025F000E4FF7815E6B40225EF25E024A3F582E494
:102600003400F583E0FCA3E02432FDE43CFCC390FD
:1026100000D7E09D9000D6E09C50208023EF25E07D
:1026200024A3F582E43400F583E0FCA3E0FDC3902D
:1026300000D7E09D9000D6E09C40050FEFB415B2A6
:10264000781BE6FEEFD39E400418068003781A1626
:10265000E5E16007E4F5E1781BA607781AE6FED30A
:1026600094C85006EEC3940A5007781BA607187644
:1026700069781BE6FFD394005002D23DEFD394015A
:102680005002D239EFD394055002D23BEFD3940AD3
:0C2690005002D23AEFD3940F5002D23C1B
:01269C00221B
:101E71004100E7004100EA004100E6004200E400C1
:101E8100004100E800C126C127C129C125C124C1E3
:091E9100284100E900C12AC12B1F
:102864009000E9E06062E4F0D2269000E7E004F032
:10287400E0C394054004E4F0D2279000EAE004F0B9
:10288400E0C3940A4004E4F0D2299000E4E475F033
:102894000112178FC39000E5E094649000E4E09483
:1028A400004006E4F0A3F0D2249000E6E004F0E057
:1028B400C394FA4013E4F0D2259000E8E004F0E079
:0928C40094044004E4F0D228223F
:03000B00022CFACA
:102CFA00C0E0C083C082C0D074FC258CF58C746699
:102D0A00258AF58A9000E97401F0D0D0D082D08368
:032D1A00D0E032D4
:0E2E7500758901758CFC758A66D2A9D28C22F3
:102B4900EFD39401501675FE0EEF25E02404FE74B0
:102B590003A806088002C333D8FC801475FE0FEF62
:102B690024FE25E0FE7403A806088002C333D8FCBE
:102B7900F452FFEFB4040C75FE0F53FFF075FE0E0F
:042B890053FF0F22C5
:102E1D0075FE54EF5407F5FF75FE56AF058FFF7520
:062E2D00FE5375FF0122B7
:102AF800EFD39401501875FE0EEF25E02404FE7400
:102B080003A806088002C333D8FC42FF801675FE6E
:102B18000FEF24FE25E0FE7403A806088002C333E5
:102B2800D8FC42FFEF70038DCE22EFB401038DCFA6
:102B380022EFB402038DDE22EFB40304AF058FDF6A
:012B4800226A
:032FFD00010102CD
:10276600022DEDE493A3F8E493A34003F68001F26F
:1027760008DFF48029E493A3F85407240CC8C33374
:10278600C4540F4420C8834004F456800146F6DF43
:10279600E4800B0102040810204080901CC8E47EEF
:1027A600019360BCA3FF543F30E509541FFEE49338
:1027B600A360010ECF54C025E060A840B8E493A3FF
:1027C600FAE493A3F8E493A3C8C582C8CAC583CA2A
:1027D600F0A3C8C582C8CAC583CADFE9DEE780BEE2
:011E9A000047
:1015A900E709F608DFFA8046E709F208DFFA803E24
:1015B90088828C83E709F0A3DFFA8032E309F60811
:1015C900DFFA8078E309F208DFFA807088828C8379
:1015D900E309F0A3DFFA806489828A83E0A3F6082D
:1015E900DFFA805889828A83E0A3F208DFFA804C07
:1015F90080D280FA80C680D4806980F280338010DE
:1016090080A680EA809A80A880DA80E280CA803346
:1016190089828A83ECFAE493A3C8C582C8CCC583BE
:10162900CCF0A3C8C582C8CCC583CCDFE9DEE7808E
:101639000D89828A83E493A3F608DFF9ECFAA9F00D
:10164900EDFB2289828A83ECFAE0A3C8C582C8CC63
:10165900C583CCF0A3C8C582C8CCC583CCDFEADE7C
:10166900E880DB89828A83E493A3F208DFF980CCDE
:1016790088F0EF60010E4E60C388F0ED2402B404D7
:101689000050B9F582EB2402B4040050AF2323457E
:0616990082239015F97395
:10169F00BB010689828A83E0225002E722BBFE0249
:0916AF00E32289828A83E493227C
:1016B800BB010CE58229F582E5833AF583E02250E7
:1016C80006E92582F8E622BBFE06E92582F8E22231
:0D16D800E58229F582E5833AF583E493224B
:1016E500BB010FF8E58229F582E5833AF583E02809
:1016F500F0225009C58229F8E58226F622BBFE09AB
:10170500C58229F8E22582F222F8EA2583F583E9E4
:03171500932822F4
:10171800F8BB010DE58229F582E5833AF583E8F007
:10172800225006E92582C8F622BBFE05E92582C8B3
:02173800F2229B
:10173A00BC000BBE0029EF8DF084FFADF022E4CC93
:10174A00F875F008EF2FFFEE33FEEC33FCEE9DEC5C
:10175A00984005FCEE9DFE0FD5F0E9E4CEFD22EDA2
:10176A00F8F5F0EE8420D21CFEADF075F008EF2FEC
:10177A00FFED33FD4007985006D5F0F222C398FDDD
:05178A000FD5F0EA227A
:10178F00C5F0F8A3E028F0C5F0F8E58215827002E5
:06179F001583E038F02282
:1017A500BB0110E58229F582E5833AF583E0F5F082
:1017B500A3E0225009E92582F886F008E622BBFE5F
:1017C5000AE92582F8E2F5F008E222E5832AF583A5
:0817D500E993F5F0A3E993226A
:1017DD00F8BB0111E58229F582E5833AF583E8F03E
:1017ED00E5F0A3F0225009E92582C8F608A6F022FB
:0D17FD00BBFE09E92582C8F2E5F008F222E2
:10180A00EB9FF5F0EA9E42F0E99D42F0E89C45F034
:01181A0022AB
:10181B00E8600FECC313FCED13FDEE13FEEF13FFAB
:03182B00D8F122CF
:09182E00E0FBA3E0FAA3E0F922BB
:10183700F8E0FBA3A3E0F925F0F0E582158270023A
:071847001583E0FA38F022DE
:09184E00EBF0A3EAF0A3E9F0229B
:10185700D083D082F8E4937012740193700DA3A320
:1018670093F8740193F5828883E473740293686034
:06187700EFA3A3A380DF34
:10187D00EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02DF8
:10188D00FDE43CFCE8A42EC8C5F03DFDE43CFCEFB6
:0D189D00A4FFE5F028FEE43DFDE43CFC2244
:100EF100E5082404F582E43400F583E00508229036
:100F01000001301A03900004E475F0011218370251
:100F1100169F2013E97F2ED2138018EF540F2490CF
:100F2100D43440D4FF30170BEF24BFB41A00500360
:100F31002461FFE50960021509050CE50C70020545
:100F41000B301A0E900001E475F001121837EF0210
:100F510018AA022E677403D21A8003E4C21AF50894
:100F610090000112184EE4F509F50BF50CE5096046
:100F7100077F20120F3480F5750AFFC214C213C215
:100F810015C216C218C219C21B120F00FF700D3014
:100F91001A057F00120F45AF0CAE0B22B4255FC2BC
:100FA100D5C217120F00FF24D0B40A00501A75F0F1
:100FB1000A780930D50508B6FF0106C6A426F62031
:100FC100D5047002D21680D924CFB41A00EF500490
:100FD100C2E5D217021146D21480C6D21380C0D204
:100FE1001580BCD2D580BAD21880B47F20120F34BC
:100FF1002015077401B5090040F1120EF1FF120F1F
:1010010034020F6ED21BD2198095120EF1FB120E13
:10101100F1FA120EF1F94A4B700679177A127BFF39
:1010210020152EE509602A7E008E82758300121636
:10103100B860060EEE650A70F0C2D5EBC0E0EAC0FA
:10104100E0E9C0E0EE12118DD0E0F9D0E0FAD0E095
:10105100FB12169FFF60AAEBC0E0EAC0E0E9C0E026
:10106100120F34D0E02401F9D0E03400FAD0E0FBD3
:10107100E50A0460DCD50AD980877BFF7A1179897A
:10108100D215809C791080027908C219C21B800890
:10109100D2D5790A8004790AC2D5E50A047002F52D
:1010A1000AE4FAFDFEFF120EF1FC7B082014131274
:1010B1000EF1FD7B1030130A120EF1FE120EF1FF3C
:1010C1007B20EC3382D592D55013C3E43013069FB5
:1010D100FFE49EFEE42014039DFDE49CFCE4CBF8B8
:1010E100C214EC700CCFCECDCCE824F8F870F380AC
:1010F10017C3EF33FFEE33FEED33FDEC33FCEB337F
:10110100FB994002FB0FD8E9EB301405F8D0E0C49D
:1011110048B214C0E00AEC4D4E4F78207B0070C2FB
:10112100EAB50A0040BCC0E012118FD0F0D0E02037
:101131001404C4C0E0C4B214C0F0120F1DD0F0D525
:10114100F0EB020F6E121857100B531085580FDC7D
:101151004C0FD84210894F1091441091490FF1431F
:08116100109755107B46107B2E
:1011690045107B471237500FE02D0FE42E10072B47
:101179000FE82310052012202A0FA04800000FFFB6
:101189003F3F3F00790AA2D5201614301809B9103B
:10119900020404B9080104A2D5201902500104204F
:1011A90015689215B509005034C0E07F2030161932
:1011B9007F30A21572197218500F1211E6C215C2AA
:1011C90019C218C21B7F30800F301803E9C0E01222
:1011D9000F34301803D0E0F9D0E0B509CC30181736
:1011E9007F30B9100C120F347F583017077F788081
:1011F90003B90803120F343015057F2D020F347F10
:1012090020201BF87F2B2019F322921580CF286EFE
:10121900756C6C2900D214120EF13014F8C21478CE
:101229000930D50108F6020FA02D50434958120E76
:10123900F12403B405004001E490123293120F2502
:0D124900743A120F25D216750904021085A3
:1018AA00BB010689828A83F0225002F722BBFE011D
:0218BA00F32217
:00000001FF

Binary file not shown.

View File

@ -0,0 +1,830 @@
:03000000022732A2
:10273200758E3075D20078FFE4F6D8FD9000007FE8
:10274200007E01E4F0A3DFFCDEFA75818802278DAA
:0F2F210053797374656D20496E69742E0D0A0023
:102EB600122B377BFF7A2F7921120F61D2AED2BE49
:082EC60012294B122D2580F4A6
:10205A00010D000114000113000112000111000119
:10206A0010004100BC00020E00004200B60000420F
:10207A0000BA00004200AF00004200B10000420076
:10208A00B800004200B400004100B3004100BD00A6
:02209A00C1463D
:102ECE0075FE0F43FF8075FE2975FFB575A521753B
:082EDE00FE1E43FF01D2BD22DC
:10238400AB072046030224B19000B6E0FEA3E07838
:1023940003CEC313CE13D8F9F0EE9000B6F090003C
:1023A400B3E024FD603014606514700302244E24ED
:1023B400FE7003022478240560030224AE780DE63F
:1023C400FF3395E0FEC39000B7E09FFF9000B6E0B6
:1023D4009E9000BA806E9000B6E0FEA3E0FF7C09F8
:1023E4007DC412189E780A12183C9000B6EEF0A331
:1023F400EFF07810E6FD3395E0FCC3EF9DFFEE9C13
:10240400FE7C007D0512173C9000AFEE80369000F4
:10241400B6E0FEA3E0FF7C097DC412189E780A1280
:10242400183C9000B6EEF0A3EFF07811E6FD33957A
:10243400E0FCC3EF9DFFEE9CFE7C007D0512173C83
:102444009000B1EEF0A3EFF080609000B6E0FEA340
:10245400E0FF7C097DC412189E780A12183C900093
:10246400B6EEF0A3EFF0E025E0FE9000B6E0339086
:1024740000B88032780DE6FF3395E0FEC39000B7D4
:10248400E09FFF9000B6E09EFE7C097DC412189E7A
:10249400780A12183CEEF0A3EFF0E025E0FE90007D
:1024A400B6E0339000B4F0A3CEF0C246229000B35D
:1024B400EBF0C454F04401F5A5E49000B6F0A3F0A9
:0524C4009000BDF022B4
:03006B000229B4B3
:1029B400C0E0C0F0C083C082C0D075D000C000C0E9
:1029C40006C007E5F330E038AFA1780E760008A61C
:1029D40007E5A254031846F608E6F69000BDE0C3E6
:1029E4009408501718E6FE08E6FF9000B6EE8FF044
:1029F4001217919000BDE004F08005D24653A5FE65
:102A040075F301D007D006D000D0D0D082D083D0C7
:042A1400F0D0E032EC
:05209C00C12301150342
:102D570075FE8743FF2075FE7043FF1853B3F14399
:102D6700B301E47817F67819F67815E67818F67847
:102D77001A76017917E718461846F5B175B2012298
:10220B00E4FE9000BAE0FCA3E0FDC394D8EC940389
:10221B0040037F0022EF7003022324D3ED940FECD5
:10222B0094034003022302ED94CBEC940050030281
:10223B002302D3ED94AAEC94024022D2217815E626
:10224B00FF137818F6302211D3ED94BFEC940240B3
:10225B0004C22280047818A607E4FE8070D3ED94A4
:10226B00AAEC94025043ED9437EC9401403BD222FC
:10227B007815E6FF7818F6302113D3ED9493EC9490
:10228B00025004C2218006EFC3137818F6781A7631
:10229B0001301C11D3ED9451EC94015004C21C80FD
:1022AB0004E4781AF6E4FE8024D3ED9437EC940121
:1022BB00501BD21CE4781AF6302210ED9426EC94C5
:1022CB00015004C2228004781A7601E4FE301F11FB
:1022DB00C3ED94F3EC94025006C21FE4FE80027E21
:1022EB000130202FD3ED94DDEC94004006C220E4A6
:1022FB00FE80207E01801CD3ED940FEC94034006EE
:10230B00D21F7E01800DD3ED94CBEC94005004D200
:10231B00207E01C21DC21E8058C21FC220D3ED9465
:10232B009FEC94035031ED9471EC94004029301DD7
:10233B0010ED9484EC94035006C21DE4FE80027EE3
:10234B0001301E2DD3ED9482EC94004006C21EE4A6
:10235B00FE801E7E01801AD3ED949FEC9403400403
:10236B00D21D800BC3ED9471EC94005002D21E7EF3
:08237B0001781AE6F5B2AF0685
:012383002237
:1025AD00E4FBFAE5E65480FFE4FCFDFEEF70075313
:1025BD00B3FE7816F62278167601E5E830E5057556
:1025CD00E820800FE5E530E1028008E5F230E5070F
:1025DD0075F22053B3FE22E5F2540C601353B3FE93
:1025ED00E5F354C0700302268875F20C75F3C02212
:1025FD0075F3C07F0112220BEF600653B3FED22399
:10260D0022C223E5F230E432781AE6B401067A10DC
:10261D007B6880047A0F7BA0EB246AFFEA34FFFE0F
:10262D00C39000B9E09F9000B8E09E500575F21080
:10263D00800353B3FE78167603227917E77819468F
:10264D001846F5B1781AE6F5B243B311781CE6FFDA
:10265D00D394014002C23DEFD394034002C239EF3F
:10266D00D394074002C23BEFD3940C4002C23AEF21
:0B267D00D394114002C23C7816760294
:01268800222F
:0620A100C13EC13FC14039
:10000E00303F10EFB4010475B5C02253B5BFED44B7
:04001E0080F5B52292
:102F1000E5B55480FFEF6008303F05E4F5B5C23FEA
:012F2000228E
:102ADB00C23FE5E520E154E5E230E703D24022E5D1
:102AEB00E830E00D30254475E8017D3FE4FF02003E
:102AFB000EE4FF12220BEF6006122F10D23E22C201
:102B0B003E303D03022F10D23F30401F7816E6B403
:102B1B000219C39000B9E094109000B8E0940E40F5
:0C2B2B0005D23FC24022122F10C23F22F0
:0820A700C144C1454100D7FF0F
:102D8700E5E25408FF9000D7E06F6021E5E230E309
:102D9700089000D67401F08005E49000D6F0D24484
:0D2DA700C210D245D2389000D7EFF0D248CC
:012DB40022FC
:1020AF00C132C131C130011D004100CE004100D20B
:0E20BF00004100CD004200CF00004100D100E2
:101E9F00E5E25402FFE4FCFDFEEF70319000CF75D8
:101EAF00F0011217919000CFE0FEA3E0FFC394174B
:101EBF00EE94024004D230800EC3EF9487EE94006C
:101ECF004005202F02D22FD22CC22D8040302C362D
:101EDF00D248E4781DF6C22CD22D9000D1F090009C
:101EEF00CFE0FEA3E0FFD3941EEE94005008D23251
:101EFF00D22ED238800EC3EF944FEE94015005309E
:101F0F002F02D231C22FE49000CFF0A3F0302D6218
:101F1F00303F5F30312720100280287F03122B8E35
:101F2F009000D1E0D394235003022046C231781D94
:101F3F007602E49000CEF090002BF0A3F030302921
:101F4F0020100A7D3FE4FF12000ED210227F0312F1
:101F5F002B8E9000D1E0D394235003022046C23041
:101F6F00E49000D2F0781D7603302E02C22EC22DDF
:101F7F00C2109000D6E064016003022059781DE67C
:101F8F006402600302201B9000CEE0C39401501046
:101F9F007D017F01121B01E490002BF0A3F0805410
:101FAF009000CDE0D394054003E4803990002CE0FD
:101FBF00B4010FE4FD7F02121B0190002C7402F09C
:101FCF00803290002CE06402702A90002BE0601D9C
:101FDF007D017F02121B01E490002BF0A3F0900013
:101FEF00CEF09000CDF0781DF6D2118058E4FD7F31
:101FFF0001121B019000CEE0D39414400A9000CD43
:10200F00E004F0E4A3F0229000CE802B781DE6646C
:10201F000370379000D2E0FFC394B4501EEF540FFB
:10202F0070047D0180099000D2E054077006FD7F97
:10203F0003121B019000D2E004F022E4781DF6D2C7
:0A204F00119000D2F07F04122B8ED6
:012059002264
:1020CD0041003100410030004100320041002F003D
:102E040075FE0675FF3C75FE0E53FF0F75FE0F53DE
:102E1400FFF075FE0375FFFFC282C283C285C284C0
:012E2400228B
:102E8200EF14600D14600D14600D2403700BD282D8
:0A2E920022D28322D28422D28522AC
:052E4500900085E0FF94
:102E4A00EF14600D14600D14600D2403700BC28220
:0A2E5A0022C28322C28422C2852214
:102A7B00E4FF74332FF582E43400F583E4F074370C
:102A8B002FF582E43400F583E4F0EF25E0243BF5E9
:102A9B0082E43400F583E4F0A3F0EF25E02443F562
:102AAB0082E43400F583E4F0A3F0EF25E0244BF54A
:102ABB0082E43400F583E4F0A3F0EF25E02453F532
:0F2ACB0082E43400F583E4F0A3F00FEFB404A32A
:012ADA0022D9
:102A1800AC0774332CF582E43400F583EDF0EAC397
:102A280013FEEB13FFEC25E0243BF582E43400F5BC
:102A380083EEF0A3EFF0AF03EC25E02443F582E446
:102A48003400F583EAF0A3EFF090008AE0FEA3E0FB
:102A5800FFEC25E0244BF582E43400F583EEF0A387
:102A6800EFF0EC25E02453F582E43400F583E4F03C
:032A7800A3F022A6
:102CB70074332FF582E43400F583EDF074372FF584
:102CC70082E43400F583EBF0EF25E0243BF582E462
:102CD7003400F583E4F0A37469F0EF25E02453F59D
:0B2CE70082E43400F583E4F0A3F02247
:100B8900E4900085F0F0900085E0FFC394044003F1
:100B9900020ECB74332FF582E43400F583E0602232
:100BA90024FE6024147003020C93147003020D0ACE
:100BB90024036003020E67900085E0FF122E820273
:100BC9000E67122E45020E67900085E0FF25E0248E
:100BD9003BF582E43400F583E0FCA3E0FDEF25E07A
:100BE9002453F582E43400F583E0FEA3E0C39DEECF
:100BF9009C5005122E828003122E45900085E0FF3D
:100C090025E02443F582E43400F583E0FCA3E0FD0C
:100C1900EF25E02453F582E43400F583E0FEA3E0F8
:100C2900C39DEE9C5003020E67900085E025E024E9
:100C390053F582E43400F583E4F0A3F0EF25E024D2
:100C49004BF582E43400F583E0FEA3E0D39400EE93
:100C590094004016900085E025E0244BF582E434A9
:100C690000F58374FFF5F0121791900085E0FF25D8
:100C7900E0244BF582E43400F583E0FCA3E04C600A
:100C890003020E6774332F020D26900085E0FF25BD
:100C9900E0243BF582E43400F583E0FCA3E0FDEFBA
:100CA90025E02453F582E43400F583E0FEA3E0D384
:100CB9009DEE9C5005122E828003122E45900085D0
:100CC900E0FF25E02443F582E43400F583E0FCA34A
:100CD900E0FDEF25E02453F582E43400F583E0FEDE
:100CE900A3E0C39DEE9C5003020E67900085E025AA
:100CF900E02453F582E43400F583E4F0A3F0020E16
:100D090067900085E0FF2437F582E43400F583E03D
:100D19007017122C30C247900085E02433F582E425
:100D29003400F583E4F0020E67900085E0FF243774
:100D3900F582E43400F583E0FE6402704B20471429
:100D4900D247EF25E0243BF582E43400F583E4F053
:100D5900A37469F0900085E0FF25E0243BF582E467
:100D69003400F583E475F001121791EF25E0243B77
:100D7900F582E43400F583E0FCA3E0C394FEEC942F
:100D8900005003020E51804EEE6401705A2047173D
:100D9900D247900085E025E0243BF582E43400F554
:100DA90083E4F0A374FEF0900085E0FF25E0243B86
:100DB900F582E43400F58374FFF5F0121791EF25FD
:100DC900E0243BF582E43400F583E0FEA3E0D3940C
:100DD90069EE94005072900085E02437F582E4347E
:100DE90000F583E4F08061900085E0FF2437F58207
:100DF900E43400F583E06403704EEF25E0243BF50D
:100E090082E43400F583E0FEA3E0FFC394FEEE9490
:100E1900004004D247800BD3EF946AEE940050024D
:100E2900C247900085E025E0243B30470DF582E478
:100E39003400F58374FFF5F0800BF582E43400F596
:100E490083E475F001121791900085E0FF25E024F5
:100E59003BF582E43400F583A3E0FD122BDF90001B
:100E690085E0FF701174332FF582E43400F583E0D7
:100E7900900031F08043900085E0B401102433F5EF
:100E890082E43400F583E0900030F0802C900085F6
:100E9900E0B402102433F582E43400F583E09000D5
:100EA90032F08015900085E0B4030E2433F582E416
:100EB9003400F583E090002FF0900085E004F00203
:100EC9000B8FE4900085F0900085E0FFC3940450F7
:100ED9001BEF25E02453F582E43400F583E475F033
:0C0EE90001121791900085E004F080DBFE
:010EF50022DA
:0B20DD004200D300004100D50FC148B5
:102DB50075FE1E43FF0275FE2143FF0875D4C275DB
:102DC500FE2143FF0475FE2143FF02300F0775FE08
:0C2DD5002453FFC32275FE2443FF3C2260
:10005600D2AC759A01D2B9D2BDD2A9D2AB75FE295E
:0400660043FFB02282
:10006E00C2ACE4F59AD2B9C2BDC2A9C2AB75FE2923
:04007E0053FF4F22BB
:092F660012006E438702020056BE
:102EFC007816E6D394015006201203304804C248D9
:042F0C00C322D322E7
:102B370075FE01E4F5FF122E9C122F59122F3EE469
:102B4700F58675B7C375FE6A75FF0475FE6C43FF9E
:102B57000B122ECE75FE8043FF0275FE0E53FFFC4F
:102B670043FF0175FE1775FF3CD2A8D2AF122D5750
:102B77007D697F03122EE6122E04122A7B122DB5D1
:072B87009000C27401F0226E
:03000300020006F2
:03000600D24832AB
:03004B00022F770A
:062F770075EB3CD248326C
:03005300022F7DFC
:062F7D0075F302D2483298
:1020E800202069000000000000000000000000003F
:1020F80000000000000000000000000000000000D8
:0F210800000000C143C1424100D8004100D9008E
:0E2F30009000AEEFF0122F6F9000AEE0FF2287
:082F6F002041FDD2418F99229F
:102E9C0075FE0E53FFF343FF04D2DF43878075BAF0
:0A2EAC000375AAFD759852D2AC22FE
:03002300022F4C5D
:0D2F4C00309904C299C241309802C29832F7
:0D2F590075BB03759DDC759B92439A0122A8
:062CF2009000A912186F0A
:102CF800E49000ACF0F09000ACE0C39FE49E501C60
:102D08002042FDD2429000A9E475F0011218581231
:0C2D180016A1F59C9000ACE004F080DAFD
:012D2400228C
:03008300022689C9
:10268900C0E0C083C082C0D075D000C000C005C002
:1026990006C007E59B30E105539BFDC242E59B302F
:1026A900E076539BFED2489000D8E014601914607C
:1026B9003424027063E59C9000D8B455087401F085
:1026C900A3E4F0800E8018E59C9000D8B4AA107499
:1026D90002F0A3E0FF04F074692FF8A69C8039E4A6
:1026E900F0A3F080339000D9E0FF04F074692FF86B
:1026F900A69C786BE62404FFE433FEE0FDC39FEE5D
:102709006480F87480985005ED9420400B9000D9AE
:10271900E4F09000D8F0D243D007D006D005D0001D
:09272900D0D0D082D083D0E03280
:1024C9004177616B6520536F757263653A57505F49
:1024D900466C6167303A307825782C57505F466CE6
:1024E9006167313A307825782C57505F466C6167BF
:1024F900333A307825782E286C696E653A25642937
:102509000D0A00536C656570205374617465202849
:102519006C696E653A2564290D0A004348475F5383
:1025290054413A25642C53545F564F583A30782514
:10253900782C535441303A307825782C5354413112
:102549003A307825782C535441323A307825782C12
:10255900535441333A307825782C535441343A3026
:102569007825782E4465635F536C6565703A2564F8
:102579000D0A004465636E745F536C65657044654C
:102589006C61792052656C6F61642E0D0A00456E8D
:10259900746572205374616E646279204D6F64654D
:0425A900210D0A00F6
:102117004300C20402024100BF004100C000C138B1
:0E212700C1374100C1004100C5004100BE00AB
:10002600E4FB7D04FF122CB7E4FB7D047F01122C58
:10003600B7E4FB7D047F02122CB7E4FB7D047F034B
:03004600022CB7D2
:1007B600303859C238E49000C0F0781BF690008AB1
:1007C600F0A3F0FBFAFDFF122A18E490008AF0A3CA
:1007D600F0FBFAFD7F01122A18E490008AF0A3F0DC
:1007E600FBFAFD7F02122A18E490008AF0A3F0FBC0
:1007F600FAFD7F03122A189000317402F09000303F
:10080600F0900032F090002FF0D2482220230F20E3
:100816003E0C200D030208CB300F030208CB203319
:1008260005D233D23822900031E06402601A90007B
:100836008AE4F0A3740AF07B147A007D02E4FF12C6
:100846002A189000317403F0900030E06402601AB8
:1008560090008AE4F0A3740AF07B147A007D027F8C
:1008660001122A189000307403F0900032E06402FE
:10087600601A90008AE4F0A3740AF07B147A007D73
:10088600027F02122A189000327403F090002FE0C3
:100896006402601A90008AE4F0A3740AF07B147A6A
:1008A600007D027F03122A1890002F7403F0200D9A
:1008B60003020B889000C0E0C394285003020A0686
:1008C600D20FD2382230330CC233C235C234C245BD
:1008D600C20ED2377816E6FF70030209E064037091
:1008E6005E203507D235C234020026E490008AF035
:1008F600A3F0FBFA7D01FF122A18E490008AF0A308
:10090600F0FBFA7D017F01122A18E490008AF0A319
:10091600F0FBFA7D017F02122A18E490008AF0A308
:10092600F0FBFA7D017F03122A189000317401F062
:10093600900030F0900032F090002FF00209D7209E
:10094600340ED234C235D238E49000C5F00209D74D
:100956009000C0E0C394015057E004F09000C5E059
:1009660014601A14602714603424037064900031F4
:10097600E06404605C7B017D04E4FF802E9000301F
:10098600E06404604C7B017D047F01801E90003290
:10099600E06404603C7B017D047F02800E90002FA2
:1009A600E06404602C7B017D047F03122CB7802158
:1009B6009000C0E0C3940F5005E004F08013E4906B
:1009C60000C0F09000C5E004F0E0C394044002E4E7
:1009D600F0C245C20EC232D2362230340AC23412B6
:1009E6000026D238D2372220450C203609200E06A2
:1009F600203203020B889000C0E0FFC3940150042C
:100A0600E004F022EFC394644003020B339000C06D
:100A1600E004F0303B37900031E064037003020BD2
:100A260088E490008AF0A3F07B64FA7D03FF122A23
:100A3600189000317404F0E490008AF0A3F0FBFAF9
:100A4600FD7F01122A189000307402802D303A4141
:100A5600E490008AF0A3F0FBFA7D01FF122A1890B9
:100A660000317401F0E490008AF0A3F0FBFA7D01F6
:100A76007F01122A189000307401F0E490008AF089
:100A8600A3F0FBFAFD7F02122A189000327402804E
:100A960043E490008A303C53F0A3F0FBFA7D01FF5B
:100AA600122A189000317401F0E490008AF0A3F045
:100AB600FBFA7D017F01122A189000307401F0E4E0
:100AC60090008AF0A3F0FBFA7D017F02122A1890AB
:100AD60000327401F0E490008AF0A3F0FBFAFD7F87
:100AE60003122A1890002F7402F022F0A3F0FBFAEA
:100AF6007D01FF122A18E490008AF0A3F0FBFA7D2C
:100B0600017F01122A18E490008AF0A3F0FBFA7D17
:100B1600017F02122A18E490008AF0A3F0FBFA7D06
:100B2600017F03122A1890003174018048C245C221
:100B360036C20EC232E490008AF0A3F0FBFAFDFF43
:100B4600122A18E490008AF0A3F0FBFAFD7F011246
:100B56002A18E490008AF0A3F0FBFAFD7F02122A1D
:100B660018E490008AF0A3F0FBFAFD7F03122A181E
:100B76009000317402F0900030F0900032F0900056
:020B86002FF04E
:010B8800224A
:102E25009000BCE0FF04F01223849000BCE0B406DF
:102E35000204F09000BCE0C3940840037402F02241
:102E6400122D87121E9F122854302411C2241225B9
:0E2E7400AD122ADB1227D21207B612125B2211
:1018DD00E4900085F09000C2E0FFA3E0FE6F70037E
:1018ED00021981A3EEF09000C2E0A3F024FE603552
:1018FD0014606714606B24036003021B0090008A60
:10190D00E4F0A37403F07B647A007D02E4FF122AF5
:10191D001890008AE4F0A37403F07B647A007D02D2
:10192D007F01022A18300F09D24475E80CC20DC28E
:10193D000F7BFF7A2479C9AFF6900089E4F0A3EF0D
:10194D00F0AFF8A3E4F0A3EFF0AFFAA3E4F0A3EF48
:10195D00F0A37402F0A3740680169000D5740FF0F6
:10196D00227BFF7A25790C9000897402F0A3741EF6
:10197D00F0021A879000C3E024FE603514607614DF
:10198D007003021A9A24036003021B009000BEE04C
:10199D0004F0E0C394085003021B009000C27402CF
:1019AD00F0E49000BEF0781CE66003021B00021A02
:1019BD0093E5F6700CE5F87008E5FA7004E5E16062
:1019CD002D9000C27403F0E5F6540FFFE4FCFDFE0C
:1019DD007B08FAF9F8C312182B70069000C2740434
:1019ED00F075E11F75F60F75F8FC75FABC229000C5
:1019FD00C27403F022202803021B00C22875FE6E5C
:101A0D00900085E5FFF07BFF7A2579247816E6FFB7
:101A1D00900089E4F0A3EFF0900085E0FF90008B3B
:101A2D00E4F0A3EFF0AFE2A3E4F0A3EFF0AFE3A394
:101A3D00E4F0A3EFF0AFE4A3E4F0A3EFF0AFE5A380
:101A4D00E4F0A3EFF0AFE6A3E4F0A3EFF09000D540
:101A5D00E0FF900097E4F0A3EFF0120F619000D536
:101A6D00E0D394004017E014F0204803021B00C29D
:101A7D0048740FF07BFF7A25797C020F617BFF7A2A
:101A8D00257997120F619000C27404F022122EFC7A
:101A9D00505B122DB57F04122B8E122F10E4900087
:101AAD008AF0A3F0FBFAFDFF122A18E490008AF0E9
:101ABD00A3F0FBFAFD7F01122A18E490008AF0A32F
:101ACD00F0FBFAFD7F02122A18E490008AF0A3F0D1
:101ADD00FBFAFD7F03122A189000317402F090007A
:101AED0030F0900032F090002FF0022F669000C27F
:031AFD007402F080
:011B000022C2
:102D2500302726C2279000BFE0FF04F0EF14600CA7
:102D350014600E24027012122E25800D122E64804E
:102D4500081218DDE49000BFF0302905C229120BE6
:022D55008922D1
:101CD700426F7820436C6F73652E286C696E653A86
:101CE7002564290D0A00426F78204F70656E2E28F3
:101CF7006C696E653A2564290D0A004F70656E2F71
:101D0700436C6F736520426F782C45617270686F02
:101D17006E657320496E20426F78284E756D3A259F
:101D2700642928566F785374613A30782578292EBC
:101D37000D0A004F70656E20426F7820434D442096
:101D47005458204F7665722E0D0A004F70656E202D
:101D5700426F7820416E642045617270686F6E65CE
:101D670020476574496E284E756D3A2564292856B3
:101D77006F785374613A30782578292E0D0A00431D
:101D87006C6F736520426F7820416E6420466F72D6
:101D9700636520566F6C746167652055702E0D0A58
:101DA70000564F5820566F757420355628535441A6
:101DB700313A307825782C6C696E653A2564292E7E
:101DC7000D0A00564F58204348472046756C6C2E25
:101DD7000D0A00564F582047657420496E746F20CE
:101DE700536C6565702E0D0A005258315F42756657
:101DF7006665725B305D3A307825782C5258315FD2
:101E07004275666665725B315D3A307825782C528B
:101E170058315F4275666665725B325D3A30782588
:101E2700782C5258315F4275666665725B335D3A4E
:101E3700307825782C5258315F4275666665725B3B
:101E4700345D3A307825782C5258315F4275666692
:101E570065725B355D3A307825782C5258315F4290
:101E670075666665725B365D3A307825782C6C69E5
:101E77006E653A25640D0A000000000000000000AE
:101E8700000000000000000000000000000000004B
:081E9700000000000000000043
:10213500C112C10EC11041002DFFC10D42000700A3
:1021450000420005000042002B000041002A00C1AA
:102155000FC1111A2A000000000000000000000055
:10216500000000000000000000000000000000204A
:1021750024440000000000000000000000000000F2
:10218500000000000000000000000000000000004A
:0E219500000000000000420028000001680069
:102B8E00EF24FE601E14602814602F24FE6035248E
:102B9E0005703D43BD8853BDBB75FE6F53FFF243B9
:102BAE00FF092243BDCC75FE6F53FFFE43FF0C227F
:102BBE0053BD7753B7CF43B7302253B7CF43B70385
:102BCE0053BD772253B7CC53BD7775FE6A43FF30A2
:012BDE0022D4
:10125B00203F0302157230447B20100A7D3FE4FFD0
:10126B0012000ED210227F03122B8EE4900003F09B
:10127B00900001F0A3F0C200C201D20B9000D6E0A7
:10128B00702FC20ED202D203C205C208C204C20919
:10129B00C20AD212C237900026F0A3F090002EF0B3
:1012AB007BFF7A1C79D79000897402F0A3740880B5
:1012BB0017C202C203D205C2067BFF7A1C79ED90DE
:1012CB0000897402F0A37415F0120F61C210C20DE5
:1012DB00C20FC244900001E0C394055003021500F5
:1012EB00300B05C20B0214B820004CD200E5E354BE
:1012FB00A06021E5E354A0FFE4FCFDFE7BA0FAF91E
:10130B00F8C312182B90002A70057402F0800A742F
:10131B0001F08005E490002AF07BFF7A1D790290A2
:10132B00002AE0FF900089E4F0A3EFF0AFE3A3E421
:10133B00F0A3EFF0120F612005030213F2900002ED
:10134B00E0C3940550077F06122B8E8026200143A5
:10135B00900003E0FFD39414501EEF54037003FD71
:10136B008009900003E020E0077D017F06121B013E
:10137B00900003E004F0806F7F04122B8EE490004A
:10138B0003F0D201D211C2127BFF7A1D793A120FF0
:10139B00618054781DE6704F301104C2118040E516
:1013AB00E354A0FBE4FAF9F8900000E0FFE4FCFD45
:1013BB00FEC312182B6030E5E354A06004D20ED2AA
:1013CB00387BFF7A1D795290002AE0FF900089E468
:1013DB00F0A3EFF0AFE3A3E4F0A3EFF0120F61E59E
:1013EB00E354A0900000F020020302156F30374841
:1013FB002010237D3FE4FF12000ED210D212E49096
:10140B000026F0A3F090002EF0900001F0C208D25D
:10141B000BC200D204227F03122B8E7BFF7A1D7925
:10142B0086120F61C210D203900001E0D3940350D7
:10143B0003021500C237804E20044B900002E0FFE0
:10144B00D39414501CEF54037003FD8009900002D9
:10145B00E020E0077D017F81121B01900002021545
:10146B0000900003E0FFD39414501BEF5403700360
:10147B00FD8009900003E020E0077D017F07121B30
:10148B0001900003806FE5E8540C6026200F1E903E
:10149B000003E004F0E0C3940550030215AAE4F046
:1014AB0075E80C7F03122B8ED20DC212227F040221
:1014BB002B8EC20DC20F3003257F03122B8E7BFFA9
:1014CB007A1D79A8AFE3900089E4F0A3EFF0A37441
:1014DB0003F0A37475F0120F61C20302156F20089D
:1014EB0046E5E354AC64AC600330392A900001E06C
:1014FB00D394285004E004F0227BFF7A1D79CA12A2
:10150B000F61D208E4900004F0900001F0C2097F53
:10151B0004122B8E804E900027E070487B017A00DE
:10152B007909120086803D900004E0FFD39414509B
:10153B001EEF54037003FD8009900004E020E007C8
:10154B007D017F80121B01900004E004F0801520C8
:10155B000912D2097F04122B8EC2127BFF7A1D79DE
:10156B00DA120F61C2072220070BD2077F04122B5E
:10157B008EC2128022E5E354A0FBE4FAF9F8900046
:10158B0000E0FFE4FCFDFEC312182B6012E5E354F0
:0F159B00A06004D20ED238E5E354A0900000F017
:0115AA00221E
:0600860090008512186FC6
:10008C0090002EE01470030201631470030202420C
:10009C001470030202B314700302041F24046003DF
:1000AC0002059F90008512184F90001E1216BA6020
:1000BC000302059F7868E6D3940A50260690001A2E
:1000CC00743F12171A300C0302059F90008512180A
:1000DC004F90001A1216BAFDE4FF12000ED20C0259
:1000EC00059FE47868F6C20C90008512184F9000BA
:1000FC0016E412171A900015E412171A900013E464
:10010C0012171A900012E412171A900011E4121729
:10011C001A900010E412171A900018E412171A9093
:10012C000017E412171A90000EE4F5F01217FE9067
:10013C00000CE4F5F01217FE900019E412171A9057
:10014C00001B743F12171A90002E7401F0E49000FB
:10015C0007F0A3F002059FE5E35408FFE4FCEF6011
:10016C001CE5E35404601690008512184F90001E95
:10017C00740112171AE490002EF002059FE5E35467
:10018C0008FFE4FCEF704A9000B1E0FEA3E0FF90A2
:10019C00008512184F900002EE8FF01217FE7D05AD
:1001AC0012173CEF7802C333CE33CED8F9FF900050
:1001BC008512184F900006EE8FF01217FE9000B2C9
:1001CC00E025E0FF9000B1E03390000A8FF01217A9
:1001DC00FEE5E35404FFE4FCEF704F9000AFE0FE4B
:1001EC00A3E0FF90008512184FEE8FF01217DF90EE
:1001FC0000AFE0FEA3E0FF7D0512173CEF7802C3D1
:10020C0033CE33CED8F9FF90008512184F900004EE
:10021C00EE8FF01217FE9000B0E025E0FF9000AFDB
:10022C00E0339000088FF01217FE90008512184FE3
:10023C0090001D020594D3900008E09405900007EF
:10024C00E094005002806FE4900007F0A3F0E5E327
:10025C005408FFEF701F9000B1E0FEA3E0FF900088
:10026C008512184F90000EEE8FF01217FE900018AA
:10027C00740112171AE5E35404FFE4FCEF701F90AD
:10028C0000AFE0FEA3E0FF90008512184F90000C29
:10029C00EE8FF01217FE900017740112171A9000CF
:1002AC002E7403F002059FD3900008E09402900096
:1002BC0007E09400500AE475F00112179102059FB3
:1002CC00E4900007F0A3F090008512184F90000AFC
:1002DC001217A7FFAEF090000E1217A7D39FE5F0F0
:1002EC009E501C90008512184F9000081217A7FF03
:1002FC00AEF090000C1217A7D39FE5F09E4011E4CE
:10030C0090002EF090008512184F90001D0203E112
:10031C0090008512184F9000181216BA6401706D77
:10032C0090000E1217A7FFAEF0D39414EE94005069
:10033C0031E5E330E31F900016740112171A900098
:10034C001A1216BAC3943F404490008512184F906D
:10035C000018E4803590008512184F90001374013A
:10036C00802890008512184F9000061217A7FDD315
:10037C00EF9DEE95F0900085400812184F900013F9
:10038C00800612184F900016740112171A900085EF
:10039C0012184F9000171216BA6401600302059FE1
:1003AC0090000C1217A7FFAEF0D39414EE940050EB
:1003BC0034E5E330E222900015740112171A900014
:1003CC001A1216BAC3943F500302059F900085126F
:1003DC00184F900017E4803590008512184F90004C
:1003EC00127401802890008512184F900004121787
:1003FC00A7FDD3EF9DEE95F0900085400812184FA5
:10040C00900012800612184F900015740112171AE2
:10041C0002059FD3900008E09414900007E094002C
:10042C005031E475F0011217919000B1E0FEA3E099
:10043C00FF90008512184F90000EEE8FF01217FEF1
:10044C009000AFE0FFA3E090000CCF8FF01217FEEE
:10045C0002059FE4900007F0A3F090008512184F5E
:10046C009000181216BA640160030204FD90001784
:10047C001216BA6401707A9000061217A7FFAEF03C
:10048C0090000E1217A7FDACF0C39FEC9E40189085
:10049C00008512184F90000A1217A7FFD3ED9FEC9E
:1004AC0095F0500302059F90008512184F900004A0
:1004BC001217A7FFAEF090000C1217A7FDACF0C3FB
:1004CC009FEC9E401890008512184F900008121750
:1004DC00A7FFD3ED9FEC95F0500302059F9000858C
:1004EC0012184F900016740112171A90001502057D
:1004FC009490008512184F9000181216BA6401706F
:10050C00419000061217A7FFAEF090000E1217A72D
:10051C00FDACF0C39FEC9E401590008512184F90D7
:10052C00000A1217A7FFD3ED9FEC95F04014900032
:10053C008512184F900016740112171A90002E7421
:10054C0002F090008512184F9000171216BA640131
:10055C0070419000081217A7FFAEF090000C121714
:10056C00A7FDACF0D39FEC9E501590008512184F50
:10057C009000041217A7FFC3ED9FEC95F050149058
:10058C00008512184F900015740112171A90002E46
:10059C007402F090008512184F9000181216BAFFD2
:1005AC006401600D9000171216BA64016003020713
:1005BC009C9000131216BAFE6401600D900012128A
:1005CC0016BA64016003020716EFB4011E900017FF
:1005DC001216BAB40115EEB401119000131216BA2A
:1005EC00B40108900014740112171A900018121616
:1005FC00BAFFB401189000171216BA7010900013BD
:10060C001216BA6401702390001404801AEF701A49
:10061C009000171216BAB401119000121216BAB447
:10062C000108900014740112171A900013E41217A9
:10063C001A900012E412171A9000141216BA6401E0
:10064C0060030207B590008512184F90001A12161D
:10065C00BAD39400400890001A74FE1216E790006A
:10066C00191216BAFF90001A1216BAD39F401B909B
:10067C0000B9E024C8FF9000B8E03400FEC390003D
:10068C00B5E09F9000B4E09E504890008512184F42
:10069C009000191216BAFF90001A1216BAD39F9036
:1006AC000085501312184F90001AEF12171A900071
:1006BC001CE412171A801312184F90001C740112AC
:1006CC00171A90001A74021216E790002E7404F098
:1006DC00801390002E7402F090008512184F900039
:1006EC001CE412171AE4900007F0A3F09000851296
:1006FC00184F900014E412171A90001C1216BAFF2F
:10070C0090001A1216BAFD02079990008512184F24
:10071C009000161216BA6401600D9000151216BAEC
:10072C00640160030207B5900016E412171A9000DA
:10073C0015E412171A90001A1216BAC3943F500EF1
:10074C0090008512184F90001A74021216E7900050
:10075C002E7404F090008512184F90001B1216BADC
:10076C00FF90001A1216BAC39F40139000851218FE
:10077C004F90001AEF12171A90002E7401F090008F
:10078C008512184F90001A1216BAFDE4FF02000EE3
:10079C0090002EE0D394024010E4F09000851218E3
:0907AC004F90001E740112171A8F
:0107B5002221
:0B2C74009000A912186F9000ACEDF06A
:102C7F00E4FE9000ACE0FD14F0ED60299000A9E4B3
:102C8F0075F0011218581216A16EFEE4FFEFC394EF
:102C9F000850DFEE30E007C313648CFE8004EEC3F0
:072CAF0013FE0F80E8AF06E1
:012CB60022FB
:081B0100900085EFF0A3EDF068
:101B0900E4A3F0A3F078897C007D017BFF7A1E793C
:101B19007FFE7F2012167BE4900089F0A37455F0B4
:101B2900A374AAF0900085E0FE90008DF0900086E5
:101B3900E0FD90002DF0EE1218781B5C011B8B0262
:101B49001BDA031BE7061BE7071C30801C388100E2
:101B5900001C4690008C7402F0ED700E90008E749B
:101B690002F0E490002BF0021C46900086E064012C
:101B79006003021C4690008E04F0E490002CF002F1
:101B89001C4690008C7420F07F05900086E075F06B
:101B990012A424442FF8E6FE74892FF582E4340058
:101BA900F583EEF00FEFB412E17F17EFC3940D4008
:101BB90003021C46900086E075F00DA4242A2FF834
:101BC900E6FE74892FF582E43400F583EEF00F8088
:101BD900DA90008C7402F090008E04F0805F90001F
:101BE9008C7405F090008E7401F0781CE675F00590
:101BF900A4A3F0A37420F0900086E0FF700D90007C
:101C090028E07002800F9000298015EFB4012E9012
:101C19000029E0700890009174FFF080209000285E
:101C2900E0900091F0801690008C7401F0800E9085
:101C3900008C7402F090002AE090008EF090008CE5
:101C4900E02404FFE433900087F0A3EFF07B017AEE
:101C5900007989FD122C74900087E0FCA3E02489A7
:101C6900F58274003CF583EFF07F01122B8E900012
:101C790086E0FF700843BD0253BDFE8016EFB40134
:101C89000843BD2053BDEF800AEFB4FF0643BD22D0
:101C990053BDEE900088E02402FF900087E03400F5
:101CA900FE7B017A007989122CF2900086E0FF70A0
:101CB9000753BDFD43BD0122EFB4010753BDDF4307
:0D1CC900BD1022EFB4FF0653BDDF43BD1177
:011CD60022EB
:1028D500EF24FA605014604D24067069E4FE746DAF
:1028E5002EF8E6FF90002DE075F012A424442EF892
:1028F500A6070EEEB412E7E4FE747F2EF8E6FF900D
:10290500002DE075F00DA4242A2EF8A6070EEEB4CE
:1029150008E790002DE0700690002B04F02290004F
:102925002C7401F022786DE6B4E30D900005740176
:10293500F008E6900028F0229000067401F0786E09
:05294500E6900029F0FE
:01294A00226A
:10285400E4FE900085F0304377C2437BFF7A1D7914
:10286400F07869E6FF900089EEF0A3EFF008E6FF48
:10287400A3EEF0A3EFF008E6FFA3EEF0A3EFF00859
:10288400E6FFA3EEF0A3EFF008E6FFA3EEF0A3EF5C
:10289400F008E6FFA3EEF0A3EFF008E6FFA3EEF0E6
:1028A400A3EFF0A37409F0A3740EF0120F617B0080
:1028B4007A007969786BE62403FD122C747E007823
:1028C4006BE6246CF8E6B50707786CE6FF1228D5AA
:0128D40022E1
:1021A300011C00C139C13DC13BC13AC13C011B699E
:1021B300602A005B0BB80BEA0C1C0C800CB20CE41D
:1021C3000D160D480D7A0DAC0E100E420E740EA6B0
:0E21D3000ED80F0A0F3C0F870FD2101D106898
:1027D200E4FFEF25E0245BF582E43400F583E0FCBE
:1027E200A3E0FDC39000B9E09D9000B8E09C4005D5
:1027F2000FEFB415DD781CE6FEEFD39E40041806F9
:102802008003781B16E5E16007E4F5E1781CA60772
:10281200781BE6FED394C85006EEC3940A5007789C
:102822001CA607187669781CE6FFD394005002D2E2
:102832003DEFD394015002D239EFD394055002D226
:102842003BEFD3940A5002D23AEFD3940F5002D204
:012852003C49
:012853002262
:1021E1004100C9004100CC004100C8004200C600C6
:1021F100004100CA00C126C127C129C125C124C18E
:09220100284100CB00C12AC12BC9
:10294B009000CBE06062E4F0D2269000C9E004F086
:10295B00E0C394054004E4F0D2279000CCE004F0EF
:10296B00E0C3940A4004E4F0D2299000C6E475F069
:10297B0001121791C39000C7E094649000C6E094D5
:10298B00004006E4F0A3F0D2249000C8E004F0E08D
:10299B00C394FA4013E4F0D2259000CAE004F0E0AF
:0929AB0094044004E4F0D2282257
:03000B00022DE1E2
:102DE100C0E0C083C082C0D074FC258CF58C7466B1
:102DF100258AF58A9000CB7401F0D0D0D082D0839F
:032E0100D0E032EC
:0E2F3E00758901758CFC758A66D2A9D28C2229
:102C3000EFD39401501675FE0EEF25E02404FE74C8
:102C400003A806088002C333D8FC801475FE0FEF7A
:102C500024FE25E0FE7403A806088002C333D8FCD6
:102C6000F452FFEFB4040C75FE0F53FFF075FE0E27
:042C700053FF0F22DD
:102EE60075FE54EF5407F5FF75FE56AF058FFF7557
:062EF600FE5375FF0122EE
:102BDF00EFD39401501875FE0EEF25E02404FE7418
:102BEF0003A806088002C333D8FC42FF801675FE87
:102BFF000FEF24FE25E0FE7403A806088002C333FE
:102C0F00D8FC42FFEF70038DCE22EFB401038DCFBE
:102C1F0022EFB402038DDE22EFB40304AF058FDF82
:012C2F002282
:032FFD00010102CD
:10275200022EB6E493A3F8E493A34003F68001F2B9
:1027620008DFF48029E493A3F85407240CC8C33388
:10277200C4540F4420C8834004F456800146F6DF57
:10278200E4800B010204081020408090205AE47E6D
:10279200019360BCA3FF543F30E509541FFEE4934C
:1027A200A360010ECF54C025E060A840B8E493A313
:1027B200FAE493A3F8E493A3C8C582C8CAC583CA3E
:1027C200F0A3C8C582C8CAC583CADFE9DEE780BEF6
:01220A0000D3
:1015AB00E709F608DFFA8046E709F208DFFA803E22
:1015BB0088828C83E709F0A3DFFA8032E309F6080F
:1015CB00DFFA8078E309F208DFFA807088828C8377
:1015DB00E309F0A3DFFA806489828A83E0A3F6082B
:1015EB00DFFA805889828A83E0A3F208DFFA804C05
:1015FB0080D280FA80C680D4806980F280338010DC
:10160B0080A680EA809A80A880DA80E280CA803344
:10161B0089828A83ECFAE493A3C8C582C8CCC583BC
:10162B00CCF0A3C8C582C8CCC583CCDFE9DEE7808C
:10163B000D89828A83E493A3F608DFF9ECFAA9F00B
:10164B00EDFB2289828A83ECFAE0A3C8C582C8CC61
:10165B00C583CCF0A3C8C582C8CCC583CCDFEADE7A
:10166B00E880DB89828A83E493A3F208DFF980CCDC
:10167B0088F0EF60010E4E60C388F0ED2402B404D5
:10168B000050B9F582EB2402B4040050AF2323457C
:06169B0082239015FB7391
:1016A100BB010689828A83E0225002E722BBFE0247
:0916B100E32289828A83E493227A
:1016BA00BB010CE58229F582E5833AF583E02250E5
:1016CA0006E92582F8E622BBFE06E92582F8E2222F
:0D16DA00E58229F582E5833AF583E4932249
:1016E700BB010FF8E58229F582E5833AF583E02807
:1016F700F0225009C58229F8E58226F622BBFE09A9
:10170700C58229F8E22582F222F8EA2583F583E9E2
:03171700932822F2
:10171A00F8BB010DE58229F582E5833AF583E8F005
:10172A00225006E92582C8F622BBFE05E92582C8B1
:02173A00F22299
:10173C00BC000BBE0029EF8DF084FFADF022E4CC91
:10174C00F875F008EF2FFFEE33FEEC33FCEE9DEC5A
:10175C00984005FCEE9DFE0FD5F0E9E4CEFD22EDA0
:10176C00F8F5F0EE8420D21CFEADF075F008EF2FEA
:10177C00FFED33FD4007985006D5F0F222C398FDDB
:05178C000FD5F0EA2278
:10179100C5F0F8A3E028F0C5F0F8E58215827002E3
:0617A1001583E038F02280
:1017A700BB0110E58229F582E5833AF583E0F5F080
:1017B700A3E0225009E92582F886F008E622BBFE5D
:1017C7000AE92582F8E2F5F008E222E5832AF583A3
:0817D700E993F5F0A3E9932268
:1017DF00BB010A89828A83F0E5F0A3F0225006F755
:0F17EF0009A7F01922BBFE06F3E5F009F3192252
:1017FE00F8BB0111E58229F582E5833AF583E8F01D
:10180E00E5F0A3F0225009E92582C8F608A6F022D9
:0D181E00BBFE09E92582C8F2E5F008F222C0
:10182B00EB9FF5F0EA9E42F0E99D42F0E89C45F013
:01183B00228A
:10183C00E8600FECC313FCED13FDEE13FEEF13FF8A
:03184C00D8F122AE
:09184F00E0FBA3E0FAA3E0F9229A
:10185800F8E0FBA3A3E0F925F0F0E5821582700219
:071868001583E0FA38F022BD
:09186F00EBF0A3EAF0A3E9F0227A
:10187800D083D082F8E4937012740193700DA3A3FF
:1018880093F8740193F5828883E473740293686013
:06189800EFA3A3A380DF13
:10189E00EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02DD7
:1018AE00FDE43CFCE8A42EC8C5F03DFDE43CFCEF95
:0D18BE00A4FFE5F028FEE43DFDE43CFC2223
:100EF600E5082489F582E43400F583E005082290AC
:100F06000086301A03900089E475F0011218580221
:100F160016A12013E97F2ED2138018EF540F2490C8
:100F2600D43440D4FF30170BEF24BFB41A0050035B
:100F36002461FFE50960021509050CE50C70020540
:100F46000B301A0E900086E475F001121858EF0265
:100F560018CB022F307403D21A8003E4C21AF508A4
:100F660090008612186FE4F509F50BF50CE509609B
:100F7600077F20120F3980F5750AFFC214C213C20B
:100F860015C216C218C219C21B120F05FF700D300A
:100F96001A057F00120F4AAF0CAE0B22B4255FC2B2
:100FA600D5C217120F05FF24D0B40A00501A75F0E7
:100FB6000A780930D50508B6FF0106C6A426F6202C
:100FC600D5047002D21680D924CFB41A00EF50048B
:100FD600C2E5D21702114BD21480C6D21380C0D2FA
:100FE6001580BCD2D580BAD21880B47F20120F39B2
:100FF6002015077401B5090040F1120EF6FF120F15
:1010060039020F73D21BD2198095120EF6FB120EFF
:10101600F6FA120EF6F94A4B7006791C7A127BFF25
:1010260020152EE509602A7E008E82758300121631
:10103600BA60060EEE650A70F0C2D5EBC0E0EAC0F3
:10104600E0E9C0E0EE121192D0E0F9D0E0FAD0E08B
:10105600FB1216A1FF60AAEBC0E0EAC0E0E9C0E01F
:10106600120F39D0E02401F9D0E03400FAD0E0FBC9
:10107600E50A0460DCD50AD980877BFF7A11798E70
:10108600D215809C791080027908C219C21B80088B
:10109600D2D5790A8004790AC2D5E50A047002F528
:1010A6000AE4FAFDFEFF120EF6FC7B08201413126A
:1010B6000EF6FD7B1030130A120EF6FE120EF6FF28
:1010C6007B20EC3382D592D55013C3E43013069FB0
:1010D600FFE49EFEE42014039DFDE49CFCE4CBF8B3
:1010E600C214EC700CCFCECDCCE824F8F870F380A7
:1010F60017C3EF33FFEE33FEED33FDEC33FCEB337A
:10110600FB994002FB0FD8E9EB301405F8D0E0C498
:1011160048B214C0E00AEC4D4E4F78207B0070C2F6
:10112600EAB50A0040BCC0E0121194D0F0D0E0202D
:101136001404C4C0E0C4B214C0F0120F22D0F0D51B
:10114600F0EB020F73121878101053108A580FE143
:101156004C0FDD42108E4F1096441096490FF64301
:08116600109C5510804610801A
:10116E0045108047123C500FE52D0FE92E100C2B29
:10117E000FED23100A2012252A0FA5480000100497
:10118E003F3F3F00790AA2D5201614301809B91036
:10119E00020404B9080104A2D5201902500104204A
:1011AE0015689215B509005034C0E07F203016192D
:1011BE007F30A21572197218500F1211EBC215C2A0
:1011CE0019C218C21B7F30800F301803E9C0E0121D
:1011DE000F39301803D0E0F9D0E0B509CC3018172C
:1011EE007F30B9100C120F397F583017077F788077
:1011FE0003B90803120F393015057F2D020F397F01
:10120E0020201BF87F2B2019F322921580CF286EF9
:10121E00756C6C2900D214120EF63014F8C21478C4
:10122E000930D50108F6020FA52D50434958120E6C
:10123E00F62403B405004001E490123793120F2AEE
:0D124E00743A120F2AD21675090402108A94
:1018CB00BB010689828A83F0225002F722BBFE01FC
:0218DB00F322F6
:00000001FF

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,2 @@
---- BOOST_VOUT_MAX Matches (6 in 4 files) ----
config.h (UsrInc\inc) line 169 : #define BOOST_VOUT_MAX Boost_Vout_5_225V //Boost 输出最高电压阈值。
DisCharge_Handler in discharge_module.c (UsrSrc\discharge) : DisCharge_Boost_Open(OFF, BOOST_VOUT_MAX); //250ms定时开一次Boost这个VOUT输出电压是直接输出固定值还是输出跟随充当前电压值
Key_Handler in key.c (UsrSrc\key) : DisCharge_Boost_Open(OFF,BOOST_VOUT_MAX);
Key_Handler in key.c (UsrSrc\key) : DisCharge_Boost_Open(OFF,BOOST_VOUT_MAX);
Vox_Det_Machine in vox_module.c (UsrSrc\vox) : DisCharge_Boost_Open(OFF,BOOST_VOUT_MAX); //开关盖Boost输出5.2V保证耳机一定能被唤醒。Boost Enable异常时由硬件主动关闭。开启Boost开启Vox 5v会在开启Boost之后100ms延时
Vox_Det_Machine in vox_module.c (UsrSrc\vox) : DisCharge_Boost_Open(OFF, BOOST_VOUT_MAX); //Boost Enable异常时由硬件主动关闭。开启Boost开启Vox 5v会在开启Boost之后100ms延时
---- JEITA_NTC_CHG_COLD_LOW_TMP Matches (1 in 1 files) ----
config.h (UsrInc\inc) line 191 : #define JEITA_NTC_CHG_COLD_LOW_TMP T_0C //配置充电NTC冷状态温度下限值。

View File

@ -76,7 +76,8 @@ typedef struct {
#define PRECHG_TMR_EN_Pos (3U)
#define PRECHG_TMR_EN_Pos_Msk (0x1UL << PRECHG_TMR_EN_Pos)
#define PRECHG_TMR_EN PRECHG_TMR_EN_Pos_Msk
#define PRECHG_TMR_EN_2H PRECHG_TMR_EN_Pos_Msk
#define PRECHG_TMR_EN_1H 0x00
#define FASTCHG_TMR_SET_3H 0x00
#define FASTCHG_TMR_SET_5H 0x01

View File

@ -160,6 +160,87 @@
#define T_80C 113 //80℃ NTC:12.4K
#endif
/* NTC保护标准选择JEITA or IEC.*/
#define NTC_JEITA 1
#define NTC_IEC 0
/* NTC充电温度范围。 */
#if NTC_IEC
#define IEC_NTC_CHG_PRO_LOW_TMP T_0C //配置充电NTC保护温度下限值。
#define IEC_NTC_CHG_HYST_LOW_TMP T_3C //配置充电NTC保护恢复温度下限迟滞值。
#define IEC_NTC_CHG_PRO_HIGH_TMP T_45C //配置充电NTC保护温度上限值。
#define IEC_NTC_CHG_HYST_HIGH_TMP T_42C //配置充电NTC保护恢复温度上限迟滞值。
#elif NTC_JEITA
/* JEITA模式NTC温度保护上下限阈值和迟滞温度。 */
#define JEITA_NTC_CHG_PRO_LOW_TMP T_0C //配置充电NTC保护温度下限值。
#define JEITA_NTC_CHG_PRO_HYST_LOW_TMP T_3C //配置充电NTC保护恢复温度下限迟滞值。
#define JEITA_NTC_CHG_PRO_HIGH_TMP T_60C //配置充电NTC保护温度上限值。
#define JEITA_NTC_CHG_PRO_HYST_HIGH_TMP T_57C //配置充电NTC保护恢复温度上限迟滞值。
/* JEITA模式NTC温度冷状态上下限阈值和迟滞温度。 */
#define JEITA_NTC_CHG_COLD_HIGH_TMP T_10C //配置充电NT C冷状态温度上限值。
#define JEITA_NTC_CHG_COLD_HYST_HIGH_TMP T_8C //配置充电NTC冷状态恢复温度上限迟滞值。
/* JEITA模式NTC温度暖状态上下限阈值和迟滞温度。 */
#define JEITA_NTC_CHG_WARM_LOW_TMP T_10C //配置充电NTC暖状态温度下限值。
#define JEITA_NTC_CHG_WARM_HYST_LOW_TMP T_12C //配置充电NTC暖状态恢复温度下限迟滞值。
#define JEITA_NTC_CHG_WARM_HIGH_TMP T_45C //配置充电NT C暖状态温度上限值。
#define JEITA_NTC_CHG_WARM_HYST_HIGH_TMP T_42C //配置充电NTC暖状态恢复温度上限迟滞值。
/* JEITA模式NTC温度热状态上下限阈值和迟滞温度。 */
#define JEITA_NTC_CHG_HOT_LOW_TMP T_45C //配置充电NTC热状态温度下限值。
#define JEITA_NTC_CHG_HOT_HYST_LOW_TMP T_47C //配置充电NTC热状态恢复温度下限迟滞值。
#endif
/* NTC放电温度范围。 */
#define NTC_DISCHG_PRO_LOW_TMP T_N20C //配置放电NTC保护温度下限值。
#define NTC_DISCHG_HYST_LOW_TMP T_N15C //配置放电NTC保护恢复温度下限迟滞值。
#define NTC_DISCHG_PRO_HIGH_TMP T_80C //配置放电NTC保护温度上限值。
#define NTC_DISCHG_HYST_HIGH_TMP T_75C //配置放电NTC保护恢复温度上限迟滞值。
/* Bat Level Set. 5% Each Gear */
#define C_batLevel_SetMax 21 //电量计档位数设置
#define Bat_Lev_0 3000 //0%
#define Bat_Lev_5 3050 //5%
#define Bat_Lev_10 3100 //10%
#define Bat_Lev_15 3200 //15%
#define Bat_Lev_20 3250 //20%
#define Bat_Lev_25 3300 //25%
#define Bat_Lev_30 3350 //30%
#define Bat_Lev_35 3400 //35%
#define Bat_Lev_40 3450 //40%
#define Bat_Lev_45 3500 //45%
#define Bat_Lev_50 3600 //50%
#define Bat_Lev_55 3650 //55%
#define Bat_Lev_60 3700 //60%
#define Bat_Lev_65 3750 //65%
#define Bat_Lev_70 3800 //70%
#define Bat_Lev_75 3850 //75%
#define Bat_Lev_80 3900 //80%
#define Bat_Lev_85 3975 //85%
#define Bat_Lev_90 4050 //90%
#define Bat_Lev_95 4125 //95%
#define Bat_Lev_100 4200 //100%
/* Boost Module Config Para Setting. */
@ -169,6 +250,10 @@
#define BOOST_VOUT_MAX Boost_Vout_5_225V //Boost 输出最高电压阈值。
/* LED 驱动输出限流配置。 */
#define LED_DRV_LIMIT_SET P0_DRV_400 //配置P02-P05限流输出三个档位限流电阻400Ω、800Ω、无限流。
/* KEY And Hall Module Setting. */
#define HALL_OPEN_LEV_SET 1 //配置是高电平为开盖还是低电平为开盖。1:高电平为开盖0:低电平为开盖。
@ -183,7 +268,9 @@
#define VFLOAT_SET CHG_VFLOAT_4_200V //配置浮充电压。
#define FASTCHG_TMR_SET FASTCHG_TMR_SET_5H //配置恒流和恒压时间。
#define PRECHG_TIM_SET PRECHG_TMR_EN_1H //配置涓流充超时时间。
#define FASTCHG_TMR_SET FASTCHG_TMR_SET_5H //配置恒流和恒压超时时间。
#define VFLOAT_JEITA_HOT CHG_VFLOAT_4_000V //配置JEITA标准中NTC过热充电浮充电压。
@ -213,6 +300,14 @@
#define VOX_CLOSE_5V_HOLD_CNT 3 //配置关盖动作后VOX 输出5V持续时间100ms * 3单位ms。
/* 双向通讯协议选择 */
#define JIELI 1 //杰理耳机芯片
#define ZHONGKE 0 //中科蓝讯耳机芯片
#define XUANHENG 0 //玄恒耳机芯片
/* Vox跟随充参数设置。(100ms调用周期) */
#define VOX_CV_TC_CURRENT 20 //耳机充电处于CV/TC阶段的电流值单位mA。
@ -233,7 +328,9 @@
/*Sleep Module Setting*/
/*Enter Sleep Time Debounce*/
#define ENTER_STANDBYMODE_CNT 15 //进入Standby Mode 延迟时间,单位:秒
#define ENTER_STANDBYMODE_CNT 15 //进入Standby Mode 延迟时间,单位:秒
#define STANDBY_TIM_SET STB_TMR_SET_8S //配置Standby定时唤醒时间2s、4s、8s、16s单位
//#define ENTER_STANDBYMODE_CNT 10 //进入Standby Mode 延迟时间,单位:秒

View File

@ -61,12 +61,6 @@
#define VOX_RX //739Bytes
/* Ë«ÏòͨѶЭÒéÑ¡Ôñ */
#define JIELI 0
#define ZHONGKE 1
#endif
#define CHARGER_ENABLE 1 //94Bytes
@ -81,10 +75,6 @@
#if ADC_ENABLE
#define NTC_JEITA 1
#define NTC_IEC 0
#define NTC_ENABLE //513Bytes JEITA
#endif

View File

@ -60,6 +60,13 @@ sbit pin_LED_4 = P0^5;
#define LEDB_OFF() pin_LED_4 = 0 //LED_4_OFF()
#define LEDB_TOG() pin_LED_4 = !pin_LED_4 //LED_4_RUN()
/* 配置P02-P05限流输出<03h> --P0_DRV */
#define P0_DRV_NONE 0x00
#define P0_DRV_400 0xAA
#define P0_DRV_800 0xFF
/******************************************************************************\
Typedef definitions
\******************************************************************************/

View File

@ -161,6 +161,20 @@
#define VIN_PRESENT_WK_FLAG_Pos_Msk (0x1UL << VIN_PRESENT_WK_FLAG_Pos)
#define VIN_PRESENT_WK_FLAG VIN_PRESENT_WK_FLAG_Pos_Msk
/* Standby ¶¨Ê±»½ÐÑ¿ØÖƼĴæÆ÷--STB_TIM_CTL */
#define EN_FORCE_LOSC_Pos (7U)
#define EN_FORCE_LOSC_Pos_Msk (0x1UL << EN_FORCE_LOSC_Pos)
#define EN_FORCE_LOSC EN_FORCE_LOSC_Pos_Msk
#define STB_TMR_EN_Pos (6U)
#define STB_TMR_EN_Pos_Msk (0x1UL << STB_TMR_EN_Pos)
#define STB_TMR_EN STB_TMR_EN_Pos_Msk
#define STB_TMR_SET_2S (0U)
#define STB_TMR_SET_4S (1U)
#define STB_TMR_SET_8S (2U)
#define STB_TMR_SET_16S (3U)
/*中断号计算方式:中断向量 = 中断号 * 8 + 3*/
#define Interrupt_Vector_IE0 0 //0x03,SY8836 IE0 use for wakeup

View File

@ -44,7 +44,7 @@ extern char putchar (char ch);
#endif
#define COM0_Data_Lenth 64
#define COM0_Data_Lenth 32
#ifdef VOX_RX

View File

@ -260,6 +260,11 @@ SFRDATA |= (VOX_LIGHT_TO_HAVEY_128 << 2) | VOX_HAVEY_TO_LIGHT_8;
#define Vox_Pull_Up_50k_Pos (0U)
#define Vox_Pull_Up_50k_Pos_Msk (0x1UL << Vox_Pull_Up_50k_Pos)
#define Vox_Pull_Up_50k Vox_Pull_Up_50k_Pos_Msk
#if XUANHENG
#define BOXHEADER 0xAA //VOX通讯数据包头
#else
#define BOXHEADER 0x55AA //VOX通讯数据包头
@ -268,6 +273,8 @@ SFRDATA |= (VOX_LIGHT_TO_HAVEY_128 << 2) | VOX_HAVEY_TO_LIGHT_8;
#define BOXIDCODE 0xFF //VOX通讯耳机->仓数据包头
#endif
#define Vox_TX_Interval 2 //Vox定时发送指令时间间隔
#define Vox_TX_Interval_2 4
@ -374,6 +381,49 @@ typedef enum _VOX_BES_COMMAND_E
}VOX_BES_COMMAND_E;
#elif XUANHENG
/*耳机通道选择*/
#define TWS_VOL 0x04
#define TWS_VOR 0x05
#define TWS_BOX 0x02
#define TWS_PC 0x03
typedef enum {
VOL_CHAN = 0x24,
VOR_CHAN = 0x25,
VOX_BOTH = 0x21,
VOX_MAX_CHAN = 0x02,
}e_Vox_Chan;
/*耳机和充电仓进行双向通讯的协议命令ID。*/
typedef enum _VOX_BES_COMMAND_E
{
CMD_SHUT_DOWN = 0x0005, //关机
CMD_TWS_GET_BTADDR = 0x0037, //获取对耳MAC地址
CMD_TWS_SET_BTADDR = 0x000A, //写入对耳MAC地址
CMD_CLEAR_PAIR = 0x000B, //清除配对记录
CMD_HEARTBEAT = 0x000D, //心跳包
CMD_SN = 0x000E, //写入SN码到耳机
CMD_GET_INTO_PAIR = 0x000F, //耳机进入配对状态
CMD_PAIRING_IMD = 0x0011, //立即执行TWS配对
BES_RESET, //耳机复位Pattern
}VOX_BES_COMMAND_E;
#endif

View File

@ -36,6 +36,8 @@
idata int8_t ADC_Offset_Error = 0; //ADC Offset Error 校准值寄存器
idata int8_t Bat_ADC_Offset_Error = 0;
idata int8_t Vor_Isense_Gain_Error = 0;
idata int8_t Vol_Isense_Gain_Error = 0;
@ -106,7 +108,10 @@ void Adc_Init(void)
SFRDATA |= 0x01;
#if 0
ADC_Offset_Error = ADC_OFFSET; //获取ADC Offset Error校准值。
ADC_Offset_Error = (int8_t)( ADC_OFFSET - 8 ); //获取ADC Offset Error校准值。
Bat_ADC_Offset_Error = (int8_t)( ADC_OFFSET >> 4 );
/* 获取Ivox对应的Offset Error 和Gain Error */
Vol_Isense_Offset_Error = (int8_t)( IVOX_OFFSET - 8 ) * 10; //VOX 电流采样 offset 修调。每一个位为 10mV1000 对应 offset 误差为 0mV1001 对应 offset误差为 10mV0111 对应 offset 误差为-10mV
@ -116,6 +121,7 @@ void Adc_Init(void)
Vor_Isense_Offset_Error = (int8_t)( ( IVOX_OFFSET >> 4 ) - 8 ) * 10;
Vor_Isense_Gain_Error = IVOR_GAIN;
#endif
EX6 = 1; //ADC IRQ Enable
@ -155,7 +161,7 @@ void PMU_ADC_Chn_Data( PMU_ADC_CHANNELS_E pmu_Adc_Chn )
g_Value_Adc_Avg = ((uint32_t)g_Value_Adc_Avg * 2500) >> 10 ; //ADC的LSB = 2500mV / 1024 = 2.44mV
//g_pmu_Adc_Ivol = ( g_Value_Adc_Avg - Vol_Isense_Offset_Error ) / ( (uint32_t)( 5000 + 3 * Vol_Isense_Gain_Error ) / 1000 ); //IVOL电压位VOL的电流放大5倍送给ADC例如100mA电流ADC采样电压为500mV。
//g_pmu_Adc_Ivol = ( g_Value_Adc_Avg - Vol_Isense_Offset_Error ) / ( (uint16_t)( 500 + 2 * Vol_Isense_Gain_Error ) / 100 ); //IVOL电压位VOL的电流放大5倍送给ADC例如100mA电流ADC采样电压为500mV。
g_pmu_Adc_Ivol = ( g_Value_Adc_Avg - Vol_Isense_Offset_Error ) / 5 ;
break;
@ -163,15 +169,17 @@ void PMU_ADC_Chn_Data( PMU_ADC_CHANNELS_E pmu_Adc_Chn )
g_Value_Adc_Avg = ((uint32_t)g_Value_Adc_Avg * 2500) >> 10 ; //ADC的LSB = 2500mV / 1024 = 2.44mV
//g_pmu_Adc_Ivor = ( g_Value_Adc_Avg - Vor_Isense_Offset_Error ) / ( (uint32_t)( 5000 + 3 * Vor_Isense_Gain_Error ) / 1000 ); //IVOR电压位VOR的电流放大5倍送给ADC例如100mA电流ADC采样电压为500mV。
// g_pmu_Adc_Ivor = ( g_Value_Adc_Avg - Vor_Isense_Offset_Error ) / ( (uint16_t)( 500 + 2 * Vor_Isense_Gain_Error ) / 100 ); //IVOR电压位VOR的电流放大5倍送给ADC例如100mA电流ADC采样电压为500mV。
g_pmu_Adc_Ivor = ( g_Value_Adc_Avg - Vor_Isense_Offset_Error ) / 5;
break;
case ADC_BAT:
g_Value_Adc_Avg = ((uint32_t)( g_Value_Adc_Avg - ADC_Offset_Error ) * 2500) >> 10 ; //ADC的LSB = 2500mV / 1024 = 2.44mV
g_Value_Adc_Avg = ((uint32_t)( g_Value_Adc_Avg ) * 2500) >> 10 ; //ADC的LSB = 2500mV / 1024 = 2.44mV
g_Vbat_Adc = g_Value_Adc_Avg << 1; //VBAT的2分压。
//g_Vbat_Adc += (int32)( ( g_Vbat_Adc * 4 * ( Bat_ADC_Offset_Error - 8 ) ) / 1000 );
break;

View File

@ -473,7 +473,6 @@ void Bat_Gauge_Handle(void)
#define C_offset_bat_level_MAX 200
#define C_offset_bat_level_MIN 10
bit F_batlevel_protect = 0; //低电保护
bit F_batlevel_25p = 0;
@ -484,32 +483,30 @@ bit F_batlevel_75p = 0;
idata uint8_t offset_bat_level = ( C_offset_bat_level_MAX + C_offset_bat_level_MIN ) / 2;
#define C_batLevel_SetMax 21
/*充电电池电压会浮高,具体电压需要测试。*/
const uint16_t Boost_batlevel_Threshold[C_batLevel_SetMax] =
{
3000, //0%
3050, //5%
3100, //10%
3200, //15%
3250, //20%
3300, //25%
3350, //30%
3400, //40%
3450, //45%
3500, //50%
3600, //55%
3650, //60%
3700, //65%
3750, //70%
3800, //75%
3850, //80%
3900, //85%
3975, //90%
4050, //95%
4125, //100%
4200 //10
Bat_Lev_0, //0%
Bat_Lev_5, //5%
Bat_Lev_10, //10%
Bat_Lev_15, //15%
Bat_Lev_20, //20%
Bat_Lev_25, //25%
Bat_Lev_30, //30%
Bat_Lev_35, //35%
Bat_Lev_40, //40%
Bat_Lev_45, //45%
Bat_Lev_50, //50%
Bat_Lev_55, //55%
Bat_Lev_60, //60%
Bat_Lev_65, //65%
Bat_Lev_70, //70%
Bat_Lev_75, //75%
Bat_Lev_80, //80%
Bat_Lev_85, //85%
Bat_Lev_90, //90%
Bat_Lev_95, //95%
Bat_Lev_100 //100%
};
#if 0
@ -534,7 +531,7 @@ void check_bat_level(void)
#if ADC_ENABLE
for(i=0; i < C_batLevel_SetMax; i++)
{
#if 0
#if 1
if( g_Vbat_Adc < Boost_batlevel_Threshold[i] )
{

View File

@ -89,7 +89,7 @@ void Charger_Init(void)
SFRDATA |= R_Set0 | R_Set1; //Charger 环路 RC 调零电阻配置00-11 档位逐步增大调零电阻阻值。
CHG_CTL &=~ 0x0E;
CHG_CTL |= FASTCHG_TMR_SET;
CHG_CTL |= FASTCHG_TMR_SET | PRECHG_TIM_SET ;
gCharge_Cfg.nTrickle_Cur = TRICKLE_CUR_SET;
@ -156,9 +156,9 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( Charge_sta ) //VBUS plugin status 充电模式
{
if( ( NTC_Adc <= T_0C ) && ( NTC_Adc > T_60C ) )
if( ( NTC_Adc <= JEITA_NTC_CHG_PRO_LOW_TMP ) && ( NTC_Adc > JEITA_NTC_CHG_PRO_HIGH_TMP ) )
{
if( NTC_Adc > T_10C ) //0.5*ICC充电
if( NTC_Adc > JEITA_NTC_CHG_COLD_HIGH_TMP ) //0.5*ICC充电
{
NTC_250mA_Chg_Flag = 1;
@ -166,7 +166,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( NTC_500mA_Chg_Flag )
{
if( NTC_Adc > T_8C )
if( NTC_Adc > JEITA_NTC_CHG_COLD_HYST_HIGH_TMP )
{
NTC_500mA_Chg_Flag = 0;
@ -181,7 +181,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
NTC_Flag = FALSE;
}
else
if( NTC_Adc <= T_10C && NTC_Adc > T_45C ) //1*ICC充电
if( NTC_Adc <= JEITA_NTC_CHG_WARM_LOW_TMP && NTC_Adc > JEITA_NTC_CHG_WARM_HIGH_TMP ) //1*ICC充电
{
NTC_500mA_Chg_Flag = 1;
@ -189,7 +189,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( NTC_250mA_Chg_Flag )
{
if( NTC_Adc <= T_12C )
if( NTC_Adc <= JEITA_NTC_CHG_WARM_HYST_LOW_TMP )
{
NTC_250mA_Chg_Flag = 0;
@ -205,7 +205,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( NTC_Change_CV_Chg_Flag )
{
if( NTC_Adc <= T_42C )
if( NTC_Adc <= JEITA_NTC_CHG_WARM_HYST_HIGH_TMP )
{
NTC_Change_CV_Chg_Flag = 0;
@ -220,7 +220,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
NTC_Flag = FALSE;
}
else
if( NTC_Adc <= T_45C ) //浮充电压4.05V
if( NTC_Adc <= JEITA_NTC_CHG_HOT_LOW_TMP ) //浮充电压4.05V
{
NTC_Change_CV_Chg_Flag = 1;
@ -228,7 +228,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( NTC_500mA_Chg_Flag )
{
if(NTC_Adc <= T_47C)
if(NTC_Adc <= JEITA_NTC_CHG_HOT_HYST_LOW_TMP)
{
NTC_500mA_Chg_Flag = 0;
@ -245,7 +245,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( CHG_NTC_Low_Pro_Flag )
{
if( NTC_Adc < T_3C)
if( NTC_Adc < JEITA_NTC_CHG_PRO_HYST_LOW_TMP)
{
CHG_NTC_Low_Pro_Flag = 0;
NTC_Flag = FALSE;
@ -258,7 +258,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( CHG_NTC_High_Pro_Flag )
{
if( NTC_Adc > T_57C )
if( NTC_Adc > JEITA_NTC_CHG_PRO_HYST_HIGH_TMP )
{
CHG_NTC_High_Pro_Flag = 0;
NTC_Flag = FALSE;
@ -271,7 +271,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
}
else
{
if( NTC_Adc > T_0C ) //不充电
if( NTC_Adc > JEITA_NTC_CHG_PRO_LOW_TMP ) //不充电
{
CHG_NTC_Low_Pro_Flag = 1;
@ -281,7 +281,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
NTC_Flag = TRUE;
}
else
if( NTC_Adc <= T_60C ) //不充电
if( NTC_Adc <= JEITA_NTC_CHG_PRO_HIGH_TMP ) //不充电
{
CHG_NTC_High_Pro_Flag = 1;
@ -302,11 +302,11 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
CHG_NTC_Low_Pro_Flag = 0;
CHG_NTC_High_Pro_Flag = 0;
if( NTC_Adc <= T_N20C && NTC_Adc > T_80C ) //正常放电
if( NTC_Adc <= NTC_DISCHG_PRO_LOW_TMP && NTC_Adc > NTC_DISCHG_PRO_HIGH_TMP ) //正常放电
{
if( DisChg_NTC_Low_Pro_Flag )
{
if( NTC_Adc < T_N15C )
if( NTC_Adc < NTC_DISCHG_HYST_LOW_TMP )
{
DisChg_NTC_Low_Pro_Flag = 0;
NTC_Flag = FALSE;
@ -319,7 +319,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if( DisChg_NTC_High_Pro_Flag )
{
if( NTC_Adc > T_75C )
if( NTC_Adc > NTC_DISCHG_HYST_HIGH_TMP )
{
DisChg_NTC_High_Pro_Flag = 0;
NTC_Flag = FALSE;
@ -332,12 +332,12 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
}
else //异常不放电
{
if( NTC_Adc > T_N20C )
if( NTC_Adc > NTC_DISCHG_PRO_LOW_TMP )
{
DisChg_NTC_Low_Pro_Flag = 1;
}
else
if( NTC_Adc < T_80C )
if( NTC_Adc < NTC_DISCHG_PRO_HIGH_TMP )
{
DisChg_NTC_High_Pro_Flag = 1;
}
@ -350,11 +350,11 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if(Charge_sta) //VBUS plugin status 充电模式
{
if(NTC_Adc <= T_0C && NTC_Adc > T_45C) //正常充电
if(NTC_Adc <= IEC_NTC_CHG_PRO_LOW_TMP && NTC_Adc > IEC_NTC_CHG_PRO_HIGH_TMP) //正常充电
{
if(CHG_NTC_Low_Pro_Flag)
{
if( NTC_Adc < T_3C )
if( NTC_Adc < IEC_NTC_CHG_HYST_LOW_TMP )
{
CHG_NTC_Low_Pro_Flag = 0;
@ -368,7 +368,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if(CHG_NTC_High_Pro_Flag)
{
if( NTC_Adc > T_42C )
if( NTC_Adc > IEC_NTC_CHG_HYST_HIGH_TMP )
{
CHG_NTC_High_Pro_Flag = 0;
@ -382,12 +382,12 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
}
else //异常不充电
{
if(NTC_Adc > T_0C)
if(NTC_Adc > IEC_NTC_CHG_PRO_LOW_TMP)
{
CHG_NTC_Low_Pro_Flag = 1;
}
else
if(NTC_Adc <= T_45C)
if(NTC_Adc <= IEC_NTC_CHG_PRO_HIGH_TMP)
{
CHG_NTC_High_Pro_Flag = 1;
}
@ -406,11 +406,11 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
CHG_NTC_Low_Pro_Flag = 0;
CHG_NTC_High_Pro_Flag = 0;
if( (NTC_Adc <= T_N20C) && (NTC_Adc > T_80C) ) //正常放电
if( (NTC_Adc <= NTC_DISCHG_PRO_LOW_TMP) && (NTC_Adc > NTC_DISCHG_PRO_HIGH_TMP) ) //正常放电
{
if( DisChg_NTC_Low_Pro_Flag )
{
if( NTC_Adc < T_N15C )
if( NTC_Adc < NTC_DISCHG_HYST_LOW_TMP )
{
DisChg_NTC_Low_Pro_Flag = 0;
@ -424,7 +424,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
if(DisChg_NTC_High_Pro_Flag)
{
if( NTC_Adc > T_75C )
if( NTC_Adc > NTC_DISCHG_HYST_HIGH_TMP )
{
DisChg_NTC_High_Pro_Flag = 0;
@ -438,12 +438,12 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
}
else //异常不放电
{
if(NTC_Adc > T_N20C)
if(NTC_Adc > NTC_DISCHG_PRO_LOW_TMP)
{
DisChg_NTC_Low_Pro_Flag = 1;
}
else
if(NTC_Adc <= T_80C)
if(NTC_Adc <= NTC_DISCHG_PRO_HIGH_TMP)
{
DisChg_NTC_High_Pro_Flag = 1;
}
@ -489,6 +489,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
*/
void Charger_Handler(void)
{
uint16_t nCVFloat = 0;
if( !(CHIP_STA4 & VIN_PG) ) //未检测到Power good,则关闭Charger使能后返回。
{
CHG_CTL &= ~CHG_EN; //Disable Charger
@ -568,8 +569,16 @@ void Charger_Handler(void)
if( IRQ_FLAG9 & CHG_Complete ) //Charg complete interrupt
{
#if ADC_ENABLE
if( g_Vbat_Adc < ( gCharge_Cfg.nVFloat - BAT_RECHARG_THD ) ) //仓复充
if( gCharge_Cfg.nVFloat == CHG_VFLOAT_4_200V )
{
nCVFloat = 4200;
}
else
{
nCVFloat = 4000;
}
if( g_Vbat_Adc < ( nCVFloat - BAT_RECHARG_THD ) ) //仓复充
{
IRQ_FLAG9 = CHG_Complete;
}

View File

@ -253,7 +253,7 @@ uint8_t Key_Lift_Debounce = 0;
nKey_Press_short_irq = 0;
/*todo*/
Event_key = KEY_EVENT_SHORT;
// Event_key = KEY_EVENT_SHORT;
#ifdef _DEBUG_KEY
printf("short press\r\n");
@ -273,7 +273,13 @@ uint8_t Key_Lift_Debounce = 0;
if( Key_TWS_Pair_Tim < 1 )
{
#ifdef VOX_TX
#if XUANHENG
HandleTxCommand(CMD_TWS_GET_BTADDR,VOR_CHAN);
#else
HandleTxCommand(VHOUSE_CMD_PAIR,VOR_CHAN); //右耳发配对指令,区分耳机通道。
#endif
#endif
Vox_Get_BES_Addr_Flag[VOL_TYPE] = 0x00;
@ -305,11 +311,15 @@ uint8_t Key_Lift_Debounce = 0;
if( Vox_Get_BES_Addr_Flag[VOR_TYPE] == 0x01 ) /*收到右耳回复的CMD3指令。*/
{
#ifdef VOX_TX
#if JIELI
HandleTxCommand(VHOUSE_CMD_EXCH_TWS_BTADDR,VOL_CHAN); /*获取到右耳回复的CMD3指令转发给左耳。*/
#elif ZHONGKE
HandleTxCommand( VHOUSE_CMD_GET_TWS_BTADDR, VOL_CHAN ); /*获取到右耳回复的CMD3指令转发给左耳。*/
#elif XUANHENG
HandleTxCommand( CMD_TWS_SET_BTADDR, VOL_CHAN );
#endif
#endif
Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x02;
#ifdef _DEBUG_KEY
@ -323,11 +333,15 @@ uint8_t Key_Lift_Debounce = 0;
if( Vox_Get_BES_Addr_Flag[VOL_TYPE] != 0x00 )
{
#ifdef VOX_TX
#if JIELI
HandleTxCommand(VHOUSE_CMD_EXCH_TWS_BTADDR,VOR_CHAN); /*获取到右耳回复的CMD3指令转发给左耳。*/
#elif ZHONGKE
HandleTxCommand( VHOUSE_CMD_GET_TWS_BTADDR, VOR_CHAN ); /*获取到右耳回复的CMD3指令转发给左耳。*/
#elif XUANHENG
HandleTxCommand( CMD_TWS_SET_BTADDR, VOR_CHAN );
#endif
#endif
Vox_Get_BES_Addr_Flag[VOL_TYPE] = 0x00;
Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x00;
@ -349,7 +363,13 @@ uint8_t Key_Lift_Debounce = 0;
else
{
#ifdef VOX_TX
HandleTxCommand(VHOUSE_CMD_PAIR,VOL_CHAN);
#if XUANHENG
HandleTxCommand(CMD_TWS_GET_BTADDR,VOL_CHAN);
#else
HandleTxCommand(VHOUSE_CMD_PAIR,VOL_CHAN); //右耳发配对指令,区分耳机通道。
#endif
#endif
#ifdef _DEBUG_KEY
printf("Key Pair TX VOL(line:%d).\r\n",(uint16_t)__LINE__);
@ -380,15 +400,27 @@ uint8_t Key_Lift_Debounce = 0;
{
if( !( Key_TWS_Clear_Pair_Tim % KEY_LL_TX_Interval_2 ) )
{
#ifdef VOX_TX
#ifdef VOX_TX
#if XUANHENG
HandleTxCommand(CMD_CLEAR_PAIR,VOR_CHAN);
#else
HandleTxCommand(VHOUSE_CMD_CLEAR_PAIR,VOR_CHAN);
#endif
#endif
}
else
if( !( Key_TWS_Clear_Pair_Tim % KEY_LL_TX_Interval ) )
{
#ifdef VOX_TX
#ifdef VOX_TX
#if XUANHENG
HandleTxCommand(CMD_CLEAR_PAIR,VOL_CHAN);
#else
HandleTxCommand(VHOUSE_CMD_CLEAR_PAIR,VOL_CHAN);
#endif
#endif
}

View File

@ -69,7 +69,7 @@ void WakeUp_Init_Set(void)
SFRADDR = WKUP_EN0;
SFRDATA |= 0x08;
STBTIM_CTL = 0x87; //Force LOSC In Standby;Enable Wakeup Time Control In Standby Mode;Set The Wakeup Time In Standby Mode:12s.
STBTIM_CTL = EN_FORCE_LOSC | STB_TMR_EN | STANDBY_TIM_SET;; //Force LOSC In Standby;Enable Wakeup Time Control In Standby Mode;Set The Wakeup Time In Standby Mode:12s.
#endif

View File

@ -284,10 +284,18 @@ uint8_t Rx1Status = 0;
uint8_t RX1_Cnt = 0;
#if XUANHENG
uint16_t RX1DataLen = 0;
#endif
#define Vox_Comm_JL_HEADER_DATA_LEN 4
#define Vox_Comm_ZK_HEADER_DATA_LEN 6
#define Vox_Comm_XH_HEADER_DATA_LEN 7
/*uart1中断处理函数*/
void uart1_Interrupt(void) interrupt Interrupt_Vector_RI1_TI1
{
@ -311,6 +319,49 @@ void uart1_Interrupt(void) interrupt Interrupt_Vector_RI1_TI1
#ifdef VOX_RX
#if XUANHENG
switch(Rx1Status)
{
case 0:
if( S1BUF == BOXHEADER )
{
Rx1Status = 1;
RX1_Cnt = 0;
RX1_Buffer[RX1_Cnt++] = S1BUF;
}
else
{
Rx1Status = 0;
RX1_Cnt = 0;
}
break;
case 1:
RX1_Buffer[RX1_Cnt++] = S1BUF;
if( RX1_Cnt == Vox_Comm_XH_HEADER_DATA_LEN )
{
RX1DataLen = RX1_Buffer[5] | (RX1_Buffer[6] << 8) + 9; //获取数据长度Headr(1Byte) + Trandsmit Dir(1Byte) + CMD(2Bytes) + datalen(2Bytes) + CRC16(2Bytes)
}
if( (RX1DataLen == RX1_Cnt) || (RX1_Cnt > COM0_Data_Lenth) ) //当接收到的data个数等于RX0DataLen这结束本次传输。
{
RX1_Cnt = 0;
Rx1Status = 0;
Uart1_RX_Finish_Flag = 1;
}
}
#else
switch(Rx1Status)
{
case 0:
@ -367,6 +418,8 @@ void uart1_Interrupt(void) interrupt Interrupt_Vector_RI1_TI1
default:
break;
}
#endif
#endif
}

View File

@ -80,19 +80,8 @@ xdata uint8_t Vox_Get_BES_Addr_Flag[2] = {0};
#endif
#ifdef VOX_TX
idata uint8_t Net_Info[2][13] = {0};
idata uint8_t MAC_Addr[2][18] = {0};
uint8_t EarPhone_Num = 0;
#endif
xdata uint8_t Earphone_Vbat[2] = 0; //对耳电量
xdata uint8_t Vox_Online_State[2] = {0}; //耳机在线标志位
bit Vox_Ocp_Flag = 0;
bit OpenCover_TX_Cmd_Flag = 0;
@ -103,6 +92,51 @@ bit OpenCover_TX_Cmd_Flag = 0;
#define KEY_TWS_PAIR_CLEAR_CNT 30
#if XUANHENG
idata uint8_t Vox_Pairing_State[2] = {0}; //耳机配对状态0是无效1是正在配对2是配对成功3不处理保持当前状态。
idata uint8_t Vox_Set_BES_Addr_Flag[2] = {0};
idata uint8_t BES_Addr[6] = {0}; //蓝牙耳机地址Vox_Bes_Addr[0][6]VOLVox_Bes_Addr[1][6]VOR
idata uint8_t Random_Data[8] = {0};
idata uint8_t Bes_Bet_Level[2] = {0}; //对耳电池电量信息Bes_Bet_Level[0]左耳Bes_Bet_Level[1]:右耳
idata uint8_t Bes_Chg_Full[2] = {0}; //对耳硬件是否满电0非满电1满电。
idata uint8_t Tws_Paired_Record[2] = {0}; //TWS配对记录0有TWS配对记录1没有TWS配对记录
idata uint8_t Phone_Paired_Record[2] = {0}; //手机配对记录0有与手机配对记录1没有和手机配对记录。
idata uint8_t Bes_OTA_State[2] = {0}; //耳机静默升级状态10没有
idata uint8_t Bes_Set_SN_State[2] = {0}; //耳机应答仓写入SN是否成功。1成功0失败
idata uint8_t Bes_In_Pair_State[2] = {0}; //耳机进入配对状态标志位
idata uint8_t Vox_Clear_Pair_Flag[2] = {0};
bit Vol_Bes_Addr_Flag = 0;
bit Vor_Bes_Addr_Flag = 0;
idata uint8_t SN_Num[22] = {0}; //SN码需要从OTP的固定位置获取。
idata uint8_t SN_Num_Start = 0; //SN码发送起始位置有开盖动作时清零。
bit gShip_Mode_Flag = 0; //船运模式标志位0正常关机1船运模式
#else
idata uint8_t Net_Info[2][13] = {0};
idata uint8_t MAC_Addr[2][18] = {0};
xdata uint8_t Earphone_Vbat[2] = 0; //对耳电量
#endif
/******************************************************************************\
Functions definitions
\******************************************************************************/
@ -420,6 +454,9 @@ void Vox_Det_Machine(void)
static bit Vox_Chn_Select;
static uint8_t Vox_Output_Debounce;
static uint8_t Vox_Output_Cnt;
static bit CoverEvent_Flg1;
if( gBoost_Prepared_Flag )
@ -577,7 +614,8 @@ void Vox_Det_Machine(void)
#elif ZHONGKE
HandleTxCommand(VHOUSE_CMD_GET_VBAT,VOL_CHAN); //左耳发开盖指令,区分耳机通道。
#elif XUANHENG
HandleTxCommand(CMD_HEARTBEAT,VOL_CHAN);
#endif
#endif
}
@ -592,7 +630,10 @@ void Vox_Det_Machine(void)
#elif ZHONGKE
HandleTxCommand(VHOUSE_CMD_GET_VBAT,VOR_CHAN); //右耳发开盖指令,区分耳机通道。
#elif XUANHENG
HandleTxCommand(CMD_HEARTBEAT,VOR_CHAN);
#endif
#endif
@ -710,24 +751,43 @@ void Vox_Det_Machine(void)
if( (Vox_TX_Timer % Vox_TX_Interval_2) == 0 ) //200ms发送一次
{
#ifdef VOX_TX
#if JIELI
HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOL_CHAN); //左耳发开盖指令,区分耳机通道。
#elif ZHONGKE
HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOL_CHAN); //左耳发开盖指令,区分耳机通道。
#elif XUANHENG
HandleTxCommand(CMD_HEARTBEAT,VOL_CHAN);
#endif
#endif
}
else
if( (Vox_TX_Timer % Vox_TX_Interval) == 0 ) //200ms发送一次
{
#ifdef VOX_TX
#if JIELI
HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOR_CHAN); //右耳发开盖指令,区分耳机通道。
#elif ZHONGKE
HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOR_CHAN); //右耳发开盖指令,区分耳机通道。
#endif
#elif ZHONGKE
HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOR_CHAN); //右耳发开盖指令,区分耳机通道。
#elif XUANHENG
HandleTxCommand(CMD_HEARTBEAT,VOR_CHAN);
#endif
#endif
}
Vox_TX_Timer++;
@ -742,24 +802,41 @@ void Vox_Det_Machine(void)
#ifdef VOX_TX
#if JIELI
HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOL_CHAN); //左耳发开盖指令,区分耳机通道。
#elif ZHONGKE
HandleTxCommand(VHOUSE_CMD_PAIR,VOL_CHAN); //左耳发开盖指令,区分耳机通道。
HandleTxCommand(VHOUSE_CMD_GET_TWS_BTADDR,VOL_CHAN); //左耳发开盖指令,区分耳机通道。
#elif XUANHENG
HandleTxCommand(CMD_TWS_GET_BTADDR,VOL_CHAN);
#endif
#endif
#endif
}
else
if( (Vox_Output_Debounce % Vox_TX_Interval) == 0 ) //200ms发送一次
{
#ifdef VOX_TX
#if JIELI
HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOR_CHAN); //右耳发开盖指令,区分耳机通道。
#elif ZHONGKE
HandleTxCommand(VHOUSE_CMD_PAIR,VOR_CHAN); //右耳发开盖指令,区分耳机通道。
HandleTxCommand(VHOUSE_CMD_GET_TWS_BTADDR,VOR_CHAN); //右耳发开盖指令,区分耳机通道。
#elif XUANHENG
HandleTxCommand(CMD_TWS_GET_BTADDR,VOR_CHAN);
#endif
#endif
#endif
}
Vox_Output_Debounce++;
@ -827,7 +904,7 @@ void Vox_Det_Machine(void)
#endif
Vox_Chg_Full_Flag = 1;
Vox_Output_Debounce = 0;
Vox_Output_Cnt = 0;
Vox_Voltage_Hold_Timer = 0;
@ -847,23 +924,43 @@ void Vox_Det_Machine(void)
}
else
{
if( Vox_Output_Debounce <= Vox_COM_MSG_Tim )
if( Vox_Output_Cnt <= Vox_COM_MSG_Tim )
{
if( (Vox_Output_Debounce % Vox_TX_Interval_2) == 0 ) //200ms发送一次
if( (Vox_Output_Cnt % Vox_TX_Interval_2) == 0 ) //200ms发送一次
{
#ifdef VOX_TX
HandleTxCommand(VHOUSE_CMD_PWROFF,VOL_CHAN); //左耳发开盖指令,区分耳机通道。
#if XUANHENG
HandleTxCommand(CMD_SHUT_DOWN,VOL_CHAN); //左耳发关机指令,区分耳机通道。
#else
HandleTxCommand(VHOUSE_CMD_PWROFF,VOL_CHAN); //左耳发关机指令,区分耳机通道。
#endif
#endif
}
else
if( (Vox_Output_Debounce % Vox_TX_Interval) == 0 ) //200ms发送一次
if( (Vox_Output_Cnt % Vox_TX_Interval) == 0 ) //200ms发送一次
{
#ifdef VOX_TX
HandleTxCommand(VHOUSE_CMD_PWROFF,VOR_CHAN); //右耳发开盖指令,区分耳机通道。
#if XUANHENG
HandleTxCommand(CMD_SHUT_DOWN,VOR_CHAN); //右耳发关机指令,区分耳机通道。
#else
HandleTxCommand(VHOUSE_CMD_PWROFF,VOR_CHAN); //右耳发关机指令,区分耳机通道。
#endif
#endif
}
Vox_Output_Debounce++;
Vox_Output_Cnt++;
}
else
{
@ -1413,6 +1510,57 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
#endif
#if XUANHENG
/*
*******************************************************************************
* u16 CalCheckCrc16(u8 * pucFrame, u16 usLen)
*
* Description :
*
*
* Arguments : u8 *pucFrame:
u16 usLen: , byte为单位
* Returns :
*
* Notes :
*
*******************************************************************************
*/
uint16_t CalCheckCrc16(uint8_t *pucFrame, unsigned int usLen)
{
uint16_t wCRCin = 0x0000;
uint16_t wCPoly = 0x1021;
uint8_t wChar = 0;
unsigned int i;
while (usLen--)
{
wChar = *(pucFrame++);
wCRCin ^= (wChar << 8);
for(i = 0;i < 8;i++)
{
if(wCRCin & 0x8000)
{
wCRCin = (wCRCin << 1) ^ wCPoly;
}
else
{
wCRCin = wCRCin << 1;
}
}
}
return (wCRCin);
}
#else
/*
*******************************************************************************
* uint8_t Crc8Maxim(u8 *buf, u8 length)
@ -1450,6 +1598,8 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
}
return crc;
}
#endif
#ifdef VOX_TX
/*
@ -1472,7 +1622,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
*/
void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select)
{
uint8_t dataLen = 0;
uint16_t dataLen = 0;
uint8_t tx_pData[COM0_Data_Lenth] = 0;
uint8_t i = 0;
@ -1667,7 +1817,165 @@ void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select)
tx_pData[dataLen] = Crc8Maxim(tx_pData,dataLen);
#elif XUANHENG
uint16_t Checksum = 0;
/*数据包头*/
tx_pData[0] = BOXHEADER;
/*耳机通道*/
tx_pData[1] = nVox_Chn_Select; /*传输方向Bit0-3接收端Bit4-7发送端
1
2
3PC/
4
5
*/
/*指令编号*/
tx_pData[2] = TxCommand;
tx_pData[3] = TxCommand >> 8; /*小端模式:低字节在前
Bit0-7
Bit8-14
Bit15:
0:REQ
1:ACK
*/
tx_pData[4] = CoverStatus; //开关盒状态
switch(TxCommand)
{
case CMD_TWS_GET_BTADDR: //获取耳机MAC地址
/*Data Length*/
tx_pData[5] = 0x00; //小端模式低位在前长2Bytes。
tx_pData[6] = 0x00;
#ifdef VOX_RX
for(i=0;i<6;i++)
{
BES_Addr[i] = 0; //清本地耳机蓝牙地址。
}
#endif
break;
case CMD_TWS_SET_BTADDR:
/*Data Length*/
tx_pData[5] = 0x0E; //小端模式低位在前长2Bytes。
tx_pData[6] = 0x00;
#ifdef VOX_RX
for(i=0;i<6;i++)
{
tx_pData[7+i] = BES_Addr[i]; //发送耳机蓝牙地址。
}
#endif
for(i=0;i<8;i++)
{
tx_pData[13+i] = Random_Data[i]; //发送随机数。
}
break;
case CMD_SHUT_DOWN:
/*Data Length*/
tx_pData[5] = 0x01; //小端模式低位在前长2Bytes。
tx_pData[6] = 0x00;
tx_pData[7] = gShip_Mode_Flag; //船运模式0正常关机1船运模式
break;
case CMD_PAIRING_IMD: //立即执行TWS配对
/*Data Length*/
tx_pData[5] = 0x00; //小端模式低位在前长2Bytes。
tx_pData[6] = 0x00;
break;
case CMD_CLEAR_PAIR:
/*Data Length*/
tx_pData[5] = 0x00; //小端模式低位在前长2Bytes。
tx_pData[6] = 0x00;
break;
case CMD_HEARTBEAT:
/*Data Length*/
tx_pData[5] = 0x05; //小端模式低位在前长2Bytes。
tx_pData[6] = 0x00;
/*
data定义
1D0D12BytesD0的高4bit为充电盒硬件PCBA版本号D0低4bit和D1构成充电盒软件版本号
2D21ByteD2的bit7为是否有PG接入D2的低7位表示充电盒电量信息0-100;
3D31ByteSide信息区分左右耳电量信息
4D41Byte0x00
*/
tx_pData[7] = HW_VER << 4;
tx_pData[7] = FW_VER >> 8;
tx_pData[8] = FW_VER;
tx_pData[9] = ( ( ChgStatus & CHG_STA_ING ) << 6 ) | bat_level;
if(nVox_Chn_Select == VOL_CHAN)
{
tx_pData[10] = Bes_Bet_Level[0];
}
else
if(nVox_Chn_Select == VOR_CHAN)
{
tx_pData[10] = Bes_Bet_Level[1];
}
tx_pData[11] = 0x00;
break;
case CMD_SN: //由于SN码较长充电盒需分多次发送D0表示充第几位开始发送一次固定发送9Bytes。最后一包SN数据不够9Bytes的补0或0xff。
/*Data Length*/
tx_pData[5] = 0x0A; //小端模式低位在前长2Bytes。
tx_pData[6] = 0x00;
tx_pData[7] = SN_Num_Start;
for(i=0;i<9;i++)
{
if( (SN_Num_Start + i) > 22 )
{
tx_pData[8+i] = 0xFF;
}
else
{
tx_pData[8+i] = SN_Num[ SN_Num_Start + i ]; //发送随机数。
}
}
SN_Num_Start += 9;
break;
case CMD_GET_INTO_PAIR:
/*Data Length*/
tx_pData[5] = 0x01; //小端模式低位在前长2Bytes。
tx_pData[6] = 0x00;
tx_pData[7] = 0x01; //01进入配对状态
break;
case BES_RESET: //复位patten
return;
default:
break;
}
dataLen = (uint16_t)( tx_pData[5] | ( tx_pData[6] << 8 ) ) + 7;
Checksum = CalCheckCrc16( tx_pData, dataLen ); //计算检验和
tx_pData[ dataLen ] = Checksum;
tx_pData[ ++dataLen ] = Checksum >> 8;
#endif
/* vor、vol都使用uart1进行分时通讯设置TX模式*/
VOX_EN_Type( VOX_COMM_Mode_Uart );
@ -1844,6 +2152,137 @@ void HandleRxMsg(VOX_BES_COMMAND_E RxCommand)
break;
}
#elif XUANHENG
uint8_t CMD_Type = 0;
CMD_Type = RX1_Buffer[1] >> 4;
if( CMD_Type & TWS_PC ) //PC/工装->盒子
{
}
else //耳机->盒子
{
switch(RxCommand)
{
case CMD_TWS_GET_BTADDR:
for(i=0;i<RX1_Buffer[5];i++)
{
BES_Addr[i] = RX1_Buffer[i+7]; //获取耳机MAC地址。
}
if( CMD_Type == TWS_VOL ) //根据耳机Side参数
{
Vox_Get_BES_Addr_Flag[VOL_TYPE] = 1; //左耳机蓝牙地址写入是否成功状态标志
}
else
{
Vox_Get_BES_Addr_Flag[VOR_TYPE] = 1; //右耳机蓝牙地址写入是否成功状态标志
}
break;
case CMD_SHUT_DOWN:
break;
case CMD_TWS_SET_BTADDR:
if( CMD_Type == TWS_VOL ) //根据耳机Side参数
{
Vox_Set_BES_Addr_Flag[VOL_TYPE] = RX1_Buffer[7]; //左耳机蓝牙地址写入是否成功状态标志
}
else
{
Vox_Set_BES_Addr_Flag[VOR_TYPE] = RX1_Buffer[7]; //右耳机蓝牙地址写入是否成功状态标志
}
break;
case CMD_CLEAR_PAIR: //按键长按10s发送此命令。
if( CMD_Type == TWS_VOL ) //根据耳机Side参数
{
Vox_Clear_Pair_Flag[VOL_TYPE] = 1; //左耳机蓝牙地址写入是否成功状态标志
}
else
{
Vox_Clear_Pair_Flag[VOR_TYPE] = 1; //右耳机蓝牙地址写入是否成功状态标志
}
break;
case CMD_HEARTBEAT:
if( CMD_Type == TWS_VOL ) //根据耳机Side参数
{
Bes_Bet_Level[VOL_TYPE] = RX1_Buffer[9] & 0x7F; //获取耳机电量
Bes_Chg_Full[VOL_TYPE] = RX1_Buffer[9] >> 7; //获取耳机是否满电
Vox_Pairing_State[VOL_TYPE] = RX1_Buffer[10]; //获取耳机配对状态;
Tws_Paired_Record[VOL_TYPE] = RX1_Buffer[11] & 0x01; //bit0:0有TWS配对记录1没有TWS配对记录bit1:0有与手机配对记录1没有和手机配对记录。
Phone_Paired_Record[VOL_TYPE] = ( RX1_Buffer[11] >> 1 ) & 0x01;
Bes_OTA_State[VOL_TYPE] = RX1_Buffer[12];
}
else
{
Bes_Bet_Level[VOR_TYPE] = RX1_Buffer[9] & 0x7F;
Bes_Chg_Full[VOR_TYPE] = RX1_Buffer[9] >> 7;
Vox_Pairing_State[VOR_TYPE] = RX1_Buffer[10];
Tws_Paired_Record[VOR_TYPE] = RX1_Buffer[11] & 0x01;
Phone_Paired_Record[VOR_TYPE] = (RX1_Buffer[11] >> 1) & 0x01;
Bes_OTA_State[VOR_TYPE] = RX1_Buffer[12];
}
break;
case CMD_SN:
if( CMD_Type == TWS_VOL ) //根据耳机Side参数
{
Bes_Set_SN_State[VOL_TYPE] = RX1_Buffer[7]; //左耳机SN写入是否成功状态标志
}
else
{
Bes_Set_SN_State[VOR_TYPE] = RX1_Buffer[7]; //右耳机SN写入是否成功状态标志
}
break;
case CMD_GET_INTO_PAIR:
if( CMD_Type == TWS_VOL ) //根据耳机Side参数
{
Bes_In_Pair_State[VOL_TYPE] = RX1_Buffer[7]; //左耳机是否进入配对状态成功状态标志
}
else
{
Bes_In_Pair_State[VOR_TYPE] = RX1_Buffer[7]; //右耳机是否进入配对状态成功状态标志
}
break;
case CMD_PAIRING_IMD:
if( CMD_Type == TWS_VOL ) //根据耳机Side参数
{
Bes_In_Pair_State[VOL_TYPE] = 1; //左耳机是否进入配对状态成功状态标志
}
else
{
Bes_In_Pair_State[VOR_TYPE] = 1; //右耳机是否进入配对状态成功状态标志
}
break;
default:
break;
}
}
#endif
}
@ -1865,9 +2304,11 @@ void HandleRxMsg(VOX_BES_COMMAND_E RxCommand)
void HandleVoxCommMsg(void)
{
uint8_t CrcCheckSum = 0;
uint16_t CrcCheckSum = 0;
uint8_t i = 0;
#if XUANHENG
uint16_t Data_Len = 0;
#endif
/*RX数据处理*/
if( Uart1_RX_Finish_Flag )
{
@ -1888,10 +2329,26 @@ void HandleVoxCommMsg(void)
CrcCheckSum = Crc8Maxim( RX1_Buffer, RX1_Buffer[4] + 5 );
if( CrcCheckSum == RX1_Buffer[ RX1_Buffer[4] + 5 ] )
#elif XUANHENG
Data_Len = RX1_Buffer[5] | ( RX1_Buffer[6] << 8 ) + 7;
CrcCheckSum = CalCheckCrc16( RX1_Buffer, Data_Len); //计算检验和
if( CrcCheckSum == (uint16_t)(RX1_Buffer[ Data_Len + 1 ] | RX1_Buffer[ Data_Len + 2 ] << 8) ) //校验和小端模式,低位在前。
#endif
{
HandleRxMsg((VOX_BES_COMMAND_E)RX1_Buffer[3]);
#if XUANHENG
HandleRxMsg((VOX_BES_COMMAND_E)RX1_Buffer[2]);
#else
HandleRxMsg((VOX_BES_COMMAND_E)RX1_Buffer[3]);
#endif
}
else
{