Dmitry Kovalev
/
LGstaandart
forkd
Fork of LG2 by
Diff: vibro.c
- 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; }