fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
202:c03b7b128e11
Parent:
201:76f4123bf22a
--- a/MTimer.c	Wed Nov 02 14:05:24 2016 +0000
+++ b/MTimer.c	Fri Nov 18 06:07:37 2016 +0000
@@ -11,8 +11,7 @@
 unsigned int CountV31=0;
 unsigned int CountV255=0;
 unsigned int f,f1;
-int loop=0;
-
+int Timee=0;
 /////////////////////////////////////////////////////
 /////////////////////EVENT///////////////////////////
 /////////////////////////////////////////////////////
@@ -20,17 +19,20 @@
 ///////////////////// 1Hz ///////////////////////////
 /////////////////////////////////////////////////////
 void Event_1Hz(void)// событие раз в 1 Гц
-{   int i,t;
+{   
     if (Event1Hz)	
     { 
-     
-      
+    Event1Hz--;
+     // BackLightON
+      Timee++;
+      switch(Gyro.LogPLC) { case 0:   ShowMod();    break;   }
        Gyro.Rate1_Event = 1; 
-       Event1Hz--;
+       
        Time1Hz++;
        Discharg ();
        BackLight();
-    //  LoopOff
+    
+  //    BackLightOFF
       }
 }
 /////////////////////////////////////////////////////
@@ -40,27 +42,25 @@
 {
     if (Event1K) 
     {
+        
         Event1K --;
         Time1K++;//первый ++ работает каждые 125 (event100kHz)второй был в 100 кГц
         if(Gyro.Start) Gyro.Start--;
-         
-        if (Time1K == 1000) 
+      // if(Gyro.Start==6999)   AVibON;
+       if (Time1K > 100) 
         {
-            LoopOn
-            Time1K = 0;
+            Time1K -=100;
             Event1Hz ++;
-            LoopOff
         }
-     
     }
 }
 void Event_500Hz(void)// событие раз в 500 Гц
 {
 	if(Event500Hz)
-	{//   LoopOn
+	{//   
 	    Event500Hz--;
 		Gyro.Event_500Hz=1;// Event 500Гц  выдачи данных для постройки графика управления вибро
-	//	LoopOff
+	//	
 	}
 }
 
@@ -68,13 +68,12 @@
 void Event_250Hz(void)// событие раз в 200 Гц(модулятор)
 {
 	if(Event250Hz)
-	{ //  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;
+	 /*  sprintf((Time),"%d %d %d   %d %d\r\n",Gyro.AD_Slow, Gyro.CuruAngle, Gyro.Termo, ADCDIF>>9, Spi.DAC_B);
 	   WriteCon(Time);*/
 	 //   Gyro.EventMOD=1;// 
-	//    LoopOff
+	//    
 	}
 }
  /**/
@@ -85,13 +84,14 @@
 {
         
     if (Event100K)	{
-      // LoopOn
+       
         Event100K --;
       
         if (OutBufCon1Count)OutBufCon1Count--;  // обратный отсчет для управления ногой и формирование задержки на выдачу
-       
-         PinCheng();	// чтение регистра состояния выводов(вибро, полсветка, поджиг, LED) и управление выводами.
-    //   LoopOff
+        Time100K++;
+        if(Time100K==998){Event1K=1;Time100K-=998;}
+    //    PinCheng();	// чтение регистра состояния выводов(вибро, полсветка, поджиг, LED) и управление выводами.
+    //   
     }
 }
 /////////////////////////////////////////////////////
@@ -142,8 +142,8 @@
 /////////////////////инициализация таймера 2 /////////////////////////
 //////////////////////////////////////////////////////////////////////
 unsigned int Init_TIM2 (void)
-{
-    LPC_TIM2->MR0 = 81;
+{   //LPC_TIM2->MR0 = 259;
+ LPC_TIM2->MR0 = 159;
     LPC_TIM2->MCR = 3;				/* Interrupt and Reset on MR0 */
     NVIC_EnableIRQ(TIMER2_IRQn);
     return 1;
@@ -154,94 +154,122 @@
 //////////////////////////////////////////////////////////////////////
 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
+{   // 	
+   // BackLightON
+    ResetCS(ADC);					  	 	//prepare ADC for sampling
     SetDAC(DAC);
+ 
     CountV255++;							// инкремент счеттчика
     CountV255 &= 0xff;						// ОБРЕЗАНИЕ СЧЕТЧИКА 
     CountV64 = CountV255 & 0x3f;
     CountV31 = CountV255 & 0x1f;			// малый счетчик
    
+    SetCS(ADC);					    		//start ADC sampling
+    ResetDAC(DAC);
+    SPI_Exchange();
+    
     D_QEI();								//чтение данных по счетчику
     cheng();		             			// выставление флагов в 32 тактном цикле.
 
 
-    SetCS(ADC);					    		//start ADC sampling
-    ResetDAC(DAC);
-	SPI_Exchange(); 						//Чтение ADC_SPI
+						//Чтение ADC_SPI
 
     LPC_TIM1->IR = 1;
      
-       // LoopOff
-     
+       // 
+ //BackLightOFF   
 }
 
 ///////////////////////////////////////////////////////////////////////
 /////////////////////////прерывание таймера 2//////////////////////////
 ///////////////////////////////////////////////////////////////////////
 __irq void TIMER2_IRQHandler (void)
-{ // LoopOn
+{ // 
+LoopOn
+
+ Time_vibro++;  
+   
+       if(CountV31>=16) 
+      {//первая нога вибро
+         // левая граница вЫкл вибро 1 > Time_vibro <ПРАВАЯ  граница вЫкл вибро 1
+        if((Time_vibro==Gyro.AmpN1))	
+        {
+           SetV1//установить в регистре PinReg бит "вибро 1" в "0"
+        } 
+        else if(Time_vibro>Gyro.AmpN2)
+        {
+           ClrV1 //установить в регистре PinReg бит "вибро 1" в "1"
+        }
+      }
+    else 
+    {//вторая нога вибро
+        if((Time_vibro==Gyro.AmpN1))	
+        {
+          SetV2 //установить в регистре PinReg бит "вибро 2" в "0"
+        } 
+       else if(Time_vibro>Gyro.AmpN2)
+        {
+          ClrV2//установить в регистре PinReg бит "вибро 2" в "1"
+        }
+    }         
+ /*           
+VibroOut();
+PinCheng();	*/
+
+
+ LoopOff  
     LPC_TIM2->IR = 1;
   Global_Time++;
     if(Time_UART) Time_UART--;
-  Time_vibro++;
+  
   Gyro.VibroOutF=1;
     Event100K ++;  
     Time500Hz++;
-    Time100K++;
+   // Time100K++;
     Time250Hz++;
-        if (Time100K >299)
-         {  //LoopOn
-            Time100K -=299;
-            Event1K ++;
-           // LoopOff
-         }
-        if (Time500Hz > 599) 
-         { // LoopOn
-            Time500Hz -= 599;
+      
+       /*if (Time500Hz > 200) 
+         { // 
+            Time500Hz -= 200;
             Event500Hz ++; 
-       //      LoopOff
+       //      
          }
         if (Time250Hz > 1198) 
-         { //LoopOn
+         { //
             Time250Hz -=1198;
             Event250Hz ++;
-           // LoopOff
-         }
- //LoopOff
+           // 
+         }*/
+ //
          
-         
+     
          
 }
-__irq void TIMER0_IRQHandler (void)
+/*__irq void TIMER0_IRQHandler (void)
 { 
-
  LPC_TIM0->IR = 1;
- //Time_vibro++;
- // Gyro.VibroOutF=1;
-}
\ No newline at end of file
+}*/
\ No newline at end of file