From 62a82c651c947ad3af6192b646ab2add640c73a1 Mon Sep 17 00:00:00 2001 From: Alex xu Date: Tue, 21 Jan 2025 14:27:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E5=86=85=E5=AE=B9=EF=BC=9A1?= =?UTF-8?q?=E3=80=81=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=EF=BC=8C=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E5=8F=98=E9=87=8F=E5=9C=A8=E5=AE=9A=E4=B9=89=E6=97=B6?= =?UTF-8?q?=E4=B8=8D=E8=B5=8B=E5=88=9D=E5=80=BC=EF=BC=8C=E5=87=8F=E5=B0=8F?= =?UTF-8?q?ROM=E5=8D=A0=E7=94=A8=EF=BC=9B2=E3=80=81=E5=B0=86=E6=98=BE?= =?UTF-8?q?=E7=A4=BAUI=E6=A8=A1=E5=9D=97=E5=8C=96=EF=BC=8C=E5=8D=95?= =?UTF-8?q?=E7=8B=AC=E6=88=90=E6=96=87=E4=BB=B6displayui.c=E5=92=8Cdisplay?= =?UTF-8?q?=5Fui.h=EF=BC=9B3=E3=80=81=E5=B0=86=E9=83=A8=E5=88=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=A8=A1=E5=9D=97=E7=9A=84=E7=8A=B6=E6=80=81=E4=BD=8D?= =?UTF-8?q?=E3=80=81=E6=A0=87=E5=BF=97=E4=BD=8D=E5=8F=98=E9=87=8F=E5=92=8C?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=8F=82=E6=95=B0=E7=BD=AE=E4=BA=8Econgfig.h?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Out/8837_EVB_250113_1656.bin | Bin 12288 -> 0 bytes Out/8837_EVB_250113_1656.hex | 830 ------------------ Out/8837_EVB_250113_1656_F537_010102.bin | Bin 12290 -> 0 bytes Out/8837_EVB_250121_1409.bin | Bin 0 -> 12288 bytes Out/8837_EVB_250121_1409.hex | 809 +++++++++++++++++ Out/8837_EVB_250121_1409_9DE0_010102.bin | Bin 0 -> 12290 bytes Project/SY8837_Demo.uvgui.GH | 257 +++--- Project/SY8837_Demo.uvopt | 12 + Project/SY8837_Demo.uvproj | 7 +- .../SY8837_Demo.SearchResults | 20 +- SY8837_Demo.si4project/SY8837_Demo.sip_sym | Bin 351512 -> 369512 bytes SY8837_Demo.si4project/SY8837_Demo.sip_xm | Bin 156 -> 164 bytes SY8837_Demo.si4project/SY8837_Demo.siwork | Bin 81660 -> 96785 bytes UsrInc/charger/charger_module.h | 23 - UsrInc/discharge/discharge_module.h | 5 - UsrInc/display/display_ui.h | 44 + UsrInc/hall/hall.h | 3 +- UsrInc/inc/config.h | 101 ++- UsrInc/inc/define.h | 6 - UsrInc/key/key.h | 1 - UsrInc/led/led.h | 8 +- UsrInc/pwm/pwm.h | 7 + UsrInc/system/system.h | 12 + UsrInc/userapp/userapp.h | 5 - UsrInc/vox/vox_module.h | 2 - UsrSrc/InitVars.c | 9 +- UsrSrc/adc/adc.c | 45 +- UsrSrc/bat/bat.c | 14 +- UsrSrc/charger/charger_module.c | 9 +- UsrSrc/discharge/discharge_module.c | 15 +- UsrSrc/display/display_ui.c | 383 ++++++++ UsrSrc/hall/hall.c | 8 +- UsrSrc/key/key.c | 23 +- UsrSrc/led/led.c | 32 +- UsrSrc/main.c | 2 +- UsrSrc/sleep/sleep.c | 6 +- UsrSrc/system/system.c | 38 +- UsrSrc/timer/sys_tim.c | 38 +- UsrSrc/uart/uart.c | 22 +- UsrSrc/user/user.c | 3 + UsrSrc/userapp/userapp.c | 338 +------ UsrSrc/vox/vox_module.c | 160 ++-- 42 files changed, 1720 insertions(+), 1577 deletions(-) delete mode 100644 Out/8837_EVB_250113_1656.bin delete mode 100644 Out/8837_EVB_250113_1656.hex delete mode 100644 Out/8837_EVB_250113_1656_F537_010102.bin create mode 100644 Out/8837_EVB_250121_1409.bin create mode 100644 Out/8837_EVB_250121_1409.hex create mode 100644 Out/8837_EVB_250121_1409_9DE0_010102.bin create mode 100644 UsrInc/display/display_ui.h create mode 100644 UsrSrc/display/display_ui.c diff --git a/Out/8837_EVB_250113_1656.bin b/Out/8837_EVB_250113_1656.bin deleted file mode 100644 index 55a8dcc8c7832a65d283b2fcf46671a3e244aef4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 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 literal 0 HcmV?d00001 diff --git a/Out/8837_EVB_250121_1409.hex b/Out/8837_EVB_250121_1409.hex new file mode 100644 index 0000000..b348a8e --- /dev/null +++ b/Out/8837_EVB_250121_1409.hex @@ -0,0 +1,809 @@ +:03000000022517BF +:10251700758E3075D20078FFE4F6D8FD9000007F05 +:10252700007E01E4F0A3DFFCDEFA758188022572E4 +:102D4B0053797374656D20496E69742E5665723AAA +:0C2D5B002532782532782532780D0A00E8 +:102C7E0012289D7BFF7A2D794B900089E4F0A304F6 +:102C8E00F0A3E4F0A304F0A3E4F0A37402F0121492 +:0D2C9E000DD2AED2BE1226AF122BF080F484 +:1029960075FE0F43FF8075FE2975FFB575A5217578 +:1029A600FE1E43FF01E5A3540F24F8780DF6E5A3B8 +:1029B600C4540F7814F6E5AD540F24F875F00AA444 +:1029C6007810F67812A6ABE5ADC4540F24F875F06E +:0B29D6000AA418F67813A6ACD2BD22AC +:1019B800900085EFF0204403021BD29000B6E0FEB1 +:1019C800A3E07803CEC313CE13D8F9F0EE9000B697 +:1019D800F09000B3E024FD6048147003021A9D14CF +:1019E8007003021B1124FE7003021B81240560038F +:1019F800021BCF780DE6FF3395E0FEC39000B7E0F9 +:101A08009FFF9000B6E09EFE9000BAF0A3EFF0C3EF +:101A1800EE648094804003021BCFE49000BA021B5E +:101A2800CC9000B6E0FEA3E0FF7C097DC4120B0554 +:101A3800780A120A8F9000B6EEF0A3EFF07810E65D +:101A4800FD3395E0FCC3EF9DFFEE9CFE3395E0FD72 +:101A5800FCE47B64FAF9F8120A2FC006C007781272 +:101A6800E675F002A424F4FFE5F03401AB07FA337D +:101A780095E0F9F8D007D006122A259000AFEEF0CD +:101A8800A3EFF0C3EE648094804003021BCFE49080 +:101A980000AF021BCC9000B6E0FEA3E0FF7C097DFE +:101AA800C4120B05780A120A8F9000B6EEF0A3EF65 +:101AB800F07811E6FD3395E0FCC3EF9DFFEE9CFE48 +:101AC8003395E0FDFCE47B64FAF9F8120A2FC006AE +:101AD800C0077813E675F002A424F4FFE5F034019A +:101AE800AB07FA3395E0F9F8D007D006122A25900B +:101AF80000B1EEF0A3EFF0C3EE64809480400302DF +:101B08001BCFE49000B1021BCC9000B6E0FEA3E02E +:101B1800FF7C097DC4120B05780A120A8F9000B663 +:101B2800EEF0A3EFF0E025E0FE9000B6E033900081 +:101B3800B8F0A3CEF09000B8E0FEA3E07802C3337B +:101B4800CE33CED8F9FDAC067814E6FF3395E0FE27 +:101B5800EF24F8FFEE34FFFE12094D7C037DE812F6 +:101B6800095F9000B8EE8FF0120995C39000B8E0B5 +:101B7800648094805051E4804B780DE6FF3395E003 +:101B8800FEC39000B7E09FFF9000B6E09EFEE4FC25 +:101B9800FD7BC47A09F9F8120A2F780A120AA29072 +:101BA80000B6EEF0A3EFF0E025E0FF9000B6E033DA +:101BB800FE9000B4F0A3EFF0C3EE64809480500769 +:101BC800E49000B4F0A3F0C24422900085E09000B5 +:101BD800B3F0C454F04401F5A5E49000B6F0A3F0C6 +:051BE8009000BDF02299 +:03006B0002271851 +:10271800C0E0C0F0C083C082C0D075D000C000C087 +:1027280006C007E5F330E038AFA1780E760008A6BA +:1027380007E5A254031846F608E6F69000BDE0C384 +:102748009408501718E6FE08E6FF9000B6EE8FF0E2 +:102758001209959000BDE004F08005D24453A5FE0F +:1027680075F301D007D006D000D0D0D082D083D066 +:04277800F0D0E0328B +:102B240075FE8743FF207815760375FE7043FF1802 +:102B340053B3F143B302E47817F67819F67815E63F +:102B44007818F6781A76017917E718461846F5B119 +:042B540075B2012233 +:10217900E4FE9000BAE0FCA3E0FDC394E8EC94030C +:1021890040037F0022EF7003022292D3ED940FECFB +:1021990094034003022270ED94CBEC9400500302A7 +:1021A9002270D3ED94AAEC94024022D2207815E64D +:1021B900FF137818F6302111D3ED94BFEC94024047 +:1021C90004C22180047818A607E4FE8070D3ED9438 +:1021D900AAEC94025043ED9437EC9401403BD22190 +:1021E9007815E6FF7818F6302013D3ED9493EC9424 +:1021F900025004C2208006EFC3137818F6781A76C5 +:1022090001301B11D3ED9451EC94015004C21B8091 +:1022190004E4781AF6E4FE8024D3ED9437EC9401B3 +:10222900501BD21BE4781AF6302110ED9426EC9459 +:10223900015004C2218004781A7601E4FE301E118F +:10224900C3ED94F3EC94025006C21EE4FE80027EB4 +:1022590001301F2FD3ED94DDEC94004006C21FE43A +:10226900FE80207E01801CD3ED940FEC9403400680 +:10227900D21E7E01800DD3ED94CBEC94005004D294 +:102289001F7E01C21CC21D8058C21EC21FD3ED94FD +:102299009FEC94035031ED9471EC94004029301C6B +:1022A90010ED9484EC94035006C21CE4FE80027E77 +:1022B90001301D2DD3ED9482EC94004006C21DE43B +:1022C900FE801E7E01801AD3ED949FEC9403400496 +:1022D900D21C800BC3ED9471EC94005002D21D7E88 +:0822E90001781AE6F5B2AF0618 +:0122F10022CA +:1022F200E4FBFAE5E65480FFE4FCFDFEEF700753D1 +:10230200B3FE7816F62278167601E5E830E5057513 +:10231200E8208005E5E530E10453B3FE22E5F23022 +:10232200E50475F22022E5F2540C601353B3FEE586 +:10233200F354C070030223CC75F20C75F3C02275FE +:10234200F3C07F01122179EF600653B3FED222223D +:10235200C222E5F230E432781AE6B401067A107B42 +:102362006880047A0F7BA0EB246AFFEA34FFFEC385 +:102372009000B9E09F9000B8E09E500575F2108081 +:102382000353B3FE78167603227917E778194618B5 +:1023920046F5B1781AE6F5B243B311781CE6FFD3DD +:1023A20094014002C23DEFD394034002C239EFD3FD +:1023B20094074002C23BEFD3940C4002C23AEFD3DF +:0A23C20094114002C23C7816760226 +:0123CC0022EE +:10000E00303F10EFB4010475B5C02253B5BFED44B7 +:04001E0080F5B52292 +:102DC500E5B55480FFEF6008303F05E4F5B5C23F37 +:012DD50022DB +:10283F00C23FE5E520E156E5E230E703D24022E56D +:10284F00E830E00D30244675E8017D3FE4FF0200DB +:10285F000EE4FF122179EF6006122DC5D23E22C27F +:10286F003E303D03022DC5D23F3040217816E6B4ED +:10287F00021BC39000B9E094109000B8E0648094FC +:0E288F008E4005D23FC24022122DC5C23F220C +:102C2200E5E25408FF9000D1E06F6021E5E230E375 +:102C3200089000D07401F08005E49000D0F0D245F5 +:0D2C4200C20FD22FD2319000D1EFF0D24757 +:012C4F002262 +:101FBE00E5E25402FFE4FCFDFEEF70319000C775C0 +:101FCE00F0011209959000C7E0FEA3E0FFC394173D +:101FDE00EE94024004D237800EC3EF9487EE940045 +:101FEE004005203602D236D233C2348040303336EA +:101FFE00D247E4781DF6C233D2349000C9F0900077 +:10200E00C7E0FEA3E0FFD3941EEE94005008D23238 +:10201E00D235D231800EC3EF944FEE94015005307D +:10202E003602D238C236E49000C7F0A3F0303462E4 +:10203E00303F5F303827200F0280287F031228F4AC +:10204E009000C9E0D394235003022165C238781D55 +:10205E007602E49000C6F090002BF0A3F030372902 +:10206E00200F0A7D3FE4FF12000ED20F227F0312D3 +:10207E0028F49000C9E0D394235003022165C2379F +:10208E00E49000CAF0781D7603303502C235C234B2 +:10209E00C20F9000D0E064016003022178781DE643 +:1020AE006402600302213A9000C6E0C3940150100E +:1020BE00E4FD7F01121DE8E490002BF0A3F08054A4 +:1020CE009000C5E0D394054003E4803990002CE0E5 +:1020DE00B4010FE4FD7F02121DE890002C7402F093 +:1020EE00803290002CE06402702A90002BE0601D7C +:1020FE007D017F02121DE8E490002BF0A3F090000A +:10210E00C6F09000C5F0781DF6D2108058E4FD7F21 +:10211E0001121DE89000C6E0D39414400A9000C549 +:10212E00E004F0E4A3F0229000C6802B781DE66454 +:10213E000370379000CAE0FFC394B4501EEF540FE3 +:10214E0070047D0180099000CAE054077006FD7F7F +:10215E0003121DE89000CAE004F022E4781DF6D2C6 +:0A216E00109000CAF07F041228F45C +:012178002244 +:102BBE0075FE0675FF3C75FE0E53FF0F75FE0F5327 +:102BCE00FFF075FE0375FFAAE4900031F09000301F +:102BDE00F0900032F090002FF0C282C283C285C204 +:022BEE0084223F +:102D6700EF14600D14600D14600D2403700BD282F4 +:0A2D770022D28322D28422D28522C8 +:052D0E00900085E0FFCC +:102D1300EF14600D14600D14600D2403700BC28258 +:0A2D230022C28322C28422C285224C +:1027DF00E4FF74332FF582E43400F583E4F07437AB +:1027EF002FF582E43400F583E4F0EF25E0243BF588 +:1027FF0082E43400F583E4F0A3F0EF25E02443F501 +:10280F0082E43400F583E4F0A3F0EF25E0244BF5E8 +:10281F0082E43400F583E4F0A3F0EF25E02453F5D0 +:0F282F0082E43400F583E4F0A3F00FEFB404A3C8 +:01283E002277 +:10277C00AC0774332CF582E43400F583EDF0EAC336 +:10278C0013FEEB13FFEC25E0243BF582E43400F55B +:10279C0083EEF0A3EFF0AF03EC25E02443F582E4E5 +:1027AC003400F583EAF0A3EFF090008AE0FEA3E09A +:1027BC00FFEC25E0244BF582E43400F583EEF0A326 +:1027CC00EFF0EC25E02453F582E43400F583E4F0DB +:0327DC00A3F02245 +:102AE90074332FF582E43400F583EDF074372FF554 +:102AF90082E43400F583EBF0EF25E0243BF582E432 +:102B09003400F583E4F0A37469F0EF25E02453F56C +:0B2B190082E43400F583E4F0A3F02216 +:10103500E4900085F0F0900085E0FFC39404400340 +:1010450002137774332FF582E43400F583E06022D0 +:1010550024FE602414700302113F1470030211B6BC +:1010650024036003021313900085E0FF122D67022D +:101075001313122D0E021313900085E0FF25E024B3 +:101085003BF582E43400F583E0FCA3E0FDEF25E0C9 +:101095002453F582E43400F583E0FEA3E0C39DEE1E +:1010A5009C5005122D678003122D0E900085E0FFE0 +:1010B50025E02443F582E43400F583E0FCA3E0FD5C +:1010C500EF25E02453F582E43400F583E0FEA3E048 +:1010D500C39DEE9C5003021313900085E025E02488 +:1010E50053F582E43400F583E4F0A3F0EF25E02422 +:1010F5004BF582E43400F583E0FEA3E0D39400EEE3 +:1011050094004016900085E025E0244BF582E434F8 +:1011150000F58374FFF5F0120995900085E0FF2531 +:10112500E0244BF582E43400F583E0FCA3E04C6059 +:101135000302131374332F0211D2900085E0FF25AB +:10114500E0243BF582E43400F583E0FCA3E0FDEF09 +:1011550025E02453F582E43400F583E0FEA3E0D3D3 +:101165009DEE9C5005122D678003122D0E90008573 +:10117500E0FF25E02443F582E43400F583E0FCA399 +:10118500E0FDEF25E02453F582E43400F583E0FE2D +:10119500A3E0C39DEE9C5003021313900085E02548 +:1011A500E02453F582E43400F583E4F0A3F0021360 +:1011B50013900085E0FF2437F582E43400F583E0E1 +:1011C50070171229E1C246900085E02433F582E4C8 +:1011D5003400F583E4F0021313900085E0FF243713 +:1011E500F582E43400F583E0FE6402704B2046147A +:1011F500D246EF25E0243BF582E43400F583E4F0A4 +:10120500A37469F0900085E0FF25E0243BF582E4B6 +:101215003400F583E475F001120995EF25E0243BD0 +:10122500F582E43400F583E0FCA3E0C394FEEC947E +:101235000050030212FD804EEE6401705A204617DD +:10124500D246900085E025E0243BF582E43400F5A4 +:1012550083E4F0A374FEF0900085E0FF25E0243BD5 +:10126500F582E43400F58374FFF5F0120995EF2556 +:10127500E0243BF582E43400F583E0FEA3E0D3945B +:1012850069EE94005072900085E02437F582E434CD +:1012950000F583E4F08061900085E0FF2437F58256 +:1012A500E43400F583E06403704EEF25E0243BF55C +:1012B50082E43400F583E0FEA3E0FFC394FEEE94E0 +:1012C500004004D246800BD3EF946AEE940050029E +:1012D500C246900085E025E0243B30460DF582E4CA +:1012E5003400F58374FFF5F0800BF582E43400F5E6 +:1012F50083E475F001120995900085E0FF25E0244F +:101305003BF582E43400F583A3E0FD122945900006 +:1013150085E0FF701174332FF582E43400F583E026 +:10132500900031F08043900085E0B401102433F53E +:1013350082E43400F583E0900030F0802C90008545 +:10134500E0B402102433F582E43400F583E0900024 +:1013550032F08015900085E0B4030E2433F582E465 +:101365003400F583E090002FF0900085E004F00252 +:10137500103BE4900085F0900085E0FFC394045095 +:101385001BEF25E02453F582E43400F583E475F082 +:0C13950001120995900085E004F080DB57 +:0113A1002229 +:102B580075FE1E43FF0275FE2143FF0875D4867576 +:102B6800FE2143FF0475FE2143FF02300E0875FE67 +:102B78002453FFC3800675FE2443FF3C9000D6749F +:032B88000FF02229 +:10005600D2AC759A01D2B9D2BDD2A9D2AB75FE295E +:0400660043FFB02282 +:10006E00C2ACE4F59AD2B9C2BDC2A9C2AB75FE2923 +:04007E0053FF4F22BB +:092E0C0012006E43870202005619 +:102DB100E5E25401FFEF7006201103304704C247DA +:042DC100C322D32234 +:10289D0075FE01E4F5FF122D81122DFF122DE4E4DA +:1028AD00F58675B7C375FE6A75FF0475FE6C43FF3B +:1028BD000B12299675FE8043FF0275FE0E53FFFC29 +:1028CD0043FF0175FE1775FF3CD2A8D2AF122B2422 +:1028DD007D697F03122D9B122BBE1227DF122B5801 +:0728ED009000CD7401F02200 +:03000300020006F2 +:03000600D24732AC +:03004B00022E1D65 +:062E1D0075EB3CD24732C8 +:03005300022E2357 +:062E230075F302D24732F4 +:0E2DD6009000AEEFF0122E159000AEE0FF223E +:082E15002041FDD2418F9922FA +:102D810075FE0E53FFF343FF04D2DF43878075BA0C +:0A2D91000375AAFD759852D2AC221A +:03002300022DF2B9 +:0D2DF200309904C299C241309802C2983253 +:0D2DFF0075BB03759DDC759B92439A012204 +:062B8B009000A9120AD619 +:102B9100E49000ACF0F09000ACE0C39FE49E501CC8 +:102BA1002042FDD2429000A9E475F001120ABF1241 +:0C2BB10008B2F59C9000ACE004F080DA63 +:012BBD0022F5 +:030083000223CD88 +:1023CD00C0E0C083C082C0D075D000C000C005C0C1 +:1023DD0006C007E59B30E105539BFDC242E59B30EE +:1023ED00E076539BFED2479000D2E0146019146042 +:1023FD003424027063E59C9000D2B455087401F04A +:10240D00A3E4F0800E8018E59C9000D2B4AA10745D +:10241D0002F0A3E0FF04F074692FF8A69C8039E464 +:10242D00F0A3F080339000D3E0FF04F074692FF82F +:10243D00A69C786BE62404FFE433FEE0FDC39FEE1B +:10244D006480F87480985005ED9420400B9000D373 +:10245D00E4F09000D2F0D243D007D006D005D000E2 +:09246D00D0D0D082D083D0E0323F +:10247600536C65657020537461746520286C696EB1 +:10248600653A2564290D0A004348475F5354413A8B +:1024960025642C53545F564F583A307825782C5380 +:1024A6005441303A307825782C535441313A3078BB +:1024B60025782C535441323A307825782C535441A0 +:1024C600333A307825782C535441343A307825788D +:1024D6002E4465635F536C6565703A25640D0A008A +:1024E6004465636E745F536C65657044656C6179B1 +:1024F6002052656C6F61642E0D0A00456E7465721C +:10250600205374616E646279204D6F6465210D0AF3 +:0125160000C4 +:062AAC004300CD0402020C +:102CCE009000BCE0FF04F01219B89000BCE0B4060E +:102CDE000204F09000BCE0C3940840037402F0229A +:102D2D00122C22121FBE122C50302311C22312223C +:0E2D3D00F212283F1225B7120C671217072258 +:101BED00E4900085F09000CDE0FFA3E0FE6F606B08 +:101BFD00A3EEF09000CDE0A3F024FE60351460421A +:101C0D0014604624036003021DE790008AE4F0A3EC +:101C1D007403F07B647A007D02E4FF12277C900050 +:101C2D008AE4F0A37403F07B647A007D027F0102E5 +:101C3D00277C200E03021DE7D24575E80CC20DC2AC +:101C4D000E229000D6740FF0227BFF7A24797690C5 +:101C5D000089E4F0A374D9F0021D6E9000CEE0244B +:101C6D00FE6035146076147003021D812403600339 +:101C7D00021DE79000CBE004F0E0C394085003028E +:101C8D001DE79000CD7402F0E49000CBF0781CE6D7 +:101C9D006003021DE7021D7AE5F6700CE5F8700889 +:101CAD00E5FA7004E5E1602D9000CD7403F0E5F6E2 +:101CBD00540FFFE4FCFDFE7B08FAF9F8C3120A7E0F +:101CCD0070069000CD7404F075E11F75F60F75F870 +:101CDD00FC75FABC229000CD7403F022202703027C +:101CED001DE7C22775FE6E900085E5FFF07BFF7A3C +:101CFD0024798E7816E6FF900089E4F0A3EFF0903A +:101D0D000085E0FF90008BE4F0A3EFF0AFE2A3E4D9 +:101D1D00F0A3EFF0AFE3A3E4F0A3EFF0AFE4A3E49F +:101D2D00F0A3EFF0AFE5A3E4F0A3EFF0AFE6A3E48B +:101D3D00F0A3EFF09000D6E0FF900097E4F0A3EF52 +:101D4D00F012140D9000D6E0D394004017E014F07B +:101D5D00204703021DE7C247740FF07BFF7A2479F9 +:101D6D00E602140D7BFF7A25790112140D9000CD3A +:101D7D007404F022122DB1505B122B587F041228DF +:101D8D00F4122DC5E490008AF0A3F0FBFAFDFF12CA +:101D9D00277CE490008AF0A3F0FBFAFD7F01122767 +:101DAD007CE490008AF0A3F0FBFAFD7F0212277C01 +:101DBD00E490008AF0A3F0FBFAFD7F0312277C90DC +:101DCD0000317402F0900030F0900032F090002F4E +:0A1DDD00F0022E0C9000CD7402F00D +:011DE70022D9 +:102BF000302626C2269000CCE0FF04F0EF14600CD3 +:102C000014600E24027012122CCE800D122D2D8015 +:102C100008121BEDE49000CCF0302805C2281210F9 +:022C200035225B +:102CEE0000000000000000000000000000000000D6 +:102CFE0000000000000000000000000000000000C6 +:032AB200016800B8 +:1028F400EF24FE601E14602814602F24FE6035242B +:1029040005703D43BD8853BDBB75FE6F53FFF24355 +:10291400FF092243BDCC75FE6F53FFFE43FF0C221B +:1029240053BD7753B7CF43B7302253B7CF43B70321 +:1029340053BD772253B7CC53BD7775FE6A43FF303E +:012944002270 +:10170700203F0302197F304559200F0A7D3FE4FF30 +:1017170012000ED20F227F031228F4E4900003F088 +:10172700900001F0A3F0C200C201D20B9000D0E0FC +:101737007020C230D202D203C205C208C204C20955 +:10174700C20AD211C248900026F0A3F090002EF0F2 +:101757008008C202C203D205C206C20FC20DC20E62 +:10176700C245900001E0C39405500302191F300BD6 +:1017770005C20B0218F320002ED200E5E354A06047 +:1017870021E5E354A0FFE4FCFDFE7BA0FAF9F8C3D2 +:10179700120A7E90002A70057402F0800A7401F024 +:1017A7008005E490002AF020050302183790000214 +:1017B700E0C3940550077F061228F4802620013ADB +:1017C700900003E0FFD39414501EEF54037003FD01 +:1017D7008009900003E020E0077D017F06121DE8E5 +:1017E700900003E004F080487F041228F4E490009E +:1017F70003F0D201D210C2118036781DE670313065 +:101807001004C2108022E5E354A0FBE4FAF9F89033 +:101817000000E0FFE4FCFDFEC3120A7E6012E5E370 +:1018270054A06004D230D231E5E354A0900000F018 +:1018370020020302197C30483F200F237D3FE4FF3D +:1018470012000ED20FD211E4900026F0A3F0900000 +:101857002EF0900001F0C208D20BC200D204227F02 +:10186700031228F4C20FD203900001E0D39403506F +:101877000302191FC248804D20044A900002E0FF6E +:10188700D39414501BEF54037003FD80099000029A +:10189700E020E0077D017F81121DE890000280783B +:1018A700900003E0FFD39414501BEF54037003FD23 +:1018B7008009900003E020E0077D017F07121DE803 +:1018C7009000038053E5E8540C6026200E1E90001C +:1018D70003E004F0E0C3940550030219B7E4F07580 +:1018E700E80C7F031228F4D20DC211227F040228CC +:1018F700F4C20DC20E3003097F031228F4C203801D +:101907007420083DE5E354AC64AC600330392190A2 +:101917000001E0D394285004E004F022D208E490B8 +:101927000004F0900001F0C2097F041228F48045FA +:10193700900027E0703F7B017A00790912008680CA +:1019470034900004E0FFD39414501EEF5403700347 +:10195700FD8009900004E020E0077D017F80121DD3 +:10196700E8900004E004F0800C200909D2097F0404 +:101977001228F4C211C2072220070BD2077F0412D4 +:1019870028F4C2118022E5E354A0FBE4FAF9F890A9 +:101997000000E0FFE4FCFDFEC3120A7E6012E5E3EF +:1019A70054A06004D230D231E5E354A0900000F097 +:0119B700220D +:06008600900085120AD66D +:10008C0090002EE01470030201631470030202420C +:10009C001470030202B314700302041F24046003DF +:1000AC0002059F900085120AB690001E1208CB60C4 +:1000BC000302059F7868E6D3940A50260690001A2E +:1000CC00743F12092B300C0302059F900085120A15 +:1000DC00B690001A1208CBFDE4FF12000ED20C02EF +:1000EC00059FE47868F6C20C900085120AB6900061 +:1000FC0016E412092B900015E412092B900013E45E +:10010C0012092B900012E412092B900011E4120931 +:10011C002B900010E412092B900018E412092B907C +:10012C000017E412092B90000EE4F5F0120A02906D +:10013C00000CE4F5F0120A02900019E412092B905D +:10014C00001B743F12092B90002E7401F0E49000F8 +:10015C0007F0A3F002059FE5E35408FFE4FCEF6011 +:10016C001CE5E354046016900085120AB690001E3C +:10017C00740112092BE490002EF002059FE5E35464 +:10018C0008FFE4FCEF704A9000B1E0FEA3E0FF90A2 +:10019C000085120AB6900002EE8FF0120A027D055D +:1001AC0012095FEF7802C333CE33CED8F9FF90003B +:1001BC0085120AB6900006EE8FF0120A029000B279 +:1001CC00E025E0FF9000B1E03390000A8FF0120AB6 +:1001DC0002E5E35404FFE4FCEF704F9000AFE0FE47 +:1001EC00A3E0FF900085120AB6EE8FF01209E3909F +:1001FC0000AFE0FEA3E0FF7D0512095FEF7802C3BC +:10020C0033CE33CED8F9FF900085120AB690000495 +:10021C00EE8FF0120A029000B0E025E0FF9000AFE4 +:10022C00E0339000088FF0120A02900085120AB693 +:10023C0090001D020594D3900008E09405900007EF +:10024C00E094005002806FE4900007F0A3F0E5E327 +:10025C005408FFEF701F9000B1E0FEA3E0FF900088 +:10026C0085120AB690000EEE8FF0120A029000185A +:10027C00740112092BE5E35404FFE4FCEF701F90AA +:10028C0000AFE0FEA3E0FF900085120AB690000CD0 +:10029C00EE8FF0120A02900017740112092B9000D5 +:1002AC002E7403F002059FD3900008E09402900096 +:1002BC0007E09400500AE475F00112099502059FBD +:1002CC00E4900007F0A3F0900085120AB690000AA3 +:1002DC001209ABFFAEF090000E1209ABD39FE5F004 +:1002EC009E501C900085120AB69000081209ABFFB4 +:1002FC00AEF090000C1209ABD39FE5F09E4011E4D8 +:10030C0090002EF0900085120AB690001D0203E1B9 +:10031C00900085120AB69000181208CB6401706D1B +:10032C0090000E1209ABFFAEF0D39414EE94005073 +:10033C0031E5E330E31F900016740112092B900095 +:10034C001A1208CBC3943F4044900085120AB69011 +:10035C000018E48035900085120AB69000137401E1 +:10036C008028900085120AB69000061209ABFDD3C6 +:10037C00EF9DEE95F09000854008120AB6900013A0 +:10038C008006120AB6900016740112092B90008593 +:10039C00120AB69000171208CB6401600302059F85 +:1003AC0090000C1209ABFFAEF0D39414EE940050F5 +:1003BC0034E5E330E222900015740112092B900011 +:1003CC001A1208CBC3943F500302059F900085126C +:1003DC000AB6900017E48035900085120AB690009A +:1003EC001274018028900085120AB690000412093C +:1003FC00ABFDD3EF9DEE95F09000854008120AB648 +:10040C009000128006120AB6900015740112092B86 +:10041C0002059FD3900008E09414900007E094002C +:10042C005031E475F0011209959000B1E0FEA3E0A3 +:10043C00FF900085120AB690000EEE8FF0120A02A1 +:10044C009000AFE0FFA3E090000CCF8FF0120A02F7 +:10045C0002059FE4900007F0A3F0900085120AB605 +:10046C009000181208CB640160030204FD90001781 +:10047C001208CB6401707A9000061209ABFFAEF043 +:10048C0090000E1209ABFDACF0C39FEC9E4018908F +:10049C000085120AB690000A1209ABFFD3ED9FEC4F +:1004AC0095F0500302059F900085120AB690000447 +:1004BC001209ABFFAEF090000C1209ABFDACF0C30F +:1004CC009FEC9E4018900085120AB6900008120905 +:1004DC00ABFFD3ED9FEC95F0500302059F90008588 +:1004EC00120AB6900016740112092B900015020521 +:1004FC0094900085120AB69000181208CB64017013 +:10050C00419000061209ABFFAEF090000E1209AB41 +:10051C00FDACF0C39FEC9E4015900085120AB6907E +:10052C00000A1209ABFFD3ED9FEC95F0401490003C +:10053C0085120AB6900016740112092B90002E74C5 +:10054C0002F0900085120AB69000171208CB6401D5 +:10055C0070419000081209ABFFAEF090000C12092C +:10056C00ABFDACF0D39FEC9E5015900085120AB6F3 +:10057C009000041209ABFFC3ED9FEC95F050149062 +:10058C000085120AB6900015740112092B90002EEA +:10059C007402F0900085120AB69000181208CBFF76 +:1005AC006401600D9000171208CB64016003020710 +:1005BC00A29000131208CBFE6401600D9000121281 +:1005CC0008CB6401600302071CEFB4011E900017F6 +:1005DC001208CBB40115EEB401119000131208CB24 +:1005EC00B40108900014740112092B900018120821 +:1005FC00CBFFB401189000171208CB7010900013A9 +:10060C001208CB6401702390001404801AEF701A46 +:10061C009000171208CBB401119000121208CBB441 +:10062C000108900014740112092B900013E41209B4 +:10063C002B900012E412092B9000141208CB6401C9 +:10064C0060030207BB900085120AB690001A1208CC +:10065C00CBD39400400890001A74FE1208F8900056 +:10066C00191208CBFF90001A1208CBD39F4021908F +:10067C0000B9E024C8FF9000B8E03400FEC390003D +:10068C00B5E09FEE6480F89000B4E0648098504828 +:10069C00900085120AB69000191208CBFF90001A30 +:1006AC001208CBD39F9000855013120AB690001AF3 +:1006BC00EF12092B90001CE412092B8013120AB6BE +:1006CC0090001C740112092B90001A74021208F885 +:1006DC0090002E7404F0801390002E7402F09000A1 +:1006EC0085120AB690001CE412092BE4900007F066 +:1006FC00A3F0900085120AB6900014E412092B9016 +:10070C00001C1208CBFF90001A1208CBFD02079FA9 +:10071C00900085120AB69000161208CB6401600D89 +:10072C009000151208CB640160030207BB90001601 +:10073C00E412092B900015E412092B90001A1208F0 +:10074C00CBC3943F500E900085120AB690001A74D9 +:10075C00021208F890002E7404F0900085120AB66C +:10076C0090001B1208CBFF90001A1208CBC39F40BD +:10077C0013900085120AB690001AEF12092B900004 +:10078C002E7401F0900085120AB690001A1208CB54 +:10079C00FDE4FF02000E90002EE0D394024010E422 +:0F07AC00F0900085120AB690001E740112092BFE +:0107BB00221B +:0B2A69009000A9120AD69000ACEDF01E +:102A7400E4FE9000ACE0FD14F0ED60299000A9E4C0 +:102A840075F001120ABF1208B26EFEE4FFEFC394A0 +:102A94000850DFEE30E007C313648CFE8004EEC3FD +:072AA40013FE0F80E8AF06EE +:012AAB002208 +:081DE800900085EFF0A3EDF07F +:101DF000E4A3F0A3F078897C007D017BFF7A2C7945 +:101E0000EEFE7F2012088CE4900089F0A37455F058 +:101E1000A374AAF0900085E0FE90008DF0900086FB +:101E2000E0FD90002DF0EE120ADF1E43011E72024B +:101E30001EC1031ECE061ECE071F17801F1F810066 +:101E4000001F2D90008C7402F0ED700E90008E74C7 +:101E500002F0E490002BF0021F2D900086E0640158 +:101E60006003021F2D90008E04F0E490002CF0021D +:101E70001F2D90008C7420F07F05900086E075F097 +:101E800012A424442FF8E6FE74892FF582E434006E +:101E9000F583EEF00FEFB412E17F17EFC3940D401E +:101EA00003021F2D900086E075F00DA4242A2FF860 +:101EB000E6FE74892FF582E43400F583EEF00F809E +:101EC000DA90008C7402F090008E04F0805F900035 +:101ED0008C7405F090008E7401F0781CE675F005A6 +:101EE000A4A3F0A37420F0900086E0FF700D900092 +:101EF00028E07002800F9000298015EFB4012E9029 +:101F00000029E0700890009174FFF0802090002874 +:101F1000E0900091F0801690008C7401F0800E909B +:101F2000008C7402F090002AE090008EF090008CFB +:101F3000E02404FFE433900087F0A3EFF07B017A04 +:101F4000007989FD122A69900087E0FCA3E02489CA +:101F5000F58274003CF583EFF07F011228F49000C5 +:101F600086E0FF700843BD0253BDFE8016EFB4014A +:101F70000843BD2053BDEF800AEFB4FF0643BD22E6 +:101F800053BDEE900088E02402FF900087E034000B +:101F9000FE7B017A007989122B8B900086E0FF701E +:101FA0000753BDFD43BD0122EFB4010753BDDF431D +:0D1FB000BD1022EFB4FF0653BDDF43BD118D +:011FBD002201 +:10263900EF24FA605014604D24067069E4FE746D4D +:102649002EF8E6FF90002DE075F012A424442EF830 +:10265900A6070EEEB412E7E4FE747F2EF8E6FF90AB +:10266900002DE075F00DA4242A2EF8A6070EEEB46D +:1026790008E790002DE0700690002B04F0229000EE +:102689002C7401F022786DE6B4E30D900005740115 +:10269900F008E6900028F0229000067401F0786EA8 +:0526A900E6900029F09D +:0126AE002209 +:102C5000E4FFFE900085F0304323C243FB7A007905 +:102C600069786BE62403FD122A697E00786BE624FE +:0D2C70006CF8E6B50707786CE6FF12263910 +:012C7D002234 +:102AB500011C00C139602A005B0BB80BEA0C1C0C29 +:102AC500800CB20CE40D160D480D7A0DAC0E100EEF +:102AD500420E740EA60ED80F0A0F3C0F870FD210A8 +:032AE5001D106859 +:1025B700E4FFEF25E0245BF582E43400F583E0FCDB +:1025C700A3E0FDC39000B9E09D9000B8E09C4005F2 +:1025D7000FEFB415DD781CE6FEEFD39E4004180616 +:1025E7008003781B16E5E16007E4F5E1781CA60790 +:1025F700781BE6FED394BE5006EEC3940A500778C4 +:102607001CA607187664781CE6FFD394005002D204 +:102617003DEFD394015002D239EFD394055002D243 +:102627003BEFD3940A5002D23AEFD3940F5002D221 +:012637003C66 +:01263800227F +:1026AF009000C3E06062E4F0D2259000C1E004F036 +:1026BF00E0C394054004E4F0D2269000C4E004F097 +:1026CF00E0C3940A4004E4F0D2289000BEE475F011 +:1026DF0001120995C39000BFE094649000BEE0948E +:1026EF00004006E4F0A3F0D2239000C0E004F0E035 +:1026FF00C394FA4013E4F0D2249000C2E004F0E057 +:09270F0094044004E4F0D22722F6 +:03000B00020026CA +:10002600C0E0C083C082C0D074FC258CF58C746699 +:10003600258AF58A9000C37401F0D0D0D082D0838F +:03004600D0E032D5 +:0E2DE400758901758CFC758A66D2A9D28C2285 +:1029E100EFD39401501675FE0EEF25E02404FE741A +:1029F10003A806088002C333D8FC801475FE0FEFCC +:102A010024FE25E0FE7403A806088002C333D8FC27 +:102A1100F452FFEFB4040C75FE0F53FFF075FE0E78 +:042A210053FF0F222E +:102D9B0075FE54EF5407F5FF75FE56AF058FFF75A3 +:062DAB00FE5375FF01223A +:10294500EFD39401501875FE0EEF25E02404FE74B4 +:1029550003A806088002C333D8FC42FF801675FE23 +:102965000FEF24FE25E0FE7403A806088002C3339A +:10297500D8FC42FFEF70038DCE22EFB401038DCF5B +:1029850022EFB402038DDE22EFB40304AF058FDF1F +:01299500221F +:032FFD00010102CD +:102CAB00E4FB7D04FF122AE9E4FB7D047F01122A79 +:102CBB00E9E4FB7D047F02122AE9E4FB7D047F0338 +:032CCB00022AE9F1 +:100C6700303159C231E49000D4F0781BF690008AF5 +:100C7700F0A3F0FBFAFDFF12277CE490008AF0A3B3 +:100C8700F0FBFAFD7F0112277CE490008AF0A3F0C5 +:100C9700FBFAFD7F0212277CE490008AF0A3F0FBA9 +:100CA700FAFD7F0312277C9000317402F090003028 +:100CB700F0900032F090002FF0D2472220220F2030 +:100CC7003E0C200D03020D7C300E03020D7C202B01 +:100CD70005D22BD23122900031E06402601A9000D5 +:100CE7008AE4F0A3740AF07B147A007D02E4FF1211 +:100CF700277C9000317403F0900030E06402601AA2 +:100D070090008AE4F0A3740AF07B147A007D027FD6 +:100D17000112277C9000307403F0900032E06402E7 +:100D2700601A90008AE4F0A3740AF07B147A007DBD +:100D3700027F0212277C9000327403F090002FE0AC +:100D47006402601A90008AE4F0A3740AF07B147AB4 +:100D5700007D027F0312277C90002F7403F0200D83 +:100D6700030210349000D4E0C394285003020EB25B +:100D7700D20ED23122302B0CC22BC22DC22CC22F45 +:100D8700C230D2487816E6FF7003020E8C640370F7 +:100D97005E202D07D22DC22C022CABE490008AF0E6 +:100DA700A3F0FBFA7D01FF12277CE490008AF0A3F1 +:100DB700F0FBFA7D017F0112277CE490008AF0A303 +:100DC700F0FBFA7D017F0212277CE490008AF0A3F2 +:100DD700F0FBFA7D017F0312277C9000317401F04C +:100DE700900030F0900032F090002FF0020E832038 +:100DF7002C0DD22CC22DD231E49000D5F0807D90FD +:100E070000D4E0C394015055E004F0A3E014601A45 +:100E170014602714603424037062900031E0640486 +:100E2700605A7B017D04E4FF802E900030E064046B +:100E3700604A7B017D047F01801E900032E06404DC +:100E4700603A7B017D047F02800E90002FE06404EE +:100E5700602A7B017D047F03122AE9801F9000D45A +:100E6700E0C3940F5005E004F08011E49000D4F043 +:100E7700A3E004F0E0C394044002E4F0C22FC230C0 +:100E8700C232D22E22302C0AC22C122CABD231D233 +:100E97004822202F0C202E09203006203203021072 +:100EA700349000D4E0FFC394015004E004F022EF33 +:100EB700C394644003020FDF9000D4E004F0303B9A +:100EC70037900031E064037003021034E490008A25 +:100ED700F0A3F07B64FA7D03FF12277C9000317446 +:100EE70004F0E490008AF0A3F0FBFAFD7F011227DB +:100EF7007C9000307402802D303A41E490008AF0F3 +:100F0700A3F0FBFA7D01FF12277C9000317401F0FA +:100F1700E490008AF0A3F0FBFA7D017F0112277CA1 +:100F27009000307401F0E490008AF0A3F0FBFAFD22 +:100F37007F0212277C90003274028043E490008A7B +:100F4700303C53F0A3F0FBFA7D01FF12277C9000A1 +:100F5700317401F0E490008AF0A3F0FBFA7D017F81 +:100F67000112277C9000307401F0E490008AF0A30E +:100F7700F0FBFA7D017F0212277C9000327401F0AA +:100F8700E490008AF0A3F0FBFAFD7F0312277C9020 +:100F9700002F7402F022F0A3F0FBFA7D01FF122765 +:100FA7007CE490008AF0A3F0FBFA7D017F01122711 +:100FB7007CE490008AF0A3F0FBFA7D017F02122700 +:100FC7007CE490008AF0A3F0FBFA7D017F031227EF +:100FD7007C90003174018048C22FC22EC230C232C9 +:100FE700E490008AF0A3F0FBFAFDFF12277CE4905F +:100FF700008AF0A3F0FBFAFD7F0112277CE4900042 +:101007008AF0A3F0FBFAFD7F0212277CE490008AA6 +:10101700F0A3F0FBFAFD7F0312277C9000317402E6 +:0D102700F0900030F0900032F090002FF0BB +:011034002299 +:10253700022C7EE493A3F8E493A34003F68001F210 +:1025470008DFF48029E493A3F85407240CC8C333A5 +:10255700C4540F4420C8834004F456800146F6DF74 +:10256700E4800B0102040810204080902AACE47E2E +:10257700019360BCA3FF543F30E509541FFEE49369 +:10258700A360010ECF54C025E060A840B8E493A330 +:10259700FAE493A3F8E493A3C8C582C8CAC583CA5B +:1025A700F0A3C8C582C8CAC583CADFE9DEE780BE13 +:012AE80000ED +:1007BC00E709F608DFFA8046E709F208DFFA803E1F +:1007CC0088828C83E709F0A3DFFA8032E309F6080C +:1007DC00DFFA8078E309F208DFFA807088828C8374 +:1007EC00E309F0A3DFFA806489828A83E0A3F60828 +:1007FC00DFFA805889828A83E0A3F208DFFA804C02 +:10080C0080D280FA80C680D4806980F280338010D8 +:10081C0080A680EA809A80A880DA80E280CA803341 +:10082C0089828A83ECFAE493A3C8C582C8CCC583B9 +:10083C00CCF0A3C8C582C8CCC583CCDFE9DEE78089 +:10084C000D89828A83E493A3F608DFF9ECFAA9F008 +:10085C00EDFB2289828A83ECFAE0A3C8C582C8CC5E +:10086C00C583CCF0A3C8C582C8CCC583CCDFEADE77 +:10087C00E880DB89828A83E493A3F208DFF980CCD9 +:10088C0088F0EF60010E4E60C388F0ED2402B404D2 +:10089C000050B9F582EB2402B4040050AF23234579 +:0608AC00822390080C738A +:1008B200BB010689828A83E0225002E722BBFE0244 +:0908C200E32289828A83E4932277 +:1008CB00BB010CE58229F582E5833AF583E02250E2 +:1008DB0006E92582F8E622BBFE06E92582F8E2222C +:0D08EB00E58229F582E5833AF583E4932246 +:1008F800BB010FF8E58229F582E5833AF583E02804 +:10090800F0225009C58229F8E58226F622BBFE09A5 +:10091800C58229F8E22582F222F8EA2583F583E9DF +:03092800932822EF +:10092B00F8BB010DE58229F582E5833AF583E8F002 +:10093B00225006E92582C8F622BBFE05E92582C8AE +:02094B00F22296 +:10094D00EF8DF0A4A8F0CF8CF0A428CE8DF0A42EBE +:02095D00FE2278 +:10095F00C2D5EC30E709B2D5E4C39DFDE49CFCEEB3 +:10096F0030E715B2D5E4C39FFFE49EFE120B44C3DC +:10097F00E49DFDE49CFC8003120B4430D507C3E4D7 +:06098F009FFFE49EFE2222 +:10099500C5F0F8A3E028F0C5F0F8E58215827002ED +:0609A5001583E038F0228A +:1009AB00BB0110E58229F582E5833AF583E0F5F08A +:1009BB00A3E0225009E92582F886F008E622BBFE67 +:1009CB000AE92582F8E2F5F008E222E5832AF583AD +:0809DB00E993F5F0A3E9932272 +:1009E300BB010A89828A83F0E5F0A3F0225006F75F +:0F09F30009A7F01922BBFE06F3E5F009F319225C +:100A0200F8BB0111E58229F582E5833AF583E8F026 +:100A1200E5F0A3F0225009E92582C8F608A6F022E3 +:0D0A2200BBFE09E92582C8F2E5F008F222CA +:100A2F00E88FF0A4CC8BF0A42CFCE98EF0A42CFC66 +:100A3F008AF0EDA42CFCEA8EF0A4CDA8F08BF0A4E4 +:100A4F002DCC3825F0FDE98FF0A42CCD35F0FCEB43 +:100A5F008EF0A4FEA9F0EB8FF0A4CFC5F02ECD3908 +:0F0A6F00FEE43CFCEAA42DCE35F0FDE43CFC2275 +:102A2500C2D5E830E70FB2D5E4C39BFBE49AFAE4DC +:102A350099F9E498F8EC30E717B2D5122A5B120B36 +:102A4500D5E4C39BFBE49AFAE499F9E498F880038A +:102A5500120BD530D50DE4C39FFFE49EFEE49DFD2A +:042A6500E49CFC22CF +:100A7E00EB9FF5F0EA9E42F0E99D42F0E89C45F0CE +:010A8E002245 +:100A8F00E8600FECC313FCED13FDEE13FEEF13FF45 +:030A9F00D8F12269 +:100AA200E86010ECA2E713FCED13FDEE13FEEF136A +:040AB200FFD8F02257 +:090AB600E0FBA3E0FAA3E0F92241 +:100ABF00F8E0FBA3A3E0F925F0F0E58215827002C0 +:070ACF001583E0FA38F02264 +:090AD600EBF0A3EAF0A3E9F02221 +:100ADF00D083D082F8E4937012740193700DA3A3A6 +:100AEF0093F8740193F5828883E4737402936860BA +:060AFF00EFA3A3A380DFBA +:100B0500EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02D7D +:100B1500FDE43CFCE8A42EC8C5F03DFDE43CFCEF3B +:0D0B2500A4FFE5F028FEE43DFDE43CFC22C9 +:1013A200E5082489F582E43400F583E005082290FB +:1013B2000086301903900089E475F001120ABF0219 +:1013C20008B22012E97F2ED2128018EF540F249017 +:1013D200D43440D4FF30160BEF24BFB41A005003AC +:1013E2002461FFE50960021509050CE50C70020590 +:1013F2000B30190E900086E475F001120ABFEF025D +:101402000B32022DD67403D2198003E4C219F508F7 +:10141200900086120AD6E4F509F50BF50CE5096091 +:10142200077F201213E580F5750AFFC213C212C2AC +:1014320014C215C217C218C21A1213B1FF700D30AE +:1014420019057F001213F6AF0CAE0B22B4255FC252 +:10145200D5C2161213B1FF24D0B40A00501A75F087 +:101462000A780930D50508B6FF0106C6A426F6207B +:10147200D5047002D21580D924CFB41A00EF5004DB +:10148200C2E5D2160215F7D21380C6D21280C0D29C +:101492001480BCD2D580BAD21780B47F201213E553 +:1014A2002014077401B5090040F11213A2FF1213B0 +:1014B200E502141FD21AD21880951213A2FB12133E +:1014C200A2FA1213A2F94A4B700679C87A167BFF68 +:1014D20020142EE509602A7E008E82758300120890 +:1014E200CB60060EEE650A70F0C2D5EBC0E0EAC032 +:1014F200E0E9C0E0EE12163ED0E0F9D0E0FAD0E02A +:10150200FB1208B2FF60AAEBC0E0EAC0E0E9C0E06B +:101512001213E5D0E02401F9D0E03400FAD0E0FB68 +:10152200E50A0460DCD50AD980877BFF7A16793A0E +:10153200D214809C791080027908C218C21A8008DD +:10154200D2D5790A8004790AC2D5E50A047002F577 +:101552000AE4FAFDFEFF1213A2FC7B082013131209 +:1015620013A2FD7B1030120A1213A2FE1213A2FF65 +:101572007B20EC3382D592D55013C3E43012069F00 +:10158200FFE49EFEE42013039DFDE49CFCE4CBF803 +:10159200C213EC700CCFCECDCCE824F8F870F380F7 +:1015A20017C3EF33FFEE33FEED33FDEC33FCEB33C9 +:1015B200FB994002FB0FD8E9EB301305F8D0E0C4E9 +:1015C20048B213C0E00AEC4D4E4F78207B0070C247 +:1015D200EAB50A0040BCC0E0121640D0F0D0E020CC +:1015E2001304C4C0E0C4B213C0F01213CED0F0D5BD +:1015F200F0EB02141F120ADF14BC53153658148D77 +:101602004C148942153A4F15424415424914A243DB +:08161200154855152C46152C56 +:10161A0045152C4716E85014912D14952E14B82B05 +:10162A0014992314B62016D12A145148000014B074 +:10163A003F3F3F00790AA2D5201514301709B91087 +:10164A00020404B9080104A2D5201802500104209A +:10165A0014689214B509005034C0E07F203015197F +:10166A007F30A21472187217500F121697C214C242 +:10167A0018C217C21A7F30800F301703E9C0E01270 +:10168A0013E5301703D0E0F9D0E0B509CC301717CD +:10169A007F30B9100C1213E57F583016077F788017 +:1016AA0003B908031213E53014057F2D0213E57FF1 +:1016BA0020201AF87F2B2018F322921480CF286E4C +:1016CA00756C6C2900D2131213A23013F8C2137866 +:1016DA000930D50108F60214512D50434958121306 +:1016EA00A22403B405004001E49016E3931213D632 +:0D16FA00743A1213D6D21575090402153684 +:100B3200BB010689828A83F0225002F722BBFE01A2 +:020B4200F3229C +:100B4400BC000BBE0029EF8DF084FFADF022E4CC95 +:100B5400F875F008EF2FFFEE33FEEC33FCEE9DEC5E +:100B6400984005FCEE9DFE0FD5F0E9E4CEFD22EDA4 +:100B7400F8F5F0EE8420D21CFEADF075F008EF2FEE +:100B8400FFED33FD4007985006D5F0F222C398FDDF +:050B94000FD5F0EA227C +:100B990075F008758200EF2FFFEE33FECD33CDCC13 +:100BA90033CCC58233C5829BED9AEC99E582984096 +:100BB9000CF582EE9BFEED9AFDEC99FC0FD5F0D673 +:100BC900E4CEFBE4CDFAE4CCF9A88222B800C1B99D +:100BD9000059BA002DEC8BF084CFCECDFCE5F0CBDB +:100BE900F97818EF2FFFEE33FEED33FDEC33FCEB14 +:100BF90033FB10D703994004EB99FB0FD8E5E4F9CF +:100C0900FA227818EF2FFFEE33FEED33FDEC33FCBB +:100C1900C933C910D7059BE99A4007EC9BFCE99AAF +:100C2900F90FD8E0E4C9FAE4CCFB2275F010EF2FF4 +:100C3900FFEE33FEED33FDCC33CCC833C810D707F4 +:100C49009BEC9AE899400AED9BFDEC9AFCE899F82F +:0E0C59000FD5F0DAE4CDFBE4CCFAE4C8F922C2 +:00000001FF diff --git a/Out/8837_EVB_250121_1409_9DE0_010102.bin b/Out/8837_EVB_250121_1409_9DE0_010102.bin new file mode 100644 index 0000000000000000000000000000000000000000..5f25540f7ce1622a3581aa49d485d2aa163df5a0 GIT binary patch literal 12290 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 literal 0 HcmV?d00001 diff --git a/Project/SY8837_Demo.uvgui.GH b/Project/SY8837_Demo.uvgui.GH index 4b7245a..87d7524 100644 --- a/Project/SY8837_Demo.uvgui.GH +++ b/Project/SY8837_Demo.uvgui.GH @@ -6,7 +6,7 @@
### uVision Project, (C) Keil Software
- E:\todaywork\20241202_tp3410\SY8837_Demo\UsrSrc\user + E:\todaywork\20241202_tp3410\SY8837_Demo\UsrSrc\display @@ -93,25 +93,25 @@ 2 3 - -1 - -1 + -32000 + -32000 -1 -1 - 171 - 1799 - 3719 - 1133 + 167 + 2141 + 4061 + 1129 0 - 1250 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000C000000030000000100000036453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000FFDC7800FFFFFFFF4C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6469736368617267655C6469736368617267655F6D6F64756C652E6300000000126469736368617267655F6D6F64756C652E6300000000BECEA100FFFFFFFF41453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C757365726170705C757365726170702E630000000009757365726170702E6300000000F0A0A100FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5372635C737461727475705C535441525455502E413531000000000B535441525455502E41353100000000BCA8E100FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C757365725C757365722E680000000006757365722E68000000009CC1B600FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6B65795C6B65792E6300000000056B65792E6300000000F7B88600FFFFFFFF3C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C696E635C636F6E6669672E680000000008636F6E6669672E6800000000D9ADC200FFFFFFFF48453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C636861726765725C636861726765725F6D6F64756C652E680000000010636861726765725F6D6F64756C652E6800000000A5C2D700FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C766F785C766F785F6D6F64756C652E68000000000C766F785F6D6F64756C652E6800000000B3A6BE00FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6164635C6164632E6300000000056164632E6300000000EAD6A300FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6C65645C6C65642E6300000000056C65642E6300000000F6FA7D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F000069030000 + 1333 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000D000000000000000100000036453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000FFDC7800FFFFFFFF4C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6469736368617267655C6469736368617267655F6D6F64756C652E6300000000126469736368617267655F6D6F64756C652E6300000000BECEA100FFFFFFFF41453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C757365726170705C757365726170702E630000000009757365726170702E6300000000F0A0A100FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5372635C737461727475705C535441525455502E413531000000000B535441525455502E41353100000000BCA8E100FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C757365725C757365722E680000000006757365722E68000000009CC1B600FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6B65795C6B65792E6300000000056B65792E6300000000F7B88600FFFFFFFF3C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C696E635C636F6E6669672E680000000008636F6E6669672E6800000000D9ADC200FFFFFFFF48453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C636861726765725C636861726765725F6D6F64756C652E680000000010636861726765725F6D6F64756C652E6800000000A5C2D700FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C766F785C766F785F6D6F64756C652E68000000000C766F785F6D6F64756C652E6800000000B3A6BE00FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6164635C6164632E6300000000056164632E6300000000EAD6A300FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6C65645C6C65642E6300000000056C65642E6300000000F6FA7D00FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C68616C6C5C68616C6C2E63000000000668616C6C2E6300000000B5E99D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F0000C3020000 @@ -134,7 +134,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -150,11 +150,11 @@ 0 16 - 0300000066000000ED00000039030000 + 0300000066000000ED00000093020000 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -170,11 +170,11 @@ 0 16 - 0300000066000000ED00000039030000 + 0300000066000000ED00000093020000 16 - 22000000390000003E01000079020000 + D8000000EF000000F40100002F030000 @@ -194,7 +194,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -214,7 +214,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -234,7 +234,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -254,7 +254,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -274,7 +274,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -294,7 +294,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -314,7 +314,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -334,7 +334,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -354,7 +354,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -374,7 +374,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -394,7 +394,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -414,7 +414,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -434,7 +434,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -450,11 +450,11 @@ 0 16 - 0300000066000000ED00000039030000 + 0300000066000000ED00000093020000 16 - 22000000390000003E01000079020000 + D8000000EF000000F40100002F030000 @@ -470,11 +470,11 @@ 0 16 - 0300000066000000ED00000039030000 + 0300000066000000ED00000093020000 16 - 22000000390000003E01000079020000 + D8000000EF000000F40100002F030000 @@ -490,11 +490,11 @@ 0 16 - 000000006A03000080070000E6030000 + 00000000C402000080070000E6030000 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -514,7 +514,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -530,11 +530,11 @@ 0 16 - 030000006D0300008D050000CD030000 + 03000000C70200008D05000027030000 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -554,7 +554,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -574,7 +574,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -614,7 +614,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -634,7 +634,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -654,7 +654,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -674,7 +674,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -694,7 +694,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -714,7 +714,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -734,7 +734,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -754,7 +754,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -774,7 +774,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -794,7 +794,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -814,7 +814,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -834,7 +834,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -854,7 +854,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -874,7 +874,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -894,7 +894,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -914,7 +914,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -934,7 +934,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -954,7 +954,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -974,7 +974,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -994,7 +994,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1014,7 +1014,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1034,7 +1034,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1054,7 +1054,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1074,7 +1074,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1094,7 +1094,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1114,7 +1114,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1134,7 +1134,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1154,7 +1154,7 @@ 16 - 22000000390000003E01000079020000 + D8000000EF000000F40100002F030000 @@ -1170,11 +1170,11 @@ 0 16 - 000000006A03000090050000E6030000 + 00000000C40200009005000040030000 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -1190,11 +1190,11 @@ 0 16 - 030000006D0300008D050000CD030000 + 03000000C70200008D05000027030000 16 - 22000000390000003E01000079020000 + D8000000EF000000F40100002F030000 @@ -1214,7 +1214,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1234,7 +1234,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1250,11 +1250,11 @@ 0 16 - 030000006D0300008D050000CD030000 + 03000000C70200008D05000027030000 16 - 22000000390000003E01000079020000 + D8000000EF000000F40100002F030000 @@ -1270,11 +1270,11 @@ 0 16 - 030000006D0300008D050000CD030000 + 03000000C70200008D05000027030000 16 - 22000000390000003E01000079020000 + D8000000EF000000F40100002F030000 @@ -1294,7 +1294,7 @@ 16 - 2200000039000000EA020000C9000000 + D8000000EF000000A00300007F010000 @@ -1314,7 +1314,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1334,7 +1334,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1354,7 +1354,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1374,7 +1374,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1394,7 +1394,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1414,7 +1414,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1434,7 +1434,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1454,7 +1454,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1474,7 +1474,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1494,7 +1494,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1514,7 +1514,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1534,7 +1534,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1554,7 +1554,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1574,7 +1574,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1594,7 +1594,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1614,7 +1614,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1634,13 +1634,13 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 50017 50017 - 1 + 0 0 0 0 @@ -1650,11 +1650,11 @@ 0 16 - F7000000660000008D05000081000000 + A3040000660000008D0500007C010000 16 - 0A0000000A0000006E0000006E000000 + D8000000EF000000C8010000BA010000 @@ -1674,7 +1674,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1694,7 +1694,7 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 @@ -1794,19 +1794,19 @@ 16 - 22000000390000001201000004010000 + D8000000EF000000C8010000BA010000 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000002200000039000000EA020000C9000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000022000000390000001201000004010000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F400000052030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000022000000390000001201000004010000000000004F000000F0000000520300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000022000000390000001201000004010000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000520300008007000056030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000002200000039000000EA020000C9000000000000005603000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000D8000000EF000000A00300007F010000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000D8000000EF000000C8010000BA010000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F4000000AC020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000D8000000EF000000C8010000BA010000000000004F000000F0000000AC0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000D8000000EF000000C8010000BA010000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000AC02000080070000B00200000100000001000010040000000100000002FDFFFF8E000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000D8000000EF000000A00300007F01000000000000B002000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2911 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000008323032343130313596000000000000001300083230323431303135084144435F43544C310F636872675F69635F64697361626C6508636872675F69635F04343235300E496E697469616C5F5354373733350564656275671C4932435F57726974655F4F6E654279746528305844342C307830312C1C4932435F57726974655F4F6E654279746528305844342C307831302C0B536C6565705F64656C61791B4932435F57726974655F4F6E654279746528305844342C307830371B4932435F57726974655F4F6E654279746528305844342C3078313010636872675F63757272656E745F736574174932435F57726974655F4F6E654279746528305844342C1B4932435F57726974655F4F6E654279746528305844342C30783033023033084C444F5F43544C30043437303008766F6C5F7662617400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000 + 2914 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000036162739600000000000000140003616273083230323431303135084144435F43544C310F636872675F69635F64697361626C6508636872675F69635F04343235300E496E697469616C5F5354373733350564656275671C4932435F57726974655F4F6E654279746528305844342C307830312C1C4932435F57726974655F4F6E654279746528305844342C307831302C0B536C6565705F64656C61791B4932435F57726974655F4F6E654279746528305844342C307830371B4932435F57726974655F4F6E654279746528305844342C3078313010636872675F63757272656E745F736574174932435F57726974655F4F6E654279746528305844342C1B4932435F57726974655F4F6E654279746528305844342C30783033023033084C444F5F43544C30043437303008766F6C5F766261740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000 1423 @@ -1822,7 +1822,7 @@ Build 976 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000 583 @@ -3603,12 +3603,12 @@ 0 100 - 3 + 0 ..\UsrSrc\main.c - 0 - 16 - 43 + 40 + 18 + 46 1 0 @@ -3616,17 +3616,17 @@ ..\UsrSrc\vox\vox_module.c 0 - 536 - 556 + 6 + 35 1 0 ..\UsrSrc\discharge\discharge_module.c - 18 + 2 158 - 176 + 178 1 0 @@ -3634,8 +3634,8 @@ ..\UsrSrc\userapp\userapp.c 0 - 643 - 663 + 98 + 110 1 0 @@ -3660,18 +3660,18 @@ ..\UsrSrc\key\key.c - 1 - 253 - 275 + 0 + 19 + 31 1 0 \todaywork\20241202_tp3410\SY8837_Demo\UsrInc\inc\config.h - 16 + 14 183 - 205 + 206 1 0 @@ -3687,9 +3687,9 @@ ..\UsrInc\vox\vox_module.h - 18 - 459 - 490 + 0 + 461 + 491 1 0 @@ -3705,9 +3705,18 @@ ..\UsrSrc\led\led.c - 82 + 2 183 - 201 + 205 + 1 + + 0 + + + ..\UsrSrc\hall\hall.c + 0 + 1 + 29 1 0 diff --git a/Project/SY8837_Demo.uvopt b/Project/SY8837_Demo.uvopt index 11d308c..0cec4d0 100644 --- a/Project/SY8837_Demo.uvopt +++ b/Project/SY8837_Demo.uvopt @@ -392,6 +392,18 @@ 0 0 + + 2 + 19 + 1 + 0 + 0 + 0 + ..\UsrSrc\display\display_ui.c + display_ui.c + 0 + 0 + diff --git a/Project/SY8837_Demo.uvproj b/Project/SY8837_Demo.uvproj index 0ea88fb..edaf86d 100644 --- a/Project/SY8837_Demo.uvproj +++ b/Project/SY8837_Demo.uvproj @@ -324,7 +324,7 @@ - ..\UsrInc\adc;..\UsrInc\charger;..\UsrInc\discharge;..\UsrInc\gpio;..\UsrInc\hall;..\UsrInc\i2c_simu;..\UsrInc\inc;..\UsrInc\key;..\UsrInc\led;..\UsrInc\mtp;..\UsrInc\pwm;..\UsrInc\sleep;..\UsrInc\system;..\UsrInc\uart;..\UsrInc\userapp;..\UsrInc\vox;..\UsrInc\vox_comm;..\UsrInc\watchdog;..\UsrInc\bat;..\UsrInc\timer;..\UsrInc\pmu;..\UsrInc\user + ..\UsrInc\adc;..\UsrInc\charger;..\UsrInc\discharge;..\UsrInc\gpio;..\UsrInc\hall;..\UsrInc\i2c_simu;..\UsrInc\inc;..\UsrInc\key;..\UsrInc\led;..\UsrInc\mtp;..\UsrInc\pwm;..\UsrInc\sleep;..\UsrInc\system;..\UsrInc\uart;..\UsrInc\userapp;..\UsrInc\vox;..\UsrInc\vox_comm;..\UsrInc\watchdog;..\UsrInc\bat;..\UsrInc\timer;..\UsrInc\pmu;..\UsrInc\user;..\UsrInc\display @@ -471,6 +471,11 @@ 1 ..\UsrSrc\InitVars.c + + display_ui.c + 1 + ..\UsrSrc\display\display_ui.c + diff --git a/SY8837_Demo.si4project/SY8837_Demo.SearchResults b/SY8837_Demo.si4project/SY8837_Demo.SearchResults index 093e9ee..ea6ec96 100644 --- a/SY8837_Demo.si4project/SY8837_Demo.SearchResults +++ b/SY8837_Demo.si4project/SY8837_Demo.SearchResults @@ -1,5 +1,15 @@ ----- _DEBUG_ADC Matches (4 in 2 files) ---- -PMU_ADC_Chn_Data in adc.c (UsrSrc\adc) : #ifdef _DEBUG_ADC -PMU_ADC_Chn_Data in adc.c (UsrSrc\adc) : #ifdef _DEBUG_ADC -PMU_ADC_Chn_Data in adc.c (UsrSrc\adc) : #ifdef _DEBUG_ADC -define.h (UsrInc\inc) line 95 : #define _DEBUG_ADC +---- Enter_Sleep_Cnt_Restart_Flag Matches (14 in 8 files) ---- +LED_Display_App in display_ui.c (UsrSrc\display) : Enter_Sleep_Cnt_Restart_Flag = 1; +Hall_Handler in hall.c (UsrSrc\hall) : Enter_Sleep_Cnt_Restart_Flag = 1; +Key_Handler in key.c (UsrSrc\key) : Enter_Sleep_Cnt_Restart_Flag = 1; +sleep.c (UsrSrc\sleep) line 37 : bit Enter_Sleep_Cnt_Restart_Flag; +Check_Require_Sleep in sleep.c (UsrSrc\sleep) : if( ( CHIP_STA0 & VIN_PRESENT ) || ( ON == Vox_Vout_Enable ) || Enter_Sleep_Cnt_Restart_Flag ) /*鍏呯數涓佹湁涓柇銆佽虫満澶勪簬鍏呯數鐘舵佹儏鍐典笅锛孊oost閲嶈浇杈撳嚭锛岀郴缁熶笉杩涗紤鐪犳ā寮忋 */ +Check_Require_Sleep in sleep.c (UsrSrc\sleep) : printf("Not Get Into Sleep(ChgStatus:%d,Vox_Vout:%d,Restart_Flag:%d).\r\n",(uint16_t)ChgStatus,(uint16_t)Vox_Vout_Enable,(uint16_t)Enter_Sleep_Cnt_Restart_Flag); +Check_Require_Sleep in sleep.c (UsrSrc\sleep) : Enter_Sleep_Cnt_Restart_Flag = 0; +sleep.h (UsrInc\sleep) line 40 : extern bit Enter_Sleep_Cnt_Restart_Flag; +EX0_isr in system.c (UsrSrc\system) : Enter_Sleep_Cnt_Restart_Flag = 1; +EX2_isr in system.c (UsrSrc\system) : Enter_Sleep_Cnt_Restart_Flag = 1; +EX3_isr in system.c (UsrSrc\system) : Enter_Sleep_Cnt_Restart_Flag = 1; +uart1_Interrupt in uart.c (UsrSrc\uart) : Enter_Sleep_Cnt_Restart_Flag = 1; +SysTem_State_Machine in userapp.c (UsrSrc\userapp) : if(Enter_Sleep_Cnt_Restart_Flag) +SysTem_State_Machine in userapp.c (UsrSrc\userapp) : Enter_Sleep_Cnt_Restart_Flag = 0; diff --git a/SY8837_Demo.si4project/SY8837_Demo.sip_sym b/SY8837_Demo.si4project/SY8837_Demo.sip_sym index ca0be10de6940b057239007f8c03f202b427cd1a..87522d0d02f52fb5d7e02a4f7bcc71daf7bdf525 100644 GIT binary patch delta 14876 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 TR1Wz&wEzG6e}4?B{q6q?F(zoV delta 14042 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 F{Wt7#JcR%N diff --git a/SY8837_Demo.si4project/SY8837_Demo.sip_xm b/SY8837_Demo.si4project/SY8837_Demo.sip_xm index b35bc8fdd2f9d5583164fa26819ecb9817c5dc2b..5d81c4c112d5a95e5dbc6579154b2ec63ac98030 100644 GIT binary patch delta 15 WcmbQkxP)01y@fFaQ7m diff --git a/SY8837_Demo.si4project/SY8837_Demo.siwork b/SY8837_Demo.si4project/SY8837_Demo.siwork index eaf09b2220b0e54ef0fe2791444e91024784fbc5..9d62814caf1bf5d692713c968d03c27926630362 100644 GIT binary patch literal 96785 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 XoMg0SMp06%nT0mXKkk{^yZ`?HnEZ46 literal 81660 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 diff --git a/UsrInc/charger/charger_module.h b/UsrInc/charger/charger_module.h index e289879..8b91659 100644 --- a/UsrInc/charger/charger_module.h +++ b/UsrInc/charger/charger_module.h @@ -23,23 +23,6 @@ #include "define.h" -#ifdef NTC_ENABLE -extern bit CHG_NTC_Pro_Flag; -#endif - -// 充电状态定义 -typedef enum -{ - CHG_NONE = 0x00, - - CHG_PROTECT, - - CHG_STA_ING, // 充电中 - - CHG_STA_COMPLETED, // 充电完成 - -} TE_CHG_STA; - typedef enum { DISCHG_ON = 0, @@ -48,8 +31,6 @@ typedef enum }g_chg_type; -extern idata TE_CHG_STA ChgStatus; // 系统状态定义 - #if CHARGER_ENABLE /* Charger Current Setting */ @@ -201,10 +182,6 @@ typedef struct { #define STATE_TC_Pos_Msk (0x1UL << STATE_TC_Pos) #define STATE_TC STATE_TC_Pos_Msk -#define CHG_CONSTANT_CUR_TIM 1 - -#define DIE_OT_RECOVER_TIM 25 //NTC保护后,恢复正常后等待250ms重新开启充电 - extern void Charger_Init(void); extern void Charger_Handler(void); diff --git a/UsrInc/discharge/discharge_module.h b/UsrInc/discharge/discharge_module.h index b134033..06a116d 100644 --- a/UsrInc/discharge/discharge_module.h +++ b/UsrInc/discharge/discharge_module.h @@ -107,11 +107,6 @@ /******************************************************************************\ Variables definitions \******************************************************************************/ -#ifdef NTC_ENABLE -extern bit Boost_NTC_Pro_Flag; -#endif - -extern bit gBoost_Prepared_Flag; //Boost满足开启条件。 /******************************************************************************\ Functions definitions diff --git a/UsrInc/display/display_ui.h b/UsrInc/display/display_ui.h new file mode 100644 index 0000000..3e91314 --- /dev/null +++ b/UsrInc/display/display_ui.h @@ -0,0 +1,44 @@ +/* + ****************************************************************************** + * + * @file display_ui.h + * @brief display ui module + * @ic sy8837 + * + * @version 1.0 + * @date 2025/01/14 09:59:40 + * @author Alex Xu + * + * Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd. + * All Rights Reserved + * + * History: + * Revision Date Author Desc + * 1.0.0 2025/01/14 Alex build this file + ****************************************************************************** + */ + +#ifndef __DISPLAY_UI_H__ +#define __DISPLAY_UI_H__ + +/*_____ I N C L U D E S ____________________________________________________*/ + +#include "define.h" + +/******************************************************************************\ + Macro definitions +\******************************************************************************/ + +/******************************************************************************\ + Variables definitions +\******************************************************************************/ +extern uint8_t LED_On_Timer; //led亮时间计时 + +/******************************************************************************\ + Functions definitions +\******************************************************************************/ + +extern void LED_Display_App(void); + +#endif + diff --git a/UsrInc/hall/hall.h b/UsrInc/hall/hall.h index b884146..0eb7227 100644 --- a/UsrInc/hall/hall.h +++ b/UsrInc/hall/hall.h @@ -3,7 +3,7 @@ * * @file hall.h * @brief hall module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 @@ -43,7 +43,6 @@ typedef enum{ extern CoverStatus_E CoverStatus; extern bit CoverEvent_Flg; -extern bit CoverEvent_Flg_led; extern xdata uint8_t Hall_Sta_bk; diff --git a/UsrInc/inc/config.h b/UsrInc/inc/config.h index b28c2fc..11ee656 100644 --- a/UsrInc/inc/config.h +++ b/UsrInc/inc/config.h @@ -25,7 +25,13 @@ /******************************************************************************\ Macro definitions \******************************************************************************/ -/*Charger Module Config Para Setting*/ +/*程序版本,第一个数代表在硬件存在改动不能兼容之前版本时加1, + 第二个数在功能存在改动时加1,第三个数在软件调试出现不同的 + 测试版本时改动;高位数字变动时,低位数字清零。*/ + +#define FW_VER0 0x01 //程序版本0:代表在硬件存在改动不能兼容之前版本时加1 +#define FW_VER1 0x01 //程序版本1:代表在功能存在改动时加1 +#define FW_VER2 0x02 //程序版本2:代表在软件调试出现不同的测试版本时改动时加1 #if 0 #if 0 @@ -117,7 +123,7 @@ 使用码值的原因:2.5V的上拉LDO有温漂误差,使用码值可以规避。 */ -#define NONE_NTC 984 //NTC引脚悬空码值 +#define NONE_NTC 1000 //NTC引脚悬空码值 #define T_N20C 927 //-20℃ NTC:953K @@ -160,6 +166,8 @@ #define T_80C 113 //80℃ NTC:12.4K #endif +/* 功能选择和配置。 */ + /* NTC保护标准选择,JEITA or IEC.*/ #define NTC_JEITA 1 @@ -179,32 +187,32 @@ #elif NTC_JEITA /* JEITA模式,NTC温度保护上下限阈值和迟滞温度。 */ -#define JEITA_NTC_CHG_PRO_LOW_TMP T_0C //配置充电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_HYST_LOW_TMP T_3C //配置充电NTC保护恢复温度下限迟滞值。 -#define JEITA_NTC_CHG_PRO_HIGH_TMP T_60C //配置充电NTC保护温度上限值。 +#define JEITA_NTC_CHG_PRO_HIGH_TMP T_60C //配置充电NTC保护温度上限值。 -#define JEITA_NTC_CHG_PRO_HYST_HIGH_TMP T_57C //配置充电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_HIGH_TMP T_10C //配置充电NT C冷状态温度上限值。 -#define JEITA_NTC_CHG_COLD_HYST_HIGH_TMP T_8C //配置充电NTC冷状态恢复温度上限迟滞值。 +#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_LOW_TMP T_10C //配置充电NTC暖状态温度下限值。 -#define JEITA_NTC_CHG_WARM_HYST_LOW_TMP T_12C //配置充电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_HIGH_TMP T_45C //配置充电NT C暖状态温度上限值。 -#define JEITA_NTC_CHG_WARM_HYST_HIGH_TMP T_42C //配置充电NTC暖状态恢复温度上限迟滞值。 +#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_LOW_TMP T_45C //配置充电NTC热状态温度下限值。 -#define JEITA_NTC_CHG_HOT_HYST_LOW_TMP T_47C //配置充电NTC热状态恢复温度下限迟滞值。 +#define JEITA_NTC_CHG_HOT_HYST_LOW_TMP T_47C //配置充电NTC热状态恢复温度下限迟滞值。 #endif @@ -286,19 +294,19 @@ #define VOX_HAVEY_TO_LIGHT_DEB VOX_HAVEY_TO_LIGHT_8 //配置VOX 重载转轻载滤波时间。 -#define VOX_COM_VOLTAGE_SET Vox_COMM_PULL_Vol_3_0 //配置VOX 通讯电平(1.8v/2.5V/3.0V/5.0)。 +#define VOX_COMM_VOLTAGE_SET Vox_COMM_PULL_Vol_3_0 //配置VOX 通讯电平(1.8v/2.5V/3.0V/5.0)。 -#define VOX_PULL_UP_SET Vox_Pull_Up_50k //配置VOX 通讯上拉电阻。 +#define VOX_COMM_PULL_UP_SET Vox_Pull_Up_50k //配置VOX 通讯上拉电阻。 #define VOX_CHG_FULL_5V_LEAST_CNT 40 //配置关盖条件下,VOX 耳机充满后,VOX输出5V持续时间(100ms * 40) -#define VOX_OPEN_VOUT_5V_DEBOUNCE 5 //配置开盖动作后,VOX 输出5V持续时间(100ms * 5),单位:ms。 +#define HALL_OPEN_VOX_5V_DEBOUNCE 5 //配置开盖动作后,VOX 输出5V持续时间(100ms * 5),单位:ms。 -#define VOX_OPEN_VOUT_0V_DEBOUNCE 5 //配置开盖动作后,VOX 输出0V持续时间(100ms * 5),单位:ms。 +#define HALL_OPEN_VOX_0V_DEBOUNCE 5 //配置开盖动作后,VOX 输出0V持续时间(100ms * 5),单位:ms。 #define VOX_OCP_HICUUP_DEBOUNCE 5 //配置关盖条件下,VOX 打嗝时间(100ms * 5),单位:ms。 -#define VOX_CLOSE_5V_HOLD_CNT 3 //配置关盖动作后,VOX 输出5V持续时间(100ms * 3),单位:ms。 +#define HALL_CLOSE_VOX_5V_HOLD_CNT 3 //配置关盖动作后,VOX 输出5V持续时间(100ms * 3),单位:ms。 /* 双向通讯协议选择 */ @@ -310,6 +318,8 @@ /* Vox跟随充参数设置。(100ms调用周期) */ +#define FOLLOW_CHG_EFFICIENCY //配置跟随充类型:0、效率优先;1、速度优先。 + #define VOX_CV_TC_CURRENT 20 //耳机充电处于CV/TC阶段的电流值,单位mA。 #define Vox_FOLLOW_CHG_PTM_THD 200 //PTM模式启动阈值(VOUT - VBAT),单位mV。 @@ -326,18 +336,67 @@ #define VOUT_MIN_THD Boost_Vout_3_65V //VOX VOUT输出最小阈值。 +#define IVOL_Threshold_Neg(Ivol) ( Ivol / 5 ) << 2 //VOL 调压下限阈值电流,80% * Ivol,IVOL≥这个值,则降压。 + +#define IVOR_Threshold_Neg(Ivor) ( Ivor / 5 ) << 2 //VOR 调压下限阈值电流,80% * Ivor,IVOR≥这个值,则降压。 + +#define IVOL_Threshold_Pos(Ivol) ( Ivol ) << 1 //VOL 调压上限阈值电流,2倍 * Ivol,当Ivol大于THP阈值电流,则说明耳机状态发生改变(TC跳转到CC或Recharge复充),需要重启跟随充。 + +#define IVOR_Threshold_Pos(Ivor) ( Ivor ) << 1 //VOR 调压上限阈值电流,2倍 * Ivor,当Ivor大于THP阈值电流,则说明耳机状态发生改变(TC跳转到CC或Recharge复充),需要重启跟随充。 + +/* PWM Module Setting */ +/*PWM计数器时钟Fre(pwm) = Fre(sys)/PWM_PRE = 11.0592M / n^PWM_PRE = 11.0592M / 8 = 1.38MHz, + PWM_REL = 255 - 1.38M / 10K = 255-138 = 117, + nPWM_CMP = 117 + 150 * (1-50%) = 192。 +*/ +#define PWM_CLKFRE_SET 3 //配置PWM计数时钟频率,对应寄存器PWM_PRE;PWM计数器时钟Fre(pwm) = Fre(sys)/PWM_PRE = 12M / n^PWM_PRE = 12M / 8 = 1.5MHz, + +#define PWM_RELOAD_SET PWM_REL_VALUE //配置PWM输出占空比,对应寄存器PWM_REL;需和PWM_CMP配合使用。 + /*Sleep Module Setting*/ /*Enter Sleep Time Debounce*/ #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 延迟时间,单位:秒 - /******************************************************************************\ Variables definitions \******************************************************************************/ +/* 标志位和状态位。 */ +/* NTC充放电保护标志位 */ +extern bit CHG_NTC_Pro_Flag; //充电NTC保护标志位;TRUE:有NTC保护:FAULSE:无NTC保护 + +extern bit Boost_NTC_Pro_Flag; //放电电NTC保护标志位;TRUE:有NTC保护:FAULSE:无NTC保护 + +/* Charger状态定义 */ +// 充电状态定义 +typedef enum +{ + CHG_NONE = 0x00, + + CHG_PROTECT, + + CHG_STA_ING, // 充电中 + + CHG_STA_COMPLETED, // 充电完成 + +} TE_CHG_STA; + +extern idata TE_CHG_STA ChgStatus; // Charger状态定义 + +/* Boost相关标志位 */ +extern bit gBoost_Prepared_Flag; //Boost满足开启条件,TRUE:Boost无保护,可以开启;FAULSE:Boost有保护,无法正常开启。 + +/* LED UI显示相关标志位 */ +extern bit CoverEvent_Flg_led; //Hall开关盖动作标志位,用于LED UI显示,TRUE:有开关盖动作。 + +extern bit Earphone_Chg_Flag_led; //耳机出入盒标志位,用于LED UI显示,TRUE:有耳机入盒动作。 + +extern bit Key_Press_short_irq_led; //按键短按动作标志位,用于LED UI显示,TRUE:有按键短按动作。 + +extern bit LED_On_Flag; //led显示复位标志位,TRUE:灯效复位。 + /******************************************************************************\ UserCfg.Functions definitions \******************************************************************************/ diff --git a/UsrInc/inc/define.h b/UsrInc/inc/define.h index 0a65d4d..add21f4 100644 --- a/UsrInc/inc/define.h +++ b/UsrInc/inc/define.h @@ -49,12 +49,6 @@ #define VOX_FOLLOW_CHG 1 //2111Bytes -#if VOX_FOLLOW_CHG - -#define FOLLOW_CHG_EFFICIENCY //跟随充两只类型:1、效率优先;2、速度优先。 - -#endif - #if VOX_ENABLE #define VOX_TX //959Bytes diff --git a/UsrInc/key/key.h b/UsrInc/key/key.h index 31963f0..a5c6e24 100644 --- a/UsrInc/key/key.h +++ b/UsrInc/key/key.h @@ -35,7 +35,6 @@ #if KEY_ENABLE -extern bit Key_Press_short_irq; extern bit Key_Press_l_irq; extern bit Key_Press_ll_irq; diff --git a/UsrInc/led/led.h b/UsrInc/led/led.h index 3f4bf71..e4ea597 100644 --- a/UsrInc/led/led.h +++ b/UsrInc/led/led.h @@ -112,10 +112,10 @@ typedef struct{ }TS_LED_INFO; -extern volatile uint8_t Display_RSta; // 显示状态 -extern volatile uint8_t Display_GSta; // 显示状态 -extern volatile uint8_t Display_YSta; // 显示状态 -extern volatile uint8_t Display_BSta; // 显示状态 +extern uint8_t Display_RSta; // 显示状态 +extern uint8_t Display_GSta; // 显示状态 +extern uint8_t Display_YSta; // 显示状态 +extern uint8_t Display_BSta; // 显示状态 // LED显示相关定义 // LED显示逻辑 diff --git a/UsrInc/pwm/pwm.h b/UsrInc/pwm/pwm.h index 4054c9f..5e28bea 100644 --- a/UsrInc/pwm/pwm.h +++ b/UsrInc/pwm/pwm.h @@ -40,18 +40,25 @@ typedef enum { typedef struct { uint8_t nPWM_PRE; //PWM Clock Precale Set --- clock divide 2^n(n:0-7) + uint8_t nPWM_REL; //PWM counter reload value --- Fre(0-255) + uint8_t nPWM_CMP; //PWM compare value --- duty (0-255) }s_gPWM_Para_Cfg; #define PWM_REL_VALUE 105 //Feq:KK ,PWM_REL = 255 - 1.5M / 6K = 255-250 = 5,nPWM_CMP = 5 + 250 * (1-50%) = 130。 + #define PWM_REL_FULL 254 extern void PWM_Enable(void); + extern void PWM_Disable(Pwm_Channels_e nPWM_Ch); + extern void PWM_Init_Set(uint8_t nPWM_PRE,uint8_t nPWM_REL); + extern void PWM_Duty_Set(Pwm_Channels_e nPWM_Ch,uint8_t nPWM_CMP); + extern void HuXi_Led(Pwm_Channels_e nPWM_Ch, uint8_t Delay_Timer); #endif diff --git a/UsrInc/system/system.h b/UsrInc/system/system.h index 8b6f1c4..83c9fc8 100644 --- a/UsrInc/system/system.h +++ b/UsrInc/system/system.h @@ -175,6 +175,16 @@ #define STB_TMR_SET_8S (2U) #define STB_TMR_SET_16S (3U) +/* 系统分频,分频比为:N = 2^n。 */ +#define CLK_DIV_0 (0U) +#define CLK_DIV_2 (1U) +#define CLK_DIV_4 (2U) +#define CLK_DIV_8 (3U) +#define CLK_DIV_16 (4U) +#define CLK_DIV_32 (5U) +#define CLK_DIV_64 (6U) +#define CLK_DIV_128 (7U) + /*中断号计算方式:中断向量 = 中断号 * 8 + 3*/ #define Interrupt_Vector_IE0 0 //0x03,SY8836 IE0 use for wakeup @@ -204,5 +214,7 @@ extern void System_Init(void); +extern void Sys_Clk_Adjust(uint8_t Clk_Div); + #endif diff --git a/UsrInc/userapp/userapp.h b/UsrInc/userapp/userapp.h index 7699d94..c25ccb3 100644 --- a/UsrInc/userapp/userapp.h +++ b/UsrInc/userapp/userapp.h @@ -59,11 +59,6 @@ extern bit Wkup_Earphone_Flag; // Global variables and functions \******************************************************************************/ - -extern uint8_t LED_On_Timer; //led亮时间计时 - -extern bit LED_On_Flag; - extern void UserAPP(void); #endif diff --git a/UsrInc/vox/vox_module.h b/UsrInc/vox/vox_module.h index 83bc535..644111c 100644 --- a/UsrInc/vox/vox_module.h +++ b/UsrInc/vox/vox_module.h @@ -36,8 +36,6 @@ extern bit Vox_Vout_Enable; -extern bit Earphone_Chg_Flag; //耳机出入盒标志位 - extern bit Vox_Output_Short_Flag; #define IVOX_THN 20 //耳机跟随充电流下降阈值 diff --git a/UsrSrc/InitVars.c b/UsrSrc/InitVars.c index 664cfb9..3321b8e 100644 --- a/UsrSrc/InitVars.c +++ b/UsrSrc/InitVars.c @@ -22,18 +22,11 @@ /******************************************************************************\ Macro definitions \******************************************************************************/ -/*程序版本,第一个数代表在硬件存在改动不能兼容之前版本时加1, - 第二个数在功能存在改动时加1,第三个数在软件调试出现不同的 - 测试版本时改动;高位数字变动时,低位数字清零。*/ - -#define FW_VER0 0x01 //程序版本0:代表在硬件存在改动不能兼容之前版本时加1 -#define FW_VER1 0x01 //程序版本1:代表在功能存在改动时加1 -#define FW_VER2 0x02 //程序版本2:代表在软件调试出现不同的测试版本时改动时加1 /******************************************************************************\ Variables definitions \******************************************************************************/ -char code Version_Addr[3] = {FW_VER0,FW_VER1,FW_VER2}; //设置ROM绝对地址存放软版本,两个参数存于ROM的3070、3071、3072位置处,小端模式存储。 +char code Version_Addr[3] = {FW_VER0,FW_VER1,FW_VER2}; //设置ROM绝对地址存放软版本,两个参数存于ROM的倒数3Bytes位置处,小端模式存储。 diff --git a/UsrSrc/adc/adc.c b/UsrSrc/adc/adc.c index 0e6964f..e61e174 100644 --- a/UsrSrc/adc/adc.c +++ b/UsrSrc/adc/adc.c @@ -34,47 +34,47 @@ \******************************************************************************/ -idata int8_t ADC_Offset_Error = 0; //ADC Offset Error 校准值寄存器 +idata int8_t ADC_Offset_Error; //ADC Offset Error 校准值寄存器 -idata int8_t Bat_ADC_Offset_Error = 0; +idata int8_t Bat_ADC_Offset_Error; -idata uint8_t Vor_Isense_Gain_Error = 0; +idata uint8_t Vor_Isense_Gain_Error; -idata uint8_t Vol_Isense_Gain_Error = 0; +idata uint8_t Vol_Isense_Gain_Error; -idata int8_t Vor_Isense_Offset_Error = 0; +idata int8_t Vor_Isense_Offset_Error; -idata int8_t Vol_Isense_Offset_Error = 0; +idata int8_t Vol_Isense_Offset_Error; -xdata uint8_t ADC_Chn_Num = 0; +xdata uint8_t ADC_Chn_Num; -idata uint16_t g_Value_Adc = 0; +idata uint16_t g_Value_Adc; -xdata uint16_t g_Value_Adc_Avg = 0; +xdata uint16_t g_Value_Adc_Avg; #if 0 -xdata uint16_t g_Value_Adc0 = 0; +xdata uint16_t g_Value_Adc0; -xdata uint16_t g_Value_Adc1 = 0; +xdata uint16_t g_Value_Adc1; -xdata uint16_t g_Vref_Adc = 0; +xdata uint16_t g_Vref_Adc; #endif -xdata int16_t g_Vntc_Adc = 0; +xdata int16_t g_Vntc_Adc; -xdata int16_t g_pmu_Adc_Ivol = 0; +xdata int16_t g_pmu_Adc_Ivol; -xdata int16_t g_pmu_Adc_Ivor = 0; +xdata int16_t g_pmu_Adc_Ivor; -xdata int16_t g_Vbat_Adc = 0; +xdata int16_t g_Vbat_Adc; -xdata int16_t g_pmu_Adc_Vout = 0; +xdata int16_t g_pmu_Adc_Vout; -xdata uint8_t g_ADC_Chn = 0; +xdata uint8_t g_ADC_Chn; -xdata uint8_t Adc_Index = 0; +xdata uint8_t Adc_Index; -bit ADC_Cal_Over_Flag = 0; +bit ADC_Cal_Over_Flag; /******************************************************************************\ Functions definitions @@ -121,8 +121,7 @@ void Adc_Init(void) Vor_Isense_Offset_Error = (int8_t)( ( IVOX_OFFSET >> 4 ) - 8 ) * 10; Vor_Isense_Gain_Error = IVOR_GAIN; - //Vol_Isense_Offset_Error = 10; - //Vor_Isense_Offset_Error = 10; + #endif EX6 = 1; //ADC IRQ Enable @@ -224,8 +223,6 @@ void PMU_ADC_Chn_Data( PMU_ADC_CHANNELS_E pmu_Adc_Chn ) break; } - //g_Value_Adc_Avg = 0; - ADC_Cal_Over_Flag = 0; #ifdef _DEBUG_ADC diff --git a/UsrSrc/bat/bat.c b/UsrSrc/bat/bat.c index 3e7feef..0ee1d3f 100644 --- a/UsrSrc/bat/bat.c +++ b/UsrSrc/bat/bat.c @@ -470,18 +470,18 @@ void Bat_Gauge_Handle(void) #if BAT_VALUE -#define C_offset_bat_level_MAX 200 -#define C_offset_bat_level_MIN 10 +#define C_offset_bat_level_MAX 190 +#define C_offset_bat_level_MIN 10 -bit F_batlevel_protect = 0; //低电保护 +bit F_batlevel_protect; //低电保护 -bit F_batlevel_25p = 0; +bit F_batlevel_25p; -bit F_batlevel_50p = 0; +bit F_batlevel_50p; -bit F_batlevel_75p = 0; +bit F_batlevel_75p; -idata uint8_t offset_bat_level = ( C_offset_bat_level_MAX + C_offset_bat_level_MIN ) / 2; +idata uint8_t offset_bat_level; /*充电电池电压会浮高,具体电压需要测试。*/ const uint16_t Boost_batlevel_Threshold[C_batLevel_SetMax] = diff --git a/UsrSrc/charger/charger_module.c b/UsrSrc/charger/charger_module.c index c026e4b..4556d09 100644 --- a/UsrSrc/charger/charger_module.c +++ b/UsrSrc/charger/charger_module.c @@ -29,7 +29,7 @@ #include "bat.h" #ifdef NTC_ENABLE -bit CHG_NTC_Pro_Flag = 0; +bit CHG_NTC_Pro_Flag; #endif idata TE_CHG_STA ChgStatus; // CHG状态定义 @@ -46,7 +46,7 @@ idata TE_CHG_STA ChgStatus; // CHG状态 -idata uint8_t gConstant_Cur_Max_Setting = CONSTANT_CUR_SET; //Charge最大充电电流。 +idata uint8_t gConstant_Cur_Max_Setting; //Charge最大充电电流。 idata s_gCharger_Cfg gCharge_Cfg; @@ -85,6 +85,8 @@ void Charger_Init(void) #endif + gConstant_Cur_Max_Setting = CONSTANT_CUR_SET; + SFRADDR = REG_CHG0; SFRDATA |= R_Set0 | R_Set1; //Charger 环路 RC 调零电阻配置,00-11 档位逐步增大调零电阻阻值。 @@ -490,6 +492,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 @@ -526,7 +529,7 @@ void Charger_Handler(void) { IRQ_FLAG9 = BAT_OverVol; - CHG_CTL &= ~CHG_EN; //Disable Charger + // CHG_CTL &= ~CHG_EN; //Disable Charger return; } diff --git a/UsrSrc/discharge/discharge_module.c b/UsrSrc/discharge/discharge_module.c index a706ec8..3b7a3e3 100644 --- a/UsrSrc/discharge/discharge_module.c +++ b/UsrSrc/discharge/discharge_module.c @@ -27,10 +27,10 @@ #include "bat.h" #ifdef NTC_ENABLE -bit Boost_NTC_Pro_Flag = 0; +bit Boost_NTC_Pro_Flag; #endif -bit gBoost_Prepared_Flag = 0; //Boost满足开启条件。 +bit gBoost_Prepared_Flag; //Boost满足开启条件。 #if DISCHARGE_ENABLE /******************************************************************************\ @@ -41,7 +41,7 @@ bit gBoost_Prepared_Flag = 0; //Boost Variables definitions \******************************************************************************/ -bit gBoost_UVLO_Flag = 0; +bit gBoost_UVLO_Flag; /******************************************************************************\ Functions definitions @@ -158,14 +158,7 @@ void DisCharge_Handler(void) return; } -#if 0 - /* BAT LOW Interrupt */ - if( IRQ_FLAG0 & BAT_Low ) - { - - return; - } -#endif + /*输出短路保护 (使用中断标志位,Boost短路中断发生后会锁存,需要写1清零。)-- 短路保护后一直打嗝或者打嗝BOOST_HICCUP_TIM次之后disable boost,打嗝时间 250ms(软件实现)。*/ if( IRQ_FLAG0 & Boost_OutPut_Short ) { diff --git a/UsrSrc/display/display_ui.c b/UsrSrc/display/display_ui.c new file mode 100644 index 0000000..f1926d8 --- /dev/null +++ b/UsrSrc/display/display_ui.c @@ -0,0 +1,383 @@ +/******************************************************************************* + * + * @file display_ui.c + * @brief display_ui module + * @ic sy8837/8 + * + * @version 1.0 + * @date 2025/01/14 15:00:40 + * @author Alex Xu + * + * Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd. + * All Rights Reserved + * + * History: + * Revision Date Author Desc + * 1.0.0 2025/01/14 Alex build this file + ******************************************************************************/ + /*_____ I N C L U D E S ____________________________________________________*/ +#include "display_ui.h" +#include "userapp.h" +#include "adc.h" +#include "hall.h" +#include "key.h" +#include "sleep.h" +#include "system.h" +#include "bat.h" +#include "sys_tim.h" +#include "charger_module.h" +#include "discharge_module.h" +#include "led.h" +#include "vox_module.h" + +/******************************************************************************\ + Macro definitions +\******************************************************************************/ +#define LED_ON_CNT 100 //10s,电量灯触发后亮的时间。 + +#define LED_PRO_TIM 40 + +#define LED_OFF_CNT 1 + +/******************************************************************************\ + Variables definitions +\******************************************************************************/ +bit Earphone_Chg_Flag_led; //耳机出入盒标志位 + +bit CoverEvent_Flg_led; //Hall开关触发事件标志位,用于灯效显示。 + +bit Key_Press_short_irq_led; //按键短按动作标志位,用于LED UI显示,TRUE:有按键短按动作。 + +uint8_t LED_On_Timer; //led亮时间计时 + +bit LED_On_Flag; //led显示复位标志位,1:灯效复位。 + +#ifdef PWM_ENABLE +uint8_t Breathing_Light_Cnt; //呼吸灯流水计数器 +#endif + +/******************************************************************************\ + Functions definitions +\******************************************************************************/ + +#ifdef LED_DISPLAY + /***************************************************************************** +* Function : void LED_Breating_Light_Off(void) +* Description : 需要时调用周期,呼吸灯全熄灭函数。 +* Input : None +* Output : None +* Return : None +* Note : None +*****************************************************************************/ + void LED_Breating_Light_Off(void) + { +#ifdef PWM_ENABLE + + LED_R_BREATHING_LIGHT(SHOW_NONE); + + LED_G_BREATHING_LIGHT(SHOW_NONE); + + LED_Y_BREATHING_LIGHT(SHOW_NONE); + + LED_B_BREATHING_LIGHT(SHOW_NONE); + +#endif + } + +/***************************************************************************** +* Function : void LED_Display_App(void) +* Description : 100ms调用周期 +* Input : None +* Output : None +* Return : None +* Note : None +*****************************************************************************/ +/* +充电: +1、充电中,无其它行为打断时,开关盒状态下都显示充电常亮灯效(1Hz闪烁); +2、充满,常亮;可被其它灯效打断; + +非充电: +1、首次使用开盖灯效:①高电:亮4s后灭;②低电:1Hz闪4s后灭; +2、非首次使用开盖灯效:①耳机在盒:亮4s后灭;②耳机不在盒:???? + ③充电中,开盖闪一下,如何闪?亮多久后灭? +3、关盖灯效,高电:亮4s后灭;低电:1Hz闪4s后灭; +4、关盒状态下无灯效显示; + +*/ + void LED_Display_App(void) + { +#ifdef NTC_ENABLE + static bit LED_On_Flag1; +#endif + static bit LED_On_Chg_Flag; + + static bit LED_On_ChgDone_Flag; + + static bit Disp_Bat_Lev; //拔出VIN动作标志位。 + + if( LED_On_Flag ) + { + LED_On_Flag = 0; + + LED_On_Timer = 0; + + offset_bat_level = 0; + + Display_AllOff(); + +#if SLEEP_ENABLE + Enter_Sleep_Cnt_Restart_Flag = 1; +#endif + return; + } + +#ifdef NTC_ENABLE + /*NTC保护,4灯一直快闪(2Hz)*/ + if( CHG_NTC_Pro_Flag || Boost_NTC_Pro_Flag || ( Vox_Output_Short_Flag && !Vox_Ocp_Flag ) ) + { + if( !LED_On_Flag1 ) + { + LED_On_Flag1 = 1; + + LED_On_Flag = 1; + } + else + { + if( Display_RSta != LED_FLASH ) + { + Display_Red_Flash(20,10); + } + + if( Display_GSta != LED_FLASH ) + { + Display_Green_Flash(20,10); + } + + if( Display_YSta != LED_FLASH ) + { + Display_Yellow_Flash(20,10); + } + + if( Display_BSta != LED_FLASH ) + { + Display_Blue_Flash(20,10); + } + + if( Vox_Output_Short_Flag ) + { + if( LED_On_Timer < LED_PRO_TIM ) + { + LED_On_Timer++; + } + else + { + Vox_Ocp_Flag = 1; + + LED_On_Flag = 1; + } + } + } + + return; + } + + /* 保护消失后,需要开启5V升压一段时间。 */ + if( LED_On_Flag1 ) + { + LED_On_Flag1 = 0; + + LED_On_ChgDone_Flag = 0; + + LED_On_Chg_Flag = 0; + + CoverEvent_Flg_led = 0; + + Earphone_Chg_Flag_led = 0; + + Wkup_Earphone_Flag = 1; + } + +#endif + + if (ChgStatus != CHG_NONE) + { + if ( ChgStatus == CHG_STA_COMPLETED ) // 充电完成,4个LED常亮 + { + if( !LED_On_ChgDone_Flag ) + { + LED_On_ChgDone_Flag = 1; + + LED_On_Chg_Flag = 0; + + LED_Breating_Light_Off(); + + return; + } + + Display_AllOn(); + } + else + { + if( !LED_On_Chg_Flag ) + { + LED_On_Chg_Flag = 1; + + LED_On_ChgDone_Flag = 0; + + LED_On_Flag = 1; +#ifdef PWM_ENABLE + Breathing_Light_Cnt = LED_R; +#endif + } + else + { +#ifdef PWM_ENABLE + if( LED_On_Timer < LED_OFF_CNT ) + { + LED_On_Timer++; + + switch ( Breathing_Light_Cnt ) + { + case LED_R: + + if( Display_RSta != LED_BREATHING_LIGHT ) + { + LED_R_BREATHING_LIGHT(SLOW_DARK); + } + + break; + case LED_G: + if( Display_GSta != LED_BREATHING_LIGHT ) + { + LED_G_BREATHING_LIGHT(SLOW_DARK); + } + + break; + + case LED_Y: + if( Display_YSta != LED_BREATHING_LIGHT ) + { + LED_Y_BREATHING_LIGHT(SLOW_DARK); + } + + break; + + case LED_B: + if( Display_BSta != LED_BREATHING_LIGHT ) + { + LED_B_BREATHING_LIGHT(SLOW_DARK); + } + + break; + + default: + + break; + } + } + else + if( LED_On_Timer < 15 ) //LED显示1.5s。 + { + LED_On_Timer++; + } + else + { + LED_On_Timer = 0; + + Breathing_Light_Cnt++; + + if( Breathing_Light_Cnt >= LED_ID_MAX ) + { + Breathing_Light_Cnt = LED_R; + } + } +#endif + } + } + + CoverEvent_Flg_led = 0; + + Earphone_Chg_Flag_led = 0; + + Key_Press_short_irq_led = 0; + + Disp_Bat_Lev = 1; + } + else + { + if( LED_On_Chg_Flag ) + { + LED_On_Chg_Flag = 0; + + LED_Breating_Light_Off(); + + LED_On_Flag = 1; + + Wkup_Earphone_Flag = 1; + + return; + } + + if( CoverEvent_Flg_led || Disp_Bat_Lev || Earphone_Chg_Flag_led || Key_Press_short_irq_led ) + { + if( LED_On_Timer < LED_OFF_CNT ) + { + LED_On_Timer++; + } + else + if( LED_On_Timer < LED_ON_CNT ) //LED显示10s后灭。 + { + LED_On_Timer++; + + /*电量显示,25%电量左侧第1个灯闪;25%-50%电量2个灯常亮;50%-75%电量3个灯常亮;75%-100%电量4个灯常量。*/ + if( F_batlevel_25p ) + { + if (Display_RSta != LED_KEEP_FLASHING) + { + Display_Red_KeepFlash(100); + Display_Green_Off(); + Display_Yellow_Off(); + Display_Blue_Off(); + } + } + else + if( F_batlevel_50p ) + { + Display_Red_On(); + Display_Green_On(); + Display_Yellow_Off(); + Display_Blue_Off(); + } + else + if( F_batlevel_75p ) + { + Display_Red_On(); + Display_Green_On(); + Display_Yellow_On(); + Display_Blue_Off(); + } + else + { + Display_AllOn(); + } + } + else + { + CoverEvent_Flg_led = 0; + + Disp_Bat_Lev = 0; + + Earphone_Chg_Flag_led = 0; + + Key_Press_short_irq_led = 0; + + Display_AllOff(); //清LED显示 + } + } + } + } + +#endif + + diff --git a/UsrSrc/hall/hall.c b/UsrSrc/hall/hall.c index f998481..0852940 100644 --- a/UsrSrc/hall/hall.c +++ b/UsrSrc/hall/hall.c @@ -25,6 +25,7 @@ #include "charger_module.h" #include "sleep.h" #include "system.h" +#include "display_ui.h" /******************************************************************************\ Macro definitions @@ -36,13 +37,11 @@ CoverStatus_E CoverStatus; -bit CoverEvent_Flg = 0; //Hall开关触发事件标志位,用于VOX充电。 - -bit CoverEvent_Flg_led = 0; //Hall开关触发事件标志位,用于灯效显示。 +bit CoverEvent_Flg; //Hall开关触发事件标志位,用于VOX充电。 #if HALL_ENABLE -xdata uint8_t Hall_Sta_bk = 0xff; +xdata uint8_t Hall_Sta_bk; /******************************************************************************\ Functions definitions @@ -122,6 +121,7 @@ xdata uint8_t Hall_Sta_bk = 0xff; #endif Hall_Sta_bk = Hall_Sta; + #if SLEEP_ENABLE Enter_Sleep_Cnt_Restart_Flag = 1; diff --git a/UsrSrc/key/key.c b/UsrSrc/key/key.c index 9900f71..5f16000 100644 --- a/UsrSrc/key/key.c +++ b/UsrSrc/key/key.c @@ -27,6 +27,7 @@ #include "userapp.h" #include "hall.h" #include "discharge_module.h" +#include "display_ui.h" #if KEY_ENABLE /******************************************************************************\ @@ -56,23 +57,21 @@ Variables definitions \******************************************************************************/ -bit Key_Press_short_irq = 0; +bit Key_Press_l_irq; -bit Key_Press_l_irq = 0; +bit Key_Press_ll_irq; -bit Key_Press_ll_irq = 0; +idata KEY_EVENT_E Event_key; -idata KEY_EVENT_E Event_key = 0; +uint8_t Key_TWS_Pair_Tim; -uint8_t Key_TWS_Pair_Tim = 0; +uint8_t Key_TWS_Clear_Pair_Tim; -uint8_t Key_TWS_Clear_Pair_Tim = 0; +uint8_t Key_TWS_Pair_Cnt; -uint8_t Key_TWS_Pair_Cnt = 0; +uint16_t Key_Press_Debounce; -uint16_t Key_Press_Debounce = 0; - -uint8_t Key_Lift_Debounce = 0; +uint8_t Key_Lift_Debounce; /******************************************************************************\ Functions definitions @@ -148,7 +147,7 @@ uint8_t Key_Lift_Debounce = 0; if( (Key_Press_Debounce <= KEY_PRESS_500MS_CNT) ) //松开按键,按下时间小于500ms,则识别为短按,显示电量 { - Key_Press_short_irq = 1; + Key_Press_short_irq_led = 1; nKey_Press_short_irq = 1; #ifdef LED_DISPLAY @@ -277,7 +276,7 @@ uint8_t Key_Lift_Debounce = 0; #if XUANHENG HandleTxCommand(CMD_TWS_GET_BTADDR,VOR_CHAN); #else - HandleTxCommand(VHOUSE_CMD_PAIR,VOR_CHAN); //右耳发配对指令,区分耳机通道。 + HandleTxCommand(VHOUSE_CMD_PAIR,VOL_CHAN); //右耳发配对指令,区分耳机通道。 #endif #endif diff --git a/UsrSrc/led/led.c b/UsrSrc/led/led.c index 119be1d..8f64c00 100644 --- a/UsrSrc/led/led.c +++ b/UsrSrc/led/led.c @@ -24,10 +24,13 @@ #ifdef LED_DISPLAY -volatile uint8_t Display_RSta = LED_OFF; // 显示状态 -volatile uint8_t Display_GSta = LED_OFF; // 显示状态 -volatile uint8_t Display_YSta = LED_OFF; // 显示状态 -volatile uint8_t Display_BSta = LED_OFF; // 显示状态 + uint8_t Display_RSta; // 显示状态 + + uint8_t Display_GSta; // 显示状态 + + uint8_t Display_YSta; // 显示状态 + + uint8_t Display_BSta; // 显示状态 /******************************************************************************\ Macro definitions @@ -36,7 +39,9 @@ volatile uint8_t Display_BSta = LED_OFF; // /******************************************************************************\ Variables definitions \******************************************************************************/ + static TS_LED_INFO LED; + /******************************************************************************\ Functions definitions \******************************************************************************/ @@ -51,7 +56,7 @@ static TS_LED_INFO LED; void LED_Init(void) /******************************************************************************/ { - SFRADDR = P0_OE; + SFRADDR = P0_OE; //Set P02 - P05 Output. SFRDATA = 0x3C; SFRADDR = MFP_CTL0; //Set P02、P03 As GPIO. @@ -60,9 +65,14 @@ void LED_Init(void) SFRADDR = MFP_CTL1; //Set P06 As Hall. SFRDATA &=~ 0x0F; - SFRADDR = P0_DRV0; //Set P02 - P05 限流电阻400Ω - SFRDATA = 0xff; - + SFRADDR = P0_DRV0; //Set P02 - P05 限流电阻400Ω. + SFRDATA = LED_DRV_LIMIT_SET; + + Display_RSta = LED_OFF; + Display_GSta = LED_OFF; + Display_YSta = LED_OFF; + Display_BSta = LED_OFF; + LEDR_OFF(); LEDG_OFF(); LEDB_OFF(); @@ -97,7 +107,8 @@ static void LED_On(uint8_t LedId) LEDB_ON(); break; - default: break; + default: + break; } } @@ -129,7 +140,8 @@ static void LED_Off(uint8_t LedId) LEDB_OFF(); break; - default: break; + default: + break; } } diff --git a/UsrSrc/main.c b/UsrSrc/main.c index 8f5137b..eb5a61a 100644 --- a/UsrSrc/main.c +++ b/UsrSrc/main.c @@ -47,7 +47,7 @@ void main(void ) #ifdef _DEBUG_MAIN - printf("System Init.\r\n"); + printf("System Init.Ver:%2x%2x%2x\r\n",(uint16_t)FW_VER0, (uint16_t)FW_VER1, (uint16_t)FW_VER2); #endif diff --git a/UsrSrc/sleep/sleep.c b/UsrSrc/sleep/sleep.c index 3d3d893..c5001b2 100644 --- a/UsrSrc/sleep/sleep.c +++ b/UsrSrc/sleep/sleep.c @@ -32,9 +32,9 @@ Variables definitions \******************************************************************************/ -uint8_t Decnt_SleepDelay = ENTER_STANDBYMODE_CNT; +uint8_t Decnt_SleepDelay; -bit Enter_Sleep_Cnt_Restart_Flag = 0; +bit Enter_Sleep_Cnt_Restart_Flag; /******************************************************************************\ Functions definitions @@ -100,6 +100,8 @@ void WakeUp_Init_Set(void) #endif + Decnt_SleepDelay = ENTER_STANDBYMODE_CNT; + } /* diff --git a/UsrSrc/system/system.c b/UsrSrc/system/system.c index 4aae9bf..6801916 100644 --- a/UsrSrc/system/system.c +++ b/UsrSrc/system/system.c @@ -84,6 +84,16 @@ void System_Init(void) #endif #if WTG_ENABLE + /* + WDT_TM = 0,则看门狗时钟为系统时钟的12分频,否则为系统时钟。 + wdtrel.7=1 则看门狗计数器时钟为Sys_Fre/12*32,wdtrel.7=0 则看门狗计数器时钟为Sys_Fre/12*2. + Sys_Fre = 12MHz,wdtrel.7=0时,定时器范围: + (1/Sys_Fre)*12*2*256~(1/Sys_Fre)*12*2*256*128 = 5ms~65ms + + Sys_Fre = 12MHz,wdtrel.7=1时,定时器范围: + (1/Sys_Fre)*12*32*256~(1/Sys_Fre)*12*32*256*128 = 80ms~1s + + */ /* 65ms */ WDTREL = 0x00; //WDTPS = 0,wdt_f = wdt_f1/2;WDTPS = 1,wdt_f = wdt_f1/32; /* 1s */ @@ -133,7 +143,7 @@ void System_Init(void) #endif #ifdef PWM_ENABLE - PWM_Init_Set(3,PWM_REL_VALUE); + PWM_Init_Set(PWM_CLKFRE_SET,PWM_RELOAD_SET); #endif #ifdef LED_DISPLAY @@ -155,6 +165,26 @@ void System_Init(void) Systerm_State.Next_State = POWER_ON_STATE; } +#if 0 +/* + ******************************************************************************* + * void Sys_Clk_Adjust(uint8_t Clk_Div) + * + * Description : System Clock Division Setting. + * + * Arguments : NONE + + * Returns : NONE + + * Notes : NONE + * + ******************************************************************************* + */ +void Sys_Clk_Adjust(uint8_t Clk_Div) +{ + CLKPRE = Clk_Div; +} +#endif /* ******************************************************************************* * void EX0_isr(void ) interrupt Interrupt_Vector_IE0 @@ -173,9 +203,7 @@ void System_Init(void) void EX0_isr(void) interrupt Interrupt_Vector_IE0 { #if SLEEP_ENABLE - Enter_Sleep_Cnt_Restart_Flag = 1; - #endif } @@ -199,9 +227,7 @@ void EX2_isr(void) interrupt Interrupt_Vector_IE2 IRQ_FLAG3 = 0x3C; #if SLEEP_ENABLE - Enter_Sleep_Cnt_Restart_Flag = 1; - #endif } @@ -226,9 +252,7 @@ void EX3_isr(void) interrupt Interrupt_Vector_IE3 IRQ_FLAG10 = Standby_Tmr_WkUp; #if SLEEP_ENABLE - Enter_Sleep_Cnt_Restart_Flag = 1; - #endif } diff --git a/UsrSrc/timer/sys_tim.c b/UsrSrc/timer/sys_tim.c index 80c80a8..463cfc4 100644 --- a/UsrSrc/timer/sys_tim.c +++ b/UsrSrc/timer/sys_tim.c @@ -34,23 +34,33 @@ Variables definitions \******************************************************************************/ -uint8_t cnt_sys_tim_5ms = 0; -uint8_t cnt_sys_tim_10ms = 0; -uint8_t cnt_sys_tim_250ms = 0; -uint16_t cnt_sys_tim_100ms = 0; -uint8_t cnt_sys_tim_1s = 0; +uint8_t cnt_sys_tim_5ms; -bit F_sys_tim_1ms = 0; -bit F_sys_tim_5ms = 0; -bit F_sys_tim_10ms = 0; -bit F_sys_tim_250ms = 0; -bit F_sys_tim_100ms = 0; -bit F_sys_tim_1s = 0; +uint8_t cnt_sys_tim_10ms; -uint8_t F_sys_tim_tick = 0; -bit F_sys_tim1_tick = 0; +uint8_t cnt_sys_tim_250ms; -bit F_sys_tim2_tick = 0; +uint16_t cnt_sys_tim_100ms; + +uint8_t cnt_sys_tim_1s; + +bit F_sys_tim_1ms; + +bit F_sys_tim_5ms; + +bit F_sys_tim_10ms; + +bit F_sys_tim_250ms; + +bit F_sys_tim_100ms; + +bit F_sys_tim_1s; + +uint8_t F_sys_tim_tick; + +bit F_sys_tim1_tick; + +bit F_sys_tim2_tick; /******************************************************************************\ Functions definitions diff --git a/UsrSrc/uart/uart.c b/UsrSrc/uart/uart.c index ea0818e..3c29950 100644 --- a/UsrSrc/uart/uart.c +++ b/UsrSrc/uart/uart.c @@ -51,9 +51,9 @@ bit Uart0_RX_Finish_Flag = 0; #if UART1_ENABLE -idata uint8_t RX1_Buffer[COM1_Data_Lenth] = 0; //接收缓冲 +idata uint8_t RX1_Buffer[COM1_Data_Lenth]; //接收缓冲 -bit Uart1_RX_Finish_Flag = 0; +bit Uart1_RX_Finish_Flag; #endif @@ -100,15 +100,7 @@ void Uart0SendData(uint8_t Txdata) busy0 = 1; -// SFRADDR = MFP_CTL0; //Set P01 As TX. -// SFRDATA &=~ 0x0C; -// SFRDATA |= 0x04; - - S0BUF = Txdata; - -// SFRADDR = MFP_CTL0; //Set P01 As RX. -// SFRDATA &=~ 0x0C; -// SFRDATA |= 0x0C; + S0BUF = Txdata; } #endif @@ -200,7 +192,7 @@ void uart0_Interrupt(void) interrupt Interrupt_Vector_RI_TI #if UART1_ENABLE -bit busy1 = 0; +bit busy1; /* ******************************************************************************* @@ -280,13 +272,13 @@ void Uart1SendString(char *s) } #endif -uint8_t Rx1Status = 0; +uint8_t Rx1Status; -uint8_t RX1_Cnt = 0; +uint8_t RX1_Cnt; #if XUANHENG -uint16_t RX1DataLen = 0; +uint16_t RX1DataLen; #endif diff --git a/UsrSrc/user/user.c b/UsrSrc/user/user.c index 50d740e..c414d49 100644 --- a/UsrSrc/user/user.c +++ b/UsrSrc/user/user.c @@ -29,8 +29,11 @@ /******************************************************************************\ Variables definitions \******************************************************************************/ +#if QUEUE + idata SeqQueue Queue; +#endif /******************************************************************************\ Functions definitions \******************************************************************************/ diff --git a/UsrSrc/userapp/userapp.c b/UsrSrc/userapp/userapp.c index 2df36cf..40fce27 100644 --- a/UsrSrc/userapp/userapp.c +++ b/UsrSrc/userapp/userapp.c @@ -30,15 +30,11 @@ #include "discharge_module.h" #include "led.h" #include "vox_module.h" +#include "display_ui.h" /******************************************************************************\ Macro definitions \******************************************************************************/ -#define LED_ON_CNT 100 //10s - -#define LED_PRO_TIM 40 - -#define LED_OFF_CNT 1 /******************************************************************************\ Variables definitions @@ -46,337 +42,16 @@ s_sys_state Systerm_State = {SLEEP_STATE,AWAKE_STATE,AWAKE_STATE}; -uint8_t Step_Cnt = 0; +uint8_t Step_Cnt; -uint8_t LED_On_Timer = 0; //led亮时间计时 +uint8_t Power_index; -bit LED_On_Flag = 0; +bit Wkup_Earphone_Flag; //保护消失后,需要升压唤醒耳机标志位 -bit Wkup_Earphone_Flag = 0; //保护消失后,需要升压唤醒耳机标志位 - -uint8_t Wkup_Source_Flag = 0; //唤醒源标志 - -#ifdef PWM_ENABLE - -uint8_t Breathing_Light_Cnt = 0; -#endif /******************************************************************************\ Functions definitions \******************************************************************************/ -/***************************************************************************** -* Function : void LED_Display_App(void) -* Description : 100ms调用周期 -* Input : None -* Output : None -* Return : None -* Note : None -*****************************************************************************/ -/* -充电: -1、充电中,无其它行为打断时,开关盒状态下都显示充电常亮灯效(1Hz闪烁); -2、充满,常亮;可被其它灯效打断; - -非充电: -1、首次使用开盖灯效:①高电:亮4s后灭;②低电:1Hz闪4s后灭; -2、非首次使用开盖灯效:①耳机在盒:亮4s后灭;②耳机不在盒:???? - ③充电中,开盖闪一下,如何闪?亮多久后灭? -3、关盖灯效,高电:亮4s后灭;低电:1Hz闪4s后灭; -4、关盒状态下无灯效显示; - -*/ -#ifdef LED_DISPLAY - -void LED_Breating_Light_Off(void) -{ -#ifdef PWM_ENABLE - - LED_R_BREATHING_LIGHT(SHOW_NONE); - - LED_G_BREATHING_LIGHT(SHOW_NONE); - - LED_Y_BREATHING_LIGHT(SHOW_NONE); - - LED_B_BREATHING_LIGHT(SHOW_NONE); - -#endif -} - -void LED_Display_App(void) -{ -#ifdef NTC_ENABLE - static bit LED_On_Flag1; -#endif - static bit LED_On_Chg_Flag; - - static bit LED_On_ChgDone_Flag; - - static bit Disp_Bat_Lev; - - if( LED_On_Flag ) - { - LED_On_Flag = 0; - - LED_On_Timer = 0; - - offset_bat_level = 0; - - Display_AllOff(); - -#if SLEEP_ENABLE - Enter_Sleep_Cnt_Restart_Flag = 1; -#endif - return; - } - -#ifdef NTC_ENABLE - /*NTC保护,4灯一直快闪(2Hz)*/ - if( CHG_NTC_Pro_Flag || Boost_NTC_Pro_Flag || ( Vox_Output_Short_Flag && !Vox_Ocp_Flag ) ) - { - if( !LED_On_Flag1 ) - { - LED_On_Flag1 = 1; - - LED_On_Flag = 1; - } - else - { - if( Display_RSta != LED_FLASH ) - { - Display_Red_Flash(20,10); - } - - if( Display_GSta != LED_FLASH ) - { - Display_Green_Flash(20,10); - } - - if( Display_YSta != LED_FLASH ) - { - Display_Yellow_Flash(20,10); - } - - if( Display_BSta != LED_FLASH ) - { - Display_Blue_Flash(20,10); - } - - if( Vox_Output_Short_Flag ) - { - if( LED_On_Timer < LED_PRO_TIM ) - { - LED_On_Timer++; - } - else - { - Vox_Ocp_Flag = 1; - - LED_On_Flag = 1; - } - } - } - - return; - } - - /* 保护消失后,需要开启5V升压一段时间。 */ - if( LED_On_Flag1 ) - { - LED_On_Flag1 = 0; - - LED_On_ChgDone_Flag = 0; - - LED_On_Chg_Flag = 0; - - CoverEvent_Flg_led = 0; - - Earphone_Chg_Flag = 0; - - Wkup_Earphone_Flag = 1; - } - -#endif - - if (ChgStatus != CHG_NONE) - { - if ( ChgStatus == CHG_STA_COMPLETED ) // 充电完成,4个LED常亮 - { - if( !LED_On_ChgDone_Flag ) - { - LED_On_ChgDone_Flag = 1; - - LED_On_Chg_Flag = 0; - - LED_Breating_Light_Off(); - - return; - } - - Display_AllOn(); - } - else - { - if( !LED_On_Chg_Flag ) - { - LED_On_Chg_Flag = 1; - - LED_On_ChgDone_Flag = 0; - - LED_On_Flag = 1; -#ifdef PWM_ENABLE - Breathing_Light_Cnt = LED_R; -#endif - } - else - { -#ifdef PWM_ENABLE - if( LED_On_Timer < LED_OFF_CNT ) - { - LED_On_Timer++; - - switch ( Breathing_Light_Cnt ) - { - case LED_R: - - if( Display_RSta != LED_BREATHING_LIGHT ) - { - LED_R_BREATHING_LIGHT(SLOW_DARK); - } - - break; - case LED_G: - if( Display_GSta != LED_BREATHING_LIGHT ) - { - LED_G_BREATHING_LIGHT(SLOW_DARK); - } - - break; - - case LED_Y: - if( Display_YSta != LED_BREATHING_LIGHT ) - { - LED_Y_BREATHING_LIGHT(SLOW_DARK); - } - - break; - - case LED_B: - if( Display_BSta != LED_BREATHING_LIGHT ) - { - LED_B_BREATHING_LIGHT(SLOW_DARK); - } - - break; - - default: - - break; - } - } - else - if( LED_On_Timer < 15 ) //LED显示1.5s。 - { - LED_On_Timer++; - } - else - { - LED_On_Timer = 0; - - Breathing_Light_Cnt++; - - if( Breathing_Light_Cnt >= LED_ID_MAX ) - { - Breathing_Light_Cnt = LED_R; - } - } -#endif - } - } - - CoverEvent_Flg_led = 0; - - Earphone_Chg_Flag = 0; - - Key_Press_short_irq = 0; - - Disp_Bat_Lev = 1; - } - else - { - if( LED_On_Chg_Flag ) - { - LED_On_Chg_Flag = 0; - - LED_Breating_Light_Off(); - - LED_On_Flag = 1; - - Wkup_Earphone_Flag = 1; - - return; - } - - if( CoverEvent_Flg_led || Disp_Bat_Lev || Earphone_Chg_Flag || Key_Press_short_irq ) - { - if( LED_On_Timer < LED_OFF_CNT ) - { - LED_On_Timer++; - } - else - if( LED_On_Timer < LED_ON_CNT ) //LED显示10s后灭。 - { - LED_On_Timer++; - - /*电量显示,25%电量左侧第1个灯闪;25%-50%电量2个灯常亮;50%-75%电量3个灯常亮;75%-100%电量4个灯常量。*/ - if( F_batlevel_25p ) - { - if (Display_RSta != LED_KEEP_FLASHING) - { - Display_Red_KeepFlash(100); - Display_Green_Off(); - Display_Yellow_Off(); - Display_Blue_Off(); - } - } - else - if( F_batlevel_50p ) - { - Display_Red_On(); - Display_Green_On(); - Display_Yellow_Off(); - Display_Blue_Off(); - } - else - if( F_batlevel_75p ) - { - Display_Red_On(); - Display_Green_On(); - Display_Yellow_On(); - Display_Blue_Off(); - } - else - { - Display_AllOn(); - } - } - else - { - CoverEvent_Flg_led = 0; - - Disp_Bat_Lev = 0; - - Earphone_Chg_Flag = 0; - - Key_Press_short_irq = 0; - - Display_AllOff(); //清LED显示 - } - } - } -} - -#endif - /* ******************************************************************************* * void ADC_GetValue_Machine(void) @@ -469,7 +144,6 @@ void System_Drivers_Machine(void) * Return : None * Note : None *****************************************************************************/ -uint8_t Power_index = 0; void SysTem_State_Machine(void) { @@ -636,7 +310,8 @@ void SysTem_State_Machine(void) #ifdef _DEBUG_MAIN printf("Decnt_SleepDelay Reload.\r\n"); #endif - } + } + } else { @@ -714,6 +389,7 @@ void UserAPP(void) case 2: SysTem_State_Machine(); //用于应用程序 + Step_Cnt = 0; break; diff --git a/UsrSrc/vox/vox_module.c b/UsrSrc/vox/vox_module.c index 84193d7..7a9721d 100644 --- a/UsrSrc/vox/vox_module.c +++ b/UsrSrc/vox/vox_module.c @@ -29,16 +29,15 @@ #include "sys_tim.h" #include "adc.h" #include "userapp.h" +#include "display_ui.h" -bit Vox_Vout_Enable = OFF; //Vox功率输出标志位 +bit Vox_Vout_Enable; //Vox功率输出标志位 -bit Earphone_Chg_Flag = 0; //耳机出入盒标志位 +bit Boost_Open_Flag; -bit Boost_Open_Flag = 0; +uint8_t Vox_Type; -uint8_t Vox_Type = 0xFF; - -bit Vox_Output_Short_Flag = 0; +bit Vox_Output_Short_Flag; #if VOX_ENABLE @@ -63,7 +62,7 @@ bit Vox_Output_Short_Flag = 0; \******************************************************************************/ #if VOX_FOLLOW_CHG -xdata uint16_t Vox_Follow_Chg_Debounce = 0; +xdata uint16_t Vox_Follow_Chg_Debounce; g_Vox_Fllow_Chg_Cfg xdata Vox_Fllow_Chg; @@ -73,62 +72,62 @@ e_Vox_Follow_Chg_Sta Follow_Chg_Sta; #ifdef VOX_RX -xdata uint8_t Vox_Get_Vbat_Flag[2] = {0}; //耳机配对状态,VOL:低4bit;VOR:高4bit。0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。 +xdata uint8_t Vox_Get_Vbat_Flag[2]; //耳机配对状态,VOL:低4bit;VOR:高4bit。0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。 -xdata uint8_t Vox_Get_BES_Addr_Flag[2] = {0}; +xdata uint8_t Vox_Get_BES_Addr_Flag[2]; //idata uint8_t BES_Addr[6] = {0}; //蓝牙耳机地址,Vox_Bes_Addr[0][6]:VOL;Vox_Bes_Addr[1][6]:VOR #endif -uint8_t EarPhone_Num = 0; +uint8_t EarPhone_Num; -bit Vox_Ocp_Flag = 0; +bit Vox_Ocp_Flag; -bit OpenCover_TX_Cmd_Flag = 0; +bit OpenCover_TX_Cmd_Flag; #if XUANHENG -idata uint8_t Vox_Pairing_State[2] = {0}; //耳机配对状态,0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。 +idata uint8_t Vox_Pairing_State[2]; //耳机配对状态,0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。 -idata uint8_t Vox_Set_BES_Addr_Flag[2] = {0}; +idata uint8_t Vox_Set_BES_Addr_Flag[2]; -idata uint8_t BES_Addr[6] = {0}; //蓝牙耳机地址,Vox_Bes_Addr[0][6]:VOL;Vox_Bes_Addr[1][6]:VOR +idata uint8_t BES_Addr[6]; //蓝牙耳机地址,Vox_Bes_Addr[0][6]:VOL;Vox_Bes_Addr[1][6]:VOR -idata uint8_t Random_Data[8] = {0}; +idata uint8_t Random_Data[8]; -idata uint8_t Bes_Bet_Level[2] = {0}; //对耳电池电量信息,Bes_Bet_Level[0]:左耳;Bes_Bet_Level[1]:右耳 +idata uint8_t Bes_Bet_Level[2]; //对耳电池电量信息,Bes_Bet_Level[0]:左耳;Bes_Bet_Level[1]:右耳 -idata uint8_t Bes_Chg_Full[2] = {0}; //对耳硬件是否满电:0非满电;1:满电。 +idata uint8_t Bes_Chg_Full[2]; //对耳硬件是否满电:0非满电;1:满电。 -idata uint8_t Tws_Paired_Record[2] = {0}; //TWS配对记录;0:有TWS配对记录;1:没有TWS配对记录; +idata uint8_t Tws_Paired_Record[2]; //TWS配对记录;0:有TWS配对记录;1:没有TWS配对记录; -idata uint8_t Phone_Paired_Record[2] = {0}; //手机配对记录;0:有与手机配对记录;1:没有和手机配对记录。 +idata uint8_t Phone_Paired_Record[2]; //手机配对记录;0:有与手机配对记录;1:没有和手机配对记录。 -idata uint8_t Bes_OTA_State[2] = {0}; //耳机静默升级状态;1:有;0:没有 +idata uint8_t Bes_OTA_State[2]; //耳机静默升级状态;1:有;0:没有 -idata uint8_t Bes_Set_SN_State[2] = {0}; //耳机应答仓写入SN是否成功。1:成功;0:失败 +idata uint8_t Bes_Set_SN_State[2]; //耳机应答仓写入SN是否成功。1:成功;0:失败 -idata uint8_t Bes_In_Pair_State[2] = {0}; //耳机进入配对状态标志位 +idata uint8_t Bes_In_Pair_State[2]; //耳机进入配对状态标志位 -idata uint8_t Vox_Clear_Pair_Flag[2] = {0}; +idata uint8_t Vox_Clear_Pair_Flag[2]; -bit Vol_Bes_Addr_Flag = 0; +bit Vol_Bes_Addr_Flag; -bit Vor_Bes_Addr_Flag = 0; +bit Vor_Bes_Addr_Flag; -idata uint8_t SN_Num[22] = {0}; //SN码,需要从OTP的固定位置获取。 +idata uint8_t SN_Num[22]; //SN码,需要从OTP的固定位置获取。 -idata uint8_t SN_Num_Start = 0; //SN码发送起始位置,有开盖动作时清零。 +idata uint8_t SN_Num_Start; //SN码发送起始位置,有开盖动作时清零。 -bit gShip_Mode_Flag = 0; //船运模式标志位:0:正常关机;1:船运模式 +bit gShip_Mode_Flag; //船运模式标志位:0:正常关机;1:船运模式 #else -idata uint8_t Net_Info[2][13] = {0}; +idata uint8_t Net_Info[2][13]; -idata uint8_t MAC_Addr[2][18] = {0}; +idata uint8_t MAC_Addr[2][18]; -xdata uint8_t Earphone_Vbat[2] = 0; //对耳电量 +xdata uint8_t Earphone_Vbat[2]; //对耳电量 #endif @@ -172,7 +171,7 @@ xdata uint8_t Earphone_Vbat[2] = 0; // SFRADDR = COMM_CON; //Vox通讯电平选择,3.0V,打开50K上拉电阻。 SFRDATA &= ~0x0D; - SFRDATA |= VOX_COM_VOLTAGE_SET | VOX_PULL_UP_SET; + SFRDATA |= VOX_COMM_VOLTAGE_SET | VOX_COMM_PULL_UP_SET; break; @@ -181,7 +180,7 @@ xdata uint8_t Earphone_Vbat[2] = 0; // COMM_CTL |= Vol_EN_COMR | Vol_SW_MD; //开启VOX通讯使能,选择寄存器通讯模式。 SFRADDR = COMM_CON; //Vox通讯电平选择,5.0V,关闭50K上拉电阻。 - SFRDATA &= ~ VOX_PULL_UP_SET; + SFRDATA &= ~ VOX_COMM_PULL_UP_SET; SFRDATA |= Vox_COMM_PULL_Vol_5_0; break; @@ -259,7 +258,7 @@ xdata uint8_t Earphone_Vbat[2] = 0; // SFRADDR = COMM_CON; //Vox通讯电平选择,3.0V,打开50K上拉电阻。 SFRDATA &= ~0x0D; - SFRDATA |= VOX_COM_VOLTAGE_SET | VOX_PULL_UP_SET; + SFRDATA |= VOX_COMM_VOLTAGE_SET | VOX_COMM_PULL_UP_SET; break; @@ -268,7 +267,7 @@ xdata uint8_t Earphone_Vbat[2] = 0; // COMM_CTL |= Vor_EN_COMR | Vor_SW_MD; //开启VOX通讯使能,选择寄存器通讯模式。 SFRADDR = COMM_CON; //Vox通讯电平选择,5.0V,关闭50K上拉电阻。 - SFRDATA &= ~ VOX_PULL_UP_SET; + SFRDATA &= ~ VOX_COMM_PULL_UP_SET; SFRDATA |= Vox_COMM_PULL_Vol_5_0; break; @@ -346,7 +345,7 @@ xdata uint8_t Earphone_Vbat[2] = 0; // SFRADDR = COMM_CON; //Vox通讯电平选择,3.0V,打开50K上拉电阻。 SFRDATA &= ~0x0D; - SFRDATA |= VOX_COM_VOLTAGE_SET | VOX_PULL_UP_SET; + SFRDATA |= VOX_COMM_VOLTAGE_SET | VOX_COMM_PULL_UP_SET; break; @@ -355,7 +354,7 @@ xdata uint8_t Earphone_Vbat[2] = 0; // COMM_CTL |= Vor_EN_COMR | Vol_EN_COMR | Vor_SW_MD | Vol_SW_MD; //开启VOX通讯使能,选择寄存器通讯模式。 SFRADDR = COMM_CON; //Vox通讯电平选择,5.0V,关闭50K上拉电阻。 - SFRDATA &= ~ VOX_PULL_UP_SET; + SFRDATA &= ~ VOX_COMM_PULL_UP_SET; SFRDATA |= Vox_COMM_PULL_Vol_5_0; break; @@ -483,7 +482,7 @@ void Vox_Det_Machine(void) if( CoverStatus == CLOSE ) //1、关盖关闭COM_CTRL;显示灯效。(无需查询Loadon、IOFF状态,无论耳机是否在仓,Vox 5V输出。) { - Earphone_Chg_Flag = 0; //关盖取消耳机入盒灯效,显示关盖灯效。 + Earphone_Chg_Flag_led = 0; //关盖取消耳机入盒灯效,显示关盖灯效。 Cover_Close_Flag = 1; @@ -538,7 +537,7 @@ void Vox_Det_Machine(void) CoverEvent_Flg = 0; } /* 开关盖后,VOX先升压5.2V 一段时间,唤醒耳机,后转入ADT,获取盒内耳机数量。 */ - if( Vox_Voltage_Hold_Timer < VOX_OPEN_VOUT_5V_DEBOUNCE ) //开盖后5V N00ms。 + if( Vox_Voltage_Hold_Timer < HALL_OPEN_VOX_5V_DEBOUNCE ) //开盖后5V N00ms。 { Vox_Voltage_Hold_Timer++; @@ -586,7 +585,7 @@ void Vox_Det_Machine(void) if( Cover_Open_Flag ) /*开盖后,5V持续N00ms后0V持续N00ms,保证耳机能被唤醒;之后发开盖码。*/ { #if 1 - if( Vox_TX_Timer < VOX_OPEN_VOUT_0V_DEBOUNCE ) //转0V N00ms + if( Vox_TX_Timer < HALL_OPEN_VOX_0V_DEBOUNCE ) //转0V N00ms { VOX_EN_Type(VOX_PD1K_Mode); @@ -603,11 +602,8 @@ void Vox_Det_Machine(void) { #ifdef VOX_TX #if JIELI - - HandleTxCommand(VHOUSE_CMD_OPEN_BOX,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_OPEN_BOX,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 #elif ZHONGKE - HandleTxCommand(VHOUSE_CMD_GET_VBAT,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 #elif XUANHENG HandleTxCommand(CMD_HEARTBEAT,VOL_CHAN); @@ -619,14 +615,10 @@ void Vox_Det_Machine(void) { #ifdef VOX_TX #if JIELI - - HandleTxCommand(VHOUSE_CMD_OPEN_BOX,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_OPEN_BOX,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 #elif ZHONGKE - HandleTxCommand(VHOUSE_CMD_GET_VBAT,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 #elif XUANHENG - HandleTxCommand(CMD_HEARTBEAT,VOR_CHAN); #endif @@ -670,7 +662,7 @@ void Vox_Det_Machine(void) { if ( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ) { - Earphone_Chg_Flag = 1; + Earphone_Chg_Flag_led = 1; #ifdef LED_DISPLAY LED_On_Flag = 1; #endif @@ -726,7 +718,7 @@ void Vox_Det_Machine(void) Cover_Close_Flag1 = 1; - if( Vox_Voltage_Hold_Timer <= VOX_CLOSE_5V_HOLD_CNT ) //关盖Boost VOUT 5V保持时间。 + if( Vox_Voltage_Hold_Timer <= HALL_CLOSE_VOX_5V_HOLD_CNT ) //关盖Boost VOUT 5V保持时间。 { Vox_Voltage_Hold_Timer++; @@ -748,17 +740,11 @@ void Vox_Det_Machine(void) #ifdef VOX_TX #if JIELI - - HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 #elif ZHONGKE - - HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 #elif XUANHENG - HandleTxCommand(CMD_HEARTBEAT,VOL_CHAN); - #endif #endif @@ -769,17 +755,11 @@ void Vox_Det_Machine(void) #ifdef VOX_TX #if JIELI - - HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 #elif ZHONGKE - - HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_CLOSE_WINDOW,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 #elif XUANHENG - HandleTxCommand(CMD_HEARTBEAT,VOR_CHAN); - #endif #endif @@ -797,17 +777,11 @@ void Vox_Det_Machine(void) #ifdef VOX_TX #if JIELI - - HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 #elif ZHONGKE - - HandleTxCommand(VHOUSE_CMD_GET_TWS_BTADDR,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_GET_TWS_BTADDR,VOL_CHAN); //左耳发开盖指令,区分耳机通道。 #elif XUANHENG - HandleTxCommand(CMD_TWS_GET_BTADDR,VOL_CHAN); - #endif #endif @@ -818,17 +792,11 @@ void Vox_Det_Machine(void) #ifdef VOX_TX #if JIELI - - HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 #elif ZHONGKE - - HandleTxCommand(VHOUSE_CMD_GET_TWS_BTADDR,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_GET_TWS_BTADDR,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 #elif XUANHENG - HandleTxCommand(CMD_TWS_GET_BTADDR,VOR_CHAN); - #endif #endif @@ -926,13 +894,9 @@ void Vox_Det_Machine(void) #ifdef VOX_TX #if XUANHENG - HandleTxCommand(CMD_SHUT_DOWN,VOL_CHAN); //左耳发关机指令,区分耳机通道。 - #else - - HandleTxCommand(VHOUSE_CMD_PWROFF,VOL_CHAN); //左耳发关机指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_PWROFF,VOL_CHAN); //左耳发关机指令,区分耳机通道。 #endif #endif @@ -943,13 +907,9 @@ void Vox_Det_Machine(void) #ifdef VOX_TX #if XUANHENG - HandleTxCommand(CMD_SHUT_DOWN,VOR_CHAN); //右耳发关机指令,区分耳机通道。 - #else - - HandleTxCommand(VHOUSE_CMD_PWROFF,VOR_CHAN); //右耳发关机指令,区分耳机通道。 - + HandleTxCommand(VHOUSE_CMD_PWROFF,VOR_CHAN); //右耳发关机指令,区分耳机通道。 #endif #endif @@ -997,7 +957,7 @@ void Vox_Det_Machine(void) { if( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ) { - Earphone_Chg_Flag = 1; + Earphone_Chg_Flag_led = 1; #ifdef LED_DISPLAY LED_On_Flag = 1; #endif @@ -1110,9 +1070,9 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) { n_Vox_Fllow_Chg->IVox_Init[VOR_CHAN] = g_pmu_Adc_Ivor; - n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_CHAN] = ( g_pmu_Adc_Ivor / 5 ) << 2; //Ivox_Threshold_Neg = IVox_Init * 80% + n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_CHAN] = IVOR_Threshold_Neg(g_pmu_Adc_Ivor); //Ivox_Threshold_Neg = IVox_Init * 80% - n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOR_CHAN] = g_pmu_Adc_Ivor << 1; //Ivox_Threshold_Neg = IVox_Init * 2 + n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOR_CHAN] = IVOR_Threshold_Pos(g_pmu_Adc_Ivor); //Ivox_Threshold_Neg = IVox_Init * 2 #ifdef _DEBUG_FOLLOW printf("Follow CHG Sta1,VOR Chging(Ivor:%dmA).(line:%d)\r\n",(u16)g_pmu_Adc_Ivor,(uint16_t)__LINE__); #endif @@ -1123,9 +1083,9 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) { n_Vox_Fllow_Chg->IVox_Init[VOL_CHAN] = g_pmu_Adc_Ivol; - n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_CHAN] = ( g_pmu_Adc_Ivol / 5 ) << 2; //Ivox_Threshold_Neg = IVox_Init * 80% + n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_CHAN] = IVOL_Threshold_Neg(g_pmu_Adc_Ivol); //Ivox_Threshold_Neg = IVox_Init * 80% - n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOL_CHAN] = g_pmu_Adc_Ivol << 1; //Ivox_Threshold_Neg = IVox_Init * 2 + n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOL_CHAN] = IVOL_Threshold_Pos(g_pmu_Adc_Ivol); //Ivox_Threshold_Neg = IVox_Init * 2 #ifdef _DEBUG_FOLLOW printf("Follow CHG Sta1,VOL Chging(Ivol:%dmA).(line:%d)\r\n",(u16)g_pmu_Adc_Ivol,(uint16_t)__LINE__); #endif @@ -1621,7 +1581,9 @@ 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) { uint16_t dataLen = 0; + uint8_t tx_pData[COM1_Data_Lenth] = 0; + uint8_t i = 0; #if JIELI