123
Fork of LG by
Diff: main.c
- Revision:
- 150:29c9f7671bac
- Parent:
- 147:1aed74f19a8f
- Child:
- 158:0c8342e1837a
diff -r abbf7663d27d -r 29c9f7671bac main.c --- a/main.c Tue May 03 05:12:26 2016 +0000 +++ b/main.c Wed May 04 14:01:57 2016 +0000 @@ -36,27 +36,29 @@ int main (void) { SystemInit1(); // Инициализация контроллера: установка тактовых частот -SystemCoreClockUpdate1(); // расчет тактовой частоты процессора перед инициализацией UART - 100MHz +SystemCoreClockUpdate1(); // расчет тактовой частоты процессора перед инициализацией UART - 103MHz GLD_Init(); - UART_InitSet (0, 921600, 0x03); // надо проверить, мож чо с ногам + UART_InitSet (0, 921600, 0x03); // UART_InitSet (1, 921600, 0x03); UART_InitSet (1, 115200, 0x03); - IntLatch_Init(); // инициализация внутренней защелки. - ExtLatch_Init(); // инициализация внешней защелки. - LoadFlashParam(FromFLASH); //загрузка параметров. - init_PLC(); //Инициализация СРП(регулировка периметра) - init_Dither_reg(); //инициализация вибропривода +// IntLatch_Init(); // инициализация внутренней защелки. +// ExtLatch_Init(); // инициализация внешней защелки. +// LoadFlashParam(FromFLASH); //загрузка параметров. +// init_PLC(); //Инициализация СРП(регулировка периметра) +// init_Dither_reg(); //инициализация вибропривода Out_G_photo(200,200); //запись в буфер мастера принятые от функции данные (60,60) и установка флага старта передачи и занятой шины. WriteCon1("\n\r ...GL start programm uart ACK.... "); WriteCon("\n\r ...GL start programm uart Tech.... "); sprintf(Time,"\r\nCompiled: %s %s.",__DATE__, __TIME__ ); //Подготовка даты и времени компиляции WriteCon(Time); + -Gyro.PLC_Error2Mode = 10; // начальная задержка (неработает СРП) - while ( 1 ) { //основной цикл. + +while ( 1 ){ //основной цикл. + G_Photo_Exchange(); Concol (); // Проврка 0 консоли (вход и выход) Concol1 (); // Проврка 0 консоли (вход и выход) @@ -71,29 +73,37 @@ Event_500Hz(); Event_1Hz(); Event_Vibro(); - - switch(Gyro.ModeOut) { - case 1: - if(Gyro.Rate1_Event == 1) CMD_Rate(); - break; - case 2: - if(Gyro.Rate2_Event == 1) CMD_Rate2(); - break; - case 3: - if(Gyro.Delta500_Event == 1) CMD_Delta_500Hz(); - break; - case 4: - if(Gyro.EXT_Latch == 1) CMD_Delta_Ext(); - break; - } - if (Spi.ADC_NewData == 1) {ADS_Acum(); } // был приход новых данных по ацп сдесь сделать обработку информации и подготовку для выдачи делается 1 раз за вибро - if (Gyro.ADF_NewData == 1) {Gyro.ADF_NewData = 0; } // был приход новых данных После быстрого фильтра AD - if (Gyro.ADS_NewData == 1) {Gyro.ADS_NewData = 0; PlcRegul(); } // был приход новых данных После Медленного фильтра AD - if (Gyro.VibroFrqRegulF == 1) {Gyro.VibroFrqRegulF = 0; VibroFrqRegul(); } //Регулеровка частоты виброподвеса - if (Gyro.VibroAMPRegulF == 1) {Gyro.VibroAMPRegulF = 0; VibroAMPRegul(); } //Регулеровка Амплитуды виброподвеса - if (Gyro.VibroNoiseF == 1) {Gyro.VibroNoiseF = 0; CalcAmpN(); }//регулеровка ошумления, наверно нужно объеденить с регулеровкой ампитуды - if(Gyro.VibroOutF == 1) {Gyro.VibroOutF = 0; VibroOut(); }// установка ног в регисторе тоже подумать , зачем отделный флаг? наверно - if( (Gyro.LogHZ == 1)&&(Gyro.Event_500Hz==1)) + + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////выдача параметров через Rate//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + switch(Gyro.ModeOut) { + case 1: if(Gyro.Rate1_Event == 1) CMD_Rate(); break; + case 2: if(Gyro.Rate2_Event == 1) CMD_Rate2(); break; + case 3: if(Gyro.Delta500_Event == 1) CMD_Delta_500Hz(); break; + case 4: if(Gyro.EXT_Latch == 1) CMD_Delta_Ext(); break; + } + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////контуры регулировки/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + if (Spi.ADC_NewData == 1) {ADS_Acum(); } // был приход новых данных по ацп сдесь сделать обработку информации и подготовку для выдачи делается 1 раз за вибро + if (Gyro.ADF_NewData == 1) {Gyro.ADF_NewData = 0; } // был приход новых данных После быстрого фильтра AD + if (Gyro.ADS_NewData == 1) {Gyro.ADS_NewData = 0; PlcRegul(); } // был приход новых данных После Медленного фильтра AD (гдето раз в 38 - 40 секунд )//регулировка периметра. + if (Gyro.VibroFrqRegulF == 1) {Gyro.VibroFrqRegulF = 0; VibroFrqRegul(); } // Регулеровка частоты виброподвеса + if (Gyro.VibroAMPRegulF == 1) {Gyro.VibroAMPRegulF = 0; VibroAMPRegul(); } // Регулеровка Амплитуды виброподвеса + if (Gyro.VibroNoiseF == 1) {Gyro.VibroNoiseF = 0; CalcAmpN(); } // регулеровка ошумления, наверно нужно объеденить с регулеровкой ампитуды + if (Gyro.VibroOutF == 1) {Gyro.VibroOutF = 0; VibroOut(); } // установка ног в регисторе тоже подумать , зачем отделный флаг? наверно + + + + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////выдача частоты в терминал длля записи лога/////////////////////////////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //////G=1,K=0 в терменале + if((Gyro.LogHZ == 1)&&(Gyro.Event_500Hz==1)) //Запись длля Ориджина. { Gyro.Event_500Hz=0; sprintf((Time),"%d \r\n",LPC_TIM1->MR0);