Dmitry Kovalev
/
LGfiltr
forkd
Fork of LGstaandart by
Diff: Global.c
- 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 {