Переглянути джерело

1,优化电量显示代码;
2,解决不同方向放置自动唤醒。

Deyauo 10 місяців тому
батько
коміт
e0f0461e02

+ 487 - 499
Debug/Exe/tail_light_stm8.hex

@@ -1,501 +1,489 @@
-:1080000082009DDD82009F1C82009F1D82009F1EBA
-:1080100082009F1F82009F2082009F2182009F225A
-:1080200082009F2382009F2482009F0E82009F0E69
-:1080300082009F2582009F2682009F2782009F2822
-:1080400082009F2982009F0E82009F0E82009F2A3D
-:1080500082009F2B82009F2C82009F0E82009F0E29
-:1080600082009C688200995882009F2D82009F0E9A
-:1080700082009F0E82009F0E82009F0E82009F0E44
-:10808000CD89685FBF0ABF08725C008FC6008F4A47
+:1080000082009D1182009E5D82009E5E82009E5FC6
+:1080100082009E6082009E6182009E6282009E635A
+:1080200082009E6482009E6582009E4F82009E4F69
+:1080300082009E6682009E6782009E6882009E6922
+:1080400082009E6A82009E4F82009E4F82009E6B3D
+:1080500082009E6C82009E6D82009E4F82009E4F29
+:1080600082009B9C820098B582009E6E82009E4F8B
+:1080700082009E4F82009E4F82009E4F82009E4F44
+:10808000CD89815FBF0ABF08725C008DC6008D4A32
 :10809000270F4A2603CC812B4A2603CC81B6CC82FB
-:1080A0007F725F008EA601CD99E3AE0043CD99A10A
-:1080B000CD8A2AC6008E4D261AAE0043CD99A1CD99
-:1080C0008A10CD843FBE00A300002605BE02A30097
-:1080D0000B25E0CE007FBF025FBF00AE004FCD8416
-:1080E00027AE004FCD99B9725C0090C60090A104F4
-:1080F000251CAE004FCD99A1A602CD85CCBE02CFE6
-:10810000007D5FCF004F5FCF0051725F0090CE00C7
-:108110007DA302C725063501008D200CCE007DA36E
-:1081200002B22404725F008DCC827F725F008EA643
-:1081300004CD99E3AE0043CD99A1CD8A2AC6008E25
-:108140004D261AAE0043CD99A1CD8A10CD843FBEF5
-:1081500000A300002605BE02A3000B25E0CE007F91
-:10816000BF025FBF00AE004BCD8427AE004BCD9960
-:10817000B9725C0091C60091A104251CAE004BCDE4
-:1081800099A1A602CD85CCBE02CF007B5FCF004B6C
-:108190005FCF004D725F009190CE007BAE000ABFB2
-:1081A0000093CD990ECD994D41B70041A60AB0007C
-:1081B000C7008CCC827F725F008EA605CD99E3AE9E
-:1081C0000043CD99A1CD8A2AC6008E4D261AAE0055
-:1081D00043CD99A1CD8A10CD843FBE00A3000026D7
-:1081E00005BE02A3000B25E0CE007FBF025FBF00EB
-:1081F000AE0047CD8427AE0047CD99B9725C00929E
-:10820000C60092A104251CAE0047CD99A1A602CDBF
-:1082100085CCBE02CF00795FCF00475FCF004972A7
-:108220005F0092CE0079A3035625063564009320A3
-:108230002ACE0079A302AE2406725F0093201CCEE2
-:1082400000791CFD53BF025FBF00CD845A000002BD
-:108250005CA60ACD85CCB603C70093C60093C100C7
-:10826000142515C600143F00B701C600935F97722E
-:10827000B00000A3000B2F0555009300142000C68A
-:10828000008FA1032504725F008FC60012A1012692
-:1082900014C6008D4D2608C60014CD8E382006C6A3
-:1082A0000014CD8EF2725C0094C60094A1042427C1
-:1082B000C600945F97581C003BBF00C60094905FB7
-:1082C0009097905872A90035C600945F97581C008B
-:1082D0002FCD9213CC8409A603AE0031CD97DBCF0E
-:1082E0000081A603AE0037CD97DBCF0083A603AE97
-:1082F000003DCD97DBCF0085A603AE0031CD96744F
-:10830000AE0053CD99B9A603AE0037CD9674AE003A
-:1083100057CD99B9A603AE003DCD9674AE005BCDA6
-:1083200099B9C6008D4D2703CC83E9AE0053CD9992
-:10833000A1AE03E9BF065FBF04CD85B52E26AE0012
-:1083400057CD99A1AE03E9BF065FBF04CD85B52E19
-:1083500013AE005BCD99A1AE03E9BF065FBF04CDAC
-:1083600085B52F18AE0043CD99A1AE005FCD99B968
-:10837000AE0043CD99A1AE0063CD99B9C60013A15B
-:10838000012707C60013A102263B90AE005FAE0096
-:1083900043CD99A193CD8442BE00A300002605BE23
-:1083A00002A37531252BA60FCD85E8AE0043CD99EC
-:1083B000A1AE005FCD99B9AE0043CD99A1AE0063E7
-:1083C000CD99B9200CAE0043CD99A1AE005FCD99F7
-:1083D000B9CE008572B00087A3FF882E0435010056
-:1083E0008BCE0085CF0087201CAE0043CD99A1AE77
-:1083F000005FCD99B9AE0043CD99A1AE0063CD9990
-:10840000B9725F008B725F0094CC89C6AE00002009
-:10841000006C0326096C0226056C0126017C81CDC7
-:108420009D972003AE0004B603EB03B703B602E941
-:1084300002B702B601E901B701B600F9B70081AE93
-:108440000004B603E003B703B602E202B702B601C6
-:10845000E201B701B600F2B70081CD9D9789FEBF5A
-:108460000485EE02BF06B600BE06429FB700B60105
-:10847000BE05429FBB00B700B602BE04429FBB00D0
-:10848000B700B603BE03429FBB00B700B601BE06ED
-:10849000423F0172BB0000BF00B602BE054272BB84
-:1084A0000000BF00B603BE044272BB0000BF00B6AE
-:1084B00002BE06423F0272BB0001BF0124023C0023
-:1084C000B603BE054272BB0001BF0124023C00B6E8
-:1084D00003BE06423F0372BB0002BF022405BE007A
-:1084E0005CBF0081CD9D8ABE00261E90BE04260C76
-:1084F000BE0290BE0665BF0290BF0681BF04450262
-:1085000006450307BF00BF0281A6203D00260DBE21
-:1085100001BF004503023F033A03A0085F905F9943
-:108520002017905959B304260390B306250B72B255
-:10853000000624015A72B0000439033902390139A6
-:10854000004A2ADEBF0490BF06BE0053BF00BE0231
-:1085500053BF02814B004B003D002A0AAE0000CD04
-:10856000858A030103023D042A08AE0004CD858AF2
-:108570000301CD84E7844D2706AE0000CD858A84B3
-:108580004D2706AE0004CD858A8160034FE202E7E5
-:10859000024FE201E7014FF2F781908990BE00F3AC
-:1085A000260590BE02E302908581BE00B304260436
-:1085B000BE02B30681BE00B3042610BE02B3068A13
-:1085C00084A47BA5012702AA04888681AE00004D01
-:1085D000270A746601660266034A26F681BF025FB7
-:1085E0003D022A0153BF00813B0008B708725F00BB
-:1085F000125FCD9BCA35FA00013F004FCD95A5AE65
-:108600000190CD9CE23F013F004FCD95A5AE01907A
-:10861000CD9CE235FA00013F004FCD95A5AE01900B
-:10862000CD9CE23F013F004FCD95A5AE0190CD9C82
-:10863000E235FA00013F004FCD95A5AE0190CD9CEB
-:10864000E23F013F004FCD95A5B6084444A401A1E7
-:1086500000272F354F0000A620CD9CC235400000DA
-:10866000A622CD9CC2357C0000A630CD9CC2351020
-:108670000000A632CD9CC2350A0000A633CD9CC2B4
-:1086800020073F00A620CD9CC29BCD90E1CD973125
-:10869000CD9D71AE5000CD9DCA35D00000A608AE6C
-:1086A0005000CD933DAE5005CD9DCA35D00000A6FB
-:1086B00010AE5005CD933D35D00000A620AE50053C
-:1086C000CD933DAE500ACD9DCA35D00000A620AE58
-:1086D000500ACD933D35C00000A640AE500ACD9360
-:1086E0003DAE500FCD9DCA35D00000A608AE500F4C
-:1086F000CD933D3F00A620AE500FCD933D3F00A649
-:1087000040AE500FCD933D3F00A610AE500ACD9322
-:108710003DCD9A5035600000A610AE500FCD933D70
-:1087200035020000A603CD945835200000A610AEF7
-:10873000500ACD933DB6084444A401A10027173543
-:10874000600000A680AE500ACD933D35030000A620
-:1087500002CD9458200935010000A602CD94589A04
-:108760008ECD87C1CD978AB608444444A401A100A8
-:108770002723725F008EA604CD99E3AE00C8CD9C7E
-:10878000E2C6008EA101260ACE007FA3025925026F
-:108790002003CC8649350100125FCF00675FCF0010
-:1087A000695FCF006B5FCF006D5FCF00735FCF005D
-:1087B0006F5FCF00715FCF00755FCF007732000829
-:1087C000819BCD9A1AA601CD9E004FCD9A81A6809D
-:1087D000CD9A81350100004FCD96D635010000A617
-:1087E00007CD96D635010000A605CD96D6350100F9
-:1087F00000A604CD96D635010000A613CD96D6AEC0
-:108800005000CD9DCAAE5005CD9DCAAE500ACD9D3B
-:10881000CA35600000A608AE500ACD933D3502006F
-:1088200000A602CD945835600000A680AE500ACD57
-:10883000933D35020000A602CD9458AE500FCD9D59
-:10884000CA35400000A610AE500FCD933DCD90E14B
-:108850003F0090AE03E74FAE000FCD9C8C352A0051
-:10886000053F043F033F025F3F0135110000A66052
-:10887000CD960EA601CD9E1C350100004FCD98C4AB
-:10888000A601CD9B45A601CD9E0ECD9731AE03E747
-:10889000A604CD9DF0352200015F35110000A660D1
-:1088A000CD9AB2A601CD9E46352200015F3511005A
-:1088B00000A660CD9AE3A601CD9E54352200015F4B
-:1088C00035110000A660CD9B14A601CD9E62A601C5
-:1088D000CD9E38A601CD9E2ACD9D7135F90000A60A
-:1088E00006CD9E99A601CD9E7EA601CD9ECA3501DC
-:1088F0000000A601CD9D3EA601CD9E703F00A620A2
-:10890000AE500FCD933D3F00A640AE500FCD933DEE
-:108910003F00A610AE500ACD933DCD9A509A818863
-:10892000A600200A88A608200588A60C2000887BBF
-:1089300002887B02891E061F045F97FE1F0685843E
-:1089400081891E05BF00200E891E05BF08200789EA
-:108950001E05BF0C20001E031F05855B028188A633
-:1089600000200F88A604200A88A608200588A60CE7
-:10897000200088897B04887B04891E081F045F9778
-:108980001F08FE1F061E085C5CFE1F088584818987
-:108990001E05BF001E07BF022021891E05BF041E41
-:1089A00007BF062016891E05BF081E07BF0A200B39
-:1089B000891E05BF0C1E07BF0E20001E031F078562
-:1089C0005B0481CD89B0CD89A581CD894FCD89A5A5
-:1089D00081CD89488145080C45090D814504004534
-:1089E0000501450602450703814508004509014583
-:1089F0000A02450B0381450C00450D01450E024559
-:108A00000F03814500044501054502064503078122
-:108A1000450804450905450A06450B0781450C0430
-:108A2000450D05450E06450F07814500084501091E
-:108A300045020A45030B8145000C45010D45020E18
-:108A400045030F81CD8B5AC60030A102260A35019D
-:108A5000008A725F00302020C60030A104260A354B
-:108A600002008A725F0030200FC60030A105260880
-:108A70003503008A725F0030C6008A4D2603CC8B16
-:108A800038C6008AA1012649C60013A10126063571
-:108A9000020013201EC60013A10226063503001390
-:108AA0002011C60013A10326063504001320043547
-:108AB000010013AE0043CD99A1AE005FCD99B9AED0
-:108AC0000043CD99A1AE0063CD99B9725F008A20B1
-:108AD00067C6008AA102264CCE0010A300502608CB
-:108AE000AE012CCF0010201ECE0010A3012C2608B2
-:108AF000AE01F4CF0010200ECE0010A301F4260624
-:108B0000AE0050CF0010AE0043CD99A1AE005FCDB6
-:108B100099B9AE0043CD99A1AE0063CD99B9725F0A
-:108B2000008A2014C6008AA103260DA603CD85E87D
-:108B300035010013725F008AC60012A10126175585
-:108B4000008D0000C6008C905F9097AE008BC60031
-:108B500013CD8D592003CD9EFF81A610AE500FCDB1
-:108B60009EF2C7002AC600294D27154A27234A2707
-:108B70003F4A2603CC8BFB4A2603CC8C38CC8C6333
-:108B8000C6002A4D260835010029350A002FCC8C55
-:108B900063C6002F4D2612C6002A4D260635020058
-:108BA00029200A725F00292004725A002FCC8C639E
-:108BB000C6002A4D2619CE002B5CCF002BCE002BF1
-:108BC000A303E82534350500305FCF002B202ACEE3
-:108BD000002BA303E8250E725F0029350500305FE6
-:108BE000CF002B2014CE002BA30014250C3503003E
-:108BF000295FCF002B350A002F2068C6002F4D2695
-:108C000031CE002D5CCF002DCE002DA3012C250EE2
-:108C100035020030725F00295FCF002D2018C6009A
-:108C20002A4D2612350400295FCF002D350A002F6A
-:108C30002004725A002F202BC6002F4D2621C6007B
-:108C40002A4D2609CE002B5CCF002B2016350400C0
-:108C500030725F00295FCF002B5FCF002D200472A0
-:108C60005A002F81CD896DCD89245FBF0EBF0C3F87
-:108C700009B609A1022503CC8D523F08AE000ABFF8
-:108C800000BE08CD990EA601D100152703CC8D4D4D
-:108C90003F08AE000ABF00BE08CD990E1C001A9016
-:108CA00093AE0043CD99A193CD859A2412AE004393
-:108CB000CD99A1CD841F9A7EC800CD8A372009AEF8
-:108CC0000043CD99A1CD8A373F08AE000ABF00BE50
-:108CD00008CD990E1C001ACD89F6CD8442CD895E4F
-:108CE0003F08AE000ABF00BE08CD990E1C0016FE5C
-:108CF000BF065FBF04CD898FCD85AA25503F08AE42
-:108D0000000ABF00BE08CD990E1C001E7D27123F31
-:108D100008AE000ABF00BE08CD990E1C001E7A20C6
-:108D20002C3F08AE000ABF00BE08CD990E1C001AE9
-:108D30009093AE0043CD99A193CD99B93F08AE0071
-:108D40000ABF00BE08CD990E1C0018FEFD3C09CCE0
-:108D50008C71CD8948CD89B081CD8968CD8929B7FD
-:108D60000CBF0890BF0A45000D92C608A101261845
-:108D7000BE08CD9C425FCF00675FCF00695FCF0028
-:108D80006B5FCF006DCC8E35B60DA101261ECD9E3A
-:108D9000FF5FCF00675FCF00695FCF006B5FCF00E1
-:108DA0006D5FCF006F5FCF0071CC8E355FCF0073EA
-:108DB000B60C4D270E4A271D4A27314A27454A2718
-:108DC0005B20725FCF00675FCF00695FCF006B5F92
-:108DD000CF006D2060BE0ACD953B5FCF00695FCFAD
-:108DE000006B5FCF006D5FCF00712049BE0ACD8F51
-:108DF000A25FCF00675FCF006B5FCF006D5FCF00DA
-:108E00006F2032CD9BA05FCF00675FCF00695FCF3F
-:108E1000006D5FCF006F5FCF00712019CD9EE45FC2
-:108E2000CF00675FCF00695FCF006B5FCF006F5FE0
-:108E3000CF00712000CC89CA3B0008B708CE00776C
-:108E40005CCF0077B608A10B242CCE0077A30003DB
-:108E5000240C3F013F00A6FACD95A5CC8EEECE00A6
-:108E600077A30005240A3F013F004FCD95A5207E42
-:108E70005FCF00772078CE0077A30003245AB6088E
-:108E8000A115240D3F0135960000A6FACD95A52029
-:108E90005DB608A129240D3F0135FA0000A6FACDE0
-:108EA00095A5204AB608A13D240E35FA000135FAF1
-:108EB00000004FCD95A52036B608A151240E359659
-:108EC000000135FA00004FCD95A520223F0135FA6B
-:108ED00000004FCD95A52016CE0077A30033240ABD
-:108EE0003F013F004FCD95A520045FCF00773200B2
-:108EF00008813B0008B708B608A16425115FCF00C0
-:108F0000753F0135FA00004FCD95A5CC8F9ECE0060
-:108F1000755CCF0075CE0075A3000B246BB608A15D
-:108F20000B240B3F013F00A6FACD95A52070B60893
-:108F3000A115240D3F0135960000A6FACD95A52078
-:108F40005DB608A129240D3F0135FA0000A6FACD2F
-:108F500095A5204AB608A13D240E35FA000135FA40
-:108F600000004FCD95A52036B608A151240E3596A8
-:108F7000000135FA00004FCD95A520223F0135FABA
-:108F800000004FCD95A52016CE0075A30015240A2C
-:108F90003F013F004FCD95A520045FCF0075320003
-:108FA0000881CD89243B000ABF083F0ABE08A30000
-:108FB0000524043F0A200BBE08A300082504A601CF
-:108FC000B70AB60AA101260ECE0071A3000225063B
-:108FD0005FCD9BCA2068CE00695CCF0069CE006976
-:108FE000A303E92421CE0010BF065FBF04CE0069B1
-:108FF000BF025FBF00CD8466CD84E4000003E8BEFD
-:1090000002CD9BCA2038CE0069A307D12425AE0724
-:10901000D072B00069BF025FBF00CE0010BF065F14
-:10902000BF04CD8466CD84E4000007D0BE02CD9B92
-:10903000CA200B5FCF0069CE00715CCF0071320097
-:109040000ACC89D1CD8968CD89295202B70A450059
-:109050000B0F020F013F093F083F0D3F0C961C000C
-:1090600002B60ACD9B74961C0001B60BCD9B745FB3
-:10907000BF087B013F00B701BE0801BA0101BA0079
-:1090800001BF08BE084F02BF08BE0802A4FF02A429
-:109090000002BF087B023F00B701BE0801BA010110
-:1090A000BA0001BF08BE0802A48002A400025D2726
-:1090B00014BE08CD9953BF08BE0802AAF002AA0048
-:1090C00002BF082012BE08CD9953BF08BE0802A4F3
-:1090D0000F02A4FF02BF08CD89D5BE0C5B02CC896C
-:1090E000CA725F5250725F5251725F5252725F5237
-:1090F00053725F5254725F5256725F525C725F528B
-:109100005D35015258350152593501525A350152D7
-:109110005B725F525C725F525D725F5258725F5257
-:1091200059725F525A725F525B725F525E725F5247
-:109130005F725F5260725F526135FF526235FF525B
-:1091400063725F5265725F5266725F5267725F52FE
-:1091500068725F5269725F526A725F526B725F52DD
-:109160006C725F526F35015257725F526E725F526E
-:109170006D725F5264725F525581B7034500029071
-:109180005FB6039097AE000ABF0093CD990E4FD102
-:1091900000152604A601207A5FB6039790AE000A58
-:1091A00090BF00CD990EA601D100152604A602207D
-:1091B000615FB6039790AE000A90BF00CD990EA6EE
-:1091C00002D10015264A5FB6039790AE000A90BF01
-:1091D00000CD990E1C001A9093AE0043CD99AD932B
-:1091E000CD99C75FB6039790AE000A90BF00CD99A6
-:1091F0000EA601D700155FB6039790AE000A90BF88
-:1092000000CD990EB6021C001EF71D001E4F200255
-:10921000A60181CD8968CD89293B000E899089CD31
-:10922000891F3F0D3F0C3F0B3F0A3F093F08351098
-:10923000000EA608B70E3D0E273135290000A628DE
-:10924000CD904472BB000CBF0C352B0000A62ACD7C
-:10925000904472BB000ABF0A352D0000A62CCD90A9
-:109260004472BB0008BF083A0E20CB90AE0008BE87
-:109270000CCD992C90931E05BF0091CF0090AE00AD
-:1092800008BE0ACD992C90931E03BF0091CF009089
-:10929000AE0008BE08CD992C90931E01BF0091CF5F
-:1092A000005B0632000ECC89CACD89243B000AB788
-:1092B000083F09B609A1082439A610AE5005CD9E75
-:1092C000DCCD9E8CB608A480A100270AA620AE5053
-:1092D00005CD9EEB2008A620AE5005CD9EDCB6083D
-:1092E00048B708A610AE5005CD9EEBCD9E8C3C092C
-:1092F00020C1A610AE5005CD9EDCCD9E8C3F00A6B1
-:1093000020AE5005CD933DA610AE5005CD9EEB9DF1
-:109310009DA620AE5005CD9EF2B70ACD9E8CA6101C
-:10932000AE5005CD9EDC35D00000A620AE5005CD58
-:10933000933DCD9E8CB60A32000ACC89D19093B76A
-:1093400001931C0004B60143F4931C0004F7B6001B
-:10935000A480A1002723B600A410A100270890F63E
-:10936000BA0190F72007B6014390F490F7935C5C44
-:10937000F6BA01935C5CF7200B935C5CB60143F496
-:10938000935C5CF7B600A440A100270E931C000379
-:10939000F6BA01931C0003F7200D931C0003B601DD
-:1093A00043F4931C0003F7B600A420A100270E93FA
-:1093B0001C0004F6BA01931C0004F7200D931C0056
-:1093C00004B60143F4931C0004F781CD8968B70704
-:1093D000BF0490BF023F06AE000ABF00BE06CD9993
-:1093E0000EA601D100152604A60220693F06AE0094
-:1093F0000ABF00BE06CD990E90BE041C0018FF1DCA
-:1094000000183F06AE000ABF00BE06CD990E90BE02
-:10941000021C0016FF1D00163F06AE000ABF00BE6C
-:1094200006CD990E1C001A90935FBF0ABF0893CD1A
-:1094300099D53F06AE000ABF00BE06CD990E1C00AE
-:109440001E7F3F06AE000ABF00BE06CD990EA602E3
-:10945000D70015A604CC89C6B701B6014D270E4A20
-:10946000271D4A272E4A27404A27522062C650A06D
-:10947000A4FCC750A0C650A0BA00C750A02050C638
-:1094800050A0A4F3C750A0B6004848CA50A0C75087
-:10949000A0203CC650A0A4CFC750A0B6004EA4F058
-:1094A000CA50A0C750A02027C650A0A43FC750A0B4
-:1094B000B600CD9EF9CA50A0C750A02012C650A138
-:1094C000A4FCC750A1C650A1BA00C750A12000817A
-:1094D000CD89243F09A620AE5005CD9EEB3F00A6C6
-:1094E00020AE5005CD933D3F08B608A108243BB6F9
-:1094F0000948B709A610AE5005CD9EEB9D9DA6204C
-:10950000AE5005CD9EF2A1002708B609AA01B70901
-:109510002006B609A4FEB709CD9E8CA610AE500554
-:10952000CD9EDCCD9E8C3C0820BF35D00000A6200F
-:10953000AE5005CD933DB609CC89D1CD89243B00F1
-:109540000ABF083F0ABE08A3000524043F0A200BF7
-:10955000BE08A300082504A601B70AB60AA1012681
-:109560000ECE006FA3000325065FCD9BCA2030CE30
-:1095700000675CCF0067CE0067A300C92408CE0057
-:1095800010CD9BCA2019CE0067A3019124065FCDA0
-:109590009BCA200B5FCF0067CE006F5CCF006F329D
-:1095A000000ACC89D13B00093B000B3B000DB70DF5
-:1095B00045000B4501095FB60D97BF025FBF00CDA7
-:1095C000845A000001F4A608CD85CCBE02CD9EAF22
-:1095D0005FB60B97BF025FBF00CD845A000001F455
-:1095E000A608CD85CCBE02CD9EB85FB60997BF0256
-:1095F0005FBF00CD845A000001F4A608CD85CCBE23
-:1096000002CD9EC132000D32000B32000981CD899E
-:1096100024B706C6525CA4F0C7525CB603A40888FF
-:10962000B602A402B70884BA0888B601A40488B6B2
-:1096300000A401B70984BA09B70884BA08CA525C01
-:10964000C7525CC65258A48FBA06C75258C6526F4A
-:10965000A4FCC7526FB605A40288B604A401B708DB
-:1096600084BA08CA526FC7526F9EC752659FC752CD
-:1096700066CC89D1CD8968CD896D5202BF0EB70DF8
-:109680003F0C5FBF0ABF08B60DBE0ECD97DB1F01B2
-:109690003F0CB60CB10D24365FB60C975872BB0068
-:1096A0000EFE72F001CD85DDCD8A035FB60C9758B2
-:1096B00072BB000EFE72F001CD85DDCD8466CD8AD1
-:1096C00003CD89E9CD8424CD8A2A3C0C20C4CD89E0
-:1096D000E95B02CC89C3B701B601A410A100262919
-:1096E0003D002712B601A40F5F5CCD99459FCA507B
-:1096F000C7C750C7203AB601A40F5F5CCD99459FFC
-:1097000043C450C7C750C720273D002712B601A445
-:109710000F5F5CCD99459FCA50CAC750CA2011B689
-:1097200001A40F5F5CCD99459F43C450CAC750CA7E
-:1097300081725F5300725F5303725F5305725F5310
-:109740000A725F530B725F530A725F530B725F535F
-:1097500007725F5308725F5309725F530C725F5355
-:109760000D725F530E35FF530F35FF5310725F5369
-:1097700011725F5312725F5313725F5314725F530F
-:1097800015725F5316725F5304813B0008CD9D58DC
-:109790003F08B608A105243F35470000A620CD9C10
-:1097A000C23F00A621CD9CC23F00A622CD9CC2355F
-:1097B000880000A623CD9CC23F00A630CD9CC23FAE
-:1097C00000A632CD9CC23F00A633CD9CC2AE006441
-:1097D000CD9CE23C0820BB32000881CD8968CD8950
-:1097E0006DBF0AB7095FBF06BF043F083F08B60850
-:1097F000B10924205FB608975872BB000AFECD85D8
-:10980000DDCD8A37CD89DCCD8A1DCD8424CD8A0378
-:109810003C0820DA5FB60997BF0E5FBF0CCD89DC2C
-:10982000CD8A1DCD8554BE02CC89C3CD87C1CD97CD
-:109830008A725F00895FCF00435FCF004590AE0022
-:1098400001AE8A444FCD93CB90AE0064AE8080A62B
-:1098500001CD93CB3F004FCD917A35010000A60199
-:10986000CD917AA603CD85E8C60089A10126F972BB
-:109870005F0089CD8C6420F0433A5C557365727348
-:109880005C6865726F5C4465736B746F705C546187
-:10989000696C6C696768745F436F64655C73746D51
-:1098A000385F70726A5C636F64655F6961725C6C7B
-:1098B00069625C7372635C73746D38735F74696D35
-:1098C000312E63004D26103D0027067210525C2099
-:1098D0003C7211525C2036A10126103D0027067211
-:1098E00018525C20287219525C2022A10226103DD9
-:1098F0000027067210525D20147211525D200E3D39
-:109900000027067218525D20047219525D81888901
-:109910005EB60142891E03B6004272FB014F028906
-:109920001E05B6014272FB015B0684815D2B069029
-:109930005D2B0A658150905D2B076550819050200A
-:10994000F9905020EE4D2704584A26FC8154545477
-:1099500054545454545454818A84A4BF8886CD8965
-:109960005ECD896335010089AE0043CD99A1BE006B
-:10997000A39A7E2605BE02A3C800260A5FCF004335
-:109980005FCF0045200FAE0043CD99A1CD840CAE32
-:109990000043CD99B9A601CD9ED3CD899ACD898FAB
-:1099A0008089FEBF001E01EE02BF02858189FEBFD5
-:1099B000041E01EE02BF068581908990BE00FF90D3
-:1099C000BE02EF02908581908990BE04FF90BE0692
-:1099D000EF02908581908990BE08FF90BE0AEF0249
-:1099E000908581B7013F00725F5401B6014CC754A6
-:1099F00000725F5402B6014C5F5CCD99459FC7541D
-:109A00000772105401721A54003F00B600A164247A
-:109A1000043C0020F67210540181350150C0725F81
-:109A200050C135E150C4725F50C5351850C635FF7E
-:109A300050C735FF50CA725F50C8725F50C972007C
-:109A400050C9FB725F50C9725F50CC725F50CD81BC
-:109A5000725F5400725F5401725F5402725F54036C
-:109A6000725F5406725F540735FF5408350354097A
-:109A7000725F540A725F540B725F540E725F540F20
-:109A800081B700B600A480A1002614C650C6A4E782
-:109A9000C750C6B600A418CA50C6C750C62012C6C2
-:109AA00050C6A4F8C750C6B600A407CA50C6C750CF
-:109AB000C681B704C6530AA4FCC7530AB601A40260
-:109AC00088B600A401B70384BA03CA530AC7530A6D
-:109AD000C65307A48FBA04C753079EC753119FC725
-:109AE000531281B704C6530AA4CFC7530AB601A4C0
-:109AF0002088B600A410B70384BA03CA530AC75318
-:109B00000AC65308A48FBA04C753089EC753139FAD
-:109B1000C7531481B704C6530BA4FCC7530BB6013B
-:109B2000A40288B600A401B70384BA03CA530BC7C2
-:109B3000530BC65309A48FBA04C753099EC75315C4
-:109B40009FC75316813B0008B7083D082714B60885
-:109B5000A101270EAE020FBF025FBF00AE9878CD05
-:109B60009F1A3D082706721E526D2004721F526D07
-:109B700032000881CD8968B70BBF08CD9C1BA63089
-:109B8000CD92A9B60BCD92A9CD9C1BA631CD92A9A1
-:109B9000CD94D0B70ACD9D01B60A92C708CC89C62C
-:109BA000CE006B5CCF006BCE006BA300332408CEDD
-:109BB0000010CD9BCA2012CE006BA303E924065FE0
-:109BC000CD9BCA20045FCF006B81CD8924BF08BE26
-:109BD00008A3000B24065FCD9EA62014BE08A30395
-:109BE000E82508AE03E7CD9EA62005BE08CD9EA6BB
-:109BF000CC89D189FE9093855C5C905D271C89FEA1
-:109C0000BF00855C5C89FEBF02855C5C515A92D6C0
-:109C10000092D7025A2AF75120D981A620AE5005CA
-:109C2000CD9EEBA610AE5005CD9EEBCD9E8CA62012
-:109C3000AE5005CD9EDCCD9E8CA610AE5005CD9EBF
-:109C4000DC81CD8924BF08CE00735CCF0073CE00C9
-:109C500073A30BB92408AE03E8CD9BCA20075FCDE0
-:109C60009BCA923F08CC89D1CD891F721F5400C670
-:109C700054045F975858C654053F00B70172BB00A3
-:109C800000CF007F3501008ECD894180B701909EC5
-:109C9000C75262909FC752639EC752609FC752616E
-:109CA000C65250A48FBA01C75250B600C752648141
-:109CB0009D200080001500009BF300059F09001007
-:109CC0000000CD8924B708450009CD9C1BA630CDE6
-:109CD00092A9B608CD92A9B609CD92A9CD9D01CC85
-:109CE00089D1BF0090BE0090BF00BE005ABF009057
-:109CF0005D270DAE03845D27EB9D9D9D9D5A20F64B
-:109D000081A620AE5005CD9EDCA610AE5005CD9E9E
-:109D1000EBCD9E8CA620AE5005CD9EEBCD9E8C81CA
-:109D200089FE9093855C5C905D271289FEBF00855B
-:109D30005C5C515A926F005A2AFA5120E381B701B4
-:109D40003D00270AC65343BA01C753432009B60151
-:109D500043C45343C753438135D00000A610AE50CF
-:109D600005CD933D35D00000A620AE5005CD933DE6
-:109D700081725F5340725F5343725F5346725F5309
-:109D80004735FF5348725F5344811603931C000408
-:109D9000511703CD99AD811E031C00041F031D0044
-:109DA0000481AE9CB020065C5C90FE90FD90939088
-:109DB000A39CC226F281CD89245202BF08BE081F8F
-:109DC00001965CA601CD9F2E20F39093907F935C2B
-:109DD0005C7F931C00037F931C00047F81AE03FF14
-:109DE00094CD9F115D2703CD9DA2CD982BCC9F14C0
-:109DF000B700B600C7530E9EC7530F9FC7531081BD
-:109E00004D2706721050C02004721150C0814D279A
-:109E10000672105250200472115250814D27067262
-:109E2000165258200472175258814D27067210534B
-:109E300000200472115300814D2706721E5300202A
-:109E400004721F5300814D270672165307200472B7
-:109E5000175307814D2706721653082004721753B3
-:109E600008814D2706721653092004721753098181
-:109E70004D270672105340200472115340814D2724
-:109E800006721E53402004721F534081A614B7006F
-:109E90003D0027043A0020F881B701B601C75347B7
-:109EA000B600C75348819EC752659FC75266819EC0
-:109EB000C753119FC75312819EC753139FC7531493
-:109EC000819EC753159FC7531681B700B60043C77D
-:109ED000534481B700B60043C7534481B700B6006E
-:109EE00043F4F781CE0010CD9BCA81B700F6BA00CB
-:109EF000F781B7005CF6B4008148484EA4F0815F5A
-:109F0000CD9BCA818985CD9DB6012C010164CC9F72
-:109F1000175F5C81CC9F049D20FD20FE80808080A7
-:0F9F2000808080808080808080808080808081B1
-:0400000500009DDD7D
+:1080A0007F725F008CA601CD9940AE0043CD98FE53
+:1080B000CD8A43C6008C4D261AAE0043CD98FECD26
+:1080C0008A29CD8631BE00A300002605BE02A3008A
+:1080D0000B25E0CE007DBF025FBF00AE004FCD8616
+:1080E00019AE004FCD9916725C008EC6008EA104A9
+:1080F000251CAE004FCD98FEA602CD87BEBE02CF96
+:10810000007B5FCF004F5FCF0051725F008ECE00CB
+:108110007BA302C725063501008B200CCE007BA374
+:1081200002B22404725F008BCC827F725F008CA647
+:1081300004CD9940AE0043CD98FECD8A43C6008C55
+:108140004D261AAE0043CD98FECD8A29CD8631BE8C
+:1081500000A300002605BE02A3000B25E0CE007D93
+:10816000BF025FBF00AE004BCD8619AE004BCD996C
+:1081700016725C008FC6008FA104251CAE004BCD8B
+:1081800098FEA602CD87BEBE02CF00795FCF004B1E
+:108190005FCF004D725F008F90CE0079AE000ABFB6
+:1081A0000093CD986BCD98AA41B70041A60AB000C4
+:1081B000C7008ACC827F725F008CA605CD9940AE45
+:1081C0000043CD98FECD8A43C6008C4D261AAE00E2
+:1081D00043CD98FECD8A29CD8631BE00A30000266E
+:1081E00005BE02A3000B25E0CE007DBF025FBF00ED
+:1081F000AE0047CD8619AE0047CD9916725C00904F
+:10820000C60090A104251CAE0047CD98FEA602CD65
+:1082100087BEBE02CF00775FCF00475FCF004972B5
+:108220005F0090CE0077A3035625063564009120A9
+:108230002ACE0077A302AE2406725F0091201CCEE6
+:1082400000771CFD53BF025FBF00CD864C000002CB
+:108250005CA60ACD87BEB603C70091C60091C100D7
+:10826000142515C600143F00B701C600915F977230
+:10827000B00000A3000B2F0555009100142000C68C
+:10828000008DA1032504725F008DC60012A1012696
+:108290000B5500140000C6008BCD8E40725C00921E
+:1082A000C60092A1042427C600925F97581C003B89
+:1082B000BF00C60092905F9097905872A90035C693
+:1082C00000925F97581C002FCD9170CC840CA603B0
+:1082D000AE0031CD9738CF007FA603AE0037CD97E3
+:1082E00038CF0081A603AE003DCD9738CF0083A6DE
+:1082F00003AE0031CD95D1AE0053CD9916A603AE95
+:108300000037CD95D1AE0057CD9916A603AE003DEE
+:10831000CD95D1AE005BCD9916C6008B4D2703CC11
+:1083200083ECAE0053CD98FEAE03E9BF065FBF04F9
+:10833000CD87A72E26AE0057CD98FEAE03E9BF0627
+:108340005FBF04CD87A72E13AE005BCD98FEAE03B2
+:10835000E9BF065FBF04CD87A72F18AE0043CD98B5
+:10836000FEAE005FCD9916AE0043CD98FEAE006321
+:10837000CD9916C60013A1012707C60013A1022636
+:108380003B90AE005FAE0043CD98FE93CD8634BEE9
+:1083900000A300002605BE02A375312537A607CD30
+:1083A000840FAE0043CD98FEAE005FCD9916AE00AF
+:1083B00043CD98FEAE0063CD99162018AE0043CD94
+:1083C00098FEAE005FCD9916AE0043CD98FEAE008C
+:1083D00063CD9916CE008372B00085A3FF882E046A
+:1083E00035010089CE0083CF0085201CAE0043CD2F
+:1083F00098FEAE005FCD9916AE0043CD98FEAE005C
+:1084000063CD9916725F0089725F0092CC89DFCDCF
+:10841000893DB709725F00125FCD9DCD3F08B60858
+:10842000A106242AA6025F01B6080262A100270C59
+:1084300035FA00013F004FCD950220083F013F0073
+:108440004FCD9502AE0190CD9C163C0820D03F0840
+:10845000B6094444A401A1002603CC84F2354F00A0
+:1084600000A620CD9BF635400000A622CD9BF6A6A7
+:1084700040B708CE007FA300C82E0ECE007FA3FF1A
+:10848000392F06B608AA03B708CE0081A300C82E6C
+:108490000ECE0081A3FF392F06B608AA0CB708CE6E
+:1084A0000083A300C82E0ECE0083A3FF392F06B68B
+:1084B00008AA30B708B608A43FA1002619B608AA32
+:1084C0007FB708450800A630CD9BF635320000A6E0
+:1084D00032CD9BF62011450800A630CD9BF6351015
+:1084E0000000A632CD9BF635050000A633CD9BF6E5
+:1084F00020073F00A620CD9BF69BCD903ECD968ECB
+:10850000CD9CA5AE5000CD9CFE35D00000A608AE97
+:108510005000CD929AAE5005CD9CFE35D00000A6FD
+:1085200010AE5005CD929A35D00000A620AE500571
+:10853000CD929AAE500ACD9CFE35D00000A620AE5A
+:10854000500ACD929A35C00000A640AE500ACD9296
+:108550009AAE500FCD9CFE35D00000A608AE500F4D
+:10856000CD929A3F00A620AE500FCD929A3F00A622
+:1085700040AE500FCD929A3F00A610AE500ACD9259
+:108580009ACD99AD35600000A610AE500FCD929AED
+:1085900035020000A603CD93B535200000A610AE2D
+:1085A000500ACD929AB6094444A401A10027173578
+:1085B000600000A680AE500ACD929A35030000A656
+:1085C00002CD93B5200935010000A602CD93B59ADE
+:1085D0008ECD87DACD96E7350100125FCF00675F59
+:1085E000CF00695FCF006B5FCF006D5FCF00735F1F
+:1085F000CF006F5FCF00715FCF0075CC89EAAE000E
+:108600000020006C0326096C0226056C0126017C03
+:1086100081CD9CCB2003AE0004B603EB03B703B6B9
+:1086200002E902B702B601E901B701B600F9B700E5
+:1086300081AE0004B603E003B703B602E202B7025C
+:10864000B601E201B701B600F2B70081CD9CCB893B
+:10865000FEBF0485EE02BF06B600BE06429FB7000D
+:10866000B601BE05429FBB00B700B602BE04429FE2
+:10867000BB00B700B603BE03429FBB00B700B60104
+:10868000BE06423F0172BB0000BF00B602BE0542FB
+:1086900072BB0000BF00B603BE044272BB0000BF45
+:1086A00000B602BE06423F0272BB0001BF012402B7
+:1086B0003C00B603BE054272BB0001BF0124023C70
+:1086C00000B603BE06423F0372BB0002BF02240590
+:1086D000BE005CBF0081CD9CBEBE00261E90BE04C5
+:1086E000260CBE0290BE0665BF0290BF0681BF0485
+:1086F000450206450307BF00BF0281A6203D0026B4
+:108700000DBE01BF004503023F033A03A0085F907E
+:108710005F992017905959B304260390B306250B8F
+:1087200072B2000624015A72B000043903390239CA
+:108730000139004A2ADEBF0490BF06BE0053BF00C5
+:10874000BE0253BF02814B004B003D002A0AAE001F
+:1087500000CD877C030103023D042A08AE0004CD4E
+:10876000877C0301CD86D9844D2706AE0000CD87D6
+:108770007C844D2706AE0004CD877C8160034FE2E8
+:1087800002E7024FE201E7014FF2F781908990BEC4
+:1087900000F3260590BE02E302908581BE00B3047B
+:1087A0002604BE02B30681BE00B3042610BE02B387
+:1087B000068A84A47BA5012702AA04888681AE00CC
+:1087C000004D270A746601660266034A26F681BFD9
+:1087D000025F3D022A0153BF00819BCD9977A6011C
+:1087E000CD9D344FCD99DEA680CD99DE35010000B8
+:1087F0004FCD963335010000A607CD9633350100E5
+:1088000000A605CD963335010000A604CD9633357C
+:10881000010000A613CD9633AE5000CD9CFEAE50A5
+:1088200005CD9CFEAE500ACD9CFE35600000A6082A
+:10883000AE500ACD929A35020000A602CD93B5350E
+:10884000600000A680AE500ACD929A35020000A6C4
+:1088500002CD93B5AE500FCD9CFE35400000A61062
+:10886000AE500FCD929ACD903E3F0090AE03E74FB1
+:10887000AE000FCD9BC0352A00053F043F033F02E9
+:108880005F3F0135110000A660CD956BA601CD9D1F
+:1088900050350100004FCD9821A601CD9AA2A60126
+:1088A000CD9D42CD968EAE03E7A604CD9D24352204
+:1088B00000015F35110000A660CD9A0FA601CD9D85
+:1088C0007A352200015F35110000A660CD9A40A6DE
+:1088D00001CD9D88352200015F35110000A660CDD5
+:1088E0009A71A601CD9D96A601CD9D6CA601CD9D48
+:1088F0005ECD9CA535F90000A606CD9DDAA601CD7A
+:108900009DB2A601CD9E0B35010000A601CD9C7243
+:10891000A601CD9DA43F00A620AE500FCD929A3F58
+:1089200000A640AE500FCD929A3F00A610AE500A5E
+:10893000CD929ACD99AD9A8188A600200A88A60882
+:10894000200588A60C2000887B02887B02891E06F1
+:108950001F045F97FE1F06858481891E05BF0020C6
+:108960000E891E05BF082007891E05BF0C20001EAA
+:10897000031F05855B028188A600200F88A60420BE
+:108980000A88A608200588A60C200088897B048810
+:108990007B04891E081F045F971F08FE1F061E0820
+:1089A0005C5CFE1F08858481891E05BF001E07BF11
+:1089B000022021891E05BF041E07BF062016891E3E
+:1089C00005BF081E07BF0A200B891E05BF0C1E0726
+:1089D000BF0E20001E031F07855B0481CD89C9CD12
+:1089E00089BE81CD8968CD89BE81CD8961814508E7
+:1089F0000C45090D81450400450501450602450762
+:108A00000381450800450901450A02450B038145DC
+:108A10000C00450D01450E02450F0381450004453C
+:108A2000010545020645030781450804450905453A
+:108A30000A06450B0781450C04450D05450E064504
+:108A40000F078145000845010945020A45030B81CE
+:108A500045000C45010D45020E45030F81CD8B737A
+:108A6000C60030A102260A35010088725F0030205E
+:108A700020C60030A104260A35020088725F00304B
+:108A8000200FC60030A105260835030088725F005C
+:108A900030C600884D2603CC8B51C60088A1012624
+:108AA00049C60013A101260635020013201EC60088
+:108AB00013A1022606350300132011C60013A103DB
+:108AC000260635040013200435010013AE0043CD03
+:108AD00098FEAE005FCD9916AE0043CD98FEAE0075
+:108AE00063CD9916725F00882067C60088A10226B0
+:108AF0004CCE0010A300502608AE012CCF00102051
+:108B00001ECE0010A3012C2608AE01F4CF001020C9
+:108B10000ECE0010A301F42606AE0050CF0010AE1A
+:108B20000043CD98FEAE005FCD9916AE0043CD98C0
+:108B3000FEAE0063CD9916725F00882014C60088CF
+:108B4000A103260DA603CD840F35010013725F002B
+:108B500088C60012A101261755008B0000C6008AA6
+:108B6000905F9097AE0089C60013CD8D722003CD23
+:108B70009E4081A610AE500FCD9E33C7002AC6007E
+:108B8000294D27154A27234A273F4A2603CC8C1410
+:108B90004A2603CC8C51CC8C7CC6002A4D26083545
+:108BA000010029350A002FCC8C7CC6002F4D2612DF
+:108BB000C6002A4D260635020029200A725F0029C8
+:108BC0002004725A002FCC8C7CC6002A4D2619CE68
+:108BD000002B5CCF002BCE002BA303E825343505FA
+:108BE00000305FCF002B202ACE002BA303E8250EF8
+:108BF000725F0029350500305FCF002B2014CE00B6
+:108C00002BA30014250C350300295FCF002B350A58
+:108C1000002F2068C6002F4D2631CE002D5CCF00DE
+:108C20002DCE002DA3012C250E35020030725F00E1
+:108C3000295FCF002D2018C6002A4D2612350400CA
+:108C4000295FCF002D350A002F2004725A002F20F3
+:108C50002BC6002F4D2621C6002A4D2609CE002BFB
+:108C60005CCF002B201635040030725F00295FCFE7
+:108C7000002B5FCF002D2004725A002F81CD8986F2
+:108C8000CD893D5FBF0EBF0C3F09B609A102250388
+:108C9000CC8D6B3F08AE000ABF00BE08CD986BA616
+:108CA00001D100152703CC8D663F08AE000ABF0036
+:108CB000BE08CD986B1C001A9093AE0043CD98FE71
+:108CC00093CD878C2412AE0043CD98FECD86119AA9
+:108CD0007EC800CD8A502009AE0043CD98FECD8AD3
+:108CE000503F08AE000ABF00BE08CD986B1C001AAA
+:108CF000CD8A0FCD8634CD89773F08AE000ABF00FC
+:108D0000BE08CD986B1C0016FEBF065FBF04CD8960
+:108D1000A8CD879C25503F08AE000ABF00BE08CDF5
+:108D2000986B1C001E7D27123F08AE000ABF00BED4
+:108D300008CD986B1C001E7A202C3F08AE000ABF9D
+:108D400000BE08CD986B1C001A9093AE0043CD98DE
+:108D5000FE93CD99163F08AE000ABF00BE08CD981D
+:108D60006B1C0018FEFD3C09CC8C8ACD8961CD8935
+:108D7000C981CD8981CD8942B70CBF0890BF0A4512
+:108D8000000D92C608A1012618BE08CD9B765FCFC4
+:108D900000675FCF00695FCF006B5FCF006DCC8E47
+:108DA0003DB60DA101261DCD9E405FCF00675FCF70
+:108DB00000695FCF006B5FCF006D5FCF006F5FCF4B
+:108DC000007120795FCF0073B60C4D270E4A270D36
+:108DD0004A27214A27354A274B20622060BE0ACD08
+:108DE00094985FCF00695FCF006B5FCF006D5FCF5E
+:108DF00000712049BE0ACD8EFF5FCF00675FCF00B4
+:108E00006B5FCF006D5FCF006F2032CD9AFD5FCFDB
+:108E100000675FCF00695FCF006D5FCF006F5FCFEE
+:108E200000712019CD9E255FCF00675FCF00695F7D
+:108E3000CF006B5FCF006F5FCF00712000CC89E364
+:108E4000CD8981B70945000A3F083F0BB609A1014A
+:108E50002617B60AA16425115FCF00753F0135FAC8
+:108E600000004FCD9502CC8EFCB609A101260AA6C2
+:108E70000AB708A614B70B2018B60AA10B240AA635
+:108E800002B708A604B70B2008A602B708A632B797
+:108E90000BCE00755CCF00755FB60897C3007525D3
+:108EA00044B60AA10B240B3F013F00A6FACD950260
+:108EB000204AB60AA129240D3F0135A00000A6FAD8
+:108EC000CD95022037B60AA151240E35FA0001359E
+:108ED000FA00004FCD950220233F0135FA00004FE4
+:108EE000CD950220175FB60B97C30075250A3F0189
+:108EF0003F004FCD950220045FCF0075CC89DFCDB8
+:108F0000893D3B000ABF083F0ABE08A300052404B0
+:108F10003F0A200BBE08A300082504A601B70AB625
+:108F20000AA101260ECE0071A3000225065FCD9D89
+:108F3000CD2068CE00695CCF0069CE0069A303E94B
+:108F40002421CE0010BF065FBF04CE0069BF025FC0
+:108F5000BF00CD8658CD86D6000003E8BE02CD9D69
+:108F6000CD2038CE0069A307D12425AE07D072B03A
+:108F70000069BF025FBF00CE0010BF065FBF04CD17
+:108F80008658CD86D6000007D0BE02CD9DCD200BE1
+:108F90005FCF0069CE00715CCF007132000ACC89CE
+:108FA000EACD8981CD89425202B70A45000B0F02F2
+:108FB0000F013F093F083F0D3F0C961C0002B60A07
+:108FC000CD9AD1961C0001B60BCD9AD15FBF087B1C
+:108FD000013F00B701BE0801BA0101BA0001BF0894
+:108FE000BE084F02BF08BE0802A4FF02A40002BFD1
+:108FF000087B023F00B701BE0801BA0101BA0001B7
+:10900000BF08BE0802A48002A400025D2714BE08A7
+:10901000CD98B0BF08BE0802AAF002AA0002BF089D
+:109020002012BE08CD98B0BF08BE0802A40F02A44B
+:10903000FF02BF08CD89EEBE0C5B02CC89E3725FF4
+:109040005250725F5251725F5252725F5253725F4E
+:109050005254725F5256725F525C725F525D3501BC
+:109060005258350152593501525A3501525B725FDF
+:10907000525C725F525D725F5258725F5259725FFA
+:10908000525A725F525B725F525E725F525F725FE2
+:109090005260725F526135FF526235FF5263725FF8
+:1090A0005265725F5266725F5267725F5268725F9A
+:1090B0005269725F526A725F526B725F526C725F7A
+:1090C000526F35015257725F526E725F526D725F0E
+:1090D0005264725F525581B703450002905FB60338
+:1090E0009097AE000ABF0093CD986B4FD100152624
+:1090F00004A601207A5FB6039790AE000A90BF00E5
+:10910000CD986BA601D100152604A60220615FB69A
+:10911000039790AE000A90BF00CD986BA602D100D5
+:1091200015264A5FB6039790AE000A90BF00CD980F
+:109130006B1C001A9093AE0043CD990A93CD9924ED
+:109140005FB6039790AE000A90BF00CD986BA60162
+:10915000D700155FB6039790AE000A90BF00CD9878
+:109160006BB6021C001EF71D001E4F2002A60181D7
+:10917000CD8981CD89423B000E899089CD89383FC8
+:109180000D3F0C3F0B3F0A3F093F083510000EA66C
+:1091900008B70E3D0E273135290000A628CD8FA136
+:1091A00072BB000CBF0C352B0000A62ACD8FA1721C
+:1091B000BB000ABF0A352D0000A62CCD8FA172BBC3
+:1091C0000008BF083A0E20CB90AE0008BE0CCD9828
+:1091D0008990931E05BF0091CF0090AE0008BE0A93
+:1091E000CD988990931E03BF0091CF0090AE0008E8
+:1091F000BE08CD988990931E01BF0091CF005B06F9
+:1092000032000ECC89E3CD893D3B000AB7083F0907
+:10921000B609A1082439A610AE5005CD9E1DCD9DDE
+:10922000C0B608A480A100270AA620AE5005CD9E96
+:109230002C2008A620AE5005CD9E1DB60848B708C4
+:10924000A610AE5005CD9E2CCD9DC03C0920C1A6D8
+:1092500010AE5005CD9E1DCD9DC03F00A620AE5046
+:1092600005CD929AA610AE5005CD9E2C9D9DA620B0
+:10927000AE5005CD9E33B70ACD9DC0A610AE5005A9
+:10928000CD9E1D35D00000A620AE5005CD929ACDC2
+:109290009DC0B60A32000ACC89EA9093B701931CAC
+:1092A0000004B60143F4931C0004F7B600A480A1A7
+:1092B000002723B600A410A100270890F6BA019059
+:1092C000F72007B6014390F490F7935C5CF6BA017F
+:1092D000935C5CF7200B935C5CB60143F4935C5C9D
+:1092E000F7B600A440A100270E931C0003F6BA01B4
+:1092F000931C0003F7200D931C0003B60143F49365
+:109300001C0003F7B600A420A100270E931C000444
+:10931000F6BA01931C0004F7200D931C0004B6015B
+:1093200043F4931C0004F781CD8981B707BF0490F3
+:10933000BF023F06AE000ABF00BE06CD986BA60175
+:10934000D100152604A60220693F06AE000ABF0020
+:10935000BE06CD986B90BE041C0018FF1D00183F80
+:1093600006AE000ABF00BE06CD986B90BE021C0080
+:1093700016FF1D00163F06AE000ABF00BE06CD98C0
+:109380006B1C001A90935FBF0ABF0893CD99323FC0
+:1093900006AE000ABF00BE06CD986B1C001E7F3FC4
+:1093A00006AE000ABF00BE06CD986BA602D7001518
+:1093B000A604CC89DFB701B6014D270E4A271D4A06
+:1093C000272E4A27404A27522062C650A0A4FCC735
+:1093D00050A0C650A0BA00C750A02050C650A0A4AC
+:1093E000F3C750A0B6004848CA50A0C750A0203CC0
+:1093F000C650A0A4CFC750A0B6004EA4F0CA50A03B
+:10940000C750A02027C650A0A43FC750A0B600CD8B
+:109410009E3ACA50A0C750A02012C650A1A4FCC7B3
+:1094200050A1C650A1BA00C750A1200081CD893DEE
+:109430003F09A620AE5005CD9E2C3F00A620AE5081
+:1094400005CD929A3F08B608A108243BB60948B753
+:1094500009A610AE5005CD9E2C9D9DA620AE5005B0
+:10946000CD9E33A1002708B609AA01B7092006B688
+:1094700009A4FEB709CD9DC0A610AE5005CD9E1D16
+:10948000CD9DC03C0820BF35D00000A620AE5005C1
+:10949000CD929AB609CC89EACD893D3B000ABF0836
+:1094A0003F0ABE08A3000524043F0A200BBE08A300
+:1094B00000082504A601B70AB60AA101260ECE00AF
+:1094C0006FA3000325065FCD9DCD2030CE00675CE5
+:1094D000CF0067CE0067A300C92408CE0010CD9D41
+:1094E000CD2019CE0067A3019124065FCD9DCD202C
+:1094F0000B5FCF0067CE006F5CCF006F32000ACCED
+:1095000089EA3B00093B000B3B000DB70D45000B02
+:109510004501095FB60D97BF025FBF00CD864C00C5
+:109520000001F4A608CD87BEBE02CD9DF05FB60B4C
+:1095300097BF025FBF00CD864C000001F4A608CDA6
+:1095400087BEBE02CD9DF95FB60997BF025FBF001F
+:10955000CD864C000001F4A608CD87BEBE02CD9E8C
+:109560000232000D32000B32000981CD893DB70671
+:10957000C6525CA4F0C7525CB603A40888B602A425
+:1095800002B70884BA0888B601A40488B600A4010A
+:10959000B70984BA09B70884BA08CA525CC7525CD2
+:1095A000C65258A48FBA06C75258C6526FA4FCC7F9
+:1095B000526FB605A40288B604A401B70884BA089D
+:1095C000CA526FC7526F9EC752659FC75266CC89F9
+:1095D000EACD8981CD89865202BF0EB70D3F0C5F5F
+:1095E000BF0ABF08B60DBE0ECD97381F013F0CB69F
+:1095F0000CB10D24365FB60C975872BB000EFE728C
+:10960000F001CD87CFCD8A1C5FB60C975872BB0096
+:109610000EFE72F001CD87CFCD8658CD8A1CCD8A43
+:1096200002CD8616CD8A433C0C20C4CD8A025B0253
+:10963000CC89DCB701B601A410A10026293D002782
+:1096400012B601A40F5F5CCD98A29FCA50C7C75045
+:10965000C7203AB601A40F5F5CCD98A29F43C450C7
+:10966000C7C750C720273D002712B601A40F5F5C73
+:10967000CD98A29FCA50CAC750CA2011B601A40FE4
+:109680005F5CCD98A29F43C450CAC750CA81725F25
+:109690005300725F5303725F5305725F530A725F28
+:1096A000530B725F530A725F530B725F5307725F03
+:1096B0005308725F5309725F530C725F530D725FF0
+:1096C000530E35FF530F35FF5310725F5311725F06
+:1096D0005312725F5313725F5314725F5315725FAC
+:1096E0005316725F5304813B0008CD9C8C3F08B633
+:1096F00008A105243F35470000A620CD9BF63F007A
+:10970000A621CD9BF63F00A622CD9BF63588000012
+:10971000A623CD9BF63F00A630CD9BF63F00A63298
+:10972000CD9BF63F00A633CD9BF6AE0064CD9C16D4
+:109730003C0820BB32000881CD8981CD8986BF0AD3
+:10974000B7095FBF06BF043F083F08B608B1092448
+:10975000205FB608975872BB000AFECD87CFCD8A2E
+:1097600050CD89F5CD8A36CD8616CD8A1C3C082091
+:10977000DA5FB60997BF0E5FBF0CCD89F5CD8A368B
+:10978000CD8746BE02CC89DCCD87DACD96E7725F05
+:1097900000875FCF00435FCF004590AE0001AE8AE7
+:1097A0005D4FCD932890AE0064AE8080A601CD932E
+:1097B000283F004FCD90D735010000A601CD90D7AE
+:1097C000A603CD840FC60087A10126F9725F00872A
+:1097D000CD8C7D20F0433A5C55736572735C68658F
+:1097E000726F5C4465736B746F705C5461696C6C10
+:1097F000696768745F436F64655C73746D385F702C
+:10980000726A5C636F64655F6961725C6C69625CFB
+:109810007372635C73746D38735F74696D312E633A
+:10982000004D26103D0027067210525C203C72113C
+:10983000525C2036A10126103D0027067218525CAA
+:1098400020287219525C2022A10226103D00270612
+:109850007210525D20147211525D200E3D002706D9
+:109860007218525D20047219525D8188895EB601BA
+:1098700042891E03B6004272FB014F02891E05B6E3
+:10988000014272FB015B0684815D2B06905D2B0A11
+:10989000658150905D2B07655081905020F9905064
+:1098A00020EE4D2704584A26FC81545454545454F5
+:1098B00054545454818A84A4BF8886CD8977CD8935
+:1098C0007C35010087AE0043CD98FEBE00A39A7E92
+:1098D0002605BE02A3C800260A5FCF00435FCF0063
+:1098E00045200FAE0043CD98FECD85FEAE0043CDA2
+:1098F0009916A601CD9E14CD89B3CD89A88089FE85
+:10990000BF001E01EE02BF02858189FEBF041E0159
+:10991000EE02BF068581908990BE00FF90BE02EFE7
+:1099200002908581908990BE04FF90BE06EF029060
+:109930008581908990BE08FF90BE0AEF02908581D4
+:10994000B7013F00725F5401B6014CC75400725F0B
+:109950005402B6014C5F5CCD98A29FC754077210A9
+:109960005401721A54003F00B600A16424043C0064
+:1099700020F67210540181350150C0725F50C1351C
+:10998000E150C4725F50C5351850C635FF50C73519
+:10999000FF50CA725F50C8725F50C9720050C9FB55
+:1099A000725F50C9725F50CC725F50CD81725F544C
+:1099B00000725F5401725F5402725F5403725F540D
+:1099C00006725F540735FF540835035409725F541B
+:1099D0000A725F540B725F540E725F540F81B700AE
+:1099E000B600A480A1002614C650C6A4E7C750C67E
+:1099F000B600A418CA50C6C750C62012C650C6A486
+:109A0000F8C750C6B600A407CA50C6C750C681B72B
+:109A100004C6530AA4FCC7530AB601A40288B600C0
+:109A2000A401B70384BA03CA530AC7530AC653072B
+:109A3000A48FBA04C753079EC753119FC7531281FF
+:109A4000B704C6530AA4CFC7530AB601A42088B6E8
+:109A500000A410B70384BA03CA530AC7530AC653F3
+:109A600008A48FBA04C753089EC753139FC7531443
+:109A700081B704C6530BA4FCC7530BB601A40288DC
+:109A8000B600A401B70384BA03CA530BC7530BC66D
+:109A90005309A48FBA04C753099EC753159FC753D0
+:109AA00016813B0008B7083D082714B608A1012716
+:109AB0000EAE020FBF025FBF00AE97D5CD9E5B3DDD
+:109AC000082706721E526D2004721F526D32000864
+:109AD00081CD8981B70BBF08CD9B4FA630CD9206B3
+:109AE000B60BCD9206CD9B4FA631CD9206CD942DCF
+:109AF000B70ACD9C35B60A92C708CC89DFCE006B79
+:109B00005CCF006BCE006BA300332408CE0010CDD9
+:109B10009DCD2012CE006BA303E924065FCD9DCD21
+:109B200020045FCF006B8189FE9093855C5C905D23
+:109B3000271C89FEBF00855C5C89FEBF02855C5CDA
+:109B4000515A92D60092D7025A2AF75120D981A6AB
+:109B500020AE5005CD9E2CA610AE5005CD9E2CCD2E
+:109B60009DC0A620AE5005CD9E1DCD9DC0A610AEB9
+:109B70005005CD9E1D81CD893DBF08CE00735CCFC1
+:109B80000073CE0073A30BB92408AE03E8CD9DCDBE
+:109B900020075FCD9DCD923F08CC89EACD893872F0
+:109BA0001F5400C654045F975858C654053F00B769
+:109BB0000172BB0000CF007D3501008CCD895A8039
+:109BC000B701909EC75262909FC752639EC7526072
+:109BD0009FC75261C65250A48FBA01C75250B600F7
+:109BE000C75264819C54007E001500009B2700052D
+:109BF0009E4A00100000CD893DB708450009CD9B65
+:109C00004FA630CD9206B608CD9206B609CD920683
+:109C1000CD9C35CC89EABF0090BE0090BF00BE004D
+:109C20005ABF00905D270DAE03845D27EB9D9D9D7F
+:109C30009D5A20F681A620AE5005CD9E1DA610AEE1
+:109C40005005CD9E2CCD9DC0A620AE5005CD9E2C9E
+:109C5000CD9DC08189FE9093855C5C905D271289C3
+:109C6000FEBF00855C5C515A926F005A2AFA51205F
+:109C7000E381B7013D00270AC65343BA01C75343E6
+:109C80002009B60143C45343C753438135D0000074
+:109C9000A610AE5005CD929A35D00000A620AE5049
+:109CA00005CD929A81725F5340725F5343725F5346
+:109CB00046725F534735FF5348725F534481160322
+:109CC000931C0004511703CD990A811E031C000444
+:109CD0001F031D000481AE9BE420065C5C90FE9097
+:109CE000FD909390A39BF626F281CD893D5202BF51
+:109CF00008BE081F01965CA601CD9E6F20F39093CD
+:109D0000907F935C5C7F931C00037F931C00047F17
+:109D100081AE03FF94CD9E525D2703CD9CD6CD9797
+:109D200088CC9E55B700B600C7530E9EC7530F9FF1
+:109D3000C75310814D2706721050C0200472115075
+:109D4000C0814D270672105250200472115250816A
+:109D50004D270672165258200472175258814D270B
+:109D60000672105300200472115300814D270672B1
+:109D70001E53002004721F5300814D270672165394
+:109D800007200472175307814D27067216530820C7
+:109D90000472175308814D27067216530920047266
+:109DA000175309814D270672105340200472115336
+:109DB00040814D2706721E53402004721F5340817C
+:109DC000A614B7003D0027043A0020F881CD893D54
+:109DD000BF08BE08CD9DE7CC89EAB701B601C753DD
+:109DE00047B600C75348819EC752659FC7526681D8
+:109DF0009EC753119FC75312819EC753139FC753CA
+:109E000014819EC753159FC7531681B700B60043F0
+:109E1000C7534481B700B60043C7534481B700B667
+:109E20000043F4F781CE0010CD9DCD81B700F6BA86
+:109E300000F781B7005CF6B4008148484EA4F08179
+:109E40005FCD9DCD818985CD9CEA012C010164CC3B
+:109E50009E585F5C81CC9E459D20FD20FE808080C9
+:109E600080808080808080808080808080808081F1
+:0400000500009D1149
 :00000001FF

BIN
Debug/Exe/tail_light_stm8.out


+ 365 - 371
Debug/List/tail_light_stm8.map

@@ -1,6 +1,6 @@
 ###############################################################################
 #
-# IAR ELF Linker V3.10.1.201 for STM8                     16/Oct/2024  22:37:06
+# IAR ELF Linker V3.10.1.201 for STM8                     17/Oct/2024  17:11:42
 # Copyright 2010-2017 IAR Systems AB.
 #
 #    Output file  =  
@@ -8,7 +8,7 @@
 #    Map file     =  
 #        C:\Users\hero\Desktop\Taillight_Code\stm8_prj\code_iar\Debug\List\tail_light_stm8.map
 #    Command line =  
-#        -f C:\Users\hero\AppData\Local\Temp\EW2D40.tmp
+#        -f C:\Users\hero\AppData\Local\Temp\EWA22B.tmp
 #        (C:\Users\hero\Desktop\Taillight_Code\stm8_prj\code_iar\Debug\Obj\delay.o
 #        C:\Users\hero\Desktop\Taillight_Code\stm8_prj\code_iar\Debug\Obj\hw_init.o
 #        C:\Users\hero\Desktop\Taillight_Code\stm8_prj\code_iar\Debug\Obj\i2c_analog.o
@@ -103,7 +103,7 @@ initialize by copy {
     .near.data       inited   0x000014     0x1  tasks.o [1]
                             - 0x000015     0x5
 
-"P2", part 2 of 2:                        0x80
+"P2", part 2 of 2:                        0x7e
   .near.bss          zero     0x000015    0x14  system_task_handling.o [1]
   .near.bss          zero     0x000029     0x8  key.o [1]
   .near.bss          zero     0x000031     0x6  tasks.o [1]
@@ -126,7 +126,7 @@ initialize by copy {
   .near.bss          zero     0x000071     0x2  led.o [1]
   .near.bss          zero     0x000073     0x2  led.o [1]
   .near.bss          zero     0x000075     0x2  led.o [1]
-  .near.bss          zero     0x000077     0x2  led.o [1]
+  .near.bss          zero     0x000077     0x2  tasks.o [1]
   .near.bss          zero     0x000079     0x2  tasks.o [1]
   .near.bss          zero     0x00007b     0x2  tasks.o [1]
   .near.bss          zero     0x00007d     0x2  tasks.o [1]
@@ -134,8 +134,9 @@ initialize by copy {
   .near.bss          zero     0x000081     0x2  tasks.o [1]
   .near.bss          zero     0x000083     0x2  tasks.o [1]
   .near.bss          zero     0x000085     0x2  tasks.o [1]
-  .near.bss          zero     0x000087     0x2  tasks.o [1]
-  .near.bss          zero     0x000089     0x1  main.o [1]
+  .near.bss          zero     0x000087     0x1  main.o [1]
+  .near.bss          zero     0x000088     0x1  tasks.o [1]
+  .near.bss          zero     0x000089     0x1  tasks.o [1]
   .near.bss          zero     0x00008a     0x1  tasks.o [1]
   .near.bss          zero     0x00008b     0x1  tasks.o [1]
   .near.bss          zero     0x00008c     0x1  tasks.o [1]
@@ -145,9 +146,7 @@ initialize by copy {
   .near.bss          zero     0x000090     0x1  tasks.o [1]
   .near.bss          zero     0x000091     0x1  tasks.o [1]
   .near.bss          zero     0x000092     0x1  tasks.o [1]
-  .near.bss          zero     0x000093     0x1  tasks.o [1]
-  .near.bss          zero     0x000094     0x1  tasks.o [1]
-                            - 0x000095    0x80
+                            - 0x000093    0x7e
 
 "A1":                                    0x100
   CSTACK                      0x000300   0x100  <Block>
@@ -159,123 +158,122 @@ initialize by copy {
     .intvec          const    0x008000    0x80  interrupt.o [4]
                             - 0x008080    0x80
 
-"P3-P5":                                0x1eaf
-  .near_func.text    ro code  0x008080   0x38c  tasks.o [1]
-  .near_func.text    ro code  0x00840c   0x1dc  long.o [4]
-  .near_func.text    ro code  0x0085e8   0x1d9  tasks.o [1]
-  .near_func.text    ro code  0x0087c1   0x15e  hw_init.o [1]
-  .near_func.text    ro code  0x00891f   0x125  vreg_util.o [4]
-  .near_func.text    ro code  0x008a44   0x116  tasks.o [1]
-  .near_func.text    ro code  0x008b5a   0x10a  key.o [1]
-  .near_func.text    ro code  0x008c64    0xf5  system_task_handling.o [1]
-  .near_func.text    ro code  0x008d59    0xdf  tasks.o [1]
-  .near_func.text    ro code  0x008e38    0xba  led.o [1]
-  .near_func.text    ro code  0x008ef2    0xb0  led.o [1]
-  .near_func.text    ro code  0x008fa2    0xa2  led.o [1]
-  .near_func.text    ro code  0x009044    0x9d  sc7a20.o [1]
-  .near_func.text    ro code  0x0090e1    0x99  stm8s_tim1.o [1]
-  .near_func.text    ro code  0x00917a    0x99  system_task_handling.o [1]
-  .near_func.text    ro code  0x009213    0x96  sc7a20.o [1]
-  .near_func.text    ro code  0x0092a9    0x94  i2c_analog.o [1]
-  .near_func.text    ro code  0x00933d    0x8e  stm8s_gpio.o [1]
-  .near_func.text    ro code  0x0093cb    0x8d  system_task_handling.o [1]
-  .near_func.text    ro code  0x009458    0x78  stm8s_exti.o [1]
-  .near_func.text    ro code  0x0094d0    0x6b  i2c_analog.o [1]
-  .near_func.text    ro code  0x00953b    0x6a  led.o [1]
-  .near_func.text    ro code  0x0095a5    0x69  led.o [1]
-  .near_func.text    ro code  0x00960e    0x66  stm8s_tim1.o [1]
-  .near_func.text    ro code  0x009674    0x62  math.o [1]
-  .near_func.text    ro code  0x0096d6    0x5b  stm8s_clk.o [1]
-  .near_func.text    ro code  0x009731    0x59  stm8s_tim2.o [1]
-  .near_func.text    ro code  0x00978a    0x51  sc7a20.o [1]
-  .near_func.text    ro code  0x0097db    0x50  math.o [1]
-  .near_func.text    ro code  0x00982b    0x4d  main.o [1]
-  .near.rodata       const    0x009878    0x4c  stm8s_tim1.o [1]
-  .near_func.text    ro code  0x0098c4    0x4a  stm8s_tim1.o [1]
-  .near_func.text    ro code  0x00990e    0x4a  short.o [4]
-  .near_func.text    ro code  0x009958    0x49  stm8s_it.o [1]
-  .near_func.text    ro code  0x0099a1    0x42  long_util.o [4]
-  .near_func.text    ro code  0x0099e3    0x37  hw_init.o [1]
-  .near_func.text    ro code  0x009a1a    0x36  stm8s_clk.o [1]
-  .near_func.text    ro code  0x009a50    0x31  stm8s_adc1.o [1]
-  .near_func.text    ro code  0x009a81    0x31  stm8s_clk.o [1]
-  .near_func.text    ro code  0x009ab2    0x31  stm8s_tim2.o [1]
-  .near_func.text    ro code  0x009ae3    0x31  stm8s_tim2.o [1]
-  .near_func.text    ro code  0x009b14    0x31  stm8s_tim2.o [1]
-  .near_func.text    ro code  0x009b45    0x2f  stm8s_tim1.o [1]
-  .near_func.text    ro code  0x009b74    0x2c  sc7a20.o [1]
-  .near_func.text    ro code  0x009ba0    0x2a  led.o [1]
-  .near_func.text    ro code  0x009bca    0x29  led.o [1]
-  .near_func.text    ro code  0x009bf3    0x28  init_small.o [4]
-  .near_func.text    ro code  0x009c1b    0x27  i2c_analog.o [1]
-  .near_func.text    ro code  0x009c42    0x26  led.o [1]
-  .near_func.text    ro code  0x009c68    0x24  stm8s_it.o [1]
-  .near_func.text    ro code  0x009c8c    0x24  stm8s_tim1.o [1]
-  .iar.init_table    const    0x009cb0    0x12  - Linker created -
-  .near_func.text    ro code  0x009cc2    0x20  sc7a20.o [1]
-  .near_func.text    ro code  0x009ce2    0x1f  delay.o [1]
-  .near_func.text    ro code  0x009d01    0x1f  i2c_analog.o [1]
-  .near_func.text    ro code  0x009d20    0x1e  init_small.o [4]
-  .near_func.text    ro code  0x009d3e    0x1a  stm8s_tim4.o [1]
-  .near_func.text    ro code  0x009d58    0x19  i2c_analog.o [1]
-  .near_func.text    ro code  0x009d71    0x19  stm8s_tim4.o [1]
-  .near_func.text    ro code  0x009d8a    0x18  dc_util.o [4]
-  .near_func.text    ro code  0x009da2    0x14  init.o [4]
-  .near_func.text    ro code  0x009db6    0x14  __dbg_xxexit.o [3]
-  .near_func.text    ro code  0x009dca    0x13  stm8s_gpio.o [1]
-  .near_func.text    ro code  0x009ddd    0x13  cstartup.o [4]
-  .near_func.text    ro code  0x009df0    0x10  stm8s_tim2.o [1]
-  .near_func.text    ro code  0x009e00     0xe  stm8s_clk.o [1]
-  .near_func.text    ro code  0x009e0e     0xe  stm8s_tim1.o [1]
-  .near_func.text    ro code  0x009e1c     0xe  stm8s_tim1.o [1]
-  .near_func.text    ro code  0x009e2a     0xe  stm8s_tim2.o [1]
-  .near_func.text    ro code  0x009e38     0xe  stm8s_tim2.o [1]
-  .near_func.text    ro code  0x009e46     0xe  stm8s_tim2.o [1]
-  .near_func.text    ro code  0x009e54     0xe  stm8s_tim2.o [1]
-  .near_func.text    ro code  0x009e62     0xe  stm8s_tim2.o [1]
-  .near_func.text    ro code  0x009e70     0xe  stm8s_tim4.o [1]
-  .near_func.text    ro code  0x009e7e     0xe  stm8s_tim4.o [1]
-  .near_func.text    ro code  0x009e8c     0xd  i2c_analog.o [1]
-  .near_func.text    ro code  0x009e99     0xd  stm8s_tim4.o [1]
-  .near_func.text    ro code  0x009ea6     0x9  stm8s_tim1.o [1]
-  .near_func.text    ro code  0x009eaf     0x9  stm8s_tim2.o [1]
-  .near_func.text    ro code  0x009eb8     0x9  stm8s_tim2.o [1]
-  .near_func.text    ro code  0x009ec1     0x9  stm8s_tim2.o [1]
-  .near_func.text    ro code  0x009eca     0x9  stm8s_tim4.o [1]
-  .near_func.text    ro code  0x009ed3     0x9  stm8s_tim4.o [1]
-  .near_func.text    ro code  0x009edc     0x8  stm8s_gpio.o [1]
-  .near_func.text    ro code  0x009ee4     0x7  led.o [1]
-  .near_func.text    ro code  0x009eeb     0x7  stm8s_gpio.o [1]
-  .near_func.text    ro code  0x009ef2     0x7  stm8s_gpio.o [1]
-  .near_func.text    ro code  0x009ef9     0x6  char.o [4]
-  .near_func.text    ro code  0x009eff     0x5  led.o [1]
-  .near_func.text    ro code  0x009f04     0x5  cexit.o [4]
-  Initializer bytes  const    0x009f09     0x5  <for P2-1>
-  .near_func.text    ro code  0x009f0e     0x3  interrupt.o [4]
-  .near_func.text    ro code  0x009f11     0x3  low_level_init.o [4]
-  .near_func.text    ro code  0x009f14     0x3  exit.o [4]
-  .near_func.text    ro code  0x009f17     0x3  unhandled_exception.o [4]
-  .near_func.text    ro code  0x009f1a     0x2  main.o [1]
-  .near_func.text    ro code  0x009f1c     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f1d     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f1e     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f1f     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f20     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f21     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f22     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f23     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f24     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f25     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f26     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f27     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f28     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f29     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f2a     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f2b     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f2c     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f2d     0x1  stm8s_it.o [1]
-  .near_func.text    ro code  0x009f2e     0x1  __dbg_break.o [3]
-                            - 0x009f2f  0x1eaf
+"P3-P5":                                0x1df0
+  .near_func.text    ro code  0x008080   0x38f  tasks.o [1]
+  .near_func.text    ro code  0x00840f   0x1ef  tasks.o [1]
+  .near_func.text    ro code  0x0085fe   0x1dc  long.o [4]
+  .near_func.text    ro code  0x0087da   0x15e  hw_init.o [1]
+  .near_func.text    ro code  0x008938   0x125  vreg_util.o [4]
+  .near_func.text    ro code  0x008a5d   0x116  tasks.o [1]
+  .near_func.text    ro code  0x008b73   0x10a  key.o [1]
+  .near_func.text    ro code  0x008c7d    0xf5  system_task_handling.o [1]
+  .near_func.text    ro code  0x008d72    0xce  tasks.o [1]
+  .near_func.text    ro code  0x008e40    0xbf  led.o [1]
+  .near_func.text    ro code  0x008eff    0xa2  led.o [1]
+  .near_func.text    ro code  0x008fa1    0x9d  sc7a20.o [1]
+  .near_func.text    ro code  0x00903e    0x99  stm8s_tim1.o [1]
+  .near_func.text    ro code  0x0090d7    0x99  system_task_handling.o [1]
+  .near_func.text    ro code  0x009170    0x96  sc7a20.o [1]
+  .near_func.text    ro code  0x009206    0x94  i2c_analog.o [1]
+  .near_func.text    ro code  0x00929a    0x8e  stm8s_gpio.o [1]
+  .near_func.text    ro code  0x009328    0x8d  system_task_handling.o [1]
+  .near_func.text    ro code  0x0093b5    0x78  stm8s_exti.o [1]
+  .near_func.text    ro code  0x00942d    0x6b  i2c_analog.o [1]
+  .near_func.text    ro code  0x009498    0x6a  led.o [1]
+  .near_func.text    ro code  0x009502    0x69  led.o [1]
+  .near_func.text    ro code  0x00956b    0x66  stm8s_tim1.o [1]
+  .near_func.text    ro code  0x0095d1    0x62  math.o [1]
+  .near_func.text    ro code  0x009633    0x5b  stm8s_clk.o [1]
+  .near_func.text    ro code  0x00968e    0x59  stm8s_tim2.o [1]
+  .near_func.text    ro code  0x0096e7    0x51  sc7a20.o [1]
+  .near_func.text    ro code  0x009738    0x50  math.o [1]
+  .near_func.text    ro code  0x009788    0x4d  main.o [1]
+  .near.rodata       const    0x0097d5    0x4c  stm8s_tim1.o [1]
+  .near_func.text    ro code  0x009821    0x4a  stm8s_tim1.o [1]
+  .near_func.text    ro code  0x00986b    0x4a  short.o [4]
+  .near_func.text    ro code  0x0098b5    0x49  stm8s_it.o [1]
+  .near_func.text    ro code  0x0098fe    0x42  long_util.o [4]
+  .near_func.text    ro code  0x009940    0x37  hw_init.o [1]
+  .near_func.text    ro code  0x009977    0x36  stm8s_clk.o [1]
+  .near_func.text    ro code  0x0099ad    0x31  stm8s_adc1.o [1]
+  .near_func.text    ro code  0x0099de    0x31  stm8s_clk.o [1]
+  .near_func.text    ro code  0x009a0f    0x31  stm8s_tim2.o [1]
+  .near_func.text    ro code  0x009a40    0x31  stm8s_tim2.o [1]
+  .near_func.text    ro code  0x009a71    0x31  stm8s_tim2.o [1]
+  .near_func.text    ro code  0x009aa2    0x2f  stm8s_tim1.o [1]
+  .near_func.text    ro code  0x009ad1    0x2c  sc7a20.o [1]
+  .near_func.text    ro code  0x009afd    0x2a  led.o [1]
+  .near_func.text    ro code  0x009b27    0x28  init_small.o [4]
+  .near_func.text    ro code  0x009b4f    0x27  i2c_analog.o [1]
+  .near_func.text    ro code  0x009b76    0x26  led.o [1]
+  .near_func.text    ro code  0x009b9c    0x24  stm8s_it.o [1]
+  .near_func.text    ro code  0x009bc0    0x24  stm8s_tim1.o [1]
+  .iar.init_table    const    0x009be4    0x12  - Linker created -
+  .near_func.text    ro code  0x009bf6    0x20  sc7a20.o [1]
+  .near_func.text    ro code  0x009c16    0x1f  delay.o [1]
+  .near_func.text    ro code  0x009c35    0x1f  i2c_analog.o [1]
+  .near_func.text    ro code  0x009c54    0x1e  init_small.o [4]
+  .near_func.text    ro code  0x009c72    0x1a  stm8s_tim4.o [1]
+  .near_func.text    ro code  0x009c8c    0x19  i2c_analog.o [1]
+  .near_func.text    ro code  0x009ca5    0x19  stm8s_tim4.o [1]
+  .near_func.text    ro code  0x009cbe    0x18  dc_util.o [4]
+  .near_func.text    ro code  0x009cd6    0x14  init.o [4]
+  .near_func.text    ro code  0x009cea    0x14  __dbg_xxexit.o [3]
+  .near_func.text    ro code  0x009cfe    0x13  stm8s_gpio.o [1]
+  .near_func.text    ro code  0x009d11    0x13  cstartup.o [4]
+  .near_func.text    ro code  0x009d24    0x10  stm8s_tim2.o [1]
+  .near_func.text    ro code  0x009d34     0xe  stm8s_clk.o [1]
+  .near_func.text    ro code  0x009d42     0xe  stm8s_tim1.o [1]
+  .near_func.text    ro code  0x009d50     0xe  stm8s_tim1.o [1]
+  .near_func.text    ro code  0x009d5e     0xe  stm8s_tim2.o [1]
+  .near_func.text    ro code  0x009d6c     0xe  stm8s_tim2.o [1]
+  .near_func.text    ro code  0x009d7a     0xe  stm8s_tim2.o [1]
+  .near_func.text    ro code  0x009d88     0xe  stm8s_tim2.o [1]
+  .near_func.text    ro code  0x009d96     0xe  stm8s_tim2.o [1]
+  .near_func.text    ro code  0x009da4     0xe  stm8s_tim4.o [1]
+  .near_func.text    ro code  0x009db2     0xe  stm8s_tim4.o [1]
+  .near_func.text    ro code  0x009dc0     0xd  i2c_analog.o [1]
+  .near_func.text    ro code  0x009dcd     0xd  led.o [1]
+  .near_func.text    ro code  0x009dda     0xd  stm8s_tim4.o [1]
+  .near_func.text    ro code  0x009de7     0x9  stm8s_tim1.o [1]
+  .near_func.text    ro code  0x009df0     0x9  stm8s_tim2.o [1]
+  .near_func.text    ro code  0x009df9     0x9  stm8s_tim2.o [1]
+  .near_func.text    ro code  0x009e02     0x9  stm8s_tim2.o [1]
+  .near_func.text    ro code  0x009e0b     0x9  stm8s_tim4.o [1]
+  .near_func.text    ro code  0x009e14     0x9  stm8s_tim4.o [1]
+  .near_func.text    ro code  0x009e1d     0x8  stm8s_gpio.o [1]
+  .near_func.text    ro code  0x009e25     0x7  led.o [1]
+  .near_func.text    ro code  0x009e2c     0x7  stm8s_gpio.o [1]
+  .near_func.text    ro code  0x009e33     0x7  stm8s_gpio.o [1]
+  .near_func.text    ro code  0x009e3a     0x6  char.o [4]
+  .near_func.text    ro code  0x009e40     0x5  led.o [1]
+  .near_func.text    ro code  0x009e45     0x5  cexit.o [4]
+  Initializer bytes  const    0x009e4a     0x5  <for P2-1>
+  .near_func.text    ro code  0x009e4f     0x3  interrupt.o [4]
+  .near_func.text    ro code  0x009e52     0x3  low_level_init.o [4]
+  .near_func.text    ro code  0x009e55     0x3  exit.o [4]
+  .near_func.text    ro code  0x009e58     0x3  unhandled_exception.o [4]
+  .near_func.text    ro code  0x009e5b     0x2  main.o [1]
+  .near_func.text    ro code  0x009e5d     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e5e     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e5f     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e60     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e61     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e62     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e63     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e64     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e65     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e66     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e67     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e68     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e69     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e6a     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e6b     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e6c     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e6d     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e6e     0x1  stm8s_it.o [1]
+  .near_func.text    ro code  0x009e6f     0x1  __dbg_break.o [3]
+                            - 0x009e70  0x1df0
 
 
 *******************************************************************************
@@ -285,12 +283,12 @@ initialize by copy {
           Address   Size
           -------   ----
 Zero (__iar_zero_init2)
-    1 destination range, total size 0x80:
-          0x000015  0x80
+    1 destination range, total size 0x7e:
+          0x000015  0x7e
 
 Copy (__iar_copy_init2)
     1 source range, total size 0x5:
-          0x009f09   0x5
+          0x009e4a   0x5
     1 destination range, total size 0x5:
           0x000010   0x5
 
@@ -307,7 +305,7 @@ C:\Users\hero\Desktop\Taillight_Code\stm8_prj\code_iar\Debug\Obj: [1]
     hw_init.o                   405
     i2c_analog.o                363
     key.o                       266                 8
-    led.o                       868        2       20
+    led.o                       669        2       18
     main.o                       79                 5
     math.o                      178
     sc7a20.o                    464
@@ -320,9 +318,9 @@ C:\Users\hero\Desktop\Taillight_Code\stm8_prj\code_iar\Debug\Obj: [1]
     stm8s_tim2.o                349
     stm8s_tim4.o                110
     system_task_handling.o      539                20
-    tasks.o                   1 882        3       80
+    tasks.o                   1 890        3       80
     -------------------------------------------------
-    Total:                    6 670       81      133
+    Total:                    6 479       81      131
 
 command line: [2]
     -------------------------------------------------
@@ -355,7 +353,7 @@ dlstm8smn.a: [4]
 
     Linker created                        18      256
 -----------------------------------------------------
-    Grand Total:              7 756      227      405
+    Grand Total:              7 565      227      403
 
 
 *******************************************************************************
@@ -364,11 +362,11 @@ dlstm8smn.a: [4]
 
 Entry                    Address   Size  Type      Object
 -----                    -------   ----  ----      ------
-.iar.init_table$$Base   0x009cb0          --   Gb  - Linker created -
-.iar.init_table$$Limit  0x009cc2          --   Gb  - Linker created -
-?add32_l0_l0_0x         0x008427         Code  Gb  long.o [4]
-?add32_l0_l0_dl         0x00841f         Code  Gb  long.o [4]
-?add32_l0_l0_l1         0x008424         Code  Gb  long.o [4]
+.iar.init_table$$Base   0x009be4          --   Gb  - Linker created -
+.iar.init_table$$Limit  0x009bf6          --   Gb  - Linker created -
+?add32_l0_l0_0x         0x008619         Code  Gb  long.o [4]
+?add32_l0_l0_dl         0x008611         Code  Gb  long.o [4]
+?add32_l0_l0_l1         0x008616         Code  Gb  long.o [4]
 ?b0                     0x000000         Data  Gb  vregs.o [4]
 ?b1                     0x000001         Data  Gb  vregs.o [4]
 ?b10                    0x00000a         Data  Gb  vregs.o [4]
@@ -385,94 +383,94 @@ Entry                    Address   Size  Type      Object
 ?b7                     0x000007         Data  Gb  vregs.o [4]
 ?b8                     0x000008         Data  Gb  vregs.o [4]
 ?b9                     0x000009         Data  Gb  vregs.o [4]
-?dc32_l1                0x009d8a         Code  Gb  dc_util.o [4]
-?dc32_px                0x009d97         Code  Gb  dc_util.o [4]
+?dc32_l1                0x009cbe         Code  Gb  dc_util.o [4]
+?dc32_px                0x009ccb         Code  Gb  dc_util.o [4]
 ?e0                     0x000001         Data  Gb  vregs.o [4]
 ?e1                     0x000005         Data  Gb  vregs.o [4]
 ?e2                     0x000009         Data  Gb  vregs.o [4]
 ?e3                     0x00000d         Data  Gb  vregs.o [4]
-?epilogue_l2            0x0089c6         Code  Gb  vreg_util.o [4]
-?epilogue_l2_l3         0x0089c3         Code  Gb  vreg_util.o [4]
-?epilogue_l2_w6         0x0089ca         Code  Gb  vreg_util.o [4]
-?epilogue_w4            0x0089d1         Code  Gb  vreg_util.o [4]
-?inc32_0x_0x            0x008411         Code  Gb  long.o [4]
-?inc32_l0_l0            0x00840c         Code  Gb  long.o [4]
+?epilogue_l2            0x0089df         Code  Gb  vreg_util.o [4]
+?epilogue_l2_l3         0x0089dc         Code  Gb  vreg_util.o [4]
+?epilogue_l2_w6         0x0089e3         Code  Gb  vreg_util.o [4]
+?epilogue_w4            0x0089ea         Code  Gb  vreg_util.o [4]
+?inc32_0x_0x            0x008603         Code  Gb  long.o [4]
+?inc32_l0_l0            0x0085fe         Code  Gb  long.o [4]
 ?l0                     0x000000         Data  Gb  vregs.o [4]
 ?l1                     0x000004         Data  Gb  vregs.o [4]
 ?l2                     0x000008         Data  Gb  vregs.o [4]
 ?l3                     0x00000c         Data  Gb  vregs.o [4]
-?load32_0x_l0           0x0099b9         Code  Gb  long_util.o [4]
-?load32_0x_l1           0x0099c7         Code  Gb  long_util.o [4]
-?load32_0x_l2           0x0099d5         Code  Gb  long_util.o [4]
-?load32_l0_0x           0x0099a1         Code  Gb  long_util.o [4]
-?load32_l1_0x           0x0099ad         Code  Gb  long_util.o [4]
-?mov_e0_e1              0x0089df         Code  Gb  vreg_util.o [4]
-?mov_e0_e2              0x0089ec         Code  Gb  vreg_util.o [4]
-?mov_e0_e3              0x0089f9         Code  Gb  vreg_util.o [4]
-?mov_e1_e0              0x008a06         Code  Gb  vreg_util.o [4]
-?mov_e1_e2              0x008a13         Code  Gb  vreg_util.o [4]
-?mov_e1_e3              0x008a20         Code  Gb  vreg_util.o [4]
-?mov_e2_e0              0x008a2d         Code  Gb  vreg_util.o [4]
-?mov_e3_e0              0x008a3a         Code  Gb  vreg_util.o [4]
-?mov_l0_l1              0x0089dc         Code  Gb  vreg_util.o [4]
-?mov_l0_l2              0x0089e9         Code  Gb  vreg_util.o [4]
-?mov_l0_l3              0x0089f6         Code  Gb  vreg_util.o [4]
-?mov_l1_l0              0x008a03         Code  Gb  vreg_util.o [4]
-?mov_l1_l2              0x008a10         Code  Gb  vreg_util.o [4]
-?mov_l1_l3              0x008a1d         Code  Gb  vreg_util.o [4]
-?mov_l2_l0              0x008a2a         Code  Gb  vreg_util.o [4]
-?mov_l3_l0              0x008a37         Code  Gb  vreg_util.o [4]
-?mov_w1_w3              0x0089e2         Code  Gb  vreg_util.o [4]
-?mov_w1_w5              0x0089ef         Code  Gb  vreg_util.o [4]
-?mov_w1_w7              0x0089fc         Code  Gb  vreg_util.o [4]
-?mov_w3_w1              0x008a09         Code  Gb  vreg_util.o [4]
-?mov_w3_w5              0x008a16         Code  Gb  vreg_util.o [4]
-?mov_w3_w7              0x008a23         Code  Gb  vreg_util.o [4]
-?mov_w5_w1              0x008a30         Code  Gb  vreg_util.o [4]
-?mov_w6_w4              0x0089d5         Code  Gb  vreg_util.o [4]
-?mov_w7_w1              0x008a3d         Code  Gb  vreg_util.o [4]
-?mul16_x_x_w0           0x00990e         Code  Gb  short.o [4]
-?mul32_l0_l0_0x         0x00845d         Code  Gb  long.o [4]
-?mul32_l0_l0_dl         0x00845a         Code  Gb  long.o [4]
-?mul32_l0_l0_l1         0x008466         Code  Gb  long.o [4]
-?pop_l0                 0x00898f         Code  Gb  vreg_util.o [4]
-?pop_l1                 0x00899a         Code  Gb  vreg_util.o [4]
-?pop_l2                 0x0089a5         Code  Gb  vreg_util.o [4]
-?pop_l3                 0x0089b0         Code  Gb  vreg_util.o [4]
-?pop_w0                 0x008941         Code  Gb  vreg_util.o [4]
-?pop_w4                 0x008948         Code  Gb  vreg_util.o [4]
-?pop_w6                 0x00894f         Code  Gb  vreg_util.o [4]
-?push_l0                0x00895e         Code  Gb  vreg_util.o [4]
-?push_l1                0x008963         Code  Gb  vreg_util.o [4]
-?push_l2                0x008968         Code  Gb  vreg_util.o [4]
-?push_l3                0x00896d         Code  Gb  vreg_util.o [4]
-?push_w0                0x00891f         Code  Gb  vreg_util.o [4]
-?push_w4                0x008924         Code  Gb  vreg_util.o [4]
-?push_w6                0x008929         Code  Gb  vreg_util.o [4]
-?scmp32_c_l0_l1         0x0085b5         Code  Gb  long.o [4]
-?sdiv16_x_x_y           0x00992c         Code  Gb  short.o [4]
-?sdiv32_l0_l0_l1        0x008554         Code  Gb  long.o [4]
-?sext32_l0_x            0x0085dd         Code  Gb  long.o [4]
-?sll16_x_x_a            0x009945         Code  Gb  short.o [4]
-?sll8_a_a_5             0x009efa         Code  Gb  char.o [4]
-?sll8_a_a_6             0x009ef9         Code  Gb  char.o [4]
-?smod32_l1_l0_l1        0x008554         Code  Gb  long.o [4]
-?srl16_x_x_10           0x00994d         Code  Gb  short.o [4]
-?srl16_x_x_4            0x009953         Code  Gb  short.o [4]
-?srl16_x_x_5            0x009952         Code  Gb  short.o [4]
-?srl16_x_x_6            0x009951         Code  Gb  short.o [4]
-?srl16_x_x_7            0x009950         Code  Gb  short.o [4]
-?srl16_x_x_8            0x00994f         Code  Gb  short.o [4]
-?srl16_x_x_9            0x00994e         Code  Gb  short.o [4]
-?srl32_0x_0x_a          0x0085cf         Code  Gb  long.o [4]
-?srl32_l0_l0_a          0x0085cc         Code  Gb  long.o [4]
-?sub32_l0_l0_0x         0x008442         Code  Gb  long.o [4]
-?sub32_l0_l0_l1         0x00843f         Code  Gb  long.o [4]
-?ucmp32_c_l0_0x         0x00859a         Code  Gb  long.o [4]
-?ucmp32_c_l0_l1         0x0085aa         Code  Gb  long.o [4]
-?udiv32_l0_l0_dl        0x0084e4         Code  Gb  long.o [4]
-?udiv32_l0_l0_l1        0x0084e7         Code  Gb  long.o [4]
-?umod32_l1_l0_l1        0x0084e7         Code  Gb  long.o [4]
+?load32_0x_l0           0x009916         Code  Gb  long_util.o [4]
+?load32_0x_l1           0x009924         Code  Gb  long_util.o [4]
+?load32_0x_l2           0x009932         Code  Gb  long_util.o [4]
+?load32_l0_0x           0x0098fe         Code  Gb  long_util.o [4]
+?load32_l1_0x           0x00990a         Code  Gb  long_util.o [4]
+?mov_e0_e1              0x0089f8         Code  Gb  vreg_util.o [4]
+?mov_e0_e2              0x008a05         Code  Gb  vreg_util.o [4]
+?mov_e0_e3              0x008a12         Code  Gb  vreg_util.o [4]
+?mov_e1_e0              0x008a1f         Code  Gb  vreg_util.o [4]
+?mov_e1_e2              0x008a2c         Code  Gb  vreg_util.o [4]
+?mov_e1_e3              0x008a39         Code  Gb  vreg_util.o [4]
+?mov_e2_e0              0x008a46         Code  Gb  vreg_util.o [4]
+?mov_e3_e0              0x008a53         Code  Gb  vreg_util.o [4]
+?mov_l0_l1              0x0089f5         Code  Gb  vreg_util.o [4]
+?mov_l0_l2              0x008a02         Code  Gb  vreg_util.o [4]
+?mov_l0_l3              0x008a0f         Code  Gb  vreg_util.o [4]
+?mov_l1_l0              0x008a1c         Code  Gb  vreg_util.o [4]
+?mov_l1_l2              0x008a29         Code  Gb  vreg_util.o [4]
+?mov_l1_l3              0x008a36         Code  Gb  vreg_util.o [4]
+?mov_l2_l0              0x008a43         Code  Gb  vreg_util.o [4]
+?mov_l3_l0              0x008a50         Code  Gb  vreg_util.o [4]
+?mov_w1_w3              0x0089fb         Code  Gb  vreg_util.o [4]
+?mov_w1_w5              0x008a08         Code  Gb  vreg_util.o [4]
+?mov_w1_w7              0x008a15         Code  Gb  vreg_util.o [4]
+?mov_w3_w1              0x008a22         Code  Gb  vreg_util.o [4]
+?mov_w3_w5              0x008a2f         Code  Gb  vreg_util.o [4]
+?mov_w3_w7              0x008a3c         Code  Gb  vreg_util.o [4]
+?mov_w5_w1              0x008a49         Code  Gb  vreg_util.o [4]
+?mov_w6_w4              0x0089ee         Code  Gb  vreg_util.o [4]
+?mov_w7_w1              0x008a56         Code  Gb  vreg_util.o [4]
+?mul16_x_x_w0           0x00986b         Code  Gb  short.o [4]
+?mul32_l0_l0_0x         0x00864f         Code  Gb  long.o [4]
+?mul32_l0_l0_dl         0x00864c         Code  Gb  long.o [4]
+?mul32_l0_l0_l1         0x008658         Code  Gb  long.o [4]
+?pop_l0                 0x0089a8         Code  Gb  vreg_util.o [4]
+?pop_l1                 0x0089b3         Code  Gb  vreg_util.o [4]
+?pop_l2                 0x0089be         Code  Gb  vreg_util.o [4]
+?pop_l3                 0x0089c9         Code  Gb  vreg_util.o [4]
+?pop_w0                 0x00895a         Code  Gb  vreg_util.o [4]
+?pop_w4                 0x008961         Code  Gb  vreg_util.o [4]
+?pop_w6                 0x008968         Code  Gb  vreg_util.o [4]
+?push_l0                0x008977         Code  Gb  vreg_util.o [4]
+?push_l1                0x00897c         Code  Gb  vreg_util.o [4]
+?push_l2                0x008981         Code  Gb  vreg_util.o [4]
+?push_l3                0x008986         Code  Gb  vreg_util.o [4]
+?push_w0                0x008938         Code  Gb  vreg_util.o [4]
+?push_w4                0x00893d         Code  Gb  vreg_util.o [4]
+?push_w6                0x008942         Code  Gb  vreg_util.o [4]
+?scmp32_c_l0_l1         0x0087a7         Code  Gb  long.o [4]
+?sdiv16_x_x_y           0x009889         Code  Gb  short.o [4]
+?sdiv32_l0_l0_l1        0x008746         Code  Gb  long.o [4]
+?sext32_l0_x            0x0087cf         Code  Gb  long.o [4]
+?sll16_x_x_a            0x0098a2         Code  Gb  short.o [4]
+?sll8_a_a_5             0x009e3b         Code  Gb  char.o [4]
+?sll8_a_a_6             0x009e3a         Code  Gb  char.o [4]
+?smod32_l1_l0_l1        0x008746         Code  Gb  long.o [4]
+?srl16_x_x_10           0x0098aa         Code  Gb  short.o [4]
+?srl16_x_x_4            0x0098b0         Code  Gb  short.o [4]
+?srl16_x_x_5            0x0098af         Code  Gb  short.o [4]
+?srl16_x_x_6            0x0098ae         Code  Gb  short.o [4]
+?srl16_x_x_7            0x0098ad         Code  Gb  short.o [4]
+?srl16_x_x_8            0x0098ac         Code  Gb  short.o [4]
+?srl16_x_x_9            0x0098ab         Code  Gb  short.o [4]
+?srl32_0x_0x_a          0x0087c1         Code  Gb  long.o [4]
+?srl32_l0_l0_a          0x0087be         Code  Gb  long.o [4]
+?sub32_l0_l0_0x         0x008634         Code  Gb  long.o [4]
+?sub32_l0_l0_l1         0x008631         Code  Gb  long.o [4]
+?ucmp32_c_l0_0x         0x00878c         Code  Gb  long.o [4]
+?ucmp32_c_l0_l1         0x00879c         Code  Gb  long.o [4]
+?udiv32_l0_l0_dl        0x0086d6         Code  Gb  long.o [4]
+?udiv32_l0_l0_l1        0x0086d9         Code  Gb  long.o [4]
+?umod32_l1_l0_l1        0x0086d9         Code  Gb  long.o [4]
 ?w0                     0x000000         Data  Gb  vregs.o [4]
 ?w1                     0x000002         Data  Gb  vregs.o [4]
 ?w2                     0x000004         Data  Gb  vregs.o [4]
@@ -481,21 +479,21 @@ Entry                    Address   Size  Type      Object
 ?w5                     0x00000a         Data  Gb  vregs.o [4]
 ?w6                     0x00000c         Data  Gb  vregs.o [4]
 ?w7                     0x00000e         Data  Gb  vregs.o [4]
-ADC1_DeInit             0x009a50   0x31  Code  Gb  stm8s_adc1.o [1]
-ADC1_IRQHandler         0x009c68   0x24  Code  Gb  stm8s_it.o [1]
-ADC_CH_Init             0x0099e3   0x37  Code  Gb  hw_init.o [1]
-AD_Chg                  0x00007d    0x2  Data  Gb  tasks.o [1]
+ADC1_DeInit             0x0099ad   0x31  Code  Gb  stm8s_adc1.o [1]
+ADC1_IRQHandler         0x009b9c   0x24  Code  Gb  stm8s_it.o [1]
+ADC_CH_Init             0x009940   0x37  Code  Gb  hw_init.o [1]
+AD_Chg                  0x00007b    0x2  Data  Gb  tasks.o [1]
 AD_ChgFltSum            0x00004f    0x4  Data  Gb  tasks.o [1]
-AD_FinishFlag           0x00008e    0x1  Data  Gb  tasks.o [1]
-AD_Light                0x00007b    0x2  Data  Gb  tasks.o [1]
+AD_FinishFlag           0x00008c    0x1  Data  Gb  tasks.o [1]
+AD_Light                0x000079    0x2  Data  Gb  tasks.o [1]
 AD_LightFltSum          0x00004b    0x4  Data  Gb  tasks.o [1]
-AD_Value                0x00007f    0x2  Data  Gb  tasks.o [1]
-AD_Vin                  0x000079    0x2  Data  Gb  tasks.o [1]
+AD_Value                0x00007d    0x2  Data  Gb  tasks.o [1]
+AD_Vin                  0x000077    0x2  Data  Gb  tasks.o [1]
 AD_VinFltSum            0x000047    0x4  Data  Gb  tasks.o [1]
-AWU_IRQHandler          0x009f1e    0x1  Code  Gb  stm8s_it.o [1]
-AccAvg_x                0x000081    0x2  Data  Gb  tasks.o [1]
-AccAvg_y                0x000083    0x2  Data  Gb  tasks.o [1]
-AccAvg_z                0x000085    0x2  Data  Gb  tasks.o [1]
+AWU_IRQHandler          0x009e5f    0x1  Code  Gb  stm8s_it.o [1]
+AccAvg_x                0x00007f    0x2  Data  Gb  tasks.o [1]
+AccAvg_y                0x000081    0x2  Data  Gb  tasks.o [1]
+AccAvg_z                0x000083    0x2  Data  Gb  tasks.o [1]
 AccBuff_x               0x000031    0x6  Data  Gb  tasks.o [1]
 AccBuff_y               0x000037    0x6  Data  Gb  tasks.o [1]
 AccBuff_z               0x00003d    0x6  Data  Gb  tasks.o [1]
@@ -504,61 +502,57 @@ AccStd_y                0x000057    0x4  Data  Gb  tasks.o [1]
 AccStd_z                0x00005b    0x4  Data  Gb  tasks.o [1]
 AutoOffTimeCnt          0x000063    0x4  Data  Gb  tasks.o [1]
 Bat_Soc                 0x000014    0x1  Data  Gb  tasks.o [1]
-BreakFlag               0x00008b    0x1  Data  Gb  tasks.o [1]
+BreakFlag               0x000089    0x1  Data  Gb  tasks.o [1]
 BrightlessLevel         0x000010    0x2  Data  Gb  led.o [1]
-CLK_DeInit              0x009a1a   0x36  Code  Gb  stm8s_clk.o [1]
-CLK_HSICmd              0x009e00    0xe  Code  Gb  stm8s_clk.o [1]
-CLK_IRQHandler          0x009f1f    0x1  Code  Gb  stm8s_it.o [1]
+CLK_DeInit              0x009977   0x36  Code  Gb  stm8s_clk.o [1]
+CLK_HSICmd              0x009d34    0xe  Code  Gb  stm8s_clk.o [1]
+CLK_IRQHandler          0x009e60    0x1  Code  Gb  stm8s_it.o [1]
 CLK_PeripheralClockConfig
-                        0x0096d6   0x5b  Code  Gb  stm8s_clk.o [1]
-CLK_SYSCLKConfig        0x009a81   0x31  Code  Gb  stm8s_clk.o [1]
+                        0x009633   0x5b  Code  Gb  stm8s_clk.o [1]
+CLK_SYSCLKConfig        0x0099de   0x31  Code  Gb  stm8s_clk.o [1]
 CSTACK$$Base            0x000300          --   Gb  - Linker created -
 CSTACK$$Limit           0x000400          --   Gb  - Linker created -
-Chg_Flag                0x00008d    0x1  Data  Gb  tasks.o [1]
-Delay_5us               0x009e8c    0xd  Code  Gb  i2c_analog.o [1]
-Delay_ms                0x009ce2   0x1f  Code  Gb  delay.o [1]
-EEPROM_EEC_IRQHandler   0x009f2d    0x1  Code  Gb  stm8s_it.o [1]
-EXTI_PORTA_IRQHandler   0x009f20    0x1  Code  Gb  stm8s_it.o [1]
-EXTI_PORTB_IRQHandler   0x009f21    0x1  Code  Gb  stm8s_it.o [1]
-EXTI_PORTC_IRQHandler   0x009f22    0x1  Code  Gb  stm8s_it.o [1]
-EXTI_PORTD_IRQHandler   0x009f23    0x1  Code  Gb  stm8s_it.o [1]
-EXTI_PORTE_IRQHandler   0x009f24    0x1  Code  Gb  stm8s_it.o [1]
+Chg_Flag                0x00008b    0x1  Data  Gb  tasks.o [1]
+Delay_5us               0x009dc0    0xd  Code  Gb  i2c_analog.o [1]
+Delay_ms                0x009c16   0x1f  Code  Gb  delay.o [1]
+EEPROM_EEC_IRQHandler   0x009e6e    0x1  Code  Gb  stm8s_it.o [1]
+EXTI_PORTA_IRQHandler   0x009e61    0x1  Code  Gb  stm8s_it.o [1]
+EXTI_PORTB_IRQHandler   0x009e62    0x1  Code  Gb  stm8s_it.o [1]
+EXTI_PORTC_IRQHandler   0x009e63    0x1  Code  Gb  stm8s_it.o [1]
+EXTI_PORTD_IRQHandler   0x009e64    0x1  Code  Gb  stm8s_it.o [1]
+EXTI_PORTE_IRQHandler   0x009e65    0x1  Code  Gb  stm8s_it.o [1]
 EXTI_SetExtIntSensitivity
-                        0x009458   0x78  Code  Gb  stm8s_exti.o [1]
-Flag_1MS                0x000089    0x1  Data  Gb  main.o [1]
-GPIO_DeInit             0x009dca   0x13  Code  Gb  stm8s_gpio.o [1]
-GPIO_Init               0x00933d   0x8e  Code  Gb  stm8s_gpio.o [1]
-GPIO_ReadInputPin       0x009ef2    0x7  Code  Gb  stm8s_gpio.o [1]
-GPIO_WriteHigh          0x009eeb    0x7  Code  Gb  stm8s_gpio.o [1]
-GPIO_WriteLow           0x009edc    0x8  Code  Gb  stm8s_gpio.o [1]
+                        0x0093b5   0x78  Code  Gb  stm8s_exti.o [1]
+Flag_1MS                0x000087    0x1  Data  Gb  main.o [1]
+GPIO_DeInit             0x009cfe   0x13  Code  Gb  stm8s_gpio.o [1]
+GPIO_Init               0x00929a   0x8e  Code  Gb  stm8s_gpio.o [1]
+GPIO_ReadInputPin       0x009e33    0x7  Code  Gb  stm8s_gpio.o [1]
+GPIO_WriteHigh          0x009e2c    0x7  Code  Gb  stm8s_gpio.o [1]
+GPIO_WriteLow           0x009e1d    0x8  Code  Gb  stm8s_gpio.o [1]
 Global_Timing_Counter   0x000043    0x4  Data  Gb  main.o [1]
-HW_Init                 0x0087c1  0x15e  Code  Gb  hw_init.o [1]
-I2CC_Init               0x009d58   0x19  Code  Gb  i2c_analog.o [1]
-I2C_IRQHandler          0x009f2c    0x1  Code  Gb  stm8s_it.o [1]
-I2C_RecvByte            0x0094d0   0x6b  Code  Gb  i2c_analog.o [1]
-I2C_SendByte            0x0092a9   0x94  Code  Gb  i2c_analog.o [1]
-I2C_Start               0x009c1b   0x27  Code  Gb  i2c_analog.o [1]
-I2C_Stop                0x009d01   0x1f  Code  Gb  i2c_analog.o [1]
+HW_Init                 0x0087da  0x15e  Code  Gb  hw_init.o [1]
+I2CC_Init               0x009c8c   0x19  Code  Gb  i2c_analog.o [1]
+I2C_IRQHandler          0x009e6d    0x1  Code  Gb  stm8s_it.o [1]
+I2C_RecvByte            0x00942d   0x6b  Code  Gb  i2c_analog.o [1]
+I2C_SendByte            0x009206   0x94  Code  Gb  i2c_analog.o [1]
+I2C_Start               0x009b4f   0x27  Code  Gb  i2c_analog.o [1]
+I2C_Stop                0x009c35   0x1f  Code  Gb  i2c_analog.o [1]
 INTVEC$$Base            0x008000          --   Gb  - Linker created -
 INTVEC$$Limit           0x008080          --   Gb  - Linker created -
-KeyPressResult          0x00008a    0x1  Data  Gb  tasks.o [1]
-KeyProcess              0x008b5a  0x10a  Code  Gb  key.o [1]
-LedChg_ChgMode          0x008ef2   0xb0  Code  Gb  led.o [1]
-LedChg_DischgMode       0x008e38   0xba  Code  Gb  led.o [1]
-LedChg_SetColor         0x0095a5   0x69  Code  Gb  led.o [1]
+KeyPressResult          0x000088    0x1  Data  Gb  tasks.o [1]
+KeyProcess              0x008b73  0x10a  Code  Gb  key.o [1]
+LedChg_SetColor         0x009502   0x69  Code  Gb  led.o [1]
 LedMode                 0x000013    0x1  Data  Gb  tasks.o [1]
-LedSoc_ModeChg_PeriodCnt
-                        0x000075    0x2  Data  Gb  led.o [1]
-LedSoc_ModeDischg_PeriodCnt
-                        0x000077    0x2  Data  Gb  led.o [1]
-Led_ModeProcess         0x008d59   0xdf  Code  Gb  tasks.o [1]
-Light_DisplayBreak      0x009c42   0x26  Code  Gb  led.o [1]
-Light_DisplayMode1      0x00953b   0x6a  Code  Gb  led.o [1]
-Light_DisplayMode2      0x008fa2   0xa2  Code  Gb  led.o [1]
-Light_DisplayMode3      0x009ba0   0x2a  Code  Gb  led.o [1]
-Light_DisplayMode4      0x009ee4    0x7  Code  Gb  led.o [1]
-Light_DisplayOff        0x009eff    0x5  Code  Gb  led.o [1]
-Light_Level             0x00008c    0x1  Data  Gb  tasks.o [1]
+LedSoc_PeriodCnt        0x000075    0x2  Data  Gb  led.o [1]
+Led_BatSoc_Display      0x008e40   0xbf  Code  Gb  led.o [1]
+Led_ModeProcess         0x008d72   0xce  Code  Gb  tasks.o [1]
+Light_DisplayBreak      0x009b76   0x26  Code  Gb  led.o [1]
+Light_DisplayMode1      0x009498   0x6a  Code  Gb  led.o [1]
+Light_DisplayMode2      0x008eff   0xa2  Code  Gb  led.o [1]
+Light_DisplayMode3      0x009afd   0x2a  Code  Gb  led.o [1]
+Light_DisplayMode4      0x009e25    0x7  Code  Gb  led.o [1]
+Light_DisplayOff        0x009e40    0x5  Code  Gb  led.o [1]
+Light_Level             0x00008a    0x1  Data  Gb  tasks.o [1]
 Light_Mode1_Count       0x00006f    0x2  Data  Gb  led.o [1]
 Light_Mode1_PeriodCnt   0x000067    0x2  Data  Gb  led.o [1]
 Light_Mode2_Count       0x000071    0x2  Data  Gb  led.o [1]
@@ -567,113 +561,113 @@ Light_Mode3_PeriodCnt   0x00006b    0x2  Data  Gb  led.o [1]
 Light_Mode4_PeriodCnt   0x00006d    0x2  Data  Gb  led.o [1]
 Light_ModeBreak_PeriodCnt
                         0x000073    0x2  Data  Gb  led.o [1]
-Light_SetBrightless     0x009bca   0x29  Code  Gb  led.o [1]
-Math_GetAvg             0x0097db   0x50  Code  Gb  math.o [1]
-Math_GetStd             0x009674   0x62  Code  Gb  math.o [1]
+Light_SetBrightless     0x009dcd    0xd  Code  Gb  led.o [1]
+Math_GetAvg             0x009738   0x50  Code  Gb  math.o [1]
+Math_GetStd             0x0095d1   0x62  Code  Gb  math.o [1]
 OnFlag                  0x000012    0x1  Data  Gb  tasks.o [1]
-Power_Off               0x0085e8  0x1d9  Code  Gb  tasks.o [1]
-Region$$Table$$Base     0x009cb0          --   Gb  - Linker created -
-Region$$Table$$Limit    0x009cc2          --   Gb  - Linker created -
-SC7A20_GetInfo          0x009213   0x96  Code  Gb  sc7a20.o [1]
-SC7A20_Get_ACCD         0x009044   0x9d  Code  Gb  sc7a20.o [1]
-SC7A20_Init             0x00978a   0x51  Code  Gb  sc7a20.o [1]
-SC7A20_Read_Byte        0x009b74   0x2c  Code  Gb  sc7a20.o [1]
-SC7A20_Write_Byte       0x009cc2   0x20  Code  Gb  sc7a20.o [1]
-SPI_IRQHandler          0x009f25    0x1  Code  Gb  stm8s_it.o [1]
+Power_Off               0x00840f  0x1ef  Code  Gb  tasks.o [1]
+Region$$Table$$Base     0x009be4          --   Gb  - Linker created -
+Region$$Table$$Limit    0x009bf6          --   Gb  - Linker created -
+SC7A20_GetInfo          0x009170   0x96  Code  Gb  sc7a20.o [1]
+SC7A20_Get_ACCD         0x008fa1   0x9d  Code  Gb  sc7a20.o [1]
+SC7A20_Init             0x0096e7   0x51  Code  Gb  sc7a20.o [1]
+SC7A20_Read_Byte        0x009ad1   0x2c  Code  Gb  sc7a20.o [1]
+SC7A20_Write_Byte       0x009bf6   0x20  Code  Gb  sc7a20.o [1]
+SPI_IRQHandler          0x009e66    0x1  Code  Gb  stm8s_it.o [1]
 ShakeTimeCnt            0x00005f    0x4  Data  Gb  tasks.o [1]
 TIM1_CAP_COM_IRQHandler
-                        0x009f27    0x1  Code  Gb  stm8s_it.o [1]
-TIM1_CCxCmd             0x0098c4   0x4a  Code  Gb  stm8s_tim1.o [1]
-TIM1_Cmd                0x009e0e    0xe  Code  Gb  stm8s_tim1.o [1]
-TIM1_CtrlPWMOutputs     0x009b45   0x2f  Code  Gb  stm8s_tim1.o [1]
-TIM1_DeInit             0x0090e1   0x99  Code  Gb  stm8s_tim1.o [1]
-TIM1_OC1Init            0x00960e   0x66  Code  Gb  stm8s_tim1.o [1]
-TIM1_OC1PreloadConfig   0x009e1c    0xe  Code  Gb  stm8s_tim1.o [1]
-TIM1_SetCompare1        0x009ea6    0x9  Code  Gb  stm8s_tim1.o [1]
-TIM1_TimeBaseInit       0x009c8c   0x24  Code  Gb  stm8s_tim1.o [1]
+                        0x009e68    0x1  Code  Gb  stm8s_it.o [1]
+TIM1_CCxCmd             0x009821   0x4a  Code  Gb  stm8s_tim1.o [1]
+TIM1_Cmd                0x009d42    0xe  Code  Gb  stm8s_tim1.o [1]
+TIM1_CtrlPWMOutputs     0x009aa2   0x2f  Code  Gb  stm8s_tim1.o [1]
+TIM1_DeInit             0x00903e   0x99  Code  Gb  stm8s_tim1.o [1]
+TIM1_OC1Init            0x00956b   0x66  Code  Gb  stm8s_tim1.o [1]
+TIM1_OC1PreloadConfig   0x009d50    0xe  Code  Gb  stm8s_tim1.o [1]
+TIM1_SetCompare1        0x009de7    0x9  Code  Gb  stm8s_tim1.o [1]
+TIM1_TimeBaseInit       0x009bc0   0x24  Code  Gb  stm8s_tim1.o [1]
 TIM1_UPD_OVF_TRG_BRK_IRQHandler
-                        0x009f26    0x1  Code  Gb  stm8s_it.o [1]
-TIM2_ARRPreloadConfig   0x009e38    0xe  Code  Gb  stm8s_tim2.o [1]
+                        0x009e67    0x1  Code  Gb  stm8s_it.o [1]
+TIM2_ARRPreloadConfig   0x009d6c    0xe  Code  Gb  stm8s_tim2.o [1]
 TIM2_CAP_COM_IRQHandler
-                        0x009f29    0x1  Code  Gb  stm8s_it.o [1]
-TIM2_Cmd                0x009e2a    0xe  Code  Gb  stm8s_tim2.o [1]
-TIM2_DeInit             0x009731   0x59  Code  Gb  stm8s_tim2.o [1]
-TIM2_OC1Init            0x009ab2   0x31  Code  Gb  stm8s_tim2.o [1]
-TIM2_OC1PreloadConfig   0x009e46    0xe  Code  Gb  stm8s_tim2.o [1]
-TIM2_OC2Init            0x009ae3   0x31  Code  Gb  stm8s_tim2.o [1]
-TIM2_OC2PreloadConfig   0x009e54    0xe  Code  Gb  stm8s_tim2.o [1]
-TIM2_OC3Init            0x009b14   0x31  Code  Gb  stm8s_tim2.o [1]
-TIM2_OC3PreloadConfig   0x009e62    0xe  Code  Gb  stm8s_tim2.o [1]
-TIM2_SetCompare1        0x009eaf    0x9  Code  Gb  stm8s_tim2.o [1]
-TIM2_SetCompare2        0x009eb8    0x9  Code  Gb  stm8s_tim2.o [1]
-TIM2_SetCompare3        0x009ec1    0x9  Code  Gb  stm8s_tim2.o [1]
-TIM2_TimeBaseInit       0x009df0   0x10  Code  Gb  stm8s_tim2.o [1]
+                        0x009e6a    0x1  Code  Gb  stm8s_it.o [1]
+TIM2_Cmd                0x009d5e    0xe  Code  Gb  stm8s_tim2.o [1]
+TIM2_DeInit             0x00968e   0x59  Code  Gb  stm8s_tim2.o [1]
+TIM2_OC1Init            0x009a0f   0x31  Code  Gb  stm8s_tim2.o [1]
+TIM2_OC1PreloadConfig   0x009d7a    0xe  Code  Gb  stm8s_tim2.o [1]
+TIM2_OC2Init            0x009a40   0x31  Code  Gb  stm8s_tim2.o [1]
+TIM2_OC2PreloadConfig   0x009d88    0xe  Code  Gb  stm8s_tim2.o [1]
+TIM2_OC3Init            0x009a71   0x31  Code  Gb  stm8s_tim2.o [1]
+TIM2_OC3PreloadConfig   0x009d96    0xe  Code  Gb  stm8s_tim2.o [1]
+TIM2_SetCompare1        0x009df0    0x9  Code  Gb  stm8s_tim2.o [1]
+TIM2_SetCompare2        0x009df9    0x9  Code  Gb  stm8s_tim2.o [1]
+TIM2_SetCompare3        0x009e02    0x9  Code  Gb  stm8s_tim2.o [1]
+TIM2_TimeBaseInit       0x009d24   0x10  Code  Gb  stm8s_tim2.o [1]
 TIM2_UPD_OVF_BRK_IRQHandler
-                        0x009f28    0x1  Code  Gb  stm8s_it.o [1]
-TIM4_ARRPreloadConfig   0x009e7e    0xe  Code  Gb  stm8s_tim4.o [1]
-TIM4_ClearFlag          0x009eca    0x9  Code  Gb  stm8s_tim4.o [1]
-TIM4_ClearITPendingBit  0x009ed3    0x9  Code  Gb  stm8s_tim4.o [1]
-TIM4_Cmd                0x009e70    0xe  Code  Gb  stm8s_tim4.o [1]
-TIM4_DeInit             0x009d71   0x19  Code  Gb  stm8s_tim4.o [1]
-TIM4_ITConfig           0x009d3e   0x1a  Code  Gb  stm8s_tim4.o [1]
-TIM4_TimeBaseInit       0x009e99    0xd  Code  Gb  stm8s_tim4.o [1]
+                        0x009e69    0x1  Code  Gb  stm8s_it.o [1]
+TIM4_ARRPreloadConfig   0x009db2    0xe  Code  Gb  stm8s_tim4.o [1]
+TIM4_ClearFlag          0x009e0b    0x9  Code  Gb  stm8s_tim4.o [1]
+TIM4_ClearITPendingBit  0x009e14    0x9  Code  Gb  stm8s_tim4.o [1]
+TIM4_Cmd                0x009da4    0xe  Code  Gb  stm8s_tim4.o [1]
+TIM4_DeInit             0x009ca5   0x19  Code  Gb  stm8s_tim4.o [1]
+TIM4_ITConfig           0x009c72   0x1a  Code  Gb  stm8s_tim4.o [1]
+TIM4_TimeBaseInit       0x009dda    0xd  Code  Gb  stm8s_tim4.o [1]
 TIM4_UPD_OVF_IRQHandler
-                        0x009958   0x49  Code  Gb  stm8s_it.o [1]
-TLI_IRQHandler          0x009f1d    0x1  Code  Gb  stm8s_it.o [1]
-TRAP_IRQHandler         0x009f1c    0x1  Code  Gb  stm8s_it.o [1]
+                        0x0098b5   0x49  Code  Gb  stm8s_it.o [1]
+TLI_IRQHandler          0x009e5e    0x1  Code  Gb  stm8s_it.o [1]
+TRAP_IRQHandler         0x009e5d    0x1  Code  Gb  stm8s_it.o [1]
 Tasks                   0x000015   0x14  Data  Gb  system_task_handling.o [1]
-UART1_RX_IRQHandler     0x009f2b    0x1  Code  Gb  stm8s_it.o [1]
-UART1_TX_IRQHandler     0x009f2a    0x1  Code  Gb  stm8s_it.o [1]
-__DebugBreak            0x009f2e    0x1  Code  Gb  __dbg_break.o [3]
-__exit                  0x009db6   0x14  Code  Gb  __dbg_xxexit.o [3]
-__iar_copy_init2        0x009bf3         Code  Gb  init_small.o [4]
-__iar_data_init2        0x009da2   0x14  Code  Gb  init.o [4]
-__iar_program_start     0x009ddd         Code  Gb  cstartup.o [4]
+UART1_RX_IRQHandler     0x009e6c    0x1  Code  Gb  stm8s_it.o [1]
+UART1_TX_IRQHandler     0x009e6b    0x1  Code  Gb  stm8s_it.o [1]
+__DebugBreak            0x009e6f    0x1  Code  Gb  __dbg_break.o [3]
+__exit                  0x009cea   0x14  Code  Gb  __dbg_xxexit.o [3]
+__iar_copy_init2        0x009b27         Code  Gb  init_small.o [4]
+__iar_data_init2        0x009cd6   0x14  Code  Gb  init.o [4]
+__iar_program_start     0x009d11         Code  Gb  cstartup.o [4]
 __iar_unhandled_exception
-                        0x009f17         Code  Gb  unhandled_exception.o [4]
-__iar_zero_init2        0x009d20         Code  Gb  init_small.o [4]
+                        0x009e58         Code  Gb  unhandled_exception.o [4]
+__iar_zero_init2        0x009c54         Code  Gb  init_small.o [4]
 __intvec                0x008000         Data  Gb  interrupt.o [4]
-__low_level_init        0x009f11    0x3  Code  Gb  low_level_init.o [4]
-_exit                   0x009f04         Code  Gb  cexit.o [4]
-_interrupt_1            0x009f1c         Code  Gb  stm8s_it.o [1]
-_interrupt_12           0x009f25         Code  Gb  stm8s_it.o [1]
-_interrupt_13           0x009f26         Code  Gb  stm8s_it.o [1]
-_interrupt_14           0x009f27         Code  Gb  stm8s_it.o [1]
-_interrupt_15           0x009f28         Code  Gb  stm8s_it.o [1]
-_interrupt_16           0x009f29         Code  Gb  stm8s_it.o [1]
-_interrupt_19           0x009f2a         Code  Gb  stm8s_it.o [1]
-_interrupt_2            0x009f1d         Code  Gb  stm8s_it.o [1]
-_interrupt_20           0x009f2b         Code  Gb  stm8s_it.o [1]
-_interrupt_21           0x009f2c         Code  Gb  stm8s_it.o [1]
-_interrupt_24           0x009c68         Code  Gb  stm8s_it.o [1]
-_interrupt_25           0x009958         Code  Gb  stm8s_it.o [1]
-_interrupt_26           0x009f2d         Code  Gb  stm8s_it.o [1]
-_interrupt_3            0x009f1e         Code  Gb  stm8s_it.o [1]
-_interrupt_4            0x009f1f         Code  Gb  stm8s_it.o [1]
-_interrupt_5            0x009f20         Code  Gb  stm8s_it.o [1]
-_interrupt_6            0x009f21         Code  Gb  stm8s_it.o [1]
-_interrupt_7            0x009f22         Code  Gb  stm8s_it.o [1]
-_interrupt_8            0x009f23         Code  Gb  stm8s_it.o [1]
-_interrupt_9            0x009f24         Code  Gb  stm8s_it.o [1]
-assert_failed           0x009f1a    0x2  Code  Gb  main.o [1]
-configTask              0x0093cb   0x8d  Code  Gb  system_task_handling.o [1]
-exit                    0x009f14    0x3  Code  Gb  exit.o [4]
+__low_level_init        0x009e52    0x3  Code  Gb  low_level_init.o [4]
+_exit                   0x009e45         Code  Gb  cexit.o [4]
+_interrupt_1            0x009e5d         Code  Gb  stm8s_it.o [1]
+_interrupt_12           0x009e66         Code  Gb  stm8s_it.o [1]
+_interrupt_13           0x009e67         Code  Gb  stm8s_it.o [1]
+_interrupt_14           0x009e68         Code  Gb  stm8s_it.o [1]
+_interrupt_15           0x009e69         Code  Gb  stm8s_it.o [1]
+_interrupt_16           0x009e6a         Code  Gb  stm8s_it.o [1]
+_interrupt_19           0x009e6b         Code  Gb  stm8s_it.o [1]
+_interrupt_2            0x009e5e         Code  Gb  stm8s_it.o [1]
+_interrupt_20           0x009e6c         Code  Gb  stm8s_it.o [1]
+_interrupt_21           0x009e6d         Code  Gb  stm8s_it.o [1]
+_interrupt_24           0x009b9c         Code  Gb  stm8s_it.o [1]
+_interrupt_25           0x0098b5         Code  Gb  stm8s_it.o [1]
+_interrupt_26           0x009e6e         Code  Gb  stm8s_it.o [1]
+_interrupt_3            0x009e5f         Code  Gb  stm8s_it.o [1]
+_interrupt_4            0x009e60         Code  Gb  stm8s_it.o [1]
+_interrupt_5            0x009e61         Code  Gb  stm8s_it.o [1]
+_interrupt_6            0x009e62         Code  Gb  stm8s_it.o [1]
+_interrupt_7            0x009e63         Code  Gb  stm8s_it.o [1]
+_interrupt_8            0x009e64         Code  Gb  stm8s_it.o [1]
+_interrupt_9            0x009e65         Code  Gb  stm8s_it.o [1]
+assert_failed           0x009e5b    0x2  Code  Gb  main.o [1]
+configTask              0x009328   0x8d  Code  Gb  system_task_handling.o [1]
+exit                    0x009e55    0x3  Code  Gb  exit.o [4]
 g_key                   0x000029    0x8  Data  Gb  key.o [1]
-main                    0x00982b   0x4d  Code  Gb  main.o [1]
-startTask               0x00917a   0x99  Code  Gb  system_task_handling.o [1]
-taskA                   0x008a44  0x116  Code  Gb  tasks.o [1]
-taskB                   0x008080  0x38c  Code  Gb  tasks.o [1]
+main                    0x009788   0x4d  Code  Gb  main.o [1]
+startTask               0x0090d7   0x99  Code  Gb  system_task_handling.o [1]
+taskA                   0x008a5d  0x116  Code  Gb  tasks.o [1]
+taskB                   0x008080  0x38f  Code  Gb  tasks.o [1]
 taskB{14}{15}::Acc_z_Old
-                        0x000087    0x2  Data  Lc  tasks.o [1]
-taskB{14}{15}::Count    0x000094    0x1  Data  Lc  tasks.o [1]
+                        0x000085    0x2  Data  Lc  tasks.o [1]
+taskB{14}{15}::Count    0x000092    0x1  Data  Lc  tasks.o [1]
 taskB{1}{2}::AD_Channel_Count
-                        0x00008f    0x1  Data  Lc  tasks.o [1]
-taskB{1}{2}::AvgCnt1    0x000090    0x1  Data  Lc  tasks.o [1]
-taskB{1}{2}::AvgCnt2    0x000091    0x1  Data  Lc  tasks.o [1]
-taskB{1}{2}::AvgCnt3    0x000092    0x1  Data  Lc  tasks.o [1]
+                        0x00008d    0x1  Data  Lc  tasks.o [1]
+taskB{1}{2}::AvgCnt1    0x00008e    0x1  Data  Lc  tasks.o [1]
+taskB{1}{2}::AvgCnt2    0x00008f    0x1  Data  Lc  tasks.o [1]
+taskB{1}{2}::AvgCnt3    0x000090    0x1  Data  Lc  tasks.o [1]
 taskB{1}{2}::Bat_Soc_New
-                        0x000093    0x1  Data  Lc  tasks.o [1]
-taskHandler             0x008c64   0xf5  Code  Gb  system_task_handling.o [1]
+                        0x000091    0x1  Data  Lc  tasks.o [1]
+taskHandler             0x008c7d   0xf5  Code  Gb  system_task_handling.o [1]
 
 
 [1] = C:\Users\hero\Desktop\Taillight_Code\stm8_prj\code_iar\Debug\Obj
@@ -681,9 +675,9 @@ taskHandler             0x008c64   0xf5  Code  Gb  system_task_handling.o [1]
 [3] = dbgstm8smd.a
 [4] = dlstm8smn.a
 
-  7 756 bytes of readonly  code memory
+  7 565 bytes of readonly  code memory
     227 bytes of readonly  data memory
-    405 bytes of readwrite data memory
+    403 bytes of readwrite data memory
 
 Errors: none
 Warnings: none

Різницю між файлами не показано, бо вона завелика
+ 2 - 2
settings/tail_light_stm8.dbgdt


+ 6 - 8
settings/tail_light_stm8.dnx

@@ -49,7 +49,7 @@
         <MultiCoreRunAll>1</MultiCoreRunAll>
     </Simulator>
     <DebugChecksum>
-        <Checksum>1227245323</Checksum>
+        <Checksum>2251741789</Checksum>
     </DebugChecksum>
     <RecentFlashDownload>
         <Path>C:\Users\hero\Desktop\Taillight_Code\stm8_prj\Code\Debug\Exe\tail_light_stm8.out</Path>
@@ -68,19 +68,17 @@
         <GraphEnabled>0</GraphEnabled>
         <ShowTimeLog>1</ShowTimeLog>
     </DataSample>
+    <TermIOLog>
+        <LoggingEnabled>_ 0</LoggingEnabled>
+        <LogFile>_ ""</LogFile>
+    </TermIOLog>
     <LogFile>
         <LoggingEnabled>_ 0</LoggingEnabled>
         <LogFile>_ ""</LogFile>
         <Category>_ 0</Category>
     </LogFile>
-    <TermIOLog>
-        <LoggingEnabled>_ 0</LoggingEnabled>
-        <LogFile>_ ""</LogFile>
-    </TermIOLog>
     <Breakpoints>
-        <Bp0>_ "STD_CODE" "{$PROJ_DIR$\usr\src\tasks.c}.453.5" 1 0 0 0 "" 0 ""</Bp0>
-        <Bp1>_ "STD_CODE" "{$PROJ_DIR$\usr\src\tasks.c}.402.5" 1 0 0 0 "" 0 ""</Bp1>
-        <Count>2</Count>
+        <Count>0</Count>
     </Breakpoints>
     <Aliases>
         <A0>_ "C:\Users\hero\Desktop\Taillight_Code\stm8_prj\Code\usr\src\main.c" ""</A0>

Різницю між файлами не показано, бо вона завелика
+ 3 - 4
settings/tail_light_stm8.wsdt


Різницю між файлами не показано, бо вона завелика
+ 385 - 385
tail_light_stm8.dep


+ 2 - 3
usr/inc/led.h

@@ -11,7 +11,7 @@
 //全局变量
 extern uint16_t Light_Mode1_PeriodCnt, Light_Mode2_PeriodCnt, Light_Mode3_PeriodCnt, Light_Mode4_PeriodCnt, Light_ModeBreak_PeriodCnt;
 extern uint16_t Light_Mode1_Count, Light_Mode2_Count;
-extern uint16_t LedSoc_ModeChg_PeriodCnt, LedSoc_ModeDischg_PeriodCnt;
+extern uint16_t LedSoc_PeriodCnt;
 extern uint16_t BrightlessLevel;
 
 //全局函数
@@ -23,7 +23,6 @@ extern void Light_DisplayMode3(void); //
 extern void Light_DisplayMode4(void); //照明灯模式4
 extern void Light_DisplayBreak(uint8_t* Break); //刹车灯模式
 extern void LedChg_SetColor(uint8_t Red, uint8_t Green, uint8_t Blue); //设置电量指示灯颜色,RGB调色范围0-255
-extern void LedChg_ChgMode(uint8_t SOC); //充电指示灯充电模式
-extern void LedChg_DischgMode(uint8_t SOC); //充电指示灯放电模式
+extern void Led_BatSoc_Display(uint8_t Mode, uint8_t SOC); //电量指示灯显示
 
 #endif

+ 31 - 71
usr/src/led.c

@@ -7,8 +7,7 @@ uint16_t Light_Mode4_PeriodCnt = 0;
 uint16_t Light_Mode1_Count = 0;
 uint16_t Light_Mode2_Count = 0;
 uint16_t Light_ModeBreak_PeriodCnt = 0;
-uint16_t LedSoc_ModeChg_PeriodCnt = 0;
-uint16_t LedSoc_ModeDischg_PeriodCnt = 0;
+uint16_t LedSoc_PeriodCnt = 0;
 uint16_t BrightlessLevel = BrightLessLevel_Norm;
 
 /*
@@ -18,19 +17,7 @@ uint16_t BrightlessLevel = BrightLessLevel_Norm;
 */
 void Light_SetBrightless(uint16_t Level)
 {
-  //设置亮度低于10,灭灯
-  if(Level <= 10)
-  {
-    TIM1_SetCompare1(0);
-  }
-  else if(Level >= 1000)
-  {
-    TIM1_SetCompare1(999);
-  }	
-  else
-  {
-    TIM1_SetCompare1(Level);
-  }	  
+  TIM1_SetCompare1(Level);	  
 }
 
 /*
@@ -188,78 +175,51 @@ void LedChg_Off(void)
 }
 
 /*
-电量指示灯充电模式
+电量指示灯
 函数运行周期100ms
+Mode=0: 放电模式,Mode=1:充电模式
 */
-void LedChg_ChgMode(uint8_t SOC)
+void Led_BatSoc_Display(uint8_t Mode, uint8_t SOC)
 {
-  if(SOC >= 100)
+  uint8_t OnCnt = 0, Peroid = 0;
+  
+  if((Mode == 1) && (SOC >= 100)) //充电状态且电量100%时,绿灯常亮
   {
-    LedSoc_ModeChg_PeriodCnt = 0;
-    LedChg_SetColor(0, 250, 0);
+    LedSoc_PeriodCnt = 0;
+    LedChg_SetColor(0, 0xFA, 0);
   }
-  else
+  else //充电状态电量低于100%,亮1s灭1s;放电状态电量低于10%快闪,电量高于10%慢闪
   {
-    LedSoc_ModeChg_PeriodCnt++;
-    if(LedSoc_ModeChg_PeriodCnt <= 10)
-    {
-      if(SOC <= 10) LedChg_SetColor(250, 0, 0);
-      else if(SOC <= 20) LedChg_SetColor(250, 150, 0);
-      else if(SOC <= 40) LedChg_SetColor(250, 250, 0);
-      else if(SOC <= 60) LedChg_SetColor(0, 250, 250);
-      else if(SOC <= 80) LedChg_SetColor(0, 250, 150);
-      else LedChg_SetColor(0, 250, 0);
-    }
-    else if(LedSoc_ModeChg_PeriodCnt <= 20)
-    {
-      LedChg_SetColor(0, 0, 0);
-    }
+    if(Mode == 1) {OnCnt = 10;Peroid = 20;}
     else
     {
-      LedSoc_ModeChg_PeriodCnt = 0;
+      if(SOC <= 10) 
+      {
+        OnCnt = 2;
+        Peroid = 4;
+      }
+      else 
+      {
+        OnCnt = 2;
+        Peroid = 50;
+      }
     }
-  }
-}
-
-/*
-电量指示灯放电模式
-函数运行周期100ms
-*/
-void LedChg_DischgMode(uint8_t SOC)
-{
-  LedSoc_ModeDischg_PeriodCnt++;
-  if(SOC <= 10)
-  {
-    if(LedSoc_ModeDischg_PeriodCnt <= 2)
+    LedSoc_PeriodCnt++;
+    if(LedSoc_PeriodCnt <= OnCnt)
     {
-      LedChg_SetColor(250, 0, 0);
+      if(SOC <= 10) LedChg_SetColor(0xFA, 0, 0);
+      else if(SOC <= 40) LedChg_SetColor(0xFA, 0xA0, 0);
+      else if(SOC <= 80) LedChg_SetColor(0, 0xFA, 0xFA);
+      else LedChg_SetColor(0, 0xFA, 0);
     }
-    else if(LedSoc_ModeDischg_PeriodCnt <= 4)
+    else if(LedSoc_PeriodCnt <= Peroid)
     {
       LedChg_SetColor(0, 0, 0);
     }
     else
     {
-      LedSoc_ModeDischg_PeriodCnt = 0;
-    }		    
-  }
-  else
-  {
-    if(LedSoc_ModeDischg_PeriodCnt <= 2)
-    {
-      if(SOC <= 20) LedChg_SetColor(250, 150, 0);
-      else if(SOC <= 40) LedChg_SetColor(250, 250, 0);
-      else if(SOC <= 60) LedChg_SetColor(0, 250, 250);
-      else if(SOC <= 80) LedChg_SetColor(0, 250, 150);
-      else LedChg_SetColor(0, 250, 0);
-    }
-    else if(LedSoc_ModeDischg_PeriodCnt <= 50)
-    {
-      LedChg_SetColor(0, 0, 0);
-    }
-    else
-    {
-      LedSoc_ModeDischg_PeriodCnt = 0;
+      LedSoc_PeriodCnt = 0;
     }
   }
 }
+

+ 37 - 40
usr/src/tasks.c

@@ -80,10 +80,6 @@ void Led_ModeProcess(uint8_t Mode, uint8_t* Break, uint16_t LightSensor, uint8_t
     {
       case 0:
       {
-        Light_Mode1_PeriodCnt = 0;
-        Light_Mode2_PeriodCnt = 0;
-        Light_Mode3_PeriodCnt = 0;
-        Light_Mode4_PeriodCnt = 0;
         break;
       }
       case 1:
@@ -130,7 +126,6 @@ void Led_ModeProcess(uint8_t Mode, uint8_t* Break, uint16_t LightSensor, uint8_t
   }
 }
 
-uint8_t FirstFlag = 0;
 /// @brief 任务1
 /// @param 
 void taskA(void)//1ms
@@ -288,10 +283,7 @@ void taskB(void)//100ms
   #if 1
   if(OnFlag == 1)
   {
-    if(Chg_Flag == 0)
-      LedChg_DischgMode(Bat_Soc);
-    else
-      LedChg_ChgMode(Bat_Soc);
+    Led_BatSoc_Display(Chg_Flag, Bat_Soc);
   }  
   #else
     LedChg_SetColor(50, 120, 250);
@@ -331,14 +323,17 @@ void taskB(void)//100ms
           if(Global_Timing_Counter - ShakeTimeCnt > 30000)
           {
             //关机模式,唤醒进入休眠前模式
-            Power_Off(0x0F);//按键唤醒,充电唤醒,震动唤醒 ,仅暗光唤醒           
+            Power_Off(0x07);//按键唤醒,充电唤醒,震动唤醒          
             //唤醒后计时清零
             ShakeTimeCnt = Global_Timing_Counter;
             AutoOffTimeCnt = Global_Timing_Counter;
           }
         }
         else
+        {
           ShakeTimeCnt = Global_Timing_Counter;
+          AutoOffTimeCnt = Global_Timing_Counter;
+        }
         //其它模式超过30min自动关机进入休眠
         #if 0
         if(Global_Timing_Counter - AutoOffTimeCnt > 1800000)
@@ -376,7 +371,7 @@ void taskB(void)//100ms
 }
 
 /// @brief 低功耗管理
-/// @param 唤醒模式,Bit0-按键唤醒,Bit1-充电唤醒,Bit2-震动唤醒,Bit3-暗光唤醒
+/// @param 唤醒模式,Bit0-按键唤醒,Bit1-充电唤醒,Bit2-震动唤醒
 void Power_Off(uint8_t WakeMode)
 {
   //运行标志清零
@@ -384,28 +379,42 @@ void Power_Off(uint8_t WakeMode)
   //关灯
   Light_SetBrightless(0);
   //电量指示灯闪烁三次
-  LedChg_SetColor(0, 0, 250);
-  Delay_ms(400);
-  LedChg_SetColor(0, 0, 0);
-  Delay_ms(400);
-  LedChg_SetColor(0, 0, 250);
-  Delay_ms(400);
-  LedChg_SetColor(0, 0, 0);
-  Delay_ms(400);
-  LedChg_SetColor(0, 0, 250);
-  Delay_ms(400);
-  LedChg_SetColor(0, 0, 0);
+  for(uint8_t i = 0; i <= 5; i++)
+  {
+    if(i%2)
+      LedChg_SetColor(0, 0, 250);
+    else
+      LedChg_SetColor(0, 0, 0);
+    Delay_ms(400);
+  }
   //进入低功耗前处理
   do
   {
+    uint8_t ENA_XYZ = 0;
     //震动中断唤醒
     if(((WakeMode >> 2) & 0x01) == 1)
     {
       SC7A20_Write_Byte(SC7A20_REG_CTRL_1,0x4F); //50Hz,低功耗模式
       SC7A20_Write_Byte(SC7A20_REG_CTRL_3,0x40); //AOI1中断在INT1
-      SC7A20_Write_Byte(SC7A20_REG_CTRL_INT1,0x7C);  //或中断,6D检测,YZ使能
-      SC7A20_Write_Byte(SC7A20_REG_TH_INT1,0x10);    //中断阈值16*16=256mg
-      SC7A20_Write_Byte(SC7A20_REG_DELAY_INT1,0x0A); //中断1最小持续时间,ODR=50Hz,10*20ms=200ms
+      ENA_XYZ = 0x40;
+      if((AccAvg_x < 200) && (AccAvg_x > -200))  //X轴水平,打开X轴中断
+        ENA_XYZ |= 0x03;
+      if((AccAvg_y < 200) && (AccAvg_y > -200))  //Y轴水平,打开Y轴中断
+        ENA_XYZ |= 0x0C;
+      if((AccAvg_z < 200) && (AccAvg_z > -200))  //Z轴水平,打开Z轴中断
+        ENA_XYZ |= 0x30;
+      if((ENA_XYZ & 0x3F) == 0x00) //XYZ都不水平,开启XYZ中断,并设置阈值为800
+      {
+        ENA_XYZ |= 0x7F;
+        SC7A20_Write_Byte(SC7A20_REG_CTRL_INT1,ENA_XYZ);  //或中断,6D检测,YZ使能
+        SC7A20_Write_Byte(SC7A20_REG_TH_INT1,0x32); //中断阈值1LSB=16mg
+      }
+      else
+      {
+        SC7A20_Write_Byte(SC7A20_REG_CTRL_INT1,ENA_XYZ);  //或中断,6D检测,YZ使能
+        SC7A20_Write_Byte(SC7A20_REG_TH_INT1,0x10); //中断阈值1LSB=16mg
+      }
+      SC7A20_Write_Byte(SC7A20_REG_DELAY_INT1,0x05);    //中断1最小持续时间,ODR = 50Hz,5 * 20ms = 100ms
     }
     else
     {
@@ -449,25 +458,13 @@ void Power_Off(uint8_t WakeMode)
     //唤醒重新初始化外设
     HW_Init();
     SC7A20_Init();
-    //暗光唤醒
-    if(((WakeMode >> 3) & 0x01) == 1)
-    {
-      AD_FinishFlag = 0;
-      ADC_CH_Init(4);
-      Delay_ms(200);
-      if(AD_FinishFlag == 1)
-      {
-        if(AD_Value > 600)
-          break;
-      }
-    }
-    else
-      break;
+    //唤醒后退出
+    break;
   }while(1);
   //运行标志置位
   OnFlag = 1;
   //显示计时清零
   Light_Mode1_PeriodCnt = 0; Light_Mode2_PeriodCnt = 0; Light_Mode3_PeriodCnt = 0; Light_Mode4_PeriodCnt = 0; Light_ModeBreak_PeriodCnt = 0;
   Light_Mode1_Count = 0; Light_Mode2_Count = 0;
-  LedSoc_ModeChg_PeriodCnt = 0; LedSoc_ModeDischg_PeriodCnt = 0;
+  LedSoc_PeriodCnt = 0;
 }

Деякі файли не було показано, через те що забагато файлів було змінено