Dmitry Kovalev
/
LGstaandart
forkd
Fork of LG2 by
Diff: vibro.c
- Revision:
- 190:289514f730ee
- Parent:
- 189:8a16378724c4
- Child:
- 191:40028201ddad
--- a/vibro.c Mon Aug 22 10:39:08 2016 +0000 +++ b/vibro.c Tue Aug 23 14:03:16 2016 +0000 @@ -3,48 +3,37 @@ GyroParam GyroP; volatile unsigned int Cheng_AMP_Flag=0; -int reper=0; +//int reper=0; int Rate2VibFlag; -void Discharg ()//проверка битового поля поджига и установка значения бита поджига -{ - if (Gyro.Discharg) - { - //Проверка здвигового поля(последовательности) поджига - //если последний бит 1 то установить бит поджига в еденицу, иначе в 0; - if (Gyro.Discharg & 0x01) Gyro.PinReg |= PinRegBitD; else Gyro.PinReg &= ~PinRegBitD; - Gyro.Discharg = Gyro.Discharg >> 1; - } -} -void BackLight () -{ - if (Gyro.BackLight) - { - //Проверка здвигового поля(последовательности) подсветки - //если последний бит в битовом поле 1 то установить бит подсветки в еденицу, иначе в 0; - if (Gyro.BackLight & 0x01) Gyro.PinReg |= PinRegBitL; else Gyro.PinReg &= ~PinRegBitL; - Gyro.BackLight = Gyro.BackLight >> 1; - } -} + void VibroOut(void) // выставка ног вибро { - if(CountV31>=16) {//первая нога вибро + if(CountV31>=16) + {//первая нога вибро // левая граница вЫкл вибро 1 > Time_vibro <ПРАВАЯ граница вЫкл вибро 1 - if((Time_vibro>Gyro.AmpN1) && (Time_vibro<Gyro.AmpN2)) { + if((Time_vibro>Gyro.AmpN1) && (Time_vibro<Gyro.AmpN2)) + { Gyro.PinReg &= ~PinRegBit_1V;//установить в регистре PinReg бит "вибро 1" в "0" - } else { + } + else + { Gyro.PinReg |= PinRegBit_1V;//установить в регистре PinReg бит "вибро 1" в "1" } - } else {//вторая нога вибро - if((Time_vibro>Gyro.AmpN1)&&(Time_vibro<Gyro.AmpN2)) { - Gyro.PinReg &= ~PinRegBit_2V; /*LoopOff*////установить в регистре PinReg бит "вибро 2" в "0" - } else { + } + else {//вторая нога вибро + if((Time_vibro>Gyro.AmpN1)&&(Time_vibro<Gyro.AmpN2)) + { + Gyro.PinReg &= ~PinRegBit_2V; //установить в регистре PinReg бит "вибро 2" в "0" + } + else + { Gyro.PinReg |= PinRegBit_2V;//установить в регистре PinReg бит "вибро 2" в "1" } } } -void CalcAmpN(void) +void CalcAmpN(void)//расчет точек старта и стопа импульса вибропривода и расчет частоты ошумления. { static int PeriodCount = 0; @@ -71,7 +60,7 @@ 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); //правая граница амплитуды + Gyro.AmpN2=(unsigned int)((Nmax/2)-Gyro.AmpN1); //правая граница амплитуды Cheng_AMP_Flag=0; } @@ -95,14 +84,13 @@ { Gyro.CaunPlus = CaunAddPlus;//амплитуда по модулю из востановленного синиуса Buff_Restored_sin CaunAddPlus = 0; - Gyro.CaunMin = CaunAddMin;//амплитуда по модулю из востановленного синиуса Buff_Restored_sin + Gyro.CaunMin = CaunAddMin; //амплитуда по модулю из востановленного синиуса Buff_Restored_sin CaunAddMin = 0; - Gyro.MaxAmp = Gyro.CaunPlus + Gyro.CaunMin;//расчет максимальной амплитуды из востановленного синуса р-р. + Gyro.MaxAmp = Gyro.CaunPlus + Gyro.CaunMin; //расчет максимальной амплитуды из востановленного синуса р-р. Gyro.Amp -= (Gyro.MaxAmp - 3000) * Gyro.AmpSpeed; // расчет амплитуды ВП с учетом разници - /* - if((Gyro.Amp>>16) > Gyro.AmpPerMax) {Gyro.Amp = (Gyro.AmpPerMax << 16);} // временное ограничение роста амплитуды ВП в случае неподоженного гироскопа////////// - if((Gyro.Amp>>16) > Gyro.AmpPerMin) {Gyro.Amp = (Gyro.AmpPerMin << 16);}*/ // временное ограничение роста амплитуды ВП в случае неподоженного гироскопа//////////*/ +/*if((Gyro.Amp>>16) > Gyro.AmpPerMax) {Gyro.Amp = (Gyro.AmpPerMax << 16);} // временное ограничение роста амплитуды ВП в случае неподоженного гироскопа////////// + if((Gyro.Amp>>16) > Gyro.AmpPerMin) {Gyro.Amp = (Gyro.AmpPerMin << 16);}*/ // временное ограничение роста амплитуды ВП в случае неподоженного гироскопа////////// if(Gyro.RgConA&0x20) {Gyro.AmpPer = Gyro.Amp>>16;} //приведение амплитуды ВП к виду 0%-100% } @@ -119,7 +107,7 @@ } ////////////////////////////////////////////////////////////////////////////// -/////////////////////////функция работы вибропривода////////////////////////// +/////////////////////////основного 32 тактного цикла////////////////////////// ////////////////////////////////////////////////////////////////////////////// void cheng(void) {