Dmitry Kovalev
/
LGfiltr
forkd
Fork of LGstaandart by
main.c
- Committer:
- Kovalev_D
- Date:
- 2016-05-16
- Revision:
- 162:44e4ded32c6a
- Parent:
- 159:38f39c0c143f
- Child:
- 164:6f43f85fdd8d
File content as of revision 162:44e4ded32c6a:
//ssdfwewedfsfds /****************************************Copyright (c)**************************************************** **--------------File Info--------------------------------------------------------------------------------- ** File name: main.c ** Last modified Date: 2011-10-24 ** Last Version: V1.00 ** Descriptions: The main() function ** **-------------------------------------------------------------------------------------------------------- ** Created by: Electrooptica Incorp. ** Created date: 2011-08-22 ** Version: V1.00 ** Descriptions: **-------------------------------------------------------------------------------------------------------- последнии изменения //2016_02_03_17_47 //2016_02_06 igor //2016_06 Dima //2016_02_06 21:20 Kovalev_D *********************************************************************************************************/ #include "Global.h" #include "Device.h" /****************************************************************************** ** Main Function main() ******************************************************************************/ extern Device device; //Single global for all device hardware-independent algorithm unsigned int addres; uint32_t Result[5]; extern uint32_t CMD_Mode; unsigned int secPuls; float DACF, K_DAC; int tempAMP; int temp; unsigned int status; unsigned int Para; int main (void) { SystemInit1(); // Инициализация контроллера: установка тактовых частот SystemCoreClockUpdate1(); // расчет тактовой частоты процессора перед инициализацией UART - 103MHz GLD_Init(); 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(); //инициализация вибропривода //250,250 мин син кос Out_G_photo(200,200); //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); while ( 1 ){ //основной цикл. G_Photo_Exchange(); Concol (); // Проврка 0 консоли (вход и выход) Concol1 (); // Проврка 0 консоли (вход и выход) Read_CMD(); if (OutBufConCount) OutBufConCount--; if (OutBufCon1Count) OutBufCon1Count--; TechLog();//технологическая выдача Event_100KHz(); Event_1KHz(); Event_500Hz(); Event_1Hz(); Event_Vibro(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////выдача параметров через 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(); /* ShowMod();*/} // был приход новых данных После Медленного фильтра AD (гдето раз в 0.63 секунды )//регулировка периметра. 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); WriteCon(Time); } ///////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////Работа с Flash////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////// if(Gyro.FlashMod == 1) {GoBoot(); } if(Gyro.FlashMod == 2) {WriteFlash(); } if(Gyro.FlashMod == 3) {ReadFlash(); } } }//main /****************************************************************************** ** End Of File ******************************************************************************/