fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
30:17c84ed091b3
Parent:
21:bc8c1cec3da6
Child:
33:341521841d3a
--- a/vibro.c	Fri Feb 05 08:02:55 2016 +0000
+++ b/vibro.c	Fri Feb 05 23:21:54 2016 +0000
@@ -1,7 +1,7 @@
 #include "Global.h"
 
 
-struct MAIN Main;
+GyroT Gyro;
 
 
 volatile int V1 = 0 ;
@@ -14,15 +14,15 @@
 /////////////////////////////////////////////////////////////////////////////
 unsigned int init_Vibro ()
 {
-    Main.FrqRate=40;
-    Main.FrqMin=380;
-    Main.FrqHZ=449;
-    Main.Frq = Main.FrqHZ<<16;
+    Gyro.FrqRate=40;
+    Gyro.FrqMin=380;
+    Gyro.FrqHZ=449;
+    Gyro.Frq = Gyro.FrqHZ<<16;
 
-    Main.AmpPer=20;
-    Main.AmpPerDel=10;
-    Main.Amp  = 10*65535;
-    Main.AmpL = 20*650;
+    Gyro.AmpPer=20;
+    Gyro.AmpPerDel=10;
+    Gyro.Amp  = 10*65535;
+    Gyro.AmpL = 20*650;
     /*
     			  Vib.AmpH=50*650;
     		//	Vib.AmpT=600;
@@ -38,13 +38,13 @@
 
 
     if(CountV31>=16) {
-        if((Time_vibro>Main.AmpN1) && (Time_vibro<Main.AmpN2))	{
+        if((Time_vibro>Gyro.AmpN1) && (Time_vibro<Gyro.AmpN2))	{
             ClrV2 /*LoopOn*/
         } else {
             SetV2
         }
     } else {
-        if((Time_vibro>Main.AmpN1)&&(Time_vibro<Main.AmpN2))	{
+        if((Time_vibro>Gyro.AmpN1)&&(Time_vibro<Gyro.AmpN2))	{
             ClrV1 /*LoopOff*/
         } else {
             SetV1
@@ -67,32 +67,32 @@
     if(PeriodCount>= Tnoise) { //если количество заходов в прерывание больше либо равно частоте ошумления.
         if (Flag==0) { //сейчас малая амплитуда?
 
-            if(Main.AmpPer>90) {
-                Main.AmpPer=90;
+            if(Gyro.AmpPer>90) {
+                Gyro.AmpPer=90;
             }
-            Nmax =(unsigned int)((100000/(Main.Frq>>16))-1);
-            Main.AmpN1=(unsigned int)((Nmax*(100-Main.AmpPer))/400);
-            Main.AmpN2=(unsigned int)((Nmax/2)-Main.AmpN1);
+            Nmax =(unsigned int)((100000/(Gyro.Frq>>16))-1);
+            Gyro.AmpN1=(unsigned int)((Nmax*(100-Gyro.AmpPer))/400);
+            Gyro.AmpN2=(unsigned int)((Nmax/2)-Gyro.AmpN1);
             Flag=1;
 
         }
 
         else {
-            if((Main.AmpPer+Main.AmpPerDel)>90) {
-                Main.AmpPer=90-Main.AmpPerDel;
+            if((Gyro.AmpPer+Gyro.AmpPerDel)>90) {
+                Gyro.AmpPer=90-Gyro.AmpPerDel;
             }
 
-            Nmax =(unsigned int)((100000/(Main.Frq>>16))-1);
-            Main.AmpN1=(unsigned int)((Nmax*(100-Main.AmpPer+Main.AmpPerDel))/400);
-            Main.AmpN2=(unsigned int)((Nmax/2)-Main.AmpN1);
+            Nmax =(unsigned int)((100000/(Gyro.Frq>>16))-1);
+            Gyro.AmpN1=(unsigned int)((Nmax*(100-Gyro.AmpPer+Gyro.AmpPerDel))/400);
+            Gyro.AmpN2=(unsigned int)((Nmax/2)-Gyro.AmpN1);
             Flag=0;
         }
-        Main.AmpMin =10;
-        Main.AmpTD =30;
+        Gyro.AmpMin =10;
+        Gyro.AmpTD =30;
         //Tnoise=55;
         srand(Global_Time);
-        Main.AmpT = (rand() % Main.AmpTD+Main.AmpMin);// ОШУМЛЕНИЕ amp
-        Tnoise=Main.AmpT;
+        Gyro.AmpT = (rand() % Gyro.AmpTD+Gyro.AmpMin);// ОШУМЛЕНИЕ amp
+        Tnoise=Gyro.AmpT;
         //изменение флага предидущей амплитуды
         PeriodCount=0;
     } else {
@@ -130,8 +130,8 @@
         case 0:
             CalcAmpN();
             //Vib.Frq = ((unsigned int) ((7680000*16/Output.Str.T_Vibro)))*16*16*16;
-            LPC_TIM1->MR0 =(unsigned int)(100000000/(Main.Frq>>11));
-            Output.Str.T_Vibro=(unsigned int)((7680000*16/Main.Frq)*4096);
+            LPC_TIM1->MR0 =(unsigned int)(100000000/(Gyro.Frq>>11));
+            Output.Str.T_Vibro=(unsigned int)((7680000*16/Gyro.Frq)*4096);
             VibroPush();
             //	LoopOn
             //	LPC_TIM1->MR0 =(unsigned int)(204800000000/Vib.Frq);
@@ -151,13 +151,13 @@
 
 
 
-            Main.Amp -= (MaxAmp - 65536 - 300)*4;  // расчет амплитудв с учетом разници
+            Gyro.Amp -= (MaxAmp - 65536 - 300)*4;  // расчет амплитудв с учетом разници
             ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
             ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
             ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
             ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-            if(Main.Amp>2500000) {
-                Main.Amp=1200000;   // временное ограничение роста амплитуды в случае неподоженного гироскопа//////////
+            if(Gyro.Amp>2500000) {
+                Gyro.Amp=1200000;   // временное ограничение роста амплитуды в случае неподоженного гироскопа//////////
             }
             ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
             ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -165,9 +165,9 @@
             ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 
-            Main.AmpPer = Main.Amp>>16;
+            Gyro.AmpPer = Gyro.Amp>>16;
             MaxAmp=0;
-            FrecTemp=Main.AmpPer;//для вывода в терминал
+            FrecTemp=Gyro.AmpPer;//для вывода в терминал
             break;
         case 16:
             VibroPull();
@@ -185,7 +185,7 @@
             for (CountFaza = 0; CountFaza < 8; CountFaza++ ) {
                 if (Buff_Restored_sin [(CountV255- 12  + CountFaza) & 0xff] > 65535) TempFaza++;
             } // расчет Фазы с учетор разници
-            Main.Frq -=TempFaza*1000;
+            Gyro.Frq -=TempFaza*1000;