fork

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Kovalev_D
Date:
Mon Apr 11 11:04:34 2016 +0000
Revision:
128:1e4675a36c93
Parent:
125:9400e64d0636
Child:
129:406995a91322
123

Who changed what in which revision?

UserRevisionLine numberNew contents of line
igor_v 0:8ad47e2b6f00 1 #include "stdlib.h"
igor_v 0:8ad47e2b6f00 2 #include "LPC17xx.h"
igor_v 0:8ad47e2b6f00 3 #include "Global.h"
Kovalev_D 106:250ddd8629c6 4 int tempNH,tempNL;
igor_v 0:8ad47e2b6f00 5 unsigned int Rate_Flag;
igor_v 0:8ad47e2b6f00 6 unsigned int CountBuFFIn;
igor_v 21:bc8c1cec3da6 7 unsigned int N=0,CRC_N;
igor_v 21:bc8c1cec3da6 8 unsigned int Param1=0;
igor_v 21:bc8c1cec3da6 9 unsigned int Param2=0;
igor_v 21:bc8c1cec3da6 10 unsigned int Param3=0;
igor_v 21:bc8c1cec3da6 11 unsigned int Param4=0;
Kovalev_D 102:4270092be987 12 unsigned int Consol=123;
Kovalev_D 121:bbae560cdd43 13 unsigned int TempParam=1;
Kovalev_D 124:9ae09249f842 14 unsigned int CountParam=0;
igor_v 0:8ad47e2b6f00 15 /*
igor_v 21:bc8c1cec3da6 16 void exec_CMD(void) //r. === процедура окончательной дешифрации и исполнения команды
igor_v 0:8ad47e2b6f00 17 {
igor_v 0:8ad47e2b6f00 18 unsigned int Comand_code;
igor_v 21:bc8c1cec3da6 19
igor_v 21:bc8c1cec3da6 20 //rx_buf_copy = 1; //r. предустанов флага копирования приемного буфера
igor_v 0:8ad47e2b6f00 21
igor_v 0:8ad47e2b6f00 22 Comand_code = (rcv_buf[2] & 0xFF) << 8;
igor_v 21:bc8c1cec3da6 23 PC_Comand = Comand_code | (rcv_buf[3] & 0xFF); //e. save it in the memory for echo-transmission //r. сохранить его в памяти для обратной передачи
igor_v 0:8ad47e2b6f00 24 }*/
igor_v 0:8ad47e2b6f00 25 void CMD_Maintenance(void)
igor_v 0:8ad47e2b6f00 26 {
Kovalev_D 122:fbacb932a30b 27
Kovalev_D 122:fbacb932a30b 28 BuffTemp[0] = Gyro.SOC_Out;
Kovalev_D 124:9ae09249f842 29 BuffTemp[1] = Gyro.My_Addres;
Kovalev_D 124:9ae09249f842 30 BuffTemp[2] = Gyro.Firmware_Version;
Kovalev_D 124:9ae09249f842 31 BuffTemp[3] = Gyro.GLD_Serial;
igor_v 21:bc8c1cec3da6 32 BuffTemp[4]=0x00;
igor_v 21:bc8c1cec3da6 33 BuffTemp[5]=0x00;
igor_v 21:bc8c1cec3da6 34 Check(BuffTemp, 8);
igor_v 21:bc8c1cec3da6 35 WriteConN (BuffTemp,8);
Kovalev_D 121:bbae560cdd43 36
igor_v 0:8ad47e2b6f00 37 }
Kovalev_D 124:9ae09249f842 38 void CMD_Delta_500Hz(void)
Kovalev_D 124:9ae09249f842 39 {
Kovalev_D 124:9ae09249f842 40 Gyro.Delta500_Event=0;
Kovalev_D 122:fbacb932a30b 41 unsigned int Temp;
Kovalev_D 124:9ae09249f842 42 BuffTemp[ 0] = Gyro.SOC_Out;
Kovalev_D 122:fbacb932a30b 43 BuffTemp[ 1] = Gyro.My_Addres;
Kovalev_D 124:9ae09249f842 44
Kovalev_D 124:9ae09249f842 45 Temp = Gyro.CuruAngle;
Kovalev_D 124:9ae09249f842 46 Gyro.CuruAngle = 0;
Kovalev_D 124:9ae09249f842 47
Kovalev_D 124:9ae09249f842 48 BuffTemp[ 2] =(Temp >> 8) & 0xff;//старший байт разности счетчиков
Kovalev_D 124:9ae09249f842 49 BuffTemp[ 3] =(Temp >> 0) & 0xff;//младший байт разности счетчиков
Kovalev_D 124:9ae09249f842 50
Kovalev_D 124:9ae09249f842 51 BuffTemp[ 4] = CountParam;
Kovalev_D 124:9ae09249f842 52 switch(CountParam) {
Kovalev_D 124:9ae09249f842 53
Kovalev_D 124:9ae09249f842 54
Kovalev_D 124:9ae09249f842 55
Kovalev_D 124:9ae09249f842 56 //F_ras
Kovalev_D 124:9ae09249f842 57 case 0:
Kovalev_D 124:9ae09249f842 58 Temp = Gyro.F_ras;
Kovalev_D 124:9ae09249f842 59 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 60 break;
Kovalev_D 124:9ae09249f842 61
Kovalev_D 124:9ae09249f842 62 case 1:
Kovalev_D 124:9ae09249f842 63 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 64 break;
Kovalev_D 124:9ae09249f842 65
Kovalev_D 124:9ae09249f842 66
Kovalev_D 124:9ae09249f842 67
Kovalev_D 124:9ae09249f842 68 //HFO
Kovalev_D 124:9ae09249f842 69 case 2:
Kovalev_D 124:9ae09249f842 70 Temp = 0;//HFO
Kovalev_D 124:9ae09249f842 71 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 72 break;
Kovalev_D 124:9ae09249f842 73
Kovalev_D 124:9ae09249f842 74 case 3:
Kovalev_D 124:9ae09249f842 75 Temp = 0;//HFO
Kovalev_D 124:9ae09249f842 76 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 77 break;
Kovalev_D 124:9ae09249f842 78
Kovalev_D 124:9ae09249f842 79
Kovalev_D 124:9ae09249f842 80
Kovalev_D 124:9ae09249f842 81 //T_Vibro
Kovalev_D 124:9ae09249f842 82 case 4:
Kovalev_D 124:9ae09249f842 83 Temp = (unsigned int)((7680000*16/(Gyro.Frq>>12)));
Kovalev_D 124:9ae09249f842 84 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 85 break;
Kovalev_D 124:9ae09249f842 86
Kovalev_D 124:9ae09249f842 87 case 5:
Kovalev_D 124:9ae09249f842 88 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 89 break;
Kovalev_D 124:9ae09249f842 90
Kovalev_D 124:9ae09249f842 91
Kovalev_D 124:9ae09249f842 92
Kovalev_D 124:9ae09249f842 93 //L_Vibro
Kovalev_D 124:9ae09249f842 94 case 6:
Kovalev_D 124:9ae09249f842 95 Temp = (unsigned int)(((7680000*16/200) *Gyro.AmpPer /(Gyro.Frq>>12)));
Kovalev_D 124:9ae09249f842 96 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 97
Kovalev_D 124:9ae09249f842 98 break;
Kovalev_D 124:9ae09249f842 99
Kovalev_D 124:9ae09249f842 100 case 7:
Kovalev_D 124:9ae09249f842 101 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 102 break;
Kovalev_D 124:9ae09249f842 103
Kovalev_D 124:9ae09249f842 104
Kovalev_D 124:9ae09249f842 105
Kovalev_D 124:9ae09249f842 106 //Напряжение на регуляторе периметра
Kovalev_D 124:9ae09249f842 107 case 8:
Kovalev_D 124:9ae09249f842 108 Temp = Spi.DAC_B - 0x7fff;
Kovalev_D 124:9ae09249f842 109 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 110
Kovalev_D 124:9ae09249f842 111 break;
Kovalev_D 124:9ae09249f842 112
Kovalev_D 124:9ae09249f842 113 case 9:
Kovalev_D 124:9ae09249f842 114 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 115 break;
Kovalev_D 124:9ae09249f842 116
Kovalev_D 124:9ae09249f842 117
Kovalev_D 124:9ae09249f842 118
Kovalev_D 124:9ae09249f842 119 //темпкратурный канал 0
Kovalev_D 124:9ae09249f842 120 case 10:
Kovalev_D 124:9ae09249f842 121 Temp = 100;
Kovalev_D 124:9ae09249f842 122 BuffTemp[5] = (Temp >> 8) & 0xff;
igor_v 0:8ad47e2b6f00 123
Kovalev_D 124:9ae09249f842 124 break;
Kovalev_D 124:9ae09249f842 125
Kovalev_D 124:9ae09249f842 126 case 11:
Kovalev_D 124:9ae09249f842 127 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 128 break;
Kovalev_D 124:9ae09249f842 129
Kovalev_D 124:9ae09249f842 130
Kovalev_D 124:9ae09249f842 131
Kovalev_D 124:9ae09249f842 132 //темпкратурный канал 1
Kovalev_D 124:9ae09249f842 133 case 12:
Kovalev_D 124:9ae09249f842 134 Temp = Gyro.AD_Slow >> 16;
Kovalev_D 124:9ae09249f842 135 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 136
Kovalev_D 124:9ae09249f842 137 break;
Kovalev_D 124:9ae09249f842 138
Kovalev_D 124:9ae09249f842 139 case 13:
Kovalev_D 124:9ae09249f842 140 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 141 break;
Kovalev_D 124:9ae09249f842 142
Kovalev_D 124:9ae09249f842 143
Kovalev_D 124:9ae09249f842 144
Kovalev_D 124:9ae09249f842 145 //ток 1
Kovalev_D 124:9ae09249f842 146 case 14:
Kovalev_D 124:9ae09249f842 147 Temp = Gyro.In1;
Kovalev_D 124:9ae09249f842 148 BuffTemp[5] = (Temp >> 8) & 0xff;//in1//2
Kovalev_D 124:9ae09249f842 149
Kovalev_D 124:9ae09249f842 150 break;
Kovalev_D 124:9ae09249f842 151
Kovalev_D 124:9ae09249f842 152 case 15:
Kovalev_D 124:9ae09249f842 153 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 154 break;
Kovalev_D 124:9ae09249f842 155
Kovalev_D 124:9ae09249f842 156
Kovalev_D 124:9ae09249f842 157
Kovalev_D 124:9ae09249f842 158 //ток 2
Kovalev_D 124:9ae09249f842 159 case 16:
Kovalev_D 124:9ae09249f842 160 Temp = Gyro.In2;
Kovalev_D 124:9ae09249f842 161 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 162 break;
Kovalev_D 124:9ae09249f842 163
Kovalev_D 124:9ae09249f842 164 case 17:
Kovalev_D 124:9ae09249f842 165 BuffTemp[5] = (Temp >> 0) & 0xff;//in2//3
Kovalev_D 124:9ae09249f842 166 break;
Kovalev_D 124:9ae09249f842 167
Kovalev_D 124:9ae09249f842 168
Kovalev_D 124:9ae09249f842 169
Kovalev_D 124:9ae09249f842 170 //разностный температурный канал Delta Temp
Kovalev_D 124:9ae09249f842 171 case 18:
Kovalev_D 124:9ae09249f842 172 Temp = Gyro.DeltaT;
Kovalev_D 124:9ae09249f842 173 BuffTemp[5] = (Temp >> 8) & 0xff;//дельта
Kovalev_D 124:9ae09249f842 174 break;
Kovalev_D 124:9ae09249f842 175
Kovalev_D 124:9ae09249f842 176 case 19:
Kovalev_D 124:9ae09249f842 177 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 178 break;
Kovalev_D 124:9ae09249f842 179
Kovalev_D 124:9ae09249f842 180
Kovalev_D 124:9ae09249f842 181
Kovalev_D 124:9ae09249f842 182 //температурный канал 5
Kovalev_D 124:9ae09249f842 183 case 20:
Kovalev_D 124:9ae09249f842 184 Temp = Gyro.Termo;//0xa4=164
Kovalev_D 124:9ae09249f842 185 BuffTemp[5] =(Temp >> 8) & 0xff;//температура
Kovalev_D 124:9ae09249f842 186
Kovalev_D 124:9ae09249f842 187 break;
Kovalev_D 124:9ae09249f842 188
Kovalev_D 124:9ae09249f842 189 case 21:
Kovalev_D 124:9ae09249f842 190 BuffTemp[5] =(Temp >> 0) & 0xff;//ADC6 sesnsor 5
Kovalev_D 124:9ae09249f842 191 break;
Kovalev_D 124:9ae09249f842 192 }
Kovalev_D 124:9ae09249f842 193 Check(BuffTemp, 6);
Kovalev_D 124:9ae09249f842 194 WriteConN (BuffTemp,6);
Kovalev_D 128:1e4675a36c93 195
Kovalev_D 124:9ae09249f842 196 CountParam++;
Kovalev_D 124:9ae09249f842 197 if(CountParam>21)CountParam=0;//зацикливания буфера от 0 до 21
Kovalev_D 124:9ae09249f842 198
Kovalev_D 124:9ae09249f842 199 }
Kovalev_D 124:9ae09249f842 200 void CMD_Delta_Ext(void)
Kovalev_D 124:9ae09249f842 201 {
Kovalev_D 124:9ae09249f842 202 unsigned int Temp;
Kovalev_D 128:1e4675a36c93 203 Gyro.EXT_Latch=0;
Kovalev_D 128:1e4675a36c93 204 WriteCon("0");
Kovalev_D 124:9ae09249f842 205 BuffTemp[ 0] = Gyro.SOC_Out;
Kovalev_D 128:1e4675a36c93 206 WriteCon("1");
Kovalev_D 124:9ae09249f842 207 BuffTemp[ 1] = Gyro.My_Addres;
Kovalev_D 124:9ae09249f842 208
Kovalev_D 124:9ae09249f842 209 Temp = Gyro.CuruAngle;
Kovalev_D 124:9ae09249f842 210 Gyro.CuruAngle = 0;
Kovalev_D 124:9ae09249f842 211
Kovalev_D 124:9ae09249f842 212 BuffTemp[ 2] =(Temp >> 8) & 0xff;//старший байт разности счетчиков
Kovalev_D 124:9ae09249f842 213 BuffTemp[ 3] =(Temp >> 0) & 0xff;//младший байт разности счетчиков
Kovalev_D 124:9ae09249f842 214
Kovalev_D 124:9ae09249f842 215 BuffTemp[ 4] = CountParam;
Kovalev_D 128:1e4675a36c93 216 switch(CountParam) {
Kovalev_D 124:9ae09249f842 217
Kovalev_D 128:1e4675a36c93 218 WriteCon("5");
Kovalev_D 124:9ae09249f842 219
Kovalev_D 124:9ae09249f842 220 //F_ras
Kovalev_D 124:9ae09249f842 221 case 0:
Kovalev_D 124:9ae09249f842 222 Temp = Gyro.F_ras;
Kovalev_D 124:9ae09249f842 223 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 128:1e4675a36c93 224
Kovalev_D 124:9ae09249f842 225 break;
Kovalev_D 124:9ae09249f842 226
Kovalev_D 124:9ae09249f842 227 case 1:
Kovalev_D 124:9ae09249f842 228 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 128:1e4675a36c93 229
Kovalev_D 124:9ae09249f842 230 break;
Kovalev_D 124:9ae09249f842 231
Kovalev_D 124:9ae09249f842 232
Kovalev_D 124:9ae09249f842 233
Kovalev_D 124:9ae09249f842 234 //HFO
Kovalev_D 124:9ae09249f842 235 case 2:
Kovalev_D 124:9ae09249f842 236 Temp = 0;//HFO
Kovalev_D 124:9ae09249f842 237 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 128:1e4675a36c93 238
Kovalev_D 124:9ae09249f842 239 break;
Kovalev_D 124:9ae09249f842 240
Kovalev_D 124:9ae09249f842 241 case 3:
Kovalev_D 124:9ae09249f842 242 Temp = 0;//HFO
Kovalev_D 124:9ae09249f842 243 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 128:1e4675a36c93 244
Kovalev_D 124:9ae09249f842 245 break;
Kovalev_D 124:9ae09249f842 246
Kovalev_D 124:9ae09249f842 247
Kovalev_D 124:9ae09249f842 248
Kovalev_D 124:9ae09249f842 249 //T_Vibro
Kovalev_D 124:9ae09249f842 250 case 4:
Kovalev_D 124:9ae09249f842 251 Temp = (unsigned int)((7680000*16/(Gyro.Frq>>12)));
Kovalev_D 124:9ae09249f842 252 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 128:1e4675a36c93 253
Kovalev_D 124:9ae09249f842 254 break;
Kovalev_D 124:9ae09249f842 255
Kovalev_D 124:9ae09249f842 256 case 5:
Kovalev_D 124:9ae09249f842 257 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 128:1e4675a36c93 258
Kovalev_D 124:9ae09249f842 259 break;
Kovalev_D 124:9ae09249f842 260
Kovalev_D 124:9ae09249f842 261
Kovalev_D 124:9ae09249f842 262
Kovalev_D 124:9ae09249f842 263 //L_Vibro
Kovalev_D 124:9ae09249f842 264 case 6:
Kovalev_D 124:9ae09249f842 265 Temp = (unsigned int)(((7680000*16/200) *Gyro.AmpPer /(Gyro.Frq>>12)));
Kovalev_D 124:9ae09249f842 266 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 122:fbacb932a30b 267
Kovalev_D 124:9ae09249f842 268 break;
Kovalev_D 124:9ae09249f842 269
Kovalev_D 124:9ae09249f842 270 case 7:
Kovalev_D 124:9ae09249f842 271 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 272 break;
Kovalev_D 124:9ae09249f842 273
Kovalev_D 124:9ae09249f842 274
Kovalev_D 124:9ae09249f842 275
Kovalev_D 124:9ae09249f842 276 //Напряжение на регуляторе периметра
Kovalev_D 124:9ae09249f842 277 case 8:
Kovalev_D 124:9ae09249f842 278 Temp = Spi.DAC_B - 0x7fff;
Kovalev_D 124:9ae09249f842 279 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 280
Kovalev_D 124:9ae09249f842 281 break;
Kovalev_D 124:9ae09249f842 282
Kovalev_D 124:9ae09249f842 283 case 9:
Kovalev_D 124:9ae09249f842 284 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 285 break;
Kovalev_D 124:9ae09249f842 286
Kovalev_D 124:9ae09249f842 287
Kovalev_D 124:9ae09249f842 288
Kovalev_D 124:9ae09249f842 289 //темпкратурный канал 0
Kovalev_D 124:9ae09249f842 290 case 10:
Kovalev_D 124:9ae09249f842 291 Temp = 100;
Kovalev_D 124:9ae09249f842 292 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 293
Kovalev_D 124:9ae09249f842 294 break;
Kovalev_D 124:9ae09249f842 295
Kovalev_D 124:9ae09249f842 296 case 11:
Kovalev_D 124:9ae09249f842 297 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 298 break;
Kovalev_D 124:9ae09249f842 299
Kovalev_D 124:9ae09249f842 300
Kovalev_D 124:9ae09249f842 301
Kovalev_D 124:9ae09249f842 302 //темпкратурный канал 1
Kovalev_D 124:9ae09249f842 303 case 12:
Kovalev_D 124:9ae09249f842 304 Temp = Gyro.AD_Slow >> 16;
Kovalev_D 124:9ae09249f842 305 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 306
Kovalev_D 124:9ae09249f842 307 break;
Kovalev_D 124:9ae09249f842 308
Kovalev_D 124:9ae09249f842 309 case 13:
Kovalev_D 124:9ae09249f842 310 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 311 break;
Kovalev_D 124:9ae09249f842 312
Kovalev_D 124:9ae09249f842 313
Kovalev_D 124:9ae09249f842 314
Kovalev_D 124:9ae09249f842 315 //ток 1
Kovalev_D 124:9ae09249f842 316 case 14:
Kovalev_D 124:9ae09249f842 317 Temp = Gyro.In1;
Kovalev_D 124:9ae09249f842 318 BuffTemp[5] = (Temp >> 8) & 0xff;//in1//2
Kovalev_D 124:9ae09249f842 319
Kovalev_D 124:9ae09249f842 320 break;
Kovalev_D 124:9ae09249f842 321
Kovalev_D 124:9ae09249f842 322 case 15:
Kovalev_D 124:9ae09249f842 323 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 324 break;
Kovalev_D 124:9ae09249f842 325
Kovalev_D 124:9ae09249f842 326
Kovalev_D 124:9ae09249f842 327
Kovalev_D 124:9ae09249f842 328 //ток 2
Kovalev_D 124:9ae09249f842 329 case 16:
Kovalev_D 124:9ae09249f842 330 Temp = Gyro.In2;
Kovalev_D 124:9ae09249f842 331 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 332 break;
Kovalev_D 124:9ae09249f842 333
Kovalev_D 124:9ae09249f842 334 case 17:
Kovalev_D 124:9ae09249f842 335 BuffTemp[5] = (Temp >> 0) & 0xff;//in2//3
Kovalev_D 124:9ae09249f842 336 break;
Kovalev_D 124:9ae09249f842 337
Kovalev_D 124:9ae09249f842 338
Kovalev_D 124:9ae09249f842 339
Kovalev_D 124:9ae09249f842 340 //разностный температурный канал Delta Temp
Kovalev_D 124:9ae09249f842 341 case 18:
Kovalev_D 124:9ae09249f842 342 Temp = Gyro.DeltaT;
Kovalev_D 124:9ae09249f842 343 BuffTemp[5] = (Temp >> 8) & 0xff;//дельта
Kovalev_D 124:9ae09249f842 344 break;
Kovalev_D 124:9ae09249f842 345
Kovalev_D 124:9ae09249f842 346 case 19:
Kovalev_D 124:9ae09249f842 347 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 348 break;
Kovalev_D 124:9ae09249f842 349
Kovalev_D 124:9ae09249f842 350
Kovalev_D 124:9ae09249f842 351
Kovalev_D 124:9ae09249f842 352 //температурный канал 5
Kovalev_D 124:9ae09249f842 353 case 20:
Kovalev_D 124:9ae09249f842 354 Temp = Gyro.Termo;//0xa4=164
Kovalev_D 124:9ae09249f842 355 BuffTemp[5] =(Temp >> 8) & 0xff;//температура
Kovalev_D 124:9ae09249f842 356
Kovalev_D 124:9ae09249f842 357 break;
Kovalev_D 124:9ae09249f842 358
Kovalev_D 124:9ae09249f842 359 case 21:
Kovalev_D 124:9ae09249f842 360 BuffTemp[5] =(Temp >> 0) & 0xff;//ADC6 sesnsor 5
Kovalev_D 124:9ae09249f842 361 break;
Kovalev_D 124:9ae09249f842 362 }
Kovalev_D 128:1e4675a36c93 363 Check(BuffTemp, 8);
Kovalev_D 128:1e4675a36c93 364 WriteConN (BuffTemp,8);
Kovalev_D 124:9ae09249f842 365 CountParam++;
Kovalev_D 124:9ae09249f842 366 if(CountParam>21)CountParam=0;//зацикливания буфера от 0 до 21
Kovalev_D 122:fbacb932a30b 367 }
Kovalev_D 124:9ae09249f842 368
Kovalev_D 121:bbae560cdd43 369 void CMD_Rate2(void)
Kovalev_D 121:bbae560cdd43 370 {
Kovalev_D 124:9ae09249f842 371 Gyro.Rate2_Event=0;
Kovalev_D 121:bbae560cdd43 372 BuffTemp[ 0] = Gyro.SOC_Out;
Kovalev_D 121:bbae560cdd43 373 BuffTemp[ 1] = Gyro.My_Addres;
Kovalev_D 121:bbae560cdd43 374
Kovalev_D 121:bbae560cdd43 375
Kovalev_D 121:bbae560cdd43 376 BuffTemp[ 2] =(Gyro.CaunPlus >> 8) & 0xff;//старший байт счетчика +.
Kovalev_D 121:bbae560cdd43 377 BuffTemp[ 3] =(Gyro.CaunPlus >> 0) & 0xff;//младший байт счетчика +.
Kovalev_D 121:bbae560cdd43 378
Kovalev_D 121:bbae560cdd43 379 BuffTemp[ 4] =(Gyro.CaunMin >> 8) & 0xff;//старший байт счетчика -.
Kovalev_D 121:bbae560cdd43 380 BuffTemp[ 5] =(Gyro.CaunMin >> 0) & 0xff;//младший байт счетчика -.
Kovalev_D 124:9ae09249f842 381
Kovalev_D 122:fbacb932a30b 382 Check(BuffTemp, 8);
Kovalev_D 122:fbacb932a30b 383 WriteConN (BuffTemp,8);
Kovalev_D 121:bbae560cdd43 384 }
Kovalev_D 124:9ae09249f842 385
igor_v 0:8ad47e2b6f00 386 void CMD_Rate(void)
igor_v 21:bc8c1cec3da6 387 {
Kovalev_D 124:9ae09249f842 388
Kovalev_D 124:9ae09249f842 389 Gyro.Rate1_Event=0;
Kovalev_D 108:030cdde08314 390 unsigned int Temp;
Kovalev_D 107:4d178bcc9d8a 391
igor_v 30:17c84ed091b3 392 Gyro.Firmware_Version=0xff; /// промежуточная затычка
Kovalev_D 122:fbacb932a30b 393
igor_v 0:8ad47e2b6f00 394
igor_v 30:17c84ed091b3 395 BuffTemp[ 0] = Gyro.SOC_Out;
igor_v 30:17c84ed091b3 396 BuffTemp[ 1] = Gyro.My_Addres;
igor_v 21:bc8c1cec3da6 397
Kovalev_D 108:030cdde08314 398
Kovalev_D 112:4a96133a1311 399 BuffTemp[ 2] =(Gyro.CaunPlus >> 8) & 0xff;//старший байт счетчика +.
Kovalev_D 112:4a96133a1311 400 BuffTemp[ 3] =(Gyro.CaunPlus >> 0) & 0xff;//младший байт счетчика +.
Kovalev_D 108:030cdde08314 401
Kovalev_D 112:4a96133a1311 402 BuffTemp[ 4] =(Gyro.CaunMin >> 8) & 0xff;//старший байт счетчика -.
Kovalev_D 112:4a96133a1311 403 BuffTemp[ 5] =(Gyro.CaunMin >> 0) & 0xff;//младший байт счетчика -.
Kovalev_D 108:030cdde08314 404
Kovalev_D 113:8be429494918 405
Kovalev_D 108:030cdde08314 406 Temp = Gyro.CuruAngle;
Kovalev_D 108:030cdde08314 407 Gyro.CuruAngle = 0;
Kovalev_D 125:9400e64d0636 408 Temp = Gyro.AD_Fast >> 16;
Kovalev_D 108:030cdde08314 409 BuffTemp[ 6] =(Temp >> 8) & 0xff;//старший байт разности счетчиков
Kovalev_D 108:030cdde08314 410 BuffTemp[ 7] =(Temp >> 0) & 0xff;//младший байт разности счетчиков
Kovalev_D 108:030cdde08314 411
Kovalev_D 108:030cdde08314 412
Kovalev_D 122:fbacb932a30b 413 Temp = Gyro.F_ras;
Kovalev_D 122:fbacb932a30b 414 BuffTemp[ 8] = (Temp >> 8) & 0xff;//расщипление частота
Kovalev_D 122:fbacb932a30b 415 BuffTemp[ 9] = (Temp >> 0) & 0xff;//
igor_v 21:bc8c1cec3da6 416
Kovalev_D 108:030cdde08314 417 BuffTemp[10] = (Temp >> 8) & 0xff;//выход регулятора гвч;
Kovalev_D 122:fbacb932a30b 418 BuffTemp[11] = (Temp >> 0) & 0xff;
igor_v 21:bc8c1cec3da6 419
Kovalev_D 122:fbacb932a30b 420 Temp = (Gyro.AD_Slow >> 16)- 0x7fff;
Kovalev_D 108:030cdde08314 421 BuffTemp[12]=(Temp >> 8) & 0xff;////
Kovalev_D 108:030cdde08314 422 BuffTemp[13]=(Temp >> 0) & 0xff;////
igor_v 21:bc8c1cec3da6 423
Kovalev_D 108:030cdde08314 424
Kovalev_D 108:030cdde08314 425 Temp = (unsigned int)((7680000*16/(Gyro.Frq>>12)));
Kovalev_D 108:030cdde08314 426 BuffTemp[14] = (Temp >> 8) & 0xff;
Kovalev_D 108:030cdde08314 427 BuffTemp[15] = (Temp >> 0) & 0xff;
igor_v 21:bc8c1cec3da6 428
Kovalev_D 107:4d178bcc9d8a 429 BuffTemp[16] = 0xf;
Kovalev_D 106:250ddd8629c6 430 BuffTemp[17] = 0x02;
Kovalev_D 108:030cdde08314 431
igor_v 21:bc8c1cec3da6 432
Kovalev_D 108:030cdde08314 433 Temp = (unsigned int)(((7680000*16/200) *Gyro.AmpPer /(Gyro.Frq>>12)));
Kovalev_D 108:030cdde08314 434 BuffTemp[18] = (Temp >> 8) & 0xff;
Kovalev_D 108:030cdde08314 435 BuffTemp[19] = (Temp >> 0) & 0xff;
igor_v 21:bc8c1cec3da6 436
Kovalev_D 106:250ddd8629c6 437 BuffTemp[20] = 0x00;
Kovalev_D 106:250ddd8629c6 438 BuffTemp[21] = 0x00;
Kovalev_D 120:9f446f1495e8 439
Kovalev_D 119:4d7fcece9e8e 440
Kovalev_D 125:9400e64d0636 441
Kovalev_D 121:bbae560cdd43 442 Temp = Spi.DAC_B - 0x7fff;
Kovalev_D 108:030cdde08314 443 BuffTemp[22] = (Temp >> 8) & 0xff;
Kovalev_D 108:030cdde08314 444 BuffTemp[23] = (Temp >> 0) & 0xff;
igor_v 21:bc8c1cec3da6 445
Kovalev_D 121:bbae560cdd43 446
Kovalev_D 121:bbae560cdd43 447 Temp = Gyro.PLC_Delta >> 16;
Kovalev_D 121:bbae560cdd43 448 BuffTemp[24] = (Temp >> 8) & 0xff;
Kovalev_D 121:bbae560cdd43 449 BuffTemp[25] = (Temp >> 0) & 0xff;// ХЗ
Kovalev_D 113:8be429494918 450
Kovalev_D 125:9400e64d0636 451 Temp = 100;
Kovalev_D 125:9400e64d0636 452 Temp = Gyro.AD_Slow >> 16;
Kovalev_D 113:8be429494918 453 BuffTemp[26] = (Temp >> 8) & 0xff;
Kovalev_D 113:8be429494918 454 BuffTemp[27] = (Temp >> 0) & 0xff;
Kovalev_D 113:8be429494918 455
Kovalev_D 113:8be429494918 456 Temp = Gyro.AD_Slow >> 16;
Kovalev_D 113:8be429494918 457 BuffTemp[28] = (Temp >> 8) & 0xff;
Kovalev_D 113:8be429494918 458 BuffTemp[29] = (Temp >> 0) & 0xff;
Kovalev_D 113:8be429494918 459
Kovalev_D 113:8be429494918 460 Temp = Gyro.In1;
Kovalev_D 113:8be429494918 461 BuffTemp[30] = (Temp >> 8) & 0xff;//in1//2
Kovalev_D 113:8be429494918 462 BuffTemp[31] = (Temp >> 0) & 0xff;
Kovalev_D 113:8be429494918 463
Kovalev_D 113:8be429494918 464 Temp = Gyro.In2;
Kovalev_D 113:8be429494918 465 BuffTemp[32] = (Temp >> 8) & 0xff;
Kovalev_D 113:8be429494918 466 BuffTemp[33] = (Temp >> 0) & 0xff;//in2//3
Kovalev_D 113:8be429494918 467
Kovalev_D 113:8be429494918 468 Temp = Gyro.DeltaT;
Kovalev_D 113:8be429494918 469 BuffTemp[34] = (Temp >> 8) & 0xff;//дельта
Kovalev_D 113:8be429494918 470 BuffTemp[35] = (Temp >> 0) & 0xff;
Kovalev_D 115:e5a230e5af52 471
Kovalev_D 116:66f1f0ff2dab 472 Temp = Gyro.Termo;//0xa4=164
Kovalev_D 115:e5a230e5af52 473
Kovalev_D 113:8be429494918 474 BuffTemp[36] =(Temp >> 8) & 0xff;//температура
Kovalev_D 115:e5a230e5af52 475 BuffTemp[37] =(Temp >> 0) & 0xff;//ADC6 sesnsor 5
igor_v 21:bc8c1cec3da6 476
Kovalev_D 106:250ddd8629c6 477 BuffTemp[38] =0x00;
Kovalev_D 106:250ddd8629c6 478 BuffTemp[39] =0x00;
Kovalev_D 106:250ddd8629c6 479 BuffTemp[40] =0x00;
Kovalev_D 106:250ddd8629c6 480 BuffTemp[41] =0x00;
igor_v 21:bc8c1cec3da6 481
igor_v 21:bc8c1cec3da6 482
igor_v 21:bc8c1cec3da6 483 Check(BuffTemp, 44);
igor_v 21:bc8c1cec3da6 484 WriteConN (BuffTemp,44);
Kovalev_D 92:c892f0311aa7 485
igor_v 0:8ad47e2b6f00 486 }
igor_v 0:8ad47e2b6f00 487
igor_v 21:bc8c1cec3da6 488 void CMD_M_Control_D8()///установка\сброс регистров управления
igor_v 21:bc8c1cec3da6 489 {
Kovalev_D 104:ab1cb4ff56b2 490 unsigned int bit,NReg,Pa;
Kovalev_D 104:ab1cb4ff56b2 491 unsigned int SR,V,A,Bit_num;
Kovalev_D 104:ab1cb4ff56b2 492 SR=0;
Kovalev_D 104:ab1cb4ff56b2 493 V=0;
Kovalev_D 104:ab1cb4ff56b2 494 A=0;
Kovalev_D 104:ab1cb4ff56b2 495 Bit_num=0;
Kovalev_D 104:ab1cb4ff56b2 496
igor_v 30:17c84ed091b3 497 BuffTemp[0] = Gyro.SOC_Out; //DD
igor_v 30:17c84ed091b3 498 BuffTemp[1] = Gyro.My_Addres; //00
igor_v 30:17c84ed091b3 499 BuffTemp[2] = Gyro.CMD_In; //D8
Kovalev_D 104:ab1cb4ff56b2 500
Kovalev_D 104:ab1cb4ff56b2 501 /*
Kovalev_D 104:ab1cb4ff56b2 502
Kovalev_D 104:ab1cb4ff56b2 503 FrqON
Kovalev_D 104:ab1cb4ff56b2 504 PlcON
Kovalev_D 104:ab1cb4ff56b2 505 HFOOFF
Kovalev_D 104:ab1cb4ff56b2 506 HFOON
igor_v 21:bc8c1cec3da6 507
Kovalev_D 104:ab1cb4ff56b2 508 PlcOFF
Kovalev_D 104:ab1cb4ff56b2 509 PlcON
Kovalev_D 104:ab1cb4ff56b2 510 */
Kovalev_D 104:ab1cb4ff56b2 511 Pa = BuffTemp[3];
Kovalev_D 104:ab1cb4ff56b2 512
Kovalev_D 104:ab1cb4ff56b2 513 SR = Pa >> 0x7;
Kovalev_D 104:ab1cb4ff56b2 514
Kovalev_D 104:ab1cb4ff56b2 515 V = Pa >> 0x5;
Kovalev_D 104:ab1cb4ff56b2 516 V = V & 0x3;
Kovalev_D 104:ab1cb4ff56b2 517
Kovalev_D 104:ab1cb4ff56b2 518 A = Pa >> 0x4;
Kovalev_D 104:ab1cb4ff56b2 519 A = A & 0x1;
Kovalev_D 104:ab1cb4ff56b2 520
Kovalev_D 104:ab1cb4ff56b2 521 Bit_num = Pa & 0xf;
Kovalev_D 104:ab1cb4ff56b2 522
Kovalev_D 104:ab1cb4ff56b2 523 if(SR) {
Kovalev_D 104:ab1cb4ff56b2 524 switch (Bit_num){
Kovalev_D 105:bd01d8d20fb6 525
Kovalev_D 104:ab1cb4ff56b2 526 case 0x06:
Kovalev_D 104:ab1cb4ff56b2 527 FrqON
Kovalev_D 105:bd01d8d20fb6 528 break;
Kovalev_D 105:bd01d8d20fb6 529
Kovalev_D 104:ab1cb4ff56b2 530 case 0x03:
Kovalev_D 105:bd01d8d20fb6 531 HFOON
Kovalev_D 105:bd01d8d20fb6 532 break;
Kovalev_D 105:bd01d8d20fb6 533
Kovalev_D 105:bd01d8d20fb6 534 case 0x01:
Kovalev_D 105:bd01d8d20fb6 535 PlcON
Kovalev_D 105:bd01d8d20fb6 536 break;
Kovalev_D 104:ab1cb4ff56b2 537 }
Kovalev_D 104:ab1cb4ff56b2 538 }
Kovalev_D 104:ab1cb4ff56b2 539 else{
Kovalev_D 104:ab1cb4ff56b2 540 switch (Bit_num){
Kovalev_D 105:bd01d8d20fb6 541
Kovalev_D 105:bd01d8d20fb6 542 case 0x06:
Kovalev_D 104:ab1cb4ff56b2 543 FrqOff
Kovalev_D 105:bd01d8d20fb6 544 break;
Kovalev_D 105:bd01d8d20fb6 545
Kovalev_D 105:bd01d8d20fb6 546 case 0x03:
Kovalev_D 105:bd01d8d20fb6 547 HFOOFF
Kovalev_D 105:bd01d8d20fb6 548 break;
Kovalev_D 105:bd01d8d20fb6 549
Kovalev_D 105:bd01d8d20fb6 550 case 0x01:
Kovalev_D 105:bd01d8d20fb6 551 PlcOFF
Kovalev_D 105:bd01d8d20fb6 552 break;
Kovalev_D 104:ab1cb4ff56b2 553 }
Kovalev_D 104:ab1cb4ff56b2 554 }
igor_v 21:bc8c1cec3da6 555
igor_v 0:8ad47e2b6f00 556 }
igor_v 0:8ad47e2b6f00 557
igor_v 21:bc8c1cec3da6 558 void CMD_M_Control_D9()///чтение регистров управления
igor_v 21:bc8c1cec3da6 559 {
igor_v 21:bc8c1cec3da6 560 int bit,NReg;
igor_v 30:17c84ed091b3 561 BuffTemp[0] = Gyro.SOC_Out; //DD
igor_v 30:17c84ed091b3 562 BuffTemp[1] = Gyro.My_Addres; //00
igor_v 30:17c84ed091b3 563 BuffTemp[2] = Gyro.CMD_In; //D9
igor_v 21:bc8c1cec3da6 564 if ((Param1 & 0x10) == 0) {
igor_v 21:bc8c1cec3da6 565 BuffTemp[3]=0<<4;
igor_v 30:17c84ed091b3 566 BuffTemp[4] = (Gyro.RgConA>>8 )& 0xff;
igor_v 30:17c84ed091b3 567 BuffTemp[5] = Gyro.RgConA & 0xff;
igor_v 21:bc8c1cec3da6 568 } else {
igor_v 21:bc8c1cec3da6 569 BuffTemp[3]=1<<4;
igor_v 30:17c84ed091b3 570 BuffTemp[4] = (Gyro.RgConB>>8 ) & 0xff;
igor_v 30:17c84ed091b3 571 BuffTemp[5] = Gyro.RgConB & 0xff;
igor_v 21:bc8c1cec3da6 572 }
igor_v 21:bc8c1cec3da6 573 Check(BuffTemp, CRC_N);
igor_v 21:bc8c1cec3da6 574 WriteConN (BuffTemp,CRC_N);
igor_v 21:bc8c1cec3da6 575 }
igor_v 21:bc8c1cec3da6 576 // (номер (код) ЦАПа 0...3, старший байт требуемого ЦАПа, младший байт треб ЦАПа)
igor_v 0:8ad47e2b6f00 577 void CMD_M_Stymul()
igor_v 0:8ad47e2b6f00 578 {
igor_v 21:bc8c1cec3da6 579 int temp;
Kovalev_D 102:4270092be987 580 int HFO;
Kovalev_D 102:4270092be987 581 temp=BuffTemp[3];
Kovalev_D 102:4270092be987 582 Consol = temp&0x3;
Kovalev_D 103:e96f08947def 583 HFO = temp&0x3;// // (номер (код) ЦАПа 0...3, HFO - 3dac, PLC - 0DAC
igor_v 21:bc8c1cec3da6 584 temp =((BuffTemp[4]<<8) | BuffTemp[5]);
igor_v 21:bc8c1cec3da6 585 // temp=0;
igor_v 21:bc8c1cec3da6 586 temp=temp&0xFFFF;
Kovalev_D 102:4270092be987 587
Kovalev_D 102:4270092be987 588 if(HFO)
Kovalev_D 102:4270092be987 589 {
Kovalev_D 102:4270092be987 590 Spi.DAC_A=(unsigned int)temp;
Kovalev_D 102:4270092be987 591 }
Kovalev_D 102:4270092be987 592 else{
igor_v 21:bc8c1cec3da6 593 DACF =(temp*K_DAC)+deltaDAC;
igor_v 21:bc8c1cec3da6 594 Spi.DAC_B =(unsigned int)(DACF) /*(unsigned int)(temp*K_DAC+deltaDAC)*/; // K_DAC);
igor_v 21:bc8c1cec3da6 595 }
igor_v 0:8ad47e2b6f00 596 }
Kovalev_D 103:e96f08947def 597 void Gph_W()
Kovalev_D 103:e96f08947def 598 {
Kovalev_D 108:030cdde08314 599 Out_G_photo(BuffTemp[4],BuffTemp[5]);
Kovalev_D 103:e96f08947def 600 }
igor_v 0:8ad47e2b6f00 601
Kovalev_D 98:95b8e79f13e1 602 void CMD_M_vib()
Kovalev_D 115:e5a230e5af52 603 {
Kovalev_D 102:4270092be987 604 unsigned int temp1,temp2;
Kovalev_D 102:4270092be987 605
Kovalev_D 102:4270092be987 606 temp1 =((BuffTemp[4]<<8) | BuffTemp[5]);
Kovalev_D 102:4270092be987 607 temp1=temp1&0xFFFF;
Kovalev_D 102:4270092be987 608
Kovalev_D 102:4270092be987 609 temp2 =((BuffTemp[6]<<8) | BuffTemp[7]);
Kovalev_D 102:4270092be987 610 temp2=temp2&0xFFFF;
Kovalev_D 102:4270092be987 611 Gyro.Frq = ((unsigned int) ((7680000*16/temp1)))*16*16*16;
Kovalev_D 102:4270092be987 612 Consol=Gyro.Frq ;
Kovalev_D 98:95b8e79f13e1 613 }
igor_v 0:8ad47e2b6f00 614 unsigned int Check(char *c, unsigned int Count)
igor_v 0:8ad47e2b6f00 615 {
igor_v 21:bc8c1cec3da6 616 int i=1;
igor_v 21:bc8c1cec3da6 617 unsigned int temp,CRC;
igor_v 21:bc8c1cec3da6 618
igor_v 21:bc8c1cec3da6 619
igor_v 21:bc8c1cec3da6 620 temp=1;
igor_v 21:bc8c1cec3da6 621 CRC=0;
igor_v 21:bc8c1cec3da6 622
igor_v 21:bc8c1cec3da6 623
igor_v 21:bc8c1cec3da6 624 for(; i<Count-2; i++) {
igor_v 21:bc8c1cec3da6 625 CRC+=c[i];
igor_v 21:bc8c1cec3da6 626 }
igor_v 0:8ad47e2b6f00 627
igor_v 21:bc8c1cec3da6 628 if(c[Count-2]!=((CRC>>8)&0xFF)) {
igor_v 21:bc8c1cec3da6 629 temp=0;
igor_v 30:17c84ed091b3 630 Gyro.RsErrLine = (Gyro.RsErrLine)&=0x2;
igor_v 21:bc8c1cec3da6 631 }
igor_v 0:8ad47e2b6f00 632
igor_v 21:bc8c1cec3da6 633 if(c[Count-1]!=((CRC>>0)&0xFF)) {
igor_v 21:bc8c1cec3da6 634 temp=0;
igor_v 30:17c84ed091b3 635 // Gyro.RsErrLine= (Gyro.RsErrLine)=0x2;
igor_v 21:bc8c1cec3da6 636 }
igor_v 21:bc8c1cec3da6 637
igor_v 21:bc8c1cec3da6 638 c[Count-2]=(CRC>>8)&0xFF;
igor_v 21:bc8c1cec3da6 639 c[Count-1]=(CRC>>0)&0xFF;
igor_v 21:bc8c1cec3da6 640
igor_v 21:bc8c1cec3da6 641
igor_v 21:bc8c1cec3da6 642
igor_v 21:bc8c1cec3da6 643 return temp;
igor_v 0:8ad47e2b6f00 644 }
igor_v 0:8ad47e2b6f00 645
igor_v 0:8ad47e2b6f00 646 int Getlengf(void)
igor_v 0:8ad47e2b6f00 647 {
Kovalev_D 121:bbae560cdd43 648 unsigned int lengf;
Kovalev_D 121:bbae560cdd43 649 lengf = 1;
igor_v 30:17c84ed091b3 650 switch(Gyro.CMD_In) {
igor_v 30:17c84ed091b3 651 case 0x99://Gyrotainance
Kovalev_D 92:c892f0311aa7 652
igor_v 21:bc8c1cec3da6 653 lengf=6;
igor_v 21:bc8c1cec3da6 654 CRC_N=8;
igor_v 21:bc8c1cec3da6 655 break;
igor_v 0:8ad47e2b6f00 656
igor_v 21:bc8c1cec3da6 657 case 0x0A: //m_stymul
igor_v 21:bc8c1cec3da6 658 lengf=8;
igor_v 21:bc8c1cec3da6 659 break;
igor_v 21:bc8c1cec3da6 660
igor_v 21:bc8c1cec3da6 661 case 0xA5://DeviceMode
igor_v 21:bc8c1cec3da6 662
igor_v 21:bc8c1cec3da6 663 lengf=6;
igor_v 21:bc8c1cec3da6 664 CRC_N=8;
igor_v 21:bc8c1cec3da6 665 break;
igor_v 21:bc8c1cec3da6 666
igor_v 21:bc8c1cec3da6 667 case 0xDD://m_rate
igor_v 21:bc8c1cec3da6 668 lengf=6;
igor_v 21:bc8c1cec3da6 669 CRC_N=44;
igor_v 21:bc8c1cec3da6 670 break;
Kovalev_D 124:9ae09249f842 671
Kovalev_D 124:9ae09249f842 672 case 0xA0://Delta_PS
Kovalev_D 124:9ae09249f842 673 lengf=6;
Kovalev_D 124:9ae09249f842 674 CRC_N=8;
Kovalev_D 124:9ae09249f842 675 break;
Kovalev_D 124:9ae09249f842 676
Kovalev_D 124:9ae09249f842 677
igor_v 21:bc8c1cec3da6 678 case 0xB0://DeviceMode
igor_v 21:bc8c1cec3da6 679
igor_v 21:bc8c1cec3da6 680 lengf=6;
igor_v 21:bc8c1cec3da6 681 CRC_N=8;
igor_v 21:bc8c1cec3da6 682 break;
igor_v 21:bc8c1cec3da6 683
igor_v 21:bc8c1cec3da6 684 case 0xD8://m_control
igor_v 0:8ad47e2b6f00 685
igor_v 21:bc8c1cec3da6 686 lengf=6;
igor_v 21:bc8c1cec3da6 687 CRC_N=8;
igor_v 21:bc8c1cec3da6 688 break;
igor_v 21:bc8c1cec3da6 689
igor_v 21:bc8c1cec3da6 690 case 0xD9://m_control
igor_v 0:8ad47e2b6f00 691
igor_v 21:bc8c1cec3da6 692 lengf=6;
igor_v 21:bc8c1cec3da6 693 CRC_N=8;
igor_v 21:bc8c1cec3da6 694 break;
Kovalev_D 102:4270092be987 695
Kovalev_D 102:4270092be987 696 case 0xE4:
Kovalev_D 98:95b8e79f13e1 697 lengf=8;
Kovalev_D 98:95b8e79f13e1 698 break;
Kovalev_D 103:e96f08947def 699
Kovalev_D 103:e96f08947def 700
Kovalev_D 103:e96f08947def 701 case 0xE6:
Kovalev_D 103:e96f08947def 702 lengf=8;
Kovalev_D 103:e96f08947def 703 break;
Kovalev_D 103:e96f08947def 704
igor_v 21:bc8c1cec3da6 705 }
Kovalev_D 98:95b8e79f13e1 706
igor_v 21:bc8c1cec3da6 707 return lengf;
igor_v 0:8ad47e2b6f00 708 }
igor_v 0:8ad47e2b6f00 709
igor_v 0:8ad47e2b6f00 710 void Read_CMD(void)
igor_v 21:bc8c1cec3da6 711 {
Kovalev_D 92:c892f0311aa7 712
Kovalev_D 45:cbc955aecebe 713
Kovalev_D 45:cbc955aecebe 714 Gyro.RsErrLine = (Gyro.RsErrLine)& 0xffff;//для сброса ошибки
igor_v 21:bc8c1cec3da6 715
Kovalev_D 93:b3803774f110 716 CountBuFFIn=ReadChekCon1(BuffTemp); // чтение данных из консоли
igor_v 42:6fc307c4963e 717
Kovalev_D 92:c892f0311aa7 718 if(CountBuFFIn==1) { // если есть первый байт
igor_v 21:bc8c1cec3da6 719 if (BuffTemp[0] != SOC_In) {
Kovalev_D 93:b3803774f110 720 ReadCon1(BuffTemp);
igor_v 30:17c84ed091b3 721 Gyro.RsErrLine += 0x100;//WriteCon("\n\r ...Error.... ");
Kovalev_D 93:b3803774f110 722 BuffTemp[99]=Gyro.RsErrLine;
Kovalev_D 102:4270092be987 723
igor_v 21:bc8c1cec3da6 724 }
Kovalev_D 92:c892f0311aa7 725 } else if(CountBuFFIn==2) { //если второй ,fqn
igor_v 30:17c84ed091b3 726 if (BuffTemp[1] != Gyro.My_Addres) {
Kovalev_D 93:b3803774f110 727 ReadCon1(BuffTemp);
igor_v 30:17c84ed091b3 728 Gyro.RsErrLine += 0x1;//WriteCon("\n\r ...Error_ADDRES.... ");
igor_v 21:bc8c1cec3da6 729 }
igor_v 42:6fc307c4963e 730 } else if(CountBuFFIn==3) { // если ьоетий байт
igor_v 30:17c84ed091b3 731 Gyro.CMD_In=BuffTemp[2];
Kovalev_D 92:c892f0311aa7 732 N=Getlengf();
Kovalev_D 92:c892f0311aa7 733 }
Kovalev_D 92:c892f0311aa7 734 else if(CountBuFFIn==4 && (N==6))
Kovalev_D 92:c892f0311aa7 735 { // N - длина посылки аскглд(для записи параметров). определяется по коду команды в Getlengf();
igor_v 21:bc8c1cec3da6 736 Param1=BuffTemp[3];
Kovalev_D 92:c892f0311aa7 737 }
Kovalev_D 92:c892f0311aa7 738 else if((CountBuFFIn==5)&&(N==7))
Kovalev_D 92:c892f0311aa7 739 {
Kovalev_D 92:c892f0311aa7 740
igor_v 21:bc8c1cec3da6 741 Param1=BuffTemp[3];
igor_v 21:bc8c1cec3da6 742 Param2=BuffTemp[4];
igor_v 0:8ad47e2b6f00 743
Kovalev_D 92:c892f0311aa7 744 }
Kovalev_D 92:c892f0311aa7 745 else if((CountBuFFIn==6)&&(N==8))
Kovalev_D 92:c892f0311aa7 746 {
igor_v 21:bc8c1cec3da6 747 Param1=BuffTemp[3];
igor_v 21:bc8c1cec3da6 748 Param2=BuffTemp[4];
igor_v 21:bc8c1cec3da6 749 Param3=BuffTemp[5];
Kovalev_D 92:c892f0311aa7 750 }
Kovalev_D 102:4270092be987 751 else if((CountBuFFIn==8)&&(N==10))
Kovalev_D 102:4270092be987 752 {
Kovalev_D 102:4270092be987 753 Param1=BuffTemp[4];
Kovalev_D 102:4270092be987 754 Param2=BuffTemp[5];
Kovalev_D 102:4270092be987 755 Param3=BuffTemp[6];
Kovalev_D 102:4270092be987 756 Param4=BuffTemp[7];
Kovalev_D 102:4270092be987 757 }
Kovalev_D 98:95b8e79f13e1 758
Kovalev_D 92:c892f0311aa7 759 else if(CountBuFFIn > (N-1))
Kovalev_D 92:c892f0311aa7 760 {
Kovalev_D 93:b3803774f110 761 ReadCon1(BuffTemp);
igor_v 30:17c84ed091b3 762 switch(Gyro.CMD_In) {
Kovalev_D 122:fbacb932a30b 763 Rate_Flag=0;
Kovalev_D 92:c892f0311aa7 764 case 0x99:
Kovalev_D 124:9ae09249f842 765 Gyro.ModeOut=0;
igor_v 21:bc8c1cec3da6 766 CMD_Maintenance();
Kovalev_D 124:9ae09249f842 767 break;
Kovalev_D 124:9ae09249f842 768 case 0xA0:
Kovalev_D 124:9ae09249f842 769 TempParam=(BuffTemp[3]) & 0x90;
Kovalev_D 124:9ae09249f842 770 if (TempParam==Delta_500) CMD_Delta_500Hz();
Kovalev_D 124:9ae09249f842 771 else if (TempParam==Delta_EXT) CMD_Delta_Ext();
Kovalev_D 124:9ae09249f842 772 else if (TempParam==PDelta_500) { Gyro.ModeOut=3; Gyro.Delta500_Event=0; WriteCon("Delta500"); }
Kovalev_D 124:9ae09249f842 773 else if (TempParam==PDelta_EXT) { Gyro.ModeOut=4; Gyro.DeltaEXT_Event=0; WriteCon("deltaEXT"); }
igor_v 21:bc8c1cec3da6 774 break;
igor_v 21:bc8c1cec3da6 775 case 0xD8:
igor_v 21:bc8c1cec3da6 776 CMD_M_Control_D8();
Kovalev_D 124:9ae09249f842 777 break;
igor_v 21:bc8c1cec3da6 778 case 0xD9:
igor_v 21:bc8c1cec3da6 779 CMD_M_Control_D9();
igor_v 21:bc8c1cec3da6 780 break;
igor_v 21:bc8c1cec3da6 781 case 0x0A:
Kovalev_D 45:cbc955aecebe 782 CMD_M_Stymul();
igor_v 21:bc8c1cec3da6 783 break;
igor_v 21:bc8c1cec3da6 784 case 0xDD:
Kovalev_D 124:9ae09249f842 785 TempParam=(BuffTemp[3]) & 0x9f;
Kovalev_D 124:9ae09249f842 786 if (TempParam == Rate1) { CMD_Rate(); WriteCon("Rate11");}
Kovalev_D 124:9ae09249f842 787 else if (TempParam == Rate2) { CMD_Rate2(); WriteCon("Rate21");}
Kovalev_D 124:9ae09249f842 788 else if (TempParam == PRate1) { Gyro.ModeOut=1; Gyro.Rate1_Event=0; WriteCon("Rate12");}
Kovalev_D 124:9ae09249f842 789 else if (TempParam == PRate2) { Gyro.ModeOut=2; Gyro.Rate2_Event=0; WriteCon("Rate22");}
Kovalev_D 122:fbacb932a30b 790 break;
Kovalev_D 102:4270092be987 791 case 0xE4:
Kovalev_D 102:4270092be987 792 CMD_M_vib();
Kovalev_D 102:4270092be987 793 break;
Kovalev_D 103:e96f08947def 794 case 0xE6:
Kovalev_D 103:e96f08947def 795 Gph_W();
Kovalev_D 103:e96f08947def 796 break;
Kovalev_D 108:030cdde08314 797
Kovalev_D 103:e96f08947def 798
igor_v 30:17c84ed091b3 799 Gyro.RsErrLine = 0;
Kovalev_D 103:e96f08947def 800
Kovalev_D 103:e96f08947def 801
Kovalev_D 102:4270092be987 802 }
Kovalev_D 121:bbae560cdd43 803
igor_v 21:bc8c1cec3da6 804 }
Kovalev_D 121:bbae560cdd43 805 // else if(CountBuFFIn > 40 )
Kovalev_D 121:bbae560cdd43 806 // {
Kovalev_D 121:bbae560cdd43 807 // ReadCon1(BuffTemp);
Kovalev_D 121:bbae560cdd43 808 // }
Kovalev_D 121:bbae560cdd43 809
igor_v 0:8ad47e2b6f00 810 }
igor_v 0:8ad47e2b6f00 811
igor_v 0:8ad47e2b6f00 812
igor_v 21:bc8c1cec3da6 813