Dmitry Kovalev
/
LGfiltr
forkd
Fork of LGstaandart by
Diff: Global.c
- Revision:
- 205:775d54fdf646
- Parent:
- 203:3a6615de9581
- Child:
- 206:00341a03e05c
diff -r e7e9762bf609 -r 775d54fdf646 Global.c --- a/Global.c Fri Nov 25 06:22:37 2016 +0000 +++ b/Global.c Mon Dec 19 14:08:31 2016 +0000 @@ -1,7 +1,5 @@ #include "Global.h" - - unsigned int VibroReg = 0; //регистр состаяния вибропривода. unsigned long Global_Time, Time_UART,Time_Sec,Time_vibro,Time_1kHz; float t1; @@ -23,7 +21,7 @@ unsigned int Clock1Hz; unsigned int ShiftD; unsigned int ShiftL; -unsigned int EventMod; +//unsigned int EventMod; __asm void boot_jump( uint32_t address ){ @@ -32,24 +30,12 @@ BX R0 } -void GLD_Init(void) -{ - InitMOD(); - Gyro.DropDelayGLD = DropDelayGLD_0;//задержка на выдачу 45 микросекунд для любого адреса ГЛД - int Dummy; // инициализация мусорки для очистки буфера приема. -///////////////////////////////////////////// -///////////инициализация таймеров//////////// -///////////////////////////////////////////// - Init_TIM1(TIME_INTERVAL ); //Timer 1: CCLK / 7812 = 12800.819Hz; Vibro: Timer1/32 = 400.025Hz; 10ms??? - Init_TIM2(); //Timer 2: CCLK / 4 / 250 = 100kHz -///////////////////////////////////////////// -///////////////////////////////////////////// +void Param_init(void) +{ + InitMOD(); Gyro.RgConA = 0xffff; Gyro.RgConB = 0xffff; -///////////////////////////////////////////// -///////////обнуление счетчиков/////////////// -///////////////////////////////////////////// - Global_Time = 0; + Global_Time = 0; Time_UART = 0; Time_Sec = 0; Time_vibro = 0; @@ -66,102 +52,56 @@ ShiftL = 0; Event500Hz = 0; Time500Hz = 0; - -///////////////////////////////////////////// -///////////////////////////////////////////// - - // ModArray[]=[32,64,96,128,256,384,448,480,496,512,512]; - ///////////////////////////////////////////////////// - /////////////обнуление переменых для///////////////// - ///////////расчета значений буферов ВП/////////////// - ///////////////////////////////////////////////////// - /////////////инициализация переменных в структ вибро///////////////// - - Gyro.FlashMod=0; - Gyro.FrqHZ=388; - Gyro.Frq = Gyro.FrqHZ<<16; - Gyro.FrqHZmin = 350<<16; - Gyro.FrqHZmax = 450<<16; - Gyro.FrqChengSpeed=100; - Gyro.ModAmp=250; - Gyro.AmpPer=40; - Gyro.AmpPerMin = 1; - Gyro.AmpPerMax = 90; - Gyro.AmpSpeed = 1; - Gyro.AmpPerDel=2; - Gyro.AmpTarget =3700;// целевая амплитуда ВП - Gyro.Amp = 30*65535; - Gyro.AmpMin =20;// минимальное значение AmpT;5 - Gyro.AmpTD =8;//////////////////////////////////////////////////////// + PulseADC_64Point= 0; + Temp_AMP64P = 0; + Temp_ADC_2 = 0; + Temp_ADC_3 = 0; + Temp_ADC_4 = 0; + Temp_ADC_5 = 0; + Gyro.Log = 0; + Gyro.LogPLC = 0; + Gyro.PLC_Lern = 0; Gyro.CuruAngle = 0; Pulse_8Point = 0; Pulse_16Point = 0; Pulse_16PointD = 0; Pulse_32Point = 0; - - Gyro.flag=1; - ///////////////////////////////////////////////////// - /////////////предварительное заполнение////////////// - ////////////////буферов вибропривода///////////////// - ///////////////////////////////////////////////////// - for (int i = 0; i < 32; i++ ) { - Buff_16Point[i] = 0x00; - Buff_8Point[i] = 0x00; - Buff_32Point[i] = 0x00; - Buff_16PointD[i] = 0x00; - GyroP.Array[i] = 0x00; - } - for (int i = 0; i < 64; i++ ) { - BuffADC_16Point[CountV64]=0x00; - BuffADC_32Point[CountV64]=0x00; - BuffADC_32PointD[CountV64]=0x00; - BuffADC_64Point[CountV64]=0x00; - } - PulseADC_64Point=0; - //////////////////////////////////////////////////// - //////////////////////////////////////////////////// - ///////////////////////////////////////////////////// - /////////////обнуление переменых для///////////////// - //////////////////переменных АЦП///////////////////// - ///////////////////////////////////////////////////// - Temp_AMP64P=0; - Temp_ADC_2=0; - Temp_ADC_3=0; - Temp_ADC_4=0; - Temp_ADC_5=0; - - - - Gyro.Gain_Sin =115; - Gyro.Gain_Cos =175; + Gyro.FlashMod=0; - - - ///////////////////////////////////////////////////// - /////////////предварительное заполнение////////////// - /////////////////////буферов АЦП///////////////////// - ///////////////////////////////////////////////////// - for (int i = 0; i < 32; i++ ) { - Buff_ADC_1[i] = 0; // ампл ацп. - Buff_ADC_2[i] = 0; - Buff_ADC_3[i] = 0; - Buff_ADC_4[i] = 0; - } - for (int i = 0; i < 256; i++ ) { - Buff_ADC_5[i]= 0; - } - for (int i = 0; i < 256; i++ ) { - Buff_AMP64P[i]= 0; - } - for (int i = 0; i < 256; i++ ) { - Buff_AMP[i]= 0; - } - //////////////////////////////////////////////////// - //////////////////////////////////////////////////// + Gyro.DropDelayGLD = DropDelayGLD_0;//задержка на выдачу 45 микросекунд для любого адреса ГЛД + +///////////////////////////////////////////// +///////////инициализация таймеров//////////// +///////////////////////////////////////////// +Init_TIM1(TIME_INTERVAL ); //Timer 1: CCLK / 7812 = 12800.819Hz; Vibro: Timer1/32 = 400.025Hz; 10ms??? +Init_TIM2(); //Timer 2: CCLK / 4 / 250 = 100kHz +///////////////////////////////////////////// + /////////////инициализация переменных в структ вибро///////////////// - Gyro.SOC_Out=0xDD; - Gyro.Firmware_Version = 0x11; //версия программы - Gyro.GLD_Serial = 0xD7; //серийный номер + Gyro.FrqHZ = 388; + Gyro.Frq = Gyro.FrqHZ<<16; + Gyro.FrqHZmin = 350<<16; + Gyro.FrqHZmax = 450<<16; + Gyro.FrqChengSpeed = 100; + Gyro.ModAmp = 250; + Gyro.AmpPer = 40; + Gyro.AmpPerMin = 1; + Gyro.AmpPerMax = 90; + Gyro.AmpSpeed = 1; + Gyro.AmpPerDel = 5; + Gyro.AmpTarget = 5800;// целевая амплитуда ВП + Gyro.Amp = 30*65535; + Gyro.AmpMin = 15;// минимальное значение AmpT;5 + Gyro.AmpTD = 30;//////////////////////////////////////////////////////// + Gyro.TermoNKU = 44700;//48824*0,0061-273=25 С° + Spi.DAC_A = 41000; + Spi.DAC_B = 35220; + Gyro.PLC_Error2Mode = 1400; //для записи мод + Gyro.Gain_Sin = 115; + Gyro.Gain_Cos = 175; + Gyro.SOC_Out = 0xDD; + Gyro.Firmware_Version = 0x9; //версия программы + Gyro.GLD_Serial = 123; //серийный номер Gyro.My_Addres = 0; //адрес глд switch(Gyro.My_Addres){//смещение поджига и подсветки в зависимости от адреса ГЛД @@ -181,8 +121,8 @@ Gyro.Discharg = StartDischarg << ShiftStart3; Gyro.BackLight = StartBackLight << ShiftStart3; break; -} - + } + ///////////////////////////////////////////////////// //////инициализация цап_LPC (р0.26 цап выход)//////// ///////////////////////////////////////////////////// @@ -191,45 +131,27 @@ ////////////начальное значение для цап/////////////// //////////////////середина шкалы///////////////////// ///////////////////////////////////////////////////// - - Gyro.Ktermo=1;// K° - Gyro.TermoNKU=44700;//48824*0,0061-273=25 С° - Spi.DAC_A = 41000; - - Spi.DAC_B = 35220; - - Gyro.StrayHZ = 200; - Gyro.StrayHZ_flag = 0; - Gyro.LogHZ = 0; - - Gyro.StrayPLC_Pls = 1000; - Gyro.StrayPLC_Mns = -1000; - Gyro.StrayPLC_2Mode = 2000; - Gyro.StrayPLC_flag = 0; - Gyro.LogPLC = 0; - Gyro.PLC_Lern = 0; - Gyro.ModJump = 0; - Gyro.PLC_Error2Mode =1400; //для записи мод - //Gyro.PLC_Error2Mode = 65; //стандартное включение прибора регулировка (65 начальная задержка для поиска АМП мах) + //////////////////////////////////////////////////// /////////////поправочный коэффициент///////////////// /////////для цапов (граници +-12.5 вольт)//////////// ///////////////////////////////////////////////////// K_DAC=65535.0/(65535.0+(deltaDAC+deltaDAC/2)); K_DAC=0.8; - ///////////////////////////////////////////////////// - ///////////////////////////////////////////////////// - - secPuls =0;// переменная для конопки поджига аск глд(временная) ///////////////////////////////////////////////////// /////////////обнуление переменых для///////////////// ///////////////переменных энкодера/////////////////// ///////////////////////////////////////////////////// + secPuls =0;// переменная для конопки поджига аск глд(временная) Gyro.CaunPlus =0; Gyro.CaunMin =0; Cur_QEI=0; Last_QEI=0; +} + +void GLD_Init(void) +{ int Dummy; // инициализация мусорки для очистки буфера приема. ///////////////////////////////////////////////////// /////////////инициализация энкодера////////////////// ///////////////////////////////////////////////////// @@ -477,6 +399,8 @@ LPC_GPIO0->FIOCLR |= (1<<23); // set CS for DAC while (LPC_SSP1->SR & RX_SSP_notEMPT) Dummy = LPC_SSP1->DR; /* clear the RxFIFO */ +//Gyro=GyroP.str; +//Gyro = (*(struct Gyro*)(&GyroP.Str)); }