123
Fork of LG by
Diff: vibro.c
- Revision:
- 28: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;