![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
forkd
Fork of LGstaandart by
Diff: main.c
- Revision:
- 40:8a6494f61326
- Parent:
- 39:15782b3b2ab2
- Child:
- 41:70d12776d1ef
--- a/main.c Sat Feb 06 14:48:44 2016 +0000 +++ b/main.c Sat Feb 06 18:16:06 2016 +0000 @@ -63,20 +63,22 @@ } } -long LED_TEMP=0; - - - int main (void) { + Gyro.Firmware_Version =0x15; //версия программы + Gyro.GLD_Serial = 0x20; //серийный номер + Gyro.My_Addres = 0; //адрес глд + + + K_DAC=65535.0/(65535.0+(deltaDAC+deltaDAC/2)); K_DAC=0.8; - Gyro.Firmware_Version =0x15; - Gyro.GLD_Serial = 0x20; - Gyro.My_Addres = 0; + + Gyro.Discharg = 0x7; // инициализация время поджига 3 сек (в событии 1HZ) + Gyro.BackLight=0x3ff;// инициализация время подсветки 10 сек (в событии 1HZ) secPuls =0; Pulse_midl = 0; PulseHalf = 0; @@ -186,8 +188,8 @@ Time100K = 0; Time1Hz = 0; Clock1Hz = 0; - Gyro.Discharg = StartDischarg; - + Gyro.Discharg = StartDischarg; + Pulse_8Point = 0; Pulse_16Point = 0; Pulse_32Point = 0; @@ -208,8 +210,8 @@ Buff_ADC_4[y] = 0; Buff_ADC_5[y] = 0; } - WriteCon("\n\r ...GL start programm uart 0.... "); - WriteCon1("\n\r ...GL start programm uart 1.... "); + WriteCon("\n\r ...GL start programm uart 0.... "); + WriteCon1("\n\r ...GL start programm uart 1.... "); sprintf(Time,"\r\nCompiled: %s %s.",__DATE__, __TIME__ ); //Подготовка даты и времени компиляции WriteCon(Time); @@ -236,14 +238,21 @@ Event1Hz --; Clock1Hz++; -//============================= блок управления поджигом и подсветкой, сделанно через сдвиг====================== - if (Gyro.Discharg){ //Проверка поджига - if (Gyro.Discharg & 0x01) Gyro.PinReg |= PinRegBitD; else Gyro.PinReg &= ~PinRegBitD; +//============================= блок управления поджигом, сделанно через сдвиг====================== + if (Gyro.Discharg) { //Проверка поджига + if (Gyro.Discharg & 0x01) Gyro.PinReg |= PinRegBitD; + else Gyro.PinReg &= ~PinRegBitD; Gyro.Discharg = Gyro.Discharg >> 1; } - - CMD_Rate(); - WriteCon("."); //Так просто выдавать в секунду 1 баййт ,что гирос жив +//============================= блок управления подсветкой, сделанно через сдвиг====================== + if (Gyro.BackLight) { //Проверка подсветки + if (Gyro.BackLight & 0x01) Gyro.PinReg |= PinRegBitL; + else Gyro.PinReg &= ~PinRegBitL; + Gyro.BackLight = Gyro.BackLight >> 1; + } + + CMD_Rate(); + WriteCon("."); //Так просто выдавать в секунду 1 байт ,что гирос жив } if (Event1K) {// событие раз в 1 кГц @@ -254,11 +263,16 @@ Event1Hz ++; } - + } if (Event100K) {// событие раз в 100 кГц Event100K --; Time100K++; + + + PinCheng();// чтение регистра состояния выводов(вибро, полсветка, поджиг, LED) и управление выводами. + + if (Time100K == 100) { Time100K = 0; Event1K ++; @@ -267,9 +281,9 @@ if (EventVibro) {// событие от вибр EventVibro --; } - Read_CMD(); + Read_CMD(); - // VibroOut(); +// VibroOut(); if(Time_1kHz>100) { @@ -296,82 +310,82 @@ if (0) - if (LPC_PWM1->IR & 0x0001) { // Если в регистре прерываний ШИМ1 (регистр PWM1IR) есть влаг прерывания совпадения счетчика с МАТСН (lim0 ?) то: + if (LPC_PWM1->IR & 0x0001) { // Если в регистре прерываний ШИМ1 (регистр PWM1IR) есть влаг прерывания совпадения счетчика с МАТСН (lim0 ?) то: - /* ResetCS(ADC); //prepare ADC for sampling - SetDAC(DAC); - LPC_GPIO2->FIOSET |= 0x0000004; // turn on the LED - LPC_GPIO2->FIOSET |= 0x0000004; // turn on the LED - LPC_GPIO2->FIOSET |= 0x0000004; // turn on the LED - SetCS(ADC); //start ADC sampling - ResetDAC(DAC); //start DAC prepearing for writing - */ + /* ResetCS(ADC); //prepare ADC for sampling + SetDAC(DAC); + LPC_GPIO2->FIOSET |= 0x0000004; // turn on the LED + LPC_GPIO2->FIOSET |= 0x0000004; // turn on the LED + LPC_GPIO2->FIOSET |= 0x0000004; // turn on the LED + SetCS(ADC); //start ADC sampling + ResetDAC(DAC); //start DAC prepearing for writing + */ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - secPuls++; - tmpSec++; - mSec++; + secPuls++; + tmpSec++; + mSec++; - i1++; - if(i1>10000) - //if(CountV31>30) - { - WriteCon("."); - i1=0; - /* - SendToBuffStr("\n\r"); - // if (Buff_ADC_1 [y] > 65535)SendToBuffStr(" 0 "); else SendToBuffStr(" 1 "); - sprintf (BuffTemp,"<%05d> <%05d> <%05d> <%05d> <%05d>", Temp_AMP>>5,Temp_ADC_2>>5,Temp_ADC_3>>5,Temp_ADC_4>>5,Temp_ADC_5>>5); - // sprintf (BuffTemp,"<%07d> <%07d> <%07d> <%07d> <%07d>", Spi.ADC1,Spi.ADC2,Spi.ADC3,Spi.ADC4,Spi.ADC5); - SendToBuffStr(BuffTemp); - */ - /* - WriteConByte (Gyro.T_Vib&0xff00); - WriteConByte (Gyro.T_Vib&0x00ff); - WriteConByte (Gyro.T_Vib); - */ - /* + i1++; + if(i1>10000) + //if(CountV31>30) + { + WriteCon("."); + i1=0; + /* + SendToBuffStr("\n\r"); + // if (Buff_ADC_1 [y] > 65535)SendToBuffStr(" 0 "); else SendToBuffStr(" 1 "); + sprintf (BuffTemp,"<%05d> <%05d> <%05d> <%05d> <%05d>", Temp_AMP>>5,Temp_ADC_2>>5,Temp_ADC_3>>5,Temp_ADC_4>>5,Temp_ADC_5>>5); + // sprintf (BuffTemp,"<%07d> <%07d> <%07d> <%07d> <%07d>", Spi.ADC1,Spi.ADC2,Spi.ADC3,Spi.ADC4,Spi.ADC5); + SendToBuffStr(BuffTemp); + */ + /* + WriteConByte (Gyro.T_Vib&0xff00); + WriteConByte (Gyro.T_Vib&0x00ff); + WriteConByte (Gyro.T_Vib); + */ + /* - for (y = 0; y < 32; y++ ) - { + for (y = 0; y < 32; y++ ) + { - WriteCon(BuffTemp); - } WriteCon("\n\r"); + WriteCon(BuffTemp); + } WriteCon("\n\r"); - */ - /* - Gyro.T_Vib=((7680000*16/Gyro.Frq)*4096); - th= Gyro.T_Vib&0xff00; - tt= Gyro.T_Vib&0x00ff; - sprintf(BuffTemp,"<%07d >",( (Gyro.T_Vib&0xff00))); - SendToBuffStr(BuffTemp); + */ + /* + Gyro.T_Vib=((7680000*16/Gyro.Frq)*4096); + th= Gyro.T_Vib&0xff00; + tt= Gyro.T_Vib&0x00ff; + sprintf(BuffTemp,"<%07d >",( (Gyro.T_Vib&0xff00))); + SendToBuffStr(BuffTemp); - sprintf(BuffTemp,"<%07d >",( ( Gyro.T_Vib&0x00ff))); - SendToBuffStr(BuffTemp); + sprintf(BuffTemp,"<%07d >",( ( Gyro.T_Vib&0x00ff))); + SendToBuffStr(BuffTemp); - CuruAngleOld=CuruAngle;*/ - // Spi.ADC1=Spi.ADC1*0.000061; + CuruAngleOld=CuruAngle;*/ + // Spi.ADC1=Spi.ADC1*0.000061; - /* + /* - sprintf(BuffTemp,"\n\r<%05d><%05d><%05d><%05d><%05d>",Spi.ADC1,Spi.ADC2,Spi.ADC3,Spi.ADC4,Spi.ADC5); - SendToBuffStr(BuffTemp); + sprintf(BuffTemp,"\n\r<%05d><%05d><%05d><%05d><%05d>",Spi.ADC1,Spi.ADC2,Spi.ADC3,Spi.ADC4,Spi.ADC5); + SendToBuffStr(BuffTemp); - */ + */ - /* sprintf(BuffTemp,"<%d>",(FrecTemp)); - SendToBuffStr(BuffTemp); - for (y = 0; y < 32; y++ ) - { - sprintf(BuffTemp," <%07d>", (Buff_16PointD [y]-65535)); - SendToBuffStr(BuffTemp); - } */ + /* sprintf(BuffTemp,"<%d>",(FrecTemp)); + SendToBuffStr(BuffTemp); + for (y = 0; y < 32; y++ ) + { + sprintf(BuffTemp," <%07d>", (Buff_16PointD [y]-65535)); + SendToBuffStr(BuffTemp); + } */ - } + } @@ -387,46 +401,46 @@ - LPC_GPIO2->FIOSET |= 0x0000004; // turn on the LED + LPC_GPIO2->FIOSET |= 0x0000004; // turn on the LED - Curr_Cnt_Vib = LPC_QEI->POS; // записать в переменную Curr_Cnt_Vib текущее положение Энкодера. (текущее количество импульсов) - Latch_Event(); //определение защелки + Curr_Cnt_Vib = LPC_QEI->POS; // записать в переменную Curr_Cnt_Vib текущее положение Энкодера. (текущее количество импульсов) + Latch_Event(); //определение защелки - clc_Pulses(); // счетчик импульсов. RATE_REPER_OR_REFMEANDR или RATE_VIBRO_1 + clc_Pulses(); // счетчик импульсов. RATE_REPER_OR_REFMEANDR или RATE_VIBRO_1 - //ADC_Input(); // проверка флагов заполнения буфера и четение Thermo1, Thermo2, HF_out в масив Input.ArrayIn[n]. - //DAC_ADC_Exchange();// проверка флагов заполнения буфера и зпись в ЦАПы. - ServiceTime();//секундный таймер. - clc_ThermoSensors();//расчет средней температуры за секунду - clc_HFO(); //расчет значения для передачи в контур ГВЧ(на цап). + //ADC_Input(); // проверка флагов заполнения буфера и четение Thermo1, Thermo2, HF_out в масив Input.ArrayIn[n]. + //DAC_ADC_Exchange();// проверка флагов заполнения буфера и зпись в ЦАПы. + ServiceTime();//секундный таймер. + clc_ThermoSensors();//расчет средней температуры за секунду + clc_HFO(); //расчет значения для передачи в контур ГВЧ(на цап). - clc_PLC(); - // clc_Dith_regulator(); - clc_OutFreq_regulator(); - Output.Str.WP_sin = clc_WP_sin(); - contrl_GLD(); - G_Photo_Exchange(); - // Output.Str.T_Vibro = paramV*48; + clc_PLC(); + // clc_Dith_regulator(); + clc_OutFreq_regulator(); + Output.Str.WP_sin = clc_WP_sin(); + contrl_GLD(); + G_Photo_Exchange(); + // Output.Str.T_Vibro = paramV*48; - Line_1_Rcv(); - decode_CMD(); - transm_DAT(); - //îòêëþ÷åíèå ïîäæèãà. + Line_1_Rcv(); + decode_CMD(); + transm_DAT(); + //îòêëþ÷åíèå ïîäæèãà. // data_Rdy &= ~RESET_PERIOD; - LPC_PWM1->IR = 0x0001; //e. clear interrupt flag - LPC_GPIO2->FIOCLR |= 0x0000004; // turn off the LED + LPC_PWM1->IR = 0x0001; //e. clear interrupt flag + LPC_GPIO2->FIOCLR |= 0x0000004; // turn off the LED // WDTFeed(); //SPI_Exchange(); - } + } } while ( 1 ); // main infinie loop }