fork

Dependencies:   mbed

Fork of LG by igor Apu

main.c

Committer:
Kovalev_D
Date:
2016-03-24
Revision:
86:398da56ef751
Parent:
85:0466ee8cdfc8
Child:
87:7e575d26d6d0

File content as of revision 86:398da56ef751:

//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 main (void)
{
  
    //инициализация
    SystemInit1();  // Инициализация контроллера: установка тактовых частот
//DMA_Init();               // Инициализация DMA не используем
    FlashDMA_Init(); 		  // Загрузка параметров с флэш
    SystemCoreClockUpdate1(); // расчет тактовой частоты процессора перед инициализацией UART - 100MHz
  
  
  
    GLD_Init();
  
  
  
  
    
    ///////////старый UART
    UARTInit();				  // инициализация  UART0 на скорость 38400.
    UART1_Init();             // инициализация  UART1 на скорость 38400.
    ////////////
    
    DAC_ADC_Exchange_Init();  // инициализация  обмена АЦП и ЦАП.
    //DACInit();                // инициализация ЦАП.
    SOI_Init(); 			  // Инициализация квадратурного энкодера.
    IntLatch_Init();		  // инициализация внутренней защелки.
    ExtLatch_Init();		  // инициализация внешней защелки.
    LoadFlashParam(FromFLASH); 	//загрузка параметров.
    //UART_DMA_Init();			    	//инициализация DMA для UART.//не используем
    G_Photo_Init();				      //инициализация интерфейса I2C для фотодетектора.
    Out_G_photo(60, 60);        //запись в буфер мастера принятые от функции данные (60,60) и установка флага старта передачи и занятой шины.
//WDTInit();
    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)
    LPC_GPIO0->FIOCLR = (1<<5);
    close_all_loops();





    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 ) { //основной цикл.
        Concol ();				// Проврка 0 консоли  (вход и выход)
        Concol1 ();		        // Проврка 0 консоли  (вход и выход)
        if (OutBufConCount)  OutBufConCount--;

        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] == '1') {		// выдача технологическая
                sprintf(Time,"\r\n");    
                for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_32Point[i]);
                WriteCon(Time);
            }
        }
        if (OutBufCon1Count)  OutBufCon1Count--;
        if (Event1Hz)	{// событие раз в 1 Гц
            Event1Hz--;
//============================= блок управления поджигом, сделанно через сдвиг======================
           Discharg ();
//============================= блок управления подсветкой, сделанно через сдвиг======================
           BackLight ();
            // CMD_Rate();
            //   WriteCon(".");				//Так просто выдавать в секунду 1 байт ,что гирос жив




        }
        if (Event1K)	{// событие раз в 1 кГц
            Event1K --;
            Time1K++;
            if (Time1K == 1000) {
                Time1K = 0;
                Event1Hz ++;
                Time1Hz++;

            }

        }
        if (Event100K)	{			// событие раз в 100 кГц
            Event100K --;
            Time100K++;

            PinCheng();			// чтение регистра состояния выводов(вибро, полсветка, поджиг, LED) и управление выводами.
            if (OutBufCon1Count)  OutBufCon1Count--;	// обратный отсчет для управления ногой и формирование задержки на выдачу
            if (Time100K == 100) {
                Time100K = 0;
                Event1K ++;
            }
        }
        if (EventVibro)	{// событие от вибр
            EventVibro --;
        }
        Read_CMD();



//VibroOut();
//CMD_Rate();

        
        ButtonLightUP();
        //Device_blk.Str.
//      TakeFromBuff();
        // paramV=TakeParam(1);

    }// main infinie loop
}

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