fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
214:4c70e452c491
Parent:
211:ac8251b067d2
Child:
215:b58b887fd367
--- a/Global.c	Wed Jul 26 13:24:39 2017 +0000
+++ b/Global.c	Wed Aug 16 09:00:25 2017 +0000
@@ -10,6 +10,7 @@
 unsigned int 	Event250Hz;
 unsigned int 	Event500Hz;
 unsigned int 	Event1K;
+unsigned int 	Event1250Hz;
 unsigned int 	Event2K;
 unsigned int 	Event100K;
 unsigned int 	EventVibro;
@@ -19,6 +20,7 @@
 
 unsigned int 	Time100K;
 unsigned int 	Time1K;
+unsigned int 	Time1250Hz;
 unsigned int 	Time2K;
 unsigned int 	Time500Hz;
 unsigned int 	Time250Hz;
@@ -47,6 +49,7 @@
     Time_UART	= 0;
     Time_Sec	= 0;
     Time_vibro	= 0;
+    Time1250Hz  = 0;
     Time_1kHz   = 0;
     Event1Hz 	= 0;
     Event1K 	= 0;
@@ -118,8 +121,8 @@
                 Gyro.PLC_Phase          = GyroP.Str.PLC_Phase;
     			Gyro.ModAmp				= GyroP.Str.ModAmp;
                 Gyro.FrqPhase			= GyroP.Str.FrqPhase;
-    			Gyro.AmpPer				= GyroP.Str.AmpPer;
-    			Gyro.Amp    			= GyroP.Str.AmpPer<<16;
+    			Gyro.AmpPer				= 700;//GyroP.Str.AmpPer*100;
+    			Gyro.Amp    			=(GyroP.Str.AmpPer<<17);
     		    Gyro.AmpSpeed 			= GyroP.Str.AmpSpeed;
     			Gyro.AmpPerDel			= GyroP.Str.AmpPerDel;
     			temp=((GyroP.Str.VB_Fdf_Hi<<16) | GyroP.Str.VB_Fdf_Lo);
@@ -129,8 +132,14 @@
     			Gyro.AmpPerMax 			= GyroP.Str.AmpPerMax;
     			Gyro.AmpMin 			= GyroP.Str.AmpMin;
     			Gyro.AmpTD  			= GyroP.Str.AmpTD;
-    			
-               
+    		    F_vib=(103200000<<5)/((Gyro.Frq)>>10);//периуд вибро.
+                T_vibP = F_vib/10000;
+                T_vib_1 = Gyro.AmpPer * T_vibP;
+        	 	T_vib_2 = T_vibP * (10000-Gyro.AmpPer);
+        LPC_MCPWM->LIM1 = F_vib;
+        LPC_MCPWM->LIM2 = F_vib;
+        LPC_MCPWM->MAT1 =  T_vib_1;
+        LPC_MCPWM->MAT2 =  T_vib_2;
                 if(Gyro.LG_Type==1){ 
                  Gyro.HFO_Max=((int)(GyroP.Str.DAC_current_Work*0.67)-2000);
                  Gyro.HFO_Min=((int)(GyroP.Str.DAC_current_Start*0.67)-2000);
@@ -189,6 +198,15 @@
     Gyro.DAC_current_Work	=50000;							//3
 	Gyro.DAC_current_Start	=41000;      
 
+
+		    F_vib=(103200000<<5)/((Gyro.Frq)>>10);//периуд вибро.
+                T_vibP = F_vib/10000;
+                T_vib_1 = Gyro.AmpPer * T_vibP;
+        	 	T_vib_2 = T_vibP * (10000-Gyro.AmpPer);
+        LPC_MCPWM->LIM1 = F_vib;
+        LPC_MCPWM->LIM2 = F_vib;
+        LPC_MCPWM->MAT1 =   T_vib_1;
+        LPC_MCPWM->MAT2 =  T_vib_2;
     }
   	Spi.DAC_B=Gyro.PLC_Start;
     switch(Gyro.My_Addres){//смещение поджига и подсветки в зависимости от адреса ГЛД
@@ -238,10 +256,18 @@
 }
 
 void GLD_Init(void)
-{    int Dummy; // инициализация мусорки для очистки буфера приема.
+{    
+				int Dummy; // инициализация мусорки для очистки буфера приема.
+              
+
+
+
+
+
     /////////////////////////////////////////////////////
     /////////////инициализация энкодера//////////////////
     /////////////////////////////////////////////////////
+    
     LPC_SC->PCONP |= (1<<18);//0x00040000;		включение квадратурного энкодера.
     LPC_SC->PCLKSEL1 |= 0x00000001;	   // выбор частоты для кв.э. CLK=103MHz
     LPC_PINCON->PINSEL3 &= ~0x4100;
@@ -252,7 +278,7 @@
     LPC_QEI->MAXPOS = MAX_QEI_CNT;	//LPC_QEI->"регистор максимального положения" = 2147483646
     LPC_QEI->FILTER = 2;		    // фильтр( ?? )
     LPC_QEI->CON = 0xF;				//сбросить в ноль все счетчики кв.э. (скорость, направление, позицию и тд)
-    LPC_QEI->CONF = (0<<2) |(0<<1);	//Quadrature inputs, no inverting,only A pulses are counted
+    LPC_QEI->CONF = (1<<2) |(0<<1);	//Quadrature inputs, no inverting,only A pulses are counted
 
     LPC_QEI->CLR = 0x1fff; 			 //r. сбросить все прерывания
     LPC_QEI->IEC = 0x1fff;			 //r. запретить прерывание при изменении направления
@@ -365,7 +391,7 @@
     /////////////////////////////////////////////////////
     
     LPC_PINCON->PINSEL0  &= ~(0x00<<28);
-    LPC_PINCON->PINSEL0  |=  (0x00<<28);   // а нужно, ведь по умолчаниб у них 0 функция. попробоввать без них потом убрать
+    LPC_PINCON->PINSEL0  |=  (0x00<<28);   
     LPC_PINCON->PINMODE0 |=  (0x3<<28);
     LPC_GPIO1->FIODIR    |=  (1<<30);
     /////////////////////////////////////////////////////