fork

Dependencies:   mbed

Fork of LG by igor Apu

main.c

Committer:
Kovalev_D
Date:
2016-07-14
Revision:
182:ebcd2bc3be8f
Parent:
181:0b022246c43c
Child:
183:7e200f4d9b16

File content as of revision 182:ebcd2bc3be8f:

//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, 115200, 0x03); 
    UART_InitSet (0, 921600, 0x03);
 //   UART_InitSet (1, 115200, 0x03);
  UART_InitSet (1, 921600, 0x03);
//  UART_InitSet (1, 38400, 0x03);//для проверки дельта 500Гц на 115200 выходит при выставки флага delta500Hz
// IntLatch_Init();		  // инициализация внутренней защелки.
// ExtLatch_Init();		  // инициализация внешней защелки.
// LoadFlashParam(FromFLASH); 	//загрузка параметров.
// init_PLC();                                //Инициализация СРП(регулировка периметра)
// init_Dither_reg();                         //инициализация вибропривода



//250,250 мин син кос


    Out_G_photo(115,115);   
   //Out_G_photo(200,200);        //запись в буфер мастера принятые от функции данные (60,60) и установка флага старта передачи и занятой шины.
    WriteCon1("\n\r 123456789...GL start programm uart ACK.... ");
    WriteCon("\n\r ...GL start programm uart Tech.... ");
    sprintf(Time,"\r\nCompiled: %s %s.",__DATE__,  __TIME__ );                 //Подготовка даты и времени компиляции
    WriteCon(Time);
    
    DropDelay();

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;  if(Gyro.ModJump == 3){ShowMod();}  else {PlcRegul();}}   // был приход новых данных После Медленного фильтра 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
******************************************************************************/