forkd

Dependencies:   mbed

Fork of LG2 by Dmitry Kovalev

Revision:
222:7de7b3bf3a1d
Parent:
220:04c54405b82d
Child:
225:f8fee6c586cc
--- a/MTimer.c	Mon Oct 23 05:31:10 2017 +0000
+++ b/MTimer.c	Mon Nov 20 13:06:31 2017 +0000
@@ -30,20 +30,60 @@
 
 	}
 }
+
+
+
+
+void JumpMod(void)
+{
+	static int JumpFlag=0;
+	switch(JumpFlag) {
+	    case 0:
+	    	Spi.DAC_B-=Gyro.JumpDelta;
+		    JumpFlag=1;
+	    break;
+	    case 1:
+	        Spi.DAC_B+=Gyro.JumpDelta;
+		  	JumpFlag=0;
+	    break;
+	    }
+	
+}
+
+
 /////////////////////////////////////////////////////
 ///////////////////// 1Hz ///////////////////////////
 /////////////////////////////////////////////////////
+
 void Event_1Hz(void)// событие раз в 1 Гц
-{ static int tempdac=0,tempdac1;
+{ 
+	static int tempdac=0,tempdac1,JumpTimer=0;
     if (Event1Hz)	
-    {       /*sprintf((Time),"%d %d  %d\r\n",Spi.DAC_B,AMPSUM_DESP,Spi.DAC_A);
-            WriteCon(Time);*/
-    	if(Gyro.ShowMod2)
+    {
+   /*  sprintf((Time),"%d     %d\r\n",Gyro.PLCDelay,   GyroP.Str.PLCDelay);
+     WriteCon(Time);*/
+     if(Gyro.RgConA&0x4) JumpTimer=0;
+     else
+     	{   
+     	/*sprintf((Time),"%d %d\r\n",Gyro.RgConA,JumpTimer);
+        WriteCon(Time);*/
+     	 JumpTimer++;
+    	 if(JumpTimer>(Gyro.TimeToJump-1))
+     		{
+     		Gyro.PLCDelay	= GyroP.Str.PLCDelay/10; 
+     		JumpMod();
+     		JumpTimer=0;
+    	 	}
+     	}
+     
+     
+    	/*if(Gyro.ShowMod2)
     	{
     		sprintf((Time),"%d %d  %d\r\n",Spi.DAC_B,AMPSUM_DESP,Spi.DAC_A);
             WriteCon(Time);
     		Spi.DAC_B+=200;
-    	}
+    	}*/
+
       Discharg();
       BackLight();
       Gyro.Rate1_Event = 1; 
@@ -51,9 +91,9 @@
       Time1Hz++; 
   //    sprintf((Time),"%d \r\n",Gyro.ModeOut );
  //     WriteCon(Time);
-      
-	}
+    }
 }
+
 /////////////////////////////////////////////////////
 ///////////////////// 1kHz //////////////////////////
 /////////////////////////////////////////////////////
@@ -73,13 +113,13 @@
     }
 }
 
-void Event_2KHz(void)// событие раз в 1 кГц
+void Event_5KHz(void)// событие раз в 5 кГц
 {
 	int temp=0;
-
-    if (Event2K) 
-    {  
-        Event2K --;
+    if (Event5K) 
+    {   
+        Gyro.EvenRate5K++;
+        Event5K --;
     }
 }
 void Event_500Hz(void)// событие раз в 500 Гц
@@ -231,7 +271,7 @@
     Time500Hz++;
     Time250Hz++;
     Time100K++;
-    Time2K++;
+    Time5K++;
     //Time2K++;
  //   Time250Hz++;
  
@@ -247,10 +287,10 @@
              // LoopOn
          }
          
-         if (Time2K== 10000)
-         {  Time2K=0;
+         if (Time5K > 800)
+         {  Time5K = 0;
            //Time100K = 0;
-            Event2K ++;
+            Event5K ++;
          }
          
         if (Time500Hz > 200)