From dfe4a8e40c2431ec1eeb4302fde76d860cfeceba Mon Sep 17 00:00:00 2001 From: Alex xu Date: Fri, 13 Dec 2024 16:57:43 +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=96Vox=20OCP=E4=BF=9D=E6=8A=A4=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E9=80=BB=E8=BE=91=EF=BC=9B2=E3=80=81=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E6=8C=89=E9=94=AE=E5=8F=91=E7=A0=81=E4=B9=8B=E9=97=B4?= =?UTF-8?q?=E7=9A=84=E9=97=B4=E9=9A=94=E6=97=B6=E9=97=B4=E4=B8=BA100ms?= =?UTF-8?q?=EF=BC=9B3=E3=80=81=E4=BC=98=E5=8C=96=E7=81=AF=E6=95=88?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=8A=9F=E8=83=BD=EF=BC=9B4=E3=80=81?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BC=80=E5=85=B3=E7=9B=96=E5=85=85=E7=94=B5?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Out/8834_JLAB_JS07_241211_1030.bin | Bin 3072 -> 0 bytes Out/8834_JLAB_JS07_241211_1030.hex | 205 ----- ...8834_JLAB_JS07_241211_1030_8697_010103.bin | Bin 3074 -> 0 bytes Out/8834_JLAB_JS07_241213_1528.bin | Bin 0 -> 3072 bytes Out/8834_JLAB_JS07_241213_1528.hex | 208 +++++ ...8834_JLAB_JS07_241213_1528_720E_010103.bin | Bin 0 -> 3074 bytes Project/TP3102_Demo.uvgui.GH | 29 +- .../TP3310_Demo.SearchResults | 13 +- TP3310_Demo.si4project/TP3310_Demo.sip_sym | Bin 165752 -> 165752 bytes TP3310_Demo.si4project/TP3310_Demo.siwork | Bin 55051 -> 36885 bytes UsrInc/bat/bat.h | 2 +- UsrInc/inc/config.h | 2 +- UsrInc/inc/define.h | 2 +- UsrInc/key/key.h | 4 +- UsrInc/vox/vox_module.h | 5 + UsrSrc/bat/bat.c | 2 + UsrSrc/charger/charger_module.c | 14 + UsrSrc/hall/hall.c | 1 + UsrSrc/key/key.c | 30 +- UsrSrc/system/system.c | 2 +- UsrSrc/userapp/userapp.c | 79 +- UsrSrc/vox/vox_module.c | 766 +++++++++--------- 22 files changed, 719 insertions(+), 645 deletions(-) delete mode 100644 Out/8834_JLAB_JS07_241211_1030.bin delete mode 100644 Out/8834_JLAB_JS07_241211_1030.hex delete mode 100644 Out/8834_JLAB_JS07_241211_1030_8697_010103.bin create mode 100644 Out/8834_JLAB_JS07_241213_1528.bin create mode 100644 Out/8834_JLAB_JS07_241213_1528.hex create mode 100644 Out/8834_JLAB_JS07_241213_1528_720E_010103.bin diff --git a/Out/8834_JLAB_JS07_241211_1030.bin b/Out/8834_JLAB_JS07_241211_1030.bin deleted file mode 100644 index 7c5f3760aa360704a5fd6f03ea90ba806450ab82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3072 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 0 - 869 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000007000000060000000100000043453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C5573725372635C6B65795C6B65792E6300000000056B65792E6300000000C5D4F200FFFFFFFF47453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C5573725372635C736C6565705C736C6565702E630000000007736C6565702E6300000000FFDC7800FFFFFFFF52453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C5573725372635C636861726765725C636861726765725F6D6F64756C652E630000000010636861726765725F6D6F64756C652E6300000000BECEA100FFFFFFFF4A453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000F0A0A100FFFFFFFF49453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C5573725372635C73797374656D5C73797374656D2E63000000000873797374656D2E6300000000BCA8E100FFFFFFFF44453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C5573725372635C496E6974566172732E63000000000A496E6974566172732E63000000009CC1B600FFFFFFFF46453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C557372496E635C696E635C646566696E652E680000000008646566696E652E6800000000F7B88600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F0000D2020000 + 962 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000008000000070000000100000043453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C5573725372635C6B65795C6B65792E6300000000056B65792E6300000000C5D4F200FFFFFFFF47453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C5573725372635C736C6565705C736C6565702E630000000007736C6565702E6300000000FFDC7800FFFFFFFF52453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C5573725372635C636861726765725C636861726765725F6D6F64756C652E630000000010636861726765725F6D6F64756C652E6300000000BECEA100FFFFFFFF4A453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000F0A0A100FFFFFFFF49453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C5573725372635C73797374656D5C73797374656D2E63000000000873797374656D2E6300000000BCA8E100FFFFFFFF44453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C5573725372635C496E6974566172732E63000000000A496E6974566172732E63000000009CC1B600FFFFFFFF46453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C557372496E635C696E635C646566696E652E680000000008646566696E652E6800000000F7B88600FFFFFFFF45453A5C746F646179776F726B5C32303234303332355F7470333331305C5359383833585F44656D6F2D4A4C41422D4A5330375C5573725372635C68616C6C5C68616C6C2E63000000000668616C6C2E6300000000D9ADC200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F0000D2020000 @@ -1806,7 +1806,7 @@ File 2558 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000832303234313031359600000000000000010008323032343130313500000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000832303234313031359600000000000000010008323032343130313500000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1822,7 +1822,7 @@ Build 976 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -3603,7 +3603,7 @@ 0 100 - 6 + 7 ..\UsrSrc\key\key.c 0 @@ -3633,9 +3633,9 @@ ..\UsrSrc\vox\vox_module.c - 2 - 180 - 193 + 9 + 82 + 104 1 0 @@ -3660,9 +3660,18 @@ \todaywork\20240325_tp3310\SY883X_Demo-JLAB-JS07\UsrInc\inc\define.h - 20 + 83 1 - 31 + 29 + 1 + + 0 + + + ..\UsrSrc\hall\hall.c + 25 + 56 + 82 1 0 diff --git a/TP3310_Demo.si4project/TP3310_Demo.SearchResults b/TP3310_Demo.si4project/TP3310_Demo.SearchResults index f8997fe..9a8923d 100644 --- a/TP3310_Demo.si4project/TP3310_Demo.SearchResults +++ b/TP3310_Demo.si4project/TP3310_Demo.SearchResults @@ -1,6 +1,7 @@ ----- Vox_Output_Short_Flag Matches (5 in 3 files) ---- -LED_Display_App in userapp.c (UsrSrc\userapp) : if( NTC_Pro_Flag || Vox_Output_Short_Flag ) -vox_module.c (UsrSrc\vox) line 68 : bit Vox_Output_Short_Flag = 0; -Vox_Det_Machine in vox_module.c (UsrSrc\vox) : Vox_Output_Short_Flag = 1; -Vox_Det_Machine in vox_module.c (UsrSrc\vox) : Vox_Output_Short_Flag = 0; -vox_module.h (UsrInc\vox) line 31 : extern bit Vox_Output_Short_Flag; +---- F_batlevel_low Matches (6 in 4 files) ---- +bat.c (UsrSrc\bat) line 33 : bit F_batlevel_low = 0; //电池低压 +check_bat_level in bat.c (UsrSrc\bat) : F_batlevel_low = 1; +check_bat_level in bat.c (UsrSrc\bat) : F_batlevel_low = 0; +bat.h (UsrInc\bat) line 33 : extern bit F_batlevel_low; //电池低压 +Charger_Handler in charger_module.c (UsrSrc\charger) : F_batlevel_low = 0; +LED_Display_App in userapp.c (UsrSrc\userapp) : if( F_batlevel_low ) diff --git a/TP3310_Demo.si4project/TP3310_Demo.sip_sym b/TP3310_Demo.si4project/TP3310_Demo.sip_sym index 5480906ed550bf9250d30a84a5642cfbe4d1b231..dd0ed7f1cf90d0081eb2f274a3e7845c9659fa93 100644 GIT binary patch delta 2071 zcmZuyeQZ-z6o2>jc9gA!_x3s%0ZD-Z3rs0-ibx|B0W}t=4snRUU>^_|TQ>?DbKp>f z8TlwXgM$e%8%&sUYG)xA{A=JxG+AUMm=Gn|{(yua#1R%9Zhv_0YpEEx$?5O)oOACz z=XcIKZ}4FH;K6hwYlNmP*EF$@YuZtprrqc?Dl*4+XqsjxQK;4s2_tc6bKpHaD;~?d zng;dH3J64W7?`WaJH}nj#KKH2Fz_bx#M^QmJR_FcG|Sr5^VF~(`db7>>$oT0zxjF^ z6t?TEI)0;S1jDXDX16UX3gc`Sf9bH#j**qj4SCr*+klm~mkgBh1GdV*+otF^~NIC>vxLYNsRm zj)+G>hWkCho<8HhOY?NG{ILm3MSB zDI@Kq>?-A6nezqnrDYY+<S~rp@IkZ*s&)?Y3Hoo456FvM5V=-A3p(%vjYfOA+J9n$bl4ZS2WUx(exN@HC zxW#Hl8mhdi%O2nwsN6Xgg9B{;V@;+U9v}*gw`q$?C58CweRlHk8G|jh}?RPlQYDh>)nY3tNVni8rUw7Nt{pJ-}ViQacu#r}O;~Ditm# znGTT9u+$E~-MJ?A7}Pl%zkCu8=kR6FQy^R>+3HCwly`Gf{C%qv`rS$WZfI#Tv1|r0 z**}zsrj|@9s#+_4&&w_oD&5+L<}QS13%r>}gHX-hQ!u-FJ~kKe z2o@Icz@t<8+C1*I<|Zq#s*R2k9!k8gstvAGQ^%EXKZbJnV+J0~T4~3c=eZ7N8g%rP z@&W3T<*?^RtAVgCgZt%`4Sc|E?4jsY-=`2RSDScy3(@sK(v(7FlFj9+OB69`TMDfL zge!Rzql}tP+4d!U_DQ3PZ{`j!F=c%kVi&_Sr~Qso#9mSn#PB`l#)df4RZ4E8Hz~LA zxQ>I{criN0aJLL^=f^limv}LE2VK)0q0QyAry@&|gF$t7*0fIvY&cy^CM7tI6-6Vpcs| jO!Va?KcedsUl31uu6l_=55@s2wyFlc`9fyz<%R5D>`gQg delta 2137 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 literal 55051 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 Gp!9!YT%EcA diff --git a/UsrInc/bat/bat.h b/UsrInc/bat/bat.h index 0246bef..1de1b01 100644 --- a/UsrInc/bat/bat.h +++ b/UsrInc/bat/bat.h @@ -24,7 +24,7 @@ #include "define.h" #define C_bat_level_protect 0 -#define C_bat_level_lowpower 2 +#define C_bat_level_lowpower 1 extern uint8_t bat_level; diff --git a/UsrInc/inc/config.h b/UsrInc/inc/config.h index 9e2af49..098e352 100644 --- a/UsrInc/inc/config.h +++ b/UsrInc/inc/config.h @@ -172,7 +172,7 @@ /*Sleep Module Setting*/ /*Enter Sleep Time Debounce*/ -#define ENTER_STANDBYMODE_CNT 10 //½øÈëStandby Mode ÑÓ³Ùʱ¼ä£¬µ¥Î»£ºÃë +#define ENTER_STANDBYMODE_CNT 12 //½øÈëStandby Mode ÑÓ³Ùʱ¼ä£¬µ¥Î»£ºÃë /******************************************************************************\ Variables definitions diff --git a/UsrInc/inc/define.h b/UsrInc/inc/define.h index 92aa590..4c3aa09 100644 --- a/UsrInc/inc/define.h +++ b/UsrInc/inc/define.h @@ -26,7 +26,7 @@ µÚ¶þ¸öÊýÔÚ¹¦ÄÜ´æÔڸĶ¯Ê±¼Ó1£¬µÚÈý¸öÊýÔÚÈí¼þµ÷ÊÔ³öÏÖ²»Í¬µÄ ²âÊ԰汾ʱ¸Ä¶¯£»¸ßλÊý×ֱ䶯ʱ£¬µÍλÊý×ÖÇåÁã¡£*/ -#define FW_VER0 0x01 //³ÌÐò°æ±¾0:´ú±íÔÚÓ²¼þ´æÔڸ͝²»ÄܼæÈÝ֮ǰ°æ±¾Ê±¼Ó1 +#define FW_VER0 0x01 //³ÌÐò°æ±¾0:´ú±íÔÚÓ²¼þ´æÔڸ͝²»ÄܼæÈÝ֮ǰ°æ±¾Ê±¼Ó1 #define FW_VER1 0x01 //³ÌÐò°æ±¾1:´ú±íÔÚ¹¦ÄÜ´æÔڸĶ¯Ê±¼Ó1 #define FW_VER2 0x03 //³ÌÐò°æ±¾2:´ú±íÔÚÈí¼þµ÷ÊÔ³öÏÖ²»Í¬µÄ²âÊ԰汾ʱ¸Ä¶¯Ê±¼Ó1 diff --git a/UsrInc/key/key.h b/UsrInc/key/key.h index f59e775..c2bed03 100644 --- a/UsrInc/key/key.h +++ b/UsrInc/key/key.h @@ -31,9 +31,9 @@ extern bit Key_Press_ll_irq; extern bit Pattern_TX_Flag; -#define Vox_TX_Pattern_Tim 24 +#define Vox_TX_Pattern_Tim 18 -#define Vox_TX_Interval 5 //Vox¶¨Ê±·¢ËÍÖ¸Áîʱ¼ä¼ä¸ô +#define Vox_TX_Interval 4 //Vox¶¨Ê±·¢ËÍÖ¸Áîʱ¼ä¼ä¸ô #ifdef KEY_ENABLE diff --git a/UsrInc/vox/vox_module.h b/UsrInc/vox/vox_module.h index e63ae11..8ec09a5 100644 --- a/UsrInc/vox/vox_module.h +++ b/UsrInc/vox/vox_module.h @@ -28,10 +28,15 @@ sbit COM_TX = P0^1; //extern uint8_t Vox_TX_Timer; //VOX·¢ËÍÖ¸Áî³ÖÐøÊ±¼ä¼ÆÊý,ÔÚHall_Handler¼ì²âÖÐÇå0. extern bit Earphone_Chg_Flag; //¶ú»ú³öÈëºÐ±ê־λ + extern bit Vox_Output_Short_Flag; + extern bit Vox_Vout_Enable; + extern bit Earphone_Num_2Inbox; //Ë«¶ú»úÔںбê־λ +extern bit Vox_Ocp_Flag; + #if VOX_ENABLE /******************************************************************************\ Macro definitions diff --git a/UsrSrc/bat/bat.c b/UsrSrc/bat/bat.c index b9bb01a..5f6f83d 100644 --- a/UsrSrc/bat/bat.c +++ b/UsrSrc/bat/bat.c @@ -168,10 +168,12 @@ void check_bat_level(void) { F_batlevel_low = 1; } +#if 0 else if( bat_level > (C_bat_level_lowpower + 2) ) { F_batlevel_low = 0; } +#endif } #endif diff --git a/UsrSrc/charger/charger_module.c b/UsrSrc/charger/charger_module.c index 7679cfb..70ba4f0 100644 --- a/UsrSrc/charger/charger_module.c +++ b/UsrSrc/charger/charger_module.c @@ -160,6 +160,15 @@ uint8_t PMU_NTC_Control(void) */ /* 1¡¢³äµç³¬Ê±£º³äµç³¬Ê±ºó£¬Èí¼þ¹Ø±Õ³äµçʹÄÜ£¬µÈ´ýVIN°Î³ö¡£ +2¡¢ÊäÈëUVLO±£»¤£»Èí¼þÎÞÐè´¦Àí£¬³äµçÆô¶¯Ìõ¼þ¿´PG¡£ +3¡¢VIN DPM£ºÈí¼þÎÞÐè´¦Àí£» +4¡¢ÊäÈë¹ýѹ±£»¤£ºÈí¼þÎÞÐè´¦Àí£» +5¡¢µç³Ø¹ýѹ±£»¤£ºÈí¼þÎÞÐè´¦Àí£» +6¡¢µç³Ø¶Ì·±£»¤£ºÈí¼þÎÞÐè´¦Àí£» +7¡¢NTC±£»¤£º°´JEITA»òIEC±ê×¼µ÷Õû³äµç²ÎÊý£» +8¡¢¹ýα£»¤£ºÈí¼þÎÞÐè´¦Àí£» +Èí¼þÖ»Ðè´¦ÀíVINÊÇ·ñPG¡¢NTC±£»¤¡¢³äµçÍê³ÉºÍ¸´³ä£¬ÆäËü±£»¤¾ùÓÉÓ²¼þ×Ô¶¯¹Ø±ÕCharger£¬±£»¤»Ö¸´ºó£¬Èí¼þ»áÖØÐÂÆô¶¯Charger£¬ +¸÷¸ö±£»¤£¬Èí¼þ¿ÉÒÔ¶ÁÈ¡¶ÔÓ¦µÄ±ê־λ»ò״̬룬Èí¼þÖ»Ðè´¦Àí³äµç³¬Ê±£¬³äµç³¬Ê±ºó£¬Èí¼þ¹Ø±Õ³äµçʹÄÜ£¬µÈ´ýVIN°Î³ö¡£ */ void Charger_Handler(void) { @@ -232,6 +241,11 @@ void Charger_Handler(void) F_batlevel_protect = 0; } + if( bat_level > (C_bat_level_lowpower + 2) ) + { + F_batlevel_low = 0; + } + #endif Charger_Done = 0; } diff --git a/UsrSrc/hall/hall.c b/UsrSrc/hall/hall.c index 0d53b3d..0dbfbf8 100644 --- a/UsrSrc/hall/hall.c +++ b/UsrSrc/hall/hall.c @@ -22,6 +22,7 @@ #include "led.h" #include "userapp.h" #include "sleep.h" +#include "vox_module.h" #ifdef HALL_ENABLE diff --git a/UsrSrc/key/key.c b/UsrSrc/key/key.c index ed6978d..bb105b5 100644 --- a/UsrSrc/key/key.c +++ b/UsrSrc/key/key.c @@ -46,9 +46,9 @@ bit Key_Press_ll_irq_led = 0; #define Vox_TX_Key_Pattern_Tim 3 -#define Vox_TX_Pattern_Tim 24 +//#define Vox_TX_Pattern_Tim 24 -#define Vox_TX_Interval 5 //Vox¶¨Ê±·¢ËÍÖ¸Áîʱ¼ä¼ä¸ô +//#define Vox_TX_Interval 5 //Vox¶¨Ê±·¢ËÍÖ¸Áîʱ¼ä¼ä¸ô /******************************************************************************\ Variables definitions @@ -89,8 +89,6 @@ void Key_Handler(void) static bit nKey_Press_Flag1; static bit Key_Press_Flag; - - //static bit Key_Lift_Flag; if( !(CHIP_STA0 & 0x02) ) //CHIP_STA0 µÄbit1ΪKeyµÄ״ֵ̬£º0£º°´Ï£» { @@ -135,8 +133,6 @@ void Key_Handler(void) Key_Press_Flag = 0; nKey_Press_Flag = 0; - - //Key_Lift_Flag = 1; nKey_Press_Flag1 = 0; @@ -154,27 +150,23 @@ void Key_Handler(void) Key_Press_Debounce = 0; } -/*°´¼ü3sºó£¬·¢Çå³ýÅä¶ÔÂëÂð£¬Ã¿¸ô400ms·¢5´Î£¬·¢ÍêºóÀ¶µÆÁÁ4Ï¡£*/ +/*°´¼ü3sºó£¬·¢Çå³ýÅä¶ÔÂëÂð£¬Ã¿¸ô400ms·¢4´Î£¬·¢ÍêºóÀ¶µÆÁÁ4Ï¡£*/ if( Key_Press_ll_irq ) { - if( Msg_TX_Debounce <= Vox_TX_Pattern_Tim ) + if( Msg_TX_Debounce < Vox_TX_Pattern_Tim ) { if( (Msg_TX_Debounce % Vox_TX_Interval == 0) ) { if( Earphone_Num_2Inbox ) //°´¼ü·¢ÂëÐèË«¶ú»úÔںвŷ¢¡£ { + #if VOX_TX_PATTERN + + Pattern_TX_Start = 1; + + Pattern_TX_Data = 0x05; - //if( (CHIP_STA1 & 0xAC) == 0xA0 ) - { - #if VOX_TX_PATTERN - - Pattern_TX_Start = 1; - - Pattern_TX_Data = 0x05; - - g_Key_Type = 1; - #endif - } + g_Key_Type = 1; + #endif } } diff --git a/UsrSrc/system/system.c b/UsrSrc/system/system.c index f632eda..f49ac19 100644 --- a/UsrSrc/system/system.c +++ b/UsrSrc/system/system.c @@ -172,7 +172,7 @@ void System_Init(void) EX2 = 1; EAL = 1; //¿ª×ÜÖжϡ£ - + #if CHARGER_ENABLE #ifdef SY8836 //ºÏ·âOVPоƬSY8836 diff --git a/UsrSrc/userapp/userapp.c b/UsrSrc/userapp/userapp.c index 416d248..a9c21d7 100644 --- a/UsrSrc/userapp/userapp.c +++ b/UsrSrc/userapp/userapp.c @@ -46,7 +46,7 @@ #define LED_KEY_BLINK_CNT 5 #define LED_BLINK_CNT 5 -#define LED_PRO_TIM 105 +#define LED_PRO_TIM 103 #define LED_PRO_CNT 5 /******************************************************************************\ @@ -106,17 +106,21 @@ void LED_Display_App(void) static bit LED_On_Chg_Flag; + static bit LED_Bat_Pro_Flag; + static bit LED_On_ChgDone_Flag; static uint8_t LED_On_Cnt; /*NTC±£»¤£¬4µÆÒ»Ö±¿ìÉÁ(2Hz)*/ - if( NTC_Pro_Flag || Vox_Output_Short_Flag ) + if( NTC_Pro_Flag || ( Vox_Output_Short_Flag && !Vox_Ocp_Flag ) ) { if( !LED_On_Flag1 ) { LED_On_Flag1 = 1; - + + LED_On_Timer = 0; + LED_Disp_Off(); } else @@ -133,14 +137,11 @@ void LED_Display_App(void) else { LEDR_OFF(); + + Vox_Ocp_Flag = 1; } } -#if SLEEP_ENABLE - -// Enter_Sleep_Cnt_Restart_Flag = 1; - -#endif return; } @@ -229,21 +230,27 @@ void LED_Display_App(void) if( F_batlevel_protect ) { - Key_Press_irq = 0; - - Key_Press_ll_irq_led = 0; - - CoverEvent_Flg_led = 0; - - Earphone_Chg_Flag = 0; - - LED_On_Flag = 1; //ÇåLEDÏÔʾ - + if( !LED_Bat_Pro_Flag ) + { + LED_Bat_Pro_Flag = 1; + + Key_Press_irq = 0; + + Key_Press_ll_irq_led = 0; + + CoverEvent_Flg_led = 0; + + Earphone_Chg_Flag = 0; + + LED_On_Flag = 1; //ÇåLEDÏÔʾ + } } else { if( (Earphone_Chg_Flag || Key_Press_irq || Key_Press_ll_irq_led || CoverEvent_Flg_led) ) //¶ú»ú³öÈëºÐ¡¢°´¼ü´¥·¢£¬ÏÔʾµÆÐ§ { + LED_Bat_Pro_Flag = 0; + if( Key_Press_ll_irq_led ) { LED_On_Cnt = LED_ON_KEY_CNT + LED_OFF_CNT; @@ -267,6 +274,7 @@ void LED_Display_App(void) if( (LED_On_Timer % LED_KEY_BLINK_CNT == 0) ) { LEDB_TOG(); + LEDR_OFF(); } } else @@ -275,11 +283,13 @@ void LED_Display_App(void) if( (LED_On_Timer % LED_BLINK_CNT == 0) ) { LEDR_TOG(); + LEDB_OFF(); } } else { - LEDB_ON(); + LEDB_ON(); + LEDR_OFF(); } } else @@ -401,7 +411,7 @@ void UserAPP(void) if( Check_Require_Sleep() ) { /* Boost UVLO±£»¤£¬ÐèÒª¹Ø±ÕADT»½ÐÑ£¬·ñÔò»á³öÏÖ½ø²»ÁËÐÝÃßµÄÎÊÌâ¡£ */ - if( CHIP_STA0 & 0x80 ) + if( ( CHIP_STA0 & 0x80 ) || Vox_Ocp_Flag ) { /* Enter Sleep */ SFRADDR = WKUP_EN3; //vox loadon wake up enable @@ -418,19 +428,14 @@ void UserAPP(void) #ifdef TIMER1_ENABLE ET1 = 0; //timer1 IRQ Disable #endif - #if UART0_ENABLE ES0 = 0; //UART0 IRQ Disable #endif - EX2 = 0; ET0 = 0; //timer0 IRQ Disable - VOX_CTL0 &= ~0x30; //VOX 5v Off - -#if DISCHARGE_ENABLE - BST_EN = 0; //Boost Disable -#endif + Vout_Ctrl_OFF(ON); + SFRADDR = ADC_CTL0; SFRDATA &= ~0x80; //ADC Disable. @@ -445,13 +450,29 @@ void UserAPP(void) /* OutSleep Handler */ //Enable IRQ #if UART0_ENABLE ES0 = 1; //UART0 IRQ -#endif - +#endif EX2 = 1; ET0 = 1; //timer0 IRQ #ifdef TIMER1_ENABLE ET1 = 1; //timer1 IRQ #endif + if( Vox_Ocp_Flag ) //Vox OCP ±£»¤£¬³öÐÝÃߺóÐèÒª½«VoxÉèÖÃΪADTģʽ¡£ + { + P01 = 1; + + SFRADDR = P0_OE; + SFRDATA |= 0x02; + + VOX_CTL0 = 0xC3; + + CoverEvent_Flg = 1; + + IRQ_FLAG0 = 0x0C; + + Vox_Output_Short_Flag = 0; + + Vox_Ocp_Flag = 0; + } Decnt_SleepDelay = ENTER_STANDBYMODE_CNT; } diff --git a/UsrSrc/vox/vox_module.c b/UsrSrc/vox/vox_module.c index f2f972c..8443ed0 100644 --- a/UsrSrc/vox/vox_module.c +++ b/UsrSrc/vox/vox_module.c @@ -66,21 +66,22 @@ bit Earphone_Chg_Flag = 0; // \******************************************************************************/ bit Vox_Output_Short_Flag = 0; + bit Earphone_Num_2Inbox = 0; //Ë«¶ú»úÔںбê־λ #if VOX_FOLLOW_CHG -bit Vor_In_Box_Flag = 0; -bit Vol_In_Box_Flag = 0; - bit Boost_VoxVout_Follow_Flag = 0; + int8 Boost_Vout_Value = 0; + bit Boost_Up_Flag = 0; #endif #define KEY_TWS_PAIR_TIMER 2 + #define KEY_TWS_PAIR_CNT 6 #define KEY_TWS_PAIR_CLEAR_CNT 30 @@ -161,6 +162,8 @@ void Vout_Ctrl_ON(uint8_t Type) * ******************************************************************************* */ +bit Vox_Ocp_Flag = 0; + void Vox_Det_Machine(void) { static bit Get_CHIP_STA1_Flag1; @@ -190,42 +193,266 @@ void Vox_Det_Machine(void) static uint8_t Vox_TX_Timer; static uint8_t Vox_TX_Timer1; + + static uint8_t Vox_TX_Timer2; static uint8_t Vox_Output_Debounce; - /*Vox ¹ýÁ÷±£»¤£¬Á½Ö»¶ú»ú¶¼Ã¿¸ô500ms´òàÃÒ»´Î*/ - if( IRQ_FLAG0 & 0x0C ) - { - Vox_Output_Debounce++; - if( Vox_Output_Debounce > VOX_OCP_CNT ) - { - Vox_Output_Debounce = 0; - - IRQ_FLAG0 = 0x0C; - - VOX_CTL0 &= ~0x30; //VOX Disable 5V And Disable VOX ADT - - VOX_CTL0 |= 0x30; //VOX Enable 5V - - Vox_Output_Short_Flag = 1; - - CoverEvent_Flg = 0; - - Cover_Close_Flag = 0; - - Cover_Open_Flag = 0; - - Vox_Vout_Enable = OFF; - } - } - else + if( gBoost_Prepared_Flag ) { - Vox_Output_Short_Flag = 0; - - if( gBoost_Prepared_Flag ) + if( CoverEvent_Flg ) //Hallʼþ´¥·¢¡£ + { + if( !BST_EN ) + { + Vout_Ctrl_ON(OFF); + + return; + } + + VOX_CTL0 |= 0x30; //VOX Enable 5V + + Vox_Output_Debounce = 0; + + Vox_Vol_Hold_Timer = 0; //¹Ø¸ÇÇå0£¬¿ª¸ÇʹÓà + + Vox_TX_Timer = 0; + + Vox_TX_Timer1 = 0; + + Vox_TX_Timer2 = 0; + + Get_CHIP_STA1_Flag1 = 0; + + Earphone_Num_2Inbox = 0; + + Vox_Output_Short_Flag = 0; + + Vox_Ocp_Flag = 0; + + if( CoverStatus == CLOSE ) //1¡¢¹Ø¸Ç¹Ø±ÕCOM_CTRL£»ÏÔʾµÆÐ§¡££¨ÎÞÐè²éѯLoadon¡¢IOFF״̬£¬ÎÞÂÛ¶ú»úÊÇ·ñÔÚ²Ö£¬Vox 5VÊä³ö¡££© + { + Earphone_Chg_Flag = 0; //¹Ø¸ÇÈ¡Ïû¶ú»úÈëºÐµÆÐ§£¬ÏÔʾ¹Ø¸ÇµÆÐ§¡£ + + Cover_Close_Flag = 1; + + Cover_Close_Flag0 = 1; + + Cover_Close_Flag1 = 1; + + Vox_Vout_Enable = ON; + + Cover_Open_Flag = 0; + + Follow_Chg_Start_Flag = 0; + + Vox_Chg_Full_Flag = 0; + +#if VOX_FOLLOW_CHG + Boost_VoxVout_Follow_Flag = 0; +#endif + } + else //2¡¢¿ª¸Ç´¦Àí£º5v 500ms ת0V 500ms£¬ºóתADTģʽ¡£ + { + Cover_Close_Flag = 0; + + Cover_Open_Flag = 1; + + Cover_Open_5V_Flag = 0; + } + + CoverEvent_Flg = 0; + } + + /* ·¢ËÍ¿ª¸ÇÖ¸Áî*/ + if( Cover_Open_Flag ) /*¿ª¸Çºó£¬5V³ÖÐø500msºó0V³ÖÐø500ms£¬VoxתÈëadtģʽ£¬µÈ´ý¶ú»ú³öÈëºÐ£¬²¢ÏÔʾÏàÓ¦µÄµÆÐ§¡£*/ { - if( CoverEvent_Flg ) //Hallʼþ´¥·¢¡£ - { + if( Vox_Vol_Hold_Timer < VOX_VOUT_5V_DEBOUNCE ) //¿ª¹Ø¸Çºó5V 200ms£¬ÓÃÓÚ»½ÐѶú»ú¡£ + { + Vox_Vol_Hold_Timer++; + + return; + } + #if 0 + if( Vox_TX_Timer < VOX_VOUT_0V_DEBOUNCE ) //ת0V 200ms + { + Vout_Ctrl_OFF(OFF); + + Vox_TX_Timer++; + } + else + #endif + { + /*°´¼ü1.5s¡¢°Î³äµçºóVoxÉýѹһ¶Îʱ¼ä£¬ÓÃÓÚ»½ÐѶú»ú¡£*/ + if( Wkup_Earphone_Flag ) + { + if( !BST_EN ) + { + Vout_Ctrl_ON(OFF); + + return; + } + + Get_CHIP_STA1_Flag1 = 0; + + Vox_TX_Timer1 = 0; + + Vox_TX_Timer2 = 0; + + VOX_CTL0 |= 0x30; //VOX Enable 5V + + Wkup_Earphone_Flag = 0; + } +#if 0 + if( Vox_TX_Timer2 < VOX_VOUT_5V_DEBOUNCE ) //5V 200ms£¬ÓÃÓÚºóÐø·¢Â뻽ÐѶú»ú¡£ + { + Vox_TX_Timer2++; + + Vout_Ctrl_ON(OFF); + + return; + } +#endif + if( !Get_CHIP_STA1_Flag1 ) + { + if( Vox_Output_Debounce < Vox_TX_Pattern_Tim ) + { + if( (Vox_Output_Debounce % Vox_TX_Interval == 0) ) + { + if( (CHIP_STA1 & 0xA0) == 0xA0 ) + { +#if VOX_TX_PATTERN + Pattern_TX_Start = 1; + + g_Key_Type = 0; + + Pattern_TX_Data = bat_level_pdata | 0xC4; +#endif + } + } + + Vox_Output_Debounce++; + } + else + { + + if( Vox_TX_Timer1 < VOX_ADT_HOLD_CNT ) //¹Ø¸Çºó5V³ÖÐø300ms¡£ + { + Vox_TX_Timer1++; + + return; + } + + Get_CHIP_STA1_Flag1 = 1; + + Vout_Ctrl_OFF(ON); + + TX_Cmd_Flag = 1; + + Vox_Vout_Enable = OFF; + + } + } + else + { + if( TX_Cmd_Flag ) + { + TX_Cmd_Flag = 0; + + Vox_TX_Timer1 = 0; + + if( (CHIP_STA1 & 0xAC) == 0xA0 ) + { + Earphone_Num_2Inbox = 1; //2Ö»¶ú»úÔںУ¬°´¼ü3s²ÅÄÜ·¢Âë¡£ + } + else + { + Earphone_Num_2Inbox = 0; + } + + CHIP_STA1_BK = CHIP_STA1 & 0xA0; + } + else + { + /*¶ú»ú³öÈëºÐÅжÏ*/ + if( CHIP_STA1_BK != (CHIP_STA1 & 0xA0) ) //²éѯ¶ú»úloadon״̬£¬loadon״̬¸Ä±ä£¬Ôò˵Ã÷Óжú»ú³öÈëºÐ¡£ + { + if(CHIP_STA1 & 0xA0) + { + Earphone_Chg_Flag = 1; +#ifdef LED_DISPLAY + LED_On_Flag = 1; +#endif + } + + CHIP_STA1_BK = CHIP_STA1 & 0xA0; + } + } + } + } + } + + if( Cover_Close_Flag ) + { + /*°´¼ü1.5s¡¢°Î³äµçºóVoxÉýѹһ¶Îʱ¼ä£¬ÓÃÓÚ»½ÐѶú»ú¡£*/ + if( Wkup_Earphone_Flag ) + { + if( !BST_EN ) + { + Vout_Ctrl_ON(OFF); + + Cover_Close_Flag0 = 0; + + Get_CHIP_STA1_Flag1 = 0; + + Vox_TX_Timer = 0; + + Vox_Vol_Hold_Timer = 0; + + Vox_Chg_Full_Flag = 0; + + return; + } + + VOX_CTL0 |= 0x30; //VOX Enable 5V + + Wkup_Earphone_Flag = 0; + } + + if( Vox_TX_Timer < VOX_CLOSE_HOLD_CNT ) //¹Ø¸Çºó5V³ÖÐø1s¡£ + { + Vox_TX_Timer++; + + return; + } + + /*¹Ø¸Çºó£¬VoxתÈëADTģʽ£¬ÅжÏÓм¸Ö»¶ú»úÔںС£*/ + if( !Cover_Close_Flag0 ) + { + Vout_Ctrl_OFF(ON); //VoxתÈëADTģʽ¡£ + + Cover_Close_Flag0 = 1; + } + else + { + if( !Get_CHIP_STA1_Flag1 ) + { + if( (CHIP_STA1 & 0xAC) == 0xA0 ) + { + Earphone_Num_2Inbox = 1; //2Ö»¶ú»úÔںУ¬°´¼ü3s²ÅÄÜ·¢Âë¡£ + } + else + { + Earphone_Num_2Inbox = 0; + } + + Get_CHIP_STA1_Flag1 = 1; + + } + } + + if( !Cover_Close_Flag1 ) + { + if( !BST_EN ) { Vout_Ctrl_ON(OFF); @@ -235,379 +462,178 @@ void Vox_Det_Machine(void) VOX_CTL0 |= 0x30; //VOX Enable 5V - Vox_Output_Debounce = 0; - - Vox_Vol_Hold_Timer = 0; //¹Ø¸ÇÇå0£¬¿ª¸ÇʹÓà - - Vox_TX_Timer = 0; - - Vox_TX_Timer1 = 0; - - Get_CHIP_STA1_Flag1 = 0; - - Earphone_Num_2Inbox = 0; - - if( CoverStatus == CLOSE ) //1¡¢¹Ø¸Ç¹Ø±ÕCOM_CTRL£»ÏÔʾµÆÐ§¡££¨ÎÞÐè²éѯLoadon¡¢IOFF״̬£¬ÎÞÂÛ¶ú»úÊÇ·ñÔÚ²Ö£¬Vox 5VÊä³ö¡££© - { - Earphone_Chg_Flag = 0; //¹Ø¸ÇÈ¡Ïû¶ú»úÈëºÐµÆÐ§£¬ÏÔʾ¹Ø¸ÇµÆÐ§¡£ - - Cover_Close_Flag = 1; - - Cover_Close_Flag0 = 1; - - Cover_Close_Flag1 = 1; - - Vox_Vout_Enable = ON; - - Cover_Open_Flag = 0; - - Follow_Chg_Start_Flag = 0; - - Vox_Chg_Full_Flag = 0; - -#if VOX_FOLLOW_CHG - Boost_VoxVout_Follow_Flag = 0; -#endif - } - else //2¡¢¿ª¸Ç´¦Àí£º5v 500ms ת0V 500ms£¬ºóתADTģʽ¡£ - { - Cover_Close_Flag = 0; - - Cover_Open_Flag = 1; - - Cover_Open_5V_Flag = 0; - } - - CoverEvent_Flg = 0; - } - - /* ·¢ËÍ¿ª¸ÇÖ¸Áî*/ - if( Cover_Open_Flag ) /*¿ª¸Çºó£¬5V³ÖÐø500msºó0V³ÖÐø500ms£¬VoxתÈëadtģʽ£¬µÈ´ý¶ú»ú³öÈëºÐ£¬²¢ÏÔʾÏàÓ¦µÄµÆÐ§¡£*/ - { - if( Vox_Vol_Hold_Timer < VOX_VOUT_5V_DEBOUNCE ) //¿ª¹Ø¸Çºó5V 200ms£¬ÓÃÓÚ»½ÐѶú»ú¡£ - { - Vox_Vol_Hold_Timer++; - - return; - } - - if( Vox_TX_Timer < VOX_VOUT_0V_DEBOUNCE ) //ת0V 200ms - { - Vout_Ctrl_OFF(OFF); - - Vox_TX_Timer++; - } - else - { - /*°´¼ü1.5s¡¢°Î³äµçºóVoxÉýѹһ¶Îʱ¼ä£¬ÓÃÓÚ»½ÐѶú»ú¡£*/ - if( Wkup_Earphone_Flag ) - { - if( !BST_EN ) - { - Vout_Ctrl_ON(OFF); - - return; - } - - Get_CHIP_STA1_Flag1 = 0; - - Vox_TX_Timer1 = 0; - - VOX_CTL0 |= 0x30; //VOX Enable 5V - - Wkup_Earphone_Flag = 0; - } - - if( !Get_CHIP_STA1_Flag1 ) - { - if( Vox_Output_Debounce <= Vox_TX_Pattern_Tim ) - { - if( (Vox_Output_Debounce % Vox_TX_Interval == 0) ) - { - if( (CHIP_STA1 & 0xA0) == 0xA0 ) - { -#if VOX_TX_PATTERN - Pattern_TX_Start = 1; - - g_Key_Type = 0; - - Pattern_TX_Data = bat_level_pdata | 0xC4; -#endif - } - } - - Vox_Output_Debounce++; - } - else - { - - if( Vox_TX_Timer1 < VOX_ADT_HOLD_CNT ) //¹Ø¸Çºó5V³ÖÐø300ms¡£ - { - Vox_TX_Timer1++; - - return; - } - - // Vox_Output_Debounce = 0; - - Get_CHIP_STA1_Flag1 = 1; - - Vout_Ctrl_OFF(ON); - - TX_Cmd_Flag = 1; - - Vox_Vout_Enable = OFF; - - } - } - else - { - if( TX_Cmd_Flag ) - { - TX_Cmd_Flag = 0; - - Vox_TX_Timer1 = 0; - - if( (CHIP_STA1 & 0xAC) == 0xA0 ) - { - Earphone_Num_2Inbox = 1; //2Ö»¶ú»úÔںУ¬°´¼ü3s²ÅÄÜ·¢Âë¡£ - } - else - { - Earphone_Num_2Inbox = 0; - } - - CHIP_STA1_BK = CHIP_STA1 & 0xA0; - } - else - { - /*¶ú»ú³öÈëºÐÅжÏ*/ - if( CHIP_STA1_BK != (CHIP_STA1 & 0xA0) ) //²éѯ¶ú»úloadon״̬£¬loadon״̬¸Ä±ä£¬Ôò˵Ã÷Óжú»ú³öÈëºÐ¡£ - { - if(CHIP_STA1 & 0xA0) - { - Earphone_Chg_Flag = 1; -#ifdef LED_DISPLAY - LED_On_Flag = 1; -#endif - } - - CHIP_STA1_BK = CHIP_STA1 & 0xA0; - } - } - } - } + Cover_Close_Flag1 = 1; } - - if( Cover_Close_Flag ) + + /*Vox ¹ýÁ÷±£»¤£¬Á½Ö»¶ú»ú¶¼Ã¿¸ô500ms´òàÃÒ»´Î*/ + if( IRQ_FLAG0 & 0x0C ) { - /*°´¼ü1.5s¡¢°Î³äµçºóVoxÉýѹһ¶Îʱ¼ä£¬ÓÃÓÚ»½ÐѶú»ú¡£*/ - if( Wkup_Earphone_Flag ) + if( !Vox_Ocp_Flag ) { - if( !BST_EN ) + Vox_Output_Debounce++; + if( Vox_Output_Debounce >= VOX_OCP_CNT ) { - Vout_Ctrl_ON(OFF); + Vox_Output_Debounce = 0; - Cover_Close_Flag0 = 0; + IRQ_FLAG0 = 0x0C; - Get_CHIP_STA1_Flag1 = 0; + VOX_CTL0 &= ~0x30; //VOX Disable 5V And Disable VOX ADT - Vox_TX_Timer = 0; - - Vox_Vol_Hold_Timer = 0; - - Vox_Chg_Full_Flag = 0; + VOX_CTL0 |= 0x30; //VOX Enable 5V - return; - } - - VOX_CTL0 |= 0x30; //VOX Enable 5V - - Wkup_Earphone_Flag = 0; - } + Vox_Output_Short_Flag = 1; - if( Vox_TX_Timer < VOX_CLOSE_HOLD_CNT ) //¹Ø¸Çºó5V³ÖÐø1s¡£ - { - Vox_TX_Timer++; - - return; - } - - /*¹Ø¸Çºó£¬VoxתÈëADTģʽ£¬ÅжÏÓм¸Ö»¶ú»úÔںС£*/ - if( !Cover_Close_Flag0 ) - { - Vout_Ctrl_OFF(ON); //VoxתÈëADTģʽ¡£ - - Cover_Close_Flag0 = 1; + // CoverEvent_Flg = 0; + + Vox_Vout_Enable = OFF; + } + } else + { + Vout_Ctrl_OFF(ON); + } + + return; + } + + Vox_Output_Short_Flag = 0; + + Vox_Ocp_Flag = 0; + +#if VOX_FOLLOW_CHG + if( !Follow_Chg_Start_Flag ) + { + /*¸úËæ³äÂß¼­*/ + if( !Boost_VoxVout_Follow_Flag ) { - if( !Get_CHIP_STA1_Flag1 ) - { - if( (CHIP_STA1 & 0xAC) == 0xA0 ) - { - Earphone_Num_2Inbox = 1; //2Ö»¶ú»úÔںУ¬°´¼ü3s²ÅÄÜ·¢Âë¡£ - } - else - { - Earphone_Num_2Inbox = 0; - } - - Get_CHIP_STA1_Flag1 = 1; - - } - } + Boost_Vout_Value = 0x03; - if( !Cover_Close_Flag1 ) - { - - if( !BST_EN ) + Boost_Up_Flag = 0; + + SFRADDR = VOX_CON0; //IOFFÑ¡Ôñ¸ßµçÁ÷µµ10/15/20/25mA + SFRDATA |= 0x20; + + SFRADDR = VOX_CON2; + SFRDATA &= ~0xC0; + SFRDATA |= 0x80; //IOFF 20mA + + Boost_VoxVout_Follow_Flag = 1; + } + else + { + if( Vox_Vol_Hold_Timer < VOX_FOLLOW_CHG_CNT ) //µÈ¶ú»ú³éµç¡£ { - Vout_Ctrl_ON(OFF); + Vox_Vol_Hold_Timer++; return; - } - - VOX_CTL0 |= 0x30; //VOX Enable 5V + } - Cover_Close_Flag1 = 1; - } - + Vox_Vol_Hold_Timer = 0; -#if VOX_FOLLOW_CHG - if( !Follow_Chg_Start_Flag ) - { - /*¸úËæ³äÂß¼­*/ - if( !Boost_VoxVout_Follow_Flag ) + if ( CHIP_STA1 & 0x0C ) //ÊÇ·ñ´æÔÚIOFF±êÖ¾£¬´æÔÚ£¬ÔòBoostÉÏÉýÒ»¸östep£¬·ñÔò£¬BoostϽµÒ»¸östep¡£ { - Boost_Vout_Value = 0x03; - - Boost_Up_Flag = 0; - - SFRADDR = VOX_CON0; //IOFFÑ¡Ôñ¸ßµçÁ÷µµ10/15/20/25mA - SFRDATA |= 0x20; - - SFRADDR = VOX_CON2; - SFRDATA &= ~0xC0; - SFRDATA |= 0x80; //IOFF 20mA + Boost_Vout_Value += 1; //Boost Êä³öÉÏÉýÒ»¸östep - Boost_VoxVout_Follow_Flag = 1; + Boost_Up_Flag = 1; + + if( Boost_Vout_Value >= BOOST_VOUT_MAX ) //BoostÊä³ö´ïµ½µçѹÉÏÏÞÖµ£¬Ôò½áÊø¸úËæ³ä¡£ + { + Boost_Vout_Value = BOOST_VOUT_MAX; + + Boost_VoxVout_Follow_Flag = 0; + + Follow_Chg_Start_Flag = 1; + + SFRADDR = VOX_CON0; //IOFFÑ¡ÔñµÍµçÁ÷µµ2/3/4/5mA + SFRDATA &= ~0x20; + + SFRADDR = VOX_CON2; + SFRDATA &= ~0xC0; + SFRDATA |= 0x40; //IOFF 3mA + } } else - { - if( Vox_Vol_Hold_Timer < VOX_FOLLOW_CHG_CNT ) //µÈ¶ú»ú³éµç¡£ + { + if( !Boost_Up_Flag ) //Ö»ÔÚ³õʼ»¯ÕÒ×îµÍÇáÔØµçѹʱִÐÐ + { + Boost_Vout_Value -= 1; //Boost Êä³öϽµÒ»¸östep + + if( Boost_Vout_Value <= 0 ) + { + Boost_Vout_Value = 0; + } + } + } + + SFRADDR = OTP_KEY; + SFRDATA = 0x69; + + SFRADDR = BST_CTL0; //Boost Êä³ö + SFRDATA &= ~0x03; + SFRDATA |= Boost_Vout_Value; + + SFRADDR = OTP_KEY; + SFRDATA = 0x01; + } + } + else +#endif + { + if( !Vox_Chg_Full_Flag ) + { + if( ( (CHIP_STA1 & 0xAC) == 0xAC ) ) //¶ú»ú³äÂú»òºÐ×ӵ͵磬Ôò¹Ø±ÕVoutÊä³öͨ·£¬¹Ø±ÕBoost¡£ + { + if( Vox_Vol_Hold_Timer < VOX_VOUT_5V_LEAST_CNT ) //ÖØÔØ×ªÇáÔØÑÓʱ5sºó¹Ø±ÕBoostÊä³ö¡£ { Vox_Vol_Hold_Timer++; return; } + + Vox_Chg_Full_Flag = 1; - Vox_Vol_Hold_Timer = 0; - - if ( CHIP_STA1 & 0x0C ) //ÊÇ·ñ´æÔÚIOFF±êÖ¾£¬´æÔÚ£¬ÔòBoostÉÏÉýÒ»¸östep£¬·ñÔò£¬BoostϽµÒ»¸östep¡£ - { - Boost_Vout_Value += 1; //Boost Êä³öÉÏÉýÒ»¸östep + Vox_Vout_Enable = OFF; - Boost_Up_Flag = 1; - - if( Boost_Vout_Value >= BOOST_VOUT_MAX ) //BoostÊä³ö´ïµ½µçѹÉÏÏÞÖµ£¬Ôò½áÊø¸úËæ³ä¡£ - { - Boost_Vout_Value = BOOST_VOUT_MAX; - - Boost_VoxVout_Follow_Flag = 0; - - Follow_Chg_Start_Flag = 1; - - SFRADDR = VOX_CON0; //IOFFÑ¡ÔñµÍµçÁ÷µµ2/3/4/5mA - SFRDATA &= ~0x20; - - SFRADDR = VOX_CON2; - SFRDATA &= ~0xC0; - SFRDATA |= 0x40; //IOFF 3mA - } - } - else - { - if( !Boost_Up_Flag ) //Ö»ÔÚ³õʼ»¯ÕÒ×îµÍÇáÔØµçѹʱִÐÐ - { - Boost_Vout_Value -= 1; //Boost Êä³öϽµÒ»¸östep - - if( Boost_Vout_Value <= 0 ) - { - Boost_Vout_Value = 0; - } - } - } - - SFRADDR = OTP_KEY; - SFRDATA = 0x69; - - SFRADDR = BST_CTL0; //Boost Êä³ö - SFRDATA &= ~0x03; - SFRDATA |= Boost_Vout_Value; - - SFRADDR = OTP_KEY; - SFRDATA = 0x01; + Vout_Ctrl_OFF(ON); } - } - else -#endif - { - if( !Vox_Chg_Full_Flag ) - { - if( ( (CHIP_STA1 & 0xAC) == 0xAC ) ) //¶ú»ú³äÂú»òºÐ×ӵ͵磬Ôò¹Ø±ÕVoutÊä³öͨ·£¬¹Ø±ÕBoost¡£ - { - if( Vox_Vol_Hold_Timer < VOX_VOUT_5V_LEAST_CNT ) //ÖØÔØ×ªÇáÔØÑÓʱ5sºó¹Ø±ÕBoostÊä³ö¡£ - { - Vox_Vol_Hold_Timer++; - - return; - } - - Vox_Chg_Full_Flag = 1; - - Vox_Vout_Enable = OFF; - - Vout_Ctrl_OFF(ON); - } - } - } + } } + } + + Bat_Low_Pro_Flag = 0; + } + else + { + if( !Bat_Low_Pro_Flag ) + { + Bat_Low_Pro_Flag = 1; - Bat_Low_Pro_Flag = 0; - } - else - { - if( !Bat_Low_Pro_Flag ) - { - Bat_Low_Pro_Flag = 1; - - Vox_Vout_Enable = OFF; - - Vout_Ctrl_OFF(ON); - - CHIP_STA1_BK = CHIP_STA1 & 0xA0; + Vox_Vout_Enable = OFF; + + Vout_Ctrl_OFF(ON); + + //CHIP_STA1_BK = CHIP_STA1 & 0xA0; - Wkup_Earphone_Flag = 1; - } - - #if 0 - /*¶ú»ú³öÈëºÐÅжÏ*/ - if( CHIP_STA1_BK != (CHIP_STA1 & 0xA0) ) //²éѯ¶ú»úloadon״̬£¬loadon״̬¸Ä±ä£¬Ôò˵Ã÷Óжú»ú³öÈëºÐ¡£ + Wkup_Earphone_Flag = 1; + } + + #if 0 + /*¶ú»ú³öÈëºÐÅжÏ*/ + if( CHIP_STA1_BK != (CHIP_STA1 & 0xA0) ) //²éѯ¶ú»úloadon״̬£¬loadon״̬¸Ä±ä£¬Ôò˵Ã÷Óжú»ú³öÈëºÐ¡£ + { + if(CHIP_STA1 & 0xA0) { - if(CHIP_STA1 & 0xA0) - { - Earphone_Chg_Flag = 1; + Earphone_Chg_Flag = 1; #ifdef LED_DISPLAY - LED_On_Flag = 1; + LED_On_Flag = 1; #endif - } - - CHIP_STA1_BK = CHIP_STA1 & 0xA0; - } - #endif + } + + CHIP_STA1_BK = CHIP_STA1 & 0xA0; } - } + #endif + } } #endif