939 lines
45 KiB
C
939 lines
45 KiB
C
#include "UserApi.h"
|
||
#include "stdio.h"
|
||
#include "string.h"
|
||
#include "xtal.h"
|
||
#include "bl_ic_config.h"
|
||
#include "SpbApi.h"
|
||
#include "SpbDriverApi.h"
|
||
#include "FbApi.h"
|
||
#include "BfiApi.h"
|
||
#include "OtaApi.h"
|
||
#include "SocApi.h"
|
||
#include "VsyncApi.h"
|
||
#include "usmart_cmd.h"
|
||
#include "PvdApi.h"
|
||
|
||
#include "ram_bitband.h"
|
||
|
||
|
||
uint8_t com_recv_buf[256]= {0};
|
||
uint8_t com_send_buf[64]= {0};
|
||
|
||
#if defined HY8810 || HY8602 || HY8811 || HY8603 || HY8822 || HY8612
|
||
uint8_t dis_table[2]= {DIS1,DIS2};
|
||
#endif
|
||
|
||
#if (MODEL_TYPE== A5H_85_28_16_448_HY8108)
|
||
uint8_t dip_table[MAXDIP]= {DIP1,DIP2,DIP3,DIP4,DIP5,DIP6,DIP7,DIP8,DIP9,DIP10,DIP11,DIP12};
|
||
//uint8_t dos_table[MAXDIP]= {DOS1,DOS2,DOS3,DOS4,DOS5,DOS6,DOS7,DOS8,DOS9,DOS10,DOS11,DOS12};
|
||
#elif (MODEL_TYPE== A5HP_65_40_22_880_HY8108)
|
||
uint8_t dip_table[MAXDIP]= {DIP1,DIP2,DIP3,DIP4,DIP5,DIP6,DIP7,DIP8,DIP11,DIP12};
|
||
//uint8_t dos_table[MAXDIP]= {DOS1,DOS2,DOS3,DOS4,DOS5,DOS6,DOS7,DOS8,DOS11,DOS12};
|
||
#elif (MODEL_TYPE== A5HP_75_44_24_1056_HY8108)
|
||
uint8_t dip_table[MAXDIP]= {DIP1,DIP2,DIP3,DIP5,DIP6,DIP7,DIP8,DIP9,DIP10,DIP11,DIP12};
|
||
//uint8_t dos_table[MAXDIP]= {DOS1,DOS2,DOS3,DOS5,DOS6,DOS7,DOS8,DOS9,DOS10,DOS11,DOS12};
|
||
#elif (MODEL_TYPE== A5HP_85_48_28_1344_HY8108)
|
||
uint8_t dip_table[MAXDIP]= {DIP1,DIP2,DIP3,DIP4,DIP5,DIP6,DIP7,DIP8,DIP9,DIP10,DIP11,DIP12};
|
||
//uint8_t dos_table[MAXDIP]= {DOS1,DOS2,DOS3,DOS4,DOS5,DOS6,DOS7,DOS8,DOS9,DOS10,DOS11,DOS12};
|
||
#endif
|
||
|
||
uint16_t Temperature_value[32]= {
|
||
|
||
1550,1525,1500,1475,1450,1425,1400,1375,1350,1325,1300,1275,1250,1225,1200,1175,
|
||
1150,1125,1100,1075,1050,1025,1000,975,950,925,900,875,850,825,800,775,
|
||
|
||
|
||
};
|
||
#if (MODEL_TYPE == A5H_85_28_16_448_HY8108 )
|
||
const uint16_t map_tab[ZONESIZE] = {
|
||
2087,2055,39,7,6183,6151,4135,4103,10279,10247,8231,8199,14375,14343,12327,12295,18471,18439,16423,16391,22567,22535,20519,20487,22599,20551,18503,16455,
|
||
2086,2054,38,6,6182,6150,4134,4102,10278,10246,8230,8198,14374,14342,12326,12294,18470,18438,16422,16390,22566,22534,20518,20486,22598,20550,18502,16454,
|
||
2085,2053,37,5,6181,6149,4133,4101,10277,10245,8229,8197,14373,14341,12325,12293,18469,18437,16421,16389,22565,22533,20517,20485,22597,20549,18501,16453,
|
||
2084,2052,36,4,6180,6148,4132,4100,10276,10244,8228,8196,14372,14340,12324,12292,18468,18436,16420,16388,22564,22532,20516,20484,22596,20548,18500,16452,
|
||
2083,2051,35,3,6179,6147,4131,4099,10275,10243,8227,8195,14371,14339,12323,12291,18467,18435,16419,16387,22563,22531,20515,20483,22595,20547,18499,16451,
|
||
2082,2050,34,2,6178,6146,4130,4098,10274,10242,8226,8194,14370,14338,12322,12290,18466,18434,16418,16386,22562,22530,20514,20482,22594,20546,18498,16450,
|
||
2081,2049,33,1,6177,6145,4129,4097,10273,10241,8225,8193,14369,14337,12321,12289,18465,18433,16417,16385,22561,22529,20513,20481,22593,20545,18497,16449,
|
||
2080,2048,32,0,6176,6144,4128,4096,10272,10240,8224,8192,14368,14336,12320,12288,18464,18432,16416,16384,22560,22528,20512,20480,22592,20544,18496,16448,
|
||
2103,2071,55,23,6199,6167,4151,4119,10295,10263,8247,8215,14391,14359,12343,12311,18487,18455,16439,16407,22583,22551,20535,20503,22615,20567,18519,16471,
|
||
2102,2070,54,22,6198,6166,4150,4118,10294,10262,8246,8214,14390,14358,12342,12310,18486,18454,16438,16406,22582,22550,20534,20502,22614,20566,18518,16470,
|
||
2101,2069,53,21,6197,6165,4149,4117,10293,10261,8245,8213,14389,14357,12341,12309,18485,18453,16437,16405,22581,22549,20533,20501,22613,20565,18517,16469,
|
||
2100,2068,52,20,6196,6164,4148,4116,10292,10260,8244,8212,14388,14356,12340,12308,18484,18452,16436,16404,22580,22548,20532,20500,22612,20564,18516,16468,
|
||
2099,2067,51,19,6195,6163,4147,4115,10291,10259,8243,8211,14387,14355,12339,12307,18483,18451,16435,16403,22579,22547,20531,20499,22611,20563,18515,16467,
|
||
2098,2066,50,18,6194,6162,4146,4114,10290,10258,8242,8210,14386,14354,12338,12306,18482,18450,16434,16402,22578,22546,20530,20498,22610,20562,18514,16466,
|
||
2097,2065,49,17,6193,6161,4145,4113,10289,10257,8241,8209,14385,14353,12337,12305,18481,18449,16433,16401,22577,22545,20529,20497,22609,20561,18513,16465,
|
||
2096,2064,48,16,6192,6160,4144,4112,10288,10256,8240,8208,14384,14352,12336,12304,18480,18448,16432,16400,22576,22544,20528,20496,22608,20560,18512,16464,
|
||
};
|
||
#elif (MODEL_TYPE== A5HP_65_40_22_880_HY8108)
|
||
const uint16_t map_tab[ZONESIZE] = {
|
||
6,55,102,151,2054,2103,2150,2199,8198,8247,8294,8343,10246,10295,10342,10391,16390,16439,16486,16535,18438,18487,18534,18583,4102,4151,4198,4247,6150,6199,6246,6295,12294,12343,12390,12439,14342,14391,14438,14487,
|
||
5,54,101,150,2053,2102,2149,2198,8197,8246,8293,8342,10245,10294,10341,10390,16389,16438,16485,16534,18437,18486,18533,18582,4101,4150,4197,4246,6149,6198,6245,6294,12293,12342,12389,12438,14341,14390,14437,14486,
|
||
4,53,100,149,2052,2101,2148,2197,8196,8245,8292,8341,10244,10293,10340,10389,16388,16437,16484,16533,18436,18485,18532,18581,4100,4149,4196,4245,6148,6197,6244,6293,12292,12341,12388,12437,14340,14389,14436,14485,
|
||
3,52,99,148,2051,2100,2147,2196,8195,8244,8291,8340,10243,10292,10339,10388,16387,16436,16483,16532,18435,18484,18531,18580,4099,4148,4195,4244,6147,6196,6243,6292,12291,12340,12387,12436,14339,14388,14435,14484,
|
||
2,51,98,147,2050,2099,2146,2195,8194,8243,8290,8339,10242,10291,10338,10387,16386,16435,16482,16531,18434,18483,18530,18579,4098,4147,4194,4243,6146,6195,6242,6291,12290,12339,12386,12435,14338,14387,14434,14483,
|
||
1,50,97,146,2049,2098,2145,2194,8193,8242,8289,8338,10241,10290,10337,10386,16385,16434,16481,16530,18433,18482,18529,18578,4097,4146,4193,4242,6145,6194,6241,6290,12289,12338,12385,12434,14337,14386,14433,14482,
|
||
0,49,96,145,2048,2097,2144,2193,8192,8241,8288,8337,10240,10289,10336,10385,16384,16433,16480,16529,18432,18481,18528,18577,4096,4145,4192,4241,6144,6193,6240,6289,12288,12337,12384,12433,14336,14385,14432,14481,
|
||
86,48,182,144,2134,2096,2230,2192,8278,8240,8374,8336,10326,10288,10422,10384,16470,16432,16566,16528,18518,18480,18614,18576,4182,4144,4278,4240,6230,6192,6326,6288,12374,12336,12470,12432,14422,14384,14518,14480,
|
||
85,38,181,134,2133,2086,2229,2182,8277,8230,8373,8326,10325,10278,10421,10374,16469,16422,16565,16518,18517,18470,18613,18566,4181,4134,4277,4230,6229,6182,6325,6278,12373,12326,12469,12422,14421,14374,14517,14470,
|
||
84,37,180,133,2132,2085,2228,2181,8276,8229,8372,8325,10324,10277,10420,10373,16468,16421,16564,16517,18516,18469,18612,18565,4180,4133,4276,4229,6228,6181,6324,6277,12372,12325,12468,12421,14420,14373,14516,14469,
|
||
83,36,179,132,2131,2084,2227,2180,8275,8228,8371,8324,10323,10276,10419,10372,16467,16420,16563,16516,18515,18468,18611,18564,4179,4132,4275,4228,6227,6180,6323,6276,12371,12324,12467,12420,14419,14372,14515,14468,
|
||
82,35,178,131,2130,2083,2226,2179,8274,8227,8370,8323,10322,10275,10418,10371,16466,16419,16562,16515,18514,18467,18610,18563,4178,4131,4274,4227,6226,6179,6322,6275,12370,12323,12466,12419,14418,14371,14514,14467,
|
||
81,34,177,130,2129,2082,2225,2178,8273,8226,8369,8322,10321,10274,10417,10370,16465,16418,16561,16514,18513,18466,18609,18562,4177,4130,4273,4226,6225,6178,6321,6274,12369,12322,12465,12418,14417,14370,14513,14466,
|
||
80,33,176,129,2128,2081,2224,2177,8272,8225,8368,8321,10320,10273,10416,10369,16464,16417,16560,16513,18512,18465,18608,18561,4176,4129,4272,4225,6224,6177,6320,6273,12368,12321,12464,12417,14416,14369,14512,14465,
|
||
71,23,167,119,2119,2071,2215,2167,8263,8215,8359,8311,10311,10263,10407,10359,16455,16407,16551,16503,18503,18455,18599,18551,4167,4119,4263,4215,6215,6167,6311,6263,12359,12311,12455,12407,14407,14359,14503,14455,
|
||
70,22,166,118,2118,2070,2214,2166,8262,8214,8358,8310,10310,10262,10406,10358,16454,16406,16550,16502,18502,18454,18598,18550,4166,4118,4262,4214,6214,6166,6310,6262,12358,12310,12454,12406,14406,14358,14502,14454,
|
||
69,21,165,117,2117,2069,2213,2165,8261,8213,8357,8309,10309,10261,10405,10357,16453,16405,16549,16501,18501,18453,18597,18549,4165,4117,4261,4213,6213,6165,6309,6261,12357,12309,12453,12405,14405,14357,14501,14453,
|
||
68,20,164,116,2116,2068,2212,2164,8260,8212,8356,8308,10308,10260,10404,10356,16452,16404,16548,16500,18500,18452,18596,18548,4164,4116,4260,4212,6212,6164,6308,6260,12356,12308,12452,12404,14404,14356,14500,14452,
|
||
67,19,163,115,2115,2067,2211,2163,8259,8211,8355,8307,10307,10259,10403,10355,16451,16403,16547,16499,18499,18451,18595,18547,4163,4115,4259,4211,6211,6163,6307,6259,12355,12307,12451,12403,14403,14355,14499,14451,
|
||
66,18,162,114,2114,2066,2210,2162,8258,8210,8354,8306,10306,10258,10402,10354,16450,16402,16546,16498,18498,18450,18594,18546,4162,4114,4258,4210,6210,6162,6306,6258,12354,12306,12450,12402,14402,14354,14498,14450,
|
||
65,17,161,113,2113,2065,2209,2161,8257,8209,8353,8305,10305,10257,10401,10353,16449,16401,16545,16497,18497,18449,18593,18545,4161,4113,4257,4209,6209,6161,6305,6257,12353,12305,12449,12401,14401,14353,14497,14449,
|
||
64,16,160,112,2112,2064,2208,2160,8256,8208,8352,8304,10304,10256,10400,10352,16448,16400,16544,16496,18496,18448,18592,18544,4160,4112,4256,4208,6208,6160,6304,6256,12352,12304,12448,12400,14400,14352,14496,14448,
|
||
|
||
};
|
||
#elif (MODEL_TYPE== A5HP_75_44_24_1056_HY8108)
|
||
const uint16_t map_tab[ZONESIZE] = {
|
||
14375,14423,14471,14519,16423,16471,16519,16567,10279,10327,10375,10423,12327,12375,12423,12471,4231,4279,4135,4183,18471,18519,18567,18615,20519,20567,20615,20663,6183,6231,6279,6327,8231,8279,8327,8375,39,87,135,183,2087,2135,2183,2231,
|
||
14374,14422,14470,14518,16422,16470,16518,16566,10278,10326,10374,10422,12326,12374,12422,12470,4230,4278,4134,4182,18470,18518,18566,18614,20518,20566,20614,20662,6182,6230,6278,6326,8230,8278,8326,8374,38,86,134,182,2086,2134,2182,2230,
|
||
14373,14421,14469,14517,16421,16469,16517,16565,10277,10325,10373,10421,12325,12373,12421,12469,4229,4277,4133,4181,18469,18517,18565,18613,20517,20565,20613,20661,6181,6229,6277,6325,8229,8277,8325,8373,37,85,133,181,2085,2133,2181,2229,
|
||
14372,14420,14468,14516,16420,16468,16516,16564,10276,10324,10372,10420,12324,12372,12420,12468,4228,4276,4132,4180,18468,18516,18564,18612,20516,20564,20612,20660,6180,6228,6276,6324,8228,8276,8324,8372,36,84,132,180,2084,2132,2180,2228,
|
||
14371,14419,14467,14515,16419,16467,16515,16563,10275,10323,10371,10419,12323,12371,12419,12467,4227,4275,4131,4179,18467,18515,18563,18611,20515,20563,20611,20659,6179,6227,6275,6323,8227,8275,8323,8371,35,83,131,179,2083,2131,2179,2227,
|
||
14370,14418,14466,14514,16418,16466,16514,16562,10274,10322,10370,10418,12322,12370,12418,12466,4226,4274,4130,4178,18466,18514,18562,18610,20514,20562,20610,20658,6178,6226,6274,6322,8226,8274,8322,8370,34,82,130,178,2082,2130,2178,2226,
|
||
14369,14417,14465,14513,16417,16465,16513,16561,10273,10321,10369,10417,12321,12369,12417,12465,4225,4273,4129,4177,18465,18513,18561,18609,20513,20561,20609,20657,6177,6225,6273,6321,8225,8273,8321,8369,33,81,129,177,2081,2129,2177,2225,
|
||
14368,14416,14464,14512,16416,16464,16512,16560,10272,10320,10368,10416,12320,12368,12416,12464,4224,4272,4128,4176,18464,18512,18560,18608,20512,20560,20608,20656,6176,6224,6272,6320,8224,8272,8320,8368,32,80,128,176,2080,2128,2176,2224,
|
||
14359,14407,14455,14503,16407,16455,16503,16551,10263,10311,10359,10407,12311,12359,12407,12455,4215,4263,4119,4167,18455,18503,18551,18599,20503,20551,20599,20647,6167,6215,6263,6311,8215,8263,8311,8359,23,71,119,167,2071,2119,2167,2215,
|
||
14358,14406,14454,14502,16406,16454,16502,16550,10262,10310,10358,10406,12310,12358,12406,12454,4214,4262,4118,4166,18454,18502,18550,18598,20502,20550,20598,20646,6166,6214,6262,6310,8214,8262,8310,8358,22,70,118,166,2070,2118,2166,2214,
|
||
14357,14405,14453,14501,16405,16453,16501,16549,10261,10309,10357,10405,12309,12357,12405,12453,4213,4261,4117,4165,18453,18501,18549,18597,20501,20549,20597,20645,6165,6213,6261,6309,8213,8261,8309,8357,21,69,117,165,2069,2117,2165,2213,
|
||
14356,14404,14452,14500,16404,16452,16500,16548,10260,10308,10356,10404,12308,12356,12404,12452,4212,4260,4116,4164,18452,18500,18548,18596,20500,20548,20596,20644,6164,6212,6260,6308,8212,8260,8308,8356,20,68,116,164,2068,2116,2164,2212,
|
||
14355,14403,14451,14499,16403,16451,16499,16547,10259,10307,10355,10403,12307,12355,12403,12451,4211,4259,4115,4163,18451,18499,18547,18595,20499,20547,20595,20643,6163,6211,6259,6307,8211,8259,8307,8355,19,67,115,163,2067,2115,2163,2211,
|
||
14354,14402,14450,14498,16402,16450,16498,16546,10258,10306,10354,10402,12306,12354,12402,12450,4210,4258,4114,4162,18450,18498,18546,18594,20498,20546,20594,20642,6162,6210,6258,6306,8210,8258,8306,8354,18,66,114,162,2066,2114,2162,2210,
|
||
14353,14401,14449,14497,16401,16449,16497,16545,10257,10305,10353,10401,12305,12353,12401,12449,4209,4257,4113,4161,18449,18497,18545,18593,20497,20545,20593,20641,6161,6209,6257,6305,8209,8257,8305,8353,17,65,113,161,2065,2113,2161,2209,
|
||
14352,14400,14448,14496,16400,16448,16496,16544,10256,10304,10352,10400,12304,12352,12400,12448,4208,4256,4112,4160,18448,18496,18544,18592,20496,20544,20592,20640,6160,6208,6256,6304,8208,8256,8304,8352,16,64,112,160,2064,2112,2160,2208,
|
||
14343,14391,14439,14487,16391,16439,16487,16535,10247,10295,10343,10391,12295,12343,12391,12439,4199,4247,4103,4151,18439,18487,18535,18583,20487,20535,20583,20631,6151,6199,6247,6295,8199,8247,8295,8343,7,55,103,151,2055,2103,2151,2199,
|
||
14342,14390,14438,14486,16390,16438,16486,16534,10246,10294,10342,10390,12294,12342,12390,12438,4198,4246,4102,4150,18438,18486,18534,18582,20486,20534,20582,20630,6150,6198,6246,6294,8198,8246,8294,8342,6,54,102,150,2054,2102,2150,2198,
|
||
14341,14389,14437,14485,16389,16437,16485,16533,10245,10293,10341,10389,12293,12341,12389,12437,4197,4245,4101,4149,18437,18485,18533,18581,20485,20533,20581,20629,6149,6197,6245,6293,8197,8245,8293,8341,5,53,101,149,2053,2101,2149,2197,
|
||
14340,14388,14436,14484,16388,16436,16484,16532,10244,10292,10340,10388,12292,12340,12388,12436,4196,4244,4100,4148,18436,18484,18532,18580,20484,20532,20580,20628,6148,6196,6244,6292,8196,8244,8292,8340,4,52,100,148,2052,2100,2148,2196,
|
||
14339,14387,14435,14483,16387,16435,16483,16531,10243,10291,10339,10387,12291,12339,12387,12435,4195,4243,4099,4147,18435,18483,18531,18579,20483,20531,20579,20627,6147,6195,6243,6291,8195,8243,8291,8339,3,51,99,147,2051,2099,2147,2195,
|
||
14338,14386,14434,14482,16386,16434,16482,16530,10242,10290,10338,10386,12290,12338,12386,12434,4194,4242,4098,4146,18434,18482,18530,18578,20482,20530,20578,20626,6146,6194,6242,6290,8194,8242,8290,8338,2,50,98,146,2050,2098,2146,2194,
|
||
14337,14385,14433,14481,16385,16433,16481,16529,10241,10289,10337,10385,12289,12337,12385,12433,4193,4241,4097,4145,18433,18481,18529,18577,20481,20529,20577,20625,6145,6193,6241,6289,8193,8241,8289,8337,1,49,97,145,2049,2097,2145,2193,
|
||
14336,14384,14432,14480,16384,16432,16480,16528,10240,10288,10336,10384,12288,12336,12384,12432,4192,4240,4096,4144,18432,18480,18528,18576,20480,20528,20576,20624,6144,6192,6240,6288,8192,8240,8288,8336,0,48,96,144,2048,2096,2144,2192,
|
||
|
||
};
|
||
#elif (MODEL_TYPE== A5HP_85_48_28_1344_HY8108)
|
||
const uint16_t map_tab[ZONESIZE] = {
|
||
18564,18563,18452,18451,16516,16515,16404,16403,14468,14467,14356,14355,12420,12419,12308,12307,6276,6275,6164,6163,4228,4227,4116,4115,2180,2179,2068,2067,132,131,20,19,10372,10371,10260,10259,8324,8323,8212,8211,22660,22659,22548,22547,20612,20611,20500,20499,
|
||
18565,18562,18453,18450,16517,16514,16405,16402,14469,14466,14357,14354,12421,12418,12309,12306,6277,6274,6165,6162,4229,4226,4117,4114,2181,2178,2069,2066,133,130,21,18,10373,10370,10261,10258,8325,8322,8213,8210,22661,22658,22549,22546,20613,20610,20501,20498,
|
||
18615,18561,18503,18449,16567,16513,16455,16401,14519,14465,14407,14353,12471,12417,12359,12305,6327,6273,6215,6161,4279,4225,4167,4113,2231,2177,2119,2065,183,129,71,17,10423,10369,10311,10257,8375,8321,8263,8209,22711,22657,22599,22545,20663,20609,20551,20497,
|
||
18614,18560,18502,18448,16566,16512,16454,16400,14518,14464,14406,14352,12470,12416,12358,12304,6326,6272,6214,6160,4278,4224,4166,4112,2230,2176,2118,2064,182,128,70,16,10422,10368,10310,10256,8374,8320,8262,8208,22710,22656,22598,22544,20662,20608,20550,20496,
|
||
18613,18551,18501,18439,16565,16503,16453,16391,14517,14455,14405,14343,12469,12407,12357,12295,6325,6263,6213,6151,4277,4215,4165,4103,2229,2167,2117,2055,181,119,69,7,10421,10359,10309,10247,8373,8311,8261,8199,22709,22647,22597,22535,20661,20599,20549,20487,
|
||
18612,18550,18500,18438,16564,16502,16452,16390,14516,14454,14404,14342,12468,12406,12356,12294,6324,6262,6212,6150,4276,4214,4164,4102,2228,2166,2116,2054,180,118,68,6,10420,10358,10308,10246,8372,8310,8260,8198,22708,22646,22596,22534,20660,20598,20548,20486,
|
||
18611,18549,18499,18437,16563,16501,16451,16389,14515,14453,14403,14341,12467,12405,12355,12293,6323,6261,6211,6149,4275,4213,4163,4101,2227,2165,2115,2053,179,117,67,5,10419,10357,10307,10245,8371,8309,8259,8197,22707,22645,22595,22533,20659,20597,20547,20485,
|
||
18610,18548,18498,18436,16562,16500,16450,16388,14514,14452,14402,14340,12466,12404,12354,12292,6322,6260,6210,6148,4274,4212,4162,4100,2226,2164,2114,2052,178,116,66,4,10418,10356,10306,10244,8370,8308,8258,8196,22706,22644,22594,22532,20658,20596,20546,20484,
|
||
18609,18547,18497,18435,16561,16499,16449,16387,14513,14451,14401,14339,12465,12403,12353,12291,6321,6259,6209,6147,4273,4211,4161,4099,2225,2163,2113,2051,177,115,65,3,10417,10355,10305,10243,8369,8307,8257,8195,22705,22643,22593,22531,20657,20595,20545,20483,
|
||
18608,18546,18496,18434,16560,16498,16448,16386,14512,14450,14400,14338,12464,12402,12352,12290,6320,6258,6208,6146,4272,4210,4160,4098,2224,2162,2112,2050,176,114,64,2,10416,10354,10304,10242,8368,8306,8256,8194,22704,22642,22592,22530,20656,20594,20544,20482,
|
||
18599,18545,18487,18433,16551,16497,16439,16385,14503,14449,14391,14337,12455,12401,12343,12289,6311,6257,6199,6145,4263,4209,4151,4097,2215,2161,2103,2049,167,113,55,1,10407,10353,10295,10241,8359,8305,8247,8193,22695,22641,22583,22529,20647,20593,20535,20481,
|
||
18598,18544,18486,18432,16550,16496,16438,16384,14502,14448,14390,14336,12454,12400,12342,12288,6310,6256,6198,6144,4262,4208,4150,4096,2214,2160,2102,2048,166,112,54,0,10406,10352,10294,10240,8358,8304,8246,8192,22694,22640,22582,22528,20646,20592,20534,20480,
|
||
18597,18647,18485,18535,16549,16599,16437,16487,14501,14551,14389,14439,12453,12503,12341,12391,6309,6359,6197,6247,4261,4311,4149,4199,2213,2263,2101,2151,165,215,53,103,10405,10455,10293,10343,8357,8407,8245,8295,22693,22743,22581,22631,20645,20695,20533,20583,
|
||
18596,18646,18484,18534,16548,16598,16436,16486,14500,14550,14388,14438,12452,12502,12340,12390,6308,6358,6196,6246,4260,4310,4148,4198,2212,2262,2100,2150,164,214,52,102,10404,10454,10292,10342,8356,8406,8244,8294,22692,22742,22580,22630,20644,20694,20532,20582,
|
||
18595,18645,18483,18533,16547,16597,16435,16485,14499,14549,14387,14437,12451,12501,12339,12389,6307,6357,6195,6245,4259,4309,4147,4197,2211,2261,2099,2149,163,213,51,101,10403,10453,10291,10341,8355,8405,8243,8293,22691,22741,22579,22629,20643,20693,20531,20581,
|
||
18594,18644,18482,18532,16546,16596,16434,16484,14498,14548,14386,14436,12450,12500,12338,12388,6306,6356,6194,6244,4258,4308,4146,4196,2210,2260,2098,2148,162,212,50,100,10402,10452,10290,10340,8354,8404,8242,8292,22690,22740,22578,22628,20642,20692,20530,20580,
|
||
18593,18643,18481,18531,16545,16595,16433,16483,14497,14547,14385,14435,12449,12499,12337,12387,6305,6355,6193,6243,4257,4307,4145,4195,2209,2259,2097,2147,161,211,49,99,10401,10451,10289,10339,8353,8403,8241,8291,22689,22739,22577,22627,20641,20691,20529,20579,
|
||
18592,18642,18480,18530,16544,16594,16432,16482,14496,14546,14384,14434,12448,12498,12336,12386,6304,6354,6192,6242,4256,4306,4144,4194,2208,2258,2096,2146,160,210,48,98,10400,10450,10288,10338,8352,8402,8240,8290,22688,22738,22576,22626,20640,20690,20528,20578,
|
||
18583,18641,18471,18529,16535,16593,16423,16481,14487,14545,14375,14433,12439,12497,12327,12385,6295,6353,6183,6241,4247,4305,4135,4193,2199,2257,2087,2145,151,209,39,97,10391,10449,10279,10337,8343,8401,8231,8289,22679,22737,22567,22625,20631,20689,20519,20577,
|
||
18582,18640,18470,18528,16534,16592,16422,16480,14486,14544,14374,14432,12438,12496,12326,12384,6294,6352,6182,6240,4246,4304,4134,4192,2198,2256,2086,2144,150,208,38,96,10390,10448,10278,10336,8342,8400,8230,8288,22678,22736,22566,22624,20630,20688,20518,20576,
|
||
18581,18631,18469,18519,16533,16583,16421,16471,14485,14535,14373,14423,12437,12487,12325,12375,6293,6343,6181,6231,4245,4295,4133,4183,2197,2247,2085,2135,149,199,37,87,10389,10439,10277,10327,8341,8391,8229,8279,22677,22727,22565,22615,20629,20679,20517,20567,
|
||
18580,18630,18468,18518,16532,16582,16420,16470,14484,14534,14372,14422,12436,12486,12324,12374,6292,6342,6180,6230,4244,4294,4132,4182,2196,2246,2084,2134,148,198,36,86,10388,10438,10276,10326,8340,8390,8228,8278,22676,22726,22564,22614,20628,20678,20516,20566,
|
||
18579,18629,18467,18517,16531,16581,16419,16469,14483,14533,14371,14421,12435,12485,12323,12373,6291,6341,6179,6229,4243,4293,4131,4181,2195,2245,2083,2133,147,197,35,85,10387,10437,10275,10325,8339,8389,8227,8277,22675,22725,22563,22613,20627,20677,20515,20565,
|
||
18578,18628,18466,18516,16530,16580,16418,16468,14482,14532,14370,14420,12434,12484,12322,12372,6290,6340,6178,6228,4242,4292,4130,4180,2194,2244,2082,2132,146,196,34,84,10386,10436,10274,10324,8338,8388,8226,8276,22674,22724,22562,22612,20626,20676,20514,20564,
|
||
18577,18627,18465,18515,16529,16579,16417,16467,14481,14531,14369,14419,12433,12483,12321,12371,6289,6339,6177,6227,4241,4291,4129,4179,2193,2243,2081,2131,145,195,33,83,10385,10435,10273,10323,8337,8387,8225,8275,22673,22723,22561,22611,20625,20675,20513,20563,
|
||
18576,18626,18464,18514,16528,16578,16416,16466,14480,14530,14368,14418,12432,12482,12320,12370,6288,6338,6176,6226,4240,4290,4128,4178,2192,2242,2080,2130,144,194,32,82,10384,10434,10272,10322,8336,8386,8224,8274,22672,22722,22560,22610,20624,20674,20512,20562,
|
||
18567,18625,18455,18513,16519,16577,16407,16465,14471,14529,14359,14417,12423,12481,12311,12369,6279,6337,6167,6225,4231,4289,4119,4177,2183,2241,2071,2129,135,193,23,81,10375,10433,10263,10321,8327,8385,8215,8273,22663,22721,22551,22609,20615,20673,20503,20561,
|
||
18566,18624,18454,18512,16518,16576,16406,16464,14470,14528,14358,14416,12422,12480,12310,12368,6278,6336,6166,6224,4230,4288,4118,4176,2182,2240,2070,2128,134,192,22,80,10374,10432,10262,10320,8326,8384,8214,8272,22662,22720,22550,22608,20614,20672,20502,20560,
|
||
|
||
};
|
||
#endif
|
||
|
||
void Project_Message(void)
|
||
{
|
||
uint8_t i=0;
|
||
|
||
machine.dip_dis_combine=DIP_DIS_COMBINE;
|
||
machine.di_cascade=MAXCASCADE;
|
||
|
||
machine.di_number=MAXDIP;
|
||
machine.di_mask =DIP_MASKS;
|
||
|
||
#if defined HY8810 || HY8602 || HY8811 || HY8603 || HY8822 || HY8612
|
||
#if DIP_DIS_COMBINE==0
|
||
machine.dis_number=2;
|
||
machine.dis_mask=DIS_MASKS;
|
||
machine.dis_tab=dis_table;
|
||
#endif
|
||
#endif
|
||
|
||
machine.dos_mask1=DO_MASKS1;
|
||
machine.dos_mask2=DO_MASKS2;
|
||
|
||
machine.ic_num = MAXICNO;
|
||
machine.di_tab = dip_table;
|
||
machine.mapping = (MAP_U16 *)map_tab;
|
||
// machine.mapping2 = (MAP_U16 *)map_tab;
|
||
|
||
for(i=0; i<machine.di_number; i++) {
|
||
machine.di_buff[i]=lane_data[i].data;
|
||
}
|
||
|
||
machine.height=MACHINE_HEIGHT;
|
||
machine.width=MACHINE_WIDTH;
|
||
machine.zones=ZONESIZE;
|
||
// machine.soc_spi_len=SOC_DATA_LEN_PRE_PACK;
|
||
machine.soc_spi_len=SOC_DATA_LEN;
|
||
|
||
printf("project zones:%d\n",machine.zones);
|
||
printf("project width:%d\n",machine.width);
|
||
printf("project height:%d\n",machine.height);
|
||
printf("spb mode:%s\n",machine.pi_mode?"high speed mode":"low speed mode");
|
||
printf("project di numbers:%d \n",machine.di_number);
|
||
printf("project di cascade:%d , ic number per dip:%d\n",machine.di_cascade,machine.ic_num);
|
||
|
||
machine.fb_init_freq = FB_FREQ;
|
||
machine.fb_init_duty = FB_INIT_PWM;
|
||
fb_params.fb_max_value=FB_MAX_MV;
|
||
fb_params.fb_min_value=FB_MIN_MV;
|
||
|
||
fb_params.dos_mask1 = machine.dos_mask1;
|
||
fb_params.dos_mask2 = machine.dos_mask2;
|
||
fb_params.fbDosSickState1 = machine.dos_mask1;
|
||
fb_params.fbDosSickState2 = machine.dos_mask2;
|
||
|
||
fb_params.fbSampleCnt = 0;
|
||
fb_params.fbbfi_open=0;
|
||
fb_params.all_small_duty = FB_DUTY_LEVEL_ZERO;
|
||
fb_params.sickSamplePinValid = 1;
|
||
fb_params.fbState = FB_STATE_WAIT_SAMPLE_SICK_READY;
|
||
}
|
||
|
||
|
||
unsigned short Checksum16(uint16_t *p, uint16_t counter)
|
||
{
|
||
unsigned short checksum16 = 0;
|
||
for( ; counter > 0; counter--)
|
||
{
|
||
checksum16 ^= *p;
|
||
p++;
|
||
}
|
||
return (checksum16);
|
||
}
|
||
|
||
unsigned char Checksum8(uint8_t *p, uint16_t counter)
|
||
{
|
||
unsigned short checksum8 = 0;
|
||
for( ; counter > 0; counter--)
|
||
{
|
||
checksum8 ^= *p;
|
||
p++;
|
||
}
|
||
return (checksum8);
|
||
}
|
||
|
||
volatile uint8_t first_frame = 0;
|
||
void Dimming_Process(void)
|
||
{
|
||
uint16_t i=0;
|
||
uint16_t crc_result=0;
|
||
uint16_t ht_small_cnt=0;
|
||
uint16_t ht_zero_cnt=0;
|
||
uint16_t global_iset=0;
|
||
static uint8_t ledtime = 0;
|
||
static bool ledflag = 0;
|
||
#if HC_FUNCTION_POWER_ALGORITHM
|
||
uint32_t power_sum = 0;
|
||
uint32_t current_sum=0;
|
||
#endif
|
||
uint32_t temp = 0;
|
||
MAP_U16* map=(MAP_U16 *)&map_tab[0];
|
||
|
||
if(Get_Recv_Flag()) {
|
||
if(soc_data.soc_pro.header==0x00aa) {
|
||
if(first_frame < 1) {
|
||
first_frame++;
|
||
Clear_Recv_Flag();
|
||
return;
|
||
}
|
||
|
||
#if SOC_DATA_BITS //
|
||
crc_result=Checksum16(soc_data.data,SOC_DATA_LEN-1);
|
||
#else
|
||
crc_result=Checksum8(soc_data.data,SOC_DATA_LEN-1);
|
||
#endif
|
||
|
||
memset(lane_data,0,sizeof(lane_data));
|
||
if(soc_data.soc_pro.crc==crc_result) {
|
||
#if HC_FUNCTION_POWER_ALGORITHM
|
||
for(i=0; i<ZONESIZE; i++) {
|
||
power_sum +=soc_data.soc_pro.ld[i]&0xfff;// cacluate the ALL DUTY sum
|
||
}
|
||
#endif
|
||
if(soc_data.soc_pro.commond==0)
|
||
global_iset = SDR_CURRENT;
|
||
else
|
||
global_iset = ((soc_data.soc_pro.commond<<10)/MAX_CURRENT_MA);
|
||
current_sum=ZONESIZE*0xfff*SDR_CURRENT/global_iset;
|
||
if(power_sum > current_sum) { //<2F><><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD>趨ֵ<E8B6A8><D6B5><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>DC<44><43>ֵ
|
||
global_iset= (uint16_t)((global_iset*current_sum)/ power_sum);//<2F><><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||
if(global_iset<SDR_CURRENT)
|
||
global_iset = SDR_CURRENT;
|
||
}
|
||
for(i=0; i<ZONESIZE; i++) {
|
||
//10bit+2bit
|
||
lane_data[map[i].lane].frame.d[map[i].ic*CH_NUMBERS+map[i].ch]=(soc_data.soc_pro.ld[i]&0xfff);
|
||
}
|
||
|
||
//software judge htsmall----start
|
||
for(i=0; i<machine.zones; i++) {
|
||
if((soc_data.soc_pro.ld[i]&0xfff)>460) {
|
||
break;
|
||
} else {
|
||
if((soc_data.soc_pro.ld[i]&0xfff)==0) {
|
||
ht_zero_cnt++;
|
||
} else {
|
||
ht_small_cnt++;
|
||
}
|
||
}
|
||
}
|
||
|
||
if(ht_small_cnt==machine.zones) {
|
||
fb_params.all_small_duty = FB_DUTY_LEVEL_SMALL;
|
||
} else {
|
||
fb_params.all_small_duty = FB_DUTY_LEVEL_BIG;
|
||
}
|
||
//software judge htsmall----end
|
||
|
||
if(ht_zero_cnt==machine.zones) {
|
||
fb_params.all_small_duty = FB_DUTY_LEVEL_ZERO;
|
||
}
|
||
|
||
ospb_frame.effect = 1;
|
||
ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
Spb_Dimming(PWM,CH_SICK_INT1,1,machine.ic_num,0,MAXCASCADE);
|
||
delay_us(200);
|
||
|
||
temp=(CH_SICK_INT1<<4)|(DC<<1)|0;
|
||
ospb_frame.next_commad_type = BCON_driver_serial;
|
||
Spb_Broadcast(0x7A,global_iset,temp);
|
||
delay_us(200);
|
||
|
||
ospb_frame.dos_mode = CH_SICK_INT1;
|
||
ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
Spb_Readback(0x13,1,1,1);
|
||
delay_us((machine.ic_num+2)*12+160);//ʱ<><CAB1>̫<EFBFBD><CCAB>DOS<4F><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SICK״̬
|
||
|
||
if((fb_params.all_small_duty == FB_DUTY_LEVEL_BIG) && (fb_params.sampleSickReady) && (fb_params.sickSamplePinValid))
|
||
{
|
||
FbApi_FbSample();
|
||
}
|
||
Spb_Broadcast(0x2f,0,(CH_SICK_INT1<<4) | (PWM<<1));
|
||
FbApi_Process();
|
||
|
||
ledtime++;
|
||
if(ledtime==120) {
|
||
ledtime=0;
|
||
if(ledflag == true) {
|
||
ledflag = false;
|
||
GPIOC->PBC = GPIO_PIN_15;//LED1<44><31>˸<EFBFBD><CBB8><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
||
} else {
|
||
ledflag = true;
|
||
GPIOC->PBSC = GPIO_PIN_15;
|
||
}
|
||
}
|
||
} else {
|
||
printf("crc error : 0x%x\n",soc_data.soc_pro.crc);
|
||
}
|
||
} else {
|
||
printf("header error : 0x%x\n",soc_data.soc_pro.header);
|
||
}
|
||
Clear_Recv_Flag();
|
||
}
|
||
}
|
||
|
||
void Button_Init(void)
|
||
{
|
||
GPIO_InitType GPIO_InitStruct;
|
||
|
||
RCC_AHB_Peripheral_Clock_Enable(RCC_AHB_PERIPH_GPIOC);
|
||
RCC_AHB_Peripheral_Clock_Enable(RCC_AHB_PERIPH_GPIOD);
|
||
|
||
GPIO_Structure_Initialize(&GPIO_InitStruct);
|
||
GPIO_InitStruct.GPIO_Mode=GPIO_MODE_OUT_PP;
|
||
GPIO_InitStruct.GPIO_Slew_Rate=GPIO_SLEW_RATE_FAST;
|
||
GPIO_InitStruct.Pin=GPIO_PIN_14;
|
||
GPIO_Peripheral_Initialize(GPIOD,&GPIO_InitStruct);
|
||
GPIO_Pins_Set(GPIOD, GPIO_PIN_14);
|
||
|
||
GPIO_InitStruct.GPIO_Mode=GPIO_MODE_OUT_PP;
|
||
GPIO_InitStruct.GPIO_Slew_Rate=GPIO_SLEW_RATE_FAST;
|
||
GPIO_InitStruct.Pin=GPIO_PIN_15;
|
||
GPIO_Peripheral_Initialize(GPIOC,&GPIO_InitStruct);
|
||
GPIO_Pins_Reset(GPIOC, GPIO_PIN_15);
|
||
|
||
GPIO_InitStruct.GPIO_Mode=GPIO_MODE_INPUT;
|
||
GPIO_InitStruct.GPIO_Pull=GPIO_PULL_UP;
|
||
GPIO_InitStruct.GPIO_Slew_Rate=GPIO_SLEW_RATE_FAST;
|
||
GPIO_InitStruct.Pin=GPIO_PIN_14;
|
||
GPIO_Peripheral_Initialize(GPIOC,&GPIO_InitStruct);
|
||
}
|
||
uint8_t dos_table[MAXDIP]= {DOS1,DOS2,DOS3,DOS4,DOS5,DOS6,DOS7,DOS8,DOS11,DOS12};
|
||
uint16_t icIndex=1;
|
||
uint8_t laneIndex=0,ONE_ZONE=0;
|
||
void Read_TEMP(void) {
|
||
uint16_t i=0,j=0,k=0,m=0;
|
||
uint16_t read=0;
|
||
|
||
// Spb_Next_Format(BUFF_BCON_TO_DRIVER);
|
||
uint16_t temp_Integer=0;
|
||
uint16_t temp_point=0;
|
||
uint16_t dc_value;
|
||
uint16_t temp=0;
|
||
// printf("ledA2ALLWHITE\n");
|
||
FbApi_SetValue(400);
|
||
// printf("read=0x%x",read);
|
||
dc_value = 10*1023/80;//SDR_CURRENT;
|
||
temp=( SINGLE<<4)|(DC<<1)|1;
|
||
Spb_Broadcast(0x7A,dc_value,temp); //change DC bit15: 1,???????<3F><>????
|
||
delay_us(100);
|
||
memset(lane_data,0,sizeof(lane_data));
|
||
|
||
for(i=0; i<MAXDIP; i++)
|
||
{
|
||
for(j=0; j<MAXCASCADE; j++)
|
||
{
|
||
lane_data[i].frame.d[j]=0xfff;
|
||
}
|
||
}
|
||
update_frame_mode(SINGLE,PWM,0,BCON_driver_serial);//Spb_Next_Format(SLAVE_BCON_TO_DRIVER);
|
||
ospb_frame.effect = 0;
|
||
Spb_Dimming(PWM, SINGLE,1,machine.ic_num,0,MAXCASCADE);
|
||
delay_ms(8);
|
||
update_frame_mode(SINGLE,PWM,0,BCON_driver_serial);//Spb_Next_Format(SLAVE_BCON_TO_DRIVER);
|
||
temp=(PWM<<12)|(SINGLE<<8);
|
||
Spb_Broadcast(0x44,temp,0); //
|
||
delay_ms(1);
|
||
//icIndex=2;
|
||
while(1)
|
||
{
|
||
laneIndex=3;
|
||
delay_ms(8);
|
||
read=0xf800;
|
||
read = UserApi_ReadRegister(dos_table[laneIndex-1],icIndex,0x12);
|
||
|
||
|
||
delay_ms(8);
|
||
// printf("TEMP_DIPPOS=%d,TEMP_ICPOS=%d,read=0x%x\n",laneIndex,icIndex,read);
|
||
|
||
temp_Integer=Temperature_value[(read&0xf800)>>11]/10;
|
||
temp_point=Temperature_value[(read&0xf800)>>11]%10;
|
||
printf("TEMP_DIPPOS=%d,TEMP_ICPOS=%d,temprature_value=%d.%d\n",laneIndex,icIndex,temp_Integer,temp_point);
|
||
icIndex++;
|
||
if(icIndex>MAXICNO) icIndex=1;
|
||
}
|
||
}
|
||
uint16_t UserApi_ReadRegister(uint8_t laneIndex,uint8_t icIndex,uint8_t regAddr)
|
||
{
|
||
uint16_t fbvalue;
|
||
uint16_t i;
|
||
uint16_t temp;
|
||
|
||
|
||
SpbApi_ReadyDosCap(laneIndex);
|
||
Spb_Readback(regAddr,icIndex,1,1);
|
||
|
||
//Spb_Readback(regAddr,1,1,1);
|
||
//delay_ms(1);
|
||
// delay_us(300);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>300US<55><53><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣
|
||
|
||
temp = ((MAXICNO+2)*290+1000)/10;
|
||
for(i = 0; i < temp; i++)
|
||
{
|
||
delay_us(10);
|
||
}
|
||
if(spb_rx_dos.status == 0x02)
|
||
{
|
||
printf("fb read timeout\n");
|
||
fbvalue = 0;
|
||
}
|
||
else
|
||
{
|
||
if(SpbDriverApi_Fb_Decode(&fbvalue) == OK)
|
||
{
|
||
printf("Decode right\n");
|
||
}
|
||
else
|
||
{
|
||
fbvalue = 0;
|
||
printf("Decode err\n");
|
||
}
|
||
}
|
||
// printf("cap_T1=%d\n",cap_T1);
|
||
// printf("fbvalue=0x%04x\n",fbvalue);
|
||
|
||
// for(i=0; i<150; i++)
|
||
// {
|
||
// printf("buf[%d] = 0x%04x\n",i,spb_dos_inbuf[i]);
|
||
// }
|
||
// for(i=0; i<3; i++)
|
||
// {
|
||
// // temp = DIS_DIM_CMD_CFG|DIMMING_MODE_DC6_PWM10|DOS_OUT_SEL_SINKINT1;
|
||
// temp=(CH_SICK_INT1<<4)|(PWM<<1)|1;
|
||
// Spb_Broadcast(0x2f,1,temp); //change DC bit15: 1,???????<3F><>????
|
||
// delay_us(100);
|
||
// }
|
||
// fb_params.sickSamplePinValid = 1;
|
||
// FbApi_Timer6Init(500); //FB Get
|
||
// Clear_Recv_Flag();
|
||
return(fbvalue);
|
||
}
|
||
|
||
static uint16_t led_test=0;
|
||
static uint16_t one_led_test=0;
|
||
void BistLightUpAllProcess2(void) // row and column horse racing
|
||
{
|
||
uint16_t i;
|
||
uint16_t temp=0;
|
||
static uint16_t timeout=0;
|
||
MAP_U16* map=(MAP_U16 *)&map_tab[0];
|
||
|
||
uint16_t dc;
|
||
// printf("ledA2ALLWHITE\n");
|
||
|
||
dc = SDR_CURRENT;
|
||
|
||
// Spb_Broadcast(0x44,0xC100,0); //change DC mode
|
||
// delay_us(100);
|
||
|
||
temp=(CH_SICK_INT1<<4)|(DC<<1)|1;
|
||
Spb_Broadcast(0x7A,dc,temp); //change DC bit15: 1,???????<3F><>????
|
||
delay_us(100);
|
||
|
||
// Spb_Broadcast(0x44,0x8100,0); //PWM + single communication
|
||
// delay_us(100);
|
||
|
||
// printf("ledtest=%d\n",led_test);
|
||
// memset(ld_data.ld_buff,0,sizeof(ld_data.ld_buff));
|
||
memset(lane_data,0,sizeof(lane_data));
|
||
if(led_test < ROW_NUMER)////row_numer = 36
|
||
{ //give the value to column array_id=led + row_numer*i
|
||
for(i=0; i<COLUMN_NUMER; i++) //column_numer 40
|
||
{ //array_id=led + column_num*i
|
||
// ld_data.ld_buff[map_tab[led_test + ROW_NUMER*i]]=0xfff;
|
||
lane_data[map[led_test + ROW_NUMER*i].lane].frame.d[map[led_test + ROW_NUMER*i].ic*CH_NUMBERS+map[led_test + ROW_NUMER*i].ch]=0xfff;
|
||
}
|
||
}
|
||
else
|
||
{ //give tha value to row_number array_id=row_numer*(led - row_numer) + i
|
||
for(i=0; i<ROW_NUMER; i++)
|
||
{ // array_id=row_numer*(led - row_numer) + i
|
||
// ld_data.ld_buff[map_tab[ROW_NUMER*led_test-ROW_NUMER*ROW_NUMER + i]]=0xfff;
|
||
lane_data[map[ROW_NUMER*led_test-ROW_NUMER*ROW_NUMER + i].lane].frame.d[map[ROW_NUMER*led_test-ROW_NUMER*ROW_NUMER + i].ic*CH_NUMBERS+map[ROW_NUMER*led_test-ROW_NUMER*ROW_NUMER + i].ch]=0xfff;
|
||
}
|
||
}
|
||
// Spb_Dimming(spb_protocol.pi_mode,(dimming_mode_t)PWM,CH_SICK_INT1,1,(uint16_t *)ld_data.ld_buff,machine.ic_num*CH_NUMBERS);
|
||
ospb_frame.effect = 0;
|
||
Spb_Dimming(PWM,CH_SICK_INT1,1,machine.ic_num,0,MAXCASCADE);
|
||
delay_ms(10);
|
||
timeout++;
|
||
if(timeout==20)
|
||
{
|
||
timeout=0;
|
||
led_test++;
|
||
if(led_test==ROW_NUMER+COLUMN_NUMER)//row_num + column_num
|
||
led_test=0;
|
||
}
|
||
|
||
// FbApi_StartDetect();
|
||
// GPIO_ResetBits(GPIOC, GPIO_PIN_15);
|
||
}
|
||
|
||
void BistLightUpAllProcess3(void)
|
||
{
|
||
uint16_t i,j;
|
||
uint16_t dc;
|
||
uint16_t temp=0;
|
||
// printf("ledA2ALLWHITE\n");
|
||
led_test = 0;
|
||
one_led_test = 0;
|
||
|
||
dc = SDR_CURRENT;
|
||
|
||
// Spb_Broadcast(spb_protocol.pi_mode,0x44,0,0xC100); //change DC mode
|
||
// delay_us(100);
|
||
|
||
temp=(CH_SICK_INT1<<4)|(DC<<1)|1;
|
||
Spb_Broadcast(0x7A,dc,temp); //change DC bit15: 1,???????<3F><>????
|
||
delay_us(100);
|
||
|
||
// Spb_Broadcast(spb_protocol.pi_mode,0x44,0,0x8100); //PWM + single communication
|
||
// delay_us(100);
|
||
|
||
memset(lane_data,0,sizeof(lane_data));
|
||
for(i=0; i<MAXDIP; i++)
|
||
{
|
||
for(j=0; j<MAXCASCADE; j++)
|
||
{
|
||
lane_data[i].frame.d[j]=0xfff;
|
||
}
|
||
}
|
||
ospb_frame.effect = 0;
|
||
Spb_Dimming(PWM,CH_SICK_INT1,1,machine.ic_num,0,MAXCASCADE);
|
||
delay_ms(8);
|
||
//Fb_Set_Value(1200);
|
||
// FbApi_StartDetect();
|
||
|
||
}
|
||
|
||
void BistLightUpAllProcess1(void) // single horse racing
|
||
{
|
||
uint16_t temp=0;
|
||
static uint16_t timeout=0;
|
||
MAP_U16* map=(MAP_U16 *)&map_tab[0];
|
||
|
||
uint16_t dc;
|
||
|
||
dc = SDR_CURRENT;
|
||
|
||
temp=(CH_SICK_INT1<<4)|(DC<<1)|1;
|
||
Spb_Broadcast(0x7A,dc,temp); //change DC bit15: 1,???????<3F><>????
|
||
delay_us(100);
|
||
|
||
memset(lane_data,0,sizeof(lane_data));
|
||
lane_data[map[one_led_test].lane].frame.d[map[one_led_test].ic*CH_NUMBERS+map[one_led_test].ch]=0xfff;
|
||
ospb_frame.effect = 0;
|
||
Spb_Dimming(PWM,CH_SICK_INT1,1,machine.ic_num,0,MAXCASCADE);
|
||
delay_ms(10);
|
||
timeout++;
|
||
if(timeout==20)
|
||
{
|
||
timeout=0;
|
||
one_led_test++;
|
||
if(one_led_test==ZONESIZE)
|
||
one_led_test=0;
|
||
}
|
||
|
||
// FbApi_StartDetect();
|
||
}
|
||
|
||
uint16_t flag = SDR_CURRENT;
|
||
int16_t step = 51;
|
||
void Key_Detect_Process(void)
|
||
{
|
||
static uint16_t key_press_cnt = 0;
|
||
|
||
if(GPIO_Input_Pin_Data_Get(GPIOC, GPIO_PIN_14) == 0)
|
||
{
|
||
if(key_press_cnt < 300)
|
||
{
|
||
delay_ms(5);
|
||
key_press_cnt++;
|
||
}
|
||
|
||
if(key_press_cnt >= 5 /*&& test_mode >= DUTY_5_MODE && test_mode <DUTY_100_MODE*/)
|
||
{
|
||
key_press_cnt = 0;
|
||
// test_mode = HORSE_RACE_LIGHT_MODE;
|
||
// test_mode++;
|
||
if(flag + step >= 64 && step < 0)
|
||
{
|
||
flag = flag + step;
|
||
}
|
||
else if(flag + step <= FF_CURRENT && step > 0)
|
||
{
|
||
flag = flag + step;
|
||
}
|
||
else if(flag + step < 64 && step < 0)
|
||
{
|
||
flag = 64;
|
||
step = 64;
|
||
}
|
||
else if(flag + step > FF_CURRENT && step > 0)
|
||
{
|
||
flag = FF_CURRENT;
|
||
step = -64;
|
||
}
|
||
}
|
||
else if(key_press_cnt >= 5 /*&& test_mode == DUTY_100_MODE*/)
|
||
{
|
||
key_press_cnt = 0;
|
||
// test_mode = ALL_LIGHT_MODE;
|
||
// test_mode = DUTY_5_MODE;
|
||
}
|
||
}
|
||
else if(GPIO_Input_Pin_Data_Get(GPIOC, GPIO_PIN_14) == 1)
|
||
{
|
||
key_press_cnt = 0;
|
||
}
|
||
}
|
||
|
||
TEST_MODE test_mode = ALL_LIGHT_MODE;
|
||
void Test_Process(void)
|
||
{
|
||
uint16_t i=0, j=0;
|
||
uint16_t temp=0;
|
||
MAP_U16* map=(MAP_U16 *)&map_tab[0];
|
||
static uint16_t timeout=0;
|
||
static bool duty_flag = false;
|
||
|
||
test_mode = ALL_LIGHT_MODE;
|
||
switch(test_mode)
|
||
{
|
||
case ALL_LIGHT_MODE://ȫ<>׳<EFBFBD>
|
||
{
|
||
memset(lane_data,0,sizeof(lane_data));
|
||
// for(i=0; i<MAXDIP; i++)
|
||
// {
|
||
// for(j=0; j<MAXCASCADE; j++)
|
||
// {
|
||
// lane_data[i].frame.d[j]=0xfff;
|
||
// }
|
||
// }
|
||
for(i=0; i<MACHINE_HEIGHT; i++)
|
||
{
|
||
for(j=0; j<MACHINE_WIDTH; j++)
|
||
{
|
||
lane_data[map[j + MACHINE_WIDTH*i].lane].frame.d[map[j + MACHINE_WIDTH*i].ic*CH_NUMBERS+map[j + MACHINE_WIDTH*i].ch]=0xfff;
|
||
}
|
||
}
|
||
ospb_frame.effect = 1;
|
||
ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
Spb_Dimming(PWM,CH_SICK_INT1,1,machine.ic_num,0,MAXCASCADE);
|
||
delay_us(200);
|
||
|
||
temp=(CH_SICK_INT1<<4)|(DC<<1)|0;
|
||
ospb_frame.next_commad_type = BCON_driver_serial;
|
||
Spb_Broadcast(0x7A,SDR_CURRENT,temp);
|
||
delay_us(200);
|
||
|
||
ospb_frame.dos_mode = CH_SICK_INT1;
|
||
ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
Spb_Readback(0x13,1,1,1);
|
||
delay_us(200);
|
||
delay_ms(5);
|
||
break;
|
||
}
|
||
// case ALL_LIGHT_MODE://ȫ<>׳<EFBFBD> <20><>DIMMING<4E><47>
|
||
// {
|
||
// temp=(CH_SICK_INT1<<4)|(DC<<1)|1;
|
||
// ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
// Spb_Broadcast(0x7A,SDR_CURRENT,temp);
|
||
// delay_us(200);
|
||
|
||
// temp=(CH_SICK_INT1<<4)|(PWM<<1)|0;
|
||
// ospb_frame.next_commad_type = BCON_driver_serial;
|
||
// Spb_Broadcast(0x7A,0xfff,temp);
|
||
// delay_us(200);
|
||
|
||
// ospb_frame.dos_mode = CH_SICK_INT1;
|
||
// ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
// Spb_Readback(0x13,1,1,1);
|
||
// delay_us(200);
|
||
// delay_ms(5);
|
||
// break;
|
||
// }
|
||
case HIGHEST_LIGHT_MODE://<2F><>ֵ
|
||
{
|
||
memset(lane_data,0,sizeof(lane_data));
|
||
// for(i=0; i<MAXDIP; i++)
|
||
// {
|
||
// for(j=0; j<MAXCASCADE; j++)
|
||
// {
|
||
// lane_data[i].frame.d[j]=0xfff;
|
||
// }
|
||
// }
|
||
for(i=0; i<MACHINE_HEIGHT; i++)
|
||
{
|
||
for(j=0; j</*6*/MACHINE_WIDTH; j++)
|
||
{
|
||
lane_data[map[j + MACHINE_WIDTH*i].lane].frame.d[map[j + MACHINE_WIDTH*i].ic*CH_NUMBERS+map[j + MACHINE_WIDTH*i].ch]=0xfff;
|
||
}
|
||
}
|
||
ospb_frame.effect = 1;
|
||
ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
Spb_Dimming(PWM,CH_SICK_INT1,1,machine.ic_num,0,MAXCASCADE);
|
||
delay_us(200);
|
||
|
||
temp=(CH_SICK_INT1<<4)|(DC<<1)|0;
|
||
ospb_frame.next_commad_type = BCON_driver_serial;
|
||
Spb_Broadcast(0x7A,FF_CURRENT,temp);
|
||
delay_us(200);
|
||
|
||
ospb_frame.dos_mode = CH_SICK_INT1;
|
||
ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
Spb_Readback(0x13,1,1,1);
|
||
delay_us(200);
|
||
delay_ms(5);
|
||
break;
|
||
}
|
||
case STEP_5MA_MODE:
|
||
{
|
||
memset(lane_data,0,sizeof(lane_data));
|
||
for(i=0; i<MACHINE_HEIGHT; i++)
|
||
{
|
||
for(j=0; j<MACHINE_WIDTH; j++)
|
||
{
|
||
lane_data[map[j + MACHINE_WIDTH*i].lane].frame.d[map[j + MACHINE_WIDTH*i].ic*CH_NUMBERS+map[j + MACHINE_WIDTH*i].ch]=0xfff;
|
||
}
|
||
}
|
||
ospb_frame.effect = 1;
|
||
ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
Spb_Dimming(PWM,CH_SICK_INT1,1,machine.ic_num,0,MAXCASCADE);
|
||
delay_us(200);
|
||
|
||
temp=(CH_SICK_INT1<<4)|(DC<<1)|0;
|
||
ospb_frame.next_commad_type = BCON_driver_serial;
|
||
Spb_Broadcast(0x7A,flag,temp);
|
||
delay_us(200);
|
||
|
||
ospb_frame.dos_mode = CH_SICK_INT1;
|
||
ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
Spb_Readback(0x13,1,1,1);
|
||
delay_us(200);
|
||
|
||
delay_ms(10);
|
||
timeout++;
|
||
if(timeout==300)
|
||
{
|
||
timeout=0;
|
||
if(flag >= 1023 - step)
|
||
{
|
||
flag = 1023;
|
||
}
|
||
else
|
||
{
|
||
flag = flag + step;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case ALL_LIGHT_0_50:
|
||
{
|
||
if(duty_flag==true)
|
||
{
|
||
temp=(CH_SICK_INT1<<4)|(DC<<1)|1;
|
||
ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
Spb_Broadcast(0x7A,0,temp);
|
||
delay_us(200);
|
||
|
||
temp=(CH_SICK_INT1<<4)|(PWM<<1)|0;
|
||
ospb_frame.next_commad_type = BCON_driver_serial;
|
||
Spb_Broadcast(0x7A,0,temp);
|
||
delay_us(200);
|
||
|
||
fb_params.all_small_duty = FB_DUTY_LEVEL_ZERO;
|
||
}
|
||
else
|
||
{
|
||
memset(lane_data,0,sizeof(lane_data));
|
||
for(i=0; i<MACHINE_HEIGHT; i++)
|
||
{
|
||
for(j=0; j<6/*MACHINE_WIDTH*/; j++)
|
||
{
|
||
lane_data[map[j + MACHINE_WIDTH*i].lane].frame.d[map[j + MACHINE_WIDTH*i].ic*CH_NUMBERS+map[j + MACHINE_WIDTH*i].ch]=0x7ff;
|
||
}
|
||
}
|
||
ospb_frame.effect = 1;
|
||
ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
Spb_Dimming(PWM,CH_SICK_INT1,1,machine.ic_num,0,MAXCASCADE);
|
||
delay_us(200);
|
||
|
||
temp=(CH_SICK_INT1<<4)|(DC<<1)|0;
|
||
ospb_frame.next_commad_type = BCON_driver_serial;
|
||
Spb_Broadcast(0x7A,FF_CURRENT,temp);
|
||
delay_us(200);
|
||
|
||
fb_params.all_small_duty = FB_DUTY_LEVEL_BIG;
|
||
}
|
||
|
||
ospb_frame.dos_mode = CH_SICK_INT1;
|
||
ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
Spb_Readback(0x13,1,1,1);
|
||
delay_us(200);
|
||
|
||
delay_ms(10);
|
||
timeout++;
|
||
if(timeout==500)
|
||
{
|
||
timeout=0;
|
||
if(duty_flag == true)
|
||
{
|
||
duty_flag = false;
|
||
}
|
||
else
|
||
{
|
||
duty_flag = true;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case HIGHEST_LIGHT_0_100:
|
||
{
|
||
if(duty_flag==true)
|
||
{
|
||
temp=(CH_SICK_INT1<<4)|(DC<<1)|1;
|
||
ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
Spb_Broadcast(0x7A,0,temp);
|
||
delay_us(200);
|
||
|
||
temp=(CH_SICK_INT1<<4)|(PWM<<1)|0;
|
||
ospb_frame.next_commad_type = BCON_driver_serial;
|
||
Spb_Broadcast(0x7A,0,temp);
|
||
delay_us(200);
|
||
|
||
fb_params.all_small_duty = FB_DUTY_LEVEL_ZERO;
|
||
}
|
||
else
|
||
{
|
||
memset(lane_data,0,sizeof(lane_data));
|
||
for(i=0; i<MACHINE_HEIGHT; i++)
|
||
{
|
||
for(j=0; j<6/*MACHINE_WIDTH*/; j++)
|
||
{
|
||
lane_data[map[j + MACHINE_WIDTH*i].lane].frame.d[map[j + MACHINE_WIDTH*i].ic*CH_NUMBERS+map[j + MACHINE_WIDTH*i].ch]=0xfff;
|
||
}
|
||
}
|
||
ospb_frame.effect = 1;
|
||
ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
Spb_Dimming(PWM,CH_SICK_INT1,1,machine.ic_num,0,MAXCASCADE);
|
||
delay_us(200);
|
||
|
||
temp=(CH_SICK_INT1<<4)|(DC<<1)|0;
|
||
ospb_frame.next_commad_type = BCON_driver_serial;
|
||
Spb_Broadcast(0x7A,FF_CURRENT,temp);
|
||
delay_us(200);
|
||
|
||
fb_params.all_small_duty = FB_DUTY_LEVEL_BIG;
|
||
}
|
||
|
||
ospb_frame.dos_mode = CH_SICK_INT1;
|
||
ospb_frame.next_commad_type = BCON_driver_parallel;
|
||
Spb_Readback(0x13,1,1,1);
|
||
delay_us(200);
|
||
|
||
delay_ms(10);
|
||
timeout++;
|
||
if(timeout==500)
|
||
{
|
||
timeout=0;
|
||
if(duty_flag == true)
|
||
{
|
||
duty_flag = false;
|
||
}
|
||
else
|
||
{
|
||
duty_flag = true;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
default:
|
||
{
|
||
break;
|
||
}
|
||
}
|
||
}
|