fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
147:1aed74f19a8f
Parent:
146:2bea299a7c4f
Child:
148:7ce8c1fd00f7
--- a/SPI.c	Thu Apr 28 13:54:29 2016 +0000
+++ b/SPI.c	Fri Apr 29 07:27:50 2016 +0000
@@ -13,7 +13,7 @@
 unsigned int Temp_ADC_3;
 unsigned int Temp_ADC_4;
 unsigned int Temp_ADC_5;
-
+unsigned int TempA;
 
 unsigned int Buff_ADC_1		[32];
 unsigned int Buff_ADC_2		[32];
@@ -33,7 +33,36 @@
 
 
 
+void ADS_Acum(void)
+{
+	// можно апихнкть в функцию
+		Spi.ADC_NewData = 0;	
+		Gyro.Termo 	= Spi.ADC1;
+		Gyro.In1   	= Spi.ADC2;
+		Gyro.In2   	= Spi.ADC3;
+		Gyro.DeltaT = Spi.ADC4;
+		TempA = (0x7fff - Spi.ADC5) << 1;  		// перевернем знак  и умножим на два (было 32000...0 стало 0 ...64000)
 
+		Gyro.ADF_Accum += TempA;
+		Gyro.ADS_Accum += TempA;
+		Gyro.ADF_Count ++;
+		Gyro.ADS_Count ++;
+
+		if (Gyro.ADF_Count > 15)					// если прошло 16 тактов виброподвеса
+		{
+			Gyro.AD_Fast = Gyro.ADF_Accum << 12;	//обновляем данные и приводим в один масштаб
+			Gyro.ADF_Count = 0;
+			Gyro.ADF_Accum = 0;
+			Gyro.ADF_NewData = 1;
+		}
+		if (Gyro.ADS_Count > 255)					// если прошло 256 тактов виброподвеса
+		{
+			Gyro.AD_Slow = Gyro.ADS_Accum << 8;		//обновляем данные и приводим в один масштаб
+			Gyro.ADS_Count = 0;
+			Gyro.ADS_Accum = 0;
+			Gyro.ADS_NewData = 1;
+		}
+}
 
 void SPI_Exchange(void)  // новая функция чтения, в нецй не должно быть ничего лишнего
 	{