forkd

Dependencies:   mbed

Fork of LGstaandart by Dmitry Kovalev

Revision:
205:775d54fdf646
Parent:
203:3a6615de9581
Child:
206:00341a03e05c
--- a/Global.c	Fri Nov 25 06:22:37 2016 +0000
+++ b/Global.c	Mon Dec 19 14:08:31 2016 +0000
@@ -1,7 +1,5 @@
 #include "Global.h"
 
-
-
 unsigned int 	VibroReg = 0;   //регистр состаяния вибропривода.
 unsigned long	Global_Time, Time_UART,Time_Sec,Time_vibro,Time_1kHz;
 float t1;
@@ -23,7 +21,7 @@
 unsigned int 	Clock1Hz;
 unsigned int    ShiftD;
 unsigned int    ShiftL;
-unsigned int    EventMod;
+//unsigned int    EventMod;
 
 
 __asm void boot_jump( uint32_t address ){
@@ -32,24 +30,12 @@
    BX R0
 }
 
-void GLD_Init(void)
-{    
-     InitMOD();
-	 Gyro.DropDelayGLD = DropDelayGLD_0;//задержка на выдачу 45 микросекунд для любого адреса ГЛД
-	 int Dummy; // инициализация мусорки для очистки буфера приема.
-/////////////////////////////////////////////
-///////////инициализация таймеров////////////
-/////////////////////////////////////////////
-     Init_TIM1(TIME_INTERVAL ); //Timer 1: CCLK / 7812 = 12800.819Hz; Vibro: Timer1/32 = 400.025Hz; 10ms???
-	 Init_TIM2();				//Timer 2: CCLK / 4 / 250 = 100kHz
-/////////////////////////////////////////////
-/////////////////////////////////////////////	
+void Param_init(void)
+{
+    InitMOD();
 	Gyro.RgConA = 0xffff;
 	Gyro.RgConB = 0xffff;
-/////////////////////////////////////////////
-///////////обнуление счетчиков///////////////
-/////////////////////////////////////////////
-    Global_Time	= 0;
+	Global_Time	= 0;
     Time_UART	= 0;
     Time_Sec	= 0;
     Time_vibro	= 0;
@@ -66,102 +52,56 @@
     ShiftL		= 0;
     Event500Hz  = 0;
     Time500Hz   = 0;
-    
-/////////////////////////////////////////////
-/////////////////////////////////////////////
-
- // ModArray[]=[32,64,96,128,256,384,448,480,496,512,512];
-    /////////////////////////////////////////////////////
-    /////////////обнуление переменых для/////////////////
-    ///////////расчета значений буферов ВП///////////////
-    /////////////////////////////////////////////////////
-    /////////////инициализация переменных в структ вибро/////////////////
- 
-    Gyro.FlashMod=0;
-    Gyro.FrqHZ=388;
-    Gyro.Frq = Gyro.FrqHZ<<16;
-    Gyro.FrqHZmin = 350<<16;
-    Gyro.FrqHZmax = 450<<16;
-    Gyro.FrqChengSpeed=100;
-    Gyro.ModAmp=250;
-    Gyro.AmpPer=40;
-    Gyro.AmpPerMin = 1;
-    Gyro.AmpPerMax = 90;
-    Gyro.AmpSpeed = 1;
-    Gyro.AmpPerDel=2;
-    Gyro.AmpTarget =3700;// целевая амплитуда ВП
-    Gyro.Amp  = 30*65535;
-    Gyro.AmpMin =20;// минимальное  значение AmpT;5
-    Gyro.AmpTD =8;////////////////////////////////////////////////////////
+    PulseADC_64Point= 0;   
+    Temp_AMP64P		= 0;
+    Temp_ADC_2		= 0;
+    Temp_ADC_3		= 0;
+    Temp_ADC_4		= 0;
+    Temp_ADC_5		= 0;
+    Gyro.Log    	= 0;
+    Gyro.LogPLC		= 0;
+    Gyro.PLC_Lern 	= 0;
     Gyro.CuruAngle  = 0;
     Pulse_8Point 	= 0;
     Pulse_16Point 	= 0;
     Pulse_16PointD	= 0;
     Pulse_32Point 	= 0;
- 
-    Gyro.flag=1;
-    /////////////////////////////////////////////////////
-    /////////////предварительное заполнение//////////////
-    ////////////////буферов вибропривода/////////////////
-    /////////////////////////////////////////////////////
-    for (int i = 0; i < 32; i++ ) {
-        Buff_16Point[i] 	= 0x00;
-        Buff_8Point[i] 		= 0x00;
-        Buff_32Point[i] 	= 0x00;
-        Buff_16PointD[i] 	= 0x00;
-        GyroP.Array[i]      = 0x00;
-    }
-    for (int i = 0; i < 64; i++ ) {
-        BuffADC_16Point[CountV64]=0x00;
-        BuffADC_32Point[CountV64]=0x00;
-        BuffADC_32PointD[CountV64]=0x00;
-        BuffADC_64Point[CountV64]=0x00; 
-    }
-    PulseADC_64Point=0;
-    ////////////////////////////////////////////////////
-    ////////////////////////////////////////////////////
-	/////////////////////////////////////////////////////
-    /////////////обнуление переменых для/////////////////
-    //////////////////переменных АЦП/////////////////////
-    /////////////////////////////////////////////////////
-    Temp_AMP64P=0;
-    Temp_ADC_2=0;
-    Temp_ADC_3=0;
-    Temp_ADC_4=0;
-    Temp_ADC_5=0;
-  
-  
-  
-    Gyro.Gain_Sin =115;
-    Gyro.Gain_Cos =175;
+    Gyro.FlashMod=0;
     
-	
-  
-    /////////////////////////////////////////////////////
-    /////////////предварительное заполнение//////////////
-    /////////////////////буферов АЦП/////////////////////
-    /////////////////////////////////////////////////////
-    for (int i = 0; i < 32; i++ ) {
-        Buff_ADC_1[i] 		= 0;	// ампл ацп.
-        Buff_ADC_2[i] 		= 0;
-        Buff_ADC_3[i] 		= 0;
-        Buff_ADC_4[i] 		= 0;
-      }
-       for (int i = 0; i < 256; i++ ) {
-       Buff_ADC_5[i]= 0;
-    }
-     for (int i = 0; i < 256; i++ ) {
-       Buff_AMP64P[i]= 0;
-    }
-     for (int i = 0; i < 256; i++ ) {
-       Buff_AMP[i]= 0;
-    }
-    ////////////////////////////////////////////////////
-    ////////////////////////////////////////////////////
+    Gyro.DropDelayGLD = DropDelayGLD_0;//задержка на выдачу 45 микросекунд для любого адреса ГЛД
+   
+/////////////////////////////////////////////
+///////////инициализация таймеров////////////
+/////////////////////////////////////////////
+Init_TIM1(TIME_INTERVAL ); //Timer 1: CCLK / 7812 = 12800.819Hz; Vibro: Timer1/32 = 400.025Hz; 10ms???
+Init_TIM2();				//Timer 2: CCLK / 4 / 250 = 100kHz
+/////////////////////////////////////////////
+    /////////////инициализация переменных в структ вибро/////////////////
 
-    Gyro.SOC_Out=0xDD;
-    Gyro.Firmware_Version	= 0x11; //версия программы
-    Gyro.GLD_Serial 		= 0xD7; //серийный номер
+    Gyro.FrqHZ			= 388;
+    Gyro.Frq 			= Gyro.FrqHZ<<16;
+    Gyro.FrqHZmin 		= 350<<16;
+    Gyro.FrqHZmax		= 450<<16;
+    Gyro.FrqChengSpeed	= 100;
+    Gyro.ModAmp			= 250;
+    Gyro.AmpPer			= 40;
+    Gyro.AmpPerMin 		= 1;
+    Gyro.AmpPerMax 		= 90;
+    Gyro.AmpSpeed 		= 1;
+    Gyro.AmpPerDel		= 5;
+    Gyro.AmpTarget  	= 5800;// целевая амплитуда ВП
+    Gyro.Amp    		= 30*65535;
+    Gyro.AmpMin 		= 15;// минимальное  значение AmpT;5
+    Gyro.AmpTD  		= 30;////////////////////////////////////////////////////////
+    Gyro.TermoNKU		= 44700;//48824*0,0061-273=25 С°
+    Spi.DAC_A			= 41000;	
+    Spi.DAC_B 			= 35220;
+    Gyro.PLC_Error2Mode = 1400; //для записи мод  
+    Gyro.Gain_Sin 		= 115;
+    Gyro.Gain_Cos 		= 175; 
+    Gyro.SOC_Out    	= 0xDD;
+    Gyro.Firmware_Version	= 0x9; //версия программы
+    Gyro.GLD_Serial 		= 123; //серийный номер
     Gyro.My_Addres			= 0; //адрес глд
     
     switch(Gyro.My_Addres){//смещение поджига и подсветки в зависимости от адреса ГЛД
@@ -181,8 +121,8 @@
     Gyro.Discharg =  StartDischarg  << ShiftStart3;
     Gyro.BackLight = StartBackLight << ShiftStart3;
     break;
-}
-
+    }
+    
     /////////////////////////////////////////////////////
     //////инициализация цап_LPC (р0.26 цап выход)////////
     /////////////////////////////////////////////////////
@@ -191,45 +131,27 @@
     ////////////начальное значение для цап///////////////
     //////////////////середина шкалы/////////////////////
     /////////////////////////////////////////////////////
-   
-    Gyro.Ktermo=1;//                    K°
-    Gyro.TermoNKU=44700;//48824*0,0061-273=25 С°
-    Spi.DAC_A = 41000;
-    
-    Spi.DAC_B = 35220;
-   
-    Gyro.StrayHZ		= 200;
-    Gyro.StrayHZ_flag	= 0;
-    Gyro.LogHZ 		    = 0;
-    
-    Gyro.StrayPLC_Pls		=  1000;
-    Gyro.StrayPLC_Mns		= -1000;
-    Gyro.StrayPLC_2Mode	= 2000;
-    Gyro.StrayPLC_flag	= 0;
-    Gyro.LogPLC 		= 0;
-    Gyro.PLC_Lern =  0;
-    Gyro.ModJump = 0;
-    Gyro.PLC_Error2Mode =1400; //для записи мод  
-  //Gyro.PLC_Error2Mode = 65;  //стандартное включение прибора регулировка (65 начальная задержка для поиска АМП мах)
+
     ////////////////////////////////////////////////////
     /////////////поправочный коэффициент/////////////////
     /////////для цапов (граници +-12.5 вольт)////////////
     /////////////////////////////////////////////////////
     K_DAC=65535.0/(65535.0+(deltaDAC+deltaDAC/2));
     K_DAC=0.8;
-    /////////////////////////////////////////////////////
-    /////////////////////////////////////////////////////
-
-    secPuls =0;// переменная для конопки поджига аск глд(временная)
 
     /////////////////////////////////////////////////////
     /////////////обнуление переменых для/////////////////
     ///////////////переменных энкодера///////////////////
     /////////////////////////////////////////////////////
+    secPuls =0;// переменная для конопки поджига аск глд(временная)
     Gyro.CaunPlus	=0;
     Gyro.CaunMin	=0;
     Cur_QEI=0;
     Last_QEI=0;
+}
+
+void GLD_Init(void)
+{    int Dummy; // инициализация мусорки для очистки буфера приема.
     /////////////////////////////////////////////////////
     /////////////инициализация энкодера//////////////////
     /////////////////////////////////////////////////////
@@ -477,6 +399,8 @@
 	LPC_GPIO0->FIOCLR |= (1<<23);		// set CS for DAC 
     while (LPC_SSP1->SR & RX_SSP_notEMPT)
 	Dummy = LPC_SSP1->DR;	/* clear the RxFIFO */
+//Gyro=GyroP.str;
+//Gyro = (*(struct Gyro*)(&GyroP.Str));
 
 }