fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
201:76f4123bf22a
Parent:
197:7a05523bf588
Child:
202:c03b7b128e11
--- a/MTimer.c	Wed Oct 19 10:55:05 2016 +0000
+++ b/MTimer.c	Wed Nov 02 14:05:24 2016 +0000
@@ -10,7 +10,7 @@
 unsigned int CountV64=0;
 unsigned int CountV31=0;
 unsigned int CountV255=0;
-unsigned int f;
+unsigned int f,f1;
 int loop=0;
 
 /////////////////////////////////////////////////////
@@ -22,13 +22,16 @@
 void Event_1Hz(void)// событие раз в 1 Гц
 {   int i,t;
     if (Event1Hz)	
-    {  
+    { 
+     
+      
        Gyro.Rate1_Event = 1; 
        Event1Hz--;
        Time1Hz++;
        Discharg ();
        BackLight();
-     }
+    //  LoopOff
+      }
 }
 /////////////////////////////////////////////////////
 ///////////////////// 1kHz //////////////////////////
@@ -39,31 +42,42 @@
     {
         Event1K --;
         Time1K++;//первый ++ работает каждые 125 (event100kHz)второй был в 100 кГц
- 
+        if(Gyro.Start) Gyro.Start--;
+         
         if (Time1K == 1000) 
         {
+            LoopOn
             Time1K = 0;
             Event1Hz ++;
+            LoopOff
         }
+     
     }
 }
 void Event_500Hz(void)// событие раз в 500 Гц
 {
 	if(Event500Hz)
-	{   Event500Hz--;
+	{//   LoopOn
+	    Event500Hz--;
 		Gyro.Event_500Hz=1;// Event 500Гц  выдачи данных для постройки графика управления вибро
+	//	LoopOff
 	}
 }
 
 
-void Event_250Hz(void)// событие раз в 500 Гц
+void Event_250Hz(void)// событие раз в 200 Гц(модулятор)
 {
 	if(Event250Hz)
-	{   
-		Event250Hz--;
-	    Gyro.EventMOD=1;// Event 500Гц  выдачи данных для постройки графика управления вибро
+	{ //  LoopOn
+	   Event250Hz--;
+	 /*  sprintf((Time),"%d %d %d   %d %d\r\n",Gyro.AD_Slow, Gyro.CuruAngle, Gyro.Termo, ADCDIF>>9, Spi.DAC_B);//выдаем в терминал для постройки граффика регулировки периметра.
+	   Gyro.CuruAngle=0;
+	   WriteCon(Time);*/
+	 //   Gyro.EventMOD=1;// 
+	//    LoopOff
 	}
 }
+ /**/
 /////////////////////////////////////////////////////
 ///////////////////// 100kHz //////////////////////////
 /////////////////////////////////////////////////////
@@ -71,12 +85,13 @@
 {
         
     if (Event100K)	{
-       
+      // LoopOn
         Event100K --;
       
         if (OutBufCon1Count)OutBufCon1Count--;  // обратный отсчет для управления ногой и формирование задержки на выдачу
        
          PinCheng();	// чтение регистра состояния выводов(вибро, полсветка, поджиг, LED) и управление выводами.
+    //   LoopOff
     }
 }
 /////////////////////////////////////////////////////
@@ -128,7 +143,7 @@
 //////////////////////////////////////////////////////////////////////
 unsigned int Init_TIM2 (void)
 {
-    LPC_TIM2->MR0 = 257;
+    LPC_TIM2->MR0 = 81;
     LPC_TIM2->MCR = 3;				/* Interrupt and Reset on MR0 */
     NVIC_EnableIRQ(TIMER2_IRQn);
     return 1;
@@ -139,19 +154,34 @@
 //////////////////////////////////////////////////////////////////////
 void enable_timer2(void)
 {
+
     LPC_TIM2->TCR = 1;
     LPC_TIM2->TCR = 0x01;
 }
 
+unsigned int Init_TIM0 (void)
+{
+    LPC_TIM0->MR0 =180;
+    LPC_TIM0->MCR = 3;				
+    NVIC_EnableIRQ(TIMER0_IRQn);
+    return 1;
+}
+
+void enable_timer0(void)
+{
+    //LPC_SC->PCONP |= (1<<23);
+    LPC_TIM0->TCR = 1;
+    LPC_TIM0->TCR = 0x01;
+   
+}
 
 //////////////////////////////////////////////////////////////////////
 /////////////////////////прерывание таймера 1//////////////////////////
 //////////////////////////////////////////////////////////////////////
 __irq void TIMER1_IRQHandler (void)//13.27 kHz
 {   // LoopOn
-    ResetCS(ADC);					  	 	//prepare ADC for sampling
+   ResetCS(ADC);					  	 	//prepare ADC for sampling
     SetDAC(DAC);
-
     CountV255++;							// инкремент счеттчика
     CountV255 &= 0xff;						// ОБРЕЗАНИЕ СЧЕТЧИКА 
     CountV64 = CountV255 & 0x3f;
@@ -175,31 +205,43 @@
 /////////////////////////прерывание таймера 2//////////////////////////
 ///////////////////////////////////////////////////////////////////////
 __irq void TIMER2_IRQHandler (void)
-{  
+{ // LoopOn
     LPC_TIM2->IR = 1;
-    Global_Time++;
+  Global_Time++;
     if(Time_UART) Time_UART--;
-    Time_vibro++;
-    Gyro.VibroOutF=1;
+  Time_vibro++;
+  Gyro.VibroOutF=1;
     Event100K ++;  
     Time500Hz++;
     Time100K++;
     Time250Hz++;
-        if (Time100K == 100)
-         {  
-            Time100K = 0;
+        if (Time100K >299)
+         {  //LoopOn
+            Time100K -=299;
             Event1K ++;
-       
+           // LoopOff
+         }
+        if (Time500Hz > 599) 
+         { // LoopOn
+            Time500Hz -= 599;
+            Event500Hz ++; 
+       //      LoopOff
          }
-        if (Time500Hz > 200) 
-         {  
-            Time500Hz -= 200;
-            Event500Hz ++; 
-             
+        if (Time250Hz > 1198) 
+         { //LoopOn
+            Time250Hz -=1198;
+            Event250Hz ++;
+           // LoopOff
          }
-        if (Time250Hz > 400) 
-         { 
-            Time250Hz -= 400;
-            Event250Hz ++;
-         }
+ //LoopOff
+         
+         
+         
+}
+__irq void TIMER0_IRQHandler (void)
+{ 
+
+ LPC_TIM0->IR = 1;
+ //Time_vibro++;
+ // Gyro.VibroOutF=1;
 }
\ No newline at end of file