![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
forkd
Fork of LGstaandart by
Diff: Global.c
- Revision:
- 214:4c70e452c491
- Parent:
- 211:ac8251b067d2
- Child:
- 215:b58b887fd367
diff -r 9953db9543d6 -r 4c70e452c491 Global.c --- a/Global.c Wed Jul 26 13:24:39 2017 +0000 +++ b/Global.c Wed Aug 16 09:00:25 2017 +0000 @@ -10,6 +10,7 @@ unsigned int Event250Hz; unsigned int Event500Hz; unsigned int Event1K; +unsigned int Event1250Hz; unsigned int Event2K; unsigned int Event100K; unsigned int EventVibro; @@ -19,6 +20,7 @@ unsigned int Time100K; unsigned int Time1K; +unsigned int Time1250Hz; unsigned int Time2K; unsigned int Time500Hz; unsigned int Time250Hz; @@ -47,6 +49,7 @@ Time_UART = 0; Time_Sec = 0; Time_vibro = 0; + Time1250Hz = 0; Time_1kHz = 0; Event1Hz = 0; Event1K = 0; @@ -118,8 +121,8 @@ Gyro.PLC_Phase = GyroP.Str.PLC_Phase; Gyro.ModAmp = GyroP.Str.ModAmp; Gyro.FrqPhase = GyroP.Str.FrqPhase; - Gyro.AmpPer = GyroP.Str.AmpPer; - Gyro.Amp = GyroP.Str.AmpPer<<16; + Gyro.AmpPer = 700;//GyroP.Str.AmpPer*100; + Gyro.Amp =(GyroP.Str.AmpPer<<17); Gyro.AmpSpeed = GyroP.Str.AmpSpeed; Gyro.AmpPerDel = GyroP.Str.AmpPerDel; temp=((GyroP.Str.VB_Fdf_Hi<<16) | GyroP.Str.VB_Fdf_Lo); @@ -129,8 +132,14 @@ Gyro.AmpPerMax = GyroP.Str.AmpPerMax; Gyro.AmpMin = GyroP.Str.AmpMin; Gyro.AmpTD = GyroP.Str.AmpTD; - - + F_vib=(103200000<<5)/((Gyro.Frq)>>10);//периуд вибро. + T_vibP = F_vib/10000; + T_vib_1 = Gyro.AmpPer * T_vibP; + T_vib_2 = T_vibP * (10000-Gyro.AmpPer); + LPC_MCPWM->LIM1 = F_vib; + LPC_MCPWM->LIM2 = F_vib; + LPC_MCPWM->MAT1 = T_vib_1; + LPC_MCPWM->MAT2 = T_vib_2; if(Gyro.LG_Type==1){ Gyro.HFO_Max=((int)(GyroP.Str.DAC_current_Work*0.67)-2000); Gyro.HFO_Min=((int)(GyroP.Str.DAC_current_Start*0.67)-2000); @@ -189,6 +198,15 @@ Gyro.DAC_current_Work =50000; //3 Gyro.DAC_current_Start =41000; + + F_vib=(103200000<<5)/((Gyro.Frq)>>10);//периуд вибро. + T_vibP = F_vib/10000; + T_vib_1 = Gyro.AmpPer * T_vibP; + T_vib_2 = T_vibP * (10000-Gyro.AmpPer); + LPC_MCPWM->LIM1 = F_vib; + LPC_MCPWM->LIM2 = F_vib; + LPC_MCPWM->MAT1 = T_vib_1; + LPC_MCPWM->MAT2 = T_vib_2; } Spi.DAC_B=Gyro.PLC_Start; switch(Gyro.My_Addres){//смещение поджига и подсветки в зависимости от адреса ГЛД @@ -238,10 +256,18 @@ } void GLD_Init(void) -{ int Dummy; // инициализация мусорки для очистки буфера приема. +{ + int Dummy; // инициализация мусорки для очистки буфера приема. + + + + + + ///////////////////////////////////////////////////// /////////////инициализация энкодера////////////////// ///////////////////////////////////////////////////// + LPC_SC->PCONP |= (1<<18);//0x00040000; включение квадратурного энкодера. LPC_SC->PCLKSEL1 |= 0x00000001; // выбор частоты для кв.э. CLK=103MHz LPC_PINCON->PINSEL3 &= ~0x4100; @@ -252,7 +278,7 @@ LPC_QEI->MAXPOS = MAX_QEI_CNT; //LPC_QEI->"регистор максимального положения" = 2147483646 LPC_QEI->FILTER = 2; // фильтр( ?? ) LPC_QEI->CON = 0xF; //сбросить в ноль все счетчики кв.э. (скорость, направление, позицию и тд) - LPC_QEI->CONF = (0<<2) |(0<<1); //Quadrature inputs, no inverting,only A pulses are counted + LPC_QEI->CONF = (1<<2) |(0<<1); //Quadrature inputs, no inverting,only A pulses are counted LPC_QEI->CLR = 0x1fff; //r. сбросить все прерывания LPC_QEI->IEC = 0x1fff; //r. запретить прерывание при изменении направления @@ -365,7 +391,7 @@ ///////////////////////////////////////////////////// LPC_PINCON->PINSEL0 &= ~(0x00<<28); - LPC_PINCON->PINSEL0 |= (0x00<<28); // а нужно, ведь по умолчаниб у них 0 функция. попробоввать без них потом убрать + LPC_PINCON->PINSEL0 |= (0x00<<28); LPC_PINCON->PINMODE0 |= (0x3<<28); LPC_GPIO1->FIODIR |= (1<<30); /////////////////////////////////////////////////////