fork

Dependencies:   mbed

Fork of LG by igor Apu

main.c

Committer:
Kovalev_D
Date:
2016-04-02
Revision:
109:ee0cff33ad3b
Parent:
108:030cdde08314
Child:
110:6406b7ac0442

File content as of revision 109:ee0cff33ad3b:

//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 <math.h>
#include "Device.h"

/******************************************************************************
**   Main Function  main()
******************************************************************************/
Device device; //Single global for all device hardware-independent algorithm

extern uint32_t CMD_Mode;
unsigned int  secPuls;
float DACF, K_DAC;
int tempAMP;
int main (void)
{
int i,ttemp;

    //DMA_Init();               // Инициализация DMA не используем
    //DACInit();                // инициализация ЦАП.
    //UART_DMA_Init();			//инициализация DMA для UART.//не используем
    //WDTInit();
  //  G_Photo_Init();				      //инициализация интерфейса I2C для фотодетектора.
    //инициализация



    SystemInit1();  // Инициализация контроллера: установка тактовых частот
    FlashDMA_Init(); 		  // Загрузка параметров с флэш
    SystemCoreClockUpdate1(); // расчет тактовой частоты процессора перед инициализацией UART - 100MHz

    GLD_Init();
    ///////////старый UART
//    UARTInit();				  // инициализация  UART0 на скорость 38400.
//    UART1_Init();             // инициализация  UART1 на скорость 38400.


    UART_InitSet (0, 115200, 0x03);  // надо проверить, мож чо с ногам
    UART_InitSet (1, 38400, 0x03);
    
    ////////////
    //DAC_ADC_Exchange_Init();  // инициализация  обмена АЦП и ЦАП.

    IntLatch_Init();		  // инициализация внутренней защелки.
    ExtLatch_Init();		  // инициализация внешней защелки.
    LoadFlashParam(FromFLASH); 	//загрузка параметров.

    open_all_loops();                          //#define open_all_loops()			RgConA   = 0	(Основной регистр управления устройства (0 - включить, 1 - отключить)).
    Output.Str.HF_reg = Device_blk.Str.HF_min; //HFO output voltage = максивальное напряжение на ГВЧ.
    init_PLC();                                //Инициализация СРП(регулировка периметра)
    init_Dither_reg();                         //инициализация вибропривода
    RgConB = RATE_VIBRO_1; // дополнительный регистр управления = разность вибросчетчиков после фильтра скольз.среднего(#define RATE_VIBRO_1	0x0001)
    close_all_loops();

    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--;
        if (ReadCon (Time)) {

            if (Time[0] == 'h') { // если ввели буквц h то выдать подсказку. сделанно через принф ОЧЕНЬ плохо в работе не использовать
                sprintf(Time,"\r\nCompiled: %s %s.",__DATE__,  __TIME__ );                 //Подготовка даты и времени компиляции
                WriteCon(Time);
                sprintf(Time,"--%d.%3.d.%2.d.",Time1Hz,Time1K,Time100K);                 //Временно выдачпа временни из трех чисел
                WriteCon(Time);
            }
            if (Time[0] == 'D') {
                Gyro.Discharg = StartDischarg;
            }
            if (Time[0] == 'L') {
                Gyro.BackLight = StartBackLight;
            }
            
             if (Time[0] == 'F') {		// выдача технологическая
                sprintf(Time,"\r\n");
                WriteCon(Time);
                sprintf((Time)," <%07d>   <%07d>",Gyro.F_ras,Param2);
                WriteCon(Time);
            }   
          if (Time[0] == '1') {		// выдача технологическая
                sprintf(Time,"\r\n");
                WriteCon(Time);
                for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_1Point[i]);
                WriteCon(Time);
            }
            
               if (Time[0] == '2') {		// выдача технологическая
                sprintf(Time,"\r\n");
                WriteCon(Time);
                for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",    Buff_8Point[i]);
                WriteCon(Time);
            }
                if (Time[0] == '3') {		// выдача технологическая
                sprintf(Time,"\r\n");
                WriteCon(Time);
                for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",    Buff_16Point[i]);
                WriteCon(Time);
            }
            
             if (Time[0] == '4') {		// выдача технологическая
                sprintf(Time,"\r\n");
                WriteCon(Time);
                for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",    Buff_16PointD[i]);
                WriteCon(Time);
            }
 


                      if (Time[0] == 'z') {		// выдача технологическая
                sprintf(Time,"\r\n");
                WriteCon(Time);
           
                  for (int i = 0; i < 32; i++ ) 
                  { 
                  ttemp=(Buff_16PointD[i]);
                  if (ttemp < 0) WriteCon("1"); else WriteCon("0");
                  }
       
            }
           
            
              if (Time[0] == '5') {		// выдача технологическая
                sprintf(Time,"\r\n");
                WriteCon(Time);
                for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_32Point[i]);
                WriteCon(Time);
            }
           
              if (Time[0] == '6') {		// выдача технологическая
                sprintf(Time,"\r\n");
                WriteCon(Time);
                for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_Restored_sin[i]);
                WriteCon(Time);
            }       
            
            
            
                if (Time[0] == 'c') {		// выдача технологическая
                sprintf(Time,"\r\n");
                WriteCon(Time);
                sprintf((Time)," <%07d> <%07d> <%07d> <%07d>", Gyro.F_ras,Gyro.F_ras/16, Gyro.Cnt_Pls, Gyro.Cnt_Mns);
                WriteCon(Time);
            }   
            
            
            
           if (Time[0] == '7') {		// выдача технологическая
                sprintf(Time,"\r\n");
                WriteCon(Time);
                for (int i = 0; i < 32; i++ )sprintf((Time + i * 10)," <%07d> ",Buff_AMP64P[i]-(Buff_AMP[i]));
                WriteCon(Time);
            }
               if (Time[0] == '9') {		// выдача технологическая
                sprintf(Time,"\r\n");
                WriteCon(Time);
                for (int i = 0; i < 32; i++ )sprintf((Time)," <%07d> ",Gyro.Frq);
                WriteCon(Time);
            }
            
            if (Time[0] == 'p') {		// выдача технологическая
                sprintf(Time,"\r\n");
                WriteCon(Time);
                for (int i = 0; i < 32; i++ )sprintf((Time)," <%07d> ",Cur_Amp);
                WriteCon(Time);
            }
             if (Time[0] == 'm') {		// выдача технологическая
               sprintf(Time,"\r\n");
               WriteCon(Time);
               sprintf((Time),"Cur_Amp  <%07d> ",	Cur_Amp);  	WriteCon(Time);              
               sprintf((Time),"Znak_Amp  <%07d> ",	Znak_Amp);  	WriteCon(Time);
               sprintf((Time),"AD_Regul  <%07d> ",	AD_Regul);  	WriteCon(Time);
  //         	printf((Time),"AD_Regul  <%07d> ",	Delta);  	WriteCon(Time);               
              
//               sprintf((Time),"Spi.DAC_B  <%07d> ",Spi.DAC_B);  WriteCon(Time);*/
//               sprintf((Time),"MaxAmp  <%07d> ", MaxAmp);  WriteCon(Time);
 //              sprintf((Time),"CaunAddPlus  <%07d> ", CaunAddPlus);  WriteCon(Time);
 //              sprintf((Time),"CaunAddMin  <%07d> ",  CaunAddMin);  WriteCon(Time);
//               sprintf((Time)," Gyro.Amp <%07d> ",amp);  WriteCon(Time);

            }
          if (Time[0] == 'V') {		// выдача технологическая
            //    Gyro.Frq+=65000;
            AD_Regul += 65536 * 100;
            
            }
          if (Time[0] == 'v') {		// выдача технологическая
              //Gyro.Frq-=65000;
               AD_Regul -= 65536 * 100;
            }
  
                if (Time[0] == '8') {		// выдача технологическая
                sprintf(Time,"\r\n");
                WriteCon(Time);
            //  for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_AMP64P[i]-(Buff_AMP[i]*2));
                  for (int i = 0; i < 32; i++ ) 
                  { 
                  ttemp=(Buff_AMP64P[i]-(Buff_AMP[i]));
                  if (ttemp < 0) WriteCon("1"); else WriteCon("0");
                  }
            //   WriteCon(Time);
            }
            
                 if (Time[0] == 'b') {		// выдача технологическая
                sprintf(Time,"\r\n");
                WriteCon(Time);
           
                  for (int i = 0; i < 32; i++ ) 
                  { 
                  ttemp=(Buff_Restored_sin[i]);
                  if (ttemp < 0) WriteCon("1"); else WriteCon("0");
                  }
       
            }
           
             Read_CMD();
        }
        
   // Read_CMD();

        Event_1Hz();
        Event_1KHz();
        Event_100KHz();
        Event_Vibro();
       
    }
}

/******************************************************************************
**                            End Of File
******************************************************************************/