Dmitry Kovalev
/
LGstaandart
forkd
Fork of LG2 by
Diff: Command.c
- Revision:
- 218:b4067cac75c0
- Parent:
- 216:189b0ea1dc38
- Child:
- 219:2d3475d0dd1b
diff -r 15cd8752bb6c -r b4067cac75c0 Command.c --- a/Command.c Mon Sep 04 12:55:13 2017 +0000 +++ b/Command.c Mon Sep 25 10:35:56 2017 +0000 @@ -147,7 +147,7 @@ } void CMD_Rate7(void) { - + //Buff_Restored_Mod[CountV31] BuffADC_znak[q] // (CountV64)&0x3f]*Gyro.ModAmp туды //BuffADC_64Point[ (CountFaza + Gyro.PLC_Phase) & 0x3f] BuffClear(); @@ -156,104 +156,111 @@ int Temp1; float Temp2; int Shift = -11463; - static unsigned int t=16; + static unsigned int t=15; BuffTemp[0] = Gyro.SOC_Out; BuffTemp[1] = Gyro.My_Addres; - iRate_7 =(((BuffADC_64Point[(t - 0 - Gyro.PLC_Phase)&0x3f]) )+ Shift)&0xffff; + iRate_7 =(Buff_Restored_Mod[(t - Gyro.PLC_Phase)&0x1f])&0xffff; BuffTemp[ 2] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков BuffTemp[ 3] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков - iRate_7 = (((BuffADC_64Point[(t - 2 - Gyro.PLC_Phase)&0x3f]) )+ Shift)&0xffff; + iRate_7 =(Buff_Restored_Mod[((t - 2) - (Gyro.PLC_Phase ))&0x1f])&0xffff; BuffTemp[ 4] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков BuffTemp[ 5] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - iRate_7 =(((BuffADC_64Point[(t - 4 - Gyro.PLC_Phase)&0x3f]) )+ Shift)&0xffff; + iRate_7 =(Buff_Restored_Mod[((t - 4) - (Gyro.PLC_Phase))&0x1f])&0xffff; BuffTemp[ 6] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков BuffTemp[ 7] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - iRate_7 = (((BuffADC_64Point[(t - 6 - Gyro.PLC_Phase)&0x3f]) )+ Shift)&0xffff; + iRate_7 =(Buff_Restored_Mod[((t - 6) - (Gyro.PLC_Phase))&0x1f])&0xffff; BuffTemp[ 8] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков BuffTemp[ 9] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - iRate_7 = (((BuffADC_64Point[(t - 8 - Gyro.PLC_Phase)&0x3f]) )+ Shift)&0xffff; - BuffTemp[ 10] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков - BuffTemp[ 11] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; + iRate_7 =(Buff_Restored_Mod[((t - 8) - (Gyro.PLC_Phase))&0x1f])&0xffff; + BuffTemp[10] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков + BuffTemp[11] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - iRate_7 = (((BuffADC_64Point[(t - 10 - Gyro.PLC_Phase)&0x3f]) )+ Shift)&0xffff; - BuffTemp[ 12] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков - BuffTemp[ 13] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; + iRate_7 =(Buff_Restored_Mod[((t - 10) - (Gyro.PLC_Phase))&0x1f])&0xffff; + BuffTemp[12] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков + BuffTemp[13] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - iRate_7 = (((BuffADC_64Point[(t - 12 - Gyro.PLC_Phase)&0x3f]) )+ Shift)&0xffff; - BuffTemp[ 14] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков - BuffTemp[ 15] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; + iRate_7 =(Buff_Restored_Mod[((t - 12) - (Gyro.PLC_Phase))&0x1f])&0xffff; + BuffTemp[14] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков + BuffTemp[15] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - iRate_7 = (((BuffADC_64Point[(t - 14 - Gyro.PLC_Phase)&0x3f]) )+ Shift)&0xffff; - BuffTemp[ 16] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков - BuffTemp[ 17] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; + iRate_7 = (Buff_Restored_Mod[((t - 14) - (Gyro.PLC_Phase))&0x1f])&0xffff; + BuffTemp[16] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков + BuffTemp[17] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - iRate_7 = (((ModArraySin[(t - 0)&0x3f])))- 50; - BuffTemp[ 18] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков - BuffTemp[ 19] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; + iRate_7 = ModArraySin32[(t)] - 50; + BuffTemp[ 18] = (iRate_7 >> 8) & 0xff;//младший байт разности счетчиков + BuffTemp[ 19] = (iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - iRate_7 = (((ModArraySin[(t - 2)&0x3f])))- 50; - BuffTemp[ 20] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков - BuffTemp[ 21] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; + iRate_7 = ModArraySin32[(t - 2)&0x1f] - 50; + BuffTemp[ 20] = (iRate_7 >> 8) & 0xff;//младший байт разности счетчиков + BuffTemp[ 21] = (iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - iRate_7 = (((ModArraySin[(t - 4)&0x3f])))- 50; - BuffTemp[ 22] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков - BuffTemp[ 23] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; + iRate_7 = ModArraySin32[(t - 4)&0x1f] - 50; + BuffTemp[ 22] = (iRate_7 >> 8) & 0xff;//младший байт разности счетчиков + BuffTemp[ 23] = (iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - iRate_7 = (((ModArraySin[(t - 6)&0x3f])))- 50; - BuffTemp[ 24] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков - BuffTemp[ 25] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; + iRate_7 = ModArraySin32[(t - 6)&0x1f] - 50; + BuffTemp[ 24] = (iRate_7 >> 8) & 0xff;//младший байт разности счетчиков + BuffTemp[ 25] = (iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - iRate_7 = (((ModArraySin[(t - 8)&0x3f])))- 50; - BuffTemp[ 26] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков - BuffTemp[ 27] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; + iRate_7 = ModArraySin32[(t - 8)&0x1f] - 50; + BuffTemp[ 26] = (iRate_7 >> 8) & 0xff;//младший байт разности счетчиков + BuffTemp[ 27] = (iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - iRate_7 = (((ModArraySin[(t - 10)&0x3f])))- 50; - BuffTemp[ 28] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков - BuffTemp[ 29] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; + iRate_7 = ModArraySin32[(t - 10)&0x1f] - 50; + BuffTemp[ 28] = (iRate_7 >> 8) & 0xff;//младший байт разности счетчиков + BuffTemp[ 29] = (iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - iRate_7 = (((ModArraySin[(t - 12)&0x3f])))- 50; - BuffTemp[ 30] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков - BuffTemp[ 31] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; + iRate_7 = ModArraySin32[(t - 12)&0x1f] - 50; + BuffTemp[ 30] = (iRate_7 >> 8) & 0xff;//младший байт разности счетчиков + BuffTemp[ 31] = (iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - iRate_7 = (((ModArraySin[(t - 14)&0x3f])))- 50; - BuffTemp[ 32] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков - BuffTemp[ 33] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; + iRate_7 = ModArraySin32[(t - 14)&0x1f] - 50; + BuffTemp[ 32] = (iRate_7 >> 8) & 0xff;//младший байт разности счетчиков + BuffTemp[ 33] = (iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; + + iRate_7 = (Spi.DAC_B - 0x7fff); BuffTemp[ 34] =(iRate_7 >> 8) & 0xff;//младший байт разности счетчиков BuffTemp[ 35] =(iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; - Rate_7 = Gyro.PLC_Eror_count; + + + Rate_7 = Gyro.PLC_Eror_count>>3; BuffTemp[ 36] =(Rate_7 >> 8) & 0xff;//младший байт разности счетчиков BuffTemp[ 37] =(Rate_7 >> 0) & 0xff;//младший байт разности счетчиков; Gyro.PLC_Eror_count=0; - switch(Gyro.LG_Type) + + switch(Gyro.LG_Type) { - case 1: iRate_7 =(int)(((float)(Spi.DAC_A)/0.6667)- 0xefff); break; + case 1: iRate_7 =(int)(((float)(Spi.DAC_A)/0.6667)- 0xefff); break; + case 0: Temp2 = (Spi.DAC_A*1.538) - 0xd80f; - iRate_7 = (int)Temp2; break; + iRate_7 = (int)Temp2; + //iRate_7 =(int)(((float)(Spi.DAC_A)/0.6667)- 0xefff); + break; } //Rate_7 = 30000;//(unsigned int)(iRate_7&0xffff); - BuffTemp[ 38] = (iRate_7 >> 8) & 0xff;//младший байт разности счетчиков BuffTemp[ 39] = (iRate_7 >> 0) & 0xff;//младший байт разности счетчиков; Check(BuffTemp, 42); WriteConN (BuffTemp,42); - if(t<47)t+=16; - else t =16; + /* if(t<31)t+=8; + else t =15;*/ } @@ -326,8 +333,8 @@ case 18: temp=((GyroP.Str.VB_Fdf_Hi<<16) | GyroP.Str.VB_Fdf_Lo); sprintf((Time),"%d \r\n", temp/32); WriteCon(Time); - temp=temp*20; - Gyro.AmpTarget=(unsigned int)(temp); + temp=temp*20; + Gyro.AmpTarget=(unsigned int)(temp); break; case 19: Gyro.AmpSpeed = GyroP.Str.AmpSpeed; break; @@ -379,7 +386,12 @@ } void CMD_Maintenance(void) { + Gyro.ModeOut=0; + for(int q=0; q<64; q++) + { + BuffTemp[q]=0; + } //Gyro.DropDelayGLD = DropDelayGLD_0;//задержка на выдачу 45 микросекунд для любого адреса ГЛД BuffTemp[0] = Gyro.SOC_Out; @@ -441,6 +453,9 @@ Gyro.EXT_Latch=0; Gyro.Event_500Hz=0; unsigned int Temp; + + + BuffTemp[ 0] = Gyro.SOC_Out; BuffTemp[ 1] = Gyro.My_Addres; @@ -471,9 +486,11 @@ case 2: /* Temp2 = ((Spi.DAC_A/0.65)-22544)-0x7fff; Temp1= (int)Temp2;*/ - - if(Gyro.LG_Type) {OutDeltaPS =(int)(((Spi.DAC_A/0.6667)-30000)-0x7fff);} - else {OutDeltaPS =(unsigned int)(0x7fff-Spi.ADC5)*0.79;} + //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; BuffTemp[5] = (OutDeltaPS >> 8) & 0xff; break; @@ -512,7 +529,7 @@ //Напряжение на регуляторе периметра case 8: - OutDeltaPS = (Spi.DAC_B - 0x7fff); + OutDeltaPS =(int)(3300+(0x7fff+(Spi.DAC_B*1.083)));// (Spi.DAC_B - 0x7fff); BuffTemp[5] = (OutDeltaPS >> 8) & 0xff; break; @@ -693,7 +710,7 @@ BuffTemp[23] = (Temp1 >> 0) & 0xff; //24 - Temp = Gyro.PLC_Eror_count; //Gyro.AD_Slow >> 16; + Temp = Gyro.PLC_Eror_count>>6; //Gyro.AD_Slow >> 16; Gyro.PLC_Eror_count = 0; BuffTemp[24] = (Temp >> 8) & 0xff;// //25 ФД СРП BuffTemp[25] = (Temp >> 0) & 0xff;// //26 ФД СРП @@ -787,10 +804,7 @@ if(Gyro.LG_Type==1) Spi.DAC_A = ((unsigned int)((Gyro.DacIn+0x7011)*0.6667)); else Spi.DAC_A = (unsigned int)((temp)); } - else Spi.DAC_B = (unsigned int)temp; - - - + else Spi.DAC_B = (unsigned int)temp; /* sprintf((Time),"%d %d %f \r\n", temp, Spi.DAC_A, (temp+10744)*0.79); WriteCon(Time); @@ -800,15 +814,19 @@ DACF =(temp*K_DAC)+deltaDAC; Spi.DAC_B =(unsigned int)(DACF) (unsigned int)(temp*K_DAC+deltaDAC); // K_DAC); }*/ - if(Consol) - { + /* if(Consol) + {*/ + for(int q=0; q<64; q++) + { + BuffTemp[q]=0; + } BuffTemp[0] = Gyro.SOC_Out; //DD BuffTemp[1] = Gyro.My_Addres; //00 BuffTemp[2] = Gyro.CMD_In; //D9 BuffTemp[3] =0; Check(BuffTemp, CRC_N); WriteConN (BuffTemp,CRC_N); - } + /* }*/ } void CMD_M_vib() @@ -1117,7 +1135,7 @@ 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; @@ -1220,14 +1238,13 @@ LPC_MCPWM->MAT1 = T_vib_1; } if (Time[0] == 'X') { // выдача технологическая - faza += 1; - sprintf((Time),"%d \r\n", Spi.DAC_A); - WriteCon(Time); + if(Gyro.Debag2 >5) Gyro.Debag2=0; + else Gyro.Debag2=200; } if (Time[0] == 'x') { // выдача технологическая - if(TypeMod>2) TypeMod=0; - else TypeMod=4; + if(Gyro.Debag >200) Gyro.Debag=0; + else Gyro.Debag=2500; } if (Time[0] == 'p') { // выдача технологическая // PlcOFF //Gyro.RgConA&0x8=0; @@ -1275,9 +1292,9 @@ if (Time[0] == 'b') { - for(int q=0; q<64; q++) + for(int q=13; q<21; q++) { - sprintf((Time),"%d \r\n", Buff_Restored_Mod[q]); + sprintf((Time),"%d \r\n", (Buff_Restored_Mod[(q - Gyro.PLC_Phase)&0x1f])*(BuffADC_znak[q])); WriteCon(Time); } }