From 30111f86c166bfc5d23f62f58e7cbbe91ae475ed Mon Sep 17 00:00:00 2001 From: Alex xu Date: Tue, 21 Jan 2025 18:00:07 +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=9B=202=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=9B=203=E3=80=81=E5=B0=86=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E6=A8=A1=E5=9D=97=E7=9A=84=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E4=BD=8D=E3=80=81=E6=A0=87=E5=BF=97=E4=BD=8D=E5=8F=98=E9=87=8F?= =?UTF-8?q?=E5=92=8C=E9=85=8D=E7=BD=AE=E5=8F=82=E6=95=B0=E7=BD=AE=E4=BA=8E?= =?UTF-8?q?congfig.h=EF=BC=9B=204=E3=80=81=E5=B0=86=E5=B7=A5=E7=A8=8B?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E4=B8=AD=E7=9A=84TP3315=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E6=9B=B4=E6=94=B9SY8835=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Out/8835_EVB_250109_1723.bin | Bin 16384 -> 0 bytes Out/8835_EVB_250109_1723.hex | 1006 ----------------- Out/8835_EVB_250109_1723_C981_010102.bin | Bin 16386 -> 0 bytes Out/8835_EVB_250121_1743.bin | Bin 0 -> 16384 bytes Out/8835_EVB_250121_1743.hex | 921 +++++++++++++++ Out/8835_EVB_250121_1743_349D_010102.bin | Bin 0 -> 16386 bytes Project/SY8835_Demo.uvgui.GH | 234 ++-- Project/SY8835_Demo.uvopt | 12 + Project/SY8835_Demo.uvproj | 7 +- UsrInc/adc/adc.h | 87 +- UsrInc/charger/charger_module.h | 23 - UsrInc/discharge/discharge_module.h | 6 - UsrInc/display/display_ui.h | 44 + UsrInc/hall/hall.h | 2 +- UsrInc/inc/config.h | 102 +- UsrInc/inc/define.h | 16 +- UsrInc/inc/{reg3315.h => reg8835.h} | 4 +- UsrInc/key/key.h | 1 - UsrInc/userapp/userapp.h | 3 +- UsrInc/vox/vox_module.h | 2 - UsrSrc/InitVars.c | 9 +- UsrSrc/adc/adc.c | 79 +- UsrSrc/bat/bat.c | 14 +- UsrSrc/charger/charger_module.c | 18 +- UsrSrc/discharge/discharge_module.c | 8 +- UsrSrc/display/display_ui.c | 370 ++++++ UsrSrc/hall/hall.c | 11 +- UsrSrc/i2c_simu/i2c_simu.c | 6 +- UsrSrc/key/key.c | 21 +- UsrSrc/led/led.c | 14 +- UsrSrc/main.c | 4 +- UsrSrc/pwm/pwm.c | 52 - UsrSrc/sleep/sleep.c | 12 +- UsrSrc/system/system.c | 12 +- UsrSrc/timer/sys_tim.c | 38 +- UsrSrc/uart/uart.c | 46 +- UsrSrc/userapp/userapp.c | 339 +----- UsrSrc/vox/vox_module.c | 197 ++-- .../sy8835_demo.SearchResults | 4 +- sy8835_demo.si4project/sy8835_demo.sip_sym | Bin 450512 -> 441512 bytes sy8835_demo.si4project/sy8835_demo.sip_xab | Bin 114688 -> 143360 bytes sy8835_demo.si4project/sy8835_demo.sip_xad | Bin 1448 -> 1728 bytes sy8835_demo.si4project/sy8835_demo.sip_xc | Bin 101712 -> 103736 bytes sy8835_demo.si4project/sy8835_demo.sip_xf | Bin 101712 -> 103736 bytes sy8835_demo.si4project/sy8835_demo.sip_xm | Bin 200 -> 196 bytes sy8835_demo.si4project/sy8835_demo.sip_xr | Bin 101712 -> 103736 bytes sy8835_demo.si4project/sy8835_demo.sip_xsb | Bin 36864 -> 40960 bytes sy8835_demo.si4project/sy8835_demo.sip_xsd | Bin 688 -> 728 bytes sy8835_demo.si4project/sy8835_demo.siwork | Bin 62833 -> 71393 bytes 49 files changed, 1877 insertions(+), 1847 deletions(-) delete mode 100644 Out/8835_EVB_250109_1723.bin delete mode 100644 Out/8835_EVB_250109_1723.hex delete mode 100644 Out/8835_EVB_250109_1723_C981_010102.bin create mode 100644 Out/8835_EVB_250121_1743.bin create mode 100644 Out/8835_EVB_250121_1743.hex create mode 100644 Out/8835_EVB_250121_1743_349D_010102.bin create mode 100644 UsrInc/display/display_ui.h rename UsrInc/inc/{reg3315.h => reg8835.h} (98%) create mode 100644 UsrSrc/display/display_ui.c diff --git a/Out/8835_EVB_250109_1723.bin b/Out/8835_EVB_250109_1723.bin deleted file mode 100644 index 64b7f7ae41800753f548c6ac988c91579e496b70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 Yed&QOJ@BOmzVyJC9{AfH;CbQy0Bw%DUjP6A diff --git a/Out/8835_EVB_250109_1723.hex b/Out/8835_EVB_250109_1723.hex deleted file mode 100644 index 1d9bb8f..0000000 --- a/Out/8835_EVB_250109_1723.hex +++ /dev/null @@ -1,1006 +0,0 @@ -:03000000022E0BC2 -:102E0B0075FE7275FF00758E009000007F007E03CB -:0D2E1B00E4F0A3DFFCDEFA75817D022E637A -:0F39180053797374656D20496E69742E0D0A0022 -:103872001235447BFF7A397918120F6CD2AED2BE60 -:083882001231B212344780F448 -:102238004101310041013200027C000002780000B7 -:102248000276000041013300026A000002700000BB -:10225800027A00000274000002720000026C0000A2 -:04226800026E000002 -:09398D007878E6FE08E6780222D3 -:10379D0075FE3175FF8175FE0E43FF107DAB7F30D9 -:0D37AD001239AF75FE59900131E5FFF02291 -:102B6C00900066EFF0E5A420E003022C5F75A40151 -:102B7C007F351239B67878760008A6077F36123979 -:102B8C00B6EF5403787846F608E6F6900066E04413 -:102B9C0008FD7F31123607900131E0FF3395E0FEDE -:102BAC00C37879E69FFF18E69EFE7C097DC412155A -:102BBC0062780A1215007878A60608A607900133E9 -:102BCC00E012153C2BEC002BFA012C03022C160303 -:102BDC002C24042C32052C40062C4F0700002C5FB3 -:102BEC0012398DCEC313CE13D8F9796B80617879F5 -:102BFC00E625E0797D80447878E6FE08E67803C324 -:102C0C0033CE33CED8F97971804512398DC333CE9A -:102C1C0033CED8F9797B803712398DC333CE33CE8E -:102C2C00D8F97975802912398DC333CE33CED8F9C2 -:102C3C007973801B7879E625E0796DF718E63319FE -:102C4C00F7801012398DCEC313CE13D8F9796FF7E4 -:0F2C5C00EE19F7900066E0900133F075A3812226 -:10348900E5A430E13675A4027F371239B67876762D -:103499000008A6077F381239B6EF5403787646FE3E -:1034A90008E6FF18EEF608EFF6FF900131E0FD336C -:0F34B90095E0FCC3EF9DF6EE9C18F675A38222FA -:05226C00C125010D0376 -:1038E400E4780FF67811F6780DE67810F67812760B -:0238F4000422AC -:1027AF00E4FE7876E6FC08E6FDC394D8EC9403408B -:1027BF00037F0022EF70030228C7D3ED940FEC9430 -:1027CF000340030228A5ED94CBEC9400500302289C -:1027DF00A5D3ED94AAEC94024022D223780DE6FF04 -:1027EF00137810F6302411D3ED94BFEC940240040B -:1027FF00C22480047810A607E4FE8070D3ED94AA5B -:10280F00EC94025043ED9437EC9401403BD2247882 -:10281F000DE6FF7810F6302313D3ED9493EC94026A -:10282F005004C2238006EFC3137810F67812760493 -:10283F00301E11D3ED9451EC94015004C21E80044C -:10284F0078127601E4FE8024D3ED9437EC94015096 -:10285F001BD21E78127601302410ED9426EC9401D1 -:10286F005004C224800478127604E4FE302111C390 -:10287F00ED94F3EC94025006C221E4FE80027E0137 -:10288F0030222FD3ED94DDEC94004006C222E4FEFB -:10289F0080207E01801CD3ED940FEC94034006D270 -:1028AF00217E01800DD3ED94CBEC94005004D22205 -:1028BF007E01C21FC2208058C221C222D3ED949F35 -:1028CF00EC94035031ED9471EC94004029301F10BB -:1028DF00ED9484EC94035006C21FE4FE80027E0147 -:1028EF0030202DD3ED9482EC94004006C220E4FEFC -:1028FF00801E7E01801AD3ED949FEC94034004D286 -:10290F001F800BC3ED9471EC94005002D2207E0116 -:02291F00AF0601 -:012921002293 -:102F440090012AE05463600AE4FF12369BE4780E91 -:102F5400F622780E76017F011227AFEF6008E4FFB6 -:102F640012369BD22522C22590012BE05407FFBFC5 -:102F74000605780E7603227810E6FD7F22123607C6 -:102F84007812E6FD7F21123607780FE6C454F078F4 -:102F94001146FD7F231236077F0112369B7814E613 -:102FA400FFD394014002C23FEFD394034002C23BDB -:102FB400EFD394074002C23DEFD3940C4002C23CCD -:0D2FC400EFD394114002C23E780E76022237 -:06227100C140C141C14261 -:10327700C24190012AE020E65130E203D2422230D7 -:103287003F04E4FF801190012AE030E50D30273A32 -:103297007F3C12383F7F010236BDE4FF1227AFEFB4 -:1032A7006008E4FF1236BDD24022C240D24130420C -:1032B70019780EE6B40213C3787DE6941018E694E5 -:0B32C7000E4005D241C24222C241224B -:10385900426F78204F70656E2E0D0A00426F7820F6 -:09386900436C6F73652E0D0A001B -:08227700C146C147410135FFDA -:10332D00E4900066F090012BE0FF5420FE900066C3 -:10333D00F0900135E06E6032EF30E50E900134749F -:10334D0001F07BFF7A387959800BE4900134F07BE2 -:10335D00FF7A387965120F6CD246C210D247D23A35 -:0A336D00900066E0900135F0D248B0 -:013377002233 -:102A5200737570706572206C6F6E672038732070AA -:102A6200726573732E286C696E653A2564290D0AA6 -:102A7200004B6579206C696674286C696E653A252D -:102A820064292E0D0A00426F6F7374204F70656EB9 -:102A9200204B65792E286C696E653A2564290D0AEA -:102AA200006C6F6E672032732070726573730D0A4B -:102AB2000073686F72742070726573730D0A004B35 -:102AC2006579205061697220545820564F52286C03 -:102AD200696E653A2564292E0D0A004B65792050EE -:102AE2006169722054696D654F7574286C696E65F1 -:102AF2003A2564292E0D0A004B65792050616972CE -:102B02002047657420564F52286C696E653A2564D9 -:102B1200292E0D0A004B65792050616972204765A4 -:102B22007420564F4C286C696E653A2564292E0D27 -:102B32000A004B6579205061697220545820564F23 -:102B42004C286C696E653A2564292E0D0A004B6586 -:102B520079205061697220436E743A25642E286C84 -:0A2B6200696E653A2564290D0A002A -:10227F00C134C133C13201170041011E0041012297 -:0E228F000041011D0042011F0000410121001D -:10000E007BFF90006CE4F0A3227BFF90006C7401E8 -:03001E00F0A3222A -:101B6C0090012BE030E44490011FE475F001121455 -:101B7C005EC3900120E0944090011FE0940140115D -:101B8C00D2327A2A795212000E7471F0120F6C80D4 -:101B9C0014C3900120E0945090011FE09400400584 -:101BAC00203102D231D22EC22F804D302E43D2485A -:101BBC00E47817F6C22ED22F900121F090011FE08D -:101BCC00FEA3E0FFD39414EE94005008D234D2302C -:101BDC00D23A800EC3EF94C8EE9400500530310217 -:101BEC00D233C2317A2A797312000E74A7F0120F15 -:101BFC006CE490011FF0A3F0302F77304174303338 -:101C0C002D201008121DAE74BA021D65121DD45081 -:101C1C0003021D9AC23378177602E490011EF090ED -:101C2C000045F0A3F07BFF7A2A79A3120F6C3032B7 -:101C3C002F201008121DAE74E3021D65121DD45026 -:101C4C0003021D9AC232E4900122F0781776037BCE -:101C5C00FF7A2A795290006CF0A374F8F0120F6C92 -:101C6C0030300BC2307BFF7A2A79B3120F6CC22F43 -:101C7C00C210900134E064016003021DAD7817E6D8 -:101C8C0064026003021D6E90011EE0C394015016A5 -:101C9C007F37121DC77BFF7A2A79C190006C04F044 -:101CAC00A37422021D3890011DE0D394054020E45A -:101CBC00F07D257F11121DEC7D247F11121DECE4AB -:101CCC00121DE17A2A79DD1200177438021D659015 -:101CDC000045E0B4011D7D257F0A121DEC900045E6 -:101CEC007402F07BFF7A2A79FA90006C14F0A374DA -:101CFC004E8039900045E064027035A3E0601B7F94 -:101D0C000A121DC790011EF090011DF0121DE17A00 -:101D1C002B7917120017746F803F7D257F37121DAA -:101D2C00EC7BFF7A2B7934120019747FF0120F6C54 -:101D3C0090011EE0D39414402490011DE004F0E4C3 -:101D4C00A3F07BFF7A2B795090011DE0FF1200105D -:101D5C00EFF0A37401F0A3748DF0020F6C90011ED0 -:101D6C00802C7817E664037038900122E0FFC3944E -:101D7C0064501FEF540770047D25800A900122E007 -:101D8C00540370077D247F0B121DEC900122E0049C -:101D9C00F022E47817F6D213900122F07F0412306F -:011DAC004EE8 -:101DAD00227F3C12383F7F011236BDD2107BFF7A65 -:101DBD002A798890006CE4F0A3227D24121DECE4B6 -:101DCD00900045F0A3F0227F0312304E900121E0E8 -:0F1DDD00D39414227817F6D2137F0412304E22BB -:10229D004100BA004100B9004100BB004100B80047 -:10313F00900066E0FF25E024C4F582E43400F583B7 -:10314F0022900066E0FF25E024CCF582E43400F500 -:10315F0083E0FCA3E0FDEF25E024DCF582E43400FE -:10316F00F5832274BC2FF582E43400F58322E4F05A -:10317F00A3F0EF25E024D4F582E43400F583229008 -:10318F000066E0FF24C0F582E43400F58322E0FE00 -:10319F00A3E0C39DEE9C2225E024CCF582E434000D -:0331AF00F5832283 -:1037BA0075FE0B75FF0F75FE1375FF0F75FE0C7501 -:0B37CA00FF55C290C291C293C2922230 -:10380B00EF14600D14600D14600D2403700BD29037 -:0A381B0022D29122D29222D29322EF -:05372200900066E0FFCD -:10372700EF14600D14600D14600D2403700BC2902C -:0A37370022C29122C29222C2932204 -:1035AB00E4FF123172E4F074C02F123195E4F0EFA6 -:1035BB00123144E4F0A3F0EF1231A612317DE4F0A6 -:0E35CB00A3F0123165E4F0A3F00FEFB404D4C6 -:0135D90022CF -:1034C800AC0774BC2C123175EDF0EAC313FEEB1394 -:1034D800FFEC123144EEF0A3EFF0AF03EC1231A68B -:1034E800EAF0A3EFF090006BE0FEA3E0FFEC1231EE -:0F34F80082EEF0A3EFF0EC123166E4F0A3F022C5 -:10374100123172EDF074C02F123195EBF0EF12319E -:0F37510044E4F0A37469F0123165E4F0A3F022B0 -:10202100E4900066F0F0900066E0FFC39404400382 -:10203100022216123172E0601F24FE6021146078C2 -:102041001470030220EA240360030221C590006694 -:10205100E0FF12380B0221C51237220221C51231CD -:102061003F12316012319D500512380B8003123737 -:102071002212315012319D50030221C5900066E0B9 -:1020810012316612317DE0FEA3E0D39400EE94009C -:10209100400E900066E012318274FFF5F012145E7A -:1020A100900066E0FF123182E0FCA3E04C60030285 -:1020B10021C574BC2F0220FB12313F123160E0FEBA -:1020C100A3E0D39DEE9C500512380B8003123722FA -:1020D10012315012319D50030221C5900066E01269 -:1020E1003166E4F0A3F00221C512318EE0701312C3 -:1020F10038A1C24A900066E024BC123175E4F002B6 -:1021010021C512318EE0FE6402702E204A0CD24AA3 -:10211100EF123144E4F0A37469F012313FE475F039 -:102121000112145EEF123144E0FCA3E0C394FEEC13 -:10213100940050030221BC8031EE64017037204AC3 -:102141000FD24A900066E0123144E4F0A374FEF02D -:1021510012313F74FFF5F012145EEF123144E0FECC -:10216100A3E0D39469EE94005051900066E01231DF -:1021710093E4F0804612318EE06403703EEF123139 -:1021810044E0FEA3E0FFC394FEEE94004004D24A73 -:10219100800BD3EF946AEE94005002C24A9000661D -:1021A100E025E024C4304A0912314874FFF5F0807B -:1021B10007123148E475F00112145E12313FA3E0B9 -:1021C100FD123378900066E0FF700A123172E090E0 -:1021D10000BAF08037900066E0B4010C24BC1231E3 -:1021E10075E09000B9F08024900066E0B4020C2400 -:1021F100BC123175E09000BBF08011900066E0B434 -:10220100030A24BC123175E09000B8F0900066E03A -:1022110004F0022027E4900066F0900066E0FFC31E -:1022210094045012123165E475F00112145E9000AD -:0622310066E004F080E409 -:012237002284 -:1032D200456E74657220536869704D6F646521286C -:1032E2006C696E653A2564290D0A004E6F74204799 -:1032F200657420496E746F20536C6565702843684D -:10330200675374617475733A25642C566F785F56EF -:103312006F75743A25642C526573746172745F46DA -:0B3322006C61673A2564292E0D0A003B -:1022AD00C1494101240042012500004101270F4190 -:0522BD00012300C148EF -:0A398300E4FF33A3CFF0A3EFF0221E -:10382500D2AC759A03D2BCD2BDD2A9D2AB75FE314A -:0A38350075FF8175FE3043FF80220D -:10376000C2ACE4F59AC2BCC2BDC2A9C2AB75FE31FF -:0F37700053FF7E75FE3053FF7FFD7F310236071A -:10340300304937302A3DC22A900123E004F0E0C35B -:1034130094054010E4A3F07DAA7F4F123607E49091 -:103423000123F022900123E0B404187BFF7A327960 -:10343300D290006C74E0F0020F6C12376043870285 -:0434430012382522F4 -:10357B00780EE6FFD39401500620140330481F7BCE -:10358B00FF7A3279ED90006CE4F0A3EFF0A2141205 -:10359B003983A248123983120F6CC248C322D3223B -:103544001237D5123908123944E4F5861235DA12E5 -:10355400379D7D087F761239AFD2A8D2AF1238E4F6 -:103564007D697F031238CE1237BA1235AB12395245 -:073574009001127401F02226 -:030003000239BD02 -:0639BD00D24875E20F3252 -:1022C20020402A0000000000000000000000000082 -:1022D20000000000000000000000000000000000FC -:1022E20000000000000000000000000000000000EC -:1022F20000000000000000000000000000000000DC -:10230200000000C14541012D0041012E0042012F74 -:042312000000C144C2 -:0B396D00E0FF04F0742A2FF8A6992256 -:1037D50075FE0443FF0CD2DF43878075BA0375AAD3 -:0B37E500DC759852D299D298D2AC2229 -:0633BE009000AC12153373 -:1033C400E49000AFF075FE0443FF0C75FE0353FF59 -:1033D400F3F09000AFE0C39FE49E501C2043FDD265 -:1033E400439000ACE475F00112151C12135CF599BE -:0E33F4009000AFE004F080DA75FE0453FFF3A2 -:0134020022A7 -:03002300022EA802 -:102EA800C0E0C083C082C0D075D000C000C003C0DD -:102EB80005C006C007309904C299C24330986AC257 -:102EC80098D24890012DE014601C04705CE599903C -:102ED800012DB4AA0B7401F0A3E4F012396D8049F6 -:102EE800E4F0A3F0804390012E12396DE0FDB407A1 -:102EF800177830E6FEE42409FFE43EFE18E6FBEF0F -:102F08004BFFA3EEF0A3EFF0EDFF90012FE070036D -:102F1800A3E06F600990012EE0D39440400B90012C -:102F28002EE4F090012DF0D245D007D006D005D080 -:0C2F380003D000D0D0D082D083D0E03293 -:0E393600900091EFF012399F900091E0FF2277 -:1039080075F10A759F03759EFD759692759A022248 -:08399F002044FDD2448F972261 -:03008B0002388AAE -:10388A00C0E0E59630E1055396FDC244E59630E086 -:07389A00035396FED0E0325B -:10292200506F776572204F6E205374617465214831 -:10293200616C6C28307825782920286C696E653A9C -:102942002564290D0A004177616B65205374617417 -:102952006520286C696E653A2564290D0A004E6F60 -:10296200726D616C20537461746520286C696E65A8 -:102972003A2564290D0A00536C6565702053746111 -:10298200746520286C696E653A2564290D0A005326 -:102992005441303A307825782C535441313A3078CA -:1029A20025782C535441323A307825782C43686983 -:1029B200705F5354413A307825782C564F585F5304 -:1029C20054413A307825782E4465635F536C6565CF -:1029D200703A25640D0A00566E74633A25642C49D8 -:1029E200766F6C3A25642C566261743A25642C56D3 -:1029F200696E3A25642C56706D69643A25642C56CA -:102A02006F723A25642C566F6C3A25642C566464B6 -:102A12003A25642C49766F723A25642E0D0A0044D9 -:102A220065636E745F536C65657044656C61792093 -:102A320052656C6F61642E0D0A00456E74657220DA -:102A42005374616E646279204D6F6465210D0A00D2 -:1023160043011204020241010F0041011000C13ABB -:0E232600C139410111004101150041010E00B5 -:10002600E6FF08A3E6CFF0A3EFF02290006BE4F022 -:10003600A3740AF07B147A007D02227BFFE0900015 -:100046006CFFE4F0A3EFF0229000BAF09000B9F054 -:100056009000BBF09000B8F022F0E490006BF0A3A3 -:10006600F0FBFA2290006BE4F0A37403F07B647A51 -:10007600007D0222FFE4F0A3EFF0227BFF90006CEC -:050086007402F0A3224A -:10370100E4FBFF1237187F01123741E4FB7F0212FD -:1037110037187F030237417D04123741E4FB7D04F2 -:013721002285 -:10189700303A1BC23AE4900110F07813F6121AFF9F -:1018A700FD7F031234C8740212004ED2482220254D -:1018B70006204003300D5F203505D235D23A2290FD -:1018C70000BAE06402600E120031E4FF1234C890DF -:1018D70000BA7403F09000B9E06402600E120031A0 -:1018E7007F011234C89000B97403F09000BBE06424 -:1018F700026009120031121B637403F09000B8E014 -:1019070064027003021AC91200317F031234C890AF -:1019170000B87403F02230350CC235C237C236C264 -:1019270047C20ED239780EE6FF70030219F464033A -:101937007020203707D237C236023701E490006B98 -:10194700121ACA7D017F031234C8740112004E02B5 -:1019570019EB20360ED236C237D23AE4900115F091 -:101967000219EB900110E0C394015057E004F09086 -:101977000115E014601A146027146034240370649E -:101987009000BAE06404605C7B017D04E4FF802E74 -:101997009000B9E06404604C7B017D047F01801EE8 -:1019A7009000BBE06404603C7B017D047F02800EF5 -:1019B7009000B8E06404602C7B017D047F0312373C -:1019C700418021900110E0C3940F5005E004F0809E -:1019D70013E4900110F0900115E004F0E0C39404C3 -:1019E7004002E4F0C247C20EC234D2382230360A6F -:1019F700C236123701D23AD2392220470C20380991 -:101A0700200E06203403021AC9900110E0FFC39488 -:101A1700015004E004F022EFC394644003021AB4B7 -:101A2700900110E004F0303D309000BAE06403709C -:101A370003021AC9E490006BF0A3F07B64FA7D03FC -:101A4700FF1234C89000BA740412005FFD7F0112C0 -:101A570034C89000B97402800F303C17E490006BD3 -:101A6700121B34121B4F740112005FFD121B6374AB -:101A770002801EE490006B303E27121B34121B4F6E -:101A8700740112005F7D017F021234C89000BB749D -:101A97000112005FFD7F031234C89000B87402F092 -:101AA70022121ACA7D01121B5A74018012C247C240 -:101AB70038C20EC234E4121AFFFD121B5A74021206 -:021AC7000051CC -:101AC90022F0A3F0FBFA7D01FF1234C8E490006B09 -:101AD900F0A3F0FBFA7D017F011234C8E490006B9A -:101AE900F0A3F0FBFA7D017F021234C8E490006B89 -:101AF900F0A3F0FBFA2290006BF0A3F0FBFAFDFFD4 -:101B09001234C8E490006BF0A3F0FBFAFD7F0112D8 -:101B190034C8E490006BF0A3F0FBFAFD7F021234A5 -:101B2900C8E490006BF0A3F0FBFA22F0A3F0FBFAF3 -:101B39007D01FF1234C89000BA7401F0E490006B83 -:101B4900F0A3F0FBFA227D017F011234C89000B99D -:101B5900227F031234C89000BA227F021234C8903F -:031B690000BB229C -:1038B800900132E0FF04F0122B6C900132E0C394C7 -:0638C800084002E4F022BA -:10377F0012332D121B6C1230C8302611C226122F95 -:0E378F0044123277122FD112189712158F2282 -:093996007B017A01792802321B41 -:10260F00E4900066F0900112E0FFA3E0FE6F606FB0 -:10261F00A3EEF0900112E0A3F024FE6030146041AD -:10262F0014604F240360030227AE12006AE4FF1206 -:10263F0034C812006A7F011234C87A2979229001B6 -:10264F0034120041A37401F0A374F6802E7F01129F -:10265F0036DF7BFF7A297948740290006CF0A380F3 -:10266F001A900127740FF07A297960120081740E85 -:10267F0080097A2979791200817419F002277990EB -:10268F000113E024FE603914603D1470030227919A -:10269F00240360030227AE90010EE004F0E0C39420 -:1026AF000850030227AE9001127402F0E490010E5D -:1026BF00F07814E660030227AE9001127404F02242 -:1026CF009001127403F022202A030227AEC22A7A45 -:1026DF00297991900128120041900129E090006E14 -:1026EF0012004790012AE090007012007A90012B9F -:1026FF00E090007212007A90012CE0FF900074E4D9 -:10270F00F0A3EFF0900127E0FF900076E4F0A3EF45 -:10271F00F0120F6C7BFF7A2979D97876E6FF089053 -:10272F00006C12002A786A120026787C1200267834 -:10273F0070120026787A12002678741200267872AA -:10274F00120026786C120026786E120026120F6C7B -:10275F00900127E0D394004014E014F0304840C2B9 -:10276F0048740FF07BFF7A2A7921020F6C7BFF7A76 -:10277F002A793C120F6C9001127404F0E49001233B -:10278F00F02212357B50127F0412304EE4FF1236C6 -:0F279F00BDE4FF1236DF0234039001127402F022 -:0127AE002208 -:10344700302936C22990010FE0FF04F0EF14601213 -:103457001460141460161460182404701C1238B811 -:1034670080171239968012123489800D12377F80A7 -:103477000812260FE490010FF0302B05C22B122003 -:02348700212200 -:10008E00426F6F7374204F70656E2E286C696E65AB -:10009E003A2564290D0A00426F7820436C6F736510 -:1000AE002E286C696E653A2564290D0A00426F7818 -:1000BE00204F70656E2E286C696E653A2564290D89 -:1000CE000A004F70656E2F436C6F736520426F7818 -:1000DE002C45617270686F6E657320496E20426F99 -:1000EE0078284E756D3A25642928566F78537461B9 -:1000FE003A30782578292E0D0A004F70656E204211 -:10010E006F7820434D44205458204F7665722E0D43 -:10011E000A004F70656E20426F7820416E64204554 -:10012E00617270686F6E6520476574496E284E75F2 -:10013E006D3A25642928566F785374613A307825C4 -:10014E0078292E0D0A00436C6F736520426F78205C -:10015E00416E6420466F72636520566F6C746167E2 -:10016E00652055702E0D0A2000564F5820566F757B -:10017E007420355628564F585F5354413A307825DF -:10018E00782C6C696E653A2564292E0D0A00564F3F -:10019E0058204348472046756C6C2E0D0A00564F6A -:1001AE00582047657420496E746F20536C656570D6 -:1001BE002E0D0A00466F6C6C6F772043484720491E -:1001CE006E697453746120536574204D61782056A6 -:1001DE00706D69642E28566F785F7374613A30784B -:1001EE00257829286C696E653A2564290D0A004622 -:1001FE006F6C6C6F772043484720496E6974537457 -:10020E00612E28566F785F7374613A30782578299D -:10021E00286C696E653A2564290D0A00466F6C6C70 -:10022E006F772043484720537461312C4E6F204521 -:10023E00617250686F6E6520496E20426F782E286D -:10024E006C696E653A2564290D0A00466F6C6C6FF9 -:10025E00772043484720537461312C564F52204328 -:10026E006867696E672849766F723A25646D412911 -:10027E002E286C696E653A2564290D0A00466F6C4E -:10028E006C6F772043484720537461312C564F4C86 -:10029E0020436867696E672849766F6C3A25646DEE -:1002AE0041292E286C696E653A2564290D0A00468F -:1002BE006F6C6C6F772043484720537461322C4724 -:1002CE0065742049564F523A25646D412E286C694B -:1002DE006E653A2564290D0A00466F6C6C6F7720A7 -:1002EE0043484720537461322C4765742049564F5A -:1002FE004C3A25646D412E286C696E653A25642949 -:10030E000D0A00466F6C6C6F77204348472053747C -:10031E0061332C564F5820436867205265496E69E9 -:10032E00742E286C696E653A2564290D0A00466F95 -:10033E006C6C6F77204348472053746133284356C3 -:10034E00292C564F522056706D69642041646453B7 -:10035E0074612849766F723A25646D41292E286C96 -:10036E00696E653A2564290D0A00466F6C6C6F77CD -:10037E00204348472053746133284356292C564F47 -:10038E00522056706D69642053756253746128490A -:10039E00766F723A25646D41292E286C696E653A26 -:1003AE002564290D0A00466F6C6C6F772043484711 -:1003BE002053746133284343292C564F52205670D4 -:1003CE006D6964205375625374612849766F723A71 -:1003DE0025646D41292E286C696E653A2564290DB8 -:1003EE000A00466F6C6C6F77204348472053746148 -:1003FE0033284343292C564F522056706D69642082 -:10040E004164645374612849766F723A25646D4174 -:10041E00292E286C696E653A2564290D0A00466FEF -:10042E006C6C6F77204348472053746133284356D2 -:10043E00292C564F4C2056706D69642041646453CC -:10044E0074612849766F6C3A25646D41292E286CAB -:10045E00696E653A2564290D0A00466F6C6C6F77DC -:10046E00204348472053746133284356292C564F56 -:10047E004C2056706D69642053756253746128491F -:10048E00766F6C3A25646D41292E286C696E653A3B -:10049E002564290D0A00466F6C6C6F772043484720 -:1004AE002053746133284343292C564F4C205670E9 -:1004BE006D6964205375625374612849766F6C3A86 -:1004CE0025646D41292E286C696E653A2564290DC7 -:1004DE000A00466F6C6C6F77204348472053746157 -:1004EE0033284343292C564F4C2056706D69642097 -:1004FE004164645374612849766F6C3A25646D418A -:10050E00292E286C696E653A2564290D0A00466FFE -:10051E006C6C6F772043484720537461342C564FD0 -:10052E00782056706D696420416464537461285656 -:10053E006F75743A307825782C49766F6C3A25644D -:10054E006D412C49766F723A25646D4129286C698C -:10055E006E653A2564292E0D0A00466F6C6C6F7716 -:10056E002043484720537461342C564F78204368FB -:10057E00696E6728566F75743A307825782C4976EF -:10058E006F6C3A25646D412C49766F723A25646D15 -:10059E004129286C696E653A2564292E0D0A00469C -:1005AE006F6C6C6F772043484720537461342C5620 -:1005BE004F522056706D69642041646453746128F3 -:1005CE00566F75743A307825782C49766F723A25C5 -:1005DE00646D4129286C696E653A2564292E0D0AD1 -:1005EE0000466F6C6C6F772043484720537461341C -:1005FE002C564F52204368696E6728566F75743AB1 -:10060E00307825782C49766F723A25646D41292809 -:10061E006C696E653A2564292E0D0A00466F6C6C66 -:10062E006F772043484720537461342C564F4C202B -:10063E0056706D69642041646453746128566F75F9 -:10064E00743A307825782C49766F6C3A25646D4172 -:10065E0029286C696E653A2564292E0D0A00466FAD -:10066E006C6C6F772043484720537461342C564F7F -:10067E004C204368696E6728566F75743A3078253A -:10068E00782C49766F6C3A25646D4129286C696E19 -:10069E00653A2564292E0D0A00466F6C6C6F772023 -:1006AE00434847205375625374612C564F4C2F5656 -:1006BE004F52286C696E653A2564292E0D0A004644 -:1006CE006F6C6C6F7720434847205375625374618B -:1006DE002C564F52286C696E653A2564292E0D0AE8 -:1006EE0000466F6C6C6F77204348472053756253FA -:1006FE0074612C564F4C286C696E653A2564292E10 -:10070E000D0A00466F6C6C6F772043484720537577 -:10071E00625374612C285354413A307825782C5604 -:10072E00706D69643A3078257829286C696E653A5F -:10073E002564290D0A00466F6C6C6F77204348477D -:10074E00204164645374612C285354413A30782507 -:10075E00782C56706D69643A3078257829286C6942 -:10076E006E653A2564290D0A005258305F4275664F -:10077E006665725B305D3A307825782C5258305F62 -:10078E004275666665725B315D3A307825782C521B -:10079E0058305F4275666665725B325D3A30782519 -:1007AE00782C5258305F4275666665725B335D3ADF -:1007BE00307825782C5258305F4275666665725BCC -:1007CE00345D3A307825782C5258305F4275666623 -:1007DE0065725B355D3A307825782C5258305F4221 -:1007EE0075666665725B365D3A307825782C5258A0 -:1007FE00305F4275666665725B375D3A3078257894 -:10080E002C6C696E653A25640D0A0000000000002C -:10081E0000000000000000000000000000000000CA -:10082E0000000000000000000000000000000000BA -:10083E0000000000000000000000000000000000AA -:0B084E0000000000000000000000009F -:10233400C114C10EC110410059FFC10D42000D006E -:10234400004200090000420045000041002E00C187 -:102354001342005C000042005700004600470000A2 -:102364000000000048004F00000000000000004290 -:1023740000600000420005000042004D00004200E1 -:1023840064000042005A000042000B0000420007B3 -:10239400000042005E0000C111C11256002F00006F -:1023A4000000000000000000000000000000000029 -:0E23B4000000000041002D00C10F4100630039 -:1024300090003974011213E77402900062F090006A -:102440006602151390005612148AFFE5F090006C96 -:10245000F0EFA3F0A37404F0A322E6FFE4F0A3EFEF -:10246000F008E6FFA3E4F0A3EFF008E6FFA3E4F032 -:10247000A3EFF008E6A3FFE4F0A3EFF02290001A28 -:1024800012137590006CF0786AE6FF08E6A3CFF0AF -:10249000A3EFF0786EE6FF08E6A3CFF0A3EFF0A37A -:1024A0007405F0A3229000391213E790001A02136A -:1024B0007590004E12148A900056FFAEF002148AF6 -:1024C0007BFF90006C7405F0A3229000548FF00203 -:1024D00014C290004C12148AFFAEF0900054021403 -:1024E0008A7BFF90006C7402F0A32290012CE054D0 -:1024F0000CFBE4FAF9F8900000E0FFE4FCFDFEC3F9 -:102500000214EFEE8FF09000560214C290005212A7 -:10251000148AD3FFED9FEC95F02290003B021375D7 -:10252000740190006FF0E4A3F022900037E41213DE -:10253000E7E49000360213E790001AEF1213E790D9 -:1025400000622290003C0213757BFF90012CE0FF9B -:1025500090006CE4227BFF90006C7404F022E6FC97 -:1025600008E6FD25E0FFEC338FF01214C27BFF225A -:10257000EEC41313135401F008E62290012CE0542A -:102580000C22E490000DF0A322E475F00102145E29 -:10259000EE8FF01214C27D05121409EF7802227436 -:1025A0000190003A0213E7C3FDACF09FEC9E22E4D9 -:1025B000FCFDFEFAF9F8C30214EF786EE6FE08E6B9 -:1025C000FF2290012CE05410FFE4FCFDEF22740187 -:1025D0001213E77BFF2208E6FE5401F0EEC313540A -:1025E000012290002BF0A3F0900062F02274722B75 -:1025F000F582E43400F5832290012CE05420FFE4BE -:0F260000FC2290000DE094002290003702137529 -:05304E009000ACEFF062 -:10305300E4A3F0A3F07F271235079000ADEFF07FD4 -:10306300371235079000AEEFF09000ACE024FD601E -:103073001B14602424FE6028240570359000AEE004 -:103083004494F09000ADE04498F080259000ADE0CA -:103093004406F054E7F080199000AEE054FD800937 -:1030A3009000AEE04402F054FEF09000ADE054E135 -:1030B300F09000ADE0FD7F271236079000AEE0FDF3 -:0530C3007F3702360713 -:10158F0090012AE054186003D20D22C20D204103AE -:10159F0002186130466F20101A12188A7BFF7A00EA -:1015AF00798E90006C7401F0A374D8F0120F6C7FD9 -:1015BF00038065E4900003F0900001F0A3F0C200F7 -:1015CF00C201D20B900134E07022C20ED202D203BC -:1015DF00C205C208C204C209C20AD214C2391225F6 -:1015EF00E27A0079A51224E174098011C202C203C4 -:1015FF00D205C2067A0079BB1224E17416F0120FDD -:10160F006CC210C246900001E0C39405500302174C -:10161F00EE300B07C20B7F0402304E200041D20088 -:10162F0012257BFF60147B0C1225AF90002E7005E6 -:10163F007402F0800A7401F08005E490002EF07BB4 -:10164F00FF7A0079D090002EE090006C12247690F3 -:10165F00012CE0FF90006EE4F0A3EFF0120F6C206E -:10166F00050302170F900002E0C39405500A7F068E -:10167F0012304E9000028027200144900003E0FFBB -:10168F00D39414501FEF540370047D2480099000ED -:10169F0003E020E0077D257F0D121DEC900003E095 -:1016AF0004F0805C7F0412304EE4900003F0D2010E -:1016BF00D213C2147BFF7A017908120F6C80417824 -:1016CF0017E6703C301304C213802E1224EB6030E7 -:1016DF0090012CE0FF540C6004D20ED23A7BFF7ABB -:1016EF0001792090002EE0FD90006CE4F0A3EDF066 -:1016FF00A3E4F0A3EFF0120F6C12257B900000F023 -:10170F0020020302185E30393B20101612188AD2BD -:10171F0014E41225E2900001F0C208D20BC200D2ED -:10172F0004227F0312304E7BFF7A017954120F6C23 -:10173F00C210D203900001E0D3940350030217EEBE -:10174F00C239805020044D900002E0FFD394145012 -:10175F001DEF540370047D248009900002E020E007 -:10176F00077D257F0D121DEC9000020217EE9000F1 -:10177F0003E0FFD39414501CEF540370047D2480B6 -:10178F0009900003E020E0077D257F37121DEC90C4 -:10179F000003804B3003207F0312304E7A0179779C -:1017AF00122549F0A3EFF0A37403F0A37456F012BF -:1017BF000F6CC20302185E20085790012CE05430C2 -:1017CF00FF7B301225AF600E12257BFFE4FCFDFE80 -:1017DF00EF6003303B2A900001E0D394285004E0DF -:1017EF0004F0227BFF7A01799C120F6CD208E490EF -:1017FF000004F0900001F0C2097F0412304E804FB8 -:10180F0090002CE070497B017A00790F1208598003 -:10181F003E900004E0FFD39414501FEF5403700464 -:10182F007D248009900004E020E0077D257F0512CC -:10183F001DEC900004E004F08015200912D2097FFE -:10184F000412304EC2147BFF7A0179AC120F6CC2B6 -:10185F000722200711D2077F0412304EC21412251F -:10186F007B900000F0221224EB600F12257BFF60AB -:0A187F0004D20ED23A900000EFF000 -:0E188900227F3C12383F7F011236BDD2102262 -:0608590090006612153349 -:10085F00900062E01470030209361470030209FF5E -:10086F00147003020A6C147003020C232404600337 -:10087F00020D5812243E90001D1213756003020DD5 -:10088F0058900063E0D3940A5035E004F090001ABA -:10089F00743C1213E7300C03020D5812243E12243D -:1008AF00ABFF12383F7BFF7A0179C290012CE0FF3A -:1008BF00E412244D7401F0120F6CD20C020D58E4A7 -:1008CF00900063F0C20C12243EE41225A19000396F -:1008DF00E41213E712252A900035E41213E7900073 -:1008EF0034E41213E790003CE41213E790003BE46A -:1008FF001213E7E4F5F0122506900054E4F5F01218 -:10090F0014C2900019E41213E790001B743C1225D7 -:10091F003C7401F0122582F07A0179FD12254912FB -:10092F0024507428020ABC90012CE0FB5420FFE4F1 -:10093F00FCFDFEEF6023EB5410FF601D12243E9070 -:10094F00001D74011213E7E4900062F07A02792A15 -:10095F00122555A37437020ABC1225F8EF703B120B -:10096F0025BA12243E90004A122590C333CE33CEBF -:10097F00D8F9FF12243E90004EEE8FF01214C27879 -:10098F006E90005212255E7A02795990006CECF04D -:10099F00ED1224527445F0120F6C1225C27040787C -:1009AF006AE6FE08E6FF12243E900048122590C327 -:1009BF0033CE33CED8F9FF12243E90004CEE8FF099 -:1009CF001214C2786A90005012255E7A02798B90C9 -:1009DF00006CECF0A3ED1224537452F0120F6C1252 -:1009EF00243E90001C740112253C7402F0020D5835 -:1009FF00D390000EE094051226025003020A7812DB -:100A0F002582F01225F8FDEF70201225BA12243E30 -:100A1F0012250390003C1225CE7A0279BD90006C0E -:100A2F00EE122450746EF0120F6C1225C2702578DE -:100A3F006AE6FE08E6FF12243EEE1224CA90003B3F -:100A4F001225CE7A0279E790006CEE12245074785A -:100A5F00F0120F6C9000627403F0020D58D39000E7 -:100A6F000EE094021226025006122589020D58122A -:100A7F00258212243D9000521224B4D39FE5F09E9C -:100A8F00501612243E90005012148A9000541224D3 -:100A9F00BAD39FE5F09E4019E412243A90001CE46B -:100AAF001213E77A037911122555A37492F0020DF0 -:100ABF005512243E12254364016003020B6D900012 -:100ACF005612148AD39414E5F09400504D90012CD3 -:100ADF00E030E52990003A74011224A8C3943C40F9 -:100AEF000A12243E90003CE41213E712243E122413 -:100AFF004474A4F07BFF7A03793C020B6A12243E04 -:100B0F0090003774011213E712243E12244474AB81 -:100B1F00F07BFF7A037978020B6A12243E1224B11C -:100B2F00D39FE5F09E900066401C1215139000377E -:100B3F0074011213E712243E12244474B5F07BFFA4 -:100B4F007A0379B4801512151312259F12243E12C1 -:100B5F00244474BCF07BFF7A0379F0120F6C1224DB -:100B6F003E12251A64016003020D581224DBD39440 -:100B7F0014E5F09400504D90012CE030E4297401FD -:100B8F001224A5C3943C400A12243E90003BE41269 -:100B9F0013E712243E90005412244774CFF07BFFCA -:100BAF007A04792C020D5512243E7401122532124B -:100BBF00243E90005412244774D6F07BFF7A0479B8 -:100BCF0068020D5512243E1224D2D39FE5F09E9059 -:100BDF000066402012151390003674011213E712AD -:100BEF00243E90005412244774E0F07BFF7A04797E -:100BFF00A4020D5512151390003974011213E71248 -:100C0F00243E90005412244774E7F07BFF7A047956 -:100C1F00E0020D55D390000EE094141226025019E5 -:100C2F001225891225BA12243E122503786AE6FF8F -:100C3F0008E6CF1224CA020D5812258212243D1243 -:100C4F0025436401705712251A640170501224B1A4 -:100C5F001225A7400812243E12250C402E12243EC6 -:100C6F001224D21225A7400B12243E9000501225B9 -:100C7F000F401812243E12259F12243012247D7427 -:100C8F000EF07BFF7A05791C020D5512243E1224BB -:100C9F007D7415F07BFF7A057968020D5512243E9D -:100CAF00122543640170451224B11225A740081282 -:100CBF00243E12250C401D12243E90003A1224337C -:100CCF001224AB90006C1224927428F07BFF7A05EB -:100CDF0079AD801512243E1224AB90006C12249231 -:100CEF00742EF07BFF7A0579EF120F6C12243E12EF -:100CFF00251A640170539000501224D5D31225A8E1 -:100D0F00500F12243E90004C12148AC31225135018 -:100D1F001D12243E1224301224AB90006CF0786A1E -:100D2F00122495743CF07BFF7A06792A80181224DE -:100D3F003E1224AB90006CF0786A1224957442F046 -:100D4F007BFF7A06796C120F6C12243E122543FF3B -:100D5F006401600A12251A64016003020EEB122669 -:100D6F0009FE6401600D9000361213756401600373 -:100D7F00020E70EF6401702512251AB4011FEEB434 -:100D8F00011B122609B4011590001474011213E708 -:100D9F007A0679A71224C0745AF0120F6C12243EEF -:100DAF001225436401701E12251A70191226096448 -:100DBF0001703C900014041213E77A0679CD1224C7 -:100DCF00C07464802612243E122543702212251A05 -:100DDF00B4011C900036121375B401139000141255 -:100DEF0025CE7A0679EF1224C2746FF0120F6C12AF -:100DFF00243E12252A900014121375640160030219 -:100E0F000F0012243E1224ABD39400400890001A16 -:100E1F0074FE1213A2900019121375FF1224ABD394 -:100E2F009F500B12243E1225387404F08006900058 -:100E3F00627402F012258212243D900014E41225F0 -:100E4F003C12254EF0A3EF12243D1224ABFF90006D -:100E5F006EE412249B748EF07BFF7A077911020ED9 -:100E6F00DE12243E90003A1213756401600A90005E -:100E7F00391213756401707990003AE41213E7E4A4 -:100E8F001224A5C3943C500B12243E90001A7402F6 -:100E9F001213A2740412243A90001B121375FF123E -:100EAF0024ABC39F400912243E1225387401F090E1 -:100EBF00006212254EF0A3EF12243D1224ABFF90D7 -:100ECF00006EE412249B74ABF07BFF7A0779441217 -:100EDF000F6C12243E1224ABFF02383F900062E0E9 -:100EEF00D39402400CE412243D90001D74011213A0 -:010EFF00E70B -:010F000022CE -:0E2D69009000AC1215339000AFECF0A3EDF02B -:102D770074FFA3F0A3F0A37410F0A37421F0E4A3ED -:102D8700F09000AF74FFF5F012147445F0606C908A -:102D970000ACE475F00112151C12135C9000B5F03D -:102DA700E0FE9000B1E06EF0A3E0F0E49000B6F032 -:102DB700A3F0C39000B7E094089000B6E0940050E9 -:102DC700C09000B1E0FEA3E0FFEE30E719EF25E089 -:102DD700FFEE33FEA3E06EFEA3E06FFF9000B1EEBF -:102DE700F0A3EFF0800D9000B2E025E0F09000B185 -:102DF700E033F09000B612258980B79000B1E0FE6D -:032E0700A3E0FF46 -:012E0A0022A5 -:081DEC00900066EFF0A3EDF09A -:101DF400E4A3F0A3F0786A7C007D017BFF7A087984 -:101E040019FE7F40121336E49000AAF0A3F090006C -:101E14006A74AAF0900067E0FE90006BF090006690 -:101E2400E090006CF0A3E4F0900134E090006EF0D8 -:101E3400900066E012153C1EB3051E6E0A1EBE0B12 -:101E44001EC80D1F120E1F640F1EBE112020121E6D -:101E54005A3700001F6AE490006FF0A3F07B0690ED -:101E64000047E4F0A3DBFC021F6A740E122522FB78 -:101E740074472BF582E43400F583E0FD74712BF58F -:101E840082E43400F583EDF00BEBB406E3E4FB7479 -:101E94004F2BF582E43400F583E0FD74772BF58253 -:101EA400E43400F583EDF00BEBB408E3021F6A128F -:101EB4002520A20F33A3F0021F6AE490006FF0A361 -:101EC400F0021F6A90006F7405F0E4A3F0A374108D -:101ED400F0F0A37401F0780EE65402C4333354C016 -:101EE400FD7814E675F005A44DA3F0EEB424059036 -:101EF4000060800A900067E0B42508900061E090DB -:101F04000074F090007474FFF0E4A3F08058900023 -:101F14006F740AF0E4A3F090002DE0900071F0E4F7 -:101F2400FBEBFF90002DE0FD2FFFE433FED3EF9495 -:101F340016EE6480948040081225ED74FFF0801240 -:101F4400ED2B242FF582E43400F583E0FF1225ED18 -:101F5400EFF00BEBB409CA90002DE02409F08006E1 -:101F6400122520A304F0900070E0FE90006FE0FDC5 -:101F7400ED2407FFE43EFE900068F0FCA3EFF0FDC3 -:101F84007B017A00796A122D699000AAEEF0A3EF22 -:101F9400F09000AAE0FEA3E0FD900068E0FAA3E060 -:101FA400246AF58274003AF583EDF0EEFF90006840 -:101FB400122589FC746A25F0F58274003CF583EFE0 -:101FC400F07F0112304E900067E0FFB4250B75FEE0 -:101FD4000E53FFF043FF08800DEFB4240975FE0E85 -:101FE40053FFF043FF01900069E02402FF90006872 -:101FF400E03400FE7B017A00796A1233BE900067F8 -:10200400E0FFB4250A75FE0353FFF343FF0822EFF4 -:0C201400B4240975FE0353FFF343FF04DE -:01202000229D -:102C6B00782BE6C4540FFD54036003022D68EF125A -:102C7B00153C2CC60A2CD80B2CE80D2D350E2D47E8 -:102C8B000F2D59112C963700002D68E4FE782FE696 -:102C9B00FFEEC39F501574312EF8E6FF74472EF5E7 -:102CAB0082E43400F583EFF00E80E2EDB40406907D -:102CBB000045022D65900046022D65ED7831B40478 -:102CCB0006E6900057F022E6900058F022EDB4048F -:102CDB000690005E022D6590005F022D65ED640489 -:102CEB0078337023E6FE547F900060F0900005125D -:102CFB00257090005CF090004D1225D6900064F08A -:102D0B0008E690005AF022E6FE547F900061F090A6 -:102D1B00000612257090005DF090004E1225D690A3 -:102D2B000065F008E690005BF022ED7831B4040604 -:102D3B00E690000BF022E690000CF022ED7831B417 -:102D4B000406E6900007F022E6900008F022EDB4AE -:0D2D5B00040590000780039000087401F04B -:012D68002248 -:1030C800E4FDFC900066F0A3F0A3F0304568C2452B -:1030D8007BFF7A077977782A90006C12245A08A324 -:1030E80012245AA37408F0A374DAF0120F6C783023 -:1030F800E6FEE42407FFE43EFE18E6FDEF4DFF90F0 -:103108000067EEF0FCA3EFF0FD7B007A00792A124D -:103118002D69AC06AD07900067A3E0FB242CF8E608 -:10312800FE742B2BF8E6FBEBB5050BEEB504077820 -:063138002CE6FF122C6BD7 -:01313E00226E -:1023C200011400C13BC13FC13DC13CC13E01136983 -:1023D200602A00E40BB80BEA0C1C0C800CB20CE473 -:1023E2000D160D480D7A0DAC0E100E420E740EA68F -:0E23F2000ED80F0A0F3C0F870FD2101D106877 -:102FD100E4FFEF25E024E4F582E43400F583E0FC2E -:102FE100A3E0D3787D96EC189650050FEFB415E267 -:102FF1007814E6FEEFD39E4004180680037813167A -:1030010090012BE030E3047814A6077813E6FED391 -:1030110094C85006EEC3940A50077814A607187690 -:10302100697814E6FFD394005002D23FEFD39401A4 -:103031005002D23BEFD394055002D23DEFD3940A14 -:0C3041005002D23CEFD3940F5002D23E5C -:01304D002260 -:102400004101190041011C00410118004201160060 -:102410000041011A00C128C129C12BC127C126C111 -:092420002A41011B00C12CC12D51 -:1031B20090011BE06062E4F0D228900119E004F073 -:1031C200E0C394054004E4F0D22990011CE004F02D -:1031D200E0C3940A4004E4F0D22B900116E475F0A7 -:1031E2000112145EC3900117E09464900116E094FA -:1031F200004006E4F0A3F0D226900118E004F0E0CB -:10320200C394FA4013E4F0D22790011AE004F0E0EC -:0932120094044004E4F0D22A22E5 -:03000B0002363387 -:10363300C0E0C083C082C0D074FC258CF58C746656 -:10364300258AF58A90011B7401F0D0D0D082D083F3 -:03365300D0E03292 -:0E394400758901758CFC758A66D2A9D28C2219 -:0D39600075FE0FEF25E0FE7403A806082297 -:1038A1001239608002C333D8FCF452FFEFB404062E -:0738B10075FE0FE4F5FF2294 -:1038CE0075FE11EF5407F5FF75FE12AF058FFF75EC -:0638DE00FE1075FF01223F -:103378001239608002C333D8FCF452FF7401A806E6 -:10338800088002C333D8FC42FF75FE0B7401A807FE -:10339800088002C333D8FC42FFEF70038DCE22EFC2 -:1033A800B401038DCF22EFB402038DDE22EFB40304 -:0633B80004AF058FDF22C7 -:033FFD00010102BD -:0624290001150001160080 -:1035DA00D28075FE0443FF0175FE0343FF0175FEA9 -:1035EA000243FF01D28175FE0443FF0275FE0343C5 -:0D35FA00FF0275FE0243FF027815760122E4 -:0C38F600C280123902D281123902D28045 -:05390200E4FF0FDFFEF1 -:01390700229D -:1037F000D281D2801239022081037F0022C281123D -:0B38000039023081037F00227F01228B -:0F392700C280C2811238FDD281123902023902E8 -:0839A7001238F6C28002390259 -:0B3978001238F6123902C28002390238 -:02367900AE079A -:10367B007D08AF051DEF6015C280EE30E704D281E7 -:0F368B008002C281EE25E0FE1238FD80E5C2808C -:01369A00220D -:103656007E08E4FDD281AF061EEF6012ED25E0FD87 -:10366600C2801238FD3081EEED4401FD80E8C28053 -:02367600AF059E -:01367800222F -:0E3952007D087F351236077D0A7F760239AF79 -:10321B009000661215337F10123263EF1213D57FB5 -:10322B0011123263900001EF1213E77F1212326D0D -:10323B00900002EF1213E77F1312326D900003EF31 -:10324B001213E77F141235079000661215139000C6 -:10325B0004EF1213E77F0022123507900066121558 -:0C326B0013221235079000661215132282 -:05369B00900066EFF055 -:1036A000E47F20123507900066E06006EF4401FFDA -:0D36B0008004EF54FEFFAD077F20023607B7 -:0536BD00900067EFF032 -:1036C200E47F27123507900067E06006EF4401FFB0 -:0D36D2008004EF54FEFFAD077F270236078E -:05383F00900069EFF0AC -:10384400E47F25123507EF54C0FF900069E04FFD77 -:053854007F250236078C -:0536DF00900067EFF010 -:1036E400E47F20123507900067E06006EF54FBFF8B -:0D36F4008004EF4404FFAD077F200236077D -:0739AF008FFEAF058FFF2220 -:0639B6008FFEAEFFAF061C -:0139BC0022E8 -:103607009000AFEFF0A3EDF01237F07F0C12367990 -:103617001239789000AFE0FF1236791239789000AE -:0C362700B0E0FF12367912397802392722 -:053507009000AFEFF0A1 -:10350C00E4A3F01237F07F0C123679123978900060 -:10351C00AFE0FF1236791239781237F07F0D123680 -:10352C00791239781236569000B0EFF01239A71292 -:07353C0039279000B0E0FF09 -:013543002265 -:102E2800023872E493A3F8E493A34003F68001F216 -:102E380008DFF48029E493A3F85407240CC8C333AB -:102E4800C4540F4420C8834004F456800146F6DF7A -:102E5800E4800B0102040810204080902238E47EB0 -:102E6800019360BCA3FF543F30E509541FFEE4936F -:102E7800A360010ECF54C025E060A840B8E493A336 -:102E8800FAE493A3F8E493A3C8C582C8CAC583CA61 -:102E9800F0A3C8C582C8CAC583CADFE9DEE780BE19 -:01242F0000AC -:10126600E709F608DFFA8046E709F208DFFA803E6A -:1012760088828C83E709F0A3DFFA8032E309F60857 -:10128600DFFA8078E309F208DFFA807088828C83BF -:10129600E309F0A3DFFA806489828A83E0A3F60873 -:1012A600DFFA805889828A83E0A3F208DFFA804C4D -:1012B60080D280FA80C680D4806980F28033801024 -:1012C60080A680EA809A80A880DA80E280CA80338D -:1012D60089828A83ECFAE493A3C8C582C8CCC58305 -:1012E600CCF0A3C8C582C8CCC583CCDFE9DEE780D5 -:1012F6000D89828A83E493A3F608DFF9ECFAA9F054 -:10130600EDFB2289828A83ECFAE0A3C8C582C8CCA9 -:10131600C583CCF0A3C8C582C8CCC583CCDFEADEC2 -:10132600E880DB89828A83E493A3F208DFF980CC24 -:1013360088F0EF60010E4E60C388F0ED2402B4041D -:101346000050B9F582EB2402B4040050AF232345C4 -:0613560082239012B67321 -:10135C00BB010689828A83E0225002E722BBFE028F -:09136C00E32289828A83E49322C2 -:10137500BB010CE58229F582E5833AF583E022502D -:1013850006E92582F8E622BBFE06E92582F8E22277 -:0D139500E58229F582E5833AF583E4932291 -:1013A200BB010FF8E58229F582E5833AF583E0284F -:1013B200F0225009C58229F8E58226F622BBFE09F1 -:1013C200C58229F8E22582F222F8EA2583F583E92B -:0313D2009328223B -:1013D500BB010689828A83F0225002F722BBFE01F7 -:0213E500F322F1 -:1013E700F8BB010DE58229F582E5833AF583E8F03C -:1013F700225006E92582C8F622BBFE05E92582C8E8 -:02140700F222CF -:10140900BC000BBE0029EF8DF084FFADF022E4CCC7 -:10141900F875F008EF2FFFEE33FEEC33FCEE9DEC90 -:10142900984005FCEE9DFE0FD5F0E9E4CEFD22EDD6 -:10143900F8F5F0EE8420D21CFEADF075F008EF2F20 -:10144900FFED33FD4007985006D5F0F222C398FD11 -:051459000FD5F0EA22AE -:10145E00C5F0F8A3E028F0C5F0F8E5821582700219 -:06146E001583E038F022B6 -:10147400A3F8E0C5F025F0F0E5821582700215832B -:06148400E0C838F0E82288 -:10148A00BB0110E58229F582E5833AF583E0F5F0A0 -:10149A00A3E0225009E92582F886F008E622BBFE7D -:1014AA000AE92582F8E2F5F008E222E5832AF583C3 -:0814BA00E993F5F0A3E9932288 -:1014C200F8BB0111E58229F582E5833AF583E8F05C -:1014D200E5F0A3F0225009E92582C8F608A6F02219 -:0D14E200BBFE09E92582C8F2E5F008F22200 -:1014EF00EB9FF5F0EA9E42F0E99D42F0E89C45F053 -:0114FF0022CA -:10150000E8600FECC313FCED13FDEE13FEEF13FFC9 -:03151000D8F122ED -:09151300E0FBA3E0FAA3E0F922D9 -:10151C00F8E0FBA3A3E0F925F0F0E5821582700258 -:07152C001583E0FA38F022FC -:09153300EBF0A3EAF0A3E9F022B9 -:10153C00D083D082F8E4937012740193700DA3A33E -:10154C0093F8740193F5828883E473740293686052 -:06155C00EFA3A3A380DF52 -:10156200EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02D16 -:10157200FDE43CFCE8A42EC8C5F03DFDE43CFCEFD4 -:0D158200A4FFE5F028FEE43DFDE43CFC2262 -:100F0100E508246CF582E43400F583E005082290BD -:100F11000069301C0390006CE475F00112151C028D -:100F2100135C2015E97F2ED2158018EF540F249001 -:100F3100D43440D4FF30190BEF24BFB41A0050034E -:100F41002461FFE50960021509050CE50C70020535 -:100F51000B301C0E900069E475F00112151CEF02B4 -:100F610013D50239367403D21C8003E4C21CF50880 -:100F7100900069121533E4F509F50BF50CE50960EC -:100F8100077F20120F4480F5750AFFC216C215C2F1 -:100F910017C218C21AC21BC21D120F10FF700D30EA -:100FA1001C057F00120F55AF0CAE0B22B4255FC29A -:100FB100D5C219120F10FF24D0B40A00501A75F0CF -:100FC1000A780930D50508B6FF0106C6A426F62021 -:100FD100D5047002D21880D924CFB41A00EF50047E -:100FE100C2E5D219021156D21680C6D21580C0D2DE -:100FF1001780BCD2D580BAD21A80B47F20120F4498 -:101001002017077401B5090040F1120F01FF120FFB -:1010110044020F7ED21DD21B8095120F01FB120FCD -:1010210001FA120F01F94A4B700679277A127BFFF8 -:1010310020172EE509602A7E008E82758300121327 -:101041007560060EEE650A70F0C2D5EBC0E0EAC02D -:10105100E0E9C0E0EE12119DD0E0F9D0E0FAD0E075 -:10106100FB12135CFF60AAEBC0E0EAC0E0E9C0E05C -:10107100120F44D0E02401F9D0E03400FAD0E0FBB3 -:10108100E50A0460DCD50AD980877BFF7A1179995A -:10109100D217809C791080027908C21BC21D80087A -:1010A100D2D5790A8004790AC2D5E50A047002F51D -:1010B1000AE4FAFDFEFF120F01FC7B082016131251 -:1010C1000F01FD7B1030150A120F01FE120F01FFF7 -:1010D1007B20EC3382D592D55013C3E43015069FA3 -:1010E100FFE49EFEE42016039DFDE49CFCE4CBF8A6 -:1010F100C216EC700CCFCECDCCE824F8F870F3809A -:1011010017C3EF33FFEE33FEED33FDEC33FCEB336E -:10111100FB994002FB0FD8E9EB301605F8D0E0C48B -:1011210048B216C0E00AEC4D4E4F78207B0070C2E9 -:10113100EAB50A0040BCC0E012119FD0F0D0E02017 -:101141001604C4C0E0C4B216C0F0120F2DD0F0D501 -:10115100F0EB020F7E12153C101B531095580FEC4B -:101161004C0FE84210994F10A14410A149100143BE -:0811710010A755108B46108BEE -:1011790045108B471247500FF02D0FF42E10172BE7 -:101189000FF82310152012302A0FB0480000100F55 -:101199003F3F3F00790AA2D5201814301A09B91027 -:1011A900020404B9080104A2D5201B02500104203D -:1011B90017689217B509005034C0E07F203018191C -:1011C9007F30A217721B721A500F1211F6C217C282 -:1011D9001BC21AC21D7F30800F301A03E9C0E0120A -:1011E9000F44301A03D0E0F9D0E0B509CC301A1712 -:1011F9007F30B9100C120F447F583019077F78805F -:1012090003B90803120F443017057F2D020F447FDD -:1012190020201DF87F2B201BF322921780CF286EE8 -:10122900756C6C2900D216120F013016F8C21678A7 -:101239000930D50108F6020FB02D50434958120F55 -:10124900012403B405004001E490124293120F35C2 -:0D125900743A120F35D21875090402109571 -:00000001FF diff --git a/Out/8835_EVB_250109_1723_C981_010102.bin b/Out/8835_EVB_250109_1723_C981_010102.bin deleted file mode 100644 index 3c60b62ef3ef0d26aa0bf6eb9498ffe7b0f9d044..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16386 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 aUwYt64}9r?FFo+32mZPTcwYFA{r?N*ZoH`g diff --git a/Out/8835_EVB_250121_1743.bin b/Out/8835_EVB_250121_1743.bin new file mode 100644 index 0000000000000000000000000000000000000000..08c6e6327ad341cd38360f33e20dafcb15b5d6a3 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/Out/8835_EVB_250121_1743.hex b/Out/8835_EVB_250121_1743.hex new file mode 100644 index 0000000..0ccbd6a --- /dev/null +++ b/Out/8835_EVB_250121_1743.hex @@ -0,0 +1,921 @@ +:03000000022924AE +:1029240075FE7275FF00758E009000007F007E03B7 +:0D293400E4F0A3DFFCDEFA75815C02297C73 +:1033090053797374656D20496E69742E5665723AE6 +:0C3319002532782532782532780D0A0024 +:10308400122F407BFF7A33790990009FE4F0A30468 +:10309400F0A3E4F0A304F0A3E4F0A37402F0120F8D +:0D30A40058D2AED2BE122C4D122EBF80F4B9 +:10000E007857E6FE08E6780222F608EFF6C3EE64AD +:04001E008094802228 +:1032EC0075FE3175FF8175FE0E43FF107DAC7F308E +:0D32FC001234E475FE5990010CE5FFF0223C +:10281500900099EFF0E5A420E00302291875A401C2 +:102825007F351234EB7857760008A6077F361234C9 +:10283500EBEF5403785746F608E6F6900099E04426 +:1028450008FD7F3112310A90010CE0FF3395E0FE5F +:10285500C37858E69FFF18E69EFE3395E0FDFCE43D +:102865007BC47A09F9F81214C5780A121525785728 +:10287500EE1200175005E418F608F690010EE01266 +:10288500156228A30028B20128BB0228CE0328DC44 +:102895000428EA0528F80629070700002918120068 +:1028A5000ECEA2E713CE13D8F8794A80627858E69F +:1028B50025E0795C80447857E6FE08E67803C33363 +:1028C500CE33CED8F97950804612000EC333CE33BD +:1028D500CED8F9795A803812000EC333CE33CED80C +:1028E500F97954802A12000EC333CE33CED8F97944 +:1028F50052801C7858E625E0794CF718E63319F72D +:10290500801112000ECEA2E713CE13D8F8794EF738 +:0F291500EE19F7900099E090010EF075A3812262 +:102DA800E5A430E14075A4027F371234EB785576FC +:102DB8000008A6077F381234EBEF5403785546FE17 +:102DC80008E6FF18EEF608EFF6FF90010CE0FD3379 +:102DD80095E0FCC3EF9DFFEE9CFE1812001750050E +:092DE800E418F608F675A3822236 +:10343000780D7603E4780FF67811F6187603781293 +:03344000760422ED +:10233700E4FE7855E6FC08E6FDC394E8EC94034018 +:10234700037F0022EF700302244FD3ED940FEC9428 +:1023570003400302242DED94CBEC94005003022498 +:102367002DD3ED94AAEC94024022D21F780DE6FFFC +:10237700137810F6302011D3ED94BFEC940240048B +:10238700C22080047810A607E4FE8070D3ED94AADB +:10239700EC94025043ED9437EC9401403BD2207803 +:1023A7000DE6FF7810F6301F13D3ED9493EC9402EB +:1023B7005004C21F8006EFC3137810F67812760414 +:1023C700301A11D3ED9451EC94015004C21A8004D1 +:1023D70078127601E4FE8024D3ED9437EC94015013 +:1023E7001BD21A78127601302010ED9426EC940156 +:1023F7005004C220800478127604E4FE301D11C315 +:10240700ED94F3EC94025006C21DE4FE80027E01B7 +:10241700301E2FD3ED94DDEC94004006C21EE4FE7F +:1024270080207E01801CD3ED940FEC94034006D2EC +:102437001D7E01800DD3ED94CBEC94005004D21E89 +:102447007E01C21BC21C8058C21DC21ED3ED949FC1 +:10245700EC94035031ED9471EC94004029301B103B +:10246700ED9484EC94035006C21BE4FE80027E01C7 +:10247700301C2DD3ED9482EC94004006C21CE4FE80 +:10248700801E7E01801AD3ED949FEC94034004D202 +:102497001B800BC3ED9471EC94005002D21C7E019B +:0224A700AF067E +:0124A9002210 +:102A5600900109E05463600AE4FF1231EDE4780E58 +:102A6600F6227F01122337EF600CE4FF1231EDD21C +:102A760021780E760122C22190010AE05407FFBF99 +:102A86000605780E7603227810E6FD7F2212310ABB +:102A96007812E6FD7F2112310A780FE6C454F078E9 +:102AA6001146FD7F2312310A7F011231ED7814E6BB +:102AB600FFD394014002C23CEFD394034002C238D4 +:102AC600EFD394074002C23AEFD3940C4002C239C6 +:0D2AD600EFD394114002C23B780E7602222D +:102CB600C23E900109E020E65130E203D23F2230C5 +:102CC6003C04E4FF8011900109E030E50D30233A21 +:102CD6007F3C12338F7F0102320FE4FF122337EF5E +:102CE6006008E4FF12320FD23D22C23DD23E303F91 +:102CF60019780EE6B40213C3785CE6941018E694CD +:0B2D06000E4005D23EC23F22C23E221A +:1033A900426F78204F70656E2E0D0A00426F7820AB +:0933B900436C6F73652E0D0A00D0 +:102D5D00E4900099F090010AE0FF5420FE90009954 +:102D6D00F0900110E06E6032EF30E50E90010F74BF +:102D7D0001F07BFF7A3379A9800BE490010FF07B92 +:102D8D00FF7A3379B5120F58D245C20ED22ED230FA +:0A2D9D00900099E0900110F0D2437D +:012DA7002209 +:1026FB00737570706572206C6F6E67203873207005 +:10270B00726573732E286C696E653A2564290D0A00 +:10271B00004B6579206C696674286C696E653A2587 +:10272B0064292E0D0A00426F6F7374204F70656E13 +:10273B00204B65792E286C696E653A2564290D0A44 +:10274B00006C6F6E672032732070726573730D0AA5 +:10275B000073686F72742070726573730D0A004B8F +:10276B006579205061697220545820564F52286C5D +:10277B00696E653A2564292E0D0A004B6579205048 +:10278B006169722054696D654F7574286C696E654B +:10279B003A2564292E0D0A004B6579205061697228 +:1027AB002047657420564F52286C696E653A256434 +:1027BB00292E0D0A004B65792050616972204765FF +:1027CB007420564F4C286C696E653A2564292E0D82 +:1027DB000A004B6579205061697220545820564F7E +:1027EB004C286C696E653A2564292E0D0A004B65E1 +:1027FB0079205061697220436E743A25642E286CDF +:0A280B00696E653A2564290D0A0084 +:103443007BFF90009FE4F0A3227BFF90009F740119 +:03345300F0A322C1 +:101B570090010AE030E4449000F8E475F0011214B3 +:101B67004AC39000F9E094409000F8E094014011D6 +:101B7700D2367A2679FB1234437470F0120F5880EC +:101B870014C39000F9E094509000F8E094004005E9 +:101B9700203502D235D232C233804D303243D24360 +:101BA700E47817F6C232D2339000FAF09000F8E0EA +:101BB700FEA3E0FFD39414EE94005008D231D23440 +:101BC700D230800EC3EF94C8EE9400500530350232 +:101BD700D237C2357A27791C12344374A6F0120F14 +:101BE70058E49000F8F0A3F0303377303E74303784 +:101BF7002D200E08121D8874B9021D3F121DAE500C +:101C070003021D74C23778177602E49000F7F0904C +:101C17000068F0A3F07BFF7A27794C120F58303613 +:101C27002F200E08121D8874E2021D3F121DAE50B0 +:101C370003021D74C236E49000FBF0781776037B2D +:101C4700FF7A2679FB90009FF0A374F7F0120F58E4 +:101C570030340BC2347BFF7A27795C120F58C233BA +:101C6700C20E90010FE064016003021D877817E63A +:101C770064026003021D489000F7E0C39401501608 +:101C87007F02121DA17BFF7A27796A90009F04F0DB +:101C9700A37421021D129000F6E0D394054010E4CE +:101CA700121DBB7A27798612344C7437021D3F9078 +:101CB7000068E0B4011D7D227F031225DA900068D9 +:101CC7007402F07BFF7A2779A390009F14F0A37426 +:101CD7004D8038900068E064027034A3E0601A7F9A +:101CE70003121DA19000F7F09000F6121DBB7A2792 +:101CF70079C012344C746E803F7D227F021225DA40 +:101D07007BFF7A2779DD12344E747EF0120F5890DC +:101D170000F7E0D3941440249000F6E004F0E4A325 +:101D2700F07BFF7A2779F99000F6E0FF123445EF50 +:101D3700F0A37401F0A3748CF0020F589000F780A1 +:101D47002C7817E6640370389000FBE0FFC39464B7 +:101D5700501FEF540770047D22800A9000FBE05467 +:101D67000370077D117F041225DA9000FBE004F071 +:101D770022E47817F6D20F9000FBF07F04122B6055 +:101D8700227F3C12338F7F0112320FD20E7BFF7AF4 +:101D970027793190009FE4F0A3227D111225DAE420 +:101DA700900068F0A3F0227F03122B609000FAE006 +:101DB700D3941422F07817F6D20F7F04122B6022E7 +:102BDA00900099E0FF25E02479F582E43400F5833A +:102BEA0022900099E0FF25E02481F582E43400F583 +:102BFA0083E0FCA3E0FDEF25E02491F582E43400B4 +:102C0A00F5832274712FF582E43400F58322E4F00F +:102C1A00A3F0EF25E02489F582E43400F5832290BD +:102C2A000099E0FF2475F582E43400F58322E0FE82 +:102C3A00A3E0C39DEE9C2225E02481F582E43400C2 +:032C4A00F58322ED +:1030DE0075FE0B75FF0F75FE1375FF0F75FE0C75E4 +:1030EE00FF55E490006FF090006EF0900070F0903D +:0C30FE00006DF0C290C291C293C29222F9 +:10335B00EF14600D14600D14600D2403700BD290EC +:0A336B0022D29122D29222D29322A4 +:05325300900099E0FF6E +:10325800EF14600D14600D14600D2403700BC29000 +:0A32680022C29122C29222C29322D8 +:10302700E4FF122C0DE4F074752F122C30E4F0EF4E +:10303700122BDFE4F0A3F0EF122C41122C18E4F06E +:0E304700A3F0122C00E4F0A3F00FEFB404D4B9 +:013055002258 +:102F0100AC0774712C122C10EDF0EAC313FEEB1315 +:102F1100FFEC122BDFEEF0A3EFF0AF03EC122C412C +:102F2100EAF0A3EFF090009EE0FEA3E0FFEC122C8C +:0F2F31001DEEF0A3EFF0EC122C01E4F0A3F02260 +:10327200122C0DEDF074752F122C30EBF0EF122B97 +:0F328200DFE4F0A37469F0122C00E4F0A3F02253 +:101DC700E4900099F0F0900099E0FFC39404400379 +:101DD700021FBC122C0DE0601F24FE6021146078E6 +:101DE700147003021E9024036003021F6B90009976 +:101DF700E0FF12335B021F6B123253021F6B122B71 +:101E0700DA122BFB122C38500512335B8003123287 +:101E170053122BEB122C385003021F6B900099E0E2 +:101E2700122C01122C18E0FEA3E0D39400EE9400CC +:101E3700400E900099E0122C1D74FFF5F012144A21 +:101E4700900099E0FF122C1DE0FCA3E04C60030218 +:101E57001F6B74712F021EA1122BDA122BFBE0FEEF +:101E6700A3E0D39DEE9C500512335B8003123253DF +:101E7700122BEB122C385003021F6B900099E012C3 +:101E87002C01E4F0A3F0021F6B122C29E07013124F +:101E970033D9C246900099E02471122C10E4F00265 +:101EA7001F6B122C29E0FE6402702E20460CD246CE +:101EB700EF122BDFE4F0A37469F0122BDAE475F06C +:101EC7000112144AEF122BDFE0FCA3E0C394FEECEF +:101ED70094005003021F628031EE64017037204680 +:101EE7000FD246900099E0122BDFE4F0A374FEF0C6 +:101EF700122BDA74FFF5F012144AEF122BDFE0FE13 +:101F0700A3E0D39469EE94005051900099E0122C0D +:101F17002EE4F08046122C29E06403703EEF122B6A +:101F2700DFE0FEA3E0FFC394FEEE94004004D24638 +:101F3700800BD3EF946AEE94005002C2469000994A +:101F4700E025E02479304609122BE374FFF5F08091 +:101F570007122BE3E475F00112144A122BDAA3E0FF +:101F6700FD122DF1900099E0FF700A122C0DE09000 +:101F7700006FF08037900099E0B4010C2471122CA7 +:101F870010E090006EF08024900099E0B4020C24D9 +:101F970071122C10E0900070F08011900099E0B45D +:101FA700030A2471122C10E090006DF0900099E064 +:101FB70004F0021DCDE4900099F0900099E0FFC372 +:101FC70094045012122C00E475F00112144A900088 +:061FD70099E004F080E433 +:011FDD0022E1 +:10337500D2AC759A03D2BCD2BDD2A9D2AB75FE31FF +:0A33850075FF8175FE3043FF8022C2 +:10329100C2ACE4F59AC2BCC2BDC2A9C2AB75FE31D3 +:0F32A10053FF7E75FE3053FF7FFD7F3102310AF0 +:10305600304421302627C226900102E004F0E0C366 +:1030660094054019E4A3F07DAA7F4F12310AE4903B +:0E3076000102F02212329143870212337522BA +:10341C00780EE6D394015006201003304304C243C7 +:04342C00C322D322C2 +:102F4000123325123468123495E4F5861230B1122A +:102F500032EC7D087F761234E4D2A8D2AF1234303E +:102F60007D697F031234061230DE1230271234A33B +:0D2F7000900106740FF09000FF7401F02234 +:030003000234F2D2 +:0634F200D24375E20F3227 +:0B34BE00E0FF04F074292FF8A699220B +:1033250075FE0443FF0CD2DF43878075BA0375AA87 +:0B333500DC759852D299D298D2AC22DD +:062E37009000BD121559C8 +:102E3D00E49000C0F075FE0443FF0C75FE0353FFD4 +:102E4D00F3F09000C0E0C39FE49E501C2040FDD2E3 +:102E5D00409000BDE475F001121542121348F5992A +:0E2E6D009000C0E004F080DA75FE0453FFF31D +:012E7B002234 +:030023000229C1EE +:1029C100C0E0C083C082C0D075D000C000C005C0C7 +:1029D10006C007309904C299C240309867C298D2A4 +:1029E10043900111E014601914602D24027055E523 +:1029F10099900111B455087401F0A3E4F0800E80A0 +:102A010011E599900111B4AA097402F0A31234BE20 +:102A11008032E4F0A3F0802C9001121234BE782DA4 +:102A2100E62406FFE433FEE0FDC39FEE6480F87404 +:102A310080985005ED9420400B900112E4F0900134 +:102A410011F0D242D007D006D005D000D0D0D0822C +:052A5100D083D0E0324B +:0E3487009000C4EFF01234D49000C4E0FF2295 +:1034680075F10A759F03759EFD759692759A0222ED +:0834D4002041FDD2418F972237 +:03008B000233C27B +:1033C200C0E0E59630E1055396FDC241E59630E056 +:0733D200035396FED0E03228 +:1024AA00506F776572204F6E2053746174652148AE +:1024BA00616C6C28307825782920286C696E653A19 +:1024CA002564290D0A004177616B65205374617494 +:1024DA006520286C696E653A2564290D0A004E6FDD +:1024EA00726D616C20537461746520286C696E6525 +:1024FA003A2564290D0A00536C656570205374618E +:10250A00746520286C696E653A2564290D0A0053A2 +:10251A005441303A307825782C535441313A307846 +:10252A0025782C535441323A307825782C436869FF +:10253A00705F5354413A307825782C564F585F5380 +:10254A0054413A307825782E4465635F536C65654B +:10255A00703A25640D0A00566E74633A25642C4954 +:10256A00766F6C3A25642C566261743A25642C564F +:10257A00696E3A25642C56706D69643A25642C5646 +:10258A006F723A25642C566F6C3A25642C56646433 +:10259A003A25642C49766F723A25642E0D0A004456 +:1025AA0065636E745F536C65657044656C61792010 +:1025BA0052656C6F61642E0D0A00456E7465722057 +:1025CA005374616E646279204D6F6465210D0A004F +:062FF2004300FF0402028F +:102FBA00E6FF08A3E6CFF0A3EFF0227BFFE0900044 +:102FCA009FFFE4F0A3EFF02290009EE4F0A37403C5 +:102FDA00F07B647A007D02227BFF90009FE4F0A3DD +:082FEA0022FFE4F0A3EFF02246 +:1033F00090010DE0FF04F012281590010DE0C39438 +:06340000084002E4F02286 +:1032B000122D5D121B57122D11302211C222122A1B +:0E32C00056122CB6122AE31218861215882216 +:090082007B017A017907020026D6 +:10219A00E4900099F09000FFE0FFA3E0FE6F606C0E +:1021AA00A3EEF09000FFE0A3F024FE602F14603C41 +:1021BA0014604A24036003022336122FD2E4FF126A +:1021CA002F01122FD27F01122F017A2479AA9001AE +:1021DA000F122FC5A3E4F0A374BB802C7F01123227 +:1021EA00317A2479D0122FE274C7801C90010674C8 +:1021FA000FF07A2479E8122FE274D4800B7BFF7AED +:10220A00257901122FE474DFF0022301900100E026 +:10221A0024FE603914603D147003022319240360FC +:10222A00030223369000FCE004F0E0C39408500354 +:10223A000223369000FF7402F0E49000FCF0781458 +:10224A00E660030223369000FF7404F0229000FF38 +:10225A007403F022202603022336C2267A2579192E +:10226A00900107122FC5900108E09000A1122FCB10 +:10227A00900109E09000A3122FEB90010AE0900070 +:10228A00A5122FEB90010BE0FF9000A7E4F0A3EF5B +:10229A00F0900106E0FF9000A9E4F0A3EFF0120F1E +:1022AA00587BFF7A2579617855E6FF0890009F12DE +:1022BA002FBE7849122FBA785B122FBA784F122F95 +:1022CA00BA7859122FBA7853122FBA7851122FBAF4 +:1022DA00784B122FBA784D122FBA120F5890010666 +:1022EA00E0D394004014E014F0304340C243740F2A +:1022FA00F07BFF7A2579A9020F587BFF7A2579C4EA +:10230A00120F589000FF7404F0E4900102F02212B8 +:10231A00341C50127F04122B60E4FF12320FE4FFC8 +:0C232A001232310230569000FF7402F0B5 +:012336002284 +:102EBF00302536C2259000FDE0FF04F0EF146012BC +:102ECF001460141460161460182404701C1233F06C +:102EDF0080171200828012122DA8800D1232B0803E +:102EEF000812219AE49000FDF0302705C227121D29 +:022EFF00C722E8 +:10008E00426F6F7374204F70656E2E286C696E65AB +:10009E003A2564290D0A00426F7820436C6F736510 +:1000AE002E286C696E653A2564290D0A00426F7818 +:1000BE00204F70656E2E286C696E653A2564290D89 +:1000CE000A004F70656E2F436C6F736520426F7818 +:1000DE002C45617270686F6E657320496E20426F99 +:1000EE0078284E756D3A25642928566F78537461B9 +:1000FE003A30782578292E0D0A004F70656E204211 +:10010E006F7820434D44205458204F7665722E0D43 +:10011E000A004F70656E20426F7820416E64204554 +:10012E00617270686F6E6520476574496E284E75F2 +:10013E006D3A25642928566F785374613A307825C4 +:10014E0078292E0D0A00436C6F736520426F78205C +:10015E00416E6420466F72636520566F6C746167E2 +:10016E00652055702E0D0A2000564F5820566F757B +:10017E007420355628564F585F5354413A307825DF +:10018E00782C6C696E653A2564292E0D0A00564F3F +:10019E0058204348472046756C6C2E0D0A00564F6A +:1001AE00582047657420496E746F20536C656570D6 +:1001BE002E0D0A00466F6C6C6F772043484720491E +:1001CE006E697453746120536574204D61782056A6 +:1001DE00706D69642E28566F785F7374613A30784B +:1001EE00257829286C696E653A2564290D0A004622 +:1001FE006F6C6C6F772043484720496E6974537457 +:10020E00612E28566F785F7374613A30782578299D +:10021E00286C696E653A2564290D0A00466F6C6C70 +:10022E006F772043484720537461312C4E6F204521 +:10023E00617250686F6E6520496E20426F782E286D +:10024E006C696E653A2564290D0A00466F6C6C6FF9 +:10025E00772043484720537461312C564F52204328 +:10026E006867696E672849766F723A25646D412911 +:10027E002E286C696E653A2564290D0A00466F6C4E +:10028E006C6F772043484720537461312C564F4C86 +:10029E0020436867696E672849766F6C3A25646DEE +:1002AE0041292E286C696E653A2564290D0A00468F +:1002BE006F6C6C6F772043484720537461322C4724 +:1002CE0065742049564F523A25646D412E286C694B +:1002DE006E653A2564290D0A00466F6C6C6F7720A7 +:1002EE0043484720537461322C4765742049564F5A +:1002FE004C3A25646D412E286C696E653A25642949 +:10030E000D0A00466F6C6C6F77204348472053747C +:10031E0061332C564F5820436867205265496E69E9 +:10032E00742E286C696E653A2564290D0A00466F95 +:10033E006C6C6F77204348472053746133284356C3 +:10034E00292C564F522056706D69642041646453B7 +:10035E0074612849766F723A25646D41292E286C96 +:10036E00696E653A2564290D0A00466F6C6C6F77CD +:10037E00204348472053746133284356292C564F47 +:10038E00522056706D69642053756253746128490A +:10039E00766F723A25646D41292E286C696E653A26 +:1003AE002564290D0A00466F6C6C6F772043484711 +:1003BE002053746133284343292C564F52205670D4 +:1003CE006D6964205375625374612849766F723A71 +:1003DE0025646D41292E286C696E653A2564290DB8 +:1003EE000A00466F6C6C6F77204348472053746148 +:1003FE0033284343292C564F522056706D69642082 +:10040E004164645374612849766F723A25646D4174 +:10041E00292E286C696E653A2564290D0A00466FEF +:10042E006C6C6F77204348472053746133284356D2 +:10043E00292C564F4C2056706D69642041646453CC +:10044E0074612849766F6C3A25646D41292E286CAB +:10045E00696E653A2564290D0A00466F6C6C6F77DC +:10046E00204348472053746133284356292C564F56 +:10047E004C2056706D69642053756253746128491F +:10048E00766F6C3A25646D41292E286C696E653A3B +:10049E002564290D0A00466F6C6C6F772043484720 +:1004AE002053746133284343292C564F4C205670E9 +:1004BE006D6964205375625374612849766F6C3A86 +:1004CE0025646D41292E286C696E653A2564290DC7 +:1004DE000A00466F6C6C6F77204348472053746157 +:1004EE0033284343292C564F4C2056706D69642097 +:1004FE004164645374612849766F6C3A25646D418A +:10050E00292E286C696E653A2564290D0A00466FFE +:10051E006C6C6F772043484720537461342C564FD0 +:10052E00782056706D696420416464537461285656 +:10053E006F75743A307825782C49766F6C3A25644D +:10054E006D412C49766F723A25646D4129286C698C +:10055E006E653A2564292E0D0A00466F6C6C6F7716 +:10056E002043484720537461342C564F78204368FB +:10057E00696E6728566F75743A307825782C4976EF +:10058E006F6C3A25646D412C49766F723A25646D15 +:10059E004129286C696E653A2564292E0D0A00469C +:1005AE006F6C6C6F772043484720537461342C5620 +:1005BE004F522056706D69642041646453746128F3 +:1005CE00566F75743A307825782C49766F723A25C5 +:1005DE00646D4129286C696E653A2564292E0D0AD1 +:1005EE0000466F6C6C6F772043484720537461341C +:1005FE002C564F52204368696E6728566F75743AB1 +:10060E00307825782C49766F723A25646D41292809 +:10061E006C696E653A2564292E0D0A00466F6C6C66 +:10062E006F772043484720537461342C564F4C202B +:10063E0056706D69642041646453746128566F75F9 +:10064E00743A307825782C49766F6C3A25646D4172 +:10065E0029286C696E653A2564292E0D0A00466FAD +:10066E006C6C6F772043484720537461342C564F7F +:10067E004C204368696E6728566F75743A3078253A +:10068E00782C49766F6C3A25646D4129286C696E19 +:10069E00653A2564292E0D0A00466F6C6C6F772023 +:1006AE00434847205375625374612C564F4C2F5656 +:1006BE004F52286C696E653A2564292E0D0A004644 +:1006CE006F6C6C6F7720434847205375625374618B +:1006DE002C564F52286C696E653A2564292E0D0AE8 +:1006EE0000466F6C6C6F77204348472053756253FA +:1006FE0074612C564F4C286C696E653A2564292E10 +:10070E000D0A00466F6C6C6F772043484720537577 +:10071E00625374612C285354413A307825782C5604 +:10072E00706D69643A3078257829286C696E653A5F +:10073E002564290D0A00466F6C6C6F77204348477D +:10074E00204164645374612C285354413A30782507 +:10075E00782C56706D69643A3078257829286C6942 +:10076E006E653A2564290D0A005258305F4275664F +:10077E006665725B305D3A307825782C5258305F62 +:10078E004275666665725B315D3A307825782C521B +:10079E0058305F4275666665725B325D3A30782519 +:1007AE00782C5258305F4275666665725B335D3ADF +:1007BE00307825782C5258305F4275666665725BCC +:1007CE00345D3A307825782C5258305F4275666623 +:1007DE0065725B355D3A307825782C5258305F4221 +:1007EE0075666665725B365D3A307825782C5258A0 +:1007FE00305F4275666665725B375D3A3078257894 +:10080E002C6C696E653A25640D0A0000000000002C +:10081E0000000000000000000000000000000000CA +:0B082E000000000000000000000000BF +:101FDE0090002674011213D3740290006BF09000DF +:101FEE0099021539900050121460FFE5F090009F91 +:101FFE00F0EFA3F0A37404F0A322E6FFEEF0A3EF3C +:10200E00F008E6FFA3EEF0A3EFF008E6FFA3EEF074 +:10201E00A3EFF008E6FFA3EEF0A3EFF02290001A74 +:10202E0012136190009FFFE4F0A3EFF0229000489E +:10203E00121460900050FFAEF00214607849E6FF73 +:10204E0008E6A3CFF0A3EFF0784DE6FF08E6A3CFA6 +:10205E00229000261213D390001A0213617BFF9078 +:10206E00009F7405F0A32290002E8FF0021498901A +:10207E000026121460FFAEF090002E021460FF9046 +:10208E0000A1E4F0A3EFF0A37405F0A3227BFF9070 +:10209E00009F7402F0A32290010BE0540CFBE4FAB3 +:1020AE00F9F8900000E0FFE4FCFDFEC3021514EE0B +:1020BE008FF090005002149890004C121460D3FFD1 +:1020CE00ED9FEC95F022900028021361900034E40D +:1020DE001213D3E49000230213D390001AEF1213BD +:1020EE00D390006B229000390213617BFF90009F0A +:1020FE007404F022E6FC08E6FD25E0FFEC338FF0D9 +:10210E001214987BFF2290010BE0540C22E49000F5 +:10211E0007F0A322EE8FF01214987D051213F5EF3F +:10212E0078022274019000370213D3C3FDACF09FE6 +:10213E00EC9E22E4FCFDFEFAF9F8C3021514784D6C +:10214E00E6FE08E6FF2290010BE05410FFE4FCFDD2 +:10215E00EF2274011213D37BFF22E0FF90009FE465 +:10216E00F0A32290003FF0A3F090006BF0227BFFD3 +:10217E0090010BE02290010BE05420FFE4FC229032 +:0C218E000007E09400229000340213616E +:052B60009000BDEFF044 +:102B6500E4A3F0A3F07F27122F7D9000BEEFF07F46 +:102B750037122F7D9000BFEFF09000BDE024FD607F +:102B85001B14602424FE6028240570359000BFE0E6 +:102B95004494F09000BEE04498F080259000BEE09B +:102BA5004406F054E7F080199000BFE054FD800919 +:102BB5009000BFE04402F054FEF09000BEE054E106 +:102BC500F09000BEE0FD7F2712310A9000BFE0FDC6 +:052BD5007F3702310A08 +:10158800900109E054186003D20D22C20D203E03D9 +:1015980002185030456F200E1A1218797BFF7A0016 +:1015A800798E90009F7401F0A374D7F0120F587FC2 +:1015B800038065E4900003F0900001F0A3F0C200FE +:1015C800C201D20B90010FE07022C22FD202D203C7 +:1015D800C205C208C204C209C20AD210C2471221F7 +:1015E800717A0079A512209B74088011C202C20387 +:1015F800D205C2067A0079BB12209B7415F0120F2F +:1016080058C20EC245900001E0C39405500302176A +:10161800DD300B07C20B7F04022B6020003BD20099 +:10162800122114FF60147B0C1221419000437005B5 +:101638007402F0800A7401F08005E4900043F07BA6 +:10164800FF7A0079D0900043E012203190010BE03E +:101658009000A1122034120F582005030216FF90A3 +:101668000002E0C39405500A7F06122B6090000226 +:101678008027200144900003E0FFD39414501FEF0B +:10168800540370047D118009900003E020E0077D79 +:10169800227F091225DA900003E004F080597F04C4 +:1016A800122B60E4900003F0D201D20FC2107BFF2E +:1016B8007A017908120F58803E7817E67039300F92 +:1016C80004C20F802B1220A5602D90010BE0FF545F +:1016D8000C6004D22FD2307BFF7A0179209000432E +:1016E800E0FD12216AEDF0A3E4F0A3EFF0120F5829 +:1016F800122114900000F020020302184D30473BDD +:10170800200E16121879D210E4122171900001F0FF +:10171800C208D20BC200D204227F03122B607BFFC7 +:101728007A017954120F58C20ED203900001E0D307 +:10173800940350030217DDC247805020044D9000E7 +:1017480002E0FFD39414501DEF540370047D118000 +:1017580009900002E020E0077D227F081225DA9038 +:1017680000020217DD900003E0FFD39414501CEF31 +:10177800540370047D118009900003E020E0077D88 +:10178800227F0A1225DA900003804A30031F7F0364 +:10179800122B607A01797712217C122031A374030D +:1017A800F0A37438F0120F58C20302184D200857DE +:1017B80090010BE05430FF7B30122141600E122162 +:1017C80014FFE4FCFDFEEF600330382A900001E0CE +:1017D800D394285004E004F0227BFF7A01799C120C +:1017E8000F58D208E4900004F0900001F0C2097F7D +:1017F80004122B60804F900040E070497B017A0012 +:101808007923120839803E900004E0FFD3941450E5 +:101818001FEF540370047D118009900004E020E05C +:10182800077D227F051225DA900004E004F0801578 +:10183800200912D2097F04122B60C2107BFF7A01A3 +:1018480079AC120F58C20722200711D2077F041261 +:101858002B60C210122114900000F0221220A56003 +:101868000F122114FF6004D22FD230900000EFF045 +:0E187800227F3C12338F7F0112320FD20E22DC +:0608390090009912155910 +:10083F0090006BE014700302091E1470030209E7A5 +:10084F00147003020A51147003020C0C2404600389 +:10085F00020D52121FEC90001D1213616003020D66 +:10086F005290006CE0D3940A5035E004F090001AD7 +:10087F00743C1213D3300C03020D52121FEC1220D2 +:10088F0065FF12338F7A0179C212217C122031A3B6 +:10089F007403F0A374D8F0120F58D20C020D52E467 +:1008AF0090006CF0C20C121FECE412213390002662 +:1008BF00E41213D31220DA900032E41213D3900013 +:1008CF0021E41213D3900039E41213D3900028E4DB +:1008DF001213D3E4F5F01220C090002EE4F5F012BD +:1008EF001498900019E41213D390001B743C12203B +:1008FF00EC7401F012211BF07BFF7A0179FD90015E +:10090F000BE0122031A37403F0A374FF020AA59029 +:10091F00010BE0FB5420FFE4FCFDFEEF6023EB54E2 +:10092F0010FF601D121FEC90001D74011213D3E411 +:10093F0090006BF07A02792A1220F9A3740E020A42 +:10094F00A5122183EF703B12214C121FEC90004433 +:10095F00122122C333CE33CED8F9FF121FEC9000F1 +:10096F0048EE8FF0121498784D90004C1221027AB5 +:10097F0002795990009FECF0ED122000741CF012D8 +:10098F000F5812215470407849E6FE08E6FF121FF7 +:10099F00EC900022122122C333CE33CED8F9FF12AE +:1009AF001FEC900026EE8FF0121498784990002AD1 +:1009BF001221027A02798B90009FECF0A3ED1220A6 +:1009CF00017429F0120F58121FEC90001C740112C1 +:1009DF0020EC7402F0020D52D3900008E09405123F +:1009EF00218D5003020A5D12211BF0122183FDEFAE +:1009FF00701D12214C121FEC1220BD9000391221D4 +:100A0F00607A0279BDEE121FFB7445F0120F581277 +:100A1F00215470257849E6FE08E6FF121FECEE120E +:100A2F0020759000281221607A0279E790009FEEDE +:100A3F00121FFE744FF0120F5890006B7403F002E8 +:100A4F000D52D3900008E0940212218D500AE475E4 +:100A5F00F00112144A020D5212211B121FEB9000CB +:100A6F004C12203ED39FE5F09E5016121FEC9000C3 +:100A7F002A12146090002E122044D39FE5F09E405E +:100A8F0019E4121FE890001CE41213D37A037911B2 +:100A9F001220F9A37469F0020D4F121FEC1220F30C +:100AAF0064016003020B56900050121460D394142B +:100ABF00E5F09400504D90010BE030E529900037A0 +:100ACF007401122062C3943C400A121FEC9000394B +:100ADF00E41213D3121FEC121FF2747BF07BFF7A18 +:100AEF0003793C020B53121FEC9000347401121364 +:100AFF00D3121FEC121FF27482F07BFF7A03797806 +:100B0F00020B53121FEC12203BD39FE5F09E900077 +:100B1F0099401C12153990003474011213D3121F0F +:100B2F00EC121FF2748CF07BFF7A0379B4801512EC +:100B3F001539122131121FEC121FF27493F07BFF43 +:100B4F007A0379F0120F58121FEC1220D46401604F +:100B5F0003020D52122086D39414E5F09400504DE9 +:100B6F0090010BE030E429740112205FC3943C40E4 +:100B7F000A121FEC900028E41213D3121FEC9000FE +:100B8F002E121FF574A6F07BFF7A04792C020D4FFD +:100B9F00121FEC74011220E2121FEC90002E121F94 +:100BAF00F574ADF07BFF7A047968020D4F121FECDC +:100BBF0012207DD39FE5F09E9000994020121539A9 +:100BCF0090002374011213D3121FEC90002E121FEA +:100BDF00F574B7F07BFF7A0479A4020D4F12153923 +:100BEF0090002674011213D3121FEC90002E121FC7 +:100BFF00F574BEF07BFF7A0479E0020D4FD39000BD +:100C0F0008E0941412218D501DE475F00112144A5E +:100C1F0012214C121FEC1220BD7849E6FF08E6CFD7 +:100C2F00122075020D5212211B121FEB1220F364BA +:100C3F000170631220D46401705C12203B122139C1 +:100C4F004008121FEC1220C64034121FEC12207DF8 +:100C5F00122139400B121FEC90002A1220C9401E9E +:100C6F00121FEC122131121FDE12202B12204A12FA +:100C7F001FFE74E5F07BFF7A05791C020D4F121FE2 +:100C8F00EC12202B12204A121FFE74ECF07BFF7A1D +:100C9F00057968020D4F121FEC1220F364017048A2 +:100CAF0012203B1221394008121FEC1220C6401CA3 +:100CBF00121FEC900037121FE112202B1220561238 +:100CCF001FFE74FFF0FB7A0579AD8019121FEC122D +:100CDF00202B122056F0A3EFF07405A3F0A3F07BA6 +:100CEF00FF7A0579EF120F58121FEC1220D464010E +:100CFF00705190002A122080D312213A500F121FE8 +:100D0F00EC900026121460C31220CD501C121FEC61 +:100D1F00121FDE12202B78491220581220917413C3 +:100D2F00F07BFF7A06792A8017121FEC12202B789E +:100D3F00491220581220917419F07BFF7A06796CB2 +:100D4F00120F58121FEC1220F3FF6401600A1220D9 +:100D5F00D464016003020ED7122194FE6401600D6A +:100D6F0090002312136164016003020E63EF6401AC +:100D7F0070251220D4B4011FEEB4011B122194B4BC +:100D8F00011590001474011213D37A0679A712205B +:100D9F006B7431F0120F58121FEC1220F3640170B4 +:100DAF001E1220D470191221946401703C9000140B +:100DBF00041213D37A0679CD12206B743B8026125E +:100DCF001FEC1220F370221220D4B4011C900023C8 +:100DDF00121361B401139000141221607A0679EF97 +:100DEF0012206D7446F0120F58121FEC1220DA9079 +:100DFF00001412136164016003020EEC121FEC1257 +:100E0F002065D39400400890001A74FE12138E9040 +:100E1F000019121361FF122065D39F500B121FECA4 +:100E2F001220E87404F0800690006B7402F0122117 +:100E3F001B121FEB900014E41220EC122168EF122A +:100E4F001FEB12206512208C7465F07BFF7A0779F7 +:100E5F0011020ECA121FEC90003712136164016069 +:100E6F000A90002612136164017072900037E41229 +:100E7F0013D3E412205FC3943C500B121FEC90006D +:100E8F001A740212138E7404121FE890001B1213AF +:100E9F0061FF122065C39F4009121FEC1220E874F6 +:100EAF0001F090006B122168EF121FEB12206512F8 +:100EBF00208C7482F07BFF7A077944120F58121F2F +:100ECF00EC122065FF02338F90006BE0D394024049 +:0D0EDF000CE4121FEB90001D74011213D3E0 +:010EEC0022E3 +:0B2E7C009000BD1215599000C0EDF051 +:102E8700E4FE9000C0E0FD14F0ED60299000BDE481 +:102E970075F0011215421213486EFEE4FFEFC3945A +:102EA7000850DFEE30E007C313648CFE8004EEC3E6 +:072EB70013FE0F80E8AF06D7 +:012EBE0022F1 +:0825DA00900099EFF0A3EDF071 +:1025E200E4A3F0A3F0789D7C007D017BFF7A08795B +:1025F20019FE7F2012132290009D7455F0A374AA35 +:10260200F0A374FFF090009AE09000A2F09000997D +:10261200E09000A0F0121562263601266D022652C5 +:1026220003266D04266D05266D0826360926360A10 +:10263200000026739000A17403F0780EE65402C4E1 +:10264200333354C07814469000A3F0E4A3F0802101 +:10265200E4FF74292FF8E6FE749D2FF582E434001E +:10266200F583EEF00FEFB420E980069000A174012B +:10267200F09000A1E02405FFE43390009BF0A3EF6B +:10268200F07B017A00799DFD122E7C90009BE0FC8C +:10269200A3E0249DF58274003CF583EFF07F0112E4 +:1026A2002B6090009AE0FFB4220B75FE0E53FFF0F0 +:1026B20043FF08800DEFB4110975FE0E53FFF0437E +:1026C200FF0190009CE02402FF90009BE03400FE9A +:1026D2007B017A00799D122E3790009AE0FFB42296 +:1026E2000A75FE0353FFF343FF0822EFB411097585 +:0826F200FE0353FFF343FF0454 +:0126FA0022BD +:1032CE00E490009AF0EF24FD60028011782EE6B4AF +:0D32DE00110590006880039000697401F0F4 +:0132EB0022C0 +:102D1100E4FE900099F0304242C2427BFF7A07798B +:102D210077782990009F12200808A3122008A37425 +:102D310008F0A374B1F0120F587B007A007929785A +:102D41002DE62405FD122E7C7E00782DE6242EF83A +:0B2D5100E6B50707782CE6FF1232CE33 +:012D5C002254 +:102FF800602A00C50BB80BEA0C1C0C800CB20CE460 +:103008000D160D480D7A0DAC0E100E420E740EA65C +:0E3018000ED80F0A0F3C0F870FD2101D106844 +:102AE300E4FFEF25E024C5F582E43400F583E0FC40 +:102AF300A3E0D3785C96EC189650050FEFB415E27B +:102B03007814E6FEEFD39E4004180680037813166C +:102B130090010AE030E3047814A6077813E6FED3A5 +:102B230094C85006EEC3940A50077814A607187683 +:102B3300697814E6FFD394005002D23CEFD394019A +:102B43005002D238EFD394055002D23AEFD3940A0D +:0C2B53005002D239EFD3940F5002D23B55 +:012B5F002253 +:102C4D009000F4E06062E4F0D2249000F2E004F031 +:102C5D00E0C394054004E4F0D2259000F5E004F0C3 +:102C6D00E0C3940A4004E4F0D2279000EFE475F03D +:102C7D000112144AC39000F0E094649000EFE094C8 +:102C8D00004006E4F0A3F0D2229000F1E004F0E061 +:102C9D00C394FA4013E4F0D2239000F3E004F0E083 +:092CAD0094044004E4F0D2262254 +:03000B000231625D +:10316200C0E0C083C082C0D074FC258CF58C74662C +:10317200258AF58A9000F47401F0D0D0D082D083F1 +:03318200D0E03268 +:0E349500758901758CFC758A66D2A9D28C22CD +:0D34B10075FE0FEF25E0FE7403A80608224B +:1033D9001234B18002C333D8FCF452FFEFB40406AF +:0733E90075FE0FE4F5FF2261 +:1034060075FE11EF5407F5FF75FE12AF058FFF75B8 +:06341600FE1075FF01220B +:102DF1001234B18002C333D8FCF452FF7401A80627 +:102E0100088002C333D8FC42FF75FE0B7401A8078A +:102E1100088002C333D8FC42FFEF70038DCE22EF4E +:102E2100B401038DCF22EFB402038DDE22EFB40390 +:062E310004AF058FDF2253 +:033FFD00010102BD +:1030B100D28075FE0443FF0175FE0343FF0175FED7 +:1030C1000243FF01D28175FE0443FF0275FE0343F3 +:0D30D100FF0275FE0243FF02781576012212 +:0C345600C280123462D281123462D28033 +:05346200E4FF0FDFFE96 +:013467002242 +:10334000D281D2801234622081037F0022C2811296 +:0B33500034623081037F00227F0122E5 +:0F347800C280C28112345DD2811234620234628A +:0834DC00123456C28002346272 +:0B34C900123456123462C280023462DA +:0231CB00AE074D +:1031CD007D08AF051DEF6015C280EE30E704D2819A +:0F31DD008002C281EE25E0FE12345D80E5C280E3 +:0131EC0022C0 +:103185007E08E4FDD281AF061EEF6012ED25E0FD5D +:10319500C28012345D3081EEED4401FD80E8C280CD +:0231A500AF0574 +:0131A7002205 +:0E34A3007D087F3512310A7D0A7F760234E4FF +:100026009000991215597F1012006EEF1213C17FBE +:100036001112006E900001EF1213D37F1212007896 +:10004600900002EF1213D37F13120078900003EF93 +:100056001213D37F14122F7D900099121539900038 +:1000660004EF1213D37F0022122F7D9000991215F0 +:0C0076003922122F7D90009912153922BA +:0531ED00900099EFF0D5 +:1031F200E47F20122F7D900099E06006EF4401FFEA +:0D3202008004EF54FEFFAD077F2002310A6B +:05320F0090009AEFF0B1 +:10321400E47F27122F7D90009AE06006EF4401FFBF +:0D3224008004EF54FEFFAD077F2702310A42 +:05338F0090009CEFF02E +:10339400E47F25122F7DEF54C0FF90009CE04FFD89 +:0533A4007F2502310A43 +:0532310090009AEFF08F +:10323600E47F20122F7D90009AE06006EF54FBFF9A +:0D3246008004EF4404FFAD077F2002310A31 +:0734E4008FFEAF058FFF22F0 +:0634EB008FFEAEFFAF06EC +:0134F10022B8 +:10310A009000C0EFF0A3EDF01233407F0C1231CBE8 +:10311A001234C99000C0E0FF1231CB1234C99000BA +:0C312A00C1E0FF1231CB1234C90234782E +:052F7D009000C0EFF020 +:102F8200E4A3F01233407F0C1231CB1234C990000B +:102F9200C0E0FF1231CB1234C91233407F0D12311F +:102FA200CB1234C91231859000C1EFF01234DC1219 +:072FB20034789000C1E0FF3C +:012FB90022F5 +:1031360090009EE4F0A3740AF07B147A007D0222CC +:1031460090006FF090006EF0900070F090006DF0BF +:0C31560022F0E490009EF0A3F0FBFA22AF +:1031A800E4FB7D04FF123272E4FB7D047F011232DE +:1031B80072E4FB7D047F02123272E4FB7D047F031C +:0331C8000232725E +:1018860030301BC230E4900113F07813F6121AF3CD +:10189600FD7F03122F017402123146D2432220210A +:1018A60006203D03300D64202A05D22AD23022902C +:1018B600006FE06402600E123136E4FF122F0190D1 +:1018C600006F7403F090006EE06402600E12313611 +:1018D6007F01122F0190006E7403F0900070E06497 +:1018E60002600E1231367F02122F019000707403CF +:1018F600F090006DE064027003021ABD1231367F6B +:1019060003122F0190006D7403F022302A0CC22AB4 +:10191600C22CC22BC22EC22FD247780EE6FF70030E +:101926000219E364037020202C07D22CC22B02314B +:10193600A8E490009E121ABE7D017F03122F017447 +:10194600011231460219DA202B0DD22BC22CD230CD +:10195600E4900114F0807D900113E0C3940150558A +:10196600E004F0A3E014601A146027146034240322 +:10197600706290006FE06404605A7B017D04E4FFAE +:10198600802E90006EE06404604A7B017D047F0136 +:10199600801E900070E06404603A7B017D047F0243 +:1019A600800E90006DE06404602A7B017D047F0355 +:1019B600123272801F900113E0C3940F5005E004A9 +:1019C600F08011E4900113F0A3E004F0E0C3940466 +:1019D6004002E4F0C22EC22FC231D22D22302B0A91 +:1019E600C22B1231A8D230D24722202E0C202D092C +:1019F600202F06203103021ABD900113E0FFC39485 +:101A0600015004E004F022EFC394644003021AA8D4 +:101A1600900113E004F0303A3090006FE0640370F8 +:101A260003021ABDE490009EF0A3F07B64FA7D03E6 +:101A3600FF122F0190006F7404123157FD7F0112BF +:101A46002F0190006E7402800F30391CE490009EC6 +:101A5600121B28121B437401123157FD7F02122FED +:101A6600019000707402801EE490009E303B2712A5 +:101A76001B28121B4374011231577D017F02122F5E +:101A8600019000707401123157FD7F03122F0190EF +:101A9600006D7402F022121ABE7D01121B4E7401F3 +:101AA6008012C22EC22DC22FC231E4121AF3FD12C9 +:071AB6001B4E7402123149BE +:101ABD0022F0A3F0FBFA7D01FF122F01E490009EAE +:101ACD00F0A3F0FBFA7D017F01122F01E490009E3F +:101ADD00F0A3F0FBFA7D017F02122F01E490009E2E +:101AED00F0A3F0FBFA2290009EF0A3F0FBFAFDFFAD +:101AFD00122F01E490009EF0A3F0FBFAFD7F01127E +:101B0D002F01E490009EF0A3F0FBFAFD7F02122F4F +:101B1D0001E490009EF0A3F0FBFA22F0A3F0FBFA93 +:101B2D007D01FF122F0190006F7401F0E490009E73 +:101B3D00F0A3F0FBFA227D017F01122F0190006EC0 +:0A1B4D00227F03122F0190006F2287 +:10294100023084E493A3F8E493A34003F68001F2F8 +:1029510008DFF48029E493A3F85407240CC8C33397 +:10296100C4540F4420C8834004F456800146F6DF66 +:10297100E4800B0102040810204080902FF2E47ED5 +:10298100019360BCA3FF543F30E509541FFEE4935B +:10299100A360010ECF54C025E060A840B8E493A322 +:1029A100FAE493A3F8E493A3C8C582C8CAC583CA4D +:1029B100F0A3C8C582C8CAC583CADFE9DEE780BE05 +:0130260000A9 +:10125200E709F608DFFA8046E709F208DFFA803E7E +:1012620088828C83E709F0A3DFFA8032E309F6086B +:10127200DFFA8078E309F208DFFA807088828C83D3 +:10128200E309F0A3DFFA806489828A83E0A3F60887 +:10129200DFFA805889828A83E0A3F208DFFA804C61 +:1012A20080D280FA80C680D4806980F28033801038 +:1012B20080A680EA809A80A880DA80E280CA8033A1 +:1012C20089828A83ECFAE493A3C8C582C8CCC58319 +:1012D200CCF0A3C8C582C8CCC583CCDFE9DEE780E9 +:1012E2000D89828A83E493A3F608DFF9ECFAA9F068 +:1012F200EDFB2289828A83ECFAE0A3C8C582C8CCBE +:10130200C583CCF0A3C8C582C8CCC583CCDFEADED6 +:10131200E880DB89828A83E493A3F208DFF980CC38 +:1013220088F0EF60010E4E60C388F0ED2402B40431 +:101332000050B9F582EB2402B4040050AF232345D8 +:0613420082239012A27349 +:10134800BB010689828A83E0225002E722BBFE02A3 +:09135800E32289828A83E49322D6 +:10136100BB010CE58229F582E5833AF583E0225041 +:1013710006E92582F8E622BBFE06E92582F8E2228B +:0D138100E58229F582E5833AF583E49322A5 +:10138E00BB010FF8E58229F582E5833AF583E02863 +:10139E00F0225009C58229F8E58226F622BBFE0905 +:1013AE00C58229F8E22582F222F8EA2583F583E93F +:0313BE009328224F +:1013C100BB010689828A83F0225002F722BBFE010B +:0213D100F32205 +:1013D300F8BB010DE58229F582E5833AF583E8F050 +:1013E300225006E92582C8F622BBFE05E92582C8FC +:0213F300F222E4 +:1013F500BC000BBE0029EF8DF084FFADF022E4CCDC +:10140500F875F008EF2FFFEE33FEEC33FCEE9DECA4 +:10141500984005FCEE9DFE0FD5F0E9E4CEFD22EDEA +:10142500F8F5F0EE8420D21CFEADF075F008EF2F34 +:10143500FFED33FD4007985006D5F0F222C398FD25 +:051445000FD5F0EA22C2 +:10144A00C5F0F8A3E028F0C5F0F8E582158270022D +:06145A001583E038F022CA +:10146000BB0110E58229F582E5833AF583E0F5F0CA +:10147000A3E0225009E92582F886F008E622BBFEA7 +:101480000AE92582F8E2F5F008E222E5832AF583ED +:08149000E993F5F0A3E99322B2 +:10149800F8BB0111E58229F582E5833AF583E8F086 +:1014A800E5F0A3F0225009E92582C8F608A6F02243 +:0D14B800BBFE09E92582C8F2E5F008F2222A +:1014C500E88FF0A4CC8BF0A42CFCE98EF0A42CFCC6 +:1014D5008AF0EDA42CFCEA8EF0A4CDA8F08BF0A444 +:1014E5002DCC3825F0FDE98FF0A42CCD35F0FCEBA3 +:1014F5008EF0A4FEA9F0EB8FF0A4CFC5F02ECD3968 +:0F150500FEE43CFCEAA42DCE35F0FDE43CFC22D4 +:10151400EB9FF5F0EA9E42F0E99D42F0E89C45F02D +:0115240022A4 +:10152500E86010ECA2E713FCED13FDEE13FEEF13DC +:04153500FFD8F022C9 +:09153900E0FBA3E0FAA3E0F922B3 +:10154200F8E0FBA3A3E0F925F0F0E5821582700232 +:071552001583E0FA38F022D6 +:09155900EBF0A3EAF0A3E9F02293 +:10156200D083D082F8E4937012740193700DA3A318 +:1015720093F8740193F5828883E47374029368602C +:06158200EFA3A3A380DF2C +:100EED00E508249FF582E43400F583E0050822909F +:100EFD00009C30180390009FE475F001121542021A +:100F0D0013482011E97F2ED2118018EF540F249031 +:100F1D00D43440D4FF30150BEF24BFB41A00500366 +:100F2D002461FFE50960021509050CE50C70020549 +:100F3D000B30180E90009CE475F001121542EF0273 +:100F4D0013C10234877403D2188003E4C218F50864 +:100F5D0090009C121559E4F509F50BF50CE50960A7 +:100F6D00077F20120F3080F5750AFFC212C211C221 +:100F7D0013C214C216C217C219120EFCFF700D3027 +:100F8D0018057F00120F41AF0CAE0B22B4255FC2C6 +:100F9D00D5C215120EFCFF24D0B40A00501A75F0FC +:100FAD000A780930D50508B6FF0106C6A426F62035 +:100FBD00D5047002D21480D924CFB41A00EF500496 +:100FCD00C2E5D215021142D21280C6D21180C0D212 +:100FDD001380BCD2D580BAD21680B47F20120F30C8 +:100FED002013077401B5090040F1120EEDFF120F29 +:100FFD0030020F6AD219D2178095120EEDFB120E28 +:10100D00EDFA120EEDF94A4B700679137A127BFF49 +:10101D0020132EE509602A7E008E8275830012133F +:10102D006160060EEE650A70F0C2D5EBC0E0EAC055 +:10103D00E0E9C0E0EE121189D0E0F9D0E0FAD0E09D +:10104D00FB121348FF60AAEBC0E0EAC0E0E9C0E084 +:10105D00120F30D0E02401F9D0E03400FAD0E0FBDB +:10106D00E50A0460DCD50AD980877BFF7A11798582 +:10107D00D213809C791080027908C217C21980089A +:10108D00D2D5790A8004790AC2D5E50A047002F531 +:10109D000AE4FAFDFEFF120EEDFC7B08201213127E +:1010AD000EEDFD7B1030110A120EEDFE120EEDFF4E +:1010BD007B20EC3382D592D55013C3E43011069FBB +:1010CD00FFE49EFEE42012039DFDE49CFCE4CBF8BE +:1010DD00C212EC700CCFCECDCCE824F8F870F380B2 +:1010ED0017C3EF33FFEE33FEED33FDEC33FCEB3383 +:1010FD00FB994002FB0FD8E9EB301205F8D0E0C4A4 +:10110D0048B212C0E00AEC4D4E4F78207B0070C201 +:10111D00EAB50A0040BCC0E012118BD0F0D0E0203F +:10112D001204C4C0E0C4B212C0F0120F19D0F0D531 +:10113D00F0EB020F6A1215621007531081580FD889 +:10114D004C0FD44210854F108D44108D490FED4337 +:08115D0010935510774610773E +:10116500451077471233500FDC2D0FE02E10032B5F +:101175000FE423100120121C2A0F9C4800000FFBCE +:101185003F3F3F00790AA2D5201414301609B91043 +:10119500020404B9080104A2D52017025001042055 +:1011A50013689213B509005034C0E07F203014193C +:1011B5007F30A21372177216500F1211E2C213C2BA +:1011C50017C216C2197F30800F301603E9C0E0122E +:1011D5000F30301603D0E0F9D0E0B509CC30161742 +:1011E5007F30B9100C120F307F583015077F78808B +:1011F50003B90803120F303013057F2D020F307F1E +:10120500202019F87F2B2017F322921380CF286E08 +:10121500756C6C2900D212120EED3012F8C21278DC +:101225000930D50108F6020F9C2D50434958120E7E +:10123500ED2403B405004001E490122E93120F2112 +:0D124500743A120F21D214750904021081B1 +:00000001FF diff --git a/Out/8835_EVB_250121_1743_349D_010102.bin b/Out/8835_EVB_250121_1743_349D_010102.bin new file mode 100644 index 0000000000000000000000000000000000000000..31a8d7116e40b63c560eec919e4e6ccf0ea3917a GIT binary patch literal 16386 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 literal 0 HcmV?d00001 diff --git a/Project/SY8835_Demo.uvgui.GH b/Project/SY8835_Demo.uvgui.GH index 760704b..05f8316 100644 --- a/Project/SY8835_Demo.uvgui.GH +++ b/Project/SY8835_Demo.uvgui.GH @@ -6,7 +6,7 @@
### uVision Project, (C) Keil Software
- E:\todaywork\20241030_sy8835\Both_Way_Comm_SY8833_XIAOMI\UsrSrc\user + E:\todaywork\20241030_sy8835\SY8835_Demo\UsrSrc\display @@ -93,25 +93,25 @@ 2 3 - -1 - -1 + -32000 + -32000 -1 -1 - 171 - 1799 - 3719 - 1133 + 167 + 2141 + 4061 + 1129 0 1058 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A000000020000000100000036453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF41453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C757365726170705C757365726170702E630000000009757365726170702E6300000000FFDC7800FFFFFFFF40453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000BECEA100FFFFFFFF4C453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6469736368617267655C6469736368617267655F6D6F64756C652E6300000000126469736368617267655F6D6F64756C652E6300000000F0A0A100FFFFFFFF39453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6164635C6164632E6300000000056164632E6300000000BCA8E100FFFFFFFF40453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5372635C737461727475705C535441525455502E413531000000000B535441525455502E413531000000009CC1B600FFFFFFFF40453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C557372496E635C766F785C766F785F6D6F64756C652E68000000000C766F785F6D6F64756C652E6800000000F7B88600FFFFFFFF3B453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C756172745C756172742E630000000006756172742E6300000000D9ADC200FFFFFFFF39453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6B65795C6B65792E6300000000056B65792E6300000000A5C2D700FFFFFFFF39453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6261745C6261742E6300000000056261742E6300000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F000098020000 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A000000010000000100000036453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF41453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C757365726170705C757365726170702E630000000009757365726170702E6300000000FFDC7800FFFFFFFF40453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000BECEA100FFFFFFFF4C453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6469736368617267655C6469736368617267655F6D6F64756C652E6300000000126469736368617267655F6D6F64756C652E6300000000F0A0A100FFFFFFFF39453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6164635C6164632E6300000000056164632E6300000000BCA8E100FFFFFFFF40453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5372635C737461727475705C535441525455502E413531000000000B535441525455502E413531000000009CC1B600FFFFFFFF40453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C557372496E635C766F785C766F785F6D6F64756C652E68000000000C766F785F6D6F64756C652E6800000000F7B88600FFFFFFFF3B453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C756172745C756172742E630000000006756172742E6300000000D9ADC200FFFFFFFF39453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6B65795C6B65792E6300000000056B65792E6300000000A5C2D700FFFFFFFF39453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6261745C6261742E6300000000056261742E6300000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F000094020000 @@ -134,7 +134,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -150,11 +150,11 @@ 0 16 - 0300000066000000ED00000068020000 + 0300000066000000ED00000064020000 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -170,11 +170,11 @@ 0 16 - 0300000066000000ED00000068020000 + 0300000066000000ED00000064020000 16 - D8000000EF000000F40100002F030000 + 70000000870000008C010000C7020000 @@ -194,7 +194,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -214,7 +214,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -234,7 +234,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -254,7 +254,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -274,7 +274,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -294,7 +294,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -314,7 +314,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -334,7 +334,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -354,7 +354,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -374,7 +374,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -394,7 +394,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -414,7 +414,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -434,7 +434,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -450,11 +450,11 @@ 0 16 - 0300000066000000ED00000068020000 + 0300000066000000ED00000064020000 16 - D8000000EF000000F40100002F030000 + 70000000870000008C010000C7020000 @@ -470,11 +470,11 @@ 0 16 - 0300000066000000ED00000068020000 + 0300000066000000ED00000064020000 16 - D8000000EF000000F40100002F030000 + 70000000870000008C010000C7020000 @@ -490,11 +490,11 @@ 0 16 - 000000009902000080070000E6030000 + 000000009502000080070000E6030000 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -514,7 +514,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -530,11 +530,11 @@ 0 16 - 030000009C0200008D050000FC020000 + 03000000980200008D050000F8020000 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -554,7 +554,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -574,7 +574,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -614,7 +614,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -634,7 +634,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -654,7 +654,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -674,7 +674,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -694,7 +694,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -714,7 +714,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -734,7 +734,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -754,7 +754,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -774,7 +774,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -794,7 +794,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -814,7 +814,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -834,7 +834,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -854,7 +854,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -874,7 +874,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -894,7 +894,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -914,7 +914,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -934,7 +934,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -954,7 +954,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -974,7 +974,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -994,7 +994,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1014,7 +1014,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1034,7 +1034,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1054,7 +1054,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1074,7 +1074,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1094,7 +1094,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1114,7 +1114,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1134,7 +1134,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1154,7 +1154,7 @@ 16 - D8000000EF000000F40100002F030000 + 70000000870000008C010000C7020000 @@ -1170,11 +1170,11 @@ 0 16 - 00000000990200009005000015030000 + 00000000950200009005000011030000 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -1190,11 +1190,11 @@ 0 16 - 030000009C0200008D050000FC020000 + 03000000980200008D050000F8020000 16 - D8000000EF000000F40100002F030000 + 70000000870000008C010000C7020000 @@ -1214,7 +1214,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1234,7 +1234,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1250,11 +1250,11 @@ 0 16 - 030000009C0200008D050000FC020000 + 03000000980200008D050000F8020000 16 - D8000000EF000000F40100002F030000 + 70000000870000008C010000C7020000 @@ -1270,11 +1270,11 @@ 0 16 - 030000009C0200008D050000FC020000 + 03000000980200008D050000F8020000 16 - D8000000EF000000F40100002F030000 + 70000000870000008C010000C7020000 @@ -1294,7 +1294,7 @@ 16 - D8000000EF000000A00300007F010000 + 70000000870000003803000017010000 @@ -1314,7 +1314,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1334,7 +1334,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1354,7 +1354,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1374,7 +1374,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1394,7 +1394,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1414,7 +1414,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1434,7 +1434,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1454,7 +1454,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1474,7 +1474,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1494,7 +1494,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1514,7 +1514,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1534,7 +1534,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1554,7 +1554,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1574,7 +1574,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1594,7 +1594,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1614,7 +1614,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1634,13 +1634,13 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 50017 50017 - 1 + 0 0 0 0 @@ -1650,11 +1650,11 @@ 0 16 - F7000000660000008D05000081000000 + A3040000660000008D0500007C010000 16 - 0A0000000A0000006E0000006E000000 + 70000000870000006001000052010000 @@ -1674,7 +1674,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1694,7 +1694,7 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 @@ -1794,19 +1794,19 @@ 16 - D8000000EF000000C8010000BA010000 + 70000000870000006001000052010000 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000D8000000EF000000A00300007F010000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000D8000000EF000000C8010000BA010000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F400000081020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000D8000000EF000000C8010000BA010000000000004F000000F0000000810200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000D8000000EF000000C8010000BA010000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000810200008007000085020000010000000100001004000000010000003EFEFFFFCA010000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000D8000000EF000000A00300007F010000000000008502000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E65002000000000000070000000870000003803000017010000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000070000000870000006001000052010000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F40000007D020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000070000000870000006001000052010000000000004F000000F00000007D0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000070000000870000006001000052010000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000007D02000080070000810200000100000001000010040000000100000002FDFFFF8E000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000070000000870000003803000017010000000000008102000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2558 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000832303234313031359600000000000000010008323032343130313500000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000 + 2914 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000036162739600000000000000140003616273083230323431303135084144435F43544C310F636872675F69635F64697361626C6508636872675F69635F04343235300E496E697469616C5F5354373733350564656275671C4932435F57726974655F4F6E654279746528305844342C307830312C1C4932435F57726974655F4F6E654279746528305844342C307831302C0B536C6565705F64656C61791B4932435F57726974655F4F6E654279746528305844342C307830371B4932435F57726974655F4F6E654279746528305844342C3078313010636872675F63757272656E745F736574174932435F57726974655F4F6E654279746528305844342C1B4932435F57726974655F4F6E654279746528305844342C30783033023033084C444F5F43544C30043437303008766F6C5F766261740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000 1423 @@ -3603,7 +3603,7 @@ 0 100 - 2 + 1 ..\UsrSrc\main.c 20 @@ -3615,9 +3615,9 @@ ..\UsrSrc\userapp\userapp.c - 0 - 644 - 670 + 14 + 107 + 135 1 0 @@ -3625,26 +3625,26 @@ ..\UsrSrc\vox\vox_module.c 0 - 2267 - 2291 + 1 + 1 1 0 ..\UsrSrc\discharge\discharge_module.c - 69 - 177 - 196 + 2 + 176 + 198 1 0 ..\UsrSrc\adc\adc.c - 20 - 161 - 185 + 1 + 1 + 1 1 0 @@ -3660,7 +3660,7 @@ ..\UsrInc\vox\vox_module.h - 17 + 20 277 297 1 @@ -3669,9 +3669,9 @@ ..\UsrSrc\uart\uart.c - 8 + 0 193 - 204 + 206 1 0 diff --git a/Project/SY8835_Demo.uvopt b/Project/SY8835_Demo.uvopt index babe443..5010072 100644 --- a/Project/SY8835_Demo.uvopt +++ b/Project/SY8835_Demo.uvopt @@ -504,6 +504,18 @@ 0 0 + + 2 + 23 + 1 + 1 + 0 + 0 + ..\UsrSrc\display\display_ui.c + display_ui.c + 0 + 0 + diff --git a/Project/SY8835_Demo.uvproj b/Project/SY8835_Demo.uvproj index ee0d404..f77f5a0 100644 --- a/Project/SY8835_Demo.uvproj +++ b/Project/SY8835_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 @@ -491,6 +491,11 @@ 1 ..\UsrSrc\user\user.c + + display_ui.c + 1 + ..\UsrSrc\display\display_ui.c + diff --git a/UsrInc/adc/adc.h b/UsrInc/adc/adc.h index d995dd1..1e7b8df 100644 --- a/UsrInc/adc/adc.h +++ b/UsrInc/adc/adc.h @@ -38,16 +38,16 @@ extern uint8_t ADC_Chn_Num; extern idata uint16_t Vbat_Adc; -extern idata uint16_t g_Vpmu_Adc; - -extern idata uint16_t g_Vntc_Adc; +extern idata int16 g_Vpmu_Adc; +extern idata int16 g_Vntc_Adc; +#if 0 extern idata uint16_t g_Vbjt_Adc; extern idata uint16_t g_Vp13_Adc; extern idata uint16_t g_Vref_Adc; - +#endif extern uint8_t g_PMU_ADC_Chn; extern idata uint16_t g_pmu_Adc_Ivol; @@ -99,7 +99,84 @@ typedef enum { pmu_ADC_MAX, }PMU_ADC_CHANNELS_E; - + +/* ADC ¿ØÖƼĴæÆ÷0 -- ADC_Ctrl0 */ +#define ADC_EN_Pos (7U) +#define ADC_EN_Pos_Msk (0x1UL << ADC_EN_Pos) +#define ADC_EN ADC_EN_Pos_Msk + +#define ADC_AVG_NUM_Pos (4U) + +#define ADC_AVG_NUM_4_Pos_Msk (0x0UL << ADC_AVG_NUM_Pos) +#define ADC_AVG_NUM_4 ADC_AVG_NUM_4_Pos_Msk + +#define ADC_AVG_NUM_8_Pos_Msk (0x1UL << ADC_AVG_NUM_Pos) +#define ADC_AVG_NUM_8 ADC_AVG_NUM_8_Pos_Msk + +#define ADC_AVG_NUM_16_Pos_Msk (0x2UL << ADC_AVG_NUM_Pos) +#define ADC_AVG_NUM_16 ADC_AVG_NUM_16_Pos_Msk + +#define ADC_AVG_NUM_32_Pos_Msk (0x3UL << ADC_AVG_NUM_Pos) +#define ADC_AVG_NUM_32 ADC_AVG_NUM_32_Pos_Msk + +#define ADC_AVG_NUM_64_Pos_Msk (0x4UL << ADC_AVG_NUM_Pos) +#define ADC_AVG_NUM_64 ADC_AVG_NUM_64_Pos_Msk + +#define ADC_SINGLE_EN_Pos (3U) +#define ADC_SINGLE_EN_Pos_Msk (0x1UL << ADC_SINGLE_EN_Pos) +#define ADC_SINGLE_EN ADC_SINGLE_EN_Pos_Msk + +#define ADC_CLK_DIV_Pos (2U) + +#define ADC_CLK_DIV_16_Pos_Msk (0x0UL << ADC_CLK_DIV_Pos) +#define ADC_CLK_DIV_16 ADC_CLK_DIV_16_Pos_Msk + +#define ADC_CLK_DIV_24_Pos_Msk (0x1UL << ADC_CLK_DIV_Pos) +#define ADC_CLK_DIV_24 ADC_CLK_DIV_24_Pos_Msk + +#define ADC_CLK_DIV_32_Pos_Msk (0x2UL << ADC_CLK_DIV_Pos) +#define ADC_CLK_DIV_32 ADC_CLK_DIV_32_Pos_Msk + +#define ADC_CLK_DIV_48_Pos_Msk (0x3UL << ADC_CLK_DIV_Pos) +#define ADC_CLK_DIV_48 ADC_CLK_DIV_48_Pos_Msk + +#define ADC_CLK_DIV_64_Pos_Msk (0x4UL << ADC_CLK_DIV_Pos) +#define ADC_CLK_DIV_64 ADC_CLK_DIV_64_Pos_Msk + +#define ADC_CLK_DIV_96_Pos_Msk (0x5UL << ADC_CLK_DIV_Pos) +#define ADC_CLK_DIV_96 ADC_CLK_DIV_96_Pos_Msk + +#define ADC_CLK_DIV_128_Pos_Msk (0x6UL << ADC_CLK_DIV_Pos) +#define ADC_CLK_DIV_128 ADC_CLK_DIV_128_Pos_Msk + +#define ADC_CLK_DIV_160_Pos_Msk (0x7UL << ADC_CLK_DIV_Pos) +#define ADC_CLK_DIV_160 ADC_CLK_DIV_160_Pos_Msk + +/* ADC¿ØÖƼĴæÆ÷1 -- ADC_Ctrl1 */ +#define ADC_START_Pos (7U) +#define ADC_START_Pos_Msk (0x1UL << ADC_START_Pos) +#define ADC_START ADC_START_Pos_Msk + +#define ADC_CHN_4_Pos (4U) +#define ADC_CHN_4_Pos_Msk (0x1UL << ADC_CHN_4_Pos) +#define ADC_CHN_4 ADC_CHN_4_Pos_Msk + +#define ADC_CHN_3_Pos (3U) +#define ADC_CHN_3_Pos_Msk (0x1UL << ADC_CHN_3_Pos) +#define ADC_CHN_3 ADC_CHN_3_Pos_Msk + +#define ADC_CHN_2_Pos (2U) +#define ADC_CHN_2_Pos_Msk (0x1UL << ADC_CHN_2_Pos) +#define ADC_CHN_2 ADC_CHN_2_Pos_Msk + +#define ADC_CHN_1_Pos (1U) +#define ADC_CHN_1_Pos_Msk (0x1UL << ADC_CHN_1_Pos) +#define ADC_CHN_1 ADC_CHN_1_Pos_Msk + +#define ADC_CHN_0_Pos (0U) +#define ADC_CHN_0_Pos_Msk (0x1UL << ADC_CHN_0_Pos) +#define ADC_CHN_0 ADC_CHN_0_Pos_Msk + /******************************************************************************\ Functions definitions \******************************************************************************/ diff --git a/UsrInc/charger/charger_module.h b/UsrInc/charger/charger_module.h index 0d552e3..985af5a 100644 --- a/UsrInc/charger/charger_module.h +++ b/UsrInc/charger/charger_module.h @@ -23,25 +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; - -extern idata TE_CHG_STA ChgStatus; // ϵͳ״̬¶¨Òå - #if CHARGER_ENABLE /* Charger Current Setting */ @@ -66,10 +47,6 @@ REG_CHG1 = CHG_CURRENT_300MA; #define CHG_CURRENT_450MA 0x06 #define CHG_CURRENT_500MA 0x07 -#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 1b3d74f..4cae91b 100644 --- a/UsrInc/discharge/discharge_module.h +++ b/UsrInc/discharge/discharge_module.h @@ -23,12 +23,6 @@ #include "define.h" -#ifdef NTC_ENABLE -extern bit Boost_NTC_Pro_Flag; -#endif - -extern bit gBoost_Prepared_Flag; //BoostÂú×㿪ÆôÌõ¼þ¡£ - #if DISCHARGE_ENABLE #define BOOST_OPEN_TIM 10 diff --git a/UsrInc/display/display_ui.h b/UsrInc/display/display_ui.h new file mode 100644 index 0000000..6160038 --- /dev/null +++ b/UsrInc/display/display_ui.h @@ -0,0 +1,44 @@ +/* + ****************************************************************************** + * + * @file display_ui.h + * @brief display ui module + * @ic sy8835 + * + * @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 27a9086..fd0b5d9 100644 --- a/UsrInc/hall/hall.h +++ b/UsrInc/hall/hall.h @@ -43,7 +43,7 @@ typedef enum{ extern CoverStatus_E CoverStatus; extern bit CoverEvent_Flg; -extern bit CoverEvent_Flg_led; + #if HALL_ENABLE /******************************************************************************\ diff --git a/UsrInc/inc/config.h b/UsrInc/inc/config.h index ab40602..d252038 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 @@ -253,7 +261,7 @@ /* LED Çý¶¯Êä³öÏÞÁ÷ÅäÖᣠ*/ -#define LED_DRV_LIMIT_SET P1_DRV_400 //ÅäÖÃP10-P13ÏÞÁ÷Êä³ö£¬2¸öµµÎ»£ºÏÞÁ÷µç×è400¦¸¡¢800¦¸¡£ +#define LED_DRV_LIMIT_SET P1_DRV_400 //ÅäÖÃP10-P13ÏÞÁ÷Êä³ö£¬2¸öµµÎ»£ºÏÞÁ÷µç×èÅäÖãºP1_DRV_400:400¦¸¡¢P1_DRV_800:800¦¸¡£ /* KEY And Hall Module Setting. */ @@ -281,22 +289,24 @@ #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_CLOSE_5V_HOLD_CNT 3 //ÅäÖùظǶ¯×÷ºó£¬VOX Êä³ö5V³ÖÐøÊ±¼ä£¨100ms * 3£©£¬µ¥Î»£ºms¡£ +#define HALL_CLOSE_VOX_5V_HOLD_CNT 3 //ÅäÖùظǶ¯×÷ºó£¬VOX Êä³ö5V³ÖÐøÊ±¼ä£¨100ms * 3£©£¬µ¥Î»£ºms¡£ /* Ë«ÏòͨѶЭÒéÑ¡Ôñ */ #define JIELI 0 //½ÜÀí¶ú»úоƬ -#define ZHONGKE 0 //ÖпÆÀ¶Ñ¶¶ú»úоƬ +#define ZHONGKE 1 //ÖпÆÀ¶Ñ¶¶ú»úоƬ -#define XUANHENG 1 //Ðþºã¶ú»úоƬ +#define XUANHENG 0 //Ðþºã¶ú»úоƬ /* Vox¸úËæ³ä²ÎÊýÉèÖá£(100msµ÷ÓÃÖÜÆÚ) */ +#define FOLLOW_CHG_EFFICIENCY //ÅäÖøúËæ³äÀàÐÍ£º0¡¢Ð§ÂÊÓÅÏÈ£»1¡¢ËÙ¶ÈÓÅÏÈ¡£ + #define VOX_CV_TC_CURRENT 20 //¶ú»ú³äµç´¦ÓÚCV/TC½×¶ÎµÄµçÁ÷Öµ£¬µ¥Î»mA¡£ #define VOX_FOLLOW_CHG_INIT_CNT 10 //Æô¶¯¸úËæ³äVOX VOUTÊä³ö×î¸ßµçѹ³ÖÐøÊ±¼ä£¬1s£¬µ¥Î»£ºms¡£¡£ @@ -311,6 +321,23 @@ #define VOUT_MIN_THD BOOST_VPMID_3_7V //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*/ @@ -318,11 +345,44 @@ #define ENTER_SHIPMODE_CNT 5 //½øÈëShipMode ÑÓ³Ùʱ¼ä£¬µ¥Î»£ºÃë - /******************************************************************************\ 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 444ff06..c2a4282 100644 --- a/UsrInc/inc/define.h +++ b/UsrInc/inc/define.h @@ -52,12 +52,6 @@ #define VOX_FOLLOW_CHG 1 //1701Bytes -#if VOX_FOLLOW_CHG - -#define FOLLOW_CHG_EFFICIENCY //¸úËæ³äÁ½Ö»ÀàÐÍ£º1¡¢Ð§ÂÊÓÅÏÈ£»2¡¢ËÙ¶ÈÓÅÏÈ¡£ - -#endif - #if VOX_ENABLE #define VOX_TX //959Bytes @@ -76,10 +70,6 @@ #if ADC_ENABLE -#define NTC_JEITA 1 - -#define NTC_IEC 0 - #define NTC_ENABLE //513Bytes JEITA #endif @@ -98,10 +88,10 @@ #define _DEBUG_VOX #define _DEBUG_FOLLOW #define _DEBUG_HALL -// #define _DEBUG_ADC + #define _DEBUG_ADC // #define _DEBUG_DISCHARGE // #define _DEBUG_CHARGER - #define _DEBUG_SLEEP + // #define _DEBUG_SLEEP // #define _DEBUG_BAT //#define TEST_MODE @@ -149,7 +139,7 @@ typedef enum{false = 0, true = !false} bool; #include "stdlib.h" #endif -#include "reg3315.h" +#include "reg8835.h" #include "uart.h" diff --git a/UsrInc/inc/reg3315.h b/UsrInc/inc/reg8835.h similarity index 98% rename from UsrInc/inc/reg3315.h rename to UsrInc/inc/reg8835.h index 23266eb..f3f9fe4 100644 --- a/UsrInc/inc/reg3315.h +++ b/UsrInc/inc/reg8835.h @@ -1,8 +1,8 @@ /* ****************************************************************************** * - * @file reg3315.h - * @brief Header file for TP3315 microcontroller. + * @file reg8835.h + * @brief Header file for sy8835 microcontroller. * @ic sy8835 * * @version 1.0 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/userapp/userapp.h b/UsrInc/userapp/userapp.h index fd25337..ca8012b 100644 --- a/UsrInc/userapp/userapp.h +++ b/UsrInc/userapp/userapp.h @@ -53,6 +53,7 @@ typedef struct { }s_sys_state; extern xdata s_sys_state Systerm_State; + extern bit Wkup_Earphone_Flag; //±£»¤Ïûʧºó£¬ÐèÒªÉýѹ»½ÐѶú»ú±ê־λ /******************************************************************************\ @@ -62,8 +63,6 @@ extern bit Wkup_Earphone_Flag; // 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 c908226..96a5942 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 d559966..86b2929 100644 --- a/UsrSrc/adc/adc.c +++ b/UsrSrc/adc/adc.c @@ -3,7 +3,7 @@ * * @file adc.c * @brief adc module - * @ic sy8835 + * @ic sy8835 * * @version 1.0 * @date 2024/11/01 15:00:40 @@ -31,39 +31,31 @@ /******************************************************************************\ Variables definitions \******************************************************************************/ -int8_t ADC_Offset_Error = 0; //ADC Offset Error У׼ֵ¼Ä´æÆ÷ +int8_t ADC_Offset_Error; //ADC Offset Error У׼ֵ¼Ä´æÆ÷ -//int8_t ADC_Gain_Error = 0; //ADC Gain Error У׼ֵ¼Ä´æÆ÷ +uint8_t ADC_Chn_Num; -uint8_t ADC_Chn_Num = 0; +idata uint16_t Vbat_Adc; -idata uint16_t Vbat_Adc = 0; +idata int16 g_Vpmu_Adc; -idata uint16_t g_Vpmu_Adc = 0; +idata int16 g_Vntc_Adc; -idata uint16_t g_Vntc_Adc = 0; -#if 0 -idata uint16_t g_Vbjt_Adc = 0; +uint8_t g_PMU_ADC_Chn; -idata uint16_t g_Vp13_Adc = 0; +idata uint16_t g_pmu_Adc_Ivol; -idata uint16_t g_Vref_Adc = 0; -#endif -uint8_t g_PMU_ADC_Chn = 0; +idata uint16_t g_pmu_Adc_Vin; -idata uint16_t g_pmu_Adc_Ivol = 0; +idata uint16_t g_pmu_Adc_Vpmid; -idata uint16_t g_pmu_Adc_Vin = 0; +idata uint16_t g_pmu_Adc_Vor; -idata uint16_t g_pmu_Adc_Vpmid = 0; +idata uint16_t g_pmu_Adc_Vol; -idata uint16_t g_pmu_Adc_Vor = 0; +idata uint16_t g_pmu_Adc_Vdd; -idata uint16_t g_pmu_Adc_Vol = 0; - -idata uint16_t g_pmu_Adc_Vdd = 0; - -idata uint16_t g_pmu_Adc_Ivor = 0; +idata uint16_t g_pmu_Adc_Ivor; /******************************************************************************\ Functions definitions @@ -90,11 +82,10 @@ void Adc_Init(void) SFRADDR = MFP_CTL0; //Set P14 As ADC1 For NTC SFRDATA |= 0x10; - ExtSfr_Write(ADC_CTL0,0xAB); //0B10101001,0xA9--ADC EN;Average time:16; Single mode; ADC CLK divided by 24=460k - -// SFRADDR = ADC_IntEn; //Enable ADC Interrupt.b[4:0]:ADC4-ADC0 -// SFRDATA |= 0x03; +// ExtSfr_Write(ADC_CTL0,0xAB); //0B10101001,0xA9--ADC EN;Average time:16; Single mode; ADC CLK divided by 24=460k + ExtSfr_Write(ADC_CTL0, ( ADC_EN | ADC_AVG_NUM_16 | ADC_SINGLE_EN | ADC_CLK_DIV_48 ) ); //0B10101001,0xA9--ADC EN;Average time:16; Single mode; ADC CLK divided by 24=460k + SFRADDR = ADC_OFFSET; ADC_Offset_Error = SFRDATA; } @@ -115,16 +106,22 @@ void Adc_Init(void) */ void PMU_ADC_Chn_Data(PMU_ADC_CHANNELS_E pmu_Adc_Chn) { - if( ADC_IntFlag & 0x01 ) + if( ADC_IntFlag & ADC_PMU_CH0 ) { - ADC_IntFlag = 0x01; + ADC_IntFlag = ADC_PMU_CH0; g_Vpmu_Adc = ExtSfr_Read(ADC_CH0_L); + g_Vpmu_Adc |= (uint16_t)( ( ExtSfr_Read(ADC_CH0_H) & 0x03 ) << 8 ); - I2cSfr_Write( XSEN_CTRL , (0x08 | pmu_Adc_Chn) ); //XsenÇл»Í¨µÀºóÐèÒªµÈ´ýÖÁÉÙ100usºóADCÔÙ½øÐвÉÑù¡£ - - g_Vpmu_Adc = ((uint32_t)( g_Vpmu_Adc - ADC_Offset_Error ) * 2500) >> 10 ; //ADCµÄLSB = 2500mV / 1024 = 2.44mV + I2cSfr_Write( XSEN_CTRL , ( 0x08 | pmu_Adc_Chn ) ); //XsenÇл»Í¨µÀºóÐèÒªµÈ´ýÖÁÉÙ100usºóADCÔÙ½øÐвÉÑù¡£ + + g_Vpmu_Adc = ( (int32)( (int16)( g_Vpmu_Adc - ADC_Offset_Error ) ) * 2500 ) >> 10 ; //ADCµÄLSB = 2500mV / 1024 = 2.44mV + + if( g_Vpmu_Adc < 0 ) + { + g_Vpmu_Adc = 0; + } /*»ñÈ¡xSen¶ÔÓ¦µÄADCÖµ*/ switch (g_PMU_ADC_Chn) @@ -146,11 +143,11 @@ void PMU_ADC_Chn_Data(PMU_ADC_CHANNELS_E pmu_Adc_Chn) break; case pmu_ADC_VOR: - g_pmu_Adc_Vor = g_Vpmu_Adc << 2; //vorµÄ4·Öѹ + g_pmu_Adc_Vor = g_Vpmu_Adc << 2; //vorµÄ4·Öѹ break; case pmu_ADC_VOL: - g_pmu_Adc_Vol = g_Vpmu_Adc << 2; //volµÄ4·Öѹ + g_pmu_Adc_Vol = g_Vpmu_Adc << 2; //volµÄ4·Öѹ break; case pmu_ADC_VDD: @@ -160,6 +157,7 @@ void PMU_ADC_Chn_Data(PMU_ADC_CHANNELS_E pmu_Adc_Chn) case pmu_ADC_IVOR: g_pmu_Adc_Ivor = g_Vpmu_Adc >> 2; //²ÉÑù±ÈÀý4mV/mA break; + default: break; } @@ -167,14 +165,14 @@ void PMU_ADC_Chn_Data(PMU_ADC_CHANNELS_E pmu_Adc_Chn) g_PMU_ADC_Chn = pmu_Adc_Chn; - ADC_CTL1 = 0x80 | ( ADC_PMU_CH0 ); //ADC Start Enable,Set Channel N Enabel. + ADC_CTL1 = ADC_START | ( ADC_CHN_0 ); //ADC Start Enable,Set Channel N Enabel. } /* ******************************************************************************* * void ADC_NTC_Data(void) * -* Description : »ñÈ¡NTC ADCÖµ +* Description : »ñÈ¡NTC ADCÖµ£¬ADC1 * * Arguments : NONE @@ -186,18 +184,23 @@ void PMU_ADC_Chn_Data(PMU_ADC_CHANNELS_E pmu_Adc_Chn) */ void ADC_NTC_Data(void) { - if( ADC_IntFlag & 0x02 ) //»ñÈ¡NTC ADC ÂëÖµ + if( ADC_IntFlag & ADC_NTC_CH1 ) //»ñÈ¡NTC ADC ÂëÖµ { - ADC_IntFlag = 0x02; + ADC_IntFlag = ADC_NTC_CH1; g_Vntc_Adc = ExtSfr_Read(ADC_CH1_L); g_Vntc_Adc |= (uint16_t)( ( ExtSfr_Read(ADC_CH1_H) & 0x03 ) << 8 ); g_Vntc_Adc = g_Vntc_Adc - ADC_Offset_Error ; + + if( g_Vntc_Adc < 0 ) + { + g_Vntc_Adc = 0; + } } - ADC_CTL1 = 0x80 | ( ADC_NTC_CH1 ); //ADC Start Enable,Set Channel N Enabel. + ADC_CTL1 = ADC_START | ( ADC_CHN_1 ); //ADC Start Enable,Set Channel N Enabel. } #endif diff --git a/UsrSrc/bat/bat.c b/UsrSrc/bat/bat.c index 414ef6d..797a789 100644 --- a/UsrSrc/bat/bat.c +++ b/UsrSrc/bat/bat.c @@ -21,9 +21,9 @@ #include "adc.h" #include "pmu.h" -idata uint8_t bat_level = 0; +idata uint8_t bat_level; -bit F_batlevel_low = 0; //µç³ØµÍѹ +bit F_batlevel_low; //µç³ØµÍѹ #if 0 @@ -474,15 +474,15 @@ void Bat_Gauge_Handle(void) #define C_offset_bat_level_MAX 200 #define C_offset_bat_level_MIN 10 -bit F_batlevel_protect = 0; //µÍµç±£»¤ +bit F_batlevel_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 6a6f98d..dcf0020 100644 --- a/UsrSrc/charger/charger_module.c +++ b/UsrSrc/charger/charger_module.c @@ -3,7 +3,7 @@ * * @file charger_module.c * @brief charger module - * @ic sy8835 + * @ic sy8835 * * @version 1.0 * @date 2024/11/01 17:35:40 @@ -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״̬¶¨Òå @@ -38,7 +38,7 @@ idata TE_CHG_STA ChgStatus; // CHG״̬ /******************************************************************************\ Macro definitions \******************************************************************************/ -#define NTC_PRO_DEBOUNCE_TIM 10 +#define NTC_PRO_DEBOUNCE_TIM 10 /******************************************************************************\ Variables definitions @@ -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; @@ -71,6 +71,8 @@ idata s_gCharger_Cfg gCharge_Cfg; void Charger_Init(void) { + gConstant_Cur_Max_Setting = CONSTANT_CUR_SET; + gCharge_Cfg.nTrickle_Cur = TRICKLE_CUR_SET; gCharge_Cfg.nIterm_Cur = ITERM_CUR_SET; @@ -78,7 +80,6 @@ void Charger_Init(void) gCharge_Cfg.nConstant_Cur = gConstant_Cur_Max_Setting; gCharge_Cfg.nVFloat = VFLOAT_SET; - } #ifdef NTC_ENABLE @@ -467,9 +468,6 @@ void Charger_Handler(void) return; } - /*¸÷Ïî±£»¤¶¼ÎÞÐèÈí¼þ´¦Àí£¬Ö»´¦Àí³äµç³¬Ê±£¬³¬Ê±ºóÐèÒªµÈVBUSÖØÐ²å°Îºó²ÅÖØÐ¿ªÊ¼ChargerÁ÷³Ì¡£*/ - ChgStatus = CHG_PROTECT; - #ifdef NTC_ENABLE /*NTC Handle*/ //ʹÄÜChargerǰÏȼì²âNTCζȣ¬Òì³£¾Í²»¿ª³äµç¡£(CHIP_STA4 & 0x80):PG @@ -479,6 +477,8 @@ void Charger_Handler(void) CHG_NTC_Pro_Flag = 1; + ChgStatus = CHG_PROTECT; + return; } @@ -486,7 +486,7 @@ void Charger_Handler(void) #endif - if( (pmu_Info.pmu_Chip_STA & ChipSTA_DISCHG) == ChipSTA_CHG_DONE ) //Charg complete interrupt + if( ( pmu_Info.pmu_Chip_STA & ChipSTA_DISCHG ) == ChipSTA_CHG_DONE ) //Charg complete interrupt { #ifdef _DEBUG_CHARGER printf("Chg Done\r\n"); diff --git a/UsrSrc/discharge/discharge_module.c b/UsrSrc/discharge/discharge_module.c index fcc8ce0..a22ac92 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,9 +41,7 @@ bit gBoost_Prepared_Flag = 0; //Boost Variables definitions \******************************************************************************/ - - -bit gBoost_UVLO_Flag = 0; +bit gBoost_UVLO_Flag; /******************************************************************************\ Functions definitions diff --git a/UsrSrc/display/display_ui.c b/UsrSrc/display/display_ui.c new file mode 100644 index 0000000..fd61eaf --- /dev/null +++ b/UsrSrc/display/display_ui.c @@ -0,0 +1,370 @@ +/******************************************************************************* + * + * @file display_ui.c + * @brief display_ui module + * @ic sy8835 + * + * @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; + + 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 ) + { + 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); + } + } + + 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; + + Breathing_Light_Cnt = LED_R; + } + 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 b672be8..ff12027 100644 --- a/UsrSrc/hall/hall.c +++ b/UsrSrc/hall/hall.c @@ -24,8 +24,8 @@ #include "userapp.h" #include "charger_module.h" #include "sleep.h" - - +#include "system.h" +#include "display_ui.h" /******************************************************************************\ Macro definitions @@ -37,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 -uint8_t Hall_Sta_bk = 0xff; +uint8_t Hall_Sta_bk; /******************************************************************************\ Functions definitions @@ -122,7 +120,6 @@ uint8_t Hall_Sta_bk = 0xff; Enter_Sleep_Cnt_Restart_Flag = 1; #endif - } } diff --git a/UsrSrc/i2c_simu/i2c_simu.c b/UsrSrc/i2c_simu/i2c_simu.c index e8d2423..26f742f 100644 --- a/UsrSrc/i2c_simu/i2c_simu.c +++ b/UsrSrc/i2c_simu/i2c_simu.c @@ -3,7 +3,7 @@ * * @file i2c_simu.h * @brief i2c gpio simu module - * @ic sy8835 + * @ic sy8835 * * @version 1.0 * @date 2024/10/31 09:59:40 @@ -29,8 +29,8 @@ Variables definitions \******************************************************************************/ -idata bool F_I2C_SIMU_INIT = false; -idata bool F_I2C_SIMU_ERROR = false; +idata bool F_I2C_SIMU_INIT; +idata bool F_I2C_SIMU_ERROR; /******************************************************************************\ Functions definitions diff --git a/UsrSrc/key/key.c b/UsrSrc/key/key.c index abdc64f..f2c40e2 100644 --- a/UsrSrc/key/key.c +++ b/UsrSrc/key/key.c @@ -56,27 +56,26 @@ Variables definitions \******************************************************************************/ -bit Key_Press_short_irq = 0; -bit Key_Press_l_irq = 0; -bit Key_Press_ll_irq = 0; +bit Key_Press_l_irq; -idata KEY_EVENT_E Event_key = 0; +bit Key_Press_ll_irq; -uint8_t Key_TWS_Pair_Tim = 0; +idata KEY_EVENT_E Event_key; -uint8_t Key_TWS_Clear_Pair_Tim = 0; +uint8_t Key_TWS_Pair_Tim; -uint8_t Key_TWS_Pair_Cnt = 0; +uint8_t Key_TWS_Clear_Pair_Tim; -uint16_t Key_Press_Debounce = 0; +uint8_t Key_TWS_Pair_Cnt; -uint8_t Key_Lift_Debounce = 0; +uint16_t Key_Press_Debounce; + +uint8_t Key_Lift_Debounce; /******************************************************************************\ Functions definitions \******************************************************************************/ - /* ******************************************************************************* * void Key_Handler(void) @@ -145,7 +144,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 diff --git a/UsrSrc/led/led.c b/UsrSrc/led/led.c index 5c0ceeb..3dd44a5 100644 --- a/UsrSrc/led/led.c +++ b/UsrSrc/led/led.c @@ -24,11 +24,10 @@ #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; // ÏÔʾ״̬ - +volatile uint8_t Display_RSta; // ÏÔʾ״̬ +volatile uint8_t Display_GSta; // ÏÔʾ״̬ +volatile uint8_t Display_YSta; // ÏÔʾ״̬ +volatile uint8_t Display_BSta; // ÏÔʾ״̬ /******************************************************************************\ Macro definitions @@ -60,6 +59,11 @@ void LED_Init(void) SFRADDR = P1_DRV0; //ÅäÖÃP10-P13Êä³öÇý¶¯ÄÜÁ¦£º0:800¦¸£»1: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(); diff --git a/UsrSrc/main.c b/UsrSrc/main.c index 7210ed5..0d3e928 100644 --- a/UsrSrc/main.c +++ b/UsrSrc/main.c @@ -3,7 +3,7 @@ * * @file main.c * @brief main module - * @ic sy8835 + * @ic sy8835 * * @version 1.0 * @date 2024/11/01 17:35:40 @@ -48,7 +48,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/pwm/pwm.c b/UsrSrc/pwm/pwm.c index dabe9f1..ed40831 100644 --- a/UsrSrc/pwm/pwm.c +++ b/UsrSrc/pwm/pwm.c @@ -138,57 +138,5 @@ void PWM_Duty_Set(Pwm_Channels_e nPWM_Ch,uint8_t nPWM_CMP) } } -#if 0 - -/* - ******************************************************************************* - * void HuXi_Led(Pwm_Channels_e nPWM_Ch, uint8_t Delay_Timer) - * - * Description : ºôÎüµÆ¹¦Äܺ¯Êý - * - * Arguments : Pwm_Channels_e nPWM_Ch:¶ÔÓ¦µÄPWMͨµÀ - uint8_t Delay_Timer:¸ü¸ÄÒ»´ÎPWMÊä³öÕ¼¿Õ±ÈËùÐèµÄʱ¼ä¡£ - - * Returns : None - - * Notes : ×¢ÒâPWM³õʼ»¯ÉèÖÃÖеÄPWM counter reload value£¬´Ó¶øÏÞ¶¨ÁËPWM compare valueµÄ´óС¡£ - * - ******************************************************************************* - */ -void HuXi_Led(Pwm_Channels_e nPWM_Ch, uint8_t Delay_Timer) -{ - static uint8_t nHuXi_Cnt; - static uint8_t nHuXi_Timer_Cnt; - static bit HuXi_Dir_Flg; - - nHuXi_Timer_Cnt++; - if(nHuXi_Timer_Cnt <= Delay_Timer) - return; - - nHuXi_Timer_Cnt = 0; - if(!HuXi_Dir_Flg) - { - nHuXi_Cnt += 2; - if( nHuXi_Cnt >= 254 ) - { - HuXi_Dir_Flg = 1; - nHuXi_Cnt = 3; - } - } - else - { - nHuXi_Cnt -= 2; - if(nHuXi_Cnt <= 3) - { - HuXi_Dir_Flg = 0; - nHuXi_Cnt = 3; - } - } - - PWM_Duty_Set(nPWM_Ch, nHuXi_Cnt); -} - -#endif - #endif diff --git a/UsrSrc/sleep/sleep.c b/UsrSrc/sleep/sleep.c index 2879957..4ee66e0 100644 --- a/UsrSrc/sleep/sleep.c +++ b/UsrSrc/sleep/sleep.c @@ -31,17 +31,17 @@ /******************************************************************************\ Variables definitions \******************************************************************************/ -bit Enter_Ship_Mode_Flag = 0; //½øshipmode±êÖ¾ +bit Enter_Ship_Mode_Flag; //½øshipmode±êÖ¾ -uint8_t Boot_ShipMode_Flg = 0; //Wake Up From ShipMode +uint8_t Boot_ShipMode_Flg; //Wake Up From ShipMode -uint16_t gAwake_Source = 0; //»½ÐÑÔ´±ê־λ +uint16_t gAwake_Source; //»½ÐÑÔ´±ê־λ -uint8_t Decnt_SleepDelay = ENTER_STANDBYMODE_CNT; +uint8_t Decnt_SleepDelay; -uint8_t Enter_ShipMode_Debounce = 0; +uint8_t Enter_ShipMode_Debounce; -bit Enter_Sleep_Cnt_Restart_Flag = 0; +bit Enter_Sleep_Cnt_Restart_Flag; /******************************************************************************\ Functions definitions diff --git a/UsrSrc/system/system.c b/UsrSrc/system/system.c index 89d7bf1..271b257 100644 --- a/UsrSrc/system/system.c +++ b/UsrSrc/system/system.c @@ -114,7 +114,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 @@ -128,6 +128,8 @@ void System_Init(void) pmu_Init(); + Decnt_SleepDelay = ENTER_STANDBYMODE_CNT; + Systerm_State.Next_State = POWER_ON_STATE; } @@ -148,13 +150,7 @@ void System_Init(void) void EX0_isr(void) interrupt Interrupt_Vector_IE0 { -#if 0 - if( IRQ_FLAG&0x01 ) //pmu irq negtive interrupt. - { - IRQ_FLAG = 0x01; - // Get_PMU_Info(&pmu_Info); //»ñÈ¡pmu״̬ - } -#endif + #if SLEEP_ENABLE Enter_Sleep_Cnt_Restart_Flag = 1; diff --git a/UsrSrc/timer/sys_tim.c b/UsrSrc/timer/sys_tim.c index f0a3cf8..2dc9eb6 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 b3696b7..407da78 100644 --- a/UsrSrc/uart/uart.c +++ b/UsrSrc/uart/uart.c @@ -3,7 +3,7 @@ * * @file uart.c * @brief uart module - * @ic sy8835 + * @ic sy8835 * * @version 1.0 * @date 2024/11/01 15:00:40 @@ -34,21 +34,28 @@ #define PARITYBIT EVEN_PARITY //¶¨ÒåУÑéλ - /******************************************************************************\ +/******************************************************************************\ Variables definitions - \******************************************************************************/ +\******************************************************************************/ bit busy0; #ifdef VOX_RX + #if UART0_ENABLE -idata uint8_t RX0_Buffer[COM0_Data_Lenth] = 0; //½ÓÊÕ»º³å -bit Uart0_RX_Finish_Flag = 0; + +idata uint8_t RX0_Buffer[COM0_Data_Lenth]; //½ÓÊÕ»º³å + +bit Uart0_RX_Finish_Flag; + #endif #if UART1_ENABLE -idata uint8_t RX1_Buffer[COM0_Data_Lenth] = 0; //½ÓÊÕ»º³å -bit Uart1_RX_Finish_Flag = 0; + +idata uint8_t RX1_Buffer[COM0_Data_Lenth]; //½ÓÊÕ»º³å + +bit Uart1_RX_Finish_Flag; + #endif #endif @@ -79,16 +86,6 @@ void UART0_Init(void) SFRADDR = P0_OE; //Set P02 And P03 As Output. SFRDATA |= 0x0C; -// SFRADDR = P0_IE; //Set P02 And P03 As Input. -// SFRDATA |= 0x0C; - -// SFRADDR = P0_PU; //Set P02 And P03 30K Pullup. -// SFRDATA |= 0x0C; - -// SFRADDR = MFP_CTL0; //VOR¡¢VOL¶¼Ê¹ÓÃUART0½øÐзÖʱͨѶ¡£ -// SFRDATA &=~ 0x0F; -// SFRDATA |= 0x09; - #else /* vor¡¢volʹÓò»Í¬uart½øÐÐͨѶ */ @@ -159,13 +156,13 @@ void Uart0SendPacket(uint16_t Length,uint8_t *TransBuf) } #endif -uint8_t Rx0Status = 0; -uint8_t RX0_Cnt = 0; +uint8_t Rx0Status; + +uint8_t RX0_Cnt; + #if XUANHENG - -uint16_t RX0DataLen = 0; - +uint16_t RX0DataLen; #endif #define Vox_Comm_JL_HEADER_DATA_LEN 4 @@ -306,7 +303,7 @@ void uart0_Interrupt(void) interrupt Interrupt_Vector_RI_TI #if UART1_ENABLE -bit busy1 = 0; +bit busy1; /* ******************************************************************************* @@ -374,7 +371,6 @@ void Uart1SendPacket(uint16_t Length,uint8_t *TransBuf) S1CON |= UART_REC_ENABLE; //Enabel UART0's RX } - /* ******************************************************************************* * void Uart1SendString(char *s) @@ -462,7 +458,7 @@ void uart1_Interrupt(void) interrupt Interrupt_Vector_RI1_TI1 #if UART2_ENABLE -bit busy2 = 0; +bit busy2; #ifdef _DEBUG_ALL diff --git a/UsrSrc/userapp/userapp.c b/UsrSrc/userapp/userapp.c index 773b3a6..c860d5f 100644 --- a/UsrSrc/userapp/userapp.c +++ b/UsrSrc/userapp/userapp.c @@ -3,7 +3,7 @@ * * @file UserApp.c * @brief UserApp module - * @ic sy8835 + * @ic sy8835 * * @version 1.0 * @date 2024/11/01 15:00:40 @@ -32,15 +32,11 @@ #include "led.h" #include "vox_module.h" #include "adc.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 @@ -48,326 +44,18 @@ xdata 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ÁÁʱ¼ä¼ÆÊ± +bit Wkup_Earphone_Flag; //±£»¤Ïûʧºó£¬ÐèÒªÉýѹ»½ÐѶú»ú±ê־λ -bit LED_On_Flag = 0; +uint8_t Wkup_Source_Flag; //»½ÐÑÔ´±êÖ¾ -bit Wkup_Earphone_Flag = 0; //±£»¤Ïûʧºó£¬ÐèÒªÉýѹ»½ÐѶú»ú±ê־λ +uint8_t Power_index; -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 ) - { - 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); - } - } - - 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; - - Breathing_Light_Cnt = LED_R; - } - 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 PMU_ADC_GetValue_Machine(void) @@ -385,7 +73,7 @@ void LED_Display_App(void) void PMU_ADC_GetValue_Machine(void) { #ifdef _DEBUG_ADC - printf("adc chn:%d,pmu:%d,Ivol:%d,Vbat:%d,Vin:%d,Vpmid:%d,Vor:%d,Vol:%d,Vdd:%d,Ivor:%d.\r\n",(u16)ADC_Chn_Num,(u16)g_Vpmu_Adc,(u16)g_pmu_Adc_Ivol,(u16)Vbat_Adc,(u16)g_pmu_Adc_Vin,(u16)g_pmu_Adc_Vpmid,(u16)g_pmu_Adc_Vor,(u16)g_pmu_Adc_Vol,(u16)g_pmu_Adc_Vdd,(u16)g_pmu_Adc_Ivor); + //printf("adc chn:%d,pmu:%d,Ivol:%d,Vbat:%d,Vin:%d,Vpmid:%d,Vor:%d,Vol:%d,Vdd:%d,Ivor:%d.\r\n",(u16)ADC_Chn_Num,(u16)g_Vpmu_Adc,(u16)g_pmu_Adc_Ivol,(u16)Vbat_Adc,(u16)g_pmu_Adc_Vin,(u16)g_pmu_Adc_Vpmid,(u16)g_pmu_Adc_Vor,(u16)g_pmu_Adc_Vol,(u16)g_pmu_Adc_Vdd,(u16)g_pmu_Adc_Ivor); #endif PMU_ADC_Chn_Data(ADC_Chn_Num++); @@ -436,7 +124,7 @@ void System_Drivers_Machine(void) #if DISCHARGE_ENABLE DisCharge_Handler(); #endif - + #if BAT_VALUE check_bat_level(); #endif @@ -473,8 +161,6 @@ void PMU_State_Machine(void) * Return : None * Note : None *****************************************************************************/ -uint8_t Power_index = 0; - void SysTem_State_Machine(void) { uint8_t ret = 0; @@ -519,9 +205,10 @@ void SysTem_State_Machine(void) /*ϵͳÕý³£¹¤×÷ÖÐÐèÒª´¦ÀíµÄ¹¦ÄÜ£» 1¡¢³õʼ»¯½øÈëSleepµÄ¶¨Ê±Æ÷£» */ - #if SLEEP_ENABLE +#if SLEEP_ENABLE Decnt_SleepDelay = ENTER_STANDBYMODE_CNT; - #endif +#endif + #ifdef _DEBUG_MAIN printf("Normal State (line:%d)\r\n", (uint16_t)__LINE__); #endif @@ -581,7 +268,7 @@ void SysTem_State_Machine(void) /*1¡¢»½ÐѺó¹¤×÷N msºó½øÈëSleep Mode,NÐèÒª´óÓÚ100ms¡£ 2¡¢ÓÐVIN´æÔÚ¡¢VOX·Åµç¡¢»½ÐÑÔ´ÖжϵÄÇé¿öÏ£¬Ïµ²»»á½øÈësleep mode¡£ */ - #if SLEEP_ENABLE +#if SLEEP_ENABLE if(F_sys_tim_1s) { @@ -625,7 +312,7 @@ void SysTem_State_Machine(void) } } - #endif +#endif break; case SLEEP_STATE: diff --git a/UsrSrc/vox/vox_module.c b/UsrSrc/vox/vox_module.c index a93b58d..611b4f6 100644 --- a/UsrSrc/vox/vox_module.c +++ b/UsrSrc/vox/vox_module.c @@ -3,7 +3,7 @@ * * @file VOX_Module.c * @brief VOL/R module - * @ic sy8835 + * @ic sy8835 * * @version 1.0 * @date 2024/11/01 09:59:40 @@ -30,15 +30,13 @@ #include "adc.h" #include "userapp.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 +61,9 @@ bit Vox_Output_Short_Flag = 0; \******************************************************************************/ #if VOX_FOLLOW_CHG -xdata uint16_t Vox_Follow_Chg_Debounce = 0; +uint8_t Vox_Follow_Init_Deb; + +xdata uint16_t Vox_Follow_Chg_Debounce; g_Vox_Fllow_Chg_Cfg xdata Vox_Fllow_Chg; @@ -73,63 +73,63 @@ 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_BES_Addr_Flag[2] = {0}; +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]; //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; #endif -bit OpenCover_TX_Cmd_Flag = 0; +bit OpenCover_TX_Cmd_Flag; -#define KEY_TWS_PAIR_TIMER 2 -#define KEY_TWS_PAIR_CNT 6 +#define KEY_TWS_PAIR_TIMER 2 +#define KEY_TWS_PAIR_CNT 6 #if XUANHENG -xdata uint8_t Vox_Pairing_State[2] = {0}; //¶ú»úÅä¶Ô״̬£¬0ÊÇÎÞЧ£¬1ÊÇÕýÔÚÅä¶Ô£¬2ÊÇÅä¶Ô³É¹¦£¬3²»´¦Àí£¬±£³Öµ±Ç°×´Ì¬¡£ +xdata uint8_t Vox_Pairing_State[2]; //¶ú»úÅä¶Ô״̬£¬0ÊÇÎÞЧ£¬1ÊÇÕýÔÚÅä¶Ô£¬2ÊÇÅä¶Ô³É¹¦£¬3²»´¦Àí£¬±£³Öµ±Ç°×´Ì¬¡£ -xdata uint8_t Vox_Set_BES_Addr_Flag[2] = {0}; +xdata uint8_t Vox_Set_BES_Addr_Flag[2]; -xdata uint8_t BES_Addr[6] = {0}; //À¶ÑÀ¶ú»úµØÖ·£¬Vox_Bes_Addr[0][6]£ºVOL£»Vox_Bes_Addr[1][6]£ºVOR +xdata uint8_t BES_Addr[6]; //À¶ÑÀ¶ú»úµØÖ·£¬Vox_Bes_Addr[0][6]£ºVOL£»Vox_Bes_Addr[1][6]£ºVOR -xdata uint8_t Random_Data[8] = {0}; +xdata uint8_t Random_Data[8]; -xdata uint8_t Bes_Bet_Level[2] = {0}; //¶Ô¶úµç³ØµçÁ¿ÐÅÏ¢£¬Bes_Bet_Level[0]£º×ó¶ú£»Bes_Bet_Level[1]£ºÓÒ¶ú +xdata uint8_t Bes_Bet_Level[2]; //¶Ô¶úµç³ØµçÁ¿ÐÅÏ¢£¬Bes_Bet_Level[0]£º×ó¶ú£»Bes_Bet_Level[1]£ºÓÒ¶ú -xdata uint8_t Bes_Chg_Full[2] = {0}; //¶Ô¶úÓ²¼þÊÇ·ñÂúµç£º0·ÇÂúµç£»1£ºÂúµç¡£ +xdata uint8_t Bes_Chg_Full[2]; //¶Ô¶úÓ²¼þÊÇ·ñÂúµç£º0·ÇÂúµç£»1£ºÂúµç¡£ -xdata uint8_t Tws_Paired_Record[2] = {0}; //TWSÅä¶Ô¼Ç¼£»0£ºÓÐTWSÅä¶Ô¼Ç¼£»1£ºÃ»ÓÐTWSÅä¶Ô¼Ç¼£» +xdata uint8_t Tws_Paired_Record[2]; //TWSÅä¶Ô¼Ç¼£»0£ºÓÐTWSÅä¶Ô¼Ç¼£»1£ºÃ»ÓÐTWSÅä¶Ô¼Ç¼£» -xdata uint8_t Phone_Paired_Record[2] = {0}; //ÊÖ»úÅä¶Ô¼Ç¼£»0£ºÓÐÓëÊÖ»úÅä¶Ô¼Ç¼£»1£ºÃ»ÓкÍÊÖ»úÅä¶Ô¼Ç¼¡£ +xdata uint8_t Phone_Paired_Record[2]; //ÊÖ»úÅä¶Ô¼Ç¼£»0£ºÓÐÓëÊÖ»úÅä¶Ô¼Ç¼£»1£ºÃ»ÓкÍÊÖ»úÅä¶Ô¼Ç¼¡£ -xdata uint8_t Bes_OTA_State[2] = {0}; //¶ú»ú¾²Ä¬Éý¼¶×´Ì¬£»1£ºÓУ»0£ºÃ»ÓÐ +xdata uint8_t Bes_OTA_State[2]; //¶ú»ú¾²Ä¬Éý¼¶×´Ì¬£»1£ºÓУ»0£ºÃ»ÓÐ -xdata uint8_t Bes_Set_SN_State[2] = {0}; //¶ú»úÓ¦´ð²ÖдÈëSNÊÇ·ñ³É¹¦¡£1£º³É¹¦£»0£ºÊ§°Ü +xdata uint8_t Bes_Set_SN_State[2]; //¶ú»úÓ¦´ð²ÖдÈëSNÊÇ·ñ³É¹¦¡£1£º³É¹¦£»0£ºÊ§°Ü -xdata uint8_t Bes_In_Pair_State[2] = {0}; //¶ú»ú½øÈëÅä¶Ô״̬±ê־λ +xdata uint8_t Bes_In_Pair_State[2]; //¶ú»ú½øÈëÅä¶Ô״̬±ê־λ -xdata uint8_t Vox_Clear_Pair_Flag[2] = {0}; +xdata uint8_t Vox_Clear_Pair_Flag[2]; -bit Vol_Bes_Addr_Flag = 0; -bit Vor_Bes_Addr_Flag = 0; +bit Vol_Bes_Addr_Flag; +bit Vor_Bes_Addr_Flag; -xdata uint8_t SN_Num[22] = {0}; //SNÂ룬ÐèÒª´ÓOTPµÄ¹Ì¶¨Î»ÖûñÈ¡¡£ +xdata uint8_t SN_Num[22]; //SNÂ룬ÐèÒª´ÓOTPµÄ¹Ì¶¨Î»ÖûñÈ¡¡£ -xdata uint8_t SN_Num_Start = 0; //SNÂë·¢ËÍÆðʼλÖã¬Óпª¸Ç¶¯×÷ʱÇåÁã¡£ +xdata uint8_t SN_Num_Start; //SNÂë·¢ËÍÆðʼλÖã¬Óпª¸Ç¶¯×÷ʱÇåÁã¡£ -bit gShip_Mode_Flag = 0; //´¬ÔËģʽ±ê־λ£º0£ºÕý³£¹Ø»ú£»1£º´¬ÔËģʽ +bit gShip_Mode_Flag; //´¬ÔËģʽ±ê־λ£º0£ºÕý³£¹Ø»ú£»1£º´¬ÔËģʽ #else -xdata uint8_t Net_Info[2][13] = {0}; +xdata uint8_t Net_Info[2][13]; -xdata uint8_t MAC_Addr[2][18] = {0}; +xdata uint8_t MAC_Addr[2][18]; -xdata uint8_t Earphone_Vbat[2] = 0; //¶Ô¶úµçÁ¿ +xdata uint8_t Earphone_Vbat[2]; //¶Ô¶úµçÁ¿ #endif /******************************************************************************\ @@ -336,7 +336,7 @@ xdata uint8_t Earphone_Vbat[2] = 0; // switch(VOX_Enable_Mode) { - case VOX_TRANS_Mode: //¹Ø±Õ×Ô¶¯Ê¶±ð¸ºÔصÄÉÏÀ­µç×è¡£ + case VOX_TRANS_Mode: //¹Ø±Õ×Ô¶¯Ê¶±ð¸ºÔصÄÉÏÀ­µç×è¡£ break; @@ -388,8 +388,6 @@ xdata uint8_t Earphone_Vbat[2] = 0; // I2cSfr_Write( VOX_CFG, VOX_Confg ); } - - #endif /* ******************************************************************************* @@ -435,6 +433,7 @@ void Vox_Det_Machine(void) static bit Vox_Getinto_Sleep_Flag; static uint8_t CHIP_STA1_BK; + static uint8_t Vox_Voltage_Hold_Timer; static uint8_t Vox_TX_Timer; @@ -490,7 +489,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; @@ -541,7 +540,7 @@ void Vox_Det_Machine(void) } /* ¿ª¹Ø¸Çºó£¬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++; @@ -582,15 +581,13 @@ void Vox_Det_Machine(void) printf( "Open/Close Box,Earphones In Box(Num:%d)(VoxSta:0x%x).\r\n",(u16)EarPhone_Num, (u16)(pmu_Info.pmu_VOX_STA) ); #endif } - } - /* ·¢ËÍ¿ª¸ÇÖ¸Áî*/ 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); @@ -606,34 +603,30 @@ void Vox_Det_Machine(void) if( ( Vox_Output_Debounce % Vox_TX_Interval_2 ) == 0 ) //200ms·¢ËÍÒ»´Î { #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); //×ó¶ú·¢¿ª¸ÇÖ¸Áî£¬Çø·Ö¶ú»úͨµÀ¡£ + HandleTxCommand(VHOUSE_CMD_OPEN_WINDOW,VOL_CHAN); //×ó¶ú·¢¿ª¸ÇÖ¸Áî£¬Çø·Ö¶ú»úͨµÀ¡£ #elif XUANHENG HandleTxCommand(CMD_HEARTBEAT,VOL_CHAN); #endif + #endif } else if( ( Vox_Output_Debounce % Vox_TX_Interval ) == 0 ) //200ms·¢ËÍÒ»´Î { -#ifdef VOX_TX +#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); //ÓÒ¶ú·¢¿ª¸ÇÖ¸Áî£¬Çø·Ö¶ú»úͨµÀ¡£ + HandleTxCommand(VHOUSE_CMD_OPEN_WINDOW,VOR_CHAN); //ÓÒ¶ú·¢¿ª¸ÇÖ¸Áî£¬Çø·Ö¶ú»úͨµÀ¡£ #elif XUANHENG - HandleTxCommand(CMD_HEARTBEAT,VOR_CHAN); - #endif + #endif } @@ -674,7 +667,7 @@ void Vox_Det_Machine(void) { if ( pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn ) ) { - Earphone_Chg_Flag = 1; + Earphone_Chg_Flag_led = 1; #ifdef LED_DISPLAY LED_On_Flag = 1; #endif @@ -733,7 +726,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++; @@ -754,17 +747,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 @@ -775,17 +762,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 @@ -803,17 +784,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_CLOSE_WIN_GET_VBAT,VOL_CHAN); //×ó¶ú·¢¿ª¸ÇÖ¸Áî£¬Çø·Ö¶ú»úͨµÀ¡£ #elif XUANHENG - HandleTxCommand(CMD_TWS_GET_BTADDR,VOL_CHAN); - #endif #endif @@ -824,16 +799,11 @@ void Vox_Det_Machine(void) #ifdef VOX_TX #if JIELI - HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOR_CHAN); //ÓÒ¶ú·¢¿ª¸ÇÖ¸Áî£¬Çø·Ö¶ú»úͨµÀ¡£ #elif ZHONGKE - - HandleTxCommand(VHOUSE_CMD_GET_TWS_BTADDR,VOR_CHAN); //ÓÒ¶ú·¢¿ª¸ÇÖ¸Áî£¬Çø·Ö¶ú»úͨµÀ¡£ - + HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOR_CHAN); //ÓÒ¶ú·¢¿ª¸ÇÖ¸Áî£¬Çø·Ö¶ú»úͨµÀ¡£ #elif XUANHENG - HandleTxCommand(CMD_TWS_GET_BTADDR,VOR_CHAN); - #endif #endif @@ -900,13 +870,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 @@ -917,13 +883,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 @@ -966,13 +928,12 @@ void Vox_Det_Machine(void) return; } - /*¶ú»ú³öÈëºÐÅжÏ*/ if( CHIP_STA1_BK != ( pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn ) ) ) //²éѯ¶ú»úloadon״̬£¬loadon״̬¸Ä±ä£¬Ôò˵Ã÷Óжú»ú³öÈëºÐ¡£ { if( pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn ) ) { - Earphone_Chg_Flag = 1; + Earphone_Chg_Flag_led = 1; #ifdef LED_DISPLAY LED_On_Flag = 1; #endif @@ -1000,8 +961,6 @@ void Vox_Det_Machine(void) * ******************************************************************************* */ -uint8_t Vox_Follow_Init_Deb = 0; - void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) { static bit nVpmid_Value_Setting; @@ -1086,9 +1045,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",g_pmu_Adc_Ivor,(u16)__LINE__); #endif @@ -1099,11 +1058,11 @@ 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",g_pmu_Adc_Ivol,(u16)__LINE__); + printf("Follow CHG Sta1,VOL Chging(Ivol:%dmA).(line:%d)\r\n",(u16)g_pmu_Adc_Ivol,(uint16_t)__LINE__); #endif } @@ -1131,7 +1090,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] = ON; //ÅжÏVORÓжú»úÔÚºÐÕý³£³éµç #ifdef _DEBUG_FOLLOW - printf("Follow CHG Sta2,Get IVOR:%dmA.(line:%d)\r\n",(u16)g_pmu_Adc_Ivor,(u16)__LINE__); + printf("Follow CHG Sta2,Get IVOR:%dmA.(line:%d)\r\n",(uint16_t)g_pmu_Adc_Ivor,(u16)__LINE__); #endif } @@ -1141,7 +1100,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] = ON; //ÅжÏVOLÓжú»úÔÚºÐÕý³£³éµç #ifdef _DEBUG_FOLLOW - printf("Follow CHG Sta2,Get IVOL:%dmA.(line:%d)\r\n",(u16)g_pmu_Adc_Ivol,(u16)__LINE__); + printf("Follow CHG Sta2,Get IVOL:%dmA.(line:%d)\r\n",(uint16_t)g_pmu_Adc_Ivol,(u16)__LINE__); #endif } @@ -1167,7 +1126,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) n_Vox_Fllow_Chg->Vox_Follow_Start = OFF; //ÖØÆô¶¯¸úËæ³ä #ifdef _DEBUG_FOLLOW - printf("Follow CHG Sta3,VOX Chg ReInit.(line:%d)\r\n",(u16)__LINE__); + printf("Follow CHG Sta3,VOX Chg ReInit.(line:%d)\r\n",(uint16_t)__LINE__); #endif } else @@ -1291,14 +1250,14 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) Follow_Chg_Sta = Vox_Follow_Chg_Sta2; #ifdef _DEBUG_FOLLOW - printf("Follow CHG Sta4,VOx Vpmid AddSta(Vout:0x%x,Ivol:%dmA,Ivor:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivol,g_pmu_Adc_Ivor,(u16)__LINE__); + printf("Follow CHG Sta4,VOx Vpmid AddSta(Vout:0x%x,Ivol:%dmA,Ivor:%dmA)(line:%d).\r\n",(uint16_t)n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,(uint16_t)g_pmu_Adc_Ivol,(uint16_t)g_pmu_Adc_Ivor,(u16)__LINE__); #endif } #ifdef _DEBUG_FOLLOW else { - printf("Follow CHG Sta4,VOx Ching(Vout:0x%x,Ivol:%dmA,Ivor:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivol,g_pmu_Adc_Ivor,(u16)__LINE__); + printf("Follow CHG Sta4,VOx Ching(Vout:0x%x,Ivol:%dmA,Ivor:%dmA)(line:%d).\r\n",(uint16_t)n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,(uint16_t)g_pmu_Adc_Ivol,(uint16_t)g_pmu_Adc_Ivor,(u16)__LINE__); } #endif @@ -1317,13 +1276,13 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) Follow_Chg_Sta = Vox_Follow_Chg_Sta2; #ifdef _DEBUG_FOLLOW - printf("Follow CHG Sta4,VOR Vpmid AddSta(Vout:0x%x,Ivor:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivor,(u16)__LINE__); + printf("Follow CHG Sta4,VOR Vpmid AddSta(Vout:0x%x,Ivor:%dmA)(line:%d).\r\n",(uint16_t)n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,(uint16_t)g_pmu_Adc_Ivor,(u16)__LINE__); #endif } #ifdef _DEBUG_FOLLOW else { - printf("Follow CHG Sta4,VOR Ching(Vout:0x%x,Ivor:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivor,(u16)__LINE__); + printf("Follow CHG Sta4,VOR Ching(Vout:0x%x,Ivor:%dmA)(line:%d).\r\n",(uint16_t)n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,(uint16_t)g_pmu_Adc_Ivor,(u16)__LINE__); } #endif } @@ -1337,13 +1296,13 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) Follow_Chg_Sta = Vox_Follow_Chg_Sta2; #ifdef _DEBUG_FOLLOW - printf("Follow CHG Sta4,VOL Vpmid AddSta(Vout:0x%x,Ivol:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivol,(u16)__LINE__); + printf("Follow CHG Sta4,VOL Vpmid AddSta(Vout:0x%x,Ivol:%dmA)(line:%d).\r\n",(uint16_t)n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,(uint16_t)g_pmu_Adc_Ivol,(u16)__LINE__); #endif } #ifdef _DEBUG_FOLLOW else { - printf("Follow CHG Sta4,VOL Ching(Vout:0x%x,Ivol:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivol,(u16)__LINE__); + printf("Follow CHG Sta4,VOL Ching(Vout:0x%x,Ivol:%dmA)(line:%d).\r\n",(uint16_t)n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,(uint16_t)g_pmu_Adc_Ivol,(u16)__LINE__); } #endif } @@ -1367,7 +1326,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) { n_Vox_Fllow_Chg->Vpmid_SubSta_Flag = ON; #ifdef _DEBUG_FOLLOW - printf("Follow CHG SubSta,VOL/VOR(line:%d).\r\n",(u16)__LINE__); + printf("Follow CHG SubSta,VOL/VOR(line:%d).\r\n",(uint16_t)__LINE__); #endif } } @@ -1377,7 +1336,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) { n_Vox_Fllow_Chg->Vpmid_SubSta_Flag = ON; #ifdef _DEBUG_FOLLOW - printf("Follow CHG SubSta,VOR(line:%d).\r\n",(u16)__LINE__); + printf("Follow CHG SubSta,VOR(line:%d).\r\n",(uint16_t)__LINE__); #endif } } @@ -1388,7 +1347,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) { n_Vox_Fllow_Chg->Vpmid_SubSta_Flag = ON; #ifdef _DEBUG_FOLLOW - printf("Follow CHG SubSta,VOL(line:%d).\r\n",(u16)__LINE__); + printf("Follow CHG SubSta,VOL(line:%d).\r\n",(uint16_t)__LINE__); #endif } } @@ -1448,7 +1407,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) Follow_Chg_Sta = Vox_Follow_Chg_Sta1; } #ifdef _DEBUG_FOLLOW - printf("Follow CHG AddSta,(STA:0x%x,Vpmid:0x%x)(line:%d)\r\n",(u16)Follow_Chg_Sta,(u16)n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,(u16)__LINE__); + printf("Follow CHG AddSta,(STA:0x%x,Vpmid:0x%x)(line:%d)\r\n",(uint16_t)Follow_Chg_Sta,(uint16_t)n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,(uint16_t)__LINE__); #endif Set_PMU_Boost_Vout(n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present); diff --git a/sy8835_demo.si4project/sy8835_demo.SearchResults b/sy8835_demo.si4project/sy8835_demo.SearchResults index aed1aa5..e54da2f 100644 --- a/sy8835_demo.si4project/sy8835_demo.SearchResults +++ b/sy8835_demo.si4project/sy8835_demo.SearchResults @@ -1,2 +1,2 @@ ----- LED_CTL Matches (1 in 1 files) ---- -reg3315.h (UsrInc\inc) line 92 : #define LED_CTL 0x13 +---- reg3315 Matches (1 in 1 files) ---- +define.h (UsrInc\inc) line 142 : #include "reg3315.h" diff --git a/sy8835_demo.si4project/sy8835_demo.sip_sym b/sy8835_demo.si4project/sy8835_demo.sip_sym index 16f86d699907013fe8b2128e115d2a83aeeecc47..ed76abfb7f7fabd9c54e998637174f912a14e313 100644 GIT binary patch delta 22326 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 K|F1TXA^r!BQy^vl diff --git a/sy8835_demo.si4project/sy8835_demo.sip_xab b/sy8835_demo.si4project/sy8835_demo.sip_xab index 95e0b3ef3916dfff0630e6da608919fd42580cf1..1ebd7a59675a708f27ebf0c375914a6dc2370304 100644 GIT binary patch literal 143360 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 literal 1448 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 BLH_^% delta 7384 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 diff --git a/sy8835_demo.si4project/sy8835_demo.sip_xf b/sy8835_demo.si4project/sy8835_demo.sip_xf index 07e19b68064513aa241ef2ffaa87ff33a36fa648..11d5a3ad70ecee77b8f0955ecad4a783393a9636 100644 GIT binary patch delta 8413 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 OK&VH#Y_G$5%l`o_AwC%Z delta 7718 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 Zo2o?xOn^hh%!X*7~*bXmUS@qODZ$Bu z#!k$w(aVqG#!g__aM}?>1c(v&Ws?m@FuUw-%w;=#vS7kt_JSCK_xq}6Wb^Ou_oVKw zdR6u6)vH&pUcH+AcLkq*IG9X2hH<801PX>>OvW=|Z}LBd^%+uiv^&&VEsSBLB_1D| z4MDEi5jTU{u~p<8Yaejq^kKoK$<`>-4A7=E zjkLefqODdeBV(ljjeHgwhN&j55otBtBy7-13WxSvX(8y}t@SmYAq-bnwhaUSEEBKX zqUTi6RxCt7-KN1{b=a>6v8sb-h&09=qz{5mVEomn(nha^T9Oc;2PzCZ^_$%8mSQ1> z3K7vyuXT>537^^Y*5a(?p{h-X=Txiv&IM2XSv$K6O?V0b;Ke&ZtCI3}x6o&HEq&(1 zDHm=^fl*f);Qj=-v@Bc@9z9msG0tyTQ47f??Rs)I zCZPq3f@o`k=%(4D_00S<+5llys@p0=7`@kxbzSbYETZx#0*2Jsk(Xyk&^1%!?MS2N zFr9K%4g@Qyb74sBDzLIdKsXZg&_p`)LZB{ab2>o7vs3D`nW7q#6QeIj+4OX0EvhC( zExpj3re|)6T8vC0r4tewl%0$0%BnuCpppd(i4>}qL=<099=9Vc`4A#v#YV}Vi8ZGoVzut{@zAfm9W(VqeY73!;>JS7(J6{ z7A8$RH#^`~(a~kBqY-ubnIcug-3f`;*Pv-2l8ypX!B}V)ZE|WYiL^=m)0+aUkZNL! zm;jMh*~qaZdZ_Qqlw~-M;ZU&~T_gfDCYdx{35Ctj23U!jNr`F}jW0QmM=n8A^`0tH zYVI0gCv~Z>Wn9lF(xb_2HDv7e==@)gA3uHw*(}e^hso0+fpEmpbUbjXo+tZzVYziD)6pn5%Z(rN(` zrH+u|u7!S|z`EUr(4BCH3-H_wo@`+n%wRKGxHiqn{8QM|bcC^;YHISdagR+;WJ4^) z5S?Drp?Le$x}f(lL3k+#+4XA6sh^=o06*+>Ry zOZ|FoPR_gx6|SzMUAspW3kfXU2yMu<4Y(oH7r$OddtQc`Zka{SZffc&7W8Pr0?$RB4uYi2 zg=ndqjujw&J&$hu;Uuh`Di{(MOQC@-%6D1+C=8>XRZ8Z90T&{s-{dDie>Mf6D3}5* zYMyw>83tbq{5KjKE)44GhpNAUdD6g>_jNEmop(pDTGve`$plJTz)QdXqYQ==r2Fr; zDy1$fwdtYPV$}m~v;s&v(A+2_ecs%Z!iv)sJXQ|Bs-#Vm>mYT1=jA7`UmQ;xZVT~If&~KT#HQ7YQfpnq^C|MUU^p2( zSAR++(rAW_lp3YWnLz;h@(lY##&3&R0Ln#q2P+k*E->h}jx>G$om9dA|GJuF+U~&U zG=(R`#ZLO5W1$2_12e*;Ap#x_KQ6bT!-aY^_ev4UGgSt3Gydmr1mMv1 z$$Fa5ITJ4Az`GW0?tEVLr$hw%nWTwMz4l#tuWM8V+QY^8j4w7wNYg8Gw(3yN^na9)P!9llF{0^s1Q) z(B9MPSpGdy==#7)Unr<6fx=T7hM)Hgzam^T-2mn8i5lg~aJN3)n}f|>9j#>(>B2=3 z1(EJ@{Z`oL(Ga6^%!2OD_Nf}^Rl^!C1TN1xw8j7qamuEyiA~g76`=7`vRgf%7__Hp)Jow8T`C6oT@Wjc(;R=RP<$wIQi;vGO6_S>UZW5Il z=auEj97+8TCOod;(cGyLE6$?UFKT$@sr$zYi_M5f z!fE&pc+A}8ful@Gru9;zARx$P}HSsJEGi!t80}>2l|ljJ<+{i z2tiJJ$@I>(|XZnUUpOu+IC!xbd1tX^6$KxPEoa$nj_Jz2$c zN8nDPuHe^606BTcdbBr{+uGr??vrJ-o*Vr_Mx#yE&j9Cq5SC#)$w?@aUjvOKBN$kJ z(F21o9mDA7Oc%en8vb=BTA2P$3yiT%di*Ja=AcB!#|@W?d?fQzz!SjfXnX_geYlO4 z{v_zpX&6ri-jTkGZ?u?ir5!V0$Jqp|)26%N)AAWINX1!K!8b3inO)Is7=w#vPZYFj zVI>G#bkm%RwDJF+IaBDx75M=dvoiN;YO7Duz5m90LV*4>_dDv)dBS0rQ*Mc>FQOt! z*Uzh_;kF?5lLS3q-v(Nh?30H%4^_L#F;iKm_TQ2zX;H%XPxa_amgV)V> z1pVoBczFSO(7oS!92IixnI2sRFK0@WuI`!&jqxXo)c*&CllJvU@&!GgcS z@v|xZyYOJoH_jFGNOxR4_H8j1Tkumt4Boz|TF_r^Owj&$F?Cr?ga=>w=4wH&%#PEz zRE!pPx4@s7*w}(K794mZ6#@g`QqmLMSMUjhfh8;P4Y6eP8G-ltE{^H&X6>wNpgrHT z>F5fel3=cqUhQiy78ditVDN(_4~t@93d!v=>FhtkJ3sA)VgYfO#)%kX2kkn2QL%7} z|4D;*X3$yoda`ZOsIeif$St|SkDK07#y_Dyl< zr4<@)LqT28uxan5Ir`J;E9vSvmGC0?MBGT;`YG5tsOgBKdNzn9?0o3aHPZAq>S@;o zi=Myen24zfYeWqly$eyOT#(*bySc(M992A5;OO^wEhwRIStaec_;h@$Xn%V(d9$&? zw^Y*OgH^?Xh2Tg`*h;jE@j4E+rDh-%q^G}qI$bwEMCWYd!@WMf6bt_8<(|hkLX0+j zux>5f^ktW9pjq!#S)CY2m@eOO(j3fU8L&3ox_TPz>W+c|#O>hUjGWOPKQzZ5RA$gy z|DnalyUo2_;!S$0cbqT=|JeJ1z$oL?WXGVcqj*9g-T}9g7Hz(>Sm3aaP4<;P7Ee-N zrdBP@i3s&(b3V-kIe&XU9qN?y>fhd?W?vxUs<&RC6L?VVF?#g8H1h|ksg+T9fE%+- zDi;>^;9K8K2?~7(4R4DK%&P;}Sv*Pc9qPGysdWd`Zj3r*p7@?{)&HF*o)%Jlf4+EK z1k`d@EEDd~ZdXh)#WwZ&0`V=;H#FfJ;zj`hKeJHG7tYYJg<_Jh+99o)uPJPU&$LyN z*JERI1-Zmg$qiAX4*3r!{0igvWFhGJRj+JFeDp(eqnObLfP zLSNii&0>Ej#$L1qt7L*k-&KwD&P8koEV}h3b{=z>e5)$JUArZoU1VJPmzx&HU|dTe zn@PUgh~swGsA{O|`8ThDL%#3kdR``!#OiqSM~yhbItaLBXl!lN2A3e?*=hnC$y3Kv z(r+(rKz}wpxgf>L1Mf@Sdj{s>(Oc4>BIv^#a~4}ckN$Mac<{`@y%f#7HBOoPvTy>I z&(F|Rx9$iheU@C4c3+k@!Pu7{<>-=WU@#Z*{S*Tnc6D{xAr8f#$<*lMp^`0+glAKuu-YV7a&KJ|+o`rC^Fc|y!6hY(f zu4mEGm@gVIH4W$|q#nLNjDab44ndj#-V)zNa*{gSi-q;s(3xTZEq(eKupRnEpE@=} zLfgjkn9)eCh|CBWw z)W^agsV&_iGT8a|8%;`GUl@G(;RynPi&i$t>}>Qr`X!yVi=|lwUgI?3st9?HT~F8i zU?1JN4)-lK4z;sT6j8JOMxa@)G?Yqc9h`wDWOyuk;weo0e@&tIcj~_zE>;*ZKFv|@ z9ce4io+EwImZqyF!<5%xtK4Ho!DJ;&ega%^EIUH&cjh3ViRU)yRlp)Y@AK+rL*mZ| z-=5*^l`SLi-f%HrkBJ`z+gPoRoR7I3dILMs7~7J(P$~aoi7uiDzlZ6_sX2~8m&_M* zU1-X5X{S`P)?jnjcSCz#ZV%zSh}bsHt0{P6AzC*sL%%#TLN{!Hk|Cn_(0`1^b|1rB z-Lf#p8${?N6A0thwN!^0)LB`q4%MBY!n?65!5x>3l3v>$$uCkA`L*QuY&3w8!TAc- z(XV2-Olt^W-wr05F$Rp6!9x;C^Ta)A)jJ;-3*L?bn2Bc44&(4phLjI3wwc4z=J2BE z@v|zvpYvOuidI-M7iX|{m9>*d3S}`V)y)EY_Tw%e)fl%sO5=aLHl2eJrV@isjDjV}6GLxKMOjTB}7OB;P# zop0jEaQKZp4K>HeTVD&U-2?czDaJ zs%hmrDSG_87#67aPM&&p2XJ=UbWgq7)dX*N*9KVocY>hm@hDx&<9Hi9*r?K{p@9>D ze8=#OuT9@N7{LKP8S3!8F9^Hj7N@|1cG!!BEbTvUlYgi1_@Rq%z!J6U@H(-i+B7!JCZNFg z(JLp#>G}5%UZQ_|Z=PD0;1i-ndm1c~?;}(|6W<@8$cIs^lQtNw_`s1AJ=exPrLjZS z4=y`WC-mied7%ngUcr|i4&CuVy?XU}T%!AT+#&k?2RE`Z@}(ri*m@5|2>hVqL6FwyU7B^O^#TF0p{l4AQ zq>k94K^Q6&7Uxmj8II}=i|etP@|EeKa70`#Dm+iB;p=g`TR$_Y9*BxdM7N5^#1yL^ z%8AfHcUG;6iAfWrwxuN=_~ZI}if=@GR>8C5U+E017h>XKcwet|rtlWmwy2eH;R;Xf zii?~Yy;fwR0!=*-dI0+WX(X-wBQE}EodrboiJ*8~MH1o)xWAH;E?94}eGI^Wl%ctt7^b~lh+y+Tq@FS*YeZ%q z7rXo_8CDVStunL}if|Ha^V1UHE5oiR6{ss~LkTAWrrVau;_5BGrdpf3&jP+?i zV-$Wskg3%uu;)*RpTjmUD4FF$OUVz$Do~f!3dwewr82QSU9+TA8Er8c($ATOdbU`{hH3wFv8WAk0rRsPKGyJLSedo3XN>{+QMZ%q#ifZWQNswtxE3Fh zQtFYcNI<8b&0=sMkAVFn6Q#eB1RsZngCqthy3 zA45Z@H;Lyeu-AljRF8T#S^Se7{!s;f3<0~jbvs`a;Rgpxqga}g{XK3RA7F>9R`EmA zIvzHRQ5;`5x-7BObs=o1f)jB03*IDN`~>^(LZJ&a@C;)ZGlGv{#B{0QGiMlP!Gf*eQ)gYYbM#dw7kRF(5HPy=tAC1S8w1Upu>;bO^I({9GsDy5 zcQ1@>aFeAQ0KF0*b}Zp(xrW_?nx#H*>tO)P5d=N#t$t;!*)F6!Jj}nxR3sj);=s6j zI3u?68^k>QH9&;HEe(P5!zBa8RE#zJ@_}zRgsGWBEqw9614Ub9sY1;4(6!Xva~Iu) zt4mN@mT#Vb9s$PVQfLI@qC^^k37b7A1R!#x+0ZYI;g_cy>MUxj=_^HLP>%$^cKBUt zD_54D%>vR`UD1CblrJ?&O}^Z-L`;#1mLXs))Jkcv3INcFPPnC;mJUXik2FY$qhY@z z$1Xq~T;Fg#ywD4~HNK|X=meJ_*du^O1%4UQS%umW;jKc+pP}hwSnXT?5 zo#&Tl!2FKnc9l~QvhLk6`ty=i1Hgjk1|y)YdBCs>TtRQY=u?zylv=s|Zpz2R5^oTp zWEyU{CU=I%GXmW{?S6cq${yPAAT$8yA>oc-gyn7rLgFa_b7^|6Q3xQRS>^(4capz= z5^gI;{XLB_Fkybe>%$k@3xb8zSRc|)=lC;=0bJh5)6*e@Cenl~ko*w0KN<8#M% zcpv}_RN&Y6e(v(fxhqEEsE+<2SO*ND9piQPJotd;aUB3tY7Xk6+FLeUHw-C1R zs}OocJ*;oMN}S>slc;eD=edo$&>uia$2GUo+$Q^VycJHgr@b2&l|kb&^c;XPFfCsO zNCF%q=`m~IjL|R>6$T0P1C+<}?+exAj|lUGBgsq$@c0e!@i?s`0@F~IrjO_6&I@W> zNqm*s+yLXxi{!G>rr?%(Fc}BXKC|W-gY@@ipJnujIym|rF4QP%f~eUlxQ6aLkVoQV z(95Ze;E_q6VWhMbFBf^7@IdE;_B#?t!T2)B1!d-3ExUl9oeK8!czn_>bK}O0DtrLg zXHnVH4LGZj7=qeALCmI|I3+&aS#|qj5fs~LZ)al!75sftsPhX5^i+*Sh+sz*2ZTC& zsc8y6ofBIeBW1v6*Hs4!A{X$0p~Imx`&72dOcVw9HHXKGln$8*6l-w7t-60HPF%7~ zUrN5%RS!v{E)Q9aU98!Xh*1)}BskZPF>^@uT;eYISI`h+uBR4xI= z3)6(|3MGUdLtnJfbY1ny6fq7lpnwI@N>jB?70onCB0AL?TByl;zLw#`AoZJH7&_>% zIT-;h2g5Tw{6c1dkG0jN^F_@#Z3c|tk(w^I6>NDJN{X^gB4rx1>eiI{d@3UKU)98E zBVv2My>*`ct zE;=^Vn{&ky9n`CjI|F7w+@TiD6W9Jf-=KcwgulY62**^T)4!j&edy7%#fObn9eA-- z@>(%%F9LNOaNAqhBL=_t)!x9+_G`t<3GTf^ZCWcz!8Uzak672pWp!uYIWQQLali`G zf$xn{wiFks^V$U>1o2YHZzV*RpmVM%A{fZ1MFaE7hiVv_Gna8z-_@tpp5=&!4xctg z^#*a4tD+r&T%Thmgf^&anvF&e>giCR zf)@JH3I4vNSc{i!$=(T~7Gr3eZ)9J4g!YD_^sX-^e6(YE4fPyuqn?%s6~Ynu8>Ig!8%5=2l{}IWHNAx>JwY+LM$ZeE^0i4} z(x)F*$&s7HWU{_Y(CB%oJ|{|-EHdT(R^g|~MxL@ShJ{6WJxMbjHE6vNNi(h%Xaj6g zPi>Z_`E;g~da~toz(@&=-Zxgst|k%60v-Hka5bM-@SYakylV#a`zxq5V;fhVhKXZrFyqm@Hy1h zP)(E0v_w6<6l^wDaj&A_Aw)k-eJn&xp*nD7c4(qJu^6n~zuZ8RL$hDA=!h>!L!q$T zJ^=z5mhWuHIZlH+1M~$h4a~Fx~-olu^_5_;KG-QS7+skWv3pHeKY@=6=B;8a9LVgDI zzc`h)FALMveO16F7GOp|bmTr*D?85?jeSmt=B|#@r|(DT_F!dSyPrPtxAYbgRH&=N zhzNBCvNZak7%h#P_xMFyZy`^6CPn;bk{Z0dkZFOu}*tNR8Y^~jWQ@4?HEYWfw)eCr-cpE!A7Bu)2ry}U^%aB=S;co z0)Za2CQZ7#lJ+E0bTAk*UV+@Rz4;3IByok_)sd9~>nM{d$ml2$parSbbiy|1g;b%;r z*_HoF$EW+txGtT})0TyC5Eh_w(#>=iSaf@O6)h?c%h&`6_L*u?PG2Qr)OuZjEXz-m zGM9xRvLe_d&PdZQGbhAEd31$HGq-vU*Y&j<^!kSp+SL=2OA}&DpJVm42WZ@e#kBpL ziGA&+yygOs>aV_B?$3%4ZCup{xn;rVE~d3^R=l_Mo3it2F`I^F)zS4e<9Z8W+VrwT zR!be2$NKkG0@6F2go5da=xshJL)=lbahD)=v~ZW=K?g(o+!^th-th{ zQndRU0W3S3+*=)`Hkai)jAy}?Y8L6y1qu3HzL~_=vwiJ)7Dkw*%D_e5s7ZdqDs)V* zNI0rovIBWY;Mnx0u#bo2xk;z|%v$UVKW*FQk7A9J(22!h7llo4)Yn3!U)0x?pKL6d z13|rkMw;I+&2PhyVfKWXp}R->X;%aIF_NBHVbSj8L8YMId^|qYEy}*60&dB$xF@F$ zoh)hC0cf{Xg+)sm(-awHHuy?oN+#Cf4vx!DfCW5gdt)+*y;NGJWQ#TG*jz#GxrVei zL+?LnJOhLkn(BR~PUkm`ueCfL@-$FZe!2Yc%%Vx+_aoTgC=GqPsgb(=K_`7g0zOKN zO4Ha8aheecLnxH=S=bl>y1vEAS+1HvJzQ<3di#7flLak(AVohMaRmj|T9g^tKubDU z=Oc8%$jZ1k%s^L78-yv?H#G}k^uCs)og>4-lnec$8J&al!N?SS`a+ZzwT28(3|jJf ziq-0L;TE+5ggBVy6sU(qu+_KHpdzQ(QBe2PWI4ML$LlV%4o#bBNnwgqz^gN5cTQCL z8<{;$-r$r) z(w8-%-hv;vrb~M=rsmo^83r!h*B+$c*Rh?lDO%dn&70E?XVE<^1&uY*O5b@c+vTT% z?a=$T3*#|kkY*)``Rn$FQ!FHSJlZWB@N;^HvfTOO%$OX|p^7A0n*Xp!h{BIouPt(zK@?=In>Ck*QWe;74f zCDUy`s3P~}py8_S7yp-yi4zL>!B8N~s_t=fBW+k%2^(YSHjB19i@0bCrb?m?sMcos z+Sv!1^!iJg-a-g9I<=ivNwHBT+#>uneAUJ$>U#??iM#5zb_;B`(S9Ll$B_{<_*sg6 z{$QAPwuK{D5i2M#Y2V@vbYN@-v-vHLF4t?a;DOujW&<3i-@J>UrO}|V6A~4?BQ2(^ z2rhia!U60<57Nptu+k}1!~Zw3d*Q8=ldG=~8Q@q0|D8u8sKOTd zDq#k6HK$I`|3z&gdFNu$B4exI4vsFU2PDN zowrTdKwakt>AvM{hS26{X8&1J+XP*-JVxJ}wu0=nA+|AppEgeD)Ny5+oS%ki{`Btz zOZ&m4V{awtz3JZ+2YT~a@FFb#78YUpZhHlG&!M^`oOLCtndBHf8K?zOP`F0F92XKn zzY+j!$cz^H=>0IAv(<)UH~ZJkfWCen#cs^$^r*AVcm!nRN*;+rryDv>r%$GZc$)^O zGp=)Jmx9pK^zu$bXd&>x!stMM>r6`^+5rl|{?0Ql6x3C%0|)kPc{tXm=#E^tfBWp9 zprZ@pa%n`Q`hR!kG6B}K&Y4POYZ^UX^VZSn$yq^qX3okI@oZxnfLVYU+;g}95qI<= zY=Hql5ZO2Pd@PbGdV2po3!tCzz1YEvt|K=)lB~T3%6{rRV^(kB4B*s)@dyB~hJ1Un zG3t7|ijFRxqV({!+L+-^S^hW%t{ z8ps*f@2>j90D1vh)72pk(o~mr?d(C~qp`O=j z`(j~?^HXf?gW?g|P??eQa@fXQS)^=-A?$B$!+uEA)YHFxYqLo9=3%}@L}a8)G%?5I zrSP(}I?KseMCO9R?0@^Zq`>ArcKs5uk~(jgXEcMfw*RYX98mtm2UBH52b}MTWWX4O zPU+!JoXysFEa)G%p*>*y3GH>fk?fo!64Q7GbVci2U8S5ZD06yndlb0`FWSCZAYy$D`?g2HMHyM0NFK3`oZnv zbqDbRi5wj2tQx39CG;vP|9Yo@Do2$kzG!oV21md{SwW<1VL6twvZD*wDI4-;UDU9a z*l^Dw`rGCTX(77xnc(Ue)uYUT0Z*7V9lWdoyVamAcO*G6LP9RbWuc`*WjZpl5WRN? z0`>VKByTqn*!R3Rk}kb-2_1dGpu!tE{p!vNPj^R!=&kRw?@B9|aLFG+G~=#3jjdyT zGlHz=5!yXEhzv)U51k8UK6zJ4?l%$EfBZt0jY*7NS?;I*z6)vKNSeGQO5sbakmo(z2^%8i-m812oc`@4D`^-;x`tj9QO*GRDQ^!_L4mu22E89!~` z5vFzWIp16a@uyeP`S*TKcYVE;ZoDr;wP!{^s)aEL{POhjjyhUb?MGCRfS}`a)2kJ9 z_Y$*z#{H9otn3!-^o)LbV3&_hBm#8S!(%xYy7l4x$TAE#kYx>{>4vYOv;=DFr2)4Z z_Xtgk(ZX!9fBN=ma6F45bnA|;VnE7%+W{?Bzy5=Z1zk5aP1pVKGhz3yd}N_y*?s`Hp7T=JmTK!{Wu7__n#YJ$CL$OBiLJr zLq#~VYN8u|bq8CnQaW{@mL(HM-iAE5&0v3@r+v#Csb+Vd9JoNtq+`41c$wfhXv(ZT zt@1nnDEFat2i^5{k4X?pmd9+ZKJ$W0eqEcTF<3wWnW zIJi2T0V*N7^yx#ga0S%t+jUU5WkG8ETLZ}8V}XF&d5M@}yamROr{|Ve(q9J7hfNI9 z`Oo|eZZGij4P=gr^nd^7motn1y7zJzxFx@M3ki}<)1KXmQ>q|c`Dv{G!)Nz$hew`U zg=c)qno%szyH^2FB!!tu<&v?XH5 z2UE;Wf%9f-VDU0>nl9g+i|sHtDi3N5YY4akj>F&9!RAB|xmIU~R9)#2(A77*QQcpZw-NjS$4}ONpIRRpD5tD0WhCFsB98=d^VJMUg zwtz?J`D`UUwIyCP)9YFc4%KKLstw6QZE*Jw*Tq#>c*GZhFSKAM{H)ogtE{LWMTb;~#RXO2mN6A-LWPp5bV`){y^Ot&j^F$Kdm#edK zww8Mg#kXMbxtLDP*X-5m>c~cwx0RTb^P0>qP-}Yz z!COilsk`f$Yd~rktwA1u#LpY&I_h1VMU|~n6%N?qR6mxY_0I+8!1ig{X4Og4hR!P% z9Pd4dmuvdDi-O@j<>SQ_+1RBh!YF1FJ_jZ3IJ%>X%d(IbDThnNDS$@_iZwjX$@zt* zPs69H*_zLGiaiC)R5Gwhefi|8*NB?R)Jc^q_F=Z_lsK~@qZkFmY_ElLo6k|KN8V8_ zXBnc3Pe>l$mR6D4oBtk)K;%B|i-%2n=5s!dSnTyC`u5Z;b-q3tMtvgv?Dfg8LM{$> zk0opA;A19LzA=rDVQ_E}aCkVpOZR9F9{uzy_|YQ~lOBBIe3kEWlAEMmKSC(6I!6=V z?4T8Q6e!wr34|ik80nl^qWkKO;g_L6g||P zwdsksR$yEdhiKjYBuAArZ5JYTb>L2m-VGU3F~%w$)f718`1FM)+K&Uj6PpaWX<0qk zob8*t9F8?0uev})=_f;%0oky~NCyXJ$Utx!b8B@mXPuJZK^LJ@27Ei;wFQ#YXwz_S=>WU?Fb*1GUe3zo3 zlV=%$;)MfkzHK4AV3Ilu;C*)(;Rvp>aHgYwfJ+S=yFIfanY?$BOT@)Vm8}mw8>B7g29R9RcR!s> zYq0L`KCR1?pMcIZ4O51L16mkOQ@AWD>jRCKm?8L_XW{rAhiM zxjP`H(~fV{Dnhm|Gi8G*9wp~&PK9FfLsQh?*ftOp7t!}G$jO_6;(B^NRyhz1iED(e zxwb~f5^4IyKP2QMVX;CuG8z%58EoN9>YbyKm+|snr{F}%^&804LU0X?3d~MvYslv# z;tHb&m4Xh<%p<6-ke5bRVkEh@{wH4k_u2A%8!c4Q7BNRY+g%C%|HY&a;I zl)tYExp5fDefRPlc0t_o2^%fSlqxPuk-^SAav%*J9)iu`%sSG|hcSj+nGv>dWk(Kq zNkKQ#bJa+uz_aZ(e}`=Oi;SqHvs;n~n`}B3t!ezQLPgG3Ws}k^73jL%`uzl`4QE$xFaav zsS;D^=)YBl)NB?yxHuB6p|QVjq`x#rlkBP;8{;)SqG2LnlaTl0_Q7Xup@oYo_;QRd z(Lyse76}BQjJ6tsBEMb8L}(7T6oIAVk;d}0G}lkR{d0pnt6EH~L4$)Idc%jiUI|YH z8Tml9m^MX8)SE+9n;VMjxjZRfjsk!Lu;qCGmI|Y7Y@UZIOdgJ(Pmaln2^Hw4I^yN^ z)pZhONx!#`4~<;)tyS7ZMe z!{)xcMx1`0!%fB69o0`&oUGG)uBzYw#9Lf_dX)}Wx!TZD@aW{&TPXiPw$V|Hwbg#t zJW#_SKo{J*#de|7Ewy6&d>9jMFOBz@ruwRCo1Z=o;Ft{z4&&>hkg>HQ${cJ=K@HBu z>g8{0#cH~+CN^+Zop`Z~X3Pn~x5wZ)_+GnJCEDvZ@-+r7ljnu8^}hyl0IyTQ$1np% zqqxmylmmg0-XVZ>wu6;zEvD%X?(?wH=R@wB~xD9tHNh1;?;M>xspHggI?i}ACrSxRzhDU85quV|y#!QaE+Sak5| z9AZ`7b`gZ^_(t+f2a90>Xwq;uRPh=fx40Vi%tRfQMfETU$J93Rr%idQV!f_fOvNKE zy7-~a^Z8t1YA^?I)ee3Dhid>!F)7MC0AvAt0@#!;ejQY}_<3E_K>h;wwLw%mstjb$ zYD5XHfx*Gg#?Kq+6*?Iit}M<`kAg?yFrkc)T-PEhvoNs$)#7TWQoWt_9LFDg*u_R~ zJr{i$d_22KqdYbs=vK8b%E%{@xQ{}PD^K76`YP}a*p=9>7J9^XHI46}i+FJdriE)5 z;14$9WpjBLe6FJv_*2cn1=DnFegj})GZpI{Rn|6ndhtl1tu}7}SJn zD7_pEVAA>A1>-j1+nbLoi(RpiHWa7vi2a9v(j(loU94_ShQk4RGBkKgr-Q@3XU#)PB$`1JQKo3|s{LI8fp>V_3w| z#y}rdbC?;J9#5Xjql^343Nv^t7b|O8v$~T&Js{}%xVOt?bgeHA#h2qaT*-hrOW0~l z*^e>6jJw`Ad|(m)R1;6vldq~#ym7gxE4+Buai8Kk5LQvC&8l+)KC3kE8T1GHa^ zz{L%&-QRjPCXcT})|9$GE{AZ&4es)>ZcBB&zR}~fQXfV`t?-ccz%YWjBY{d zR#PRvI2~Dwb8QrPN{BkQ`02QAitQx!Cgq$7A}OwrmrOuzHmA+Tm86o>uP5Nf;l8?* zJTgJ7@VQIr5dQ1|SJpmXg7Uy?$+;Q%+(fYxDdoyZVgcD>V)9p$#He2U%}MbFQ_`Vo z{;RUcz`n_13~qC>AbCV|>r`P|82wUy3t!?z(2beuOW4mxjn>;!Uyk^Ndbt(wNWu)9BaGB^Ov0SCdk;1D+;S)eagXe!SlfL!4=>I;Dz8t z;KksBz)QfD;HBUy@c0ZTTi5^fl;-hi#-AHT_^IG&-~woB502hNx zz@^|a@C@({jGs^J>(!O{)w*6kgP(--mLvQ=@cV*SrrYUvQ1M+ikh`nn$X_*n0`up& zd#9TJZB-I9 znlEOezO%pwfMZ4^Y}IXaQH3SMi&%<+fM1IE1L3RS2fvBzzlZY-4!g zi5cGd!}#qfM#(BgK8B~N^jtTXKT)MOZ&Ag(&JwPjlbH-}c#&Gq1cfVPJ(IF?y<~Wr zx}OIZEsXb5_jAJqD!*X<6t@su1df2C;OXEPI1c_u^}oqKOZAW8kKxC{?|{#S{{(&< z{HO5a;Xi|)0RK7s-tb?*PlW#xeiHmw@cY1j4Zkn^H}Lzxe+$1q{CDt^;lGCu!2bZB z17D)%N7LUwB76|xe}d12{~106{|kH`{IBp+;D3Y9hyNWu4F3oGRQOV~$F6GrGVL=B z;XA??!0!fM2;T|52!40?2>c%KQTRRKr^D|BAA?V*=N(i3aq4;BuurXz4BxAshYZJC zdCy0N`y;&p;6dO&(O(Ia?=SdbczL*NUhkXyOW;%BOW{-D%iz=CXTYb!&xFr_p9S9v z{s8#a@U!9Dz#jgn3-1YE z0lydg0{Fx9_>%M%!e6D!BYqM5)$ohquYo@Z{#y7Y@Ylgt!f%FO3V%I(75okG)$m*3 zYv6B$KN$Wd_+{`n!`H&!0$&HeK|PNL^TW~UI=t}tY2Ndh@hKP&^++!jemQ&^{0jIB zP@W5Q{?meyi?lD87QIE!hXs-NwhT3&7UsJ5g6{+04}JjrAowBh!{7$B9-miL=dJ-C z2|fyZDEJ0_{YMIYbJY4&*58o>6bBXv-1%9|(r4ftE|BsCuLq<^}r@nCp{*S}7l8_t}s#)ILR z@D=c{}##y-Bqgp3||cn zXbx6a9hdIy2TZA`bI(Zb2Q(fLFnm=j+dr)OdrCAMc?5jDs*meVi5{xPrwRWk_%ZN& zUB39D#qx@``TgQTciy6_TiGndZGQi@(2W*`RQnoEvwY3cJj>TCEmHlt(5+cI1wINN zhMx{U6+Q+(4L%NE0H1&_gfC0e?GY`!)@q+<;Zfw&?}l{?$NYJU4PZ@$PcubTgs_%Tk0 zPMS<11prQTT4Eza_oWt*U}s2XT4vDV$AFKuIqNv^T8|qf{)FQ_b`003`$xE{uHq~;J`5iWzYJUpt^?PDmxIqn ze&>K!ApA=3D)708|Eg~PsLy%LV!!jc$4)pFjJyG!r~4~5-JK79(+WS`eM{#r;XhDZ zkQ)ni^wy&d1)*GLK#DgX2d1@L>q->a^F6aGFm zz6{Ixlg7+<=3l7V$M_^T8G1lhk^)Ad)lV5NWT}#_O|TY5C%+OI3dt z24d5;tLwEeFY0~-zD$KLiWG$&SNRo1Vud;C`JpHgbc5h_>i%qeo|+E~f2`*JNHFSN zuJViI=DMeN;Ts}(dCsG1d{!@5P}^JOXLy|sFE8`&@%D2YBGFLMa`iqfQd3b?ug(h@ zensam;pchjIVS!G$??~CBr#H77vJHPzadiMxSuGNvjXm?nthJ@nZ-WmbBq1X7Zzta zUs{~yd}Z-i=WC0zoo_52=X`7Nc;`FSzfqqX{@&)u58xkdj{XGxS*P!JqQ6+|bAGkh z@BC(Qrt`bSSD)+()-pVL10;b-hM~`@%m0-w*y#`2AD8{h(-Ju`4@`jf-=+pBOgxwf4?v z^PeQkdO_9`jr)PdPfYdpBWjk`yOY2Z)cX?S_krIRydO9R90ccrx2gSBliy>ly!}AK z$Efk*%6{PEsyz&kRr8Mtf1x)%9K%l_y|wCj-}sA?`vHyXEyGW${ZhllXx}N)p2MBS zT?^BmuO#QMb_`~6!g>Qg=4t@>%^YGuR z^-8pQMa6*#|Ae}Knew#p+P@(hFLk!4^JO*lb@OfnUm@$)rbj^I+j{YxXlbFZoz4FC zHfQc)bJh{MJf(&1k!jv|m-O5Q_@m(0z#k2NB>XY(N5LNpe{_nvepf7Yk5l`HJN76e1>79)9c13+Vf_FvxoT&0Q1uwCRRkBkpvq%71O7$$R`4&ucT)9r-B@UMUA|C}Zx793 zpR=dtxX;i!@1#X_ewO%{&RQ0pJ(^wi<~ImNv!4n}%g91HaU zm+JKWu~1*_GjodjSsaY?w>TUbU~w!o5IkR}pBW3S*X7U3bWYbSU#1zX&iBUU{oNpW zT5P&x48N@IPliV${HWy9W#c2J@vk8KZ|eSM{O@xA)9Js8@W&(kYw%B~`P`)Uq|E0! zz1I=`1f=%{{HgG7!Vl8zn->cVwmJ78HUGx*Bc)5gXQ=rtUJwc`QT^k(@q#CHc=44M zM@pB1hj{rn#0!1SP>cP}FpD#Nx2fwRUgQ?t4&Fz-?~F%+?r<-@6OZI2Mu10xM}bF! zE7W{o(i`LXhIrITT&3D09t{M2+RKFTox0xRbrm&!?MrhLk0kF;yPBK26JJ$ZNB_T# zlMV4t{NoVSKQdlttk&0`w0CuKJ=OR=&b0rd(jT3ig~<{KC!SL4PviI2<4^c$wLXc@ zh`VRm>ANRL`mJOIY(5g-eYojj-^mXp@Ar-SNyeXv_z%LLZPllCRf#trI<@Y?;K`~y z!qIhVy=3@V%h#?tN2QnW`+VoxTzH`T9F4Uau^IfEQoX>Z$<_SLE1f9ODU-s54&&PvRdnQ6| zuu8R;aPCAMKF{Y&ve@tJV{xXlujYK8v!BI&XMfGIJ~=Tt9vim|>J~5cos{Ip@geL# zQ_aVTaA9b7wO$i;C+qYId``e(zmuc6Fp?Y89P>H37W^0*=4W(AjcEa{ESth70MsmO9S|zPd%tN5$pK>TU&J zBjYn|=lf&hH>muI1F^&ywcavZoE*=M_dCPa3U_o8$@#Hf;@_s$&nCU=)cw=2Pp2n5 zGns$meyH(R%KEJ7k~cg;JwKTI{5rnyER^Q};S4$9VLtT|KcvR1NiS2!7d}wJHx<$N zk;pGghnM`ylle71-jm`P(>srL>MyEc}37{&-l8N2yPIH?>|XkuSJQ^v1=v#5X)l z#V?Wl_qWvZp5fu}Z^Ms(e+Ry`>YtL_XyLn-j~2Fpe-FMb{QK~;ReeqR-|6~QEUUdi z$ImN>$OdHd^;shPi`wri$&VBtqV^XJ9{^qr{tfXDg+B~@IQR%~19&!g4fsg#9Pm-# z`QW3$72spQ<=|t%$AR1F_74|DKG6Lq+#dcz_+8+)!;jSCFI?n)WP5iM{KxR4;dj8_ zspg}S>Pokp+Ak}K6u1}a`U*b<_Ivkl$AsUe$E)xsIzQoC;Xj4H7ydK&?rMHA`Q2re zf0^6UDu2wq$SQBleHxr;l|Sa*XXPJrKezIaxwpZ80e?UIm+-x;^2gkVbpJ$(6HkHV z1Pq+e!k|2sb>{Tb%*QSnUh zEbu8PVPdZ(g1>(gw1T8f?D>1j5vhd%@Uboevjt5LpXXs?6eYf=6>q+btS4qgFX z30?&rkM=1=f4%L!zibF6e9k)-`<>b9dI%>%v9HZ`+|Ex}CaiD3-`X70=cgomY*%$X z372&Q|Dx_6Q$yjzui)Rnzk~k({|WvJEVD)Pd|~oS0jGk~!0F)E)ci9w94a_LwcoVR z4EGPUUNrodny(E@>ozXdrHu`zfK$O~YQJP!#VYp)iPzJ4DcM7Y)7AS6*PRyXsp@ai zzh9N#a4+}=;CsVA2ww*;lWX(*YRYpd{AJ(_wV!0d|A_W`Rn^CoH;DK-;IZC#c1(J$ zkp537Uu*cE;mg(f+@yCK{9WpPY0CEy+Gk&c{}uJST8$qQ-;eS?2LBt<%T(8siT^ml zzpH#fZp8PV&Hnen|I^QR`qlMh&Z}jDHz%*8#wo)1ESwMfe{){5aSAZ`@x11KYP=ZV zS-sCN+);|!*SSAgYQz8N{AMplW+nL;|AV?-47Z%;G%X`f;qo!<@gF_UxtqG)P5i$* z-`NS_Usn4&CjRcNy!q2`7j?eF@E-6yAIkHfdm_IgjQ5uFq2Bt&wC{iS`B2$BY`%XM z27>P2ofn;}uIIu)nfrI=N9U>M%_4cu{WasC0}of_GyX)i-)i`I z@C)DaE&LDgm%#rBe;NEw@SEU&hQAd47x>HJe}%sS{x|rm;D3j| z5&jSOYvBKczX|>?_*>v*wrbw5G~?rD_!Ri-;8Wpmg-?UO4L%+IcK8hVJK$Tv-v!?q z{!aKd@OQ(vh2IL_4*nka_VD@YdC0W)-RgO%q+s^U)%kZ*o*nY`WrQP7`R4v9e2LmWGUXYE`|SiBU;HN$zqQlf zL{Hv-SEqa5r!nchuil>-ei!9AO`X3r{sT$R?}VGn^C997)$^x>e+KD&27VU&9Qb+g z5Trj0{JB0KAo+g@u15RI;-vZc+|=(^wSQyyQ`GNw_yrhG6R|#;1l|X{FL*!j{@}^r z05}I61m}W7;10Tdr2f0;>q&T5_zv(L;dh1qLidM^&r5Xw3BL)>Q{{7I!L}RH?}+p} z!S4pYJA5bjZ_vM^Fg~VW{g4m72jgKX{4{U@xDY%7^Uuw?{L)_8@RwqK*oyKLWBu{~ zcz4|%lKzA6d%)ibzbE|N@O!~O1m79{VfZfakHB|@e-yqO{5|m9;kUx~fPW0WC;a2^ zz2HZp|1LxSMb!8=^U;fXJ{11D_wW1vi@lG34)5Dv!29+W@qYXz@XO%AIL|Ny=QaM- z-~TUA_b2oFl834Bj~}!?hWn(E<*kha1=Zp+!y8D1?AmKJ&&0Fj3Is;oB$Vt`ysy$$ZwivDFd|A!@>i%YUtePJ~fmrkr z@So~>k?_&KY_8d^!xtq&Z>ai)5&jD0xk9&xe82Nb&2s+dDvSNj)fUU|LFo2dUQzYETHl0(FVXpxgo>`w z@ymQprL6y(j=+TE`<~ZY-tSyzai+7`;w=mdRD zK(kyAry>4_@ay5X!=DcS1N<5AKf<30{}cRK@ZZ9p4gVedIq=`Zp9}vp{CV)dz;A&6 z75;qqkKiwW{}}#4_#N;U!G8jOG5n|S8{t2LzXbks_)FoxfWHj>OZdy-zk=Tc|26y- z@ZZ2+34g14el))~e;fFA@Ezbg!FPf02HykT3f>037knT1e((d}2f+`4XQ=f|UZkL4 ziCUlKRaaKF)#2s$gEMt_VL$jiwcl)hkN+C=dqd{;^{>?F3ttO=75sJZSHn+I>$QLM zd;Wdl`>6F?%kTZyu3D?s)8_a4&rs`a!^guvpw|2Uncw?=TRk6`-}9fN^83H}J^#t7 z{}#$W;3vz4}|XvpXZgwk@R9OsP-*gQeRW1t{=mHsQMe;q}J2_==(u)Rej3h zp`zE-^)`i>-&>vEGS_1m-`^|3_wAzKdz=1o9J$Mx_=_{_>+e1IkHJe3{z3RE z_?h5`5q=T;!QhV&{xY=xrgVFLx*P335%bsIeV=o3sy)92QtkAQ!F;(6-(UQ@?|VLj z_|GH$Kl}Tj|J&b3$@?d3y)YE_zkl`jQUC5@wMDkHKuZg>v_MM>{L@fyFm%z*Kb2OiCHQ~=w@3(St9e1I6KFflM`;jL6Uur+X@L}+BdeLid@rT22 z(O&ZFtouj!2pwLy3w#57SNOZY-M|}k`6d1C@W1H#i|+ydj@oa{5#JMj3*z^JzXRMG zd^flcIDq!+3ts}?555$>Kl}{%0q|Ybe!i*yK=^L(gW$Wvzh;lux}UA^W%(i4l6<7?&gdDHLl2g@si ztJQoK%$I-QM4i`@*8$5WN%%I7?9$4|@IP%K(UMS03$(OAOAEBLKuZg>w7|bi3;Y`% Ci`C%( literal 36864 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 diff --git a/sy8835_demo.si4project/sy8835_demo.sip_xsd b/sy8835_demo.si4project/sy8835_demo.sip_xsd index d9a2978cb2b256b63fc4a2d8b6ccc826ece72fcf..ed3a62d99b0f8b42fd59a2f06ec9a572713f7025 100644 GIT binary patch literal 728 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 literal 62833 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