Dmitry Kovalev
/
LG2
fork
Fork of LG by
Diff: SPI.c
- Revision:
- 198:fb22ba6aad54
- Parent:
- 197:7a05523bf588
- Child:
- 199:2728719cdc64
diff -r 7a05523bf588 -r fb22ba6aad54 SPI.c --- a/SPI.c Wed Oct 19 10:55:05 2016 +0000 +++ b/SPI.c Thu Oct 20 09:29:05 2016 +0000 @@ -75,10 +75,10 @@ } void PLCRegul(void) { - - if (CountV64 == 0) + int templm=0; + if (CountV64 == 0) { - for (int i = 0; i < 32; i++ ) + for (int i = 0; i < 32; i++ ) { SinPls+= BuffADC_64Point[i]; } @@ -87,17 +87,17 @@ SinMns+= BuffADC_64Point[i]; } ADCDIF = SinPls - SinMns; - // Spi.DAC_B-=ADCDIF>>6; + Spi.DAC_B-=ADCDIF>>7; - if(ADCDIF>0) Spi.DAC_B-=3; - else Spi.DAC_B+=3; + /* if(ADCDIF>0) Spi.DAC_B-=3; + else Spi.DAC_B+=3;*/ 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 \r\n", ADCDIF>>7, Spi.DAC_B, Gyro.test );//выдаем в терминал для постройки граффика регулировки периметра. + WriteCon(Time); + SinPls=0; SinMns=0; } @@ -113,11 +113,9 @@ Gyro.DeltaT = Spi.ADC4; TempA = (0xffff - Spi.ADC5); // перевернем знак и умножим на два (было 32000...0 стало 0 ...32000 /*сдвиг(<<1) стало 0 ...64000*/) - TempTermLM = Spi.ADC1; Gyro.ADF_Accum += TempA; Gyro.ADS_Accum += TempA; - Gyro.ADS_AccumTermLM+=TempTermLM; Gyro.ADF_Count ++; Gyro.ADS_Count ++; @@ -129,10 +127,8 @@ } if (Gyro.ADS_Count > 255) { // если прошло 256 тактов виброподвеса Gyro.AD_Slow = Gyro.ADS_Accum << 7; //обновляем данные и приводим в один масштаб - Gyro.TermLM = Gyro.ADS_AccumTermLM << 3; Gyro.ADS_Count = 0; Gyro.ADS_Accum = 0; - Gyro.ADS_AccumTermLM=0; Gyro.ADS_NewData = 1; } } @@ -145,25 +141,21 @@ ADC5New = LPC_SSP0->DR;// Чтение АЦП // Spi.ADC5_Accum += LPC_SSP0->DR; + + Spi.ADC5_Accum += ADC5New; Spi.ADC4_Accum += LPC_SSP0->DR; Spi.ADC3_Accum += LPC_SSP0->DR; Spi.ADC2_Accum += LPC_SSP0->DR; - Spi.ADC1_Accum += LPC_SSP0->DR; - Spi.ADC5_Accum += ADC5New; - + /*Spi.ADC1_Accum +*/Gyro.test = LPC_SSP0->DR; + + /*sprintf((Time),"%d \r\n", Gyro.test);//выдаем в терминал для постройки граффика регулировки периметра. + WriteCon(Time);*/ - // 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 не пуст.//очистить буфер. } DAC_OutPut(); - if (CountV31 == 0) { // просто фильтруем по 32 точкам. + /* if (CountV31 == 0) { // просто фильтруем по 32 точкам. // выставояем бит, что есть новы данные Spi.ADC1 = Spi.ADC1_Accum >> 5; // подгоотавливаем данные (в той эе сетке) те ADC1 0..65535 Spi.ADC2 = Spi.ADC2_Accum >> 5; @@ -177,53 +169,15 @@ 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)//технологическая функция для просмотра в ориджине мод на всем диапазпне цап