fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
197:7a05523bf588
Parent:
196:f76dbc081e63
Child:
200:1df682165694
Child:
201:76f4123bf22a
Child:
203:3a6615de9581
--- a/MTimer.c	Fri Sep 23 05:34:50 2016 +0000
+++ b/MTimer.c	Wed Oct 19 10:55:05 2016 +0000
@@ -7,12 +7,10 @@
 #include "SPI.h"
 #include "InputOutput.h"
 
-
-
-//unsigned int CountV=0;
-//unsigned int CountVf=0 ;
+unsigned int CountV64=0;
 unsigned int CountV31=0;
-unsigned int CountV255=0,f ;
+unsigned int CountV255=0;
+unsigned int f;
 int loop=0;
 
 /////////////////////////////////////////////////////
@@ -34,8 +32,7 @@
 }
 /////////////////////////////////////////////////////
 ///////////////////// 1kHz //////////////////////////
-/////////////////////////////////////////////////////LoopOn  LPC_GPIO1->FIOSET  = (1<<30);
-//#define  LoopOff LPC_GPIO1->FIOCLR  = (1<<30);
+/////////////////////////////////////////////////////
 void Event_1KHz(void)// событие раз в 1 кГц
 {
     if (Event1K) 
@@ -53,12 +50,18 @@
 void Event_500Hz(void)// событие раз в 500 Гц
 {
 	if(Event500Hz)
+	{   Event500Hz--;
+		Gyro.Event_500Hz=1;// Event 500Гц  выдачи данных для постройки графика управления вибро
+	}
+}
+
+
+void Event_250Hz(void)// событие раз в 500 Гц
+{
+	if(Event250Hz)
 	{   
-		Event500Hz--;
-		//Gyro.Delta500_Event=1;
-		Gyro.Event_500Hz=1;// Event 500Гц  выдачи данных для постройки графика управления вибро
-		//Gyro.Delta_Bins_Event500=1;
-		//Gyro.B_Delta_Event500=1;
+		Event250Hz--;
+	    Gyro.EventMOD=1;// Event 500Гц  выдачи данных для постройки графика управления вибро
 	}
 }
 /////////////////////////////////////////////////////
@@ -68,24 +71,12 @@
 {
         
     if (Event100K)	{
+       
         Event100K --;
-        Time500Hz++;
-        
+      
         if (OutBufCon1Count)OutBufCon1Count--;  // обратный отсчет для управления ногой и формирование задержки на выдачу
        
          PinCheng();	// чтение регистра состояния выводов(вибро, полсветка, поджиг, LED) и управление выводами.
-        
-        Time100K++;
-        if (Time100K == 100)
-         {
-            Time100K = 0;
-            Event1K ++;
-         }
-        if (Time500Hz > 200) 
-         {
-            Time500Hz -= 200;
-            Event500Hz ++;
-         }
     }
 }
 /////////////////////////////////////////////////////
@@ -143,8 +134,6 @@
     return 1;
 }
 
-
-
 //////////////////////////////////////////////////////////////////////
 /////////////////////////включение таймера 2//////////////////////////
 //////////////////////////////////////////////////////////////////////
@@ -159,41 +148,58 @@
 /////////////////////////прерывание таймера 1//////////////////////////
 //////////////////////////////////////////////////////////////////////
 __irq void TIMER1_IRQHandler (void)//13.27 kHz
-{    
+{   // LoopOn
     ResetCS(ADC);					  	 	//prepare ADC for sampling
     SetDAC(DAC);
 
     CountV255++;							// инкремент счеттчика
     CountV255 &= 0xff;						// ОБРЕЗАНИЕ СЧЕТЧИКА 
-    CountV31 =CountV255 & 0x1f;				// малый счетчик
-
+    CountV64 = CountV255 & 0x3f;
+    CountV31 = CountV255 & 0x1f;			// малый счетчик
+   
     D_QEI();								//чтение данных по счетчику
     cheng();		             			// выставление флагов в 32 тактном цикле.
 
 
     SetCS(ADC);					    		//start ADC sampling
     ResetDAC(DAC);
-	SPI_Exchange(); 						//Чтение ADS_SPI
+	SPI_Exchange(); 						//Чтение ADC_SPI
 
     LPC_TIM1->IR = 1;
      
+       // LoopOff
+     
 }
 
-
-
-
-
-
 ///////////////////////////////////////////////////////////////////////
 /////////////////////////прерывание таймера 2//////////////////////////
 ///////////////////////////////////////////////////////////////////////
 __irq void TIMER2_IRQHandler (void)
-{ 
+{  
     LPC_TIM2->IR = 1;
     Global_Time++;
     if(Time_UART) Time_UART--;
     Time_vibro++;
     Gyro.VibroOutF=1;
     Event100K ++;  
-    
+    Time500Hz++;
+    Time100K++;
+    Time250Hz++;
+        if (Time100K == 100)
+         {  
+            Time100K = 0;
+            Event1K ++;
+       
+         }
+        if (Time500Hz > 200) 
+         {  
+            Time500Hz -= 200;
+            Event500Hz ++; 
+             
+         }
+        if (Time250Hz > 400) 
+         { 
+            Time250Hz -= 400;
+            Event250Hz ++;
+         }
 }
\ No newline at end of file