Dmitry Kovalev
/
LGfiltr
forkd
Fork of LGstaandart by
Diff: SPI.c
- Revision:
- 201:76f4123bf22a
- Parent:
- 197:7a05523bf588
- Child:
- 202:c03b7b128e11
diff -r 7a05523bf588 -r 76f4123bf22a SPI.c --- a/SPI.c Wed Oct 19 10:55:05 2016 +0000 +++ b/SPI.c Wed Nov 02 14:05:24 2016 +0000 @@ -10,7 +10,7 @@ int AD_MAX=0; int k=0,l=0,r=0,n=0;//счетчики для регулировки периметра int flagmod=0,Bdelta; -int start=10; +int start=1; int dispersion=0,side=1,tempstrafe=15000; unsigned int Temp_ADC_2; unsigned int Temp_ADC_3; @@ -76,7 +76,7 @@ void PLCRegul(void) { - if (CountV64 == 0) + if (CountV64 == 63) { for (int i = 0; i < 32; i++ ) { @@ -87,17 +87,15 @@ SinMns+= BuffADC_64Point[i]; } ADCDIF = SinPls - SinMns; - // Spi.DAC_B-=ADCDIF>>6; - - if(ADCDIF>0) Spi.DAC_B-=3; - else Spi.DAC_B+=3; - + + /* if(ADCDIF>0) Spi.DAC_B-=3; + else Spi.DAC_B+=3;*/ + Spi.DAC_B -= ADCDIF>>7; if ( Spi.DAC_B < 15300 ) Spi.DAC_B = 32000; //проверка на переваливание за границу. else if ( Spi.DAC_B > 53000 ) Spi.DAC_B = 32000; -/* - sprintf((Time),"%d %d %d %d %d \r\n", SinPls, SinMns, ADCDIF, ADCDIF>>5, Spi.DAC_B);//выдаем в терминал для постройки граффика регулировки периметра. - WriteCon(Time); - */ + + /*sprintf((Time),"%d %d %d %d %d \r\n", SinPls, SinMns, Gyro.Start, Gyro.Termo, Spi.DAC_B);//выдаем в терминал для постройки граффика регулировки периметра. + WriteCon(Time);*/ SinPls=0; SinMns=0; } @@ -138,13 +136,14 @@ } void SPI_Exchange(void) // новая функция чтения, в нецй не должно быть ничего лишнего -{ +{ unsigned int DummySPI; - + /* + if(Gyro.Start>2000) DummySPI = LPC_SSP0->DR;*/ //unsigned int ADC5Dif; ADC5New = LPC_SSP0->DR;// Чтение АЦП - // Spi.ADC5_Accum += LPC_SSP0->DR; + //Spi.ADC5_Accum += LPC_SSP0->DR; Spi.ADC4_Accum += LPC_SSP0->DR; Spi.ADC3_Accum += LPC_SSP0->DR; Spi.ADC2_Accum += LPC_SSP0->DR; @@ -152,13 +151,6 @@ Spi.ADC5_Accum += ADC5New; - // ADC5Dif = (ADC5New) - (ADC5Old); - // ADC5Old=ADC5New; - - /* -sprintf((Time)," %d\r\n", (Buff_Restored_Mod[CountV64])); -WriteCon(Time); - */ while (LPC_SSP0->SR & RX_SSP_notEMPT) { DummySPI = LPC_SSP0->DR; //если буфер SPI не пуст.//очистить буфер. } @@ -176,54 +168,10 @@ Spi.ADC4_Accum = 0; Spi.ADC5_Accum = 0; Spi.ADC_NewData = 1; - } - - - - BuffADC_64Point[CountV64]=ADC5New; Buff_ADC_5[CountV255] = (0x7fff-ADC5New)<<2; PLCRegul(); - - - -/* - PulseADC_16Point += Buff_ADC_5[CountV255]; - PulseADC_16Point -= Buff_ADC_5[(CountV255-16)& 0xff]; // заполнение буфера накопленых приращений за 16 тактов - BuffADC_16Point[CountV64] = (Pulse_16Point); - - PulseADC_32Point += Buff_ADC_5[CountV255]; - PulseADC_32Point -= Buff_ADC_5[(CountV255-32)& 0xff ]; // заполнение буфера накопленых приращений за 32 тактов - BuffADC_32Point[CountV64] = (PulseADC_32Point ); - - PulseADC_32PointD += Buff_ADC_5[CountV255]; - PulseADC_32PointD -= Buff_ADC_5[(CountV255-32)& 0xff]; // заполнение буфера накопленых приращений за 32 тактов Двойныз - PulseADC_32PointD += Buff_ADC_5[(CountV255-48)& 0xff]; // - PulseADC_32PointD -= Buff_ADC_5[(CountV255-64)& 0xff]; // - BuffADC_32PointD[CountV64] = PulseADC_32PointD ; - */ - /* PulseADC_64Point += (Buff_ADC_5[CountV255]); - PulseADC_64Point -= Buff_ADC_5[(CountV255-64) & 0xff]; // заполнение буфера накопленых приращений за два 64 тактов - BuffADC_64Point[CountV64] = (PulseADC_64Point);*/ - //ADCDIF += BuffADC_64Point[CountV64]; - /// Buff_Restored_Mod[CountV64] = BuffADC_32PointD[CountV64] - BuffADC_64Point[CountV64]; - - /* if(ADC5Old>3) - { - sprintf((Time),"%d %d \r\n", BuffADC_64Point[CountV64], Buff_Restored_Mod[CountV64]); - WriteCon(Time); - ADC5Old=0; - } - else ADC5Old++; - */ - // BackLightOFF - - // ADCDIF += BuffADC_64Point[CountV64]/*>>5*/; - /* sprintf((Time),"%d %d\r\n", ADC5New, PulseADC_64Point); - WriteCon(Time);*/ - - } void ShowMod(void)//технологическая функция для просмотра в ориджине мод на всем диапазпне цап