123

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
110:6406b7ac0442
Parent:
109:ee0cff33ad3b
Child:
112:4a96133a1311
--- a/SPI.c	Sat Apr 02 13:10:40 2016 +0000
+++ b/SPI.c	Sun Apr 03 05:20:36 2016 +0000
@@ -31,12 +31,52 @@
                           1016,	1023
                          };
 
+
+
+
+
+void SPI_Exchange_I(void)  // новая функция чтения, в нецй не должно быть ничего лишнего
+	{
+	unsigned int DummySPI;
+	Spi.ADC5_Accum += LPC_SSP0->DR;		// Чтение АЦП
+    Spi.ADC4_Accum += LPC_SSP0->DR;
+    Spi.ADC3_Accum += LPC_SSP0->DR;
+    Spi.ADC2_Accum += LPC_SSP0->DR;
+    Spi.ADC1_Accum += LPC_SSP0->DR;
+    while (LPC_SSP0->SR & RX_SSP_notEMPT) 	{DummySPI = LPC_SSP0->DR;} 		                //если буфер SPI не пуст.//очистить буфер. 
+    LPC_SSP0->DR=0x5555;
+    LPC_SSP0->DR=0x5555;
+    LPC_SSP0->DR=0x5555;
+
+    if (CountV31 & 1) {           	// если нечетный такт то
+        LPC_SSP0->DR = WRITE_DAC0;   			// команда для ЦАП_0 передавать.
+        LPC_SSP0->DR = (Spi.DAC_A);         
+    } else { 						//если такт четный.
+        LPC_SSP0->DR = WRITE_DAC1 ;   			// команда для ЦАП_1 передавать.
+        LPC_SSP0->DR = (Spi.DAC_B); 	        // передача 12 бит
+    }
+  	if (CountV31 == 0)							// просто фильтруем по 32 точкам. 
+  	{
+  		Spi.ADC_NewData = 1;					// выставояем бит, что есть новы данные
+		Spi.ADC1 = Spi.ADC1_Accum >> 5;			// подгоотавливаем данные (в той эе сетке) те 	 ADC1  0..65535
+		Spi.ADC2 = Spi.ADC2_Accum >> 5;
+		Spi.ADC3 = Spi.ADC3_Accum >> 5;
+		Spi.ADC4 = Spi.ADC4_Accum >> 5;
+		Spi.ADC5 = Spi.ADC5_Accum >> 5;
+  		Spi.ADC1_Accum = 0;						// сбрасывкем аккамулятор
+    	Spi.ADC2_Accum = 0;		
+    	Spi.ADC3_Accum = 0;		
+    	Spi.ADC4_Accum = 0;		
+    	Spi.ADC5_Accum = 0;		
+  	}
+}
+
+
 void SPI_Exchange(void)
 {
     unsigned int DummySPI;
    	int Delta;
 
-
     Spi.ADC5 = LPC_SSP0->DR;
     Spi.ADC4 = LPC_SSP0->DR;
     Spi.ADC3 = LPC_SSP0->DR;
@@ -49,7 +89,7 @@
     LPC_SSP0->DR=0x5555;
     LPC_SSP0->DR=0x5555;
 
-    if (CountV31 & 1) {                      //если нечетный такт то
+    if (CountV31 & 1) {                      	//если нечетный такт то
         LPC_SSP0->DR = WRITE_DAC0;   					//e.команда для ЦАП_0 передавать.
         LPC_SSP0->DR = (Spi.DAC_A);         	//e. передача 12 бит
     } else { //если такт четный.
@@ -68,8 +108,8 @@
     Buff_ADC_3	[CountV31] = Spi.ADC3;
     Buff_ADC_4	[CountV31] = Spi.ADC4;
     Buff_ADC_5	[CountV255] = Spi.ADC5;    // ампл ацп.
- 
- 
+
+
 //    Temp_AMP += Buff_ADC_5[CountV255];
 //    Temp_AMP -= Buff_ADC_5[(CountV255-32) & 0xff];                    // заполнение буфера накопленых приращений за 8 тактов
 //    Buff_AMP[CountV255] = (unsigned int) (Temp_AMP);
@@ -115,12 +155,7 @@
 
      	Cur_Amp=ADD_AMP; Count_AMP=0; ADD_AMP=0;
 	 }
-    
-
-
-
-
-    Temp_AMP64P += Buff_ADC_5[CountV255];
+   	Temp_AMP64P += Buff_ADC_5[CountV255];
     Temp_AMP64P -= Buff_ADC_5[(CountV255-64) & 0xff];                    // заполнение буфера накопленых приращений за 8 тактов
     Buff_AMP64P[CountV255] = (unsigned int) (Temp_AMP64P);