Dmitry Kovalev
/
LGfiltr
forkd
Fork of LGstaandart by
Diff: Command.c
- Revision:
- 226:4a4d5bd5fcd7
- Parent:
- 225:f8fee6c586cc
- Child:
- 227:2774b56bfab0
--- a/Command.c Tue Dec 12 05:53:39 2017 +0000 +++ b/Command.c Tue Dec 26 05:14:09 2017 +0000 @@ -123,18 +123,24 @@ ///////////////end flah and boot/////////// void M_RateA(void) - { + { + + if(Gyro.ModeOut==3) + { + if (Gyro.Device_Mode) Gyro.ModeOut=4; + } + switch(Gyro.ModeOut) { - case 1: if(Gyro.Rate1_Event ) CMD_Rate(); break; - case 2: if(Gyro.Reper_Event ) CMD_Rate2(); break; - case 3: if(Gyro.Event_500Hz ) CMD_Delta_PS(); break; - case 4: if(Gyro.EXT_Latch ) CMD_Delta_PS(); break; - case 5: if(Gyro.Event_500Hz ) CMD_Delta_Bins(); break; - case 6: if(Gyro.EXT_Latch ) CMD_B_Delta(); break; - case 7: if(Gyro.Event_500Hz ) CMD_B_Delta(); break; - case 8: if(Gyro.Rate3_Event ) CMD_Rate3(); break; - case 9: if(Gyro.Reper_Event ){ CMD_Rate2(); Gyro.ModeOut=0;} break; + case 1: if(Gyro.Rate1_Event ) CMD_Rate(); break; + case 2: if(Gyro.Reper_Event ) CMD_Rate2(); break; + case 3: if(Gyro.Event_500Hz ) CMD_Delta_PS(); break; + case 4: if(Gyro.EXT_Latch ) CMD_Delta_PS(); Gyro.EXT_Latch=0; LoopOff break; + case 5: if(Gyro.Event_500Hz ) CMD_Delta_Bins(); break; + case 6: if(Gyro.EXT_Latch ) CMD_B_Delta(); Gyro.EXT_Latch=0; break; + case 7: if(Gyro.Event_500Hz ) CMD_B_Delta(); break; + case 8: if(Gyro.Rate3_Event ) CMD_Rate3(); break; + case 9: if(Gyro.Reper_Event ){ CMD_Rate2(); Gyro.ModeOut=0;} break; case 10: CMD_Rate7();Gyro.ModeOut=0;break;//if(Gyro.EvenRate7 ){ CMD_Rate7(); Gyro.EvenRate7=0;} break; case 11: if(Gyro.EvenRate5K ){ M_Rate5K(); Gyro.EvenRate5K--;} break; } @@ -269,7 +275,7 @@ switch(NP) { case 0: Gyro.My_Addres = GyroP.Str.My_Addres; break; - case 1: Gyro.HFO_ref = /*GyroP.Str.HFO_ref>>1;*/(unsigned int)(GyroP.Str.HFO_ref) ; break; + case 1: Gyro.HFO_ref = (unsigned int)(GyroP.Str.HFO_ref) ; break; case 2: Gyro.HFO_Gain = GyroP.Str.HFO_Gain; break; case 3: if(Gyro.LG_Type) Gyro.HFO_Max=0xffff-GyroP.Str.DAC_current_Work; //((int)(GyroP.Str.DAC_current_Work*0.67)-2000); else Spi.DAC_A = ((((int)(GyroP.Str.DAC_current_Work+ 0x7fff)&0xffff)+22544)*0.65); break; @@ -361,6 +367,7 @@ { Gyro.ModeOut=0; + Gyro.Device_Mode = 0; for(int q=0; q<64; q++) { BuffTemp[q]=0; @@ -669,21 +676,16 @@ BuffTemp[ 9] = (Temp >> 0) & 0xff;// 10 --частота расщипления //(unsigned int)((Gyro.DacIn+30000)*0.6667); - switch(Gyro.LG_Type) - { - case 1: Temp1 = 0xffff - Spi.DAC_A; break;//(int)(((float)(Spi.DAC_A)/0.6667)- 0xefff); break; - - case 0: // Temp2 = (Spi.DAC_A*1.538) - 0xd80f; - Temp1 =(int)(((float)(Spi.DAC_A)/0.64)- 56000); break; - } - //Temp1=Gyro.DacIn/*-0x7fff*/; - BuffTemp[10] = (Temp1 >> 8) & 0xff;//выход регулятора гвч; 11 --выход регулятора ГВЧ + Temp1 = 0xffff - Spi.DAC_A; + BuffTemp[10] = (Temp1 >> 8) & 0xff;//выход регулятора гвч; 11 --выход регулятора ГВЧ BuffTemp[11] = (Temp1 >> 0) & 0xff; //12 --выход регулятора ГВЧ - + /* if(Gyro.LG_Type) Temp =(int)(tempDeltaRegul); - else Temp =(unsigned int)((0x7fff-Spi.ADC5)*0.79)<<1; + else Temp =(unsigned int)((0x7fff-Spi.ADC5)*0.79)<<1;*/ + + Temp =(int)(tempDeltaRegul); //для призмы tempDeltaRegul=0; BuffTemp[12]=(Temp >> 8) & 0xff;//// HFO 13 --сигнал ошибки регулятора ГВЧ BuffTemp[13]=(Temp >> 0) & 0xff;//// 14 --сигнал ошибки регулятора ГВЧ @@ -992,8 +994,14 @@ BuffTemp[1] = Gyro.My_Addres; //00 BuffTemp[2] = Gyro.CMD_In; //D9 TempMod = BuffTemp[3] & 0xf; - Gyro.RgConMod = TempMod; - BuffTemp[3]=Gyro.RgConMod & 0xff; + Gyro.Device_Mode = TempMod; + + sprintf((Time)," Comand - DeviceMode(); Gyro.Device_Mode = %d Gyro.ModeOut = %d\r\n",Gyro.Device_Mode,Gyro.ModeOut); + WriteCon(Time); + /* + sprintf((Time),"%d\r\n",Gyro.Device_Mode); + WriteCon(Time);*/ + BuffTemp[3]=Gyro.Device_Mode & 0xff; BuffTemp[4]=0; BuffTemp[5]=0; Check(BuffTemp, CRC_N); @@ -1115,6 +1123,7 @@ // if(d8_anser)D8_Answer(); switch(Gyro.CMD_In) { + // case 0xA5: DeviceMode() ; break; case 0x99: /*Gyro.ModeOut=0;*/CMD_Maintenance(); break; case 0xD8: CMD_M_Control_D8(); break; case 0xE9: CMD_M_Param_R(); break; //чтение параметров @@ -1125,13 +1134,13 @@ case 0xDD: TempParam=(BuffTemp[3]) & 0x9f; //Rate switch(TempParam) { case Rate1 : CMD_Rate(); break; - //case Rate2 : Gyro.ModeOut=9; break; + //case Rate2 : Gyro.ModeOut=9; break; case Rate3 : CMD_Rate3(); break; case PRate1 : Gyro.ModeOut=1; break; case PRate2 : Gyro.ModeOut=2; break; case PRate3 : Gyro.ModeOut=8; break; case Rate7 : CMD_Rate7(); break; - case PRate7 : Gyro.ModeOut=10; break; + case PRate7 : Gyro.ModeOut=10; break; case Rate5K : M_Rate5K(); break; case PRate5K: if(Gyro.ModeOut){} @@ -1140,14 +1149,19 @@ } break; //DropDelay(); выставка задержки для мультидропа сбрасывается в команде CMD_Maintenance() на () микросекунд; - case 0xA0: /*DropDelay();*/ TempParam=(BuffTemp[3]) & 0x90; //Delta_PS - switch(TempParam) { - case Delta_500 : CMD_Delta_PS(); break; - case Delta_EXT : CMD_Delta_PS(); break; - case PDelta_500 : Gyro.ModeOut=3; Gyro.Event_500Hz=0; break; - case PDelta_EXT : Gyro.ModeOut=4; break; - } + + case 0xA0: /*DropDelay();*/ + // TempParam=(BuffTemp[3]) & 0x80; //Delta_PS + + switch(Gyro.Device_Mode) + { + case 0: Gyro.ModeOut=3; Gyro.Event_500Hz=0; break; + case 4: Gyro.ModeOut=4; break; + } + sprintf((Time)," Comand - B_Delta_PS(); Gyro.Device_Mode = %d Gyro.ModeOut = %d\r\n", Gyro.Device_Mode, Gyro.ModeOut); + WriteCon(Time); break; + case 0xB0: DropDelay(); TempParam = TempParam=(BuffTemp[3]>>7); //Delta_Bins switch(TempParam) { case PDelta_Bins: Gyro.ModeOut=5; Gyro.Event_500Hz=0; break;