Dmitry Kovalev
/
LGfiltr
forkd
Fork of LGstaandart by
Diff: SPI.c
- Revision:
- 222:7de7b3bf3a1d
- Parent:
- 221:53b256368ca1
- Child:
- 224:598aec95415f
--- a/SPI.c Mon Oct 23 05:31:10 2017 +0000 +++ b/SPI.c Mon Nov 20 13:06:31 2017 +0000 @@ -32,7 +32,7 @@ int Buff_OUT1 [64]; int Buff_OUT [64]; int RegulADC,DeltaRegul,tempDeltaRegul; -int count10v=0,AMPSUM,AMPSUMP,AMPSUMM,AMPSUM_DESP,AMPSUMPout,AMPSUMMout,SumDelta,PLC_EROR,PLC_Flag,HFO_Flag,HFOdelta,HFOregul,HFOSumDelta; +int count10v=0,AMPSUM,AMPSUMP,AMPSUMM,AMPSUM_DESP,AMPSUMPout,AMPSUMMout,AMPSUMout,SumDelta,PLC_EROR,PLC_Flag,HFO_Flag,HFOdelta,HFOregul,HFOSumDelta; //int BuffADC_32Point [64]; @@ -108,8 +108,8 @@ WriteCon(Time);*/ if(Gyro.RgConA&0x8) { - if(Gyro.PLC_Eror>0) {Spi.DAC_B+=1 * Gyro.PLC_Gain;} - else {Spi.DAC_B-=1 * Gyro.PLC_Gain;} + /* if(Gyro.PLC_Eror>0) {Spi.DAC_B+=1 * Gyro.PLC_Gain;} + else {Spi.DAC_B-=1 * Gyro.PLC_Gain;}*/ } /* if(Gyro.PLC_Eror>0) {Gyro.PLC_Eror_count++;} else {Gyro.PLC_Eror_count--;}*/ @@ -123,7 +123,7 @@ - void HFORegul2(void) +/* void HFORegul2(void) { static unsigned int countHFO; @@ -150,7 +150,7 @@ if(Spi.DAC_A>Gyro.HFO_Min-1) Spi.DAC_A=Gyro.HFO_Min-2; else if(Spi.DAC_A<Gyro.HFO_Max+1) Spi.DAC_A=Gyro.HFO_Max+2; -} +} */ // Spi.DAC_B-=ADCDIF>>6; @@ -186,7 +186,6 @@ Gyro.IN1_Accum=0; Gyro.IN2_Accum=0; Gyro.ADM_Count=0; - } if (Gyro.ADF_Count > 15) { // если прошло 16 тактов виброподвеса Gyro.AD_Fast = Gyro.ADF_Accum << 11; //обновляем данные и приводим в один масштаб @@ -212,43 +211,7 @@ if (count10v>=64*8) { count10v=0; - - /* for(int q=0; q<5; q++) - { - AMPSUMP+=BuffADC_10v[q]; - }*/ - - /* for(int q=0; q<32; q++) - { - AMPSUMP += BuffADC_10v[q]; - - } - for(int q=32; q<64; q++) - { - AMPSUMM += BuffADC_10v[q]; - } - */ - ///////////////////////////// - - /* for(int q=32; q<32+5; q++) - { - AMPSUMM+=BuffADC_10v[q]; - }*/ - /* for(int q=32+12; q<32+20; q++) - { - AMPSUMM+=BuffADC_10v[q]; - }*/ - /* for(int q=32+28; q<32+32; q++) - { - AMPSUMM+=BuffADC_10v[q]; - } */ - - - /* sprintf((Time),"%d %d %d %d \r\n", AMPSUM, AMPSUMP, AMPSUMM,AMPSUMP - AMPSUMM); - WriteCon(Time);*/ - - - + for(int q=0; q<32; q++) { SumBuff += BuffADC_10v[q]; @@ -278,18 +241,21 @@ for(int q=0; q<64; q++) { AMPSUM+=BuffADC_10v[q]; - //Buff_OUT[q]=BuffADC_1Point[q]; - Buff_OUT[q]=BuffADC_10v_F [q]; - //Buff_OUT1[q]= - BuffADC_10v_OLD[q]= BuffADC_10v[q]; + AMPSUMout+=BuffADC_10v_F[q]; + BuffADC_10v_OLD[q]= BuffADC_10v[q]; BuffADC_10v[q] =0; } - sprintf((Time),"%d \r\n", Spi.DAC_A); - WriteCon(Time); + for(int q=0; q<64; q++) + { + Buff_OUT[q]=(BuffADC_10v_F[q]-(AMPSUM>>1))>>3; + } + + /*sprintf((Time),"%d \r\n", Spi.DAC_A); + WriteCon(Time);*/ AMPSUMPout=AMPSUMP; AMPSUMMout=AMPSUMM; - + AMPSUMout=AMPSUM; Delta= (AMPSUMPout - AMPSUMMout); SumDelta+=Delta; Gyro.PLC_Eror_count=SumDelta/Gyro.PLC_Gain; @@ -418,7 +384,8 @@ if(PLC_Flag) { PLC_Flag=0; - Spi.DAC_B+=(Gyro.PLC_Eror_count); + if (Gyro.PLCDelay){} + else Spi.DAC_B+=(Gyro.PLC_Eror_count); } @@ -426,8 +393,16 @@ Gyro.PLC_Eror_count=0; if(Gyro.LG_Type==1) { - if ( Spi.DAC_B < Gyro.HighTreshold ) Spi.DAC_B = (Gyro.ResetLevelHeat); - else if ( Spi.DAC_B > Gyro.DownTreshold ) Spi.DAC_B = (Gyro.ResetLevelCool); + if(Spi.DAC_B < Gyro.HighTreshold ) + { + Spi.DAC_B = (Gyro.ResetLevelCool); + Gyro.PLCDelay = GyroP.Str.PLCDelay/10; + } + else if(Spi.DAC_B > Gyro.DownTreshold ) + { + Spi.DAC_B = (Gyro.ResetLevelHeat); + Gyro.PLCDelay = GyroP.Str.PLCDelay/10; + } } else { @@ -460,8 +435,8 @@ else {Gyro.LogPLC=0;} } else dispersion++; - sprintf((Time),"%d %d %d %d \r\n", Gyro.CuruAngle, Spi.DAC_B, Gyro.AD_Slow, Gyro.Termo); - Gyro.CuruAngle=0; + /*sprintf((Time),"%d %d %d %d \r\n", Gyro.CuruAngle, Spi.DAC_B, Gyro.AD_Slow, Gyro.Termo); + Gyro.CuruAngle=0;*/ WriteCon(Time); } void ShowMod2(void)//технологическая функция для просмотра в ориджине мод на всем диапазпне цап @@ -469,9 +444,9 @@ if(dispersion>3) { unsigned int step = 50, ENDMOD=65400; - sprintf((Time),"%d %d %d %d %d %d %d\r\n", Gyro.CuruAngle, Spi.DAC_B, Gyro.AD_Slow, Spi.ADC5, 0xfFFf-Spi.ADC1, Spi.ADC1, Gyro.Termo); + /*sprintf((Time),"%d %d %d %d %d %d %d\r\n", Gyro.CuruAngle, Spi.DAC_B, Gyro.AD_Slow, Spi.ADC5, 0xfFFf-Spi.ADC1, Spi.ADC1, Gyro.Termo); Gyro.CuruAngle=0; - WriteCon(Time); + WriteCon(Time);*/ Spi.DAC_B+=step; if(Spi.DAC_B>ENDMOD) {