fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
169:140743e3bb96
Parent:
157:1069c80f4944
Child:
171:d227a6045305
--- a/vibro.c	Mon Jun 06 14:07:45 2016 +0000
+++ b/vibro.c	Tue Jun 07 14:03:04 2016 +0000
@@ -28,15 +28,11 @@
 
 
 
-
-
 void VibroOut(void) 	// выставка ног вибро
 {
     if(CountV31>=16) {//первая нога вибро
          // левая граница вЫкл вибро 1 > Time_vibro <ПРАВАЯ  граница вЫкл вибро 1
         if((Time_vibro>Gyro.AmpN1) && (Time_vibro<Gyro.AmpN2))	{
-           
-           
             Gyro.PinReg &= ~PinRegBit_1V;//установить в регистре PinReg бит "вибро 1" в "0"
         } else {
             Gyro.PinReg |= PinRegBit_1V;//установить в регистре PinReg бит "вибро 1" в "1"
@@ -44,8 +40,7 @@
 
     } else {//вторая нога вибро
         if((Time_vibro>Gyro.AmpN1)&&(Time_vibro<Gyro.AmpN2))	{
-     
-           Gyro.PinReg &= ~PinRegBit_2V; /*LoopOff*////установить в регистре PinReg бит "вибро 2" в "0"
+            Gyro.PinReg &= ~PinRegBit_2V; /*LoopOff*////установить в регистре PinReg бит "вибро 2" в "0"
         } else {
             Gyro.PinReg |= PinRegBit_2V;//установить в регистре PinReg бит "вибро 2" в "1"
         }
@@ -61,28 +56,25 @@
     //расчет амплитуды относительно центральной точки
     if(PeriodCount>= Gyro.AmpT) { //если количество заходов в прерывание больше либо равно частоте ошумления.
         PeriodCount=0;//сбрасываем таймер
-
         if (Cheng_AMP_Flag==0) { //сейчас малая амплитуда?
             if((Gyro.AmpPer+Gyro.AmpPerDel)>90) {
                 Gyro.AmpPer=90-Gyro.AmpPerDel;   //проверка верхней граници амплитуды
-            }
-            Nmax =(unsigned int)((100000/(Gyro.Frq>>16))-1);                    //
-            Gyro.AmpN1=(unsigned int)((Nmax*(100-Gyro.AmpPer))/Gyro.FrqHZ);            //левая граница амплитуды
-            Gyro.AmpN2=(unsigned int)((Nmax/2)-Gyro.AmpN1);                     //правая граница амплитуды
-            Cheng_AMP_Flag=1;
-           
+            }  
+            //                      239  
+          Nmax =(unsigned int)((100000/(Gyro.Frq>>16))-1); 
+          Gyro.AmpN1=(unsigned int)((Nmax*(100-Gyro.AmpPer))/(Gyro.Frq>>16));            //левая граница амплитуды
+          Gyro.AmpN2=(unsigned int)((Nmax/2)-Gyro.AmpN1);                     //правая граница амплитуды
+          Cheng_AMP_Flag=1;       
         }
 
         else {
             if((Gyro.AmpPer+Gyro.AmpPerDel)>90) {
                 Gyro.AmpPer=90-Gyro.AmpPerDel;   //проверка верхней граници амплитуды
             }
-           
-            Nmax =(unsigned int)((100000/(Gyro.Frq>>16))-1);
-            Gyro.AmpN1=(unsigned int)((Nmax*(100-Gyro.AmpPer+Gyro.AmpPerDel))/Gyro.FrqHZ);//левая граница амплитуды
-            Gyro.AmpN2=(unsigned int)((Nmax/2)-Gyro.AmpN1);                        //правая граница амплитуды
-            Cheng_AMP_Flag=0;
-            
+         Nmax =(unsigned int)((100000/(Gyro.Frq>>16))-1);      
+         Gyro.AmpN1=(unsigned int)((Nmax*(100-Gyro.AmpPer+Gyro.AmpPerDel))/(Gyro.Frq>>16));//левая граница амплитуды
+         Gyro.AmpN2=(unsigned int)((Nmax/2)-Gyro.AmpN1);                        //правая граница амплитуды
+         Cheng_AMP_Flag=0;       
         }
         srand(Global_Time);//инициализация функции rand() для получения новых случайных велечин.
         Gyro.AmpT = (rand() % Gyro.AmpTD+Gyro.AmpMin);// ОШУМЛЕНИЕ amp
@@ -90,13 +82,14 @@
     } else {
         PeriodCount++;//таймер амплитуды
     }
+    
     switch( Gyro.StrayHZ_flag) {
-    case 0:
-    LPC_TIM1->MR0 =(unsigned int)(100000000/((Gyro.Frq)>>11));//запись в таймер нового  значение частоты вибро
+    case 0:                              //8046
+    LPC_TIM1->MR0 =(unsigned int)(103000000/((Gyro.Frq)>>11));//запись в таймер нового  значение частоты вибро
     break;
     
     case 1:
-    LPC_TIM1->MR0 =(unsigned int)((100000000/(Gyro.Frq>>11))+ Gyro.StrayHZ);//запись в таймер нового значение частоты вибро + ошибка.
+    LPC_TIM1->MR0 =(unsigned int)((103000000/(Gyro.Frq>>11))+ Gyro.StrayHZ);//запись в таймер нового значение частоты вибро + ошибка.
     break;
     }
 }
@@ -119,8 +112,7 @@
    	static int TempFaza, CountFaza;
    	TempFaza = -4;
     for (CountFaza = 0; CountFaza <8; CountFaza++ )     {if (Buff_Restored_sin [(CountV31 -12  + CountFaza) & 0xff] > 0 ) TempFaza++;} 
-   // if(Gyro.RgConA&0x1)     {Gyro.Frq += TempFaza*3000;} /// возможно перепутан вибро 1 вибро 2
-   if(Gyro.RgConA&0x1)     {Gyro.Frq += TempFaza*1000;}
+    if(Gyro.RgConA&0x1)     {Gyro.Frq += TempFaza*1000;}
 }
 
 //////////////////////////////////////////////////////////////////////////////