Dmitry Kovalev
/
LGfiltr
forkd
Fork of LGstaandart by
Diff: Command.c
- Revision:
- 227:2774b56bfab0
- Parent:
- 226:4a4d5bd5fcd7
- Child:
- 228:a8195e1b1123
--- a/Command.c Tue Dec 26 05:14:09 2017 +0000 +++ b/Command.c Fri Jan 05 08:14:38 2018 +0000 @@ -135,7 +135,7 @@ 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 4: if(Gyro.EXT_Latch ) CMD_Delta_PS(); Gyro.EXT_Latch=0; 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; @@ -274,7 +274,7 @@ switch(NP) { - case 0: Gyro.My_Addres = GyroP.Str.My_Addres; break; + //case 0: Gyro.My_Addres = GyroP.Str.My_Addres; 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); @@ -365,30 +365,26 @@ } void CMD_Maintenance(void) { - - Gyro.ModeOut=0; - Gyro.Device_Mode = 0; + unsigned int Temp; + Gyro.ModeOut = 0; + Gyro.Device_Mode = 0; for(int q=0; q<64; q++) { BuffTemp[q]=0; } //Gyro.DropDelayGLD = DropDelayGLD_0;//задержка на выдачу 45 микросекунд для любого адреса ГЛД BuffTemp[0] = Gyro.SOC_Out; - BuffTemp[1] = Gyro.My_Addres; - BuffTemp[2] = Gyro.Firmware_Version; - /* sprintf((Time),"%d \r\n", Gyro.Firmware_Version); - WriteCon(Time);*/ - BuffTemp[3] = Gyro.GLD_Serial; - - BuffTemp[4]=0x00; - - BuffTemp[5]=0x00; + Temp = 0xfff; //Gyro.Firmware_Version; + BuffTemp[2] = (Temp >> 0) & 0xff; + BuffTemp[3] = (Temp >> 8) & 0xff; + + Temp = Gyro.GLD_Serial; + BuffTemp[4]=(Temp >> 0) & 0xff; + BuffTemp[5]=(Temp >> 8) & 0xff; Check(BuffTemp, 8); - /* sprintf((Time),"%d %d %d %d %d %d %d %d\r\n",BuffTemp[0], BuffTemp[1],BuffTemp[2],BuffTemp[3],BuffTemp[4],BuffTemp[5],BuffTemp[6],BuffTemp[7]); - WriteCon(Time);*/ WriteConN (BuffTemp,8); } @@ -440,11 +436,12 @@ BuffTemp[ 1] = Gyro.My_Addres; Gyro.CuruAngle = Gyro.CuruAngle + OldCuruAngle; //(72 град/с) - + OldCuruAngle=Gyro.CuruAngle & 0xf; //сохраняем 3 бит для след измирений - Temp=Gyro.CuruAngle>>4; //приводим к форме вывода + Temp=Gyro.CuruAngle>>4; + //приводим к форме вывода Gyro.CuruAngle = 0; - + //Temp=200; BuffTemp[ 2] =(Temp >> 8) & 0xff;//старший байт разности счетчиков BuffTemp[ 3] =(Temp >> 0) & 0xff;//младший байт разности счетчиков @@ -464,14 +461,8 @@ //HFO case 2: - /* Temp2 = ((Spi.DAC_A/0.65)-22544)-0x7fff; - Temp1= (int)Temp2;*/ - //2930 - if(Gyro.LG_Type) {OutDeltaPS =(int)(((Spi.DAC_A-0x84bf))* 2); - } - else {OutDeltaPS =(unsigned int)(0x7fff-Spi.ADC5)*0.79; - } - // Temp = Spi.DAC_A-0x7fff; + + OutDeltaPS = 0xffff - Spi.DAC_A; BuffTemp[5] = (OutDeltaPS >> 8) & 0xff; break; @@ -509,7 +500,7 @@ //Напряжение на регуляторе периметра case 8: - OutDeltaPS =(int)(3300+(0x7fff+(Spi.DAC_B*1.083)));// (Spi.DAC_B - 0x7fff); + OutDeltaPS = ((Spi.DAC_B-0x7fff)&0xffff); BuffTemp[5] = (OutDeltaPS >> 8) & 0xff; break; @@ -550,7 +541,7 @@ //ток 1 case 14: //Temp = Gyro.In1; - IntOutDeltaPS = ((Gyro.In1>>1)*0.800875)-0x3e0b; + IntOutDeltaPS = 0;//((Gyro.In1>>1)*0.800875)-0x3e0b; BuffTemp[5] = (IntOutDeltaPS >> 8) & 0xff;//in1//2 break; @@ -564,7 +555,7 @@ //ток 2 case 16: // Temp = Gyro.In2; - IntOutDeltaPS = ((Gyro.In2>>1)*0.800875)-0x3e0b; + IntOutDeltaPS =0;// ((Gyro.In2>>1)*0.800875)-0x3e0b; BuffTemp[5] = (IntOutDeltaPS >> 8) & 0xff; break; @@ -590,7 +581,7 @@ //температурный канал 5 case 20: OutDeltaPS = 0; - OutDeltaPS = Gyro.Termo;//Spi.ADC1;// //Gyro.Termo;//0xa4=164 + OutDeltaPS = Gyro.Termo; BuffTemp[5] =(OutDeltaPS >> 8) & 0xff;//температура break; @@ -691,7 +682,7 @@ BuffTemp[13]=(Temp >> 0) & 0xff;//// 14 --сигнал ошибки регулятора ГВЧ //Temp = (unsigned int)((7675000*16/(Gyro.Frq>>12))); - Temp = (unsigned int)(7680000/(Gyro.Frq>>16)); + Temp = Gyro.Frq>>12;//(unsigned int)(7680000/(Gyro.Frq>>16)); BuffTemp[14] = (Temp >> 8) & 0xff; //15 период вибропривода.(частота) T_Vibro BuffTemp[15] = (Temp >> 0) & 0xff; //16 период вибропривода. @@ -701,7 +692,7 @@ /*sprintf((Time),"%d %d\r\n",Gyro.FrqPhaseEror, Gyro.FrqPhaseEror<<2); WriteCon(Time); */ //18 - Temp =Gyro.L_vibro/*>>1*/;//(unsigned int)(((7675000*16/200) * Gyro.AmpPer /(Gyro.Frq>>12))); + Temp = Gyro.AmpPer/*>>1*/;//(unsigned int)(((7675000*16/200) * Gyro.AmpPer /(Gyro.Frq>>12))); BuffTemp[18] = (Temp >> 8) & 0xff; //19 длительность импулься вибропривода(амплитуда) BuffTemp[19] = (Temp >> 0) & 0xff; //20 @@ -813,8 +804,8 @@ } else Spi.DAC_B = (unsigned int)((temp-0x7fff)&0xffff); - sprintf((Time),"%d %d \r\n", Spi.DAC_B, temp); - WriteCon(Time); + /*sprintf((Time),"%d %d \r\n", Spi.DAC_B, temp); + WriteCon(Time); */ for(int q=0; q<64; q++) { BuffTemp[q]=0; @@ -831,11 +822,18 @@ { unsigned int temp1,temp2,anser; temp1 = (((BuffTemp[4]<<8) | BuffTemp[5])&0xFFFF); - Gyro.Frq = (122780000/temp1)<<12; - F_vib=103200000/((Gyro.Frq>>16)*2); - temp2 = (((BuffTemp[6]<<8) | BuffTemp[7])&0xFFFF); - Gyro.AmpPer = ((((((Gyro.Frq>>12)*200)/16)*temp2)/7680000)/2); - Gyro.Amp = (Gyro.AmpPer)<<15; + Gyro.Frq = (temp1<<12); + // Gyro.Frq = (122780000/temp1)<<12; + + F_vib= (unsigned int)(825600000 / temp1); + temp2 = (((BuffTemp[6]<<8) | BuffTemp[7])&0xFFFF); + + sprintf((Time),"%d %d \r\n",temp1, temp2); + WriteCon(Time); + Gyro.AmpPer = temp2; + Gyro.Amp = (Gyro.AmpPer<<17)/100; + /* Gyro.AmpPer = ((((((Gyro.Frq>>12)*200)/16)*temp2)/7680000)/2); + Gyro.Amp = (Gyro.AmpPer)<<17;*/ BuffTemp[0] = Gyro.SOC_Out; BuffTemp[1] = Gyro.My_Addres; @@ -1205,8 +1203,14 @@ if( Gyro.Debag2) Gyro.Debag2=0; else Gyro.Debag2=1; } - if (Time[0] == 'C') Spi.DAC_A+=200; - if (Time[0] == 'c') Spi.DAC_A-=200; + if (Time[0] == 'C') Spi.DAC_A+=32; + if (Time[0] == 'c') Spi.DAC_A-=32; + + if (Time[0] == 'k') PLC_ERR_DAC_F = 0; + + if (Time[0] == 'V') Spi.DAC_A+=160; + if (Time[0] == 'v') Spi.DAC_A-=160; + if (Time[0] == 'X') Spi.DAC_B+=2000; if (Time[0] == 'x') Spi.DAC_B-=2000; /////////////////////////////////////////////////////////////////