fork

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Kovalev_D
Date:
Thu Mar 24 09:16:55 2016 +0000
Revision:
87:7e575d26d6d0
Parent:
86:398da56ef751
Child:
88:b5c1d9d338d1
GLD_Init

Who changed what in which revision?

UserRevisionLine numberNew contents of line
igor_v 8:5188b1448d34 1 //ssdfwewedfsfds
igor_v 0:8ad47e2b6f00 2 /****************************************Copyright (c)****************************************************
igor_v 0:8ad47e2b6f00 3 **--------------File Info---------------------------------------------------------------------------------
igor_v 0:8ad47e2b6f00 4 ** File name: main.c
igor_v 0:8ad47e2b6f00 5 ** Last modified Date: 2011-10-24
igor_v 0:8ad47e2b6f00 6 ** Last Version: V1.00
igor_v 0:8ad47e2b6f00 7 ** Descriptions: The main() function
igor_v 0:8ad47e2b6f00 8 **
igor_v 0:8ad47e2b6f00 9 **--------------------------------------------------------------------------------------------------------
igor_v 0:8ad47e2b6f00 10 ** Created by: Electrooptica Incorp.
igor_v 0:8ad47e2b6f00 11 ** Created date: 2011-08-22
igor_v 0:8ad47e2b6f00 12 ** Version: V1.00
igor_v 3:ed8744c5f67a 13 ** Descriptions:
igor_v 3:ed8744c5f67a 14 **--------------------------------------------------------------------------------------------------------
igor_v 30:17c84ed091b3 15 последнии изменения
igor_v 30:17c84ed091b3 16 //2016_02_03_17_47
igor_v 31:c783288001b5 17 //2016_02_06 igor
igor_v 37:bdd52117b56e 18 //2016_06 Dima
Kovalev_D 41:70d12776d1ef 19 //2016_02_06 21:20 Kovalev_D
igor_v 0:8ad47e2b6f00 20 *********************************************************************************************************/
igor_v 21:bc8c1cec3da6 21
igor_v 0:8ad47e2b6f00 22
igor_v 0:8ad47e2b6f00 23 #include "Global.h"
igor_v 0:8ad47e2b6f00 24 //#include <math.h>
Diletant 74:f4d9c3403578 25 #include "Device.h"
Kovalev_D 10:8d2edc51f3c9 26
igor_v 0:8ad47e2b6f00 27 /******************************************************************************
igor_v 0:8ad47e2b6f00 28 ** Main Function main()
igor_v 0:8ad47e2b6f00 29 ******************************************************************************/
Diletant 75:cc1942179a2f 30 Device device; //Single global for all device hardware-independent algorithm
Diletant 74:f4d9c3403578 31
igor_v 0:8ad47e2b6f00 32 extern uint32_t CMD_Mode;
igor_v 52:30f2e52a493f 33 unsigned int secPuls;
igor_v 52:30f2e52a493f 34 float DACF, K_DAC;
igor_v 51:81f47b817071 35
igor_v 52:30f2e52a493f 36 int main (void)
igor_v 52:30f2e52a493f 37 {
Kovalev_D 86:398da56ef751 38
Kovalev_D 86:398da56ef751 39 //инициализация
Kovalev_D 86:398da56ef751 40 SystemInit1(); // Инициализация контроллера: установка тактовых частот
Kovalev_D 86:398da56ef751 41 //DMA_Init(); // Инициализация DMA не используем
Kovalev_D 86:398da56ef751 42 FlashDMA_Init(); // Загрузка параметров с флэш
Kovalev_D 86:398da56ef751 43 SystemCoreClockUpdate1(); // расчет тактовой частоты процессора перед инициализацией UART - 100MHz
Kovalev_D 86:398da56ef751 44
Kovalev_D 86:398da56ef751 45
Kovalev_D 86:398da56ef751 46
Kovalev_D 86:398da56ef751 47 GLD_Init();
Kovalev_D 86:398da56ef751 48
igor_v 52:30f2e52a493f 49
igor_v 52:30f2e52a493f 50
Kovalev_D 86:398da56ef751 51
Kovalev_D 86:398da56ef751 52
Kovalev_D 86:398da56ef751 53 ///////////старый UART
Diletant 46:2670fa0fcebc 54 UARTInit(); // инициализация UART0 на скорость 38400.
igor_v 37:bdd52117b56e 55 UART1_Init(); // инициализация UART1 на скорость 38400.
Kovalev_D 86:398da56ef751 56 ////////////
Kovalev_D 86:398da56ef751 57
igor_v 30:17c84ed091b3 58 DAC_ADC_Exchange_Init(); // инициализация обмена АЦП и ЦАП.
Kovalev_D 87:7e575d26d6d0 59 //DACInit(); // инициализация ЦАП.
Diletant 46:2670fa0fcebc 60 IntLatch_Init(); // инициализация внутренней защелки.
Diletant 46:2670fa0fcebc 61 ExtLatch_Init(); // инициализация внешней защелки.
igor_v 21:bc8c1cec3da6 62 LoadFlashParam(FromFLASH); //загрузка параметров.
Kovalev_D 87:7e575d26d6d0 63 //UART_DMA_Init(); //инициализация DMA для UART.//не используем
igor_v 21:bc8c1cec3da6 64 G_Photo_Init(); //инициализация интерфейса I2C для фотодетектора.
igor_v 21:bc8c1cec3da6 65 Out_G_photo(60, 60); //запись в буфер мастера принятые от функции данные (60,60) и установка флага старта передачи и занятой шины.
Kovalev_D 86:398da56ef751 66 //WDTInit();
igor_v 30:17c84ed091b3 67 open_all_loops(); //#define open_all_loops() RgConA = 0 (Основной регистр управления устройства (0 - включить, 1 - отключить)).
igor_v 30:17c84ed091b3 68 Output.Str.HF_reg = Device_blk.Str.HF_min; //HFO output voltage = максивальное напряжение на ГВЧ.
igor_v 30:17c84ed091b3 69 init_PLC(); //Инициализация СРП(регулировка периметра)
igor_v 30:17c84ed091b3 70 init_Dither_reg(); //инициализация вибропривода
igor_v 30:17c84ed091b3 71 RgConB = RATE_VIBRO_1; // дополнительный регистр управления = разность вибросчетчиков после фильтра скольз.среднего(#define RATE_VIBRO_1 0x0001)
Kovalev_D 87:7e575d26d6d0 72
Kovalev_D 86:398da56ef751 73 close_all_loops();
igor_v 51:81f47b817071 74
igor_v 51:81f47b817071 75
igor_v 51:81f47b817071 76
igor_v 51:81f47b817071 77
igor_v 51:81f47b817071 78
Kovalev_D 47:d902ef6f7564 79 WriteCon1("\n\r ...GL start programm uart ACK.... ");
Kovalev_D 47:d902ef6f7564 80 WriteCon("\n\r ...GL start programm uart Tech.... ");
igor_v 15:f5191a1c3805 81 sprintf(Time,"\r\nCompiled: %s %s.",__DATE__, __TIME__ ); //Подготовка даты и времени компиляции
igor_v 13:e2a1d18677b8 82 WriteCon(Time);
igor_v 11:af609f6dee46 83
igor_v 37:bdd52117b56e 84
igor_v 11:af609f6dee46 85
Kovalev_D 50:0e3d47f18a50 86 while ( 1 ) { //основной цикл.
Kovalev_D 47:d902ef6f7564 87 Concol (); // Проврка 0 консоли (вход и выход)
Kovalev_D 47:d902ef6f7564 88 Concol1 (); // Проврка 0 консоли (вход и выход)
igor_v 3:ed8744c5f67a 89 if (OutBufConCount) OutBufConCount--;
igor_v 48:8697dfe679b9 90
igor_v 52:30f2e52a493f 91 if (ReadCon (Time)) {
igor_v 48:8697dfe679b9 92
igor_v 16:18e3fd7b92d0 93 if (Time[0] == 'h') { // если ввели буквц h то выдать подсказку. сделанно через принф ОЧЕНЬ плохо в работе не использовать
igor_v 15:f5191a1c3805 94 sprintf(Time,"\r\nCompiled: %s %s.",__DATE__, __TIME__ ); //Подготовка даты и времени компиляции
igor_v 15:f5191a1c3805 95 WriteCon(Time);
igor_v 52:30f2e52a493f 96 sprintf(Time,"--%d.%3.d.%2.d.",Time1Hz,Time1K,Time100K); //Временно выдачпа временни из трех чисел
igor_v 15:f5191a1c3805 97 WriteCon(Time);
igor_v 52:30f2e52a493f 98 }
Kovalev_D 86:398da56ef751 99
igor_v 52:30f2e52a493f 100 if (Time[0] == 'D') {
igor_v 52:30f2e52a493f 101 Gyro.Discharg = StartDischarg;
igor_v 15:f5191a1c3805 102 }
igor_v 52:30f2e52a493f 103 if (Time[0] == 'L') {
igor_v 52:30f2e52a493f 104 Gyro.BackLight = StartBackLight;
igor_v 52:30f2e52a493f 105 }
igor_v 52:30f2e52a493f 106 if (Time[0] == '1') { // выдача технологическая
igor_v 52:30f2e52a493f 107 sprintf(Time,"\r\n");
igor_v 52:30f2e52a493f 108 for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ",Buff_32Point[i]);
igor_v 52:30f2e52a493f 109 WriteCon(Time);
igor_v 52:30f2e52a493f 110 }
igor_v 15:f5191a1c3805 111 }
igor_v 38:716472a4492e 112 if (OutBufCon1Count) OutBufCon1Count--;
igor_v 15:f5191a1c3805 113 if (Event1Hz) {// событие раз в 1 Гц
igor_v 52:30f2e52a493f 114 Event1Hz--;
Kovalev_D 40:8a6494f61326 115 //============================= блок управления поджигом, сделанно через сдвиг======================
Kovalev_D 85:0466ee8cdfc8 116 Discharg ();
Kovalev_D 40:8a6494f61326 117 //============================= блок управления подсветкой, сделанно через сдвиг======================
Kovalev_D 85:0466ee8cdfc8 118 BackLight ();
igor_v 52:30f2e52a493f 119 // CMD_Rate();
igor_v 52:30f2e52a493f 120 // WriteCon("."); //Так просто выдавать в секунду 1 байт ,что гирос жив
igor_v 52:30f2e52a493f 121
igor_v 52:30f2e52a493f 122
igor_v 52:30f2e52a493f 123
igor_v 52:30f2e52a493f 124
igor_v 15:f5191a1c3805 125 }
igor_v 15:f5191a1c3805 126 if (Event1K) {// событие раз в 1 кГц
igor_v 15:f5191a1c3805 127 Event1K --;
igor_v 15:f5191a1c3805 128 Time1K++;
igor_v 15:f5191a1c3805 129 if (Time1K == 1000) {
igor_v 15:f5191a1c3805 130 Time1K = 0;
igor_v 15:f5191a1c3805 131 Event1Hz ++;
igor_v 52:30f2e52a493f 132 Time1Hz++;
igor_v 16:18e3fd7b92d0 133
igor_v 15:f5191a1c3805 134 }
Kovalev_D 40:8a6494f61326 135
igor_v 15:f5191a1c3805 136 }
igor_v 42:6fc307c4963e 137 if (Event100K) { // событие раз в 100 кГц
igor_v 15:f5191a1c3805 138 Event100K --;
igor_v 15:f5191a1c3805 139 Time100K++;
igor_v 52:30f2e52a493f 140
igor_v 42:6fc307c4963e 141 PinCheng(); // чтение регистра состояния выводов(вибро, полсветка, поджиг, LED) и управление выводами.
igor_v 52:30f2e52a493f 142 if (OutBufCon1Count) OutBufCon1Count--; // обратный отсчет для управления ногой и формирование задержки на выдачу
igor_v 52:30f2e52a493f 143 if (Time100K == 100) {
igor_v 15:f5191a1c3805 144 Time100K = 0;
igor_v 15:f5191a1c3805 145 Event1K ++;
igor_v 15:f5191a1c3805 146 }
igor_v 15:f5191a1c3805 147 }
igor_v 15:f5191a1c3805 148 if (EventVibro) {// событие от вибр
igor_v 15:f5191a1c3805 149 EventVibro --;
igor_v 15:f5191a1c3805 150 }
Kovalev_D 40:8a6494f61326 151 Read_CMD();
igor_v 37:bdd52117b56e 152
igor_v 37:bdd52117b56e 153
igor_v 37:bdd52117b56e 154
igor_v 53:7d25cd871094 155 //VibroOut();
igor_v 53:7d25cd871094 156 //CMD_Rate();
igor_v 37:bdd52117b56e 157
igor_v 52:30f2e52a493f 158
igor_v 3:ed8744c5f67a 159 ButtonLightUP();
igor_v 3:ed8744c5f67a 160 //Device_blk.Str.
igor_v 52:30f2e52a493f 161 // TakeFromBuff();
igor_v 52:30f2e52a493f 162 // paramV=TakeParam(1);
igor_v 53:7d25cd871094 163
igor_v 52:30f2e52a493f 164 }// main infinie loop
igor_v 0:8ad47e2b6f00 165 }
igor_v 0:8ad47e2b6f00 166
igor_v 0:8ad47e2b6f00 167 /******************************************************************************
igor_v 0:8ad47e2b6f00 168 ** End Of File
igor_v 0:8ad47e2b6f00 169 ******************************************************************************/
igor_v 0:8ad47e2b6f00 170
igor_v 0:8ad47e2b6f00 171