更改内容:1、优化Vox OCP保护相关逻辑;2、调整按键发码之间的间隔时间为100ms;3、优化灯效显示功能;4、优化开关盖充电逻辑。

This commit is contained in:
Alex xu 2024-12-13 16:57:43 +08:00
parent a6f71fef28
commit dfe4a8e40c
22 changed files with 719 additions and 645 deletions

Binary file not shown.

View File

@ -1,205 +0,0 @@
:0300000002058076
:10058000758E3075D20078FFE4F6D8FD758154027F
:0205900005CD97
:0C000E00120850D2AED2BE1204EC80F7F3
:0806120002160000021401377A
:0C003D00AE14AF15AB07AA06E4F9F822D8
:0207F000AD0753
:1007F200E4FCFBFAF51CF51D75FE2975FF8BBD06A1
:100802001775FE0143FF8075A541E5A520E0FB7544
:10081200A56175FE0153FF7FE4FCEDC454F0440171
:10082200F5A5E5A520E0FBAFA1AB07AFA2EFFEEE79
:10083200FAEB251DF51DEA351CF51C0CBC08DBE5A1
:0D0842001DAE1C7803CEC313CE13D8F9FFF2
:01084F002286
:100A2B00E4FE7F051207F07C077DD0120343C0065E
:0C0A3B00C00712003DD007D0060202B137
:100A4700E4FE7F041207F07C037DE8120343C0062F
:0C0A5700C00712003DD007D0060202B11B
:04061A00C120C12119
:10078500E4FFFEF51B120A47C3EF94D0EE94074031
:10079500037F0022D3EF942EEE94065030EF94128F
:1007A500EE94024028301E12EF9406EE9406500790
:1007B500C21EE4F51B8003751B01301F2BD3EF947C
:1007C50033EE9402401FC21FE4F51B801BD3EF9448
:1007D5002EEE94064004D21E800BC3EF9412EE94C5
:0A07E500025002D21F751B01AF1B6A
:0107EF0022E7
:1008AE00E5E620E70953B3FE75F210C22022E5F209
:1008BE00540C601053B3FEE5F354C0603A75F20C5D
:1008CE0075F3C02275F3C030210453B3FE22E5F256
:1008DE0030E416C3E51794D2E516940F500575F261
:1008EE0010800353B3FED2202243B311E534D394C8
:0808FE00014002C22AC22022BF
:04061E00C125C1260B
:10095C00E5E530E103C22522E5E230E705C225D208
:10096C002622302A02802FE5E830E009C22575E8FE
:10097C000175B50122302106C225E4F5B522D22538
:10098C00302618E5E630E713C3E5179410E5169406
:0C099C000E4003C22622E4F5B5C225225D
:07062200011FFFC127C128E1
:10001E00E5E25408FF651F6015E5E230E305751E45
:0E002E00018003E4F51ED227D228D21D8F1FB9
:01003C0022A1
:06062900C117C118C11643
:10069800E5E220E12D054BE54BC3941E40102013E5
:1006A8001DD213D212301016D216D21D8010E54B6F
:1006B800C3940F4009201406D21CD218D214D215A4
:1006C8008019301513C215C213C214C218E54BC3E2
:1006D80094055004D217D21DE4F54B30122FE54C87
:1006E800D394185019E54C75F00584E5F0700C307A
:1006F8001009D22BF512751305D22C054C22C21203
:0D070800754C01E51EB401057F01120A6366
:0107150022C1
:100906007850E6604D7852E6FFD318965004D284AC
:100916008002C284EFC394AA4018E47852F6785451
:10092600E660067851161680097853E66004785119
:1009360006067851E6FF74AAD39F500978547601CB
:10094600E418F6800DEFD39401500778537601E44E
:0609560008F678520622AB
:05062F00014F0AC12D7E
:100A9000E5E220E006201103302D04C22DC322D34D
:010AA0002233
:1008500075FE8043FF3075FE0153FFFCD28175FEAB
:100860000643FF1AD21D75B7C375FE6A75FF04757E
:10087000FE6C43FF0A758901758CFC758A66D2A9E6
:10088000D28C438910758DFF758BA4D2ABD28E7537
:10089000868075FE0F43FF8075FE4F75FF1075FE55
:0E08A0001775FF3CD2A8D2B9D2AF75B10422B1
:03000300020006F2
:0100060032C7
:03004B00020AB5F1
:060AB50075EB3CD22D326E
:04063400C11DC11C07
:090AAC00E54D75F00584E5F0222A
:0B0AA100E47850F6C283C284D22D22FC
:10037000202103300A1F201905D219020AA1E54DD8
:10038000C39469500D054D120AAC600302043EB2DD
:100390008322C28322301911C219120AA1C21AC2C1
:1003A0001BC20BC228D21DD21CE5E630E728302044
:1003B0000C201B05D21B120AA1D2848010201A091E
:1003C000D21AC21B120AA1800478507601C217C249
:1003D00016C228C21D22301A08C21AC21BD21DD250
:1003E0001C301D08E4F54DC21D120AA1302A0280FE
:1003F00043200B092017062016033028413016052C
:10040000754E2B8003754E23E54DC39405500305AF
:100410004D22E54DC3954E501B054D301608120A6E
:10042000AC701BB28422302908120AAC7010B2835F
:0E04300022D28422C217C216C228C20BD21DCD
:01043E00229B
:1004EC00302305C22312043F30222FC22212001ED9
:1004FC0012095C1208AE120698120A2B8E168F1770
:10050C00120785EF24FF92217F061207F08E148FBD
:10051C001512004E120716120370302456C224E531
:10052C004FD394004009154F302D48C22D804112F5
:10053C000A90503CE5E230E70875FE2453FFC38077
:10054C000675FE2443FF3CC2ABC2B9C2A953B7CF58
:10055C00E4F5B575FE2953FF7F75FE8053FFCF433D
:10056C00870275FE8043FF30D2B9D2A9D2AB80008E
:04057C00754F0A228B
:10063800C111C10BC10AC110C10FC10EC10D010DFD
:0306480000C10CE2
:100A6300E4F5B5EF24FF928175FE0653FFFB43FFC8
:080A730002BF010353B7CF22BB
:100A7B0075FE0643FF0453FFFDC28275B501BF012E
:050A8B000343B7302217
:10004E00E5E8540C6023050CE50CD394055003022F
:10005E000274E4F50C75E80C53B7CF43B730D20AEF
:10006E00C227C201C202C21122C20A202503020205
:10007E0060302737E5B570030201B343B730E4F5BE
:10008E000CF509F50AF50BC200C210E51E7014C27C
:10009E000BD201D205D206D211C202C209C208C2C7
:1000AE000D8006C201D202C204C227200203020141
:1000BE0062E509C394025003050922E50AC39402BE
:1000CE00500AE4FF120A63050A020162301C11E5B0
:1000DE00B570030201B3C200E4F50B43B730C21C86
:1000EE00200041E50CD394185023E50C75F00584DF
:1000FE00E5F07015E5E354A0FFBFA00DD22BC22C86
:10010E00E53344C4751200F513050C8047E50BC3A7
:10011E0094035003050B22D2007F01120A63D2030F
:10012E00C2118030300315C203E4F50BE5E354AC85
:10013E00FFBFA004D2108016C2108012E5E354A0B7
:10014E0065086010E5E354A06004D20BD21DE5E310
:10015E0054A0F50820010302025D301C18E5B570AD
:10016E000FFF120A7BC205C200F50AF509C208226A
:10017E0043B730C21CE50AC3940A5003050A222075
:10018E0005097F01120A63D2058013200010E5E3F2
:10019E0054ACFFBFA004D2108002C210D2002006C1
:1001AE000DE5B57004FF020A7B43B730D206300965
:1001BE000302023F200D19750D03C20C75FE6A4332
:1001CE00FF2075FE6C53FF3F43FF80D20D02025D90
:1001DE00E509C3940A5003050922E4F509E5E35441
:1001EE000C6025050DD20CC3E50D64809482402968
:1001FE00750D02C20DD20975FE6A53FFDF75FE6CD6
:10020E0053FF3F43FF408011200C0E150DD3E50D1B
:10021E00648094805003E4F50D75FE8F75FF69754B
:10022E00FE7853FFFCE50D42FF75FE8F75FF0180D2
:10023E001E20081BE5E354ACFFBFAC13E509C394C5
:10024E00325003050922D208C2117F01120A63C27D
:10025E000722200711D207C2117F01120A63E5E3BC
:06026E0054A0F508D21CAB
:010274002267
:10064B00013400013300C129C12A01326416350C73
:10065B00800DAC0E100E740ED80F3C0F6E0FA01049
:10066B0004103610680B270A181A202228292A3062
:02067B0031321A
:10071600E4FFEF25E02435F8E6FC08E6FDC3E5171F
:100726009DE5169C40040FBF0BE8E5E16005E4F586
:10073600E18F34EFD395344004053280021532E55B
:1007460032D394BE5007E532C3940A50158F34E570
:10075600266534600A74272FF8E6F5338534267546
:100766003264E534D394005002D22AE534D394029D
:0E0776005003D22922E534D394044002C22954
:010784002252
:0F067D00011900011800011A00C123C122C12474
:03000B000209EDFA
:1009ED00C0E0C0D074FC258CF58C7466258AF58A20
:1009FD00D2230518E518C394644005751800D2225A
:100A0D000519E519C394FA4010751900051AE51A70
:0E0A1D0094044005751A00D224D0D0D0E032E7
:03001B000209A82F
:1009A800C0E0C0F0C083C082C0D075D000C000C015
:1009B80001C002C003C004C005C006C007C28F152D
:1009C8008D74A4258BF58B120906D007D006D005A7
:1009D800D004D003D002D001D000D0D0D082D083B0
:0509E800D0F0D0E03268
:030BFD00010103F0
:0B068C00C12B01110002120000C12C64
:10043F00202B030204EB0510E511702EE510D39469
:10044F003750028015E510D3944B50077F01120AE5
:10045F007B8017E510C3945F5007E4FF120A638097
:10046F0009751101302C03750E04E511B4012B151C
:10047F000EE50ED394074008750E0875110380031F
:10048F00751102E513AE12A80E088005CEC313CE68
:10049F0013D8F95401F50FE4F510E511B40211E585
:1004AF0010C394145006E50F601F801175110122BF
:1004BF00E51164037026E510C3941450057F010203
:1004CF000A7BE510C394285005E4FF020A637F01FD
:0C04DF00120A7BE4F510C22BC22CF511B0
:0104EB0022EE
:1005920002000EE493A3F8E493A34003F68001F271
:1005A20008DFF48029E493A3F85407240CC8C3336A
:1005B200C4540F4420C8834004F456800146F6DF39
:1005C200E4800B0102040810204080900612E47EB1
:1005D200019360BCA3FF543F30E509541FFEE4932E
:1005E200A360010ECF54C025E060A840B8E493A3F5
:1005F200FAE493A3F8E493A3C8C582C8CAC583CA20
:10060200F0A3C8C582C8CAC583CADFE9DEE780BED7
:010697000062
:1002750075F008758200EF2FFFEE33FECD33CDCC40
:1002850033CCC58233C5829BED9AEC99E5829840C3
:100295000CF582EE9BFEED9AFDEC99FC0FD5F0D6A0
:1002A500E4CEFBE4CDFAE4CCF9A88222B800C1B9CA
:1002B5000059BA002DEC8BF084CFCECDFCE5F0CB08
:1002C500F97818EF2FFFEE33FEED33FDEC33FCEB41
:1002D50033FB10D703994004EB99FB0FD8E5E4F9FC
:1002E500FA227818EF2FFFEE33FEED33FDEC33FCE9
:1002F500C933C910D7059BE99A4007EC9BFCE99ADD
:10030500F90FD8E0E4C9FAE4CCFB2275F010EF2F21
:10031500FFEE33FEED33FDCC33CCC833C810D70721
:100325009BEC9AE899400AED9BFDEC9AFCE899F85C
:0E0335000FD5F0DAE4CDFBE4CCFAE4C8F922EF
:10034300EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02D47
:10035300FDE43CFCE8A42EC8C5F03DFDE43CFCEF05
:0D036300A4FFE5F028FEE43DFDE43CFC2293
:00000001FF

Binary file not shown.

View File

@ -0,0 +1,208 @@
:0300000002059F57
:10059F00758E3075D20078FFE4F6D8FD758155025F
:0205AF0005EC59
:0C000E001208C0D2AED2BE12044580F72A
:08063100021700000215013759
:0C003D00AE15AF16AB07AA06E4F9F822D6
:02086000AD07E2
:10086200E4FCFBFAF51DF51E75FE2975FF8BBD062E
:100872001775FE0143FF8075A541E5A520E0FB75D4
:10088200A56175FE0153FF7FE4FCEDC454F0440101
:10089200F5A5E5A520E0FBAFA1AB07AFA2EFFEEE09
:1008A200FAEB251EF51EEA351DF51D0CBC08DBE52D
:0D08B2001EAE1D7803CEC313CE13D8F9FF80
:0108BF002216
:100A4300E4FE7F051208607C077DD0120334C006E4
:0C0A5300C00712003DD007D0060202A22E
:100A5F00E4FE7F041208607C037DE8120334C006B5
:0C0A6F00C00712003DD007D0060202A212
:04063900C120C121FA
:10072F00E4FFFEF51C120A5FC3EF94D0EE9407406E
:10073F00037F0022D3EF942EEE94065030EF9412E5
:10074F00EE94024028301E12EF9406EE94065007E6
:10075F00C21EE4F51C8003751C01301F2BD3EF94D0
:10076F0033EE9402401FC21FE4F51C801BD3EF949D
:10077F002EEE94064004D21E800BC3EF9412EE941B
:0A078F00025002D21F751C01AF1CBE
:01079900223D
:1007FF00E5E620E70953B3FE75F210C22022E5F2B9
:10080F00540C601053B3FEE5F354C0604375F20C03
:10081F0075F3C02275F3C030210453B3FE22E5F205
:10082F0030E416C3E51894D2E517940F500575F20E
:10083F0010800353B3FED2202243B311E534D39477
:10084F00014002C22AE534D394034002C229C220D8
:01085F002276
:04063D00C125C126EC
:10097400E5E530E103C22522E5E230E705C225D2F0
:100984002622302A02802FE5E830E009C22575E8E6
:100994000175B50122302106C225E4F5B522D22520
:1009A400302618E5E630E713C3E5189410E51794EC
:0C09B4000E4003C22622E4F5B5C2252245
:07064100014CFFC127C12895
:10001E00E5E25408FF654C6015E5E230E305754BEB
:0E002E00018003E4F54BD227D228D21D8F4C5F
:01003C0022A1
:06064800C116C117C11527
:1006B500E5E220E12D054DE54DC3941E40102012C5
:1006C5001DD212D211300F16D215D21D8010E54D54
:1006D500C3940F4009201306D21CD217D213D2148B
:1006E5008019301413C214C212C213C217E54DC3C8
:1006F50094055004D216D21DE4F54D30112BE54E6C
:10070500C394125015E54E5403700C300F09D22BCB
:10071500F513751405D22C054E22C211754E01E54F
:090725004BB401057F01120A7BAF
:01072E0022A8
:10091E007851E6604D7853E6FFD318965004D28492
:10092E008002C284EFC394AA4018E47853F6785537
:10093E00E660067852161680097854E660047852FE
:10094E0006067852E6FF74AAD39F500978557601B1
:10095E00E418F6800DEFD39401500778547601E435
:06096E0008F67853062292
:05064E00011F0CC12D8D
:100AA800E5E220E006201003302D04C22DC322D336
:010AB800221B
:1008C00075FE8043FF3075FE0153FFFCD28175FE3B
:1008D0000643FF1AD21D75B7C375FE6A75FF04750E
:1008E000FE6C43FF0A758901758CFC758A66D2A976
:1008F000D28C438910758DFF758BA4D2ABD28E75C7
:10090000868075FE0F43FF8075FE4F75FF1075FEE4
:0E0910001775FF3CD2A8D2B9D2AF75B1042240
:03000300020006F2
:0100060032C7
:03004B00020ACDD9
:060ACD0075EB3CD22D3256
:04065300C11DC11CE8
:090AC400E54F75F00584E5F02210
:0B0AB900E47851F6C283C284D22D22E3
:10036100202106300A27200E24201808D218E4F58F
:100371004F020AB9E54FC39467500D054F120AC4E5
:100381006003020444B28322C283D20E22301811C8
:10039100C218120AB9C219C21BC20BC228D21DD27D
:1003A1001CE5E630E72830200C201B05D21B120A81
:1003B100B9D2848010201909D219C21B120AB9803E
:1003C1000478517601C216C215C228C21D22301905
:1003D10008C219C21BD21DD21C301D08E4F54FC240
:1003E1001D120AB9302A07201A59D21A804B200B44
:1003F10009201606201503302849C21A3015057543
:10040100502B8003755023E54FC394055003054FCE
:1004110022E54FC395505021054F30150A120AC4E9
:100421007021B284C2832230290A120AC47014B224
:1004310083C28422D284C28322C216C215C228C2B8
:030441000BD21DBE
:010444002295
:10044500302305C2231204F230222FC22212001ECD
:100455001209741207FF1206B5120A438E178F1878
:1004650012072FEF24FF92217F061208608E158F49
:100475001612004E12079A12036130246FC224E54A
:100485001FD394004009151F302D61C22D805A12CB
:100495000AA85055E5E220E703300E0875FE2453FF
:1004A500FFC3800675FE2443FF3CC2ABC2B9C2A997
:1004B5007F01120A7B75FE2953FF7F75FE8053FF6E
:1004C500CF43870275FE8043FF30D2B9D2A9D2ABA4
:1004D500300E14D28175FE0643FF0275B7C3D227CD
:0D04E50075E80CC20AC20E8000751F0C22C3
:10065700C110C10BC10AC10FC10D010E00C10CC1F0
:010667000E84
:100A7B00E4F5B5EF24FF928175FE0653FFFB43FFB0
:080A8B0002BF010353B7CF22A3
:100A930075FE0643FF0453FFFDC28275B501BF0116
:050AA3000343B73022FF
:10004E0020250302025730273DE5B5700302017BE0
:10005E0043B730E4F50DF509F50AF50BF50CC200C2
:10006E00C20FC20AC20EE54B7014C20BD201D205EA
:10007E00D206D210C202C209C208C20D8006C20147
:10008E00D202C204C22720020302012AE509C39448
:10009E00025003050922301C13E5B5700302017BE3
:1000AE00C200E4F50BF50C43B730C21C20003DE551
:1000BE000DC39412501FE50D54037015E5E354A0C3
:1000CE00FFBFA00DD22BC22CE53344C4751300F52F
:1000DE0014050D8047E50BC394035003050B22D284
:1000EE00007F01120A7BD203C2108030300315C28A
:1000FE0003E4F50BE5E354ACFFBFA004D20F80166A
:10010E00C20F8012E5E354A065086010E5E354A029
:10011E006004D20BD21DE5E354A0F50820010302C2
:10012E000254301C18E5B5700FFF120A93C205C2B7
:10013E0000F50AF509C2082243B730C21CE50AC30E
:10014E00940A5003050A222005097F01120A7BD268
:10015E00058013200010E5E354ACFFBFA004D20FBE
:10016E008002C20FD20020060DE5B57004FF020A10
:10017E009343B730D206E5E8540C6025200E1D05DA
:10018E000DE50DC394055003020265E4F50D75E807
:10019E000C53B7CF43B730D20AC210227F01020AE6
:1001AE007BC20AC20E300903020236200D19750EEB
:1001BE0003C20C75FE6A43FF2075FE6C53FF3F436E
:1001CE00FF80D20D020254E509C3940A50030509BB
:1001DE0022E4F509E5E3540C6025050ED20CC3E5C7
:1001EE000E648094824029750E02C20DD20975FEEE
:1001FE006A53FFDF75FE6C53FF3F43FF40801120B3
:10020E000C0E150ED3E50E648094805003E4F50EAB
:10021E0075FE8F75FF6975FE7853FFFCE50E42FF84
:10022E0075FE8F75FF01801E20081BE5E354ACFFA1
:10023E00BFAC13E509C394325003050922D208C29C
:10024E00107F01120A7BC2072220070BD207C210B1
:07025E007F01120A7BD21C94
:010265002276
:10066800013400013300C129C12A01326416350C56
:10067800800DAC0E100E740ED80F3C0F6E0FA0102C
:1006880004103610680B270A181A202228292A3045
:020698003132FD
:10079A00E4FFEF25E02435F8E6FC08E6FDC3E5189A
:1007AA009DE5179C40040FBF0BE8E5E16005E4F501
:1007BA00E18F34EFD395344004053280021532E5D7
:1007CA0032D394BE5007E532C3940A50158F34E5EC
:1007DA00266534600A74272FF8E6F53385342675C2
:1007EA003264E534D394005002D22AE534D394011A
:0407FA005002D229AE
:0107FE0022D8
:0F069A00011A00011900011B00C123C122C12454
:03000B00020A05E1
:100A0500C0E0C0D074FC258CF58C7466258AF58A07
:100A1500D2230519E519C394644005751900D2223E
:100A2500051AE51AC394FA4010751A00051BE51B53
:0E0A350094044005751B00D224D0D0D0E032CE
:03001B000209C017
:1009C000C0E0C0F0C083C082C0D075D000C000C0FD
:1009D00001C002C003C004C005C006C007C28F1515
:1009E0008D74A4258BF58B12091ED007D006D00577
:1009F000D004D003D002D001D000D0D0D082D08398
:050A0000D0F0D0E0324F
:030BFD00010103F0
:0B06A900C12B01120002130000C12C45
:1004F200202B0302059E0511E512702EE511D394FF
:100502003750028015E511D3944B50077F01120A30
:10051200938017E511C3945F5007E4FF120A7B80B2
:1005220009751201302C03750F04E512B4012B1565
:100532000FE50FD394074008750F08751203800367
:10054200751202E514AE13A80F088005CEC313CEB0
:1005520013D8F95401F510E4F511E512B40211E5CE
:1005620011C394145006E510601F80117512012208
:10057200E51264037026E511C3941450057F01024D
:100582000A93E511C394285005E4FF020A7B7F0118
:0C059200120A93E4F511C22BC22CF512E2
:01059E00223A
:1005B10002000EE493A3F8E493A34003F68001F252
:1005C10008DFF48029E493A3F85407240CC8C3334B
:1005D100C4540F4420C8834004F456800146F6DF1A
:1005E100E4800B0102040810204080900631E47E73
:1005F100019360BCA3FF543F30E509541FFEE4930F
:10060100A360010ECF54C025E060A840B8E493A3D5
:10061100FAE493A3F8E493A3C8C582C8CAC583CA00
:10062100F0A3C8C582C8CAC583CADFE9DEE780BEB8
:0106B4000045
:1002660075F008758200EF2FFFEE33FECD33CDCC4F
:1002760033CCC58233C5829BED9AEC99E5829840D2
:100286000CF582EE9BFEED9AFDEC99FC0FD5F0D6AF
:10029600E4CEFBE4CDFAE4CCF9A88222B800C1B9D9
:1002A6000059BA002DEC8BF084CFCECDFCE5F0CB17
:1002B600F97818EF2FFFEE33FEED33FDEC33FCEB50
:1002C60033FB10D703994004EB99FB0FD8E5E4F90B
:1002D600FA227818EF2FFFEE33FEED33FDEC33FCF8
:1002E600C933C910D7059BE99A4007EC9BFCE99AEC
:1002F600F90FD8E0E4C9FAE4CCFB2275F010EF2F31
:10030600FFEE33FEED33FDCC33CCC833C810D70730
:100316009BEC9AE899400AED9BFDEC9AFCE899F86B
:0E0326000FD5F0DAE4CDFBE4CCFAE4C8F922FE
:10033400EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02D56
:10034400FDE43CFCE8A42EC8C5F03DFDE43CFCEF14
:0D035400A4FFE5F028FEE43DFDE43CFC22A2
:00000001FF

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -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 )

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -160,6 +160,15 @@ uint8_t PMU_NTC_Control(void)
*/
/*
1使VIN拔出
2UVLO保护PG
3VIN DPM
4
5
6
7NTC保护JEITA或IEC标准调整充电参数
8
VIN是否PGNTC保护ChargerCharger
使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;
}

View File

@ -22,6 +22,7 @@
#include "led.h"
#include "userapp.h"
#include "sleep.h"
#include "vox_module.h"
#ifdef HALL_ENABLE

View File

@ -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
}
}

View File

@ -172,7 +172,7 @@ void System_Init(void)
EX2 = 1;
EAL = 1; //开总中断。
#if CHARGER_ENABLE
#ifdef SY8836 //合封OVP芯片SY8836

View File

@ -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;
}

View File

@ -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持续500msVox转入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持续500msVox转入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