fork

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Kovalev_D
Date:
Fri Apr 29 07:27:50 2016 +0000
Revision:
147:1aed74f19a8f
Parent:
145:f023b2f18b82
Child:
148:7ce8c1fd00f7
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;
Kovalev_D 129:406995a91322 15
Kovalev_D 147:1aed74f19a8f 16 int ttemp;
Kovalev_D 136:19b9e6abb86f 17
Kovalev_D 136:19b9e6abb86f 18
Kovalev_D 136:19b9e6abb86f 19 unsigned int pDestT ;
Kovalev_D 136:19b9e6abb86f 20 GyroParam *Flash;
Kovalev_D 147:1aed74f19a8f 21 ///////////////flah and boot///////////
Kovalev_D 147:1aed74f19a8f 22 void GoBoot(void)
Kovalev_D 147:1aed74f19a8f 23 {
Kovalev_D 147:1aed74f19a8f 24 /* Prepare Sectors to be flashed */
Kovalev_D 147:1aed74f19a8f 25 NVIC_DisableIRQ(TIMER1_IRQn);
Kovalev_D 147:1aed74f19a8f 26 NVIC_DisableIRQ(TIMER2_IRQn);
Kovalev_D 147:1aed74f19a8f 27 NVIC_DisableIRQ(TIMER3_IRQn);
Kovalev_D 147:1aed74f19a8f 28 NVIC_DisableIRQ(EINT3_IRQn);
Kovalev_D 147:1aed74f19a8f 29 SystemInitDef();
Kovalev_D 147:1aed74f19a8f 30 vIAP_ReinvokeISP();
Kovalev_D 147:1aed74f19a8f 31 }
Kovalev_D 147:1aed74f19a8f 32
Kovalev_D 147:1aed74f19a8f 33 void WriteFlash(void)
Kovalev_D 147:1aed74f19a8f 34 {
Kovalev_D 147:1aed74f19a8f 35
Kovalev_D 147:1aed74f19a8f 36 NVIC_DisableIRQ(TIMER1_IRQn);
Kovalev_D 147:1aed74f19a8f 37 NVIC_DisableIRQ(TIMER2_IRQn);
Kovalev_D 147:1aed74f19a8f 38 NVIC_DisableIRQ(TIMER3_IRQn);
Kovalev_D 147:1aed74f19a8f 39 NVIC_DisableIRQ(EINT3_IRQn);
Kovalev_D 147:1aed74f19a8f 40
Kovalev_D 147:1aed74f19a8f 41 SystemInitDef();
Kovalev_D 147:1aed74f19a8f 42 WriteCon("\r\n Start Prepare Sectors");
Kovalev_D 147:1aed74f19a8f 43 if(u32IAP_PrepareSectors(18, 21) == IAP_STA_CMD_SUCCESS)
Kovalev_D 147:1aed74f19a8f 44 {
Kovalev_D 147:1aed74f19a8f 45 WriteCon("\r\nPrepare Sectors OK");
Kovalev_D 147:1aed74f19a8f 46 WriteCon("\r\n Start Erase");
Kovalev_D 147:1aed74f19a8f 47 u32IAP_EraseSectors(IMG_START_SECTOR, IMG_END_SECTOR);
Kovalev_D 147:1aed74f19a8f 48 WriteCon("\r\n AND Erase");
Kovalev_D 147:1aed74f19a8f 49 }
Kovalev_D 147:1aed74f19a8f 50 else WriteCon("\r\nPrepare Sectors ERROR");
Kovalev_D 147:1aed74f19a8f 51 SystemInit1();
Kovalev_D 147:1aed74f19a8f 52 Gyro.FlashMod = 0;
Kovalev_D 147:1aed74f19a8f 53 }
Kovalev_D 136:19b9e6abb86f 54
Kovalev_D 136:19b9e6abb86f 55 void ReadFlash ( void)
Kovalev_D 136:19b9e6abb86f 56 {
Kovalev_D 147:1aed74f19a8f 57 Gyro.FlashMod = 0;
Kovalev_D 136:19b9e6abb86f 58 WriteCon("\r\n Pirivet Flash");
Kovalev_D 136:19b9e6abb86f 59 pDestT= (unsigned int) (0x10000);
Kovalev_D 136:19b9e6abb86f 60 Flash = (GyroParam*) pDestT;
Kovalev_D 136:19b9e6abb86f 61 GyroP = *(Flash);
Kovalev_D 136:19b9e6abb86f 62 sprintf((Time)," dffddfd <%07d> ", GyroP.Str.K_WP_rst_heating);
Kovalev_D 136:19b9e6abb86f 63 WriteCon(Time);
Kovalev_D 136:19b9e6abb86f 64
Kovalev_D 136:19b9e6abb86f 65 }
Kovalev_D 136:19b9e6abb86f 66
Kovalev_D 147:1aed74f19a8f 67 /////////////////////////////////////////
Kovalev_D 136:19b9e6abb86f 68
Kovalev_D 136:19b9e6abb86f 69 unsigned int memdump( char *base, int n )
Kovalev_D 136:19b9e6abb86f 70 {
Kovalev_D 136:19b9e6abb86f 71
Kovalev_D 136:19b9e6abb86f 72 unsigned int *p;
Kovalev_D 136:19b9e6abb86f 73
Kovalev_D 136:19b9e6abb86f 74 printf( " memdump from 0x%08X for %d bytes", (unsigned long)base, n );
Kovalev_D 136:19b9e6abb86f 75
Kovalev_D 136:19b9e6abb86f 76 p = (unsigned int *)((unsigned int)base & ~(unsigned int)0x3);
Kovalev_D 136:19b9e6abb86f 77
Kovalev_D 136:19b9e6abb86f 78 for ( int i = 0; i < (n >> 2); i++, p++ ) {
Kovalev_D 136:19b9e6abb86f 79 if ( !(i % 4) )
Kovalev_D 136:19b9e6abb86f 80 printf( "\r\n 0x%08X :", (unsigned int)p );
Kovalev_D 136:19b9e6abb86f 81 printf( " 0x%08X", *p );
Kovalev_D 136:19b9e6abb86f 82 }
Kovalev_D 136:19b9e6abb86f 83
Kovalev_D 136:19b9e6abb86f 84 printf( "\r\n" );
Kovalev_D 136:19b9e6abb86f 85
Kovalev_D 136:19b9e6abb86f 86
Kovalev_D 136:19b9e6abb86f 87 }
Kovalev_D 136:19b9e6abb86f 88
Kovalev_D 136:19b9e6abb86f 89
Kovalev_D 129:406995a91322 90 void CMD_M_Param_R(void)
igor_v 0:8ad47e2b6f00 91 {
Kovalev_D 129:406995a91322 92 unsigned int NP;
Kovalev_D 129:406995a91322 93 unsigned int Param;
Kovalev_D 129:406995a91322 94 BuffTemp[0] = Gyro.SOC_Out;
Kovalev_D 129:406995a91322 95 BuffTemp[1] = Gyro.My_Addres;
Kovalev_D 129:406995a91322 96
Kovalev_D 129:406995a91322 97 NP = BuffTemp[3];
Kovalev_D 129:406995a91322 98
Kovalev_D 129:406995a91322 99 Param = GyroP.Array[NP];
Kovalev_D 129:406995a91322 100
Kovalev_D 129:406995a91322 101 BuffTemp[2] =(Param >> 8) & 0xff;//старший байт требуемого параметра
Kovalev_D 129:406995a91322 102 BuffTemp[3] =(Param >> 0) & 0xff;//младший байт требуемого параметра
Kovalev_D 129:406995a91322 103
Kovalev_D 129:406995a91322 104 Check(BuffTemp, 6);
Kovalev_D 129:406995a91322 105 WriteConN (BuffTemp,6);
Kovalev_D 129:406995a91322 106 }
Kovalev_D 129:406995a91322 107 void CMD_M_Param_W(void)
Kovalev_D 129:406995a91322 108 {
Kovalev_D 129:406995a91322 109 unsigned int NP;
Kovalev_D 129:406995a91322 110 unsigned int Param;
Kovalev_D 129:406995a91322 111
Kovalev_D 129:406995a91322 112 NP = BuffTemp[3];
Kovalev_D 129:406995a91322 113 Param = (BuffTemp[4]<<8);
Kovalev_D 129:406995a91322 114 Param |= BuffTemp[5];
Kovalev_D 129:406995a91322 115
Kovalev_D 129:406995a91322 116 GyroP.Array[NP] = Param;
Kovalev_D 129:406995a91322 117
Kovalev_D 129:406995a91322 118
Kovalev_D 129:406995a91322 119 BuffTemp[0] = Gyro.SOC_Out;
Kovalev_D 129:406995a91322 120 BuffTemp[1] = Gyro.My_Addres;
Kovalev_D 129:406995a91322 121 BuffTemp[2] = Gyro.CMD_In;
Kovalev_D 129:406995a91322 122 BuffTemp[3] = 0x00;//старший байт требуемого параметра
Kovalev_D 129:406995a91322 123
Kovalev_D 129:406995a91322 124 Check(BuffTemp, 6);
Kovalev_D 129:406995a91322 125 WriteConN (BuffTemp,6);
Kovalev_D 129:406995a91322 126 }
igor_v 0:8ad47e2b6f00 127 void CMD_Maintenance(void)
igor_v 0:8ad47e2b6f00 128 {
Kovalev_D 122:fbacb932a30b 129
Kovalev_D 122:fbacb932a30b 130 BuffTemp[0] = Gyro.SOC_Out;
Kovalev_D 124:9ae09249f842 131 BuffTemp[1] = Gyro.My_Addres;
Kovalev_D 124:9ae09249f842 132 BuffTemp[2] = Gyro.Firmware_Version;
Kovalev_D 124:9ae09249f842 133 BuffTemp[3] = Gyro.GLD_Serial;
igor_v 21:bc8c1cec3da6 134 BuffTemp[4]=0x00;
igor_v 21:bc8c1cec3da6 135 BuffTemp[5]=0x00;
igor_v 21:bc8c1cec3da6 136 Check(BuffTemp, 8);
igor_v 21:bc8c1cec3da6 137 WriteConN (BuffTemp,8);
Kovalev_D 121:bbae560cdd43 138
igor_v 0:8ad47e2b6f00 139 }
Kovalev_D 124:9ae09249f842 140 void CMD_Delta_500Hz(void)
Kovalev_D 124:9ae09249f842 141 {
Kovalev_D 124:9ae09249f842 142 Gyro.Delta500_Event=0;
Kovalev_D 122:fbacb932a30b 143 unsigned int Temp;
Kovalev_D 124:9ae09249f842 144 BuffTemp[ 0] = Gyro.SOC_Out;
Kovalev_D 122:fbacb932a30b 145 BuffTemp[ 1] = Gyro.My_Addres;
Kovalev_D 124:9ae09249f842 146
Kovalev_D 124:9ae09249f842 147 Temp = Gyro.CuruAngle;
Kovalev_D 124:9ae09249f842 148 Gyro.CuruAngle = 0;
Kovalev_D 124:9ae09249f842 149
Kovalev_D 124:9ae09249f842 150 BuffTemp[ 2] =(Temp >> 8) & 0xff;//старший байт разности счетчиков
Kovalev_D 124:9ae09249f842 151 BuffTemp[ 3] =(Temp >> 0) & 0xff;//младший байт разности счетчиков
Kovalev_D 124:9ae09249f842 152
Kovalev_D 124:9ae09249f842 153 BuffTemp[ 4] = CountParam;
Kovalev_D 124:9ae09249f842 154 switch(CountParam) {
Kovalev_D 124:9ae09249f842 155
Kovalev_D 124:9ae09249f842 156
Kovalev_D 124:9ae09249f842 157
Kovalev_D 124:9ae09249f842 158 //F_ras
Kovalev_D 124:9ae09249f842 159 case 0:
Kovalev_D 124:9ae09249f842 160 Temp = Gyro.F_ras;
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 1:
Kovalev_D 124:9ae09249f842 165 BuffTemp[5] = (Temp >> 0) & 0xff;
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 //HFO
Kovalev_D 124:9ae09249f842 171 case 2:
Kovalev_D 124:9ae09249f842 172 Temp = 0;//HFO
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 3:
Kovalev_D 124:9ae09249f842 177 Temp = 0;//HFO
Kovalev_D 124:9ae09249f842 178 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 179 break;
Kovalev_D 124:9ae09249f842 180
Kovalev_D 124:9ae09249f842 181
Kovalev_D 124:9ae09249f842 182
Kovalev_D 124:9ae09249f842 183 //T_Vibro
Kovalev_D 124:9ae09249f842 184 case 4:
Kovalev_D 124:9ae09249f842 185 Temp = (unsigned int)((7680000*16/(Gyro.Frq>>12)));
Kovalev_D 124:9ae09249f842 186 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 187 break;
Kovalev_D 124:9ae09249f842 188
Kovalev_D 124:9ae09249f842 189 case 5:
Kovalev_D 124:9ae09249f842 190 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 191 break;
Kovalev_D 124:9ae09249f842 192
Kovalev_D 124:9ae09249f842 193
Kovalev_D 124:9ae09249f842 194
Kovalev_D 124:9ae09249f842 195 //L_Vibro
Kovalev_D 124:9ae09249f842 196 case 6:
Kovalev_D 124:9ae09249f842 197 Temp = (unsigned int)(((7680000*16/200) *Gyro.AmpPer /(Gyro.Frq>>12)));
Kovalev_D 124:9ae09249f842 198 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 199
Kovalev_D 124:9ae09249f842 200 break;
Kovalev_D 124:9ae09249f842 201
Kovalev_D 124:9ae09249f842 202 case 7:
Kovalev_D 124:9ae09249f842 203 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 204 break;
Kovalev_D 124:9ae09249f842 205
Kovalev_D 124:9ae09249f842 206
Kovalev_D 124:9ae09249f842 207
Kovalev_D 124:9ae09249f842 208 //Напряжение на регуляторе периметра
Kovalev_D 124:9ae09249f842 209 case 8:
Kovalev_D 124:9ae09249f842 210 Temp = Spi.DAC_B - 0x7fff;
Kovalev_D 124:9ae09249f842 211 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 212
Kovalev_D 124:9ae09249f842 213 break;
Kovalev_D 124:9ae09249f842 214
Kovalev_D 124:9ae09249f842 215 case 9:
Kovalev_D 124:9ae09249f842 216 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 217 break;
Kovalev_D 124:9ae09249f842 218
Kovalev_D 124:9ae09249f842 219
Kovalev_D 124:9ae09249f842 220
Kovalev_D 124:9ae09249f842 221 //темпкратурный канал 0
Kovalev_D 124:9ae09249f842 222 case 10:
Kovalev_D 124:9ae09249f842 223 Temp = 100;
Kovalev_D 124:9ae09249f842 224 BuffTemp[5] = (Temp >> 8) & 0xff;
igor_v 0:8ad47e2b6f00 225
Kovalev_D 124:9ae09249f842 226 break;
Kovalev_D 124:9ae09249f842 227
Kovalev_D 124:9ae09249f842 228 case 11:
Kovalev_D 124:9ae09249f842 229 BuffTemp[5] = (Temp >> 0) & 0xff;
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 //темпкратурный канал 1
Kovalev_D 124:9ae09249f842 235 case 12:
Kovalev_D 124:9ae09249f842 236 Temp = Gyro.AD_Slow >> 16;
Kovalev_D 124:9ae09249f842 237 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 238
Kovalev_D 124:9ae09249f842 239 break;
Kovalev_D 124:9ae09249f842 240
Kovalev_D 124:9ae09249f842 241 case 13:
Kovalev_D 124:9ae09249f842 242 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 243 break;
Kovalev_D 124:9ae09249f842 244
Kovalev_D 124:9ae09249f842 245
Kovalev_D 124:9ae09249f842 246
Kovalev_D 124:9ae09249f842 247 //ток 1
Kovalev_D 124:9ae09249f842 248 case 14:
Kovalev_D 124:9ae09249f842 249 Temp = Gyro.In1;
Kovalev_D 124:9ae09249f842 250 BuffTemp[5] = (Temp >> 8) & 0xff;//in1//2
Kovalev_D 124:9ae09249f842 251
Kovalev_D 124:9ae09249f842 252 break;
Kovalev_D 124:9ae09249f842 253
Kovalev_D 124:9ae09249f842 254 case 15:
Kovalev_D 124:9ae09249f842 255 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 256 break;
Kovalev_D 124:9ae09249f842 257
Kovalev_D 124:9ae09249f842 258
Kovalev_D 124:9ae09249f842 259
Kovalev_D 124:9ae09249f842 260 //ток 2
Kovalev_D 124:9ae09249f842 261 case 16:
Kovalev_D 124:9ae09249f842 262 Temp = Gyro.In2;
Kovalev_D 124:9ae09249f842 263 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 264 break;
Kovalev_D 124:9ae09249f842 265
Kovalev_D 124:9ae09249f842 266 case 17:
Kovalev_D 124:9ae09249f842 267 BuffTemp[5] = (Temp >> 0) & 0xff;//in2//3
Kovalev_D 124:9ae09249f842 268 break;
Kovalev_D 124:9ae09249f842 269
Kovalev_D 124:9ae09249f842 270
Kovalev_D 124:9ae09249f842 271
Kovalev_D 124:9ae09249f842 272 //разностный температурный канал Delta Temp
Kovalev_D 124:9ae09249f842 273 case 18:
Kovalev_D 124:9ae09249f842 274 Temp = Gyro.DeltaT;
Kovalev_D 124:9ae09249f842 275 BuffTemp[5] = (Temp >> 8) & 0xff;//дельта
Kovalev_D 124:9ae09249f842 276 break;
Kovalev_D 124:9ae09249f842 277
Kovalev_D 124:9ae09249f842 278 case 19:
Kovalev_D 124:9ae09249f842 279 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 280 break;
Kovalev_D 124:9ae09249f842 281
Kovalev_D 124:9ae09249f842 282
Kovalev_D 124:9ae09249f842 283
Kovalev_D 124:9ae09249f842 284 //температурный канал 5
Kovalev_D 124:9ae09249f842 285 case 20:
Kovalev_D 124:9ae09249f842 286 Temp = Gyro.Termo;//0xa4=164
Kovalev_D 124:9ae09249f842 287 BuffTemp[5] =(Temp >> 8) & 0xff;//температура
Kovalev_D 124:9ae09249f842 288
Kovalev_D 124:9ae09249f842 289 break;
Kovalev_D 124:9ae09249f842 290
Kovalev_D 124:9ae09249f842 291 case 21:
Kovalev_D 124:9ae09249f842 292 BuffTemp[5] =(Temp >> 0) & 0xff;//ADC6 sesnsor 5
Kovalev_D 124:9ae09249f842 293 break;
Kovalev_D 124:9ae09249f842 294 }
Kovalev_D 124:9ae09249f842 295 Check(BuffTemp, 6);
Kovalev_D 124:9ae09249f842 296 WriteConN (BuffTemp,6);
Kovalev_D 128:1e4675a36c93 297
Kovalev_D 124:9ae09249f842 298 CountParam++;
Kovalev_D 124:9ae09249f842 299 if(CountParam>21)CountParam=0;//зацикливания буфера от 0 до 21
Kovalev_D 124:9ae09249f842 300
Kovalev_D 124:9ae09249f842 301 }
Kovalev_D 124:9ae09249f842 302 void CMD_Delta_Ext(void)
Kovalev_D 124:9ae09249f842 303 {
Kovalev_D 124:9ae09249f842 304 unsigned int Temp;
Kovalev_D 128:1e4675a36c93 305 Gyro.EXT_Latch=0;
Kovalev_D 124:9ae09249f842 306 BuffTemp[ 0] = Gyro.SOC_Out;
Kovalev_D 124:9ae09249f842 307 BuffTemp[ 1] = Gyro.My_Addres;
Kovalev_D 124:9ae09249f842 308 Temp = Gyro.CuruAngle;
Kovalev_D 124:9ae09249f842 309 Gyro.CuruAngle = 0;
Kovalev_D 124:9ae09249f842 310
Kovalev_D 124:9ae09249f842 311 BuffTemp[ 2] =(Temp >> 8) & 0xff;//старший байт разности счетчиков
Kovalev_D 124:9ae09249f842 312 BuffTemp[ 3] =(Temp >> 0) & 0xff;//младший байт разности счетчиков
Kovalev_D 124:9ae09249f842 313
Kovalev_D 124:9ae09249f842 314 BuffTemp[ 4] = CountParam;
Kovalev_D 128:1e4675a36c93 315 switch(CountParam) {
Kovalev_D 124:9ae09249f842 316
Kovalev_D 128:1e4675a36c93 317 WriteCon("5");
Kovalev_D 124:9ae09249f842 318
Kovalev_D 124:9ae09249f842 319 //F_ras
Kovalev_D 124:9ae09249f842 320 case 0:
Kovalev_D 124:9ae09249f842 321 Temp = Gyro.F_ras;
Kovalev_D 124:9ae09249f842 322 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 128:1e4675a36c93 323
Kovalev_D 124:9ae09249f842 324 break;
Kovalev_D 124:9ae09249f842 325
Kovalev_D 124:9ae09249f842 326 case 1:
Kovalev_D 124:9ae09249f842 327 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 128:1e4675a36c93 328
Kovalev_D 124:9ae09249f842 329 break;
Kovalev_D 124:9ae09249f842 330
Kovalev_D 124:9ae09249f842 331
Kovalev_D 124:9ae09249f842 332
Kovalev_D 124:9ae09249f842 333 //HFO
Kovalev_D 124:9ae09249f842 334 case 2:
Kovalev_D 124:9ae09249f842 335 Temp = 0;//HFO
Kovalev_D 124:9ae09249f842 336 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 128:1e4675a36c93 337
Kovalev_D 124:9ae09249f842 338 break;
Kovalev_D 124:9ae09249f842 339
Kovalev_D 124:9ae09249f842 340 case 3:
Kovalev_D 124:9ae09249f842 341 Temp = 0;//HFO
Kovalev_D 124:9ae09249f842 342 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 128:1e4675a36c93 343
Kovalev_D 124:9ae09249f842 344 break;
Kovalev_D 124:9ae09249f842 345
Kovalev_D 124:9ae09249f842 346
Kovalev_D 124:9ae09249f842 347
Kovalev_D 124:9ae09249f842 348 //T_Vibro
Kovalev_D 124:9ae09249f842 349 case 4:
Kovalev_D 124:9ae09249f842 350 Temp = (unsigned int)((7680000*16/(Gyro.Frq>>12)));
Kovalev_D 124:9ae09249f842 351 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 128:1e4675a36c93 352
Kovalev_D 124:9ae09249f842 353 break;
Kovalev_D 124:9ae09249f842 354
Kovalev_D 124:9ae09249f842 355 case 5:
Kovalev_D 124:9ae09249f842 356 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 128:1e4675a36c93 357
Kovalev_D 124:9ae09249f842 358 break;
Kovalev_D 124:9ae09249f842 359
Kovalev_D 124:9ae09249f842 360
Kovalev_D 124:9ae09249f842 361
Kovalev_D 124:9ae09249f842 362 //L_Vibro
Kovalev_D 124:9ae09249f842 363 case 6:
Kovalev_D 124:9ae09249f842 364 Temp = (unsigned int)(((7680000*16/200) *Gyro.AmpPer /(Gyro.Frq>>12)));
Kovalev_D 124:9ae09249f842 365 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 122:fbacb932a30b 366
Kovalev_D 124:9ae09249f842 367 break;
Kovalev_D 124:9ae09249f842 368
Kovalev_D 124:9ae09249f842 369 case 7:
Kovalev_D 124:9ae09249f842 370 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 371 break;
Kovalev_D 124:9ae09249f842 372
Kovalev_D 124:9ae09249f842 373
Kovalev_D 124:9ae09249f842 374
Kovalev_D 124:9ae09249f842 375 //Напряжение на регуляторе периметра
Kovalev_D 124:9ae09249f842 376 case 8:
Kovalev_D 124:9ae09249f842 377 Temp = Spi.DAC_B - 0x7fff;
Kovalev_D 124:9ae09249f842 378 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 379
Kovalev_D 124:9ae09249f842 380 break;
Kovalev_D 124:9ae09249f842 381
Kovalev_D 124:9ae09249f842 382 case 9:
Kovalev_D 124:9ae09249f842 383 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 384 break;
Kovalev_D 124:9ae09249f842 385
Kovalev_D 124:9ae09249f842 386
Kovalev_D 124:9ae09249f842 387
Kovalev_D 124:9ae09249f842 388 //темпкратурный канал 0
Kovalev_D 124:9ae09249f842 389 case 10:
Kovalev_D 124:9ae09249f842 390 Temp = 100;
Kovalev_D 124:9ae09249f842 391 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 392
Kovalev_D 124:9ae09249f842 393 break;
Kovalev_D 124:9ae09249f842 394
Kovalev_D 124:9ae09249f842 395 case 11:
Kovalev_D 124:9ae09249f842 396 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 397 break;
Kovalev_D 124:9ae09249f842 398
Kovalev_D 124:9ae09249f842 399
Kovalev_D 124:9ae09249f842 400
Kovalev_D 124:9ae09249f842 401 //темпкратурный канал 1
Kovalev_D 124:9ae09249f842 402 case 12:
Kovalev_D 124:9ae09249f842 403 Temp = Gyro.AD_Slow >> 16;
Kovalev_D 124:9ae09249f842 404 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 405
Kovalev_D 124:9ae09249f842 406 break;
Kovalev_D 124:9ae09249f842 407
Kovalev_D 124:9ae09249f842 408 case 13:
Kovalev_D 124:9ae09249f842 409 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 410 break;
Kovalev_D 124:9ae09249f842 411
Kovalev_D 124:9ae09249f842 412
Kovalev_D 124:9ae09249f842 413
Kovalev_D 124:9ae09249f842 414 //ток 1
Kovalev_D 124:9ae09249f842 415 case 14:
Kovalev_D 124:9ae09249f842 416 Temp = Gyro.In1;
Kovalev_D 124:9ae09249f842 417 BuffTemp[5] = (Temp >> 8) & 0xff;//in1//2
Kovalev_D 124:9ae09249f842 418
Kovalev_D 124:9ae09249f842 419 break;
Kovalev_D 124:9ae09249f842 420
Kovalev_D 124:9ae09249f842 421 case 15:
Kovalev_D 124:9ae09249f842 422 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 423 break;
Kovalev_D 124:9ae09249f842 424
Kovalev_D 124:9ae09249f842 425
Kovalev_D 124:9ae09249f842 426
Kovalev_D 124:9ae09249f842 427 //ток 2
Kovalev_D 124:9ae09249f842 428 case 16:
Kovalev_D 124:9ae09249f842 429 Temp = Gyro.In2;
Kovalev_D 124:9ae09249f842 430 BuffTemp[5] = (Temp >> 8) & 0xff;
Kovalev_D 124:9ae09249f842 431 break;
Kovalev_D 124:9ae09249f842 432
Kovalev_D 124:9ae09249f842 433 case 17:
Kovalev_D 124:9ae09249f842 434 BuffTemp[5] = (Temp >> 0) & 0xff;//in2//3
Kovalev_D 124:9ae09249f842 435 break;
Kovalev_D 124:9ae09249f842 436
Kovalev_D 124:9ae09249f842 437
Kovalev_D 124:9ae09249f842 438
Kovalev_D 124:9ae09249f842 439 //разностный температурный канал Delta Temp
Kovalev_D 124:9ae09249f842 440 case 18:
Kovalev_D 124:9ae09249f842 441 Temp = Gyro.DeltaT;
Kovalev_D 124:9ae09249f842 442 BuffTemp[5] = (Temp >> 8) & 0xff;//дельта
Kovalev_D 124:9ae09249f842 443 break;
Kovalev_D 124:9ae09249f842 444
Kovalev_D 124:9ae09249f842 445 case 19:
Kovalev_D 124:9ae09249f842 446 BuffTemp[5] = (Temp >> 0) & 0xff;
Kovalev_D 124:9ae09249f842 447 break;
Kovalev_D 124:9ae09249f842 448
Kovalev_D 124:9ae09249f842 449
Kovalev_D 124:9ae09249f842 450
Kovalev_D 124:9ae09249f842 451 //температурный канал 5
Kovalev_D 124:9ae09249f842 452 case 20:
Kovalev_D 124:9ae09249f842 453 Temp = Gyro.Termo;//0xa4=164
Kovalev_D 124:9ae09249f842 454 BuffTemp[5] =(Temp >> 8) & 0xff;//температура
Kovalev_D 124:9ae09249f842 455
Kovalev_D 124:9ae09249f842 456 break;
Kovalev_D 124:9ae09249f842 457
Kovalev_D 124:9ae09249f842 458 case 21:
Kovalev_D 124:9ae09249f842 459 BuffTemp[5] =(Temp >> 0) & 0xff;//ADC6 sesnsor 5
Kovalev_D 124:9ae09249f842 460 break;
Kovalev_D 124:9ae09249f842 461 }
Kovalev_D 128:1e4675a36c93 462 Check(BuffTemp, 8);
Kovalev_D 128:1e4675a36c93 463 WriteConN (BuffTemp,8);
Kovalev_D 124:9ae09249f842 464 CountParam++;
Kovalev_D 124:9ae09249f842 465 if(CountParam>21)CountParam=0;//зацикливания буфера от 0 до 21
Kovalev_D 122:fbacb932a30b 466 }
Kovalev_D 124:9ae09249f842 467
Kovalev_D 121:bbae560cdd43 468 void CMD_Rate2(void)
Kovalev_D 121:bbae560cdd43 469 {
Kovalev_D 124:9ae09249f842 470 Gyro.Rate2_Event=0;
Kovalev_D 121:bbae560cdd43 471 BuffTemp[ 0] = Gyro.SOC_Out;
Kovalev_D 121:bbae560cdd43 472 BuffTemp[ 1] = Gyro.My_Addres;
Kovalev_D 121:bbae560cdd43 473
Kovalev_D 121:bbae560cdd43 474
Kovalev_D 121:bbae560cdd43 475 BuffTemp[ 2] =(Gyro.CaunPlus >> 8) & 0xff;//старший байт счетчика +.
Kovalev_D 121:bbae560cdd43 476 BuffTemp[ 3] =(Gyro.CaunPlus >> 0) & 0xff;//младший байт счетчика +.
Kovalev_D 121:bbae560cdd43 477
Kovalev_D 121:bbae560cdd43 478 BuffTemp[ 4] =(Gyro.CaunMin >> 8) & 0xff;//старший байт счетчика -.
Kovalev_D 121:bbae560cdd43 479 BuffTemp[ 5] =(Gyro.CaunMin >> 0) & 0xff;//младший байт счетчика -.
Kovalev_D 124:9ae09249f842 480
Kovalev_D 122:fbacb932a30b 481 Check(BuffTemp, 8);
Kovalev_D 122:fbacb932a30b 482 WriteConN (BuffTemp,8);
Kovalev_D 121:bbae560cdd43 483 }
Kovalev_D 124:9ae09249f842 484
igor_v 0:8ad47e2b6f00 485 void CMD_Rate(void)
igor_v 21:bc8c1cec3da6 486 {
Kovalev_D 124:9ae09249f842 487
Kovalev_D 124:9ae09249f842 488 Gyro.Rate1_Event=0;
Kovalev_D 108:030cdde08314 489 unsigned int Temp;
Kovalev_D 107:4d178bcc9d8a 490
igor_v 30:17c84ed091b3 491 Gyro.Firmware_Version=0xff; /// промежуточная затычка
Kovalev_D 122:fbacb932a30b 492
igor_v 0:8ad47e2b6f00 493
igor_v 30:17c84ed091b3 494 BuffTemp[ 0] = Gyro.SOC_Out;
igor_v 30:17c84ed091b3 495 BuffTemp[ 1] = Gyro.My_Addres;
igor_v 21:bc8c1cec3da6 496
Kovalev_D 108:030cdde08314 497
Kovalev_D 112:4a96133a1311 498 BuffTemp[ 2] =(Gyro.CaunPlus >> 8) & 0xff;//старший байт счетчика +.
Kovalev_D 112:4a96133a1311 499 BuffTemp[ 3] =(Gyro.CaunPlus >> 0) & 0xff;//младший байт счетчика +.
Kovalev_D 108:030cdde08314 500
Kovalev_D 112:4a96133a1311 501 BuffTemp[ 4] =(Gyro.CaunMin >> 8) & 0xff;//старший байт счетчика -.
Kovalev_D 112:4a96133a1311 502 BuffTemp[ 5] =(Gyro.CaunMin >> 0) & 0xff;//младший байт счетчика -.
Kovalev_D 108:030cdde08314 503
Kovalev_D 113:8be429494918 504
Kovalev_D 108:030cdde08314 505 Temp = Gyro.CuruAngle;
Kovalev_D 108:030cdde08314 506 Gyro.CuruAngle = 0;
Kovalev_D 125:9400e64d0636 507 Temp = Gyro.AD_Fast >> 16;
Kovalev_D 108:030cdde08314 508 BuffTemp[ 6] =(Temp >> 8) & 0xff;//старший байт разности счетчиков
Kovalev_D 108:030cdde08314 509 BuffTemp[ 7] =(Temp >> 0) & 0xff;//младший байт разности счетчиков
Kovalev_D 108:030cdde08314 510
Kovalev_D 108:030cdde08314 511
Kovalev_D 122:fbacb932a30b 512 Temp = Gyro.F_ras;
Kovalev_D 122:fbacb932a30b 513 BuffTemp[ 8] = (Temp >> 8) & 0xff;//расщипление частота
Kovalev_D 122:fbacb932a30b 514 BuffTemp[ 9] = (Temp >> 0) & 0xff;//
igor_v 21:bc8c1cec3da6 515
Kovalev_D 108:030cdde08314 516 BuffTemp[10] = (Temp >> 8) & 0xff;//выход регулятора гвч;
Kovalev_D 122:fbacb932a30b 517 BuffTemp[11] = (Temp >> 0) & 0xff;
igor_v 21:bc8c1cec3da6 518
Kovalev_D 145:f023b2f18b82 519 Temp = (Gyro.AD_Slow >> 16)- 0x7fff;
Kovalev_D 108:030cdde08314 520 BuffTemp[12]=(Temp >> 8) & 0xff;////
Kovalev_D 108:030cdde08314 521 BuffTemp[13]=(Temp >> 0) & 0xff;////
igor_v 21:bc8c1cec3da6 522
Kovalev_D 108:030cdde08314 523
Kovalev_D 108:030cdde08314 524 Temp = (unsigned int)((7680000*16/(Gyro.Frq>>12)));
Kovalev_D 108:030cdde08314 525 BuffTemp[14] = (Temp >> 8) & 0xff;
Kovalev_D 108:030cdde08314 526 BuffTemp[15] = (Temp >> 0) & 0xff;
igor_v 21:bc8c1cec3da6 527
Kovalev_D 107:4d178bcc9d8a 528 BuffTemp[16] = 0xf;
Kovalev_D 106:250ddd8629c6 529 BuffTemp[17] = 0x02;
Kovalev_D 108:030cdde08314 530
igor_v 21:bc8c1cec3da6 531
Kovalev_D 108:030cdde08314 532 Temp = (unsigned int)(((7680000*16/200) *Gyro.AmpPer /(Gyro.Frq>>12)));
Kovalev_D 108:030cdde08314 533 BuffTemp[18] = (Temp >> 8) & 0xff;
Kovalev_D 108:030cdde08314 534 BuffTemp[19] = (Temp >> 0) & 0xff;
igor_v 21:bc8c1cec3da6 535
Kovalev_D 106:250ddd8629c6 536 BuffTemp[20] = 0x00;
Kovalev_D 106:250ddd8629c6 537 BuffTemp[21] = 0x00;
Kovalev_D 120:9f446f1495e8 538
Kovalev_D 119:4d7fcece9e8e 539
Kovalev_D 125:9400e64d0636 540
Kovalev_D 121:bbae560cdd43 541 Temp = Spi.DAC_B - 0x7fff;
Kovalev_D 108:030cdde08314 542 BuffTemp[22] = (Temp >> 8) & 0xff;
Kovalev_D 108:030cdde08314 543 BuffTemp[23] = (Temp >> 0) & 0xff;
igor_v 21:bc8c1cec3da6 544
Kovalev_D 121:bbae560cdd43 545
Kovalev_D 121:bbae560cdd43 546 Temp = Gyro.PLC_Delta >> 16;
Kovalev_D 121:bbae560cdd43 547 BuffTemp[24] = (Temp >> 8) & 0xff;
Kovalev_D 121:bbae560cdd43 548 BuffTemp[25] = (Temp >> 0) & 0xff;// ХЗ
Kovalev_D 113:8be429494918 549
Kovalev_D 125:9400e64d0636 550 Temp = 100;
Kovalev_D 125:9400e64d0636 551 Temp = Gyro.AD_Slow >> 16;
Kovalev_D 113:8be429494918 552 BuffTemp[26] = (Temp >> 8) & 0xff;
Kovalev_D 113:8be429494918 553 BuffTemp[27] = (Temp >> 0) & 0xff;
Kovalev_D 113:8be429494918 554
Kovalev_D 113:8be429494918 555 Temp = Gyro.AD_Slow >> 16;
Kovalev_D 113:8be429494918 556 BuffTemp[28] = (Temp >> 8) & 0xff;
Kovalev_D 113:8be429494918 557 BuffTemp[29] = (Temp >> 0) & 0xff;
Kovalev_D 113:8be429494918 558
Kovalev_D 113:8be429494918 559 Temp = Gyro.In1;
Kovalev_D 113:8be429494918 560 BuffTemp[30] = (Temp >> 8) & 0xff;//in1//2
Kovalev_D 113:8be429494918 561 BuffTemp[31] = (Temp >> 0) & 0xff;
Kovalev_D 113:8be429494918 562
Kovalev_D 113:8be429494918 563 Temp = Gyro.In2;
Kovalev_D 113:8be429494918 564 BuffTemp[32] = (Temp >> 8) & 0xff;
Kovalev_D 113:8be429494918 565 BuffTemp[33] = (Temp >> 0) & 0xff;//in2//3
Kovalev_D 113:8be429494918 566
Kovalev_D 113:8be429494918 567 Temp = Gyro.DeltaT;
Kovalev_D 113:8be429494918 568 BuffTemp[34] = (Temp >> 8) & 0xff;//дельта
Kovalev_D 113:8be429494918 569 BuffTemp[35] = (Temp >> 0) & 0xff;
Kovalev_D 115:e5a230e5af52 570
Kovalev_D 116:66f1f0ff2dab 571 Temp = Gyro.Termo;//0xa4=164
Kovalev_D 115:e5a230e5af52 572
Kovalev_D 113:8be429494918 573 BuffTemp[36] =(Temp >> 8) & 0xff;//температура
Kovalev_D 115:e5a230e5af52 574 BuffTemp[37] =(Temp >> 0) & 0xff;//ADC6 sesnsor 5
igor_v 21:bc8c1cec3da6 575
Kovalev_D 106:250ddd8629c6 576 BuffTemp[38] =0x00;
Kovalev_D 106:250ddd8629c6 577 BuffTemp[39] =0x00;
Kovalev_D 106:250ddd8629c6 578 BuffTemp[40] =0x00;
Kovalev_D 106:250ddd8629c6 579 BuffTemp[41] =0x00;
igor_v 21:bc8c1cec3da6 580
igor_v 21:bc8c1cec3da6 581
igor_v 21:bc8c1cec3da6 582 Check(BuffTemp, 44);
igor_v 21:bc8c1cec3da6 583 WriteConN (BuffTemp,44);
Kovalev_D 92:c892f0311aa7 584
igor_v 0:8ad47e2b6f00 585 }
igor_v 0:8ad47e2b6f00 586
igor_v 21:bc8c1cec3da6 587 void CMD_M_Control_D8()///установка\сброс регистров управления
igor_v 21:bc8c1cec3da6 588 {
Kovalev_D 104:ab1cb4ff56b2 589 unsigned int bit,NReg,Pa;
Kovalev_D 104:ab1cb4ff56b2 590 unsigned int SR,V,A,Bit_num;
Kovalev_D 104:ab1cb4ff56b2 591 SR=0;
Kovalev_D 104:ab1cb4ff56b2 592 V=0;
Kovalev_D 104:ab1cb4ff56b2 593 A=0;
Kovalev_D 104:ab1cb4ff56b2 594 Bit_num=0;
Kovalev_D 104:ab1cb4ff56b2 595
igor_v 30:17c84ed091b3 596 BuffTemp[0] = Gyro.SOC_Out; //DD
igor_v 30:17c84ed091b3 597 BuffTemp[1] = Gyro.My_Addres; //00
igor_v 30:17c84ed091b3 598 BuffTemp[2] = Gyro.CMD_In; //D8
Kovalev_D 104:ab1cb4ff56b2 599
Kovalev_D 104:ab1cb4ff56b2 600 /*
Kovalev_D 104:ab1cb4ff56b2 601
Kovalev_D 104:ab1cb4ff56b2 602 FrqON
Kovalev_D 104:ab1cb4ff56b2 603 PlcON
Kovalev_D 104:ab1cb4ff56b2 604 HFOOFF
Kovalev_D 104:ab1cb4ff56b2 605 HFOON
igor_v 21:bc8c1cec3da6 606
Kovalev_D 104:ab1cb4ff56b2 607 PlcOFF
Kovalev_D 104:ab1cb4ff56b2 608 PlcON
Kovalev_D 104:ab1cb4ff56b2 609 */
Kovalev_D 104:ab1cb4ff56b2 610 Pa = BuffTemp[3];
Kovalev_D 104:ab1cb4ff56b2 611
Kovalev_D 104:ab1cb4ff56b2 612 SR = Pa >> 0x7;
Kovalev_D 104:ab1cb4ff56b2 613
Kovalev_D 104:ab1cb4ff56b2 614 V = Pa >> 0x5;
Kovalev_D 104:ab1cb4ff56b2 615 V = V & 0x3;
Kovalev_D 104:ab1cb4ff56b2 616
Kovalev_D 104:ab1cb4ff56b2 617 A = Pa >> 0x4;
Kovalev_D 104:ab1cb4ff56b2 618 A = A & 0x1;
Kovalev_D 104:ab1cb4ff56b2 619
Kovalev_D 104:ab1cb4ff56b2 620 Bit_num = Pa & 0xf;
Kovalev_D 104:ab1cb4ff56b2 621
Kovalev_D 104:ab1cb4ff56b2 622 if(SR) {
Kovalev_D 104:ab1cb4ff56b2 623 switch (Bit_num){
Kovalev_D 105:bd01d8d20fb6 624
Kovalev_D 104:ab1cb4ff56b2 625 case 0x06:
Kovalev_D 104:ab1cb4ff56b2 626 FrqON
Kovalev_D 105:bd01d8d20fb6 627 break;
Kovalev_D 105:bd01d8d20fb6 628
Kovalev_D 104:ab1cb4ff56b2 629 case 0x03:
Kovalev_D 105:bd01d8d20fb6 630 HFOON
Kovalev_D 105:bd01d8d20fb6 631 break;
Kovalev_D 105:bd01d8d20fb6 632
Kovalev_D 105:bd01d8d20fb6 633 case 0x01:
Kovalev_D 105:bd01d8d20fb6 634 PlcON
Kovalev_D 105:bd01d8d20fb6 635 break;
Kovalev_D 104:ab1cb4ff56b2 636 }
Kovalev_D 104:ab1cb4ff56b2 637 }
Kovalev_D 104:ab1cb4ff56b2 638 else{
Kovalev_D 104:ab1cb4ff56b2 639 switch (Bit_num){
Kovalev_D 105:bd01d8d20fb6 640
Kovalev_D 105:bd01d8d20fb6 641 case 0x06:
Kovalev_D 104:ab1cb4ff56b2 642 FrqOff
Kovalev_D 105:bd01d8d20fb6 643 break;
Kovalev_D 105:bd01d8d20fb6 644
Kovalev_D 105:bd01d8d20fb6 645 case 0x03:
Kovalev_D 105:bd01d8d20fb6 646 HFOOFF
Kovalev_D 105:bd01d8d20fb6 647 break;
Kovalev_D 105:bd01d8d20fb6 648
Kovalev_D 105:bd01d8d20fb6 649 case 0x01:
Kovalev_D 105:bd01d8d20fb6 650 PlcOFF
Kovalev_D 105:bd01d8d20fb6 651 break;
Kovalev_D 104:ab1cb4ff56b2 652 }
Kovalev_D 104:ab1cb4ff56b2 653 }
Kovalev_D 129:406995a91322 654 BuffTemp[0] = Gyro.SOC_Out; //DD
Kovalev_D 129:406995a91322 655 BuffTemp[1] = Gyro.My_Addres; //00
Kovalev_D 129:406995a91322 656 BuffTemp[2] = Gyro.CMD_In; //D8
Kovalev_D 129:406995a91322 657 BuffTemp[3] = A<<4;
Kovalev_D 129:406995a91322 658 BuffTemp[4] = 0x0;
Kovalev_D 129:406995a91322 659 BuffTemp[5] = 0x0;
Kovalev_D 129:406995a91322 660 Check(BuffTemp, CRC_N);
Kovalev_D 129:406995a91322 661 WriteConN (BuffTemp,CRC_N);
igor_v 0:8ad47e2b6f00 662 }
igor_v 0:8ad47e2b6f00 663
igor_v 21:bc8c1cec3da6 664 void CMD_M_Control_D9()///чтение регистров управления
igor_v 21:bc8c1cec3da6 665 {
igor_v 21:bc8c1cec3da6 666 int bit,NReg;
igor_v 30:17c84ed091b3 667 BuffTemp[0] = Gyro.SOC_Out; //DD
igor_v 30:17c84ed091b3 668 BuffTemp[1] = Gyro.My_Addres; //00
igor_v 30:17c84ed091b3 669 BuffTemp[2] = Gyro.CMD_In; //D9
igor_v 21:bc8c1cec3da6 670 if ((Param1 & 0x10) == 0) {
igor_v 21:bc8c1cec3da6 671 BuffTemp[3]=0<<4;
igor_v 30:17c84ed091b3 672 BuffTemp[4] = (Gyro.RgConA>>8 )& 0xff;
igor_v 30:17c84ed091b3 673 BuffTemp[5] = Gyro.RgConA & 0xff;
igor_v 21:bc8c1cec3da6 674 } else {
igor_v 21:bc8c1cec3da6 675 BuffTemp[3]=1<<4;
igor_v 30:17c84ed091b3 676 BuffTemp[4] = (Gyro.RgConB>>8 ) & 0xff;
igor_v 30:17c84ed091b3 677 BuffTemp[5] = Gyro.RgConB & 0xff;
igor_v 21:bc8c1cec3da6 678 }
igor_v 21:bc8c1cec3da6 679 Check(BuffTemp, CRC_N);
igor_v 21:bc8c1cec3da6 680 WriteConN (BuffTemp,CRC_N);
igor_v 21:bc8c1cec3da6 681 }
igor_v 21:bc8c1cec3da6 682 // (номер (код) ЦАПа 0...3, старший байт требуемого ЦАПа, младший байт треб ЦАПа)
igor_v 0:8ad47e2b6f00 683 void CMD_M_Stymul()
igor_v 0:8ad47e2b6f00 684 {
igor_v 21:bc8c1cec3da6 685 int temp;
Kovalev_D 102:4270092be987 686 int HFO;
Kovalev_D 102:4270092be987 687 temp=BuffTemp[3];
Kovalev_D 102:4270092be987 688 Consol = temp&0x3;
Kovalev_D 103:e96f08947def 689 HFO = temp&0x3;// // (номер (код) ЦАПа 0...3, HFO - 3dac, PLC - 0DAC
igor_v 21:bc8c1cec3da6 690 temp =((BuffTemp[4]<<8) | BuffTemp[5]);
igor_v 21:bc8c1cec3da6 691 // temp=0;
igor_v 21:bc8c1cec3da6 692 temp=temp&0xFFFF;
Kovalev_D 102:4270092be987 693
Kovalev_D 102:4270092be987 694 if(HFO)
Kovalev_D 102:4270092be987 695 {
Kovalev_D 102:4270092be987 696 Spi.DAC_A=(unsigned int)temp;
Kovalev_D 102:4270092be987 697 }
Kovalev_D 102:4270092be987 698 else{
igor_v 21:bc8c1cec3da6 699 DACF =(temp*K_DAC)+deltaDAC;
igor_v 21:bc8c1cec3da6 700 Spi.DAC_B =(unsigned int)(DACF) /*(unsigned int)(temp*K_DAC+deltaDAC)*/; // K_DAC);
igor_v 21:bc8c1cec3da6 701 }
igor_v 0:8ad47e2b6f00 702 }
Kovalev_D 103:e96f08947def 703 void Gph_W()
Kovalev_D 103:e96f08947def 704 {
Kovalev_D 108:030cdde08314 705 Out_G_photo(BuffTemp[4],BuffTemp[5]);
Kovalev_D 103:e96f08947def 706 }
igor_v 0:8ad47e2b6f00 707
Kovalev_D 98:95b8e79f13e1 708 void CMD_M_vib()
Kovalev_D 115:e5a230e5af52 709 {
Kovalev_D 102:4270092be987 710 unsigned int temp1,temp2;
Kovalev_D 102:4270092be987 711
Kovalev_D 102:4270092be987 712 temp1 =((BuffTemp[4]<<8) | BuffTemp[5]);
Kovalev_D 102:4270092be987 713 temp1=temp1&0xFFFF;
Kovalev_D 102:4270092be987 714
Kovalev_D 102:4270092be987 715 temp2 =((BuffTemp[6]<<8) | BuffTemp[7]);
Kovalev_D 102:4270092be987 716 temp2=temp2&0xFFFF;
Kovalev_D 102:4270092be987 717 Gyro.Frq = ((unsigned int) ((7680000*16/temp1)))*16*16*16;
Kovalev_D 102:4270092be987 718 Consol=Gyro.Frq ;
Kovalev_D 98:95b8e79f13e1 719 }
igor_v 0:8ad47e2b6f00 720 unsigned int Check(char *c, unsigned int Count)
igor_v 0:8ad47e2b6f00 721 {
igor_v 21:bc8c1cec3da6 722 int i=1;
igor_v 21:bc8c1cec3da6 723 unsigned int temp,CRC;
igor_v 21:bc8c1cec3da6 724
igor_v 21:bc8c1cec3da6 725
igor_v 21:bc8c1cec3da6 726 temp=1;
igor_v 21:bc8c1cec3da6 727 CRC=0;
igor_v 21:bc8c1cec3da6 728
igor_v 21:bc8c1cec3da6 729
igor_v 21:bc8c1cec3da6 730 for(; i<Count-2; i++) {
igor_v 21:bc8c1cec3da6 731 CRC+=c[i];
igor_v 21:bc8c1cec3da6 732 }
igor_v 0:8ad47e2b6f00 733
igor_v 21:bc8c1cec3da6 734 if(c[Count-2]!=((CRC>>8)&0xFF)) {
igor_v 21:bc8c1cec3da6 735 temp=0;
igor_v 30:17c84ed091b3 736 Gyro.RsErrLine = (Gyro.RsErrLine)&=0x2;
igor_v 21:bc8c1cec3da6 737 }
igor_v 0:8ad47e2b6f00 738
igor_v 21:bc8c1cec3da6 739 if(c[Count-1]!=((CRC>>0)&0xFF)) {
igor_v 21:bc8c1cec3da6 740 temp=0;
igor_v 30:17c84ed091b3 741 // Gyro.RsErrLine= (Gyro.RsErrLine)=0x2;
igor_v 21:bc8c1cec3da6 742 }
igor_v 21:bc8c1cec3da6 743
igor_v 21:bc8c1cec3da6 744 c[Count-2]=(CRC>>8)&0xFF;
igor_v 21:bc8c1cec3da6 745 c[Count-1]=(CRC>>0)&0xFF;
igor_v 21:bc8c1cec3da6 746
igor_v 21:bc8c1cec3da6 747
igor_v 21:bc8c1cec3da6 748
igor_v 21:bc8c1cec3da6 749 return temp;
igor_v 0:8ad47e2b6f00 750 }
igor_v 0:8ad47e2b6f00 751
igor_v 0:8ad47e2b6f00 752 int Getlengf(void)
igor_v 0:8ad47e2b6f00 753 {
Kovalev_D 121:bbae560cdd43 754 unsigned int lengf;
Kovalev_D 121:bbae560cdd43 755 lengf = 1;
igor_v 30:17c84ed091b3 756 switch(Gyro.CMD_In) {
igor_v 30:17c84ed091b3 757 case 0x99://Gyrotainance
Kovalev_D 92:c892f0311aa7 758
igor_v 21:bc8c1cec3da6 759 lengf=6;
igor_v 21:bc8c1cec3da6 760 CRC_N=8;
igor_v 21:bc8c1cec3da6 761 break;
igor_v 0:8ad47e2b6f00 762
igor_v 21:bc8c1cec3da6 763 case 0x0A: //m_stymul
igor_v 21:bc8c1cec3da6 764 lengf=8;
igor_v 21:bc8c1cec3da6 765 break;
igor_v 21:bc8c1cec3da6 766
Kovalev_D 129:406995a91322 767 case 0xE9://DeviceMode
igor_v 21:bc8c1cec3da6 768
igor_v 21:bc8c1cec3da6 769 lengf=6;
igor_v 21:bc8c1cec3da6 770 CRC_N=8;
igor_v 21:bc8c1cec3da6 771 break;
Kovalev_D 129:406995a91322 772 case 0xE8://DeviceMode
igor_v 21:bc8c1cec3da6 773
Kovalev_D 129:406995a91322 774 lengf=6;
Kovalev_D 129:406995a91322 775 CRC_N=8;
Kovalev_D 129:406995a91322 776 break;
Kovalev_D 129:406995a91322 777
Kovalev_D 129:406995a91322 778 case 0xA5://DeviceMode
Kovalev_D 129:406995a91322 779
Kovalev_D 129:406995a91322 780 lengf=6;
Kovalev_D 129:406995a91322 781 CRC_N=8;
Kovalev_D 129:406995a91322 782 break;
Kovalev_D 129:406995a91322 783
igor_v 21:bc8c1cec3da6 784 case 0xDD://m_rate
igor_v 21:bc8c1cec3da6 785 lengf=6;
igor_v 21:bc8c1cec3da6 786 CRC_N=44;
igor_v 21:bc8c1cec3da6 787 break;
Kovalev_D 124:9ae09249f842 788
Kovalev_D 124:9ae09249f842 789 case 0xA0://Delta_PS
Kovalev_D 124:9ae09249f842 790 lengf=6;
Kovalev_D 124:9ae09249f842 791 CRC_N=8;
Kovalev_D 124:9ae09249f842 792 break;
Kovalev_D 124:9ae09249f842 793
Kovalev_D 124:9ae09249f842 794
igor_v 21:bc8c1cec3da6 795 case 0xB0://DeviceMode
igor_v 21:bc8c1cec3da6 796
igor_v 21:bc8c1cec3da6 797 lengf=6;
igor_v 21:bc8c1cec3da6 798 CRC_N=8;
igor_v 21:bc8c1cec3da6 799 break;
igor_v 21:bc8c1cec3da6 800
igor_v 21:bc8c1cec3da6 801 case 0xD8://m_control
igor_v 0:8ad47e2b6f00 802
igor_v 21:bc8c1cec3da6 803 lengf=6;
igor_v 21:bc8c1cec3da6 804 CRC_N=8;
igor_v 21:bc8c1cec3da6 805 break;
igor_v 21:bc8c1cec3da6 806
igor_v 21:bc8c1cec3da6 807 case 0xD9://m_control
igor_v 0:8ad47e2b6f00 808
igor_v 21:bc8c1cec3da6 809 lengf=6;
igor_v 21:bc8c1cec3da6 810 CRC_N=8;
igor_v 21:bc8c1cec3da6 811 break;
Kovalev_D 102:4270092be987 812
Kovalev_D 102:4270092be987 813 case 0xE4:
Kovalev_D 98:95b8e79f13e1 814 lengf=8;
Kovalev_D 98:95b8e79f13e1 815 break;
Kovalev_D 103:e96f08947def 816
Kovalev_D 103:e96f08947def 817
Kovalev_D 103:e96f08947def 818 case 0xE6:
Kovalev_D 103:e96f08947def 819 lengf=8;
Kovalev_D 103:e96f08947def 820 break;
Kovalev_D 103:e96f08947def 821
igor_v 21:bc8c1cec3da6 822 }
Kovalev_D 98:95b8e79f13e1 823
igor_v 21:bc8c1cec3da6 824 return lengf;
igor_v 0:8ad47e2b6f00 825 }
igor_v 0:8ad47e2b6f00 826
igor_v 0:8ad47e2b6f00 827 void Read_CMD(void)
igor_v 21:bc8c1cec3da6 828 {
Kovalev_D 147:1aed74f19a8f 829 Gyro.RsErrLine = (Gyro.RsErrLine)& 0xffff;//для сброса ошибки
Kovalev_D 147:1aed74f19a8f 830 CountBuFFIn=ReadChekCon1(BuffTemp); // чтение данных из консоли
Kovalev_D 147:1aed74f19a8f 831 if(CountBuFFIn==1) { // если есть первый байт
Kovalev_D 147:1aed74f19a8f 832 if (BuffTemp[0] != SOC_In) {
Kovalev_D 147:1aed74f19a8f 833 ReadCon1(BuffTemp);
Kovalev_D 147:1aed74f19a8f 834 Gyro.RsErrLine += 0x100;//WriteCon("\n\r ...Error.... ");
Kovalev_D 147:1aed74f19a8f 835 BuffTemp[99]=Gyro.RsErrLine;
Kovalev_D 147:1aed74f19a8f 836 }
Kovalev_D 147:1aed74f19a8f 837 }
Kovalev_D 147:1aed74f19a8f 838 else if(CountBuFFIn==2) //если второй ,fqn
Kovalev_D 147:1aed74f19a8f 839 {
Kovalev_D 147:1aed74f19a8f 840 if (BuffTemp[1] != Gyro.My_Addres) {
Kovalev_D 93:b3803774f110 841 ReadCon1(BuffTemp);
igor_v 30:17c84ed091b3 842 Gyro.RsErrLine += 0x1;//WriteCon("\n\r ...Error_ADDRES.... ");
Kovalev_D 147:1aed74f19a8f 843 }
Kovalev_D 147:1aed74f19a8f 844 }
Kovalev_D 147:1aed74f19a8f 845 else if(CountBuFFIn==3) // если ьоетий байт
Kovalev_D 147:1aed74f19a8f 846 {
igor_v 30:17c84ed091b3 847 Gyro.CMD_In=BuffTemp[2];
Kovalev_D 92:c892f0311aa7 848 N=Getlengf();
Kovalev_D 92:c892f0311aa7 849 }
Kovalev_D 92:c892f0311aa7 850 else if(CountBuFFIn==4 && (N==6))
Kovalev_D 92:c892f0311aa7 851 { // N - длина посылки аскглд(для записи параметров). определяется по коду команды в Getlengf();
igor_v 21:bc8c1cec3da6 852 Param1=BuffTemp[3];
Kovalev_D 92:c892f0311aa7 853 }
Kovalev_D 92:c892f0311aa7 854 else if((CountBuFFIn==5)&&(N==7))
Kovalev_D 92:c892f0311aa7 855 {
igor_v 21:bc8c1cec3da6 856 Param1=BuffTemp[3];
igor_v 21:bc8c1cec3da6 857 Param2=BuffTemp[4];
igor_v 0:8ad47e2b6f00 858
Kovalev_D 92:c892f0311aa7 859 }
Kovalev_D 92:c892f0311aa7 860 else if((CountBuFFIn==6)&&(N==8))
Kovalev_D 147:1aed74f19a8f 861 {
igor_v 21:bc8c1cec3da6 862 Param1=BuffTemp[3];
igor_v 21:bc8c1cec3da6 863 Param2=BuffTemp[4];
igor_v 21:bc8c1cec3da6 864 Param3=BuffTemp[5];
Kovalev_D 92:c892f0311aa7 865 }
Kovalev_D 102:4270092be987 866 else if((CountBuFFIn==8)&&(N==10))
Kovalev_D 147:1aed74f19a8f 867 {
Kovalev_D 102:4270092be987 868 Param1=BuffTemp[4];
Kovalev_D 102:4270092be987 869 Param2=BuffTemp[5];
Kovalev_D 102:4270092be987 870 Param3=BuffTemp[6];
Kovalev_D 102:4270092be987 871 Param4=BuffTemp[7];
Kovalev_D 102:4270092be987 872 }
Kovalev_D 98:95b8e79f13e1 873
Kovalev_D 92:c892f0311aa7 874 else if(CountBuFFIn > (N-1))
Kovalev_D 92:c892f0311aa7 875 {
Kovalev_D 147:1aed74f19a8f 876 ReadCon1(BuffTemp);
Kovalev_D 147:1aed74f19a8f 877 switch(Gyro.CMD_In) {
Kovalev_D 147:1aed74f19a8f 878 Rate_Flag=0;
Kovalev_D 92:c892f0311aa7 879 case 0x99:
Kovalev_D 124:9ae09249f842 880 Gyro.ModeOut=0;
igor_v 21:bc8c1cec3da6 881 CMD_Maintenance();
Kovalev_D 124:9ae09249f842 882 break;
Kovalev_D 129:406995a91322 883
Kovalev_D 124:9ae09249f842 884 case 0xA0:
Kovalev_D 124:9ae09249f842 885 TempParam=(BuffTemp[3]) & 0x90;
Kovalev_D 124:9ae09249f842 886 if (TempParam==Delta_500) CMD_Delta_500Hz();
Kovalev_D 124:9ae09249f842 887 else if (TempParam==Delta_EXT) CMD_Delta_Ext();
Kovalev_D 124:9ae09249f842 888 else if (TempParam==PDelta_500) { Gyro.ModeOut=3; Gyro.Delta500_Event=0; WriteCon("Delta500"); }
Kovalev_D 124:9ae09249f842 889 else if (TempParam==PDelta_EXT) { Gyro.ModeOut=4; Gyro.DeltaEXT_Event=0; WriteCon("deltaEXT"); }
Kovalev_D 147:1aed74f19a8f 890 break;
Kovalev_D 129:406995a91322 891
igor_v 21:bc8c1cec3da6 892 case 0xD8:
igor_v 21:bc8c1cec3da6 893 CMD_M_Control_D8();
Kovalev_D 147:1aed74f19a8f 894 break;
Kovalev_D 129:406995a91322 895
Kovalev_D 129:406995a91322 896 case 0xE9://чтение параметров
Kovalev_D 129:406995a91322 897 CMD_M_Param_R();
Kovalev_D 147:1aed74f19a8f 898 break;
Kovalev_D 129:406995a91322 899
Kovalev_D 129:406995a91322 900 case 0xE8://запись параметра
Kovalev_D 129:406995a91322 901 CMD_M_Param_W();
Kovalev_D 147:1aed74f19a8f 902 break;
Kovalev_D 129:406995a91322 903
igor_v 21:bc8c1cec3da6 904 case 0xD9:
igor_v 21:bc8c1cec3da6 905 CMD_M_Control_D9();
Kovalev_D 147:1aed74f19a8f 906 break;
Kovalev_D 129:406995a91322 907
igor_v 21:bc8c1cec3da6 908 case 0x0A:
Kovalev_D 45:cbc955aecebe 909 CMD_M_Stymul();
Kovalev_D 147:1aed74f19a8f 910 break;
Kovalev_D 129:406995a91322 911
igor_v 21:bc8c1cec3da6 912 case 0xDD:
Kovalev_D 147:1aed74f19a8f 913 TempParam=(BuffTemp[3]) & 0x9f;
Kovalev_D 147:1aed74f19a8f 914 if (TempParam == Rate1) { CMD_Rate(); WriteCon("Rate11");}
Kovalev_D 147:1aed74f19a8f 915 else if (TempParam == Rate2) { CMD_Rate2(); WriteCon("Rate21");}
Kovalev_D 147:1aed74f19a8f 916 else if (TempParam == PRate1) { Gyro.ModeOut=1; Gyro.Rate1_Event=0; WriteCon("Rate12");}
Kovalev_D 147:1aed74f19a8f 917 else if (TempParam == PRate2) { Gyro.ModeOut=2; Gyro.Rate2_Event=0; WriteCon("Rate22");}
Kovalev_D 147:1aed74f19a8f 918 break;
Kovalev_D 129:406995a91322 919
Kovalev_D 147:1aed74f19a8f 920 case 0xE4:
Kovalev_D 102:4270092be987 921 CMD_M_vib();
Kovalev_D 147:1aed74f19a8f 922 break;
Kovalev_D 129:406995a91322 923
Kovalev_D 103:e96f08947def 924 case 0xE6:
Kovalev_D 103:e96f08947def 925 Gph_W();
Kovalev_D 147:1aed74f19a8f 926 break;
Kovalev_D 147:1aed74f19a8f 927 Gyro.RsErrLine = 0;
Kovalev_D 147:1aed74f19a8f 928 }
Kovalev_D 102:4270092be987 929 }
Kovalev_D 147:1aed74f19a8f 930 }
Kovalev_D 147:1aed74f19a8f 931 void TechLog(void)
Kovalev_D 147:1aed74f19a8f 932 {
Kovalev_D 147:1aed74f19a8f 933 if (ReadCon (Time)) {
Kovalev_D 147:1aed74f19a8f 934 /////////////////////////////////////////////////////////////////
Kovalev_D 147:1aed74f19a8f 935 ////////////////////////////////////////////////////////////////
Kovalev_D 147:1aed74f19a8f 936 //////////////////////Выбор FlashMod///////////////////////////
Kovalev_D 147:1aed74f19a8f 937 ////////////////////////////////////////////////////////////////
Kovalev_D 121:bbae560cdd43 938
Kovalev_D 147:1aed74f19a8f 939 if (Time[0] == 'B') {Gyro.FlashMod=1;}
Kovalev_D 147:1aed74f19a8f 940 if (Time[0] == 'W') {Gyro.FlashMod=2;}
Kovalev_D 147:1aed74f19a8f 941 if (Time[0] == 'R') {Gyro.FlashMod=3;}
Kovalev_D 147:1aed74f19a8f 942 ///////////////////////////////////////////////////////////////
Kovalev_D 147:1aed74f19a8f 943 ///////////////////////////////////////////////////////////////
Kovalev_D 147:1aed74f19a8f 944 ////////////////////////////////////////////////////////////////
Kovalev_D 147:1aed74f19a8f 945 if (Time[0] == 'H') { // если ввели буквц h то выдать подсказку. сделанно через принф ОЧЕНЬ плохо в работе не использовать
Kovalev_D 147:1aed74f19a8f 946 sprintf(Time,"\r\nCompiled: %s %s.",__DATE__, __TIME__ ); //Подготовка даты и времени компиляции
Kovalev_D 147:1aed74f19a8f 947 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 948 sprintf(Time,"--%d.%3.d.%2.d.",Time1Hz,Time1K,Time100K); //Временно выдачпа временни из трех чисел
Kovalev_D 147:1aed74f19a8f 949 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 950 }
Kovalev_D 147:1aed74f19a8f 951 if (Time[0] == 'D') {
Kovalev_D 147:1aed74f19a8f 952 Gyro.Discharg = StartDischarg;
Kovalev_D 147:1aed74f19a8f 953 }
Kovalev_D 147:1aed74f19a8f 954 if (Time[0] == 'L') {
Kovalev_D 147:1aed74f19a8f 955 Gyro.BackLight = StartBackLight;
Kovalev_D 147:1aed74f19a8f 956 }
Kovalev_D 147:1aed74f19a8f 957 if (Time[0] == 'F') { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 958 sprintf(Time,"\r\n");
Kovalev_D 147:1aed74f19a8f 959 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 960 sprintf((Time)," Gyro.Termo = <%07d> Spi.ADC1 = <%07d> Spi.ADC1_Accum = <%07d>",Spi.ADC4,Spi.ADC4,Spi.ADC4_Accum );
Kovalev_D 147:1aed74f19a8f 961 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 962 }
Kovalev_D 147:1aed74f19a8f 963 if (Time[0] == 'q') { // внешняя защелка
Kovalev_D 147:1aed74f19a8f 964 Gyro.EXT_Latch=1;
Kovalev_D 147:1aed74f19a8f 965 }
Kovalev_D 147:1aed74f19a8f 966 if (Time[0] == '1') { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 967 sprintf(Time,"\r\n");
Kovalev_D 147:1aed74f19a8f 968 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 969 for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_1Point[i]);
Kovalev_D 147:1aed74f19a8f 970 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 971 }
Kovalev_D 147:1aed74f19a8f 972 if (Time[0] == '2') { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 973 sprintf(Time,"\r\n");
Kovalev_D 147:1aed74f19a8f 974 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 975 for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ", Buff_8Point[i]);
Kovalev_D 147:1aed74f19a8f 976 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 977 }
Kovalev_D 147:1aed74f19a8f 978 if (Time[0] == '3') { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 979 sprintf(Time,"\r\n");
Kovalev_D 147:1aed74f19a8f 980 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 981 for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ", Buff_16Point[i]);
Kovalev_D 147:1aed74f19a8f 982 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 983 }
Kovalev_D 147:1aed74f19a8f 984 if (Time[0] == '4') { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 985 sprintf(Time,"\r\n");
Kovalev_D 147:1aed74f19a8f 986 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 987 for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ", Buff_16PointD[i]);
Kovalev_D 147:1aed74f19a8f 988 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 989 }
Kovalev_D 147:1aed74f19a8f 990 if (Time[0] == 'z'){ // выдача технологическая
Kovalev_D 147:1aed74f19a8f 991 sprintf(Time,"\r\n");
Kovalev_D 147:1aed74f19a8f 992 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 993 for (int i = 0; i < 32; i++ )
Kovalev_D 147:1aed74f19a8f 994 {
Kovalev_D 147:1aed74f19a8f 995 ttemp=(Buff_16PointD[i]);
Kovalev_D 147:1aed74f19a8f 996 if (ttemp < 0) WriteCon("1"); else WriteCon("0");
Kovalev_D 147:1aed74f19a8f 997 }
Kovalev_D 147:1aed74f19a8f 998 }
Kovalev_D 147:1aed74f19a8f 999 if (Time[0] == '5'){ // выдача технологическая
Kovalev_D 147:1aed74f19a8f 1000 sprintf(Time,"\r\n");
Kovalev_D 147:1aed74f19a8f 1001 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1002 for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_32Point[i]);
Kovalev_D 147:1aed74f19a8f 1003 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1004 }
Kovalev_D 147:1aed74f19a8f 1005 if (Time[0] == '6') { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 1006 sprintf(Time,"\r\n");
Kovalev_D 147:1aed74f19a8f 1007 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1008 for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_Restored_sin[i]);
Kovalev_D 147:1aed74f19a8f 1009 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1010 }
Kovalev_D 147:1aed74f19a8f 1011 if (Time[0] == '7') { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 1012 sprintf(Time,"\r\n");
Kovalev_D 147:1aed74f19a8f 1013 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1014 for (int i = 0; i < 32; i++ )sprintf((Time + i * 10)," <%07d> ",Buff_AMP64P[i]-(Buff_AMP[i]));
Kovalev_D 147:1aed74f19a8f 1015 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1016 }
Kovalev_D 147:1aed74f19a8f 1017 if (Time[0] == '9') { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 1018 sprintf(Time,"\r\n");
Kovalev_D 147:1aed74f19a8f 1019 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1020 for (int i = 0; i < 32; i++ )sprintf((Time)," <%07d> ",Gyro.Frq);
Kovalev_D 147:1aed74f19a8f 1021 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1022 }
Kovalev_D 147:1aed74f19a8f 1023 if (Time[0] == 'p') { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 1024 sprintf(Time,"\r\n");
Kovalev_D 147:1aed74f19a8f 1025 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1026 for (int i = 0; i < 32; i++ )sprintf((Time)," <%07d> ",Cur_Amp);
Kovalev_D 147:1aed74f19a8f 1027 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1028 }
Kovalev_D 147:1aed74f19a8f 1029 if (Time[0] == 'm') { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 1030 sprintf(Time,"\r\n");
Kovalev_D 147:1aed74f19a8f 1031 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1032 sprintf((Time),"PLC_Delta <%07d> ", Gyro.PLC_Delta); WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1033 sprintf((Time),"PLC_DeltaADD <%07d> ", Gyro.PLC_DeltaADD); WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1034 }
Kovalev_D 147:1aed74f19a8f 1035 if (Time[0] == 'V') { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 1036 Spi.DAC_B += 200;
Kovalev_D 147:1aed74f19a8f 1037 }
Kovalev_D 147:1aed74f19a8f 1038 if (Time[0] == 'v') { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 1039 Spi.DAC_B -= 200;
Kovalev_D 147:1aed74f19a8f 1040 }
Kovalev_D 147:1aed74f19a8f 1041 ////////////////////////////////////////////////////////////////////////////////
Kovalev_D 147:1aed74f19a8f 1042 /*Запись лога настройки частоты*/
Kovalev_D 147:1aed74f19a8f 1043 if (Time[0] == 'y') Gyro.LogHZ=1; //включит передачу
Kovalev_D 147:1aed74f19a8f 1044 if (Time[0] == 'u') Gyro.StrayHZ_flag = 1; //LPC_TIM1->MR0+1000 вносим помеху
Kovalev_D 147:1aed74f19a8f 1045 if (Time[0] == 'i') Gyro.StrayHZ_flag = 0; //LPC_TIM1->MR0 убираем помеху
Kovalev_D 147:1aed74f19a8f 1046 if (Time[0] == 'o') Gyro.LogHZ=0; //Отключить передачу
Kovalev_D 147:1aed74f19a8f 1047 ////////////////////////////////////////////////////////////////////////////////////
Kovalev_D 147:1aed74f19a8f 1048 /*Запись лога настройки периметра*/
Kovalev_D 147:1aed74f19a8f 1049 if (Time[0] == 'g') Gyro.LogPLC=1; //включит передачу
Kovalev_D 147:1aed74f19a8f 1050 if (Time[0] == 'h') Gyro.StrayPLC_flag = 1; //LPC_TIM1->MR0+1000 вносим помеху
Kovalev_D 147:1aed74f19a8f 1051 if (Time[0] == 'j') Gyro.StrayPLC_flag = 0;
Kovalev_D 147:1aed74f19a8f 1052 if (Time[0] == 'b') Gyro.StrayPLC_flag = 3; //LPC_TIM1->MR0-1000 вносим помеху
Kovalev_D 147:1aed74f19a8f 1053 if (Time[0] == 'n') Gyro.StrayPLC_flag = 2; //LPC_TIM1->MR0 убираем помеху
Kovalev_D 147:1aed74f19a8f 1054 if (Time[0] == 'k') Gyro.LogPLC=0; //Отключить передачу
Kovalev_D 147:1aed74f19a8f 1055 //////////////////////////////////////////////////////////////////////////////////////
Kovalev_D 147:1aed74f19a8f 1056 if (Time[0] == '8') { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 1057 sprintf(Time,"\r\n");
Kovalev_D 147:1aed74f19a8f 1058 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1059 for (int i = 0; i < 32; i++ )
Kovalev_D 147:1aed74f19a8f 1060 {
Kovalev_D 147:1aed74f19a8f 1061 ttemp=(Buff_AMP64P[i]-(Buff_AMP[i]));
Kovalev_D 147:1aed74f19a8f 1062 if (ttemp < 0) WriteCon("1"); else WriteCon("0");
Kovalev_D 147:1aed74f19a8f 1063 }
Kovalev_D 147:1aed74f19a8f 1064 }
Kovalev_D 147:1aed74f19a8f 1065 if (Time[0] == 'b') { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 1066 sprintf(Time,"\r\n");
Kovalev_D 147:1aed74f19a8f 1067 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1068 for (int i = 0; i < 32; i++ )
Kovalev_D 147:1aed74f19a8f 1069 {
Kovalev_D 147:1aed74f19a8f 1070 ttemp=(Buff_Restored_sin[i]);
Kovalev_D 147:1aed74f19a8f 1071 if (ttemp < 0) WriteCon("1"); else WriteCon("0");
Kovalev_D 147:1aed74f19a8f 1072 }
Kovalev_D 147:1aed74f19a8f 1073 }
Kovalev_D 147:1aed74f19a8f 1074 if (Gyro.PLC_Error2Mode) { // выдача технологическая
Kovalev_D 147:1aed74f19a8f 1075 sprintf(Time,"\r\nPLC_Error2Mode");
Kovalev_D 147:1aed74f19a8f 1076 WriteCon(Time);
Kovalev_D 147:1aed74f19a8f 1077 }
Kovalev_D 147:1aed74f19a8f 1078 }
igor_v 0:8ad47e2b6f00 1079 }
igor_v 0:8ad47e2b6f00 1080
igor_v 0:8ad47e2b6f00 1081