fork

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
igor_v
Date:
Sat Feb 06 12:16:27 2016 +0000
Revision:
36:65c171b56105
Parent:
35:84e05c2c3b46
Child:
37:bdd52117b56e
11

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 34:1e4b4d86a7ac 18 //2016_06 Dima req
Diletant 35:84e05c2c3b46 19
Diletant 35:84e05c2c3b46 20 Andreq
igor_v 0:8ad47e2b6f00 21 *********************************************************************************************************/
igor_v 21:bc8c1cec3da6 22
igor_v 0:8ad47e2b6f00 23
igor_v 0:8ad47e2b6f00 24 #include "Global.h"
igor_v 0:8ad47e2b6f00 25 //#include <math.h>
igor_v 0:8ad47e2b6f00 26
Kovalev_D 10:8d2edc51f3c9 27
Kovalev_D 10:8d2edc51f3c9 28
igor_v 0:8ad47e2b6f00 29 /******************************************************************************
igor_v 0:8ad47e2b6f00 30 ** Main Function main()
igor_v 0:8ad47e2b6f00 31 ******************************************************************************/
igor_v 0:8ad47e2b6f00 32 extern uint32_t CMD_Mode;
igor_v 0:8ad47e2b6f00 33 //////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 34 //////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 3:ed8744c5f67a 35 int i1 =0;
igor_v 30:17c84ed091b3 36 volatile unsigned int IRQ_Counter=0;
igor_v 30:17c84ed091b3 37 volatile uint32_t timer1_counter = 0;
igor_v 0:8ad47e2b6f00 38 int temp111=0,temp=0;
igor_v 0:8ad47e2b6f00 39 int y = 0;
igor_v 0:8ad47e2b6f00 40 int CuruAngleOld=0;
igor_v 30:17c84ed091b3 41 unsigned int secPuls,CountBI,CmmandIn,tt,th;
igor_v 0:8ad47e2b6f00 42
igor_v 0:8ad47e2b6f00 43 unsigned int paramV;
igor_v 0:8ad47e2b6f00 44 void Led_init()
igor_v 0:8ad47e2b6f00 45 {
igor_v 3:ed8744c5f67a 46 LPC_PINCON->PINSEL0 = (0x00<<28);
igor_v 3:ed8744c5f67a 47 LPC_GPIO1->FIODIR = (0x1<<30);
igor_v 3:ed8744c5f67a 48 LPC_PINCON->PINMODE0 = (0x3<<28);
igor_v 3:ed8744c5f67a 49 // LPC_GPIO1->FIOSET = (0x0<<30);
igor_v 3:ed8744c5f67a 50 // LPC_GPIO0->FIOSET = (1<<4);
igor_v 0:8ad47e2b6f00 51 }
igor_v 3:ed8744c5f67a 52
igor_v 0:8ad47e2b6f00 53 int flag=0, TIME=0,t=0, Sec=0,tmpSec=0,SEC=0, mSec=0;
igor_v 0:8ad47e2b6f00 54 int tempsec=0;
igor_v 0:8ad47e2b6f00 55 float DACF, K_DAC;
igor_v 3:ed8744c5f67a 56
igor_v 0:8ad47e2b6f00 57 void Led_Blink()
igor_v 0:8ad47e2b6f00 58 {
igor_v 3:ed8744c5f67a 59 if (flag == 0) {
igor_v 3:ed8744c5f67a 60 LPC_GPIO1->FIOSET = (0x1<<30);
igor_v 3:ed8744c5f67a 61 flag=1;
igor_v 3:ed8744c5f67a 62 } else {
igor_v 3:ed8744c5f67a 63 flag =0;
igor_v 3:ed8744c5f67a 64 LPC_GPIO1->FIOCLR = (0x01<<30);
igor_v 3:ed8744c5f67a 65 }
igor_v 0:8ad47e2b6f00 66 }
igor_v 0:8ad47e2b6f00 67
igor_v 0:8ad47e2b6f00 68 long LED_TEMP=0;
igor_v 11:af609f6dee46 69
igor_v 11:af609f6dee46 70
igor_v 0:8ad47e2b6f00 71 int main (void)
igor_v 0:8ad47e2b6f00 72 {
igor_v 5:02e9f559395c 73 K_DAC=65535.0/(65535.0+(deltaDAC+deltaDAC/2));
igor_v 5:02e9f559395c 74 K_DAC=0.8;
igor_v 0:8ad47e2b6f00 75
igor_v 36:65c171b56105 76 Gyro.Firmware_Version = 0x15;
igor_v 30:17c84ed091b3 77 Gyro.GLD_Serial = 0x20;
igor_v 30:17c84ed091b3 78 Gyro.My_Addres = 0;
igor_v 30:17c84ed091b3 79
igor_v 36:65c171b56105 80 secPuls = 0;
igor_v 36:65c171b56105 81 Pulse_midl = 0;
igor_v 36:65c171b56105 82 PulseHalf = 0;
igor_v 36:65c171b56105 83 CuruAngle = 0;
igor_v 36:65c171b56105 84 Spi.DAC_A = 0x7fff;
igor_v 36:65c171b56105 85 Spi.DAC_B = 0x7fff;
igor_v 21:bc8c1cec3da6 86 //инициализация
igor_v 30:17c84ed091b3 87 SystemInit(); // Инициализация системы
igor_v 30:17c84ed091b3 88 Led_init();
igor_v 11:af609f6dee46 89
igor_v 30:17c84ed091b3 90 ///*
igor_v 30:17c84ed091b3 91 //Конфигурирование сигнала поджига
igor_v 36:65c171b56105 92 LPC_PINCON->PINSEL0 &= ~(3<<8); //e. P0.4 is GPIO pin (запись ( 00 ) в 9:8 бит PISEL0 выбор P0.4 как GPIO)
igor_v 36:65c171b56105 93 LPC_PINCON->PINMODE0 |= (3<<8); //e. P0.4 is GPIO pin (запись ( 11 ) в 9:8 бит PINMODE0 "для включения подтягивающего резистора")
igor_v 36:65c171b56105 94 LPC_GPIO0->FIODIR |= (1<<4); //e. P0.4 is output (запись ( 1 ) в 5 бит FIODIR выбор P0.4 как выход)
igor_v 30:17c84ed091b3 95 LightUpON //e. P0.4 is output (запись ( 1 ) в 5 бит CLR устанавливаем на P0.4 низкий уровень сигнала)
igor_v 30:17c84ed091b3 96 /*
igor_v 30:17c84ed091b3 97 LPC_PINCON->PINSEL0 &= ~(3<<10); //e. P0.4 is GPIO pin (запись ( 00 ) в 9:8 бит PISEL0 выбор P0.4 как GPIO)
igor_v 30:17c84ed091b3 98 LPC_PINCON->PINMODE0 |= (3<<10); //e. P0.4 is GPIO pin (запись ( 11 ) в 9:8 бит PINMODE0 "для включения подтягивающего резистора")
igor_v 30:17c84ed091b3 99 LPC_GPIO0->FIODIR |= (1<<5); //e. P0.4 is output (запись ( 1 ) в 5 бит FIODIR выбор P0.4 как выход)
igor_v 30:17c84ed091b3 100 LPC_GPIO0->FIOCLR |= (1<<5); //e. P0.4 is output (запись ( 1 ) в 5 бит CLR устанавливаем на P0.4 низкий уровень сигнала)*/
igor_v 12:74bd0ecf7f83 101
igor_v 3:ed8744c5f67a 102 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 103 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 3:ed8744c5f67a 104
igor_v 30:17c84ed091b3 105
igor_v 30:17c84ed091b3 106 LPC_PINCON->PINSEL3 = (0x00<<18); //e. P1.25 is GPIO pin
igor_v 30:17c84ed091b3 107 LPC_PINCON->PINMODE3 |= (3<<18); //e. P1.25 (включениe подтягивающего резистора")
igor_v 30:17c84ed091b3 108 LPC_GPIO1->FIODIR |= (1<<25); //e. P0.5 is output (запись ( 1 ) в 5 бит FIODIR выбор P0.5 как выход)
igor_v 30:17c84ed091b3 109 LPC_GPIO1->FIOCLR |= (1<<25);
igor_v 30:17c84ed091b3 110
igor_v 30:17c84ed091b3 111
igor_v 0:8ad47e2b6f00 112 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 30:17c84ed091b3 113
igor_v 30:17c84ed091b3 114 LPC_PINCON->PINSEL3 = (0x00<<24); //e. P1.28 is GPIO pin
igor_v 30:17c84ed091b3 115 LPC_PINCON->PINMODE3 |= (3<<24); //e. P1.28 is GPIO pin (запись ( 11 ) в бит PINMODE0 "для включения подтягивающего резистора")
igor_v 30:17c84ed091b3 116 LPC_GPIO1->FIODIR |= (1<<28); //e. P1.28 is output (запись ( 1 ) в 5 бит FIODIR выбор P0.5 как выход)
igor_v 30:17c84ed091b3 117 LPC_GPIO1->FIOCLR |= (1<<28);
igor_v 30:17c84ed091b3 118 // init_timer(TIME_INTERVAL ); // 10ms
igor_v 30:17c84ed091b3 119 // enable_timer1();
igor_v 21:bc8c1cec3da6 120 ///иНИциализация подсветки
igor_v 30:17c84ed091b3 121 LPC_PINCON->PINSEL2 = (0x00<<24); //e. P2.12 is GPIO pin
igor_v 30:17c84ed091b3 122 LPC_PINCON->PINMODE3 |= (3<<24); //e. P1.28 is GPIO pin (запись ( 11 ) в бит PINMODE0 "для включения подтягивающего резистора")
igor_v 30:17c84ed091b3 123 LPC_GPIO2->FIODIR |= (1<<12); //e. P1.28 is output (запись ( 1 ) в 5 бит FIODIR выбор P0.5 как выход)
igor_v 30:17c84ed091b3 124 LPC_GPIO2->FIOCLR |= (1<<12);
igor_v 30:17c84ed091b3 125
igor_v 0:8ad47e2b6f00 126 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 30:17c84ed091b3 127 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 30:17c84ed091b3 128 /*
igor_v 30:17c84ed091b3 129 //конфигурирование сигнала поджига оторваная нога (поджиг на 80 ноге вместо 81)
igor_v 30:17c84ed091b3 130 LPC_PINCON->PINSEL0 = (0x00<<10); //e. P0.5 is GPIO pin (запись ( 00 ) в 11:10 бит PISEL0 выбор P0.5 как GPIO)
igor_v 30:17c84ed091b3 131 LPC_PINCON->PINMODE0 |= (3<<10); //e. P0.5 is GPIO pin (запись ( 11 ) в 11:10 бит PINMODE0 "для включения подтягивающего резистора")
igor_v 30:17c84ed091b3 132 LPC_GPIO0->FIODIR |= (1<<5); //e. P0.5 is output (запись ( 1 ) в 5 бит FIODIR выбор P0.5 как выход)
igor_v 30:17c84ed091b3 133 LPC_GPIO0->FIOCLR |= (1<<5); //e. P0.5 is output (запись ( 1 ) в 5 бит CLR устанавливаем на P0.5 низкий уровень сигнала)
igor_v 30:17c84ed091b3 134 */
igor_v 36:65c171b56105 135 DMA_Init(); // Инициализация DMA
igor_v 30:17c84ed091b3 136 FlashDMA_Init(); // Загрузка параметров с флэш
igor_v 30:17c84ed091b3 137
igor_v 36:65c171b56105 138 SystemCoreClockUpdate(); // расчет системной частоты для UART.
igor_v 36:65c171b56105 139 UARTInit(); // инициализация UART0 на скорость 38400.
igor_v 36:65c171b56105 140 UART1_Init(); // инициализация UART1 на скорость 38400.
igor_v 30:17c84ed091b3 141
igor_v 30:17c84ed091b3 142
igor_v 30:17c84ed091b3 143 DAC_ADC_Exchange_Init(); // инициализация обмена АЦП и ЦАП.
igor_v 30:17c84ed091b3 144 DACInit(); // инициализация ЦАП.
igor_v 30:17c84ed091b3 145 SOI_Init(); // Инициализация квадратурного энкодера.
igor_v 30:17c84ed091b3 146
igor_v 30:17c84ed091b3 147 IntLatch_Init(); // инициализация внутренней защелки.
igor_v 30:17c84ed091b3 148 ExtLatch_Init(); // инициализация внешней защелки.
igor_v 0:8ad47e2b6f00 149
igor_v 3:ed8744c5f67a 150 //----------------debug-------------------------
igor_v 5:02e9f559395c 151 //LPC_GPIO2->FIODIR = 0x5C; // P2.0...P2.7 defined as Outputs
igor_v 5:02e9f559395c 152 //LPC_GPIO2->FIOCLR = 0x5C; // turn off all the LEDs
igor_v 3:ed8744c5f67a 153 //----------------debug-------------------------
igor_v 3:ed8744c5f67a 154
igor_v 3:ed8744c5f67a 155
igor_v 13:e2a1d18677b8 156
igor_v 21:bc8c1cec3da6 157 LoadFlashParam(FromFLASH); //загрузка параметров.
igor_v 21:bc8c1cec3da6 158 UART_DMA_Init(); //инициализация DMA для UART.
igor_v 21:bc8c1cec3da6 159 G_Photo_Init(); //инициализация интерфейса I2C для фотодетектора.
igor_v 21:bc8c1cec3da6 160 Out_G_photo(60, 60); //запись в буфер мастера принятые от функции данные (60,60) и установка флага старта передачи и занятой шины.
igor_v 0:8ad47e2b6f00 161 // WDTInit();
igor_v 0:8ad47e2b6f00 162
igor_v 0:8ad47e2b6f00 163
igor_v 30:17c84ed091b3 164 open_all_loops(); //#define open_all_loops() RgConA = 0 (Основной регистр управления устройства (0 - включить, 1 - отключить)).
igor_v 30:17c84ed091b3 165 Output.Str.HF_reg = Device_blk.Str.HF_min; //HFO output voltage = максивальное напряжение на ГВЧ.
igor_v 30:17c84ed091b3 166 init_PLC(); //Инициализация СРП(регулировка периметра)
igor_v 30:17c84ed091b3 167 init_Dither_reg(); //инициализация вибропривода
igor_v 30:17c84ed091b3 168 RgConB = RATE_VIBRO_1; // дополнительный регистр управления = разность вибросчетчиков после фильтра скольз.среднего(#define RATE_VIBRO_1 0x0001)
igor_v 21:bc8c1cec3da6 169
igor_v 5:02e9f559395c 170 init_Vibro();
igor_v 5:02e9f559395c 171 init_timer(TIME_INTERVAL ); // 10ms
igor_v 5:02e9f559395c 172 enable_timer1();
igor_v 5:02e9f559395c 173 Init_TIM2();
igor_v 5:02e9f559395c 174 enable_timer2();
igor_v 5:02e9f559395c 175 close_all_loops();
igor_v 0:8ad47e2b6f00 176
igor_v 13:e2a1d18677b8 177
igor_v 5:02e9f559395c 178 LPC_GPIO0->FIOCLR = (1<<5);
igor_v 5:02e9f559395c 179
igor_v 3:ed8744c5f67a 180
igor_v 15:f5191a1c3805 181 Event1Hz = 0;
igor_v 15:f5191a1c3805 182 Event1K = 0;
igor_v 15:f5191a1c3805 183 Event100K = 0;
igor_v 15:f5191a1c3805 184 EventVibro = 0;
igor_v 15:f5191a1c3805 185 Time1K = 0;
igor_v 15:f5191a1c3805 186 Time100K = 0;
igor_v 15:f5191a1c3805 187 Time1Hz = 0;
igor_v 15:f5191a1c3805 188 Clock1Hz = 0;
igor_v 36:65c171b56105 189 Gyro.Discharg = StartDischarg;
igor_v 36:65c171b56105 190
igor_v 3:ed8744c5f67a 191 Pulse_8Point = 0;
igor_v 3:ed8744c5f67a 192 Pulse_16Point = 0;
igor_v 3:ed8744c5f67a 193 Pulse_32Point = 0;
igor_v 0:8ad47e2b6f00 194
igor_v 3:ed8744c5f67a 195 Temp_AMP=0;
igor_v 3:ed8744c5f67a 196 Temp_ADC_2=0;
igor_v 3:ed8744c5f67a 197 Temp_ADC_3=0;
igor_v 3:ed8744c5f67a 198 Temp_ADC_4=0;
igor_v 3:ed8744c5f67a 199 Temp_ADC_5=0;
igor_v 0:8ad47e2b6f00 200
igor_v 3:ed8744c5f67a 201 for (y = 0; y < 256; y++ ) {
igor_v 5:02e9f559395c 202 Buff_16Point[y] = 0xffff;
igor_v 5:02e9f559395c 203 Buff_8Point[y] = 0xffff;
igor_v 5:02e9f559395c 204 Buff_32Point[y] = 0xffff;
igor_v 21:bc8c1cec3da6 205 Buff_ADC_1[y] = 0; // ампл ацп.
igor_v 5:02e9f559395c 206 Buff_ADC_2[y] = 0;
igor_v 5:02e9f559395c 207 Buff_ADC_3[y] = 0;
igor_v 5:02e9f559395c 208 Buff_ADC_4[y] = 0;
igor_v 5:02e9f559395c 209 Buff_ADC_5[y] = 0;
igor_v 3:ed8744c5f67a 210 }
igor_v 36:65c171b56105 211 WriteCon ("\n\r ...GL start programm uart 0.... ");
igor_v 36:65c171b56105 212 // WriteCon1 ("\n\r ...GL start programm uart 1.... ");
igor_v 15:f5191a1c3805 213 sprintf(Time,"\r\nCompiled: %s %s.",__DATE__, __TIME__ ); //Подготовка даты и времени компиляции
igor_v 13:e2a1d18677b8 214 WriteCon(Time);
igor_v 11:af609f6dee46 215
igor_v 36:65c171b56105 216 while (1) { Concol (); if (OutBufConCount) OutBufConCount--; } // Проврка 0 консоли (вход и выход)
igor_v 11:af609f6dee46 217
igor_v 21:bc8c1cec3da6 218 do { //основной цикл.
igor_v 15:f5191a1c3805 219 Concol (); // Проврка 0 консоли (вход и выход)
igor_v 3:ed8744c5f67a 220 if (OutBufConCount) OutBufConCount--;
igor_v 15:f5191a1c3805 221
igor_v 15:f5191a1c3805 222 if (ReadCon (Time)) {
igor_v 16:18e3fd7b92d0 223 if (Time[0] == 'h') { // если ввели буквц h то выдать подсказку. сделанно через принф ОЧЕНЬ плохо в работе не использовать
igor_v 15:f5191a1c3805 224 sprintf(Time,"\r\nCompiled: %s %s.",__DATE__, __TIME__ ); //Подготовка даты и времени компиляции
igor_v 15:f5191a1c3805 225 WriteCon(Time);
igor_v 15:f5191a1c3805 226 sprintf(Time,"--%d.%3.d.%2.d.",Clock1Hz,Time1K,Time100K); //Временно выдачпа временни из трех чисел
igor_v 15:f5191a1c3805 227 WriteCon(Time);
igor_v 15:f5191a1c3805 228 }
igor_v 15:f5191a1c3805 229 }
igor_v 15:f5191a1c3805 230
igor_v 36:65c171b56105 231
igor_v 36:65c171b56105 232
igor_v 36:65c171b56105 233 // Concol1 ();
igor_v 36:65c171b56105 234
igor_v 36:65c171b56105 235
igor_v 36:65c171b56105 236 if (OutBufCon1Count) OutBufCon1Count--;
igor_v 36:65c171b56105 237
igor_v 36:65c171b56105 238
igor_v 36:65c171b56105 239 if (ReadCon1 (Time)) {
igor_v 36:65c171b56105 240 if (Time[0] == 'h') { // если ввели буквц h то выдать подсказку. сделанно через принф ОЧЕНЬ плохо в работе не использовать
igor_v 36:65c171b56105 241 sprintf(Time,"\r\n Uart 2 Compiled: %s %s.",__DATE__, __TIME__ ); //Подготовка даты и времени компиляции
igor_v 36:65c171b56105 242 WriteCon1(Time);
igor_v 36:65c171b56105 243 sprintf(Time,"--%d.%3.d.%2.d.",Clock1Hz,Time1K,Time100K); //Временно выдачпа временни из трех чисел
igor_v 36:65c171b56105 244 WriteCon1(Time);
igor_v 36:65c171b56105 245 }
igor_v 36:65c171b56105 246 }
igor_v 36:65c171b56105 247
igor_v 36:65c171b56105 248
igor_v 36:65c171b56105 249
igor_v 36:65c171b56105 250
igor_v 36:65c171b56105 251
igor_v 15:f5191a1c3805 252 if (Event1Hz) {// событие раз в 1 Гц
igor_v 15:f5191a1c3805 253 Event1Hz --;
igor_v 15:f5191a1c3805 254 Clock1Hz++;
igor_v 16:18e3fd7b92d0 255
igor_v 16:18e3fd7b92d0 256 //============================= блок управления поджигом и подсветкой, сделанно через сдвиг======================
igor_v 36:65c171b56105 257 if (Gyro.Discharg) { //Проверка поджига
igor_v 36:65c171b56105 258 if (Gyro.Discharg & 0x01) Gyro.PinReg |= PinRegBitD;
igor_v 36:65c171b56105 259 else Gyro.PinReg &= ~PinRegBitD;
igor_v 33:341521841d3a 260 Gyro.Discharg = Gyro.Discharg >> 1;
igor_v 16:18e3fd7b92d0 261 }
igor_v 36:65c171b56105 262
igor_v 16:18e3fd7b92d0 263
igor_v 15:f5191a1c3805 264 }
igor_v 15:f5191a1c3805 265 if (Event1K) {// событие раз в 1 кГц
igor_v 15:f5191a1c3805 266 Event1K --;
igor_v 15:f5191a1c3805 267 Time1K++;
igor_v 15:f5191a1c3805 268 if (Time1K == 1000) {
igor_v 15:f5191a1c3805 269 Time1K = 0;
igor_v 15:f5191a1c3805 270 Event1Hz ++;
igor_v 16:18e3fd7b92d0 271
igor_v 15:f5191a1c3805 272 }
igor_v 15:f5191a1c3805 273 }
igor_v 15:f5191a1c3805 274 if (Event100K) {// событие раз в 100 кГц
igor_v 15:f5191a1c3805 275 Event100K --;
igor_v 15:f5191a1c3805 276 Time100K++;
igor_v 15:f5191a1c3805 277 if (Time100K == 100) {
igor_v 15:f5191a1c3805 278 Time100K = 0;
igor_v 15:f5191a1c3805 279 Event1K ++;
igor_v 15:f5191a1c3805 280 }
igor_v 15:f5191a1c3805 281 }
igor_v 15:f5191a1c3805 282 if (EventVibro) {// событие от вибр
igor_v 15:f5191a1c3805 283 EventVibro --;
igor_v 15:f5191a1c3805 284 }
igor_v 15:f5191a1c3805 285
igor_v 15:f5191a1c3805 286
igor_v 15:f5191a1c3805 287
igor_v 15:f5191a1c3805 288
igor_v 3:ed8744c5f67a 289 Read_CMD();
igor_v 3:ed8744c5f67a 290 // VibroOut();
igor_v 3:ed8744c5f67a 291
igor_v 3:ed8744c5f67a 292 if(Time_1kHz>100) {
igor_v 3:ed8744c5f67a 293
igor_v 3:ed8744c5f67a 294 SEC++;
igor_v 5:02e9f559395c 295 if(Rate_Flag==1 && SEC>500) {
igor_v 3:ed8744c5f67a 296 SEC-=500;
igor_v 12:74bd0ecf7f83 297 // CMD_Rate();
igor_v 3:ed8744c5f67a 298 }
igor_v 3:ed8744c5f67a 299
igor_v 3:ed8744c5f67a 300 Time_1kHz-=100;
igor_v 3:ed8744c5f67a 301 }
igor_v 3:ed8744c5f67a 302 ButtonLightUP();
igor_v 3:ed8744c5f67a 303 //Device_blk.Str.
igor_v 15:f5191a1c3805 304 // TakeFromBuff();
igor_v 3:ed8744c5f67a 305
igor_v 21:bc8c1cec3da6 306 //отключение поджига.
igor_v 21:bc8c1cec3da6 307
igor_v 3:ed8744c5f67a 308 // paramV=TakeParam(1);
igor_v 3:ed8744c5f67a 309
igor_v 3:ed8744c5f67a 310
igor_v 15:f5191a1c3805 311
igor_v 21:bc8c1cec3da6 312 if (LPC_PWM1->IR & 0x0001) { // Если в регистре прерываний ШИМ1 (регистр PWM1IR) есть влаг прерывания совпадения счетчика с МАТСН (lim0 ?) то:
igor_v 21:bc8c1cec3da6 313
igor_v 16:18e3fd7b92d0 314 /* ResetCS(ADC); //prepare ADC for sampling
igor_v 3:ed8744c5f67a 315 SetDAC(DAC);
igor_v 21:bc8c1cec3da6 316 LPC_GPIO2->FIOSET |= 0x0000004; // turn on the LED
igor_v 21:bc8c1cec3da6 317 LPC_GPIO2->FIOSET |= 0x0000004; // turn on the LED
igor_v 21:bc8c1cec3da6 318 LPC_GPIO2->FIOSET |= 0x0000004; // turn on the LED
igor_v 16:18e3fd7b92d0 319 SetCS(ADC); //start ADC sampling
igor_v 3:ed8744c5f67a 320 ResetDAC(DAC); //start DAC prepearing for writing
igor_v 3:ed8744c5f67a 321 */
igor_v 3:ed8744c5f67a 322 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 323 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 324 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 3:ed8744c5f67a 325 secPuls++;
igor_v 3:ed8744c5f67a 326 tmpSec++;
igor_v 3:ed8744c5f67a 327 mSec++;
igor_v 0:8ad47e2b6f00 328
igor_v 3:ed8744c5f67a 329 i1++;
igor_v 3:ed8744c5f67a 330 if(i1>10000)
igor_v 3:ed8744c5f67a 331 //if(CountV31>30)
igor_v 3:ed8744c5f67a 332 {
igor_v 15:f5191a1c3805 333 WriteCon(".");
igor_v 3:ed8744c5f67a 334 i1=0;
igor_v 3:ed8744c5f67a 335 /*
igor_v 3:ed8744c5f67a 336 SendToBuffStr("\n\r");
igor_v 3:ed8744c5f67a 337 // if (Buff_ADC_1 [y] > 65535)SendToBuffStr(" 0 "); else SendToBuffStr(" 1 ");
igor_v 3:ed8744c5f67a 338 sprintf (BuffTemp,"<%05d> <%05d> <%05d> <%05d> <%05d>", Temp_AMP>>5,Temp_ADC_2>>5,Temp_ADC_3>>5,Temp_ADC_4>>5,Temp_ADC_5>>5);
igor_v 3:ed8744c5f67a 339 // sprintf (BuffTemp,"<%07d> <%07d> <%07d> <%07d> <%07d>", Spi.ADC1,Spi.ADC2,Spi.ADC3,Spi.ADC4,Spi.ADC5);
igor_v 3:ed8744c5f67a 340 SendToBuffStr(BuffTemp);
igor_v 3:ed8744c5f67a 341 */
igor_v 3:ed8744c5f67a 342 /*
igor_v 30:17c84ed091b3 343 WriteConByte (Gyro.T_Vib&0xff00);
igor_v 30:17c84ed091b3 344 WriteConByte (Gyro.T_Vib&0x00ff);
igor_v 30:17c84ed091b3 345 WriteConByte (Gyro.T_Vib);
igor_v 3:ed8744c5f67a 346 */
igor_v 3:ed8744c5f67a 347 /*
igor_v 3:ed8744c5f67a 348
igor_v 3:ed8744c5f67a 349 for (y = 0; y < 32; y++ )
igor_v 3:ed8744c5f67a 350 {
igor_v 3:ed8744c5f67a 351
igor_v 3:ed8744c5f67a 352 WriteCon(BuffTemp);
igor_v 3:ed8744c5f67a 353 } WriteCon("\n\r");
igor_v 0:8ad47e2b6f00 354
igor_v 3:ed8744c5f67a 355 */
igor_v 3:ed8744c5f67a 356 /*
igor_v 30:17c84ed091b3 357 Gyro.T_Vib=((7680000*16/Gyro.Frq)*4096);
igor_v 30:17c84ed091b3 358 th= Gyro.T_Vib&0xff00;
igor_v 30:17c84ed091b3 359 tt= Gyro.T_Vib&0x00ff;
igor_v 30:17c84ed091b3 360 sprintf(BuffTemp,"<%07d >",( (Gyro.T_Vib&0xff00)));
igor_v 3:ed8744c5f67a 361 SendToBuffStr(BuffTemp);
igor_v 3:ed8744c5f67a 362
igor_v 30:17c84ed091b3 363 sprintf(BuffTemp,"<%07d >",( ( Gyro.T_Vib&0x00ff)));
igor_v 3:ed8744c5f67a 364 SendToBuffStr(BuffTemp);
igor_v 15:f5191a1c3805 365
igor_v 3:ed8744c5f67a 366 CuruAngleOld=CuruAngle;*/
igor_v 3:ed8744c5f67a 367 // Spi.ADC1=Spi.ADC1*0.000061;
igor_v 3:ed8744c5f67a 368
igor_v 3:ed8744c5f67a 369
igor_v 3:ed8744c5f67a 370
igor_v 3:ed8744c5f67a 371
igor_v 3:ed8744c5f67a 372 /*
igor_v 3:ed8744c5f67a 373
igor_v 3:ed8744c5f67a 374 sprintf(BuffTemp,"\n\r<%05d><%05d><%05d><%05d><%05d>",Spi.ADC1,Spi.ADC2,Spi.ADC3,Spi.ADC4,Spi.ADC5);
igor_v 3:ed8744c5f67a 375 SendToBuffStr(BuffTemp);
igor_v 3:ed8744c5f67a 376
igor_v 3:ed8744c5f67a 377 */
igor_v 3:ed8744c5f67a 378
igor_v 3:ed8744c5f67a 379 /* sprintf(BuffTemp,"<%d>",(FrecTemp));
igor_v 3:ed8744c5f67a 380 SendToBuffStr(BuffTemp);
igor_v 3:ed8744c5f67a 381 for (y = 0; y < 32; y++ )
igor_v 3:ed8744c5f67a 382 {
igor_v 3:ed8744c5f67a 383 sprintf(BuffTemp," <%07d>", (Buff_16PointD [y]-65535));
igor_v 3:ed8744c5f67a 384 SendToBuffStr(BuffTemp);
igor_v 3:ed8744c5f67a 385 } */
igor_v 15:f5191a1c3805 386
igor_v 3:ed8744c5f67a 387 }
igor_v 3:ed8744c5f67a 388
igor_v 3:ed8744c5f67a 389
igor_v 3:ed8744c5f67a 390
igor_v 3:ed8744c5f67a 391
igor_v 0:8ad47e2b6f00 392
igor_v 0:8ad47e2b6f00 393
igor_v 0:8ad47e2b6f00 394
igor_v 0:8ad47e2b6f00 395
igor_v 0:8ad47e2b6f00 396 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 397 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 398 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 399
igor_v 0:8ad47e2b6f00 400
igor_v 0:8ad47e2b6f00 401
igor_v 3:ed8744c5f67a 402
igor_v 3:ed8744c5f67a 403 LPC_GPIO2->FIOSET |= 0x0000004; // turn on the LED
igor_v 3:ed8744c5f67a 404
igor_v 0:8ad47e2b6f00 405
igor_v 21:bc8c1cec3da6 406 Curr_Cnt_Vib = LPC_QEI->POS; // записать в переменную Curr_Cnt_Vib текущее положение Энкодера. (текущее количество импульсов)
igor_v 21:bc8c1cec3da6 407 Latch_Event(); //определение защелки
igor_v 3:ed8744c5f67a 408
igor_v 21:bc8c1cec3da6 409 clc_Pulses(); // счетчик импульсов. RATE_REPER_OR_REFMEANDR или RATE_VIBRO_1
igor_v 0:8ad47e2b6f00 410
igor_v 0:8ad47e2b6f00 411
igor_v 21:bc8c1cec3da6 412 //ADC_Input(); // проверка флагов заполнения буфера и четение Thermo1, Thermo2, HF_out в масив Input.ArrayIn[n].
igor_v 21:bc8c1cec3da6 413 //DAC_ADC_Exchange();// проверка флагов заполнения буфера и зпись в ЦАПы.
igor_v 21:bc8c1cec3da6 414 ServiceTime();//секундный таймер.
igor_v 21:bc8c1cec3da6 415 clc_ThermoSensors();//расчет средней температуры за секунду
igor_v 21:bc8c1cec3da6 416 clc_HFO(); //расчет значения для передачи в контур ГВЧ(на цап).
igor_v 21:bc8c1cec3da6 417
igor_v 3:ed8744c5f67a 418 clc_PLC();
igor_v 3:ed8744c5f67a 419 // clc_Dith_regulator();
igor_v 3:ed8744c5f67a 420 clc_OutFreq_regulator();
igor_v 3:ed8744c5f67a 421 Output.Str.WP_sin = clc_WP_sin();
igor_v 3:ed8744c5f67a 422 contrl_GLD();
igor_v 3:ed8744c5f67a 423 G_Photo_Exchange();
igor_v 3:ed8744c5f67a 424 // Output.Str.T_Vibro = paramV*48;
igor_v 0:8ad47e2b6f00 425
igor_v 3:ed8744c5f67a 426
igor_v 3:ed8744c5f67a 427 Line_1_Rcv();
igor_v 3:ed8744c5f67a 428 decode_CMD();
igor_v 3:ed8744c5f67a 429 transm_DAT();
igor_v 12:74bd0ecf7f83 430 //îòêëþ÷åíèå ïîäæèãà.
igor_v 3:ed8744c5f67a 431
igor_v 3:ed8744c5f67a 432
igor_v 13:e2a1d18677b8 433 // data_Rdy &= ~RESET_PERIOD;
igor_v 0:8ad47e2b6f00 434
igor_v 0:8ad47e2b6f00 435
igor_v 3:ed8744c5f67a 436 LPC_PWM1->IR = 0x0001; //e. clear interrupt flag
igor_v 13:e2a1d18677b8 437 LPC_GPIO2->FIOCLR |= 0x0000004; // turn off the LED
igor_v 0:8ad47e2b6f00 438
igor_v 0:8ad47e2b6f00 439 // WDTFeed();
igor_v 0:8ad47e2b6f00 440 //SPI_Exchange();
igor_v 3:ed8744c5f67a 441
igor_v 3:ed8744c5f67a 442 }
igor_v 3:ed8744c5f67a 443
igor_v 3:ed8744c5f67a 444 } while ( 1 ); // main infinie loop
igor_v 0:8ad47e2b6f00 445 }
igor_v 0:8ad47e2b6f00 446
igor_v 0:8ad47e2b6f00 447 /******************************************************************************
igor_v 0:8ad47e2b6f00 448 ** End Of File
igor_v 0:8ad47e2b6f00 449 ******************************************************************************/
igor_v 0:8ad47e2b6f00 450
igor_v 0:8ad47e2b6f00 451