forkd

Dependencies:   mbed

Fork of LGstaandart by Dmitry Kovalev

Revision:
231:079835d508ef
Parent:
227:2774b56bfab0
Child:
232:130a2b5003e6
--- a/Global.c	Tue Jan 09 13:25:45 2018 +0000
+++ b/Global.c	Thu Jan 25 13:59:43 2018 +0000
@@ -4,14 +4,14 @@
 unsigned long	Global_Time, Time_UART,Time_Sec,Time_vibro,Time_1kHz;
 float t1;
 unsigned char	BuffTemp[100];
-unsigned char 	Time[1000];
+unsigned char 	Time[512];
 unsigned int 	Event1Hz;
 unsigned int 	Event100Hz;
 unsigned int 	Event250Hz;
 unsigned int 	Event500Hz;
 unsigned int 	Event1K;
 unsigned int 	Event1250Hz;
-unsigned int 	Event5K;
+unsigned int 	Event10K;
 unsigned int 	Event100K;
 unsigned int 	EventVibro;
 unsigned int 	MODFlag=0;
@@ -21,68 +21,249 @@
 unsigned int 	Time100K;
 unsigned int 	Time1K;
 unsigned int 	Time1250Hz;
-unsigned int 	Time5K;
+unsigned int 	Time10K;
 unsigned int 	Time500Hz;
 unsigned int 	Time250Hz;
 unsigned int 	Time1Hz;
 unsigned int 	Time100Hz;
 unsigned int 	Clock1Hz;
-unsigned int    ShiftD;
-unsigned int    ShiftL;
+
+
+
+
+__asm void boot_jump( uint32_t address )
+{
+   LDR SP, [R0]         ;Load new stack pointer address
+   LDR R0, [R0, #4]     ;Load new program counter address
+   BX R0
+}
+
 
 
 
 
 
- int BuffADC_1Point			[600];
- int BuffADC_1Point_64  	[100];
- int BuffADC_1Point_Recalc	[100];
- 
- int BuffADC_128Point		[100];	
- int BuffADC_64Point		[100];
- 
- int BuffPLC_FILT    		[20];
- unsigned int C_PLC_F=0;
- 
- int BuffADC_32Point		[100];
- int BuffADC_16Point		[100];
- 
- int BuffADC_10HFO			[100];
- int BuffADC_10v		   	[100];
- 
- int BuffADC_10v_OLD	   	[100];
- int BuffADC_10v_F		   	[100];
- int BuffADC_znak			[100];
+uint32_t convertStrToTime(const char *str) {
+    char mon[3];
+    int day, mon_int, year;
+
+    mon[0] = str[0];
+	mon[1] = str[1];
+	mon[2] = str[2];
+
+	int year_pos = 6;
+
+	day = str[4] - 48;
+	if (str[5] != ' ') {
+		day = day * 10 + str[5] - 48;
+		year_pos = 7;
+	}
+
+	year = (str[year_pos] - 48) * 1000 + (str[year_pos + 1] - 48) * 100 + (str[year_pos + 2] - 48) * 10 + (str[year_pos + 3] - 48) - 2018;
 
-int Buff_Restored_Mod 			[100];
-int Buff_PLC_Eror	 			[100];
-int BSinMns	 			[100];
-int BSinPls	 			[100];
-int ADC_1Point			=0;
-int ADC_32PointD		=0;
+    mon_int = 0;
+    switch (mon[0]) {
+        case 'J':
+            switch (mon[1]) {
+                case 'a':
+                    mon_int = 1;
+                    break;
+                case 'u':
+                    switch (mon[2]) {
+                        case 'n':
+                            mon_int = 6;
+                            break;
+                        case 'l':
+                            mon_int = 7;
+                            break;
+                    }
+            }
+            break;
+        case 'F':
+            mon_int = 2;
+            break;
+        case 'M':
+            switch (mon[2]) {
+                case 'r':
+                    mon_int = 3;
+                    break;
+                case 'y':
+                    mon_int = 5;
+                    break;
+            }
+            break;
+        case 'A':
+            switch (mon[1]) {
+                case 'p':
+                    mon_int = 4;
+                    break;
+                case 'u':
+                    mon_int = 8;
+                    break;
+            }
+            break;
+        case 'S':
+            mon_int = 9;
+            break;
+        case 'O':
+            mon_int = 10;
+            break;
+        case 'N':
+            mon_int = 11;
+            break;
+        case 'D':
+            mon_int = 12;
+            break;
+        default:
+            mon_int = 0;
+            break;
+    }
 
-int ADC_128Point	=0;
-int ADC_64Point		=0;
-int ADC_32Point		=0;
-int ADC_16Point		=0;
-//unsigned int    EventMod;
+	uint32_t time_in_days = day;
+
+	for (int i = 0; i <= year; ++i) {
+		for (int j = 1; j < mon_int; ++j) {
+			switch (mon_int) {
+				case 1:
+				case 3:
+				case 5:
+				case 7:
+				case 8:
+				case 10:
+				case 12:
+					time_in_days += 31;
+					break;
+				case 4:
+				case 6:
+				case 9:
+				case 11:
+					time_in_days += 30;
+					break;
+				case 2:
+					if ((((i + 2018) % 4 == 0) && ((i + 2018) % 100 != 0)) || ((i + 2018) % 400 == 0)) {
+						time_in_days += 29;
+					} else {
+						time_in_days += 28;
+					}
+					break;
+				default:
+					break;
+			}
+		}
+	}
+
+    return time_in_days;
+}
 
 
-__asm void boot_jump( uint32_t address ){
-   LDR SP, [R0]         ;Load new stack pointer address
-   LDR R0, [R0, #4]     ;Load new program counter address
-   BX R0
+
+
+
+
+
+
+/*
+
+    int32_t convertStrToTime(char *str) {
+    struct tm time_format;
+    char mon[3];
+    int day, mon_int, year;
+   	int year_pos = 6;
+    time_t time_sec;
+    
+    mon[0] = str[0];
+	mon[1] = str[1];
+	mon[2] = str[2];
+
+
+
+	day = str[4] - 48;
+	if (str[5] != ' ') {
+		day = day * 10 + str[5] - 48;
+		year_pos = 7;
+	}
+
+	year = (str[year_pos] - 48) * 1000 + (str[year_pos + 1] - 48) * 100 + (str[year_pos + 2] - 48) * 10 + (str[year_pos + 3] - 48);
+
+	//sscanf(str, "%s%d%d", mon, &day, &year);
+
+    mon_int = 0;
+    switch (mon[0]) {
+        case 'J':
+            switch (mon[1]) {
+                case 'a':
+                    mon_int = 1;
+                    break;
+                case 'u':
+                    switch (mon[2]) {
+                        case 'n':
+                            mon_int = 6;
+                            break;
+                        case 'l':
+                            mon_int = 7;
+                            break;
+                    }
+            }
+            break;
+        case 'F':
+            mon_int = 2;
+            break;
+        case 'M':
+            switch (mon[2]) {
+                case 'r':
+                    mon_int = 3;
+                    break;
+                case 'y':
+                    mon_int = 5;
+                    break;
+            }
+            break;
+        case 'A':
+            switch (mon[1]) {
+                case 'p':
+                    mon_int = 4;
+                    break;
+                case 'u':
+                    mon_int = 8;
+                    break;
+            }
+            break;
+        case 'S':
+            mon_int = 9;
+            break;
+        case 'O':
+            mon_int = 10;
+            break;
+        case 'N':
+            mon_int = 11;
+            break;
+        case 'D':
+            mon_int = 12;
+            break;
+        default:
+            mon_int = 0;
+            break;
+    }
+
+    time_format.tm_mday = day;
+    time_format.tm_mon = mon_int - 1;
+    time_format.tm_year = year - 1900;
+ 
+    time_sec = mktime(&time_format) / 60 / 60 / 24;
+    sprintf((Time),"%d\r\n",time_sec);
+    WriteCon(Time);
+    
+    return time_sec;
 }
 
+
+*/
 void Param_init(void)
 {
     int temp=0;
-    
-    InitMOD();
-     for(int q=0; q<20; q++)
-   			{
-   		    	BuffPLC_FILT  [q] = 0;
-   			}
+    unsigned int  	TempTermodataHi;  											
+    unsigned int 	TempTermodataLo;    
+  Gyro.CurTermoCompens =  200;
 Gyro.CuruAngleLog=0;
 	Global_Time	= 0;
     Time_UART	= 0;
@@ -98,12 +279,10 @@
     Time100K	= 0;
     Time1Hz		= 0;
     Clock1Hz	= 0;
-    ShiftD		= 0;
-    ShiftL		= 0;
     Event500Hz  = 0;
     Time500Hz   = 0;
   
-    Temp_AMP64P		= 0;
+   
 
     Gyro.Log    	= 0;
     Gyro.LogPLC		= 0;
@@ -190,12 +369,77 @@
                 else 			    Spi.DAC_A = ((((int)(GyroP.Str.DAC_current_Work+0x7fff)  & 0xffff)+22544)*0.65);	
                 Gyro.DacIn				= GyroP.Str.DAC_current_Work;
     	//		Gyro.TermoNKU			= GyroP.Str.TermoNKU<<2;
-                Gyro.Firmware_Version	= 0x11;
+                Gyro.Firmware_Version	= 17543;
     		//	Spi.DAC_A				= GyroP.Str.DAC_A;
     	   	//	Spi.DAC_B 				= GyroP.Str.DAC_B;
     			Gyro.Gain_Sin 			= GyroP.Str.Gain_Sin;
     			Gyro.Gain_Cos 			= GyroP.Str.Gain_Cos;
     			Out_G_photo(Gyro.Gain_Sin, Gyro.Gain_Cos); 	
+    			
+    		
+    			TermoCorrStatic.TermoTempStatic.Str.TermoTempStatic_0  = GyroP.Str.TStatic_0; 
+				TermoCorrStatic.TermoTempStatic.Str.TermoTempStatic_1  = GyroP.Str.TStatic_1;   
+				TermoCorrStatic.TermoTempStatic.Str.TermoTempStatic_2  = GyroP.Str.TStatic_2;   
+				TermoCorrStatic.TermoTempStatic.Str.TermoTempStatic_3  = GyroP.Str.TStatic_3;   
+				TermoCorrStatic.TermoTempStatic.Str.TermoTempStatic_4  = GyroP.Str.TStatic_4;   
+				TermoCorrStatic.TermoTempStatic.Str.TermoTempStatic_5  = GyroP.Str.TStatic_5;   
+				TermoCorrStatic.TermoTempStatic.Str.TermoTempStatic_6  = GyroP.Str.TStatic_6;   
+				TermoCorrStatic.TermoTempStatic.Str.TermoTempStatic_7  = GyroP.Str.TStatic_7;   
+				TermoCorrStatic.TermoTempStatic.Str.TermoTempStatic_8  = GyroP.Str.TStatic_8;   
+				TermoCorrStatic.TermoTempStatic.Str.TermoTempStatic_9  = GyroP.Str.TStatic_9;   
+				TermoCorrStatic.TermoTempStatic.Str.TermoTempStatic_10 = GyroP.Str.TStatic_10;  
+				TermoCorrStatic.TermoTempStatic.Str.TermoTempStatic_11 = GyroP.Str.TStatic_11;  
+				TermoCorrStatic.TermoTempStatic.Str.TermoTempStatic_12 = GyroP.Str.TStatic_12;  
+				TermoCorrStatic.TermoTempStatic.Str.TermoTempStatic_13 = GyroP.Str.TStatic_13;     
+				
+				
+   				TermoCorrStatic.TermoDeltaStatic.Str.TermoDeltaStatic_0  = Float(GyroP.Str.TermoDeltaStatic_0, GyroP.Str.TermoDeltaStatic_1 );                				
+				TermoCorrStatic.TermoDeltaStatic.Str.TermoDeltaStatic_1  = Float(GyroP.Str.TermoDeltaStatic_2, GyroP.Str.TermoDeltaStatic_3 );           	
+                TermoCorrStatic.TermoDeltaStatic.Str.TermoDeltaStatic_2  = Float(GyroP.Str.TermoDeltaStatic_4, GyroP.Str.TermoDeltaStatic_5 );
+				TermoCorrStatic.TermoDeltaStatic.Str.TermoDeltaStatic_3  = Float(GyroP.Str.TermoDeltaStatic_6, GyroP.Str.TermoDeltaStatic_7 );            
+				TermoCorrStatic.TermoDeltaStatic.Str.TermoDeltaStatic_4  = Float(GyroP.Str.TermoDeltaStatic_8, GyroP.Str.TermoDeltaStatic_9 );              	
+				TermoCorrStatic.TermoDeltaStatic.Str.TermoDeltaStatic_5  = Float(GyroP.Str.TermoDeltaStatic_10,GyroP.Str.TermoDeltaStatic_11);              
+				TermoCorrStatic.TermoDeltaStatic.Str.TermoDeltaStatic_6  = Float(GyroP.Str.TermoDeltaStatic_12,GyroP.Str.TermoDeltaStatic_13);              
+				TermoCorrStatic.TermoDeltaStatic.Str.TermoDeltaStatic_7  = Float(GyroP.Str.TermoDeltaStatic_14,GyroP.Str.TermoDeltaStatic_15);               
+				TermoCorrStatic.TermoDeltaStatic.Str.TermoDeltaStatic_8  = Float(GyroP.Str.TermoDeltaStatic_16,GyroP.Str.TermoDeltaStatic_17);              
+				TermoCorrStatic.TermoDeltaStatic.Str.TermoDeltaStatic_9  = Float(GyroP.Str.TermoDeltaStatic_18,GyroP.Str.TermoDeltaStatic_19);             
+				TermoCorrStatic.TermoDeltaStatic.Str.TermoDeltaStatic_10 = Float(GyroP.Str.TermoDeltaStatic_20,GyroP.Str.TermoDeltaStatic_21);              
+				TermoCorrStatic.TermoDeltaStatic.Str.TermoDeltaStatic_11 = Float(GyroP.Str.TermoDeltaStatic_22,GyroP.Str.TermoDeltaStatic_23);          
+				TermoCorrStatic.TermoDeltaStatic.Str.TermoDeltaStatic_12 = Float(GyroP.Str.TermoDeltaStatic_24,GyroP.Str.TermoDeltaStatic_25);               
+				TermoCorrStatic.TermoDeltaStatic.Str.TermoDeltaStatic_13 = Float(GyroP.Str.TermoDeltaStatic_26,GyroP.Str.TermoDeltaStatic_27);               
+				
+										
+				TermoCorrDynamic.TermoTempDynamic.Str.TermoTempDynamic_0  = GyroP.Str.TDCool_0;   
+				TermoCorrDynamic.TermoTempDynamic.Str.TermoTempDynamic_1  = GyroP.Str.TDCool_1;   
+				TermoCorrDynamic.TermoTempDynamic.Str.TermoTempDynamic_2  = GyroP.Str.TDCool_2;  
+				TermoCorrDynamic.TermoTempDynamic.Str.TermoTempDynamic_3  = GyroP.Str.TDCool_3;   
+				TermoCorrDynamic.TermoTempDynamic.Str.TermoTempDynamic_4  = GyroP.Str.TDCool_4;   
+				TermoCorrDynamic.TermoTempDynamic.Str.TermoTempDynamic_5  = GyroP.Str.TDCool_5;   
+				TermoCorrDynamic.TermoTempDynamic.Str.TermoTempDynamic_6  = GyroP.Str.TDCool_6;   
+				TermoCorrDynamic.TermoTempDynamic.Str.TermoTempDynamic_7  = GyroP.Str.TDCool_7;   
+				TermoCorrDynamic.TermoTempDynamic.Str.TermoTempDynamic_8  = GyroP.Str.TDCool_8;   
+				TermoCorrDynamic.TermoTempDynamic.Str.TermoTempDynamic_9  = GyroP.Str.TDCool_9;  
+				TermoCorrDynamic.TermoTempDynamic.Str.TermoTempDynamic_10 = GyroP.Str.TDCool_10;  
+				TermoCorrDynamic.TermoTempDynamic.Str.TermoTempDynamic_11 = GyroP.Str.TDCool_11; 
+				TermoCorrDynamic.TermoTempDynamic.Str.TermoTempDynamic_12 = GyroP.Str.TDCool_12; 
+				TermoCorrDynamic.TermoTempDynamic.Str.TermoTempDynamic_13 = GyroP.Str.TDCool_13;    				
+
+
+   
+				TermoCorrDynamic.TermoDeltaDynamic.Str.TermoDeltaDynamic_0  = Float(GyroP.Str.TermoDynamicDataHeat0, GyroP.Str.TermoDynamicDataHeat1 );        
+				TermoCorrDynamic.TermoDeltaDynamic.Str.TermoDeltaDynamic_1  = Float(GyroP.Str.TermoDynamicDataHeat2, GyroP.Str.TermoDynamicDataHeat3 );                 
+				TermoCorrDynamic.TermoDeltaDynamic.Str.TermoDeltaDynamic_2  = Float(GyroP.Str.TermoDynamicDataHeat4, GyroP.Str.TermoDynamicDataHeat5 );				
+				TermoCorrDynamic.TermoDeltaDynamic.Str.TermoDeltaDynamic_3  = Float(GyroP.Str.TermoDynamicDataHeat6, GyroP.Str.TermoDynamicDataHeat7 );                
+				TermoCorrDynamic.TermoDeltaDynamic.Str.TermoDeltaDynamic_4  = Float(GyroP.Str.TermoDynamicDataHeat8, GyroP.Str.TermoDynamicDataHeat9 );                
+				TermoCorrDynamic.TermoDeltaDynamic.Str.TermoDeltaDynamic_5  = Float(GyroP.Str.TermoDynamicDataHeat10,GyroP.Str.TermoDynamicDataHeat11);                
+				TermoCorrDynamic.TermoDeltaDynamic.Str.TermoDeltaDynamic_6  = Float(GyroP.Str.TermoDynamicDataHeat12,GyroP.Str.TermoDynamicDataHeat13);                
+				TermoCorrDynamic.TermoDeltaDynamic.Str.TermoDeltaDynamic_7  = Float(GyroP.Str.TermoDynamicDataHeat14,GyroP.Str.TermoDynamicDataHeat15);                
+				TermoCorrDynamic.TermoDeltaDynamic.Str.TermoDeltaDynamic_8  = Float(GyroP.Str.TermoDynamicDataHeat16,GyroP.Str.TermoDynamicDataHeat17);                
+				TermoCorrDynamic.TermoDeltaDynamic.Str.TermoDeltaDynamic_9  = Float(GyroP.Str.TermoDynamicDataHeat18,GyroP.Str.TermoDynamicDataHeat19);                
+				TermoCorrDynamic.TermoDeltaDynamic.Str.TermoDeltaDynamic_10 = Float(GyroP.Str.TermoDynamicDataHeat20,GyroP.Str.TermoDynamicDataHeat21);                
+				TermoCorrDynamic.TermoDeltaDynamic.Str.TermoDeltaDynamic_11 = Float(GyroP.Str.TermoDynamicDataHeat22,GyroP.Str.TermoDynamicDataHeat23);                
+				TermoCorrDynamic.TermoDeltaDynamic.Str.TermoDeltaDynamic_12 = Float(GyroP.Str.TermoDynamicDataHeat24,GyroP.Str.TermoDynamicDataHeat25);                
+				TermoCorrDynamic.TermoDeltaDynamic.Str.TermoDeltaDynamic_13 = Float(GyroP.Str.TermoDynamicDataHeat26,GyroP.Str.TermoDynamicDataHeat27);                                                      
    }
     else
     {