From e70d7b5d160e9b308703cd70eca7b64f4adba30a Mon Sep 17 00:00:00 2001 From: timecop Date: Sat, 14 Jul 2012 07:43:18 +0000 Subject: [PATCH] added softi2c source file (oops) changed gpio speeds to 2mhz from 50, nothing is toggling at 50mhz here. reduce ringing/noise. git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@181 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61 --- Makefile | 1 + baseflight.uvproj | 15 + obj/baseflight.hex | 1068 +++++++++++++++++++++---------------------- src/drv_bmp085.c | 2 +- src/drv_hcsr04.c | 2 +- src/drv_i2c.c | 6 +- src/drv_i2c_soft.c | 216 +++++++++ src/drv_pwm.c | 10 +- src/drv_pwm_fy90q.c | 6 +- src/drv_system.c | 2 +- src/drv_uart.c | 2 +- 11 files changed, 781 insertions(+), 549 deletions(-) create mode 100644 src/drv_i2c_soft.c diff --git a/Makefile b/Makefile index 77ee3a34c..ed7bf3ab5 100644 --- a/Makefile +++ b/Makefile @@ -49,6 +49,7 @@ COMMON_SRC = startup_stm32f10x_md_gcc.S \ spektrum.c \ telemetry.c \ drv_i2c.c \ + drv_i2c_soft.c \ drv_system.c \ drv_uart.c \ $(CMSIS_SRC) \ diff --git a/baseflight.uvproj b/baseflight.uvproj index 133a72d58..1f33e21f8 100755 --- a/baseflight.uvproj +++ b/baseflight.uvproj @@ -614,6 +614,11 @@ 1 .\src\drv_hcsr04.c + + drv_i2c_soft.c + 1 + .\src\drv_i2c_soft.c + @@ -1389,6 +1394,11 @@ 1 .\src\drv_hcsr04.c + + drv_i2c_soft.c + 1 + .\src\drv_i2c_soft.c + @@ -2344,6 +2354,11 @@ 1 .\src\drv_hcsr04.c + + drv_i2c_soft.c + 1 + .\src\drv_i2c_soft.c + diff --git a/obj/baseflight.hex b/obj/baseflight.hex index 41a5ea0ea..f7e3d363e 100644 --- a/obj/baseflight.hex +++ b/obj/baseflight.hex @@ -2,17 +2,17 @@ :10000000E819002081740008C1740008C374000856 :10001000C5740008C7740008C97400080000000017 :10002000000000000000000000000000CB74000889 -:10003000CD74000800000000CF740008115C0008B7 +:10003000CD74000800000000CF740008155C0008B3 :10004000D3740008D3740008D3740008D374000874 -:10005000D3740008D3740008D37400086B640008DC +:10005000D3740008D3740008D37400086F640008D8 :10006000D3740008D3740008D3740008D374000854 -:10007000D3740008D37400082B5E0008D374000802 +:10007000D3740008D37400082F5E0008D3740008FE :10008000D3740008D3740008D3740008D374000834 -:10009000D3740008D3740008D37400086D6400089A +:10009000D3740008D3740008D37400087164000896 :1000A000D3740008D3740008D3740008D374000814 -:1000B00097570008A9570008D3740008A9530008EF -:1000C00087510008AD530008AB530008D3740008F3 -:1000D000D3740008D374000857600008D374000874 +:1000B0009F570008B1570008D3740008B1530008D7 +:1000C0008F510008B5530008B3530008D3740008DB +:1000D000D3740008D37400085B600008D374000870 :1000E000FD4C0008D3740008D3740008DFF80CD06E :1000F00007F02EFF0048004709150008E819002006 :1001000070B51546B0FBF5F60446A84203D3304659 @@ -21,63 +21,63 @@ :100130000025002804DA2D212170611C404200E0D6 :100140002146FFF7DDFF0570204670BD70B50546FE :100150000C46086807F03FFA024621682868BDE8A7 -:10016000704007F040BA10B5EEA005F02BFF01205B -:1001700000F0BDFDF2A005F025FF0A2005F070FD9E -:10018000BDE81040002005F011BE10B5F0A005F04C -:1001900019FF002000F07FFDF0A005F013FF0A20FA -:1001A00005F05EFDBDE81040002005F0FFBD10B574 -:1001B0000446EEA005F006FF2021F24807F0E0F922 +:10016000704007F040BA10B5EEA005F02DFF012059 +:1001700000F0BDFDF2A005F027FF0A2005F072FD9A +:10018000BDE81040002005F013BE10B5F0A005F04A +:100190001BFF002000F07FFDF0A005F015FF0A20F6 +:1001A00005F060FDBDE81040002005F001BE10B56F +:1001B0000446EEA005F008FF2021F24807F0E0F920 :1001C000F14800210160F14801702046BDE810406F :1001D000DBE72DE9F047064607F0FDF9054600F09C :1001E00083FEDFF8A49307464FF0010809F14C099C :1001F00055B12A46E6A1304607F0F5F9D8B1307876 -:1002000000272D2827D029E0E3A005F0DBFE0024FD +:1002000000272D2827D029E0E3A005F0DDFE0024FB :1002100045464E4656F8241059B105FA04F03842C6 -:1002200002D0084605F0CEFE202005F0BEFE641C7C -:10023000F0E7C2A01FE0DDA005F0C4FE00244D469B -:1002400055F824000028F4D005F0BCFE202005F06D -:10025000ACFE641CF4E70127761C6D1E5FF0000401 +:1002200002D0084605F0D0FE202005F0C0FE641C78 +:10023000F0E7C2A01FE0DDA005F0C6FE00244D4699 +:1002400055F824000028F4D005F0BEFE202005F06B +:10025000AEFE641CF4E70127761C6D1E5FF00004FF :1002600059F8241031B12A46304607F0BCF930B1B4 -:10027000641CF5E7D3A0BDE8F04705F0A3BE08FA7B +:10027000641CF5E7D3A0BDE8F04705F0A5BE08FA79 :1002800004F01FB100F02BFED5A002E000F02AFD23 -:10029000D6A005F097FE59F8240005F093FEC8E7B4 -:1002A00070B50024D4A005F08DFED94D04EB4406B2 -:1002B00055F8260005F086FE092005F076FE05EBD0 -:1002C0008600406805F07EFE9CA005F07BFE00BF26 -:1002D00005F055FE0028FBD0641C0A2CE6D370BD47 +:10029000D6A005F099FE59F8240005F095FEC8E7B0 +:1002A00070B50024D4A005F08FFED94D04EB4406B0 +:1002B00055F8260005F088FE092005F078FE05EBCC +:1002C0008600406805F080FE9CA005F07DFE00BF22 +:1002D00005F057FE0028FBD0641C0A2CE6D370BD45 :1002E0003EB5054607F077F908281BD10024285DA4 :1002F00007F004F92855641C082CF8D30024C548DD :10030000295D07F05FF928B12819295D401C07F025 :1003100059F908B1C0A01AE0641C082CEFD3284694 -:1003200000F01AFCC4A005F04DFEBA4BC84A0020EC +:1003200000F01AFCC4A005F04FFEBA4BC84A0020EA :10033000694615181C5C95F86B50401C08284C55F4 -:10034000F7D300220A54084605F03CFE7BA005F0D6 -:1003500039FE3EBD2DE9F041804607F03CF98A4D5B +:10034000F7D300220A54084605F03EFE7BA005F0D4 +:100350003BFE3EBD2DE9F041804607F03CF98A4D59 :10036000BB4F10F0FF0605F1040512D0324688A1FC :10037000404607F038F9A8B15FF0000455F82410A2 :1003800009B33246404607F02EF908B3641CE4B2C4 -:10039000F4E7B0A005F016FE787805EB800050F881 -:1003A000040C1CE0AFA005F00DFE002455F824005D -:1003B00038B105F007FE202005F0F7FD641CE4B21B -:1003C000F4E75EA000E0ACA0BDE8F04105F0FABDA6 -:1003D000601C7870AEA005F0F5FD55F8240005F01E -:1003E000F1FDEEE77FB504460D4621790020052991 +:10039000F4E7B0A005F018FE787805EB800050F87F +:1003A000040C1CE0AFA005F00FFE002455F824005B +:1003B00038B105F009FE202005F0F9FD641CE4B217 +:1003C000F4E75EA000E0ACA0BDE8F04105F0FCBDA4 +:1003D000601C7870AEA005F0F7FD55F8240005F01C +:1003E000F3FDEEE77FB504460D462179002005298F :1003F00014D2DFE801F003060A0D1100A0680078AE :100400000CE0A06890F9000008E0A068008805E012 :10041000A068B0F9000001E0A06800680A226946FF -:10042000FFF780FE684605F0CDFD002D15D06EA0CB -:1004300005F0C8FD0A226946E068FFF773FE6846CA -:1004400005F0C0FD68A005F0BDFD0A2269462069DF -:10045000FFF768FE684605F0B5FD7FBD2DE9F04762 +:10042000FFF780FE684605F0CFFD002D15D06EA0C9 +:1004300005F0CAFD0A226946E068FFF773FE6846C8 +:1004400005F0C2FD68A005F0BFFD0A2269462069DB +:10045000FFF768FE684605F0B7FD7FBD2DE9F04760 :10046000814607F0B8F86A4C060004F1780425D0FC :10047000012E03D199F800002A281FD088A14846F0 :1004800007F08AF8002836D0401C07F0C5F88046EF :100490005FF0000505EB850704EB870654F827009D :1004A00007F099F8024654F82710484607F09BF8E1 :1004B00018B36D1C442DEDD37AA03BE181A005F06B -:1004C00081FD002505EB850004EB800754F8200032 -:1004D00005F078FD81A005F075FD31463846FFF73F -:1004E00081FF16A005F06EFD05F049FD0028FBD048 +:1004C00083FD002505EB850004EB800754F8200030 +:1004D00005F07AFD81A005F077FD31463846FFF73B +:1004E00081FF16A005F070FD05F04BFD0028FBD044 :1004F0006D1C442DE6D3BDE8F087F1E03031323396 :100500003435363738394142434445464748494AED :100510004B4C4D4E4F505152535455565758595AB3 @@ -113,50 +113,50 @@ :1006F00042451EDB3279052A0FD2DFE802F0030300 :1007000007070B00B26882F8008006E0B268A2F822 :10071000008002E0B268C2F8008054F8210005F0C1 -:1007200051FCADA005F04EFC3046BDE8F04700217D -:1007300058E6ACA0BDE8F04705F044BC2DE9FF4108 -:10074000B2A005F03FFC05F07DFA4FF47A71B0FBE2 -:10075000F1F00A226946FFF7E5FC684605F032FC35 -:10076000AEA005F02FFCB2480A2269460078FFF7D8 -:10077000D9FC684605F026FCAEA005F023FCB04885 -:100780000A2269460078FFF7CDFC684605F01AFC9E -:10079000ACA005F017FC00F097FB0646ADA005F0F5 -:1007A00011FC0024B04F012557F8240058B105FA78 -:1007B00004F1314201D005F005FC202005F0F5FBE5 +:1007200053FCADA005F050FC3046BDE8F047002179 +:1007300058E6ACA0BDE8F04705F046BC2DE9FF4106 +:10074000B2A005F041FC05F07FFA4FF47A71B0FBDE +:10075000F1F00A226946FFF7E5FC684605F034FC33 +:10076000AEA005F031FCB2480A2269460078FFF7D6 +:10077000D9FC684605F028FCAEA005F025FCB04881 +:100780000A2269460078FFF7CDFC684605F01CFC9C +:10079000ACA005F019FC00F097FB0646ADA005F0F3 +:1007A00013FC0024B04F012557F8240058B105FA76 +:1007B00004F1314201D005F007FC202005F0F7FBE1 :1007C000641CE4B2F0E7012000F06CFB50B1A7A07C -:1007D00005F0F8FBA749A4480978183050F8210023 -:1007E00005F0F0FBAFF2AC2005F0ECFBA2A005F0A9 -:1007F000E9FBA5480A2269460088FFF793FC684692 -:1008000005F0E0FBA1A005F0DDFB04F050FE0A229C -:100810006946FFF787FC684605F0D4FBAFF2E42099 -:1008200005F0D0FBBDE8FF819CA005F0CBBB2DE916 +:1007D00005F0FAFBA749A4480978183050F8210021 +:1007E00005F0F2FBAFF2AC2005F0EEFBA2A005F0A5 +:1007F000EBFBA5480A2269460088FFF793FC684690 +:1008000005F0E2FBA1A005F0DFFB04F054FE0A2294 +:100810006946FFF787FC684605F0D6FBAFF2E42097 +:1008200005F0D2FBBDE8FF819CA005F0CDBB2DE912 :10083000FF5FDFF8989299F8000038B9012189F834 -:100840000010A3A005F0BEFB00F0C3F8DFF818A26B -:10085000DFF8B4B2AAF1840A05F084FB00286ED058 -:1008600005F096FB092806D03F2804D0DAF80010DE +:100840000010A3A005F0C0FB00F0C3F8DFF818A269 +:10085000DFF8B4B2AAF1840A05F086FB00286ED056 +:1008600005F098FB092806D03F2804D0DAF80010DC :100870005446B1B34DE0A54F0024254607F1780852 :10088000DAF800600CE000BFDAF8002022B19E48E0 :10089000396806F0A8FE10B904B93C463D460C374D :1008A0004745F1D39CB150465F46016822682B68EA :1008B000525C5B5C9A420AD11AB17A54491C0160BD :1008C000F3E720220BF80120491CCAF80010DAF8DF -:1008D0000000574608B1AC4210D08DA005F072FB65 -:1008E00007E014E0206805F06DFB092005F05DFBD2 +:1008D0000000574608B1AC4210D08DA005F074FB63 +:1008E00007E014E0206805F06FFB092005F05FFBCE :1008F0000C34AC42F6D900F06CF800265C4638683F -:100900008642A9D2A05D05F050FB761CF7E70428CB +:100900008642A9D2A05D05F052FB761CF7E70428C9 :1009100010D00C2814D019B10A2815D00D2813D0E6 :100920007F283ED0202997D2202895D37E2893D89F :10093000B1B344E004B07448BDE8F05F37E446E08A -:1009400075A005F03FFB28E0AFF2104005F03AFB40 +:1009400075A005F041FB28E0AFF2104005F03CFB3C :10095000206800255E460BF800507248CDE9000B78 :100960000C230A226949029501A806F0CDFD070073 :1009700007D0386806F02FFE3044B968401C88471D -:1009800002E069A005F01EFB20215F4806F0F8FD9B +:1009800002E069A005F020FB20215F4806F0F8FD99 :10099000256099F80000002819D000F01AF85BE7EC :1009A0000BE00029FBD0491E0020CAF800100BF80C -:1009B000010066A005F006FB4EE72028EFD00BF8FB -:1009C0000100491CCAF8001005F0EFFA44E7BDE841 -:1009D000FF9F5FA005F0F6BA2073657420746F2046 +:1009B000010066A005F008FB4EE72028EFD00BF8F9 +:1009C0000100491CCAF8001005F0F1FA44E7BDE83F +:1009D000FF9F5FA005F0F8BA2073657420746F2044 :1009E000000000004552523A2056616C7565206146 :1009F000737369676E6D656E74206F7574206F66B2 :100A00002072616E67650D0A0000000053797374EF @@ -252,7 +252,7 @@ :100FA000494606F098FB394606F043FB3060394667 :100FB000A06806F096FB07462946606806F091FB9C :100FC000394606F036FB414606F033FB7060BDE85B -:100FD000F0872DE9F04F89B0002504F01EFECF4FB9 +:100FD000F0872DE9F04F89B0002504F020FECF4FB7 :100FE00006463C46B869301A06F095FDCE4ACF4B0E :100FF00006F093FC06F0FEFD0290A661DFF8308358 :1010000000240DF1180B07F1500A4FF07E5907F13B @@ -293,9 +293,9 @@ :101230004BFEFFF7CEFE01F028FF0025374C6F462E :101240004A34AA4604F1060B34F8150027F81500B5 :101250000120FFF727FE08B92BF815A06D1C032D00 -:10126000F2D304F0DAFC2D4E706100F01FFE04F0A2 -:10127000D4FC716940F28A25401AA84204D9324947 -:101280000888401C088005E004F0C7FC7169401A1A +:10126000F2D304F0DCFC2D4E706100F01FFE04F0A0 +:10127000D6FC716940F28A25401AA84204D9324945 +:101280000888401C088005E004F0C9FC7169401A18 :10129000A842F9D301F0F9FEA046B9461F4C00253B :1012A0000327383438F8151039F81500084402A916 :1012B00000B221F8150019493E3131F915200244D8 @@ -330,30 +330,30 @@ :1014800000DD114681804FF4FA7291FBF2F11944AC :101490004180F0BD64010020B8000020E404002079 :1014A00008040020D08AFFFF2DE9F041634800784E -:1014B00008B1022500E0002504F06FFB401B6049E5 +:1014B00008B1022500E0002504F070FB401B6049E4 :1014C000C6B2102008602C465E4F06E0B7F88410C4 -:1014D000204604F053FB641CE4B2B442F6D340F659 -:1014E000B83004F0BDFB2C464FF47A7505E0294670 -:1014F000204604F043FB641CE4B2B442F7D3BDE8D9 -:10150000F041042004F02FBC1CB504F0B4FBFFF73D +:1014D000204604F054FB641CE4B2B442F6D340F658 +:1014E000B83004F0BFFB2C464FF47A7505E029466E +:1014F000204604F044FB641CE4B2B442F7D3BDE8D8 +:10150000F041042004F031BC1CB504F0B6FBFFF739 :1015100039FB0020FFF7EBFB4A4CD4F8B40001F094 :10152000B6FF0720FFF7C6FC00F09AF80120FFF78E :10153000CEFC8DF801000820FFF7C9FC80F0010007 :101540008DF800003D48007800B101208DF80200C0 :10155000B4F88800ADF80400B4F88A00ADF80600CD -:10156000684604F0DBF908B1FFF79EFFDFF8DCA066 +:10156000684604F0DDF908B1FFF79EFFDFF8DCA064 :1015700035494FF01008CAF800103149C1F8008011 :101580000E1F4FF00809C6F800900025A6F1040BC5 :101590005FEAA147DBF8001081F01001CBF80010E2 :1015A000DBF8001081F00801CBF80010192004F0DE -:1015B00057FB27480760192004F052FB2448001FFE +:1015B00059FB27480760192004F054FB2448001FFA :1015C00007606D1CEDB20A2DE4D3C6F80090C6F892 :1015D000008001F0EDFAFFF79FFC0220FFF777FC97 :1015E00008B101F08FFB0820FFF771FC28B103F070 :1015F0001AF81849CAF8001013E00120FFF767FC39 :1016000078B14FF40070FFF762FC18B1D4F8A8006D :1016100002F01FFF4FF40060FFF759FC08B101F022 -:101620007EFE04F0FAFA0C4908600C494FF47A7017 +:101620007EFE04F0FCFA0C4908600C494FF47A7015 :10163000A1F8000000F07AFEFCE700002501002080 :10164000140C014008040020432200086C01002013 :10165000140801404F46000868010020FA010020EC @@ -365,11 +365,11 @@ :1016B00070BD022006E0032004E0042002E00620C2 :1016C00000E00820207070BD70B5E5484078002823 :1016D0001AD0E24DE24C68780834012807D004287B -:1016E00005D02188002004F049FA618807E02189AB -:1016F000002004F043FA6878042805D16189BDE828 -:101700007040012004F03ABA70BD2DE9F041D44E8A +:1016E00005D02188002004F04AFA618807E02189AA +:1016F000002004F044FA6878042805D16189BDE827 +:101700007040012004F03BBA70BD2DE9F041D44E89 :101710000025707800B102250024D24F08E000BFF8 -:10172000601937F81410C0B204F028FA641CE4B24F +:10172000601937F81410C0B204F029FA641CE4B24E :1017300030788442F4D3BDE8F0812DE9F04FC848F9 :10174000C94F9DB00078032823D9C848B7F90420B1 :10175000B0F904004142002801DD034600E00B46D9 @@ -469,11 +469,11 @@ :101D300004E0B0F8A400824200DD02464A80402060 :101D4000FFF7C5F8C0B1404C0125083CA078012838 :101D50000FD1E078C0B14FF47A7601281AD003F0A1 -:101D600071FF6168401AB04203D984F8038084F897 +:101D600073FF6168401AB04203D984F8038084F895 :101D70000280387900B1A570334F0120083F5546E5 :101D8000BAF900603A781BE02F494FF4FA60888076 -:101D9000E5700BE003F056FF6168401AB042E8D9E5 -:101DA00029494FF47F7088800220E07003F04AFFD9 +:101D9000E5700BE003F058FF6168401AB042E8D9E3 +:101DA00029494FF47F7088800220E07003F04CFFD7 :101DB0006060DEE735F91010B14200DD0E46401CD0 :101DC0009042F7D3002433E01C4BB3F88400B042B8 :101DD00005DA35F81410321A891A25F8141035F975 @@ -487,8 +487,8 @@ :101E5000D4010020D60500202DE9F74FDFF84CA46F :101E6000074690460025DFF840944FF48056AAF1CB :101E7000040B17E000240EE0D9F8001081F00801EF -:101E8000C9F80010CAF80060019803F0E9FECBF829 -:101E90000060641CE4B2BC42EED33C2003F0E0FEE0 +:101E8000C9F80010CAF80060019803F0EBFECBF827 +:101E90000060641CE4B2BC42EED33C2003F0E2FEDE :101EA0006D1CEDB24545E5D3BDE8FE8F2DE9F04F41 :101EB000FF4B002440F2DC50B3F90610FD4E8BB00E :101EC0004FF4FA75814201DA64200DE0F948B1F56A @@ -540,14 +540,14 @@ :1021A000091D0860717811B13F4908310860404647 :1021B000FEF78DFE20B1707800B1012002F0C5FB62 :1021C0004FF48070FEF783FE48B1E96BA86A88423D -:1021D00005D94CF250310844E86303F05FFFA96B66 +:1021D00005D94CF250310844E86303F061FFA96B64 :1021E000A86A884203D9717BF9B10120F07001F02F :1021F0009DFB1020FEF756FE68B1296CA86A884244 :1022000009D9A97A052906D33249084428642068E7 :1022100080F0100020603048C16800290ED00BB05B :102220002348BDE8F04F7C380847F770216881F0FB :102230000801216029490844A863D8E70BB0BDE82C -:10224000F08F10B51B4C204490F86B0003F0A0FCFD +:10224000F08F10B51B4C204490F86B0003F0A1FCFC :10225000A0F2EE2140F2DD52914201D3B4F87600B3 :1022600010BD2DE9F047124E0024983E124FB07970 :10227000DFF83C80401C603FB071A14607F140058B @@ -602,7 +602,7 @@ :10258000801EA8F83E000FE0B9F900208A4204DD61 :10259000B8F83C00801C05E011E082420EDAB8F881 :1025A0003C00801EA8F83C000120FEF774FB50465A -:1025B000FEF78DFC18B103F0D2FD00E0EE710420AF +:1025B000FEF78DFC18B103F0D4FD00E0EE710420AD :1025C000FEF785FC08B3E98B322071B1617861B107 :1025D0005A49B9F90620B1F878108A4205DD564902 :1025E0003231497909B96882EE8353493231097A27 @@ -645,7 +645,7 @@ :10283000267298F8080008B1A77214E0A67212E098 :1028400095F90800C11700EB917121F00301411ABD :1028500000F10100287239D001293FD0022945D06A -:1028600003294CD02E72FEF7DCFC03F0D6F9A862E7 +:1028600003294CD02E72FEF7DCFC03F0D8F9A862E5 :10287000E96A411AA981E8620420FEF713FB20B33C :10288000B4493231B1F9042002F145008A2843D815 :10289000607998B3B5480388B5480088181A00B223 @@ -698,21 +698,21 @@ :102B800000002041F00000200CFEFFFFC8000020E4 :102B9000F0D8FFFF80C1FFFF0328FFF43FAFFEF72F :102BA000CCFDFEF791FDBDE8FF5FFEF7AEBD000076 -:102BB0002DE9F84FFE490025A1F1100003F076FB46 -:102BC00008B1012506E0FA4802F03BFD10B90320E8 -:102BD00003F0C9F8F74EF84C4FF448784FF001096C +:102BB0002DE9F84FFE490025A1F1100003F078FB44 +:102BC00008B1012506E0FA4802F03FFD10B90320E4 +:102BD00003F0CBF8F74EF84C4FF448784FF001096A :102BE0004FF0020A002700BF94F8400030B10128DE :102BF00004D0022812D0032824D11BE0EC498DF820 :102C00000070ADF802801039684602F04FF808B144 :102C100086F8009094F84000012813D055B1E4499B -:102C2000A1F1100003F042FB86F800A094F84000E8 -:102C3000022812D0DE48103803F0D3FB10B1032075 +:102C2000A1F1100003F044FB86F800A094F84000E6 +:102C3000022812D0DE48103803F0D5FB10B1032073 :102C400030700AE0307840B994F8400010B184F850 :102C50004070C9E70120FEF732F902F097F810B989 -:102C60000220FEF72CF902F0ABF910B90420FEF7B0 +:102C60000220FEF72CF902F0AFF910B90420FEF7AC :102C700026F90120FEF716F918B1CD481038006882 :102C800080470220FEF70EF908B102F07FF8C8482D -:102C9000006880471DB9B4F8420002F0E8FCB4F9BE +:102C9000006880471DB9B4F8420002F0ECFCB4F9BA :102CA0003A20642092FBF0F100FB11200CB204F0FA :102CB00013FFC24904F015FD0546204604F00CFF41 :102CC000294604F0B6FCBE4904F00BFDBD4908607E @@ -720,7 +720,7 @@ :102CE00004FF0446284604F000FFB74904F0F9FC4D :102CF000B64904F02CFD214604F0F3FC04F031FF4A :102D000080B270BD70B500254FEA050401F03BFFAD -:102D100005440A2002F0A4FF641C202CF6D3C5F35E +:102D100005440A2002F0A6FF641C202CF6D3C5F35C :102D20004F10FFF7D7FFA44A022192F8693000BF85 :102D300003FB01F4844202D8491C0629F8D3A448B5 :102D4000017092F86A004843A249088070BD2DE9DD @@ -751,14 +751,14 @@ :102ED00061688847A16840488847BDE8104036E7E8 :102EE00010B54348334C0068E168884230D3E06055 :102EF000607870B3012836D002283BD0032827D150 -:102F000001F0E3FF2061608901F0BCFF206901F05E -:102F1000FBFF04F0E1FD374904F019FC04F054FE16 +:102F000001F0E6FF2061608901F0BFFF206901F058 +:102F1000FEFF04F0E1FD374904F019FC04F054FE13 :102F20004FF00052344B05F0F7FE0022334B04F013 :102F3000F1FC0022324B04F0F0FC04F026FE314993 :102F4000086000206070E06841F288310844E06069 -:102F500010BDFFE701F0B0FF607841F2F811401CAE -:102F60006070E068F2E701F07BFF60816078401CF0 -:102F70006070EDE702F011F8607843F2B061401C38 +:102F500010BDFFE701F0B3FF607841F2F811401CAB +:102F60006070E068F2E701F07EFF60816078401CED +:102F70006070EDE702F014F8607843F2B061401C35 :102F80006070E068E2E72DE9F0470A4F1E4E1F4CE3 :102F9000F888E8B3DFF818800025A9464FF47A7A5C :102FA000A8F11C08F988514501D148F8259030E076 @@ -777,14 +777,14 @@ :1030700002F54872914200DC0A4624F8102025F837 :103080001020401C0328E3D31CE710B5AC4CAD481E :1030900061688847A168AB488847BDE8104072E77F -:1030A000A64810B5801D01F0D4FFA448A649801D94 +:1030A000A64810B5801D01F0D8FFA448A649801D90 :1030B00082880A80028852424A8040884042888042 :1030C00046E72DE9F04F85B06020029040F2FE20E7 :1030D000039040F2C920049000279C483D46009090 -:1030E00001F081FF954C00201A34DFF864A22060C3 +:1030E00001F085FF954C00201A34DFF864A22060BF :1030F0006060DFF860B2A0604CE07F1C029801F0D5 -:1031000080FF642002F0ACFDFFF7CAFF0A2002F046 -:10311000A7FD8D4EB6F9000004F0DEFC8046039852 +:1031000084FF642002F0AEFDFFF7CAFF0A2002F040 +:10311000A9FD8D4EB6F9000004F0DEFC8046039850 :1031200004F0E3FC414604F012FB20F00049B6F93C :10313000020004F0D1FC0646049804F0D6FC3146A7 :10314000019004F004FB20F000464146019804F091 @@ -797,7 +797,7 @@ :1031B00098FA294604F0CBFA20606068009904F080 :1031C00090FA294604F0C3FA6060A068009904F000 :1031D00088FA294604F0BBFA03E04FF07E502060E5 -:1031E0006060A06001F023FF5449012026398870F7 +:1031E0006060A06001F027FF5449012026398870F3 :1031F00005B0BDE8F08F2DE9F047504D5748263D0A :103200000068A969884274D355490844A861FFF74A :1032100047FF4D4CB4F9000004F05EFC05F1400698 @@ -817,20 +817,20 @@ :1032F000EED3E7E50020EF6131F9104033F91050CB :103300002C4404EBD47402EB40056410401CAC86E2 :103310000328F1D3BDE8F0470120FDF7BCBC10B590 -:10332000012003F0A4F80820FDF7C4FD1149002096 -:1033300008800DE60F4803F0EEB800001A020020E6 +:10332000012003F0A6F80820FDF7C4FD1149002094 +:1033300008800DE60F4803F0EFB800001A020020E5 :1033400018060020020100201401002059021B3F32 :103350003333333F6666A63F323373006401002087 :10336000A0860100A40500200804002080C3C90134 :103370000C0C01402001002070B5F84C0546C0B28D -:10338000A07002F012FEE079A1784840E071C5F328 -:103390000720A07002F009FEE079A1784840E071B2 -:1033A000C5F30740A07002F000FEE079A178484024 -:1033B000E071280EA07002F0F8FDE079A178484095 +:10338000A07002F014FEE079A1784840E071C5F326 +:103390000720A07002F00BFEE079A1784840E071B0 +:1033A000C5F30740A07002F002FEE079A178484022 +:1033B000E071280EA07002F0FAFDE079A178484093 :1033C000E07170BD70B5E54C0546C0B2E07002F02A -:1033D000ECFDE079E1784840E071C5F30720E0704A -:1033E00002F0E3FDE079E1784840E07170BD10B58E -:1033F000044602F0DAFDD948C1796140C17110BDBF +:1033D000EEFDE079E1784840E071C5F30720E07048 +:1033E00002F0E5FDE079E1784840E07170BD10B58C +:1033F000044602F0DCFDD948C1796140C17110BDBD :10340000D64AD748117A405C491C1172704700B502 :10341000FFF7F6FF0346FFF7F3FF03EB002080B250 :1034200000BD10B5FFF7F3FF0446FFF7F0FF04EB14 @@ -840,7 +840,7 @@ :10346000BDE87040C3E701460020E3E701460120C4 :10347000E0E7BA48C079BAE710B5044603E000BFF8 :10348000FFF7B5FF641C20780028F9D110BD02F0C9 -:10349000DFBC2DE9F05FB148B24DDFF8CC92407A45 +:10349000E1BC2DE9F05FB148B24DDFF8CC92407A43 :1034A000B24EDFF8CCA2DFF8CCB2B34FDFF8CC825B :1034B000B34C722878D00CDCA0F164000E282AD21C :1034C000DFE800F092A1FDFCFBFAF9F8F7F6F5F45D @@ -864,7 +864,7 @@ :1035E0008AE18EE190E193E10720FFF73CFFC820DC :1035F000FFF7FDFE6078FFF7FAFE0020FFF7F7FE09 :103600004FF000404FE00A20FFF72DFF5D48008893 -:1036100000B2FFF7D7FE01F04AFF00B2FFF7D2FE7B +:1036100000B2FFF7D7FE01F04EFF00B2FFF7D2FE77 :103620000120FDF73FFC04460220FDF73BFC44EA85 :1036300040040420FDF736FC44EA80041020FDF726 :1036400031FC44EAC0040820FDF72CFC44EA0010D9 @@ -915,17 +915,17 @@ :103910000820FFF7A8FD474D002400BF35F914002B :10392000FFF750FD641C042CF8D3F7E570B5424C4A :103930000025607818B3BDE87040FCF778BF00BF81 -:1039400002F026FBA17951B1012919D002291BD01F +:1039400002F028FBA17951B1012919D002291BD01D :1039500003291FD0042928D005293ED12BE0232894 :1039600004D0522805D0242807D00FE0FCF75FFFD1 -:103970000CE0012002F01AFA08E00120A0712CE00E +:103970000CE0012002F01CFA08E00120A0712CE00C :103980004D2803D10220F9E73C2801D00020F5E7BB :103990000320F3E740281FD8607125712572E0717C :1039A0000420A0710120207017E06072E17941408D :1039B000E1710520E2E721796279914207D2E2794B :1039C0004240E2711D4A5054491C217105E0E179E1 -:1039D000814201D1FFF75DFDA57102F0C3FA002815 -:1039E000AED16078002811D102F0BCFA00280DD1C8 +:1039D000814201D1FFF75DFDA57102F0C5FA002813 +:1039E000AED16078002811D102F0BEFA00280DD1C6 :1039F0004FF48050FDF76BFA002807D0104840784C :103A0000002803D0BDE8704000F0B0BF70BD0000DA :103A1000EC010020EE010020C80000204002002040 @@ -1062,8 +1062,8 @@ :1042400093FBFEF3304C614303EBC1112D4B643300 :10425000B9F1020F43F8201006D1A8F10208B8F511 :10426000797F01D84BF82010401CC0B2022800E032 -:10427000A1E0B7D301F0E6FC224C6169401A03F0DB -:1042800034FC304903F063FAE06101F0DBFC60616B +:10427000A1E0B7D301F0E8FC224C6169401A03F0D9 +:1042800034FC304903F063FAE06101F0DDFC606169 :10429000E0694FF07E51884200DB0846E06103A9E7 :1042A00002A8244BCDE900011B1D5D461A1F291DE4 :1042B0001748FFF77CFD02986426B0FBF6F0224910 @@ -1093,7 +1093,7 @@ :104430002860207B03F059FB494603F088F9686047 :10444000A07D03F052FB414603F081F9C5E9020665 :104450004FE510B50446FFF7B3FF5D49204601F074 -:10446000BBFDBDE810401020FCF724BD59485A4957 +:10446000BDFDBDE810401020FCF724BD59485A4955 :1044700002680A604068486070472DE9F05FDFF825 :104480004091002409F13009544FDFF85481264649 :1044900009F1280A09F1500B27F8146004EB840590 @@ -1118,12 +1118,12 @@ :1045C000780600200000FA440000204100007A44F0 :1045D00067410008BC010020C401002070010020D8 :1045E000880100209C020020B0B9FFFF70B5364C56 -:1045F00001260546667001F010FBA168421AC4E965 +:1045F00001260546667001F012FBA168421AC4E963 :10460000020241F288300021824200D9A1702F4A73 :10461000A07815540F2802D0401CA07070BD2C4803 :104620002670018070BD2B48032190F87520264824 :1046300012B1C170072101E00222C2700171264946 -:104640004FF4E13001F0C8BC1F4800787047F0B566 +:104640004FF4E13001F0CABC1F4800787047F0B564 :104650001D4A1E4B11781C3BE1B11679D578DFF865 :104660006CE003210EEB010717F8014CEC4004F05D :104670000F04072C08D21EF801C017F8017C374040 @@ -1151,13 +1151,13 @@ :1047D0000320A08108E065704FF47A702081A4F86E :1047E0000CA001E0657021812B4FE0893F1D01285D :1047F00018D9207838B129E066706681CBF800803E -:104800002670BDE8F09F01F01DFA21695031884201 -:1048100008D32570C7F8008001F014FA2061E08900 -:10482000401E0FE0207888B901F00CFA2289216936 -:104830001144884208D32570C7F8008001F002FABD -:104840002061A089E08114E0207890B101F0FAF9AC +:104800002670BDE8F09F01F01FFA216950318842FF +:1048100008D32570C7F8008001F016FA2061E089FE +:10482000401E0FE0207888B901F00EFA2289216934 +:104830001144884208D32570C7F8008001F004FABB +:104840002061A089E08114E0207890B101F0FCF9AA :10485000E2882169114488420BD32670CBF800808E -:1048600001F0F0F9206199F8000010B16089401C56 +:1048600001F0F2F9206199F8000010B16089401C54 :104870006081618999F800209142C2D3668189F8EC :104880000060BEE7D6050020D4020020A405002069 :10489000080400204A010020100801403D010020CA @@ -1174,8 +1174,8 @@ :104940004520BDE8704000F0ACB870B55C4D044641 :104950002878844209D014B14FF4165002E0594827 :10496000D0F8B400FEF793FD2C7070BD2DE9F04730 -:1049700001F068F9524D6968401AC8287DD301F0EA -:1049800061F968606878504F401CDFF84081DFF8BB +:1049700001F06AF9524D6968401AC8287DD301F0E8 +:1049800063F968606878504F401CDFF84081DFF8B9 :1049900040916870002400BF04F12400C0B200F010 :1049A00076F8388803F0A1F8064638F9140003F0C9 :1049B00093F8314602F0CBFE494602F092FE03F036 @@ -1184,17 +1184,17 @@ :1049E00000B200F05EF8212000F051F8206890FB42 :1049F000F6F106FB110000B200F053F8022000F0BF :104A000046F835480A21B0F9000090FBF1F000B2F9 -:104A100000F047F85E2001F0C8FA68780521B0FB85 +:104A100000F047F85E2001F0CAFA68780521B0FB83 :104A2000F1F201FB120040B91020FCF73BFA20B173 -:104A3000FFF736FF5E2001F0B8FA6878192824D114 -:104A40000020687001F0FEF84FF47A71B0FBF1F4C9 +:104A3000FFF736FF5E2001F0BAFA6878192824D112 +:104A40000020687001F000F94FF47A71B0FBF1F4C6 :104A50003C25B4FBF5F6B6FBF5F005FB1067172017 :104A600000F015F8380200B200F01BF8182000F032 :104A70000EF805FB164000B200E006E000F011F869 -:104A8000BDE8F0475E2001F090BABDE8F08710B5B0 -:104A900004465E2001F089FA2046BDE8104001F08E -:104AA00084BA10B50446C0B201F07FFAC4F30720FF -:104AB000BDE8104001F079BABC010020A0860100D9 +:104A8000BDE8F0475E2001F092BABDE8F08710B5AE +:104A900004465E2001F08BFA2046BDE8104001F08C +:104AA00086BA10B50446C0B201F081FAC4F30720FB +:104AB000BDE8104001F07BBABC010020A0860100D7 :104AC000E802002008040020FC0100200E01002064 :104AD00000007A44E80000205801002070B52B4EF9 :104AE00090B0304601F072FE29480090294801A993 @@ -1211,415 +1211,415 @@ :104B90004C240140F002002070472DE9FC47DFF86B :104BA0004891054699F80000C0B300263746B04644 :104BB0003446641CE4B26B4608223221532000F0D4 -:104BC0003DFC9DF800009DF80110202C00EB012019 +:104BC00041FC9DF800009DF80110202C00EB012015 :104BD00000B206449DF802009DF8031000EB01208E :104BE00000B207449DF804009DF8051000EB012079 :104BF00001B29DF80700884400F07F0001D2002830 :104C0000D7D196FBF4F0288097FBF4F0688098FBEE :104C1000F4F0A88089F80140BDE8FC87FFE76B4607 -:104C200006223221532000F009FC9DF800009DF877 +:104C200006223221532000F00DFC9DF800009DF873 :104C3000011000EB012028809DF802009DF8031070 :104C400000EB012068809DF804009DF8051000EB42 :104C50000120A880E0E7244810B500784FF0080252 -:104C600000284FF02D014FF053000ED000F0E0FB74 -:104C70000A223121532000F0DBFB0C222C2153208F -:104C800000F0D6FB9022382108E000F0D1FB0A2288 -:104C90003121532000F0CCFB0A222C21532000F0BC -:104CA000C7FB124940F20910088010BD38B505460F +:104C600000284FF02D014FF053000ED000F0E4FB70 +:104C70000A223121532000F0DFFB0C222C2153208B +:104C800000F0DAFB9022382108E000F0D5FB0A2280 +:104C90003121532000F0D0FB0A222C21532000F0B8 +:104CA000CBFB124940F20910088010BD38B505460B :104CB00000200C468DF8000001466B46012253206F -:104CC00000F0BCFB18B19DF80000E52801D00020E1 +:104CC00000F0C0FB18B19DF80000E52801D00020DD :104CD00038BD05492878087005482060054860609F :104CE0000548A060012038BDF2020020FC01002030 :104CF000574C00089B4B0008994B000810B54FF427 :104D00008044204601F046FE012805D1204601F0EE -:104D10004FFEA8490120087010BD10B5A54C86B003 -:104D20006B4660681622AA21807E00F087FBBDF8E2 +:104D10004FFEAA490120087010BD10B5A74C86B0FF +:104D20006B4660681622AA21807E00F08BFBBDF8DE :104D3000000041BA60680180BDF8021049BA4180A4 :104D4000BDF8041049BA8180BDF8061049BAC18087 :104D5000BDF8081049BA0181BDF80A1049BA41816D :104D6000BDF80C1049BA8181BDF80E1049BAC18155 :104D7000BDF8101049BA0182BDF8121049BA41823B -:104D8000BDF8141049BA818206B010BDF0B5894C47 -:104D900085B0607810B1012005B0F0BD4FF400552A -:104DA000ADF80C5003208DF80E001020824F8DF8C6 -:104DB0000F0003A9384602F055FA6E00ADF80C60FA -:104DC00004208DF80F0003A9384602F04BFA3D612C -:104DD0000E21022002F0CCFA019600268DF8086020 -:104DE00008208DF8090001258DF80A5001A801F06E -:104DF0009BFD28208DF810000F208DF811008DF8F4 -:104E000012008DF8135004A801F019FC0C2000F0DA -:104E100027FF616877206B46CE7688760122D02105 -:104E200000F00CFB60689DF800100222C17502843E -:104E3000552901D00020AFE75521C176807E6B4611 -:104E40000122D12100F0FAFA9DF80000616800F01B -:104E50000F0200090A764876FFF75FFF65709AE750 -:104E6000544808B5017811B94188491C418040680F -:104E70006B460222807EF62100F0E0FABDF80000C9 -:104E800040BA08BD4B494968CA7E552A01D0C86955 -:104E90000EE04A89B1F91430801A0A895043C013D0 -:104EA000B1F912200344D20292FBF3F21044C8611C -:104EB0000830001100B270473E4800212E220170D8 -:104EC0004068F421807E00F0B3BA38B5394C2078C0 -:104ED00010B96088401C608060686B460322807E49 -:104EE000F62100F0ABFA9DF800009DF801100004D7 -:104EF00040EA01209DF8021008436168B1F92010D2 -:104F0000C1F10801C84038BD70B52A494A68D16965 -:104F1000B2F90E40A1F57A6101FB01F31D136C4358 -:104F2000E512B2F90240B2F904604C4305EBE42407 -:104F3000B2F9005004EB8505148CA5404E43711363 -:104F4000B2F90C601B135E4301EB2641891C8910EA -:104F5000D288AD1C01F500414A43D10B4CF25032CE -:104F6000A0EBA500E2405043B0F1004F03D2400057 -:104F7000B0FBF1F002E0B0FBF1F040000112494358 -:104F800040F6DE3251430D4A0914424301EB2241FF -:104F900001F6CF6100EB211070BD06483423416853 -:104FA0000A8C03EB821200230370887ED2B2F421B4 -:104FB00000F03EBAF40200200010014043E3FFFF7E -:104FC00008B500208DF800006B4601220A211E2042 -:104FD00000F034FA18B19DF80000482801D00020F4 -:104FE00008BD012008BD10B5642000F039FE78220C -:104FF00000211E2000F01CFABDE81040322000F015 -:105000002FBE10B50446792200211E2000F010FAB0 -:10501000322000F025FE224601211E2000F008FA71 -:1050200001220221BDE810401E2000F001BA10B597 -:10503000782200211E2000F0FBF9202201211E20F1 -:1050400000F0F6F900220221BDE810401E2000F019 -:10505000EFB91CB504466B46062203211E2000F062 -:10506000EDF9BDF8000040BA2080BDF8020040BA5A -:105070006080BDF8040040BAA0801CBD30B587B088 -:1050800005464FF44060ADF8140003208DF816007B -:105090001C208DF8170005A9FC4802F0E3F8FC4C31 -:1050A000E56000F007FAE06801F088FC684601F06E -:1050B000F0FC00224FF44071E06801F020FD002573 -:1050C000ADF804504BF6FF70ADF806004FF4804089 -:1050D000ADF80C00EF4800900121E06801F0E7FC1A -:1050E0006946E06801F07DFC4FF4A06001F0A2FA8F -:1050F00022208DF810008DF811508DF812500120EB -:105100008DF8130004A801F09AFA21208DF8100000 -:105110008DF8115004A801F092FA07B030BD70B5B7 -:10512000DB4CE068858A15F4E06F24D0018B002207 -:105130004FF4806101F0E3FCA8051CD4E06801880D -:10514000890518D40188C9050CD50188C905FCD486 -:10515000012101F0C0FCE06801888905FCD4FFF75B -:105160008DFF08E0012101F0B6FC00224FF44071F0 -:10517000E06801F0C4FCE068818A21F470618182FA -:105180000020E07070BDCAE72DE9F041C04CE06836 -:10519000818A4FF00105C9B2CA074FF0000627D037 -:1051A000018821F400610180012101F09EFCA670BC -:1051B000207A20B1207860B96079FF2809D0217960 -:1051C0000022E06801F0A8FC6079FF280FD0FF20E2 -:1051D000B8E02570A079022804D1E068018841F484 -:1051E0000061018021790122E06801F095FCC9E0AD -:1051F0008A074FF4806734D5BFF3508FA079012818 -:1052000010D1207A70B1207860B10021E06801F0FF -:105210006CFCBFF3508FE068018B012101F05BFC57 -:1052200065701CE0E068008BBFF3508FA079022806 -:105230000DD1207A58B1207848B10021E06801F002 -:1052400054FC93E03946E06801F059FC9AE0A079FB -:10525000032804D1207A10B12078002874D10122CB -:10526000F0E74A0753D56570227A89490978CAB3AD -:10527000C9B3A17902291FD9002101F036FCE068E9 -:1052800001F047FC94F9022063699854521CA27003 -:105290000121E06801F01FFC6570E06801F039FC55 -:1052A00094F9021062695054491CA17001223946D8 -:1052B000E06801F024FC25E0012101F00CFCE0682D -:1052C00001F027FC94F9021062695054491CA17046 -:1052D000E06801F01EFC94F9021062695054891CC8 -:1052E000A1700FE000E000E009B9E17931B10121DE -:1052F00001F0F1FBA078401CA07003E0012101F057 -:10530000E0FB2570E0680188C905FCD43AE04A0654 -:105310001BD501F0FEFB94F9021062695054491C40 -:1053200048B2A070A179C01C814204D10022394644 -:10533000E06801F0E4FBA17994F90200814221D1F7 -:1053400000F10100A0701DE010E009061AD594F9E3 -:105350000220511C4BB20BD02569A95CA37001F04F -:10536000D6FBA07994F9021088420BD1002269E79C -:10537000A370617901F0CBFB207A0028F6D1A079E7 -:105380000028F3D094F90210A079401C814209D181 -:105390002670607828B100224FF44071E06801F077 -:1053A000AEFBE670BDE8F081EEE6B8E6ECE67FB570 -:1053B000374C400047F23055207161710120E07197 -:1053C00000212172C4F810D0C4F814D06946A2712B -:1053D000E070102A02D9002004B070BD002003E064 -:1053E0001E5C0E54401CC0B29042F9D3E068818824 -:1053F00089050ED40188C90505D401888905FCD426 -:10540000012101F05EFB01224FF44071E06801F0E0 -:1054100076FBE07810B16D1EFBD102E00DB10120EA -:10542000DAE76089401C6081E068FFF727FED2E779 -:1054300007B502AB0122FFF7BAFF0EBD70B5144CE1 -:105440004FEA400047F23055207161710020E07151 -:105450000120207263612361A271E070E06881889D -:1054600089050ED40188C90505D401888905FCD4B5 -:10547000012101F026FB01224FF44071E06801F0A8 -:105480003EFBE07840B16D1EFBD108E0000C01400E -:10549000FC020020801A06000DB1012070BD608959 -:1054A000401C6081E068FFF7E9FD002070BD2F48D7 -:1054B000408970472DE9F8434FF44067ADF800701C -:1054C0004FF003088DF802801420294C8DF803005A -:1054D0006946204601F0C6FE3946204601F01BFF12 -:1054E0000025261502E00A2000F0AFFB31462046D9 -:1054F00001F00AFF0028F6D03146204601F00DFFEA -:105500000A2000F0A2FB3146204601F004FF0A20E9 -:1055100000F09BFB6D1CEDB2082DE7D34FF4006546 -:105520002946204601F0F9FE0A2000F08EFB3146A4 -:10553000204601F0F2FE0A2000F087FB31462046AB -:1055400001F0E9FE0A2000F080FB2946204601F028 -:10555000E2FEADF800708DF802801C208DF803008B -:105560006946204601F07EFEBDE8F883FC0200207B -:10557000000C014038B504466B4602221B2168200E -:10558000FFF75CFFBDF8000043F2903140BA0844D9 -:105590004FF48C71B0FBF1F02330208038BDB0F9AE -:1055A0000010CA1701EB927189100180B0F9021046 -:1055B000CA1701EB927189104180B0F90410494279 -:1055C000CA1701EB92718910818070471CB504469F -:1055D0006B4606221D216820FFF730FFBDF8000052 -:1055E00040BA2080BDF8020040BA6080BDF80400D7 -:1055F00040BAA0801CBD10B5192000F031FB00227C -:1056000015216820FFF714FF10B9032000F0ABFB51 -:1056100028481621007840F018026820FFF708FF9C -:10562000002217216820FFF703FF01223D21682097 -:10563000FFF7FEFE01223E21BDE810406820FFF783 -:10564000F7BE10B50446192000F00AFB0022152110 -:105650006820FFF7EDFE002808D0174820601748A3 -:1056600060601748A0601748E060012010BD114934 -:10567000622817D006DC0A281AD0142816D02A2847 -:1056800009D111E0BC2804D0B0F5807F03D10020FF -:1056900000E0012008700878162140F01802682008 -:1056A000FFF7C6BE0220F5E70320F3E70420F1E789 -:1056B0000520EFE714030020F7550008CD5500083A -:1056C0009F550008755500082DE9F84F4FF0000B65 -:1056D000DFF82CA4DFF82C9480465E460AEBC60067 -:1056E00009EBC605D0E90047404644454ED1390C88 -:1056F000009101F000FD012848D12046009901F0F9 -:1057000005FD1EB9FE490120083988703F043F0C91 -:1057100006D0042F08D0082F14D00C2F08D115E084 -:10572000204601F0DFFC02E0204601F0DDFC83466C -:10573000287878B1A5F804B068885946834513D90C -:10574000081A15E0204601F0D1FCF0E7204601F0F0 -:10575000CFFCECE7A5F802B001202870E94802214F -:105760004030418007800CE04FF6FF72101A084469 -:10577000E880E549002028700880E24940314880EF -:105780000F80E0492046403101F0D4FB761C082E02 -:10579000A4D3BDE8F88FDA48083801784FF080408C -:1057A00009B100F0FDB98FE7D8488DE72DE9F04F3A -:1057B00087B04FF000040200DFF84493D14DD44885 -:1057C0000494009401940294A9F108094FF0010691 -:1057D0004FF028014FF003074FF01C084FF0470A25 -:1057E0004FF6FF7B05F14005039435D0ADF810600E -:1057F0008DF813108DF8127004A901F033FD8DF8A7 -:105800000C808DF80D408DF80E608DF80F6003A8A8 -:1058100000F015FF684601F025FCADF800A0B707C1 -:10582000ADF804B0ADF802406946384601F0FAF927 +:104D8000BDF8141049BA818206B010BD2DE9F0417A +:104D90008A4C86B0607818B1012006B0BDE8F08179 +:104DA0004FF40055ADF80C5002268DF80E6010201F +:104DB000DFF80C828DF80F0003A9404602F052FA8A +:104DC0006F00ADF80C7004208DF80F0003A9404669 +:104DD00002F048FAC8F810500E21022002F0C8FA7A +:104DE000019700278DF8087008208DF8090001252B +:104DF0008DF80A5001A801F097FD28208DF81000C9 +:104E00000F208DF811008DF812008DF8135004A8B2 +:104E100001F015FC0C2000F025FF616877206B463F +:104E2000CF7688760122D02100F00CFB60689DF8D7 +:104E30000010C1750684552901D00020ADE7552129 +:104E4000C176807E6B460122D12100F0FBFA9DF8ED +:104E50000000616800F00F0200090A764876FFF74B +:104E60005CFF657098E7554808B5017811B941882D +:104E7000491C418040686B460222807EF62100F08A +:104E8000E1FABDF8000040BA08BD4C494968CA7E45 +:104E9000552A01D0C8690EE04A89B1F91430801A48 +:104EA0000A895043C013B1F912200344D20292FB85 +:104EB000F3F21044C8610830001100B270473F4857 +:104EC00000212E2201704068F421807E00F0B4BAE7 +:104ED00038B53A4C207810B96088401C6080606812 +:104EE0006B460322807EF62100F0ACFA9DF80000AC +:104EF0009DF80110000440EA01209DF802100843CB +:104F00006168B1F92010C1F10801C84038BD70B521 +:104F10002A494A68D169B2F90E40A1F57A6101FBCC +:104F200001F31D136C43E512B2F90240B2F90460BB +:104F30004C4305EBE424B2F9005004EB8505148CD6 +:104F4000A5404E437113B2F90C601B135E4301EB95 +:104F50002641891C8910D288AD1C01F500414A43C5 +:104F6000D10B4CF25032A0EBA500E2405043B0F11F +:104F7000004F03D24000B0FBF1F002E0B0FBF1F0D3 +:104F800040000112494340F6DE3251430D4A0914F4 +:104F9000424301EB224101F6CF6100EB211070BDCD +:104FA0000648342341680A8C03EB82120023037005 +:104FB000887ED2B2F42100F03FBA0000F402002053 +:104FC0000010014043E3FFFF08B500208DF800000A +:104FD0006B4601220A211E2000F034FA18B19DF818 +:104FE0000000482801D0002008BD012008BD10B5F0 +:104FF000642000F037FE782200211E2000F01CFA09 +:10500000BDE81040322000F02DBE10B504467922D4 +:1050100000211E2000F010FA322000F023FE22466C +:1050200001211E2000F008FA01220221BDE81040F3 +:105030001E2000F001BA10B5782200211E2000F0D9 +:10504000FBF9202201211E2000F0F6F900220221A6 +:10505000BDE810401E2000F0EFB91CB504466B46B9 +:10506000062203211E2000F0EDF9BDF8000040BA31 +:105070002080BDF8020040BA6080BDF8040040BA4C +:10508000A0801CBD30B587B005464FF44060ADF838 +:10509000140002208DF816001C208DF8170005A9B9 +:1050A000FC4802F0DFF8FC4CE56000F007FAE0682D +:1050B00001F084FC684601F0ECFC00224FF44071E2 +:1050C000E06801F01CFD0025ADF804504BF6FF70C0 +:1050D000ADF806004FF48040ADF80C00EF480090AA +:1050E0000121E06801F0E3FC6946E06801F079FC29 +:1050F0004FF4A06001F09EFA22208DF810008DF888 +:1051000011508DF8125001208DF8130004A801F001 +:1051100096FA21208DF810008DF8115004A801F0A6 +:105120008EFA07B030BD70B5DB4CE068858A15F4A7 +:10513000E06F24D0018B00224FF4806101F0DFFC8E +:10514000A8051CD4E0680188890518D40188C90520 +:105150000CD50188C905FCD4012101F0BCFCE06834 +:1051600001888905FCD4FFF78DFF08E0012101F0DB +:10517000B2FC00224FF44071E06801F0C0FCE0682E +:10518000818A21F4706181820020E07070BDCAE7DD +:105190002DE9F041C04CE068818A4FF00105C9B2A9 +:1051A000CA074FF0000627D0018821F40061018072 +:1051B000012101F09AFCA670207A20B1207860B914 +:1051C0006079FF2809D021790022E06801F0A4FC71 +:1051D0006079FF280FD0FF20B8E02570A079022861 +:1051E00004D1E068018841F4006101802179012245 +:1051F000E06801F091FCC9E08A074FF4806734D57C +:10520000BFF3508FA079012810D1207A70B1207897 +:1052100060B10021E06801F068FCBFF3508FE068E6 +:10522000018B012101F057FC65701CE0E068008BE8 +:10523000BFF3508FA07902280DD1207A58B1207881 +:1052400048B10021E06801F050FC93E03946E06885 +:1052500001F055FC9AE0A079032804D1207A10B11E +:105260002078002874D10122F0E74A0753D56570F1 +:10527000227A89490978CAB3C9B3A17902291FD909 +:10528000002101F032FCE06801F043FC94F90220B7 +:1052900063699854521CA2700121E06801F01BFC64 +:1052A0006570E06801F035FC94F9021062695054B1 +:1052B000491CA17001223946E06801F020FC25E07C +:1052C000012101F008FCE06801F023FC94F90210D0 +:1052D00062695054491CA170E06801F01AFC94F90D +:1052E000021062695054891CA1700FE000E000E0D8 +:1052F00009B9E17931B1012101F0EDFBA078401C41 +:10530000A07003E0012101F0DCFB2570E06801885A +:10531000C905FCD43AE04A061BD501F0FAFB94F922 +:10532000021062695054491C48B2A070A179C01C97 +:10533000814204D100223946E06801F0E0FBA17906 +:1053400094F90200814221D100F10100A0701DE01A +:1053500010E009061AD594F90220511C4BB20BD06B +:105360002569A95CA37001F0D2FBA07994F9021021 +:1053700088420BD1002269E7A370617901F0C7FB75 +:10538000207A0028F6D1A0790028F3D094F90210F1 +:10539000A079401C814209D12670607828B1002292 +:1053A0004FF44071E06801F0AAFBE670BDE8F081BF +:1053B000EEE6B8E6ECE67FB5374C400047F23055F4 +:1053C000207161710120E07100212172C4F810D0B8 +:1053D000C4F814D06946A271E070102A02D90020E6 +:1053E00004B070BD002003E01E5C0E54401CC0B22F +:1053F0009042F9D3E068818889050ED40188C905F7 +:1054000005D401888905FCD4012101F05AFB012251 +:105410004FF44071E06801F072FBE07810B16D1E4E +:10542000FBD102E00DB10120DAE76089401C608108 +:10543000E068FFF727FED2E707B502AB0122FFF7CE +:10544000BAFF0EBD70B5144C4FEA400047F230551C +:10545000207161710020E07101202072636123617D +:10546000A271E070E068818889050ED40188C905C1 +:1054700005D401888905FCD4012101F022FB012219 +:105480004FF44071E06801F03AFBE07840B16D1EE6 +:10549000FBD108E0000C0140FC020020801A06004D +:1054A0000DB1012070BD6089401C6081E068FFF78C +:1054B000E9FD002070BD2F48408970472DE9F84371 +:1054C0004FF44067ADF800704FF002088DF802808D +:1054D0001420294C8DF803006946204601F0C2FED5 +:1054E0003946204601F017FF0025261502E00A2064 +:1054F00000F0ADFB3146204601F006FF0028F6D053 +:105500003146204601F009FF0A2000F0A0FB314699 +:10551000204601F000FF0A2000F099FB6D1CEDB25F +:10552000082DE7D34FF400652946204601F0F5FE2B +:105530000A2000F08CFB3146204601F0EEFE0A20E6 +:1055400000F085FB3146204601F0E5FE0A2000F020 +:105550007EFB2946204601F0DEFEADF800708DF896 +:1055600002801C208DF803006946204601F07AFE77 +:10557000BDE8F883FC020020000C014038B5044669 +:105580006B4602221B216820FFF75CFFBDF800007C +:1055900043F2903140BA08444FF48C71B0FBF1F003 +:1055A0002330208038BDB0F90010CA1701EB92718A +:1055B00089100180B0F90210CA1701EB92718910AD +:1055C0004180B0F904104942CA1701EB9271891069 +:1055D000818070471CB504466B4606221D21682059 +:1055E000FFF730FFBDF8000040BA2080BDF8020090 +:1055F00040BA6080BDF8040040BAA0801CBD10B560 +:10560000192000F02FFB002215216820FFF714FF5E +:1056100010B9032000F0A9FB28481621007840F0BB +:1056200018026820FFF708FF002217216820FFF703 +:1056300003FF01223D216820FFF7FEFE01223E21EB +:10564000BDE810406820FFF7F7BE10B504461920EA +:1056500000F008FB002215216820FFF7EDFE00286E +:1056600008D017482060174860601748A0601748A6 +:10567000E060012010BD1149622817D006DC0A281D +:105680001AD0142816D02A2809D111E0BC2804D039 +:10569000B0F5807F03D1002000E001200870087879 +:1056A000162140F018026820FFF7C6BE0220F5E779 +:1056B0000320F3E70420F1E70520EFE714030020BF +:1056C000FF550008D5550008A75500087D5500086E +:1056D0002DE9F84F4FF0000BDFF82CA4DFF82C94E5 +:1056E00080465E460AEBC60009EBC605D0E90047D6 +:1056F000404644454ED1390C009101F0FCFC012894 +:1057000048D12046009901F001FD1EB9FE49012053 +:10571000083988703F043F0C06D0042F08D0082FAA +:1057200014D00C2F08D115E0204601F0DBFC02E07C +:10573000204601F0D9FC8346287878B1A5F804B05A +:1057400068885946834513D9081A15E0204601F0A8 +:10575000CDFCF0E7204601F0CBFCECE7A5F802B069 +:1057600001202870E94802214030418007800CE088 +:105770004FF6FF72101A0844E880E54900202870AF +:105780000880E249403148800F80E049204640319E +:1057900001F0D0FB761C082EA4D3BDE8F88FDA48C0 +:1057A000083801784FF0804009B100F0FAB98FE76E +:1057B000D8488DE72DE9F04F87B000240346DFF885 +:1057C0004883D24D012628210222D3481C27049465 +:1057D000009401940294A8F108084FF047094FF68D +:1057E000FF7A4FF0804B40350394ABB3ADF81060B7 +:1057F0008DF813108DF8122004A901F033FD8DF8F7 +:105800000C708DF80D408DF80E608DF80F6003A8B8 +:1058100000F015FF684601F025FCADF80090ADF8EA +:1058200004A0ADF8024069465F46584601F0FAF917 :105830006C80AE80EC802C812C802946384601F0AB :1058400079FB01220221384601F02AFC0121384669 -:1058500001F011FC0A215CE0CF22ADF810208DF898 -:1058600013108DF8127004A901F0FCFCADF8107053 -:1058700004A9A84801F0F6FC8DF80C808DF80D40C5 -:105880008DF80E608DF80F6003A800F0D8FE1D2083 -:105890008DF80C0003A800F0D2FE684601F0E2FB90 -:1058A000ADF800A04FF08047ADF804B0ADF802406D -:1058B0006946384601F0B6F9DFF85082694640463D -:1058C00001F0B0F96C80AE80EC802C818C4E00240D -:1058D00006EBC4008B498088288056F8340040319C -:1058E00001F028FB641C082CF2D301221E2138464B -:1058F00001F0D6FB01221E214446404601F0D0FBB8 -:105900000121384601F0B7FB0121204601F0B3FB2D -:10591000062189F8011007B0BDE8F08F2DE9F04F9E -:105920008BB000250795044602954FF00108ADF8AD -:105930001C8048208DF81F000595069503950326C9 -:1059400004950095019508958DF81E6007A970488B -:1059500001F088FC6A48617808386A4B01700020C1 -:1059600040F2DC5203EBC007401CC0B2FA800828AA -:10597000F8D3207810B10846FFF718FF4FF41060F5 -:10598000ADF81C0018208DF81F008DF81E6007A9C7 -:105990005F4801F067FC4FF47070ADF81C0007A978 -:1059A0005C4801F05FFC04A801F05CFB4720ADF807 -:1059B0001000A078584F80B1E08804A9B7FBF0F040 -:1059C000401EADF81400554801F02CF9A088B7FB33 -:1059D000F0F0401EADF8140009E0A08804A9B7FB60 -:1059E000F0F0401EADF814004C4801F01BF904A97A -:1059F0004B4801F017F97020ADF80000ADF80450E5 -:105A00004FF47A7A4FF0020B4FF48079ADF80280B0 -:105A1000ADF806A0ADF808B0ADF80C9069463F4867 -:105A200001F039F969463D4801F0DCF908213B48AD -:105A300001F03EFB0821394801F04DFB694638482A -:105A400001F029F96946364801F05AF969463448A7 -:105A500001F090F96946324801F0C4F90821304854 -:105A600001F026FB08212E4801F028FB08212C48D4 -:105A700001F02BFB08212A4801F02DFB01212748CA -:105A800001F0F9FA0121264801F0F5FA0121234835 -:105A900001F0FBFA0121224801F0F7FA207810B159 -:105AA0006078002867D0C020ADF81C0018208DF861 -:105AB0001F008DF81E6007A9154801F0D3FBADF853 -:105AC0001C6007A9134801F0CDFBA0880F4CB7FB61 -:105AD000F0F0401EADF8140004A9204601F0A2F831 -:105AE0007020ADF80000ADF80450ADF80280ADF8BC -:105AF00006A0ADF808B0ADF80C906946204611E05C -:105B0000200300209C0700204A01002000040040E0 -:105B100000080140000C014040420F00002C0140F1 -:105B20000008004001F0B7F86946204601F0E8F8A7 -:105B30006946204601F01EF96946204601F052F9F7 -:105B40000821204601F0B4FA0821204601F0B6FAF7 -:105B50000821204601F0B9FA0821204601F0BBFADD -:105B60000121204601F087FA0121204601F08DFA3B -:105B700024480A21417008980BB0CDE6214A52789A -:105B8000904204D21F4A483252F8200001807047E8 -:105B90001D4901EBC000C08870471A484078704723 -:105BA00070B50546022101F0A6FA164C012807D16E -:105BB000A088E080284601F095FAA0800120A0701E -:105BC0000221284601F0A2FAA088E18840F68C2242 -:105BD000401A80B20021904201D9E17070BDA0F25C -:105BE000EF2240F2DB539A4206D2E278082A03D22F -:105BF000054B03EBC202D080E078401CE070034804 -:105C0000018070BD180300209C0700204A0100207D -:105C10006B484168491C4160704710B568494FF0B6 -:105C2000E02348689A694C68A042FAD16549891A0C -:105C30004822B1FBF2F100EB4002C2EBC01001EBD5 -:105C4000C00010BD5E484068704730B50546FFF79C -:105C5000E4FF0446FFF7E1FF001BA842FAD330BD82 -:105C600030B504464FF47A7502E02846FFF7EDFFA1 -:105C7000641EFAD230BD2DE9F0418CB01822524991 -:105C800001A801F064FC03270121504800F0A9FF9E -:105C9000012144F61D2000F09BFF0121084600F081 -:105CA0008EFF00F0B0FF4FF6FF70ADF80000002649 -:105CB0008DF803606946464801F0D4FA69464548C4 -:105CC00001F0D0FA6946444801F0CCFA012143487A -:105CD00001F025FB002401AD4FF0030805EBC400E3 -:105CE0008188ADF800108DF8028080798DF803006E -:105CF00055F83400694601F0B5FA641CBC42EDD396 -:105D000034480821103001601021016030498014AE -:105D10001031086007A800F00DFF31490798B0FB6B -:105D2000F1F0274908602F484FF47A710068B0FB02 -:105D3000F1F0B0F1807F0BD220F07F414FF0E020F6 -:105D4000491E4161284AF0211170866107210161D5 -:105D5000FEF7C4FE2548FFF791F96420FFF780FFA6 -:105D60000CB0BDE8F0811B4A1021143211600821EB -:105D7000121F1160044640F2DB10154F151F4443FB -:105D80004E021437A7F1040C286880F01000286038 -:105D9000286880F008002860A01EFFF761FF3E60C1 -:105DA0001920FFF75DFFCCF80060EDE710B1114955 -:105DB0000F4808600C491048173908607047000008 -:105DC000880300204019010020A0000807004000BF -:105DD00000080140000C01400010014000023000AA -:105DE00040420F00BC03002023ED00E000580040BB -:105DF000EFBEADDEF04F00200400FA05A148A04A36 -:105E000041685318A04A136583688B4203D9591A15 -:105E10009164436004E0C1F58071916400214160A8 -:105E200099480121443000F05BBD10B54FF400509B -:105E300000F06CFD94480021443000F051FD914881 -:105E4000001D03C8814202D0BDE81040D6E710BD56 -:105E50002DE9F04192B004464FF40070ADF83C00DB -:105E600003208DF83E001820884D8DF83F000FA9C3 -:105E7000284601F0F7F92815ADF83C0048208DF8C8 -:105E80003F000FA9284601F0EDF90E208DF84000E3 -:105E900001218DF841108DF842108DF8431010A8A3 -:105EA00000F0CDFB0B940024ADF834400C20DFF85B -:105EB000E081ADF83040ADF83600ADF83240ADF8D5 -:105EC00038400BA9404601F025F96F4F5837384646 -:105ED00000F07CFCA81408F104050095CDE9090444 -:105EE0006C48CDE9010480260494CDE90564A81529 -:105EF00003902020CDE907406946384600F0D3FCE6 -:105F00000121384600F0ECFC01224021404601F01E -:105F10007BF9384600F0F7FC5A495B4F443708607C -:105F2000384600F053FC1020029000950494CDE90F -:105F30000564079469463846089400F0B4FC0122D1 -:105F40000221384600F0D7FC4F48846401228021AA -:105F5000404601F059F90121404601F033F912B0F1 -:105F6000BDE8F081484810B5583000F0CCFC4549F8 -:105F70000968884201D0012010BD002010BD4148B1 -:105F8000D0E90110814201D1012070470020704703 -:105F90003C49404B0A68C2F58070185C521E0A608A -:105FA00002D14FF480720A607047364A344B9168D0 -:105FB0005854491CC8B290603348406CC00700D1A7 -:105FC0001CE7704710B5044602E0641CFFF7EDFFC4 -:105FD00020780028F9D110BD70B50D460646012184 -:105FE00086B0480400F0FDFD26208DF81000012049 -:105FF0008DF8110002218DF812108DF8130004A8FD -:1060000000F01DFB0820ADF8140004248DF81740A3 -:1060100005A91E4801F026F90020ADF80800ADF8EA -:106020000A40ADF804001C4CADF80600ADF80C00B9 -:1060300000966946204601F06DF8012240F2255194 -:10604000204601F0C9F80121204601F0BBF80D48B7 -:10605000C56006B070BD70B50F4D40F225512846A1 -:1060600001F0DEF801280AD1064CE068002806D0CD -:10607000284601F0D1F8E168BDE87040084770BDDE -:10608000E6080020900300200000024000080140C4 -:1060900000380140E607002000440040FEB5384CBF -:1060A0000125207878B1012822D002281FD1642050 -:1060B0008DF8000033488DF8015000264078A0B3D9 -:1060C0008DF8025043E07A208DF800002E486B4690 -:1060D0000222B0F90000FF21C0F1B40000EBD07043 -:1060E00040108DF801006D20FFF761F92570FEBDAD -:1060F000264979208DF80000B1F900000A2290FBB2 -:10610000F2F010F15A0301D5002003E05A30B42810 -:1061100000DDB4208DF80100B1F9020090FBF2F02F -:1061200010F15A0102D5002004E00EE05A30B428E4 -:1061300000DDB4208DF802006B460322FF216D20A4 -:10614000FFF735F902202070FEBD8DF802606B4626 -:106150000322FF216D20FFF72AF92670FEBD08B546 -:106160006B208DF800000A208DF801008DF80200E8 -:106170006B460322FF216D20FFF719F908BD0000CF -:10618000A0030020A405002040020020C800002039 -:10619000B0F90010CA1701EB927189100180B0F9B3 -:1061A0000210CA1701EB927189104180B0F90410F6 -:1061B0004942CA1701EB92718910818070471CB562 -:1061C00004466B46062243216820FFF737F9BDF8E5 -:1061D000000040BA2080BDF8020040BA6080BDF8DF -:1061E000040040BAA0801CBD10B580226B2168203D -:1061F000FFF71EF90520FFF733FD00221921682063 -:10620000FFF716F903226B216820FFF711F903222B -:106210001A216820FFF70CF918221B21BDE8104055 -:106220006820FFF705B9B0F90210B0F90020CB17CC -:1062300001EB5371C91001805142CA1701EB527131 -:10624000C9104180B0F90410CA1701EB5271C9108E -:10625000818070471CB504466B4606223B216820AE -:10626000FFF7ECF8BDF8000040BA2080BDF802004E -:1062700040BA6080BDF8040040BAA0801CBD1F4831 -:1062800010B5007814280FD015280DD054280BD045 -:10629000552809D010221C216820FFF7C9F8184999 -:1062A00040F2FF30088010BD0822F4E738B50446FC -:1062B0000D462320FFF7D4FC6B4601227521682090 -:1062C000FFF7BCF8002804D09DF80000682801D032 -:1062D000002038BD094B01220C216820FFF7AEF8E1 -:1062E00008482060084860600848A06008482860A6 -:1062F000084868600848A860012038BDA103002054 -:10630000FC0100207F620008556200082762000837 -:10631000E9610008BF61000891610008B0F9001050 -:106320004942CA1701EB927189100180B0F902103D -:106330004942CA1701EB927189104180B0F90410EB -:10634000CA1701EB92718910818070471CB5044611 -:106350006B46062201211C20FFF770F8BDF80000F3 -:1063600040BA00B22080BDF80210801049BA09B2CC -:106370006180BDF80420208052BA881012B260807B -:106380009010A0801CBD10B500222A211C20FFF710 -:106390004FF802220E211C20FFF74AF803220F219A -:1063A0001C20FFF745F812222B211C20FFF740F894 -:1063B00002222C211C20FFF73BF801222D211C205A -:1063C000FFF736F800222E211C20FFF731F80522B6 -:1063D0002A211C20FFF72CF811494FF48070088007 -:1063E00010BD38B5044600208DF800006B46012230 -:1063F0000D211C20FFF722F828B19DF800002A2863 -:1064000003D01A2801D0002038BD06492160064972 -:1064100061600649A16006490870012038BD00008E -:10642000FC010020876300084D6300081D6300081D -:10643000A203002010B5454C4548A18800F064FF38 -:1064400018B1FFF7EAFBA0600AE0FFF7E6FBA168DE -:10645000884205D9401A3B2190FBF1F06169088020 -:10646000E068BDE8104000F0A3BAE3E7E2E7FEB55C -:10647000364C012510B1012811D109E04FF480708C -:1064800060804000A080E06009202070172005E0B7 -:1064900065800220A080E060257007206070608821 -:1064A000ADF8000010268DF803600320284F8DF80A -:1064B00002006946384600F0D5FEA088ADF800001D -:1064C00004208DF803006946384600F0CBFE2178A1 -:1064D000012000F04DFFE06800F06AFAE0680190EA -:1064E00000208DF808008DF809608DF80A5001A889 -:1064F00000F01AFA94F9010000F01F018D404009E4 -:106500004FF0E02101EB8000C0F80051FFF79AFB4B -:106510003C382061FEBD70B50546FFF793FB0B4C80 -:1065200021693C3188420FD3C4E90405084D6188D4 -:10653000284600F0F0FE0B20FFF787FB6188284615 -:10654000BDE8704000F0E9BE70BD0000A40300206B +:1058500001F011FC0A215EE0FFE7CF23ADF8103024 +:105860008DF813108DF8122004A901F0FBFC032021 +:10587000ADF8100004A9A94801F0F4FC8DF80C70F3 +:105880008DF80D408DF80E608DF80F6003A800F0C4 +:10589000D6FE1D208DF80C0003A800F0D0FE68464F +:1058A00001F0E0FBADF80090ADF804A0ADF80240C7 +:1058B00069465F46584601F0B5F9DFF858926946E7 +:1058C000484601F0AFF96C80AE80EC802C818E4EA2 +:1058D000002400BF06EBC4008C498088288056F85D +:1058E0003400403101F026FB641C082CF2D3012265 +:1058F0001E21384601F0D4FB01221E214C464846A9 +:1059000001F0CEFB0121384601F0B5FB0121204614 +:1059100001F0B1FB062188F8011007B0BDE8F08F57 +:105920002DE9F04F8BB000260796044602964FF003 +:105930000108ADF81C8048208DF81F0005960696DA +:105940000396022504960096019608968DF81E503F +:1059500007A9714801F086FC6B48617808386B4BE9 +:105960000170002040F2DC5203EBC007401CC0B2C3 +:10597000FA800828F8D3207810B10846FFF71AFFFC +:105980004FF41060ADF81C004FF0180B8DF81FB0ED +:105990008DF81E5007A9604801F064FC4FF4707048 +:1059A000ADF81C0007A95D4801F05CFC04A801F0FB +:1059B00059FB4720ADF81000A078594F80B1E0881E +:1059C00004A9B7FBF0F0401EADF81400554801F0F3 +:1059D00029F9A088B7FBF0F0401EADF8140009E0EB +:1059E000A08804A9B7FBF0F0401EADF814004D48A4 +:1059F00001F018F904A94C4801F014F97020ADF831 +:105A00000000ADF804604FF47A7A4FF48079ADF875 +:105A10000280ADF806A0ADF80850ADF80C906946CC +:105A2000404801F038F969463E4801F0DBF90821A9 +:105A30003C4801F03DFB08213A4801F04CFB694627 +:105A4000394801F028F96946374801F059F96946A3 +:105A5000354801F08FF96946334801F0C3F9082150 +:105A6000314801F025FB08212F4801F027FB0821D0 +:105A70002D4801F02AFB08212B4801F02CFB0121C5 +:105A8000284801F0F8FA0121274801F0F4FA012131 +:105A9000244801F0FAFA0121234801F0F6FA2078AF +:105AA00010B16078002867D0C020ADF81C008DF8D8 +:105AB0001FB08DF81E5007A9174801F0D3FB032033 +:105AC000ADF81C0007A9154801F0CCFBA088114CCB +:105AD000B7FBF0F0401EADF8140004A9204601F019 +:105AE000A1F87020ADF80000ADF80460ADF80280B8 +:105AF000ADF806A0ADF80850ADF80C906946204608 +:105B000001F0C9F8694611E0200300209C0700203D +:105B10004A0100200004004000080140000C014040 +:105B200040420F00002C014000080040204601F0D8 +:105B3000E7F86946204601F01DF96946204601F064 +:105B400051F90821204601F0B3FA0821204601F05E +:105B5000B5FA0821204601F0B8FA0821204601F0E4 +:105B6000BAFA0121204601F086FA0121204601F00F +:105B70008CFA25480A21417008980BB0CEE6224ADB +:105B80005278904204D2204A483252F820000180D4 +:105B900070471E4901EBC000C08870471A48407822 +:105BA000704770B50546022101F0A5FA164C012890 +:105BB00007D1A088E080284601F094FAA080012057 +:105BC000A0700221284601F0A1FAA088E18840F6E1 +:105BD0008C22401A80B20021904201D9E17070BD40 +:105BE000A0F2EF2240F2DB539A4206D2E278082A72 +:105BF00003D2064B03EBC202D080E078401CE07079 +:105C00000348018070BD0000180300209C0700209D +:105C10004A0100206B484168491C4160704710B53B +:105C200068494FF0E02348689A694C68A042FAD16D +:105C30006549891A4822B1FBF2F100EB4002C2EB40 +:105C4000C01001EBC00010BD5E484068704730B521 +:105C50000546FFF7E4FF0446FFF7E1FF001BA842FB +:105C6000FAD330BD30B504464FF47A7502E02846C9 +:105C7000FFF7EDFF641EFAD230BD2DE9F0418CB084 +:105C80001822524901A801F062FC03270121504863 +:105C900000F0A7FF012144F61D2000F099FF01212B +:105CA000084600F08CFF00F0AEFF4FF6FF70ADF835 +:105CB000000000268DF803606946464801F0D2FADC +:105CC0006946454801F0CEFA6946444801F0CAFAEF +:105CD0000121434801F023FB002401AD4FF00208ED +:105CE00005EBC4008188ADF800108DF80280807942 +:105CF0008DF8030055F83400694601F0B3FA641CCE +:105D0000BC42EDD3344808211030016010210160FD +:105D1000304980141031086007A800F00BFF3149AA +:105D20000798B0FBF1F0274908602F484FF47A71CB +:105D30000068B0FBF1F0B0F1807F0BD220F07F4122 +:105D40004FF0E020491E4161284AF0211170866120 +:105D500007210161FEF7C2FE2548FFF793F9642091 +:105D6000FFF780FF0CB0BDE8F0811B4A1021143210 +:105D700011600821121F1160044640F2DB10154F1C +:105D8000151F44434E021437A7F1040C286880F015 +:105D900010002860286880F008002860A01EFFF727 +:105DA00061FF3E601920FFF75DFFCCF80060EDE772 +:105DB00010B111490F4808600C49104817390860A4 +:105DC00070470000880300204019010020A000084F +:105DD0000700400000080140000C01400010014095 +:105DE0000002300040420F00BC03002023ED00E021 +:105DF00000580040EFBEADDEF04F00200400FA0571 +:105E0000A148A04A41685318A04A136583688B4291 +:105E100003D9591A9164436004E0C1F5807191641B +:105E20000021416099480121443000F059BD10B56E +:105E30004FF4005000F06AFD94480021443000F017 +:105E40004FFD9148001D03C8814202D0BDE81040BB +:105E5000D6E710BD2DE9F04192B004464FF4007032 +:105E6000ADF83C0002208DF83E001820884D8DF8DA +:105E70003F000FA9284601F0F5F92815ADF83C00C0 +:105E800048208DF83F000FA9284601F0EBF90E20BD +:105E90008DF8400001218DF841108DF842108DF8E9 +:105EA000431010A800F0CBFB0B940024ADF8344055 +:105EB0000C20DFF8E081ADF83040ADF83600ADF8E9 +:105EC0003240ADF838400BA9404601F023F96F4F3E +:105ED0005837384600F07AFCA81408F104050095FC +:105EE000CDE909046C48CDE9010480260494CDE98C +:105EF0000564A81503902020CDE90740694638467F +:105F000000F0D1FC0121384600F0EAFC01224021DA +:105F1000404601F079F9384600F0F5FC5A495B4FEC +:105F200044370860384600F051FC1020029000957C +:105F30000494CDE90564079469463846089400F056 +:105F4000B2FC01220221384600F0D5FC4F4884649F +:105F500001228021404601F057F90121404601F01D +:105F600031F912B0BDE8F081484810B5583000F062 +:105F7000CAFC45490968884201D0012010BD0020B3 +:105F800010BD4148D0E90110814201D10120704784 +:105F9000002070473C49404B0A68C2F58070185C8D +:105FA000521E0A6002D14FF480720A607047364A6E +:105FB000344B91685854491CC8B290603348406CC7 +:105FC000C00700D11CE7704710B5044602E0641C0E +:105FD000FFF7EDFF20780028F9D110BD70B50D4610 +:105FE0000646012186B0480400F0FBFD26208DF80E +:105FF000100001208DF8110002218DF812108DF88B +:10600000130004A800F01BFB0820ADF814000424C2 +:106010008DF8174005A91E4801F024F90020ADF8BD +:106020000800ADF80A40ADF804001C4CADF80600BD +:10603000ADF80C0000966946204601F06BF801228D +:1060400040F22551204601F0C7F80121204601F019 +:10605000B9F80D48C56006B070BD70B50F4D40F27F +:106060002551284601F0DCF801280AD1064CE068E9 +:10607000002806D0284601F0CFF8E168BDE870405E +:10608000084770BDE6080020900300200000024091 +:106090000008014000380140E607002000440040AD +:1060A000FEB5384C0125207878B1012822D002288D +:1060B0001FD164208DF8000033488DF80150002670 +:1060C0004078A0B38DF8025043E07A208DF80000AC +:1060D0002E486B460222B0F90000FF21C0F1B40047 +:1060E00000EBD07040108DF801006D20FFF763F9D0 +:1060F0002570FEBD264979208DF80000B1F9000019 +:106100000A2290FBF2F010F15A0301D5002003E0BF +:106110005A30B42800DDB4208DF80100B1F9020036 +:1061200090FBF2F010F15A0102D5002004E00EE0DD +:106130005A30B42800DDB4208DF802006B460322EB +:10614000FF216D20FFF737F902202070FEBD8DF88A +:1061500002606B460322FF216D20FFF72CF92670A9 +:10616000FEBD08B56B208DF800000A208DF80100F7 +:106170008DF802006B460322FF216D20FFF71BF90B +:1061800008BD0000A0030020A4050020400200205C +:10619000C8000020B0F90010CA1701EB92718910F5 +:1061A0000180B0F90210CA1701EB92718910418089 +:1061B000B0F904104942CA1701EB9271891081802D +:1061C00070471CB504466B46062243216820FFF742 +:1061D00039F9BDF8000040BA2080BDF8020040BA8D +:1061E0006080BDF8040040BAA0801CBD10B58022BC +:1061F0006B216820FFF720F90520FFF733FD00220F +:1062000019216820FFF718F903226B216820FFF796 +:1062100013F903221A216820FFF70EF918221B2117 +:10622000BDE810406820FFF707B9B0F90210B0F9D7 +:106230000020CB1701EB5371C91001805142CA17DE +:1062400001EB5271C9104180B0F90410CA1701EB7B +:106250005271C910818070471CB504466B460622F6 +:106260003B216820FFF7EEF8BDF8000040BA20801F +:10627000BDF8020040BA6080BDF8040040BAA080BA +:106280001CBD1F4810B5007814280FD015280DD05C +:1062900054280BD0552809D010221C216820FFF764 +:1062A000CBF8184940F2FF30088010BD0822F4E70F +:1062B00038B504460D462320FFF7D4FC6B46012277 +:1062C00075216820FFF7BEF8002804D09DF8000073 +:1062D000682801D0002038BD094B01220C2168201C +:1062E000FFF7B0F808482060084860600848A060E0 +:1062F00008482860084868600848A860012038BD40 +:10630000A1030020FC0100208362000859620008FC +:106310002B620008ED610008C36100089561000868 +:10632000B0F900104942CA1701EB9271891001803F +:10633000B0F902104942CA1701EB927189104180ED +:10634000B0F90410CA1701EB92718910818070476F +:106350001CB504466B46062201211C20FFF772F88B +:10636000BDF8000040BA00B22080BDF802108010D5 +:1063700049BA09B26180BDF80420208052BA881061 +:1063800012B260809010A0801CBD10B500222A219E +:106390001C20FFF751F802220E211C20FFF74CF8B9 +:1063A00003220F211C20FFF747F812222B211C206B +:1063B000FFF742F802222C211C20FFF73DF80122B2 +:1063C0002D211C20FFF738F800222E211C20FFF77A +:1063D00033F805222A211C20FFF72EF811494FF42B +:1063E0008070088010BD38B5044600208DF800008C +:1063F0006B4601220D211C20FFF724F828B19DF8DF +:1064000000002A2803D01A2801D0002038BD0649F0 +:106410002160064961600649A160064908700120B3 +:1064200038BD0000FC0100208B63000851630008A8 +:1064300021630008A203002010B5444C4448A18801 +:1064400000F062FF18B1FFF7EAFBA0600AE0FFF777 +:10645000E6FBA168884205D9401A3B2190FBF1F088 +:1064600061690880E068BDE8104000F0A1BAE3E788 +:10647000E2E7FEB50125354C022110B1012810D10B +:1064800009E04FF4807060804000A080E060092047 +:106490002070172004E06580A180E160257007204E +:1064A00060706088ADF8000010268DF80360284FFA +:1064B0008DF802106946384600F0D4FEA088ADF889 +:1064C000000004208DF803006946384600F0CAFE3B +:1064D0002178012000F04CFFE06800F069FAE068E4 +:1064E000019000208DF808008DF809608DF80A50A1 +:1064F00001A800F019FA94F9010000F01F018D4085 +:1065000040094FF0E02101EB8000C0F80051FFF797 +:106510009BFB3C382061FEBD70B50546FFF794FB40 +:106520000A4C21693C3188420FD3C4E90405084D67 +:106530006188284600F0EFFE0B20FFF788FB61889A +:106540002846BDE8704000F0E8BE70BDA4030020FE :10655000000C0140324810B5016841F001010160B2 :106560004168304A1140416001682F4A1140016082 :10657000016821F480210160416821F4FE0141603D diff --git a/src/drv_bmp085.c b/src/drv_bmp085.c index 7ca7ce077..139ea1ba5 100755 --- a/src/drv_bmp085.c +++ b/src/drv_bmp085.c @@ -96,7 +96,7 @@ bool bmp085Init(void) // PC13, PC14 (Barometer XCLR reset output, EOC input) GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; diff --git a/src/drv_hcsr04.c b/src/drv_hcsr04.c index c69f47393..83c2fe827 100644 --- a/src/drv_hcsr04.c +++ b/src/drv_hcsr04.c @@ -84,7 +84,7 @@ void hcsr04_init(sonar_config_t config) // tp - trigger pin GPIO_InitStructure.GPIO_Pin = trigger_pin; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); // ep - echo pin diff --git a/src/drv_i2c.c b/src/drv_i2c.c index 51c9fbad9..45090cdb9 100755 --- a/src/drv_i2c.c +++ b/src/drv_i2c.c @@ -265,7 +265,7 @@ void i2cInit(I2C_TypeDef *I2C) // Init pins GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; GPIO_Init(GPIOB, &GPIO_InitStructure); @@ -313,7 +313,7 @@ static void i2cUnstick(void) uint8_t i; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; GPIO_Init(GPIOB, &GPIO_InitStructure); @@ -345,7 +345,7 @@ static void i2cUnstick(void) // Init pins GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; GPIO_Init(GPIOB, &GPIO_InitStructure); } diff --git a/src/drv_i2c_soft.c b/src/drv_i2c_soft.c new file mode 100644 index 000000000..27a88076e --- /dev/null +++ b/src/drv_i2c_soft.c @@ -0,0 +1,216 @@ +#include "board.h" + +// Software I2C driver, using same pins as hardware I2C, with hw i2c module disabled. +// SCL PB10 +// SDA PB11 + + +#ifdef SOFT_I2C + +#define SCL_H GPIOB->BSRR = GPIO_Pin_10 /* GPIO_SetBits(GPIOB , GPIO_Pin_10) */ +#define SCL_L GPIOB->BRR = GPIO_Pin_10 /* GPIO_ResetBits(GPIOB , GPIO_Pin_10) */ + +#define SDA_H GPIOB->BSRR = GPIO_Pin_11 /* GPIO_SetBits(GPIOB , GPIO_Pin_11) */ +#define SDA_L GPIOB->BRR = GPIO_Pin_11 /* GPIO_ResetBits(GPIOB , GPIO_Pin_11) */ + +#define SCL_read GPIOB->IDR & GPIO_Pin_10 /* GPIO_ReadInputDataBit(GPIOB , GPIO_Pin_10) */ +#define SDA_read GPIOB->IDR & GPIO_Pin_11 /* GPIO_ReadInputDataBit(GPIOB , GPIO_Pin_11) */ + +static void I2C_delay(void) +{ + volatile int i = 7; + while (i) { + i--; + } +} + +static bool I2C_Start(void) +{ + SDA_H; + SCL_H; + I2C_delay(); + if (!SDA_read) + return false; + SDA_L; + I2C_delay(); + if (SDA_read) + return false; + SDA_L; + I2C_delay(); + return true; +} + +static void I2C_Stop(void) +{ + SCL_L; + I2C_delay(); + SDA_L; + I2C_delay(); + SCL_H; + I2C_delay(); + SDA_H; + I2C_delay(); +} + +static void I2C_Ack(void) +{ + SCL_L; + I2C_delay(); + SDA_L; + I2C_delay(); + SCL_H; + I2C_delay(); + SCL_L; + I2C_delay(); +} + +static void I2C_NoAck(void) +{ + SCL_L; + I2C_delay(); + SDA_H; + I2C_delay(); + SCL_H; + I2C_delay(); + SCL_L; + I2C_delay(); +} + +static bool I2C_WaitAck(void) +{ + SCL_L; + I2C_delay(); + SDA_H; + I2C_delay(); + SCL_H; + I2C_delay(); + if (SDA_read) { + SCL_L; + return false; + } + SCL_L; + return true; +} + +static void I2C_SendByte(uint8_t byte) +{ + uint8_t i = 8; + while (i--) { + SCL_L; + I2C_delay(); + if (byte & 0x80) + SDA_H; + else + SDA_L; + byte <<= 1; + I2C_delay(); + SCL_H; + I2C_delay(); + } + SCL_L; +} + +static uint8_t I2C_ReceiveByte(void) +{ + uint8_t i = 8; + uint8_t byte = 0; + + SDA_H; + while (i--) { + byte <<= 1; + SCL_L; + I2C_delay(); + SCL_H; + I2C_delay(); + if (SDA_read) { + byte |= 0x01; + } + } + SCL_L; + return byte; +} + +void i2cInit(I2C_TypeDef * I2C) +{ + GPIO_InitTypeDef gpio; + + gpio.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11; + gpio.GPIO_Speed = GPIO_Speed_2MHz; + gpio.GPIO_Mode = GPIO_Mode_Out_OD; + GPIO_Init(GPIOB, &gpio); +} + +bool i2cWriteBuffer(uint8_t addr, uint8_t reg, uint8_t len, uint8_t * data) +{ + int i; + if (!I2C_Start()) + return false; + I2C_SendByte(addr << 1 | I2C_Direction_Transmitter); + if (!I2C_WaitAck()) { + I2C_Stop(); + return false; + } + I2C_SendByte(reg); + I2C_WaitAck(); + for (i = 0; i < len; i++) { + I2C_SendByte(data[i]); + if (!I2C_WaitAck()) { + I2C_Stop(); + return false; + } + } + I2C_Stop(); + return true; +} + +bool i2cWrite(uint8_t addr, uint8_t reg, uint8_t data) +{ + if (!I2C_Start()) + return false; + I2C_SendByte(addr << 1 | I2C_Direction_Transmitter); + if (!I2C_WaitAck()) { + I2C_Stop(); + return false; + } + I2C_SendByte(reg); + I2C_WaitAck(); + I2C_SendByte(data); + I2C_WaitAck(); + I2C_Stop(); + return true; +} + +bool i2cRead(uint8_t addr, uint8_t reg, uint8_t len, uint8_t *buf) +{ + if (!I2C_Start()) + return false; + I2C_SendByte(addr << 1 | I2C_Direction_Transmitter); + if (!I2C_WaitAck()) { + I2C_Stop(); + return false; + } + I2C_SendByte(reg); + I2C_WaitAck(); + I2C_Start(); + I2C_SendByte(addr << 1 | I2C_Direction_Receiver); + I2C_WaitAck(); + while (len) { + *buf = I2C_ReceiveByte(); + if (len == 1) + I2C_NoAck(); + else + I2C_Ack(); + buf++; + len--; + } + I2C_Stop(); + return true; +} + +uint16_t i2cGetErrorCounter(void) +{ + // TODO maybe fix this, but since this is test code, doesn't matter. + return 0; +} + +#endif diff --git a/src/drv_pwm.c b/src/drv_pwm.c index 9615f5096..40f1e39e7 100755 --- a/src/drv_pwm.c +++ b/src/drv_pwm.c @@ -165,7 +165,7 @@ static void pwmInitializeInput(bool usePPM) // Configure TIM2_CH1 for PPM input GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); // Input timer on TIM2 only for PPM @@ -200,7 +200,7 @@ static void pwmInitializeInput(bool usePPM) // Configure TIM2, TIM3 all 4 channels GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIO_Init(GPIOB, &GPIO_InitStructure); @@ -276,7 +276,7 @@ bool pwmInit(drv_pwm_config_t *init) // Configure TIM2_CH1 for input GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); #if 0 @@ -307,7 +307,7 @@ bool pwmInit(drv_pwm_config_t *init) // Output pins GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9; GPIO_Init(GPIOB, &GPIO_InitStructure); @@ -361,7 +361,7 @@ bool pwmInit(drv_pwm_config_t *init) // PWM 7,8,9,10 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIO_Init(GPIOB, &GPIO_InitStructure); diff --git a/src/drv_pwm_fy90q.c b/src/drv_pwm_fy90q.c index 469ecad7b..365d444f9 100644 --- a/src/drv_pwm_fy90q.c +++ b/src/drv_pwm_fy90q.c @@ -167,7 +167,7 @@ static void pwmInitializeInput(bool usePPM) // Configure TIM2_CH1 for PPM input GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); // Input timer on TIM2 only for PPM @@ -202,7 +202,7 @@ static void pwmInitializeInput(bool usePPM) // Configure TIM2 all 4 channels GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); // TODO Configure EXTI4 1 channel @@ -285,7 +285,7 @@ bool pwmInit(drv_pwm_config_t *init) // Output pins (4x) GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); // Output timer diff --git a/src/drv_system.c b/src/drv_system.c index 43b78c8c3..84a0e97fa 100755 --- a/src/drv_system.c +++ b/src/drv_system.c @@ -75,7 +75,7 @@ void systemInit(void) // Configure gpio for (i = 0; i < gpio_count; i++) { GPIO_InitStructure.GPIO_Pin = gpio_cfg[i].pin; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = gpio_cfg[i].mode; GPIO_Init(gpio_cfg[i].gpio, &GPIO_InitStructure); } diff --git a/src/drv_uart.c b/src/drv_uart.c index b84c5ada1..42f6dc591 100755 --- a/src/drv_uart.c +++ b/src/drv_uart.c @@ -49,7 +49,7 @@ void uartInit(uint32_t speed) // USART1_RX PA10 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;