fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
99:3d8f206ceac2
Parent:
98:95b8e79f13e1
Child:
100:e197a8d2cf43
Child:
104:ab1cb4ff56b2
--- a/vibro.c	Tue Mar 29 09:51:17 2016 +0000
+++ b/vibro.c	Tue Mar 29 17:00:59 2016 +0000
@@ -4,7 +4,7 @@
 //volatile int Temp = 0 ;
 volatile unsigned int Flag=0;
 unsigned int FrecTemp=0;
-unsigned int FrecTp=0;
+unsigned int FrecTp=0,ffff=0;
 
 
 void Discharg ()//проверка битового поля поджига  и  установка значения бита поджига
@@ -100,26 +100,29 @@
 /////////////////////////функция работы вибропривода//////////////////////////
 //////////////////////////////////////////////////////////////////////////////
 void cheng(void)
-{
+{  
     static int TempFaza, CountFaza;
-    if (Buff_Restored_sin [CountV255] > MaxAmp) {MaxAmp=Buff_Restored_sin [CountV255];}
+    //if (Buff_Restored_sin [CountV255] > MaxAmp) {MaxAmp=Buff_Restored_sin [CountV255];}  // подумать со знаком
+
      switch(CountV31) {
         case 0:
             CalcAmpN();//расчет ошумления и амплитуды задание интервалов выставки ножек вибро.
             //Vib.Frq = ((unsigned int) ((7680000*16/Output.Str.T_Vibro)))*16*16*16; //прием частоты из аск_глд старый протокол
             LPC_TIM1->MR0 =(unsigned int)(100000000/(Gyro.Frq>>11));//запись в таймер 1 значение частоты вибро
-            Output.Str.T_Vibro=(unsigned int)((7680000*16/Gyro.Frq)*4096); //запись частоты для выдачи в аск_глд старый протокол
+//            Output.Str.T_Vibro=(unsigned int)((7680000*16/Gyro.Frq)*4096); //запись частоты для выдачи в аск_глд старый протокол
             Time_vibro=0;
             break;
-        case 10:
-            Gyro.Amp -= (MaxAmp - 65536 - 300)*4;  // расчет амплитудв с учетом разници
+        case 20:
+MaxAmp=Buff_Restored_sin [CountV31];  
+            Gyro.Amp -= (MaxAmp - 200)*2;  // расчет амплитудв с учетом разници
             ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-            if(Gyro.Amp>2500000) {
+            if(Gyro.Amp>5500000) {
                 Gyro.Amp=1200000;   // временное ограничение роста амплитуды в случае неподоженного гироскопа//////////
             }
             ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
             Gyro.AmpPer = Gyro.Amp>>16;
+            ffff=MaxAmp;
             MaxAmp=0;
             break;
 
@@ -128,11 +131,11 @@
 
 // расчет Фазы с учетор разници
      TempFaza = -4;
-            for (CountFaza = 0; CountFaza < 8; CountFaza++ ) {
+            for (CountFaza = 0; CountFaza <8; CountFaza++ ) {
                 if (Buff_Restored_sin [(CountV255 - 12  + CountFaza) & 0xff] > 0 ) TempFaza++;
             } 
           //  FrecTp=Buff_Restored_sin [(CountV31 - 12  + CountFaza) & 0xff];
-            Gyro.Frq -=TempFaza*1000;
+         //   Gyro.Frq -=TempFaza*1000;
             break;
     }