fork

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Kovalev_D
Date:
Mon Sep 04 12:55:13 2017 +0000
Revision:
217:15cd8752bb6c
Parent:
129:406995a91322
dd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
igor_v 21:bc8c1cec3da6 1 #ifndef DEVICE
igor_v 21:bc8c1cec3da6 2 #define DEVICE
igor_v 0:8ad47e2b6f00 3
igor_v 21:bc8c1cec3da6 4 //e. constants for the piecewise-linear thermocompensation //r. константы для кусочно-линейной термокомпенсации
igor_v 21:bc8c1cec3da6 5 #define TERMO_FUNC_SIZE 14 //e. amount of the points of the table function of thermocompensation //r. количество точек табличной функции термокомпенсации
igor_v 21:bc8c1cec3da6 6 #define MAX_ORDER 9 //e. maximal value of order for the thermocompensation coefficients //r. максимальная величина порядка для коэффициентов термокомпенсации
igor_v 21:bc8c1cec3da6 7 #define TSENS_NUMB 4 //e. number of the temperature sensor used for the thermocompensation //r. номер термодатчика, используемого для компенсации
igor_v 0:8ad47e2b6f00 8
igor_v 21:bc8c1cec3da6 9 typedef enum _TERMO_MODE { //e. thermocompensation modes //r. режимы работы термокомпенсации
igor_v 21:bc8c1cec3da6 10 TERMO_OFF, //e. thermocompensation is switched off //r. термокомпенсация выключена
igor_v 21:bc8c1cec3da6 11 TERMO_ON, //e. thermocompensation is switched on //r. термокомпенсация включена
igor_v 21:bc8c1cec3da6 12 TERMO_ON_NUMB_OFF, //e. thermocompensation is switched on, number resets (debug mode) //r. термокомпенсация включена, число зануляется (отладочный режим)
igor_v 21:bc8c1cec3da6 13 TERMO_ON_STATIC_ONLY, //e. only static thermocompensation is switched on //r. включена только статическая термокомпенсация
igor_v 21:bc8c1cec3da6 14 TERMO_ON_DYNAMIC_ONLY, //e. only dynamic thermocompensation is switched on //r. включена только динамическая термокомпенсация
igor_v 21:bc8c1cec3da6 15 TERMO_ON_STATIC_ONLY_NUMB_OFF, //e. static thermocompensation is switched on, number resets (debug mode) //r. статическая термокомпенсациявключена, число зануляется (отладочный режим)
igor_v 21:bc8c1cec3da6 16 TERMO_ON_DYNAMIC_ONLY_NUMB_OFF //e. dynamic thermocompensation is switched on, number resets (debug mode) //r. динамическая термокомпенсациявключена, число зануляется (отладочный режим)
igor_v 0:8ad47e2b6f00 17 } TERMO_MODE;
igor_v 0:8ad47e2b6f00 18
igor_v 21:bc8c1cec3da6 19 typedef enum _WATCH_MODE { //e. variants of control points for scope //r. варианты контрольных точек для осциллографа
igor_v 21:bc8c1cec3da6 20 VB_DELAY_MEANDER, //e. the delayed on the VB_phs meander //r. задержанный меандр на величину VB_phs
igor_v 21:bc8c1cec3da6 21 VB_PHASE_DETECTOR, //e. output of the PD of the dither drive //r. выход фазового детектора виюропривода
igor_v 21:bc8c1cec3da6 22 VB_PHASE_DETECTOR_1_SEC, //e. output of integral of the PD of the dither drive for 1 Sec //r. выход интеграла ФД вибропривода за 1 сек
igor_v 21:bc8c1cec3da6 23 VB_INTEGRATOR_40T, //e. output of integral of the PD of the dither drive for 40 periods //r. выход интеграла ФД вибропривода за 40 периодов
igor_v 21:bc8c1cec3da6 24 WP_PHASE_DETECTOR //e. output of the PD of the CPLC regulator //r. выход фазового детектора контура СРП
igor_v 0:8ad47e2b6f00 25 } WATCH_MODE;
igor_v 0:8ad47e2b6f00 26
igor_v 21:bc8c1cec3da6 27 //e. ===== device operation modes ================================================================ //r. ===== режимы работы прибора ================================================================
igor_v 21:bc8c1cec3da6 28 #define DM_INT_10KHZ_LATCH 1 //e. mode of internal latch 10 kHz //r. режим внутренней защелки 10 кГц
igor_v 0:8ad47e2b6f00 29 #define DM_INT_LATCH_DELTA_PS 2
igor_v 0:8ad47e2b6f00 30 #define DM_INT_LATCH_DELTA_BINS 3
igor_v 21:bc8c1cec3da6 31 #define DM_EXT_LATCH_DELTA_PS_PULSE 4 //e. mode of external latch with output of the Delta_PS command by pulse //r. режим внешней защелки с выдачей команды Delta_PS по импульсу
igor_v 21:bc8c1cec3da6 32 #define DM_EXT_LATCH_DELTA_BINS_PULSE 6 //e. mode of external latch with output of the Delta_BINS command by pulse//r. режим внешней защелки с выдачей команды Delta_BINS по импульсу
igor_v 21:bc8c1cec3da6 33 #define DM_EXT_LATCH_DELTA_SF_PULSE 7 //e. mode of Delta Scale factor //r. режим Delta_SF command
igor_v 0:8ad47e2b6f00 34
igor_v 21:bc8c1cec3da6 35 //e. *** the BLOCK of VARIABLES, LOADED from FLASH-memory ********************** //r. *** БЛОК ПЕРЕМЕННЫХ, ЗАГРУЖАЕМЫХ из FLASH-памяти **********************
igor_v 21:bc8c1cec3da6 36 //e. Address (parameter number in the block = 0..255 ) //r. Адрес (Номер параметра в блоке = 0..255)
Kovalev_D 129:406995a91322 37 /*typedef union {
igor_v 21:bc8c1cec3da6 38 int Array[171];
igor_v 21:bc8c1cec3da6 39 struct {
igor_v 21:bc8c1cec3da6 40 // Device_blk
igor_v 21:bc8c1cec3da6 41 int My_Addres; //e. 0 - device own address //r.0 - собственный адрес устройства
igor_v 21:bc8c1cec3da6 42
igor_v 21:bc8c1cec3da6 43 //e. =============== parameters of HFO regulator =============== //r. =============== параметры контура ВЧ генератора накачки ===============
igor_v 21:bc8c1cec3da6 44 int HF_ref; //e. 1 - value of the reference //r. 1 - значение опоры
igor_v 21:bc8c1cec3da6 45 int HF_scl; //e. 2 - the gain factor (1.15) //r. 2 - коэффициент передачи (1.15)
igor_v 21:bc8c1cec3da6 46 int HF_min; //r. 3 - минимум выходного значения на ЦАПе регулятора (соответствует максим. напряжению на ГВЧ)
igor_v 21:bc8c1cec3da6 47 int HF_max; //e. 4 - maximum of the output value on the regulator DAC (appropriate to minimal voltage on the HFO) //r. 4 - максимум выходного значения на ЦАПе регулятора (соответствует миним. напряжению на ГВЧ)
igor_v 21:bc8c1cec3da6 48
igor_v 21:bc8c1cec3da6 49 //e. =============== parameters of the regulator of the DS power regulator ========== //r. =============== параметры контура регулирования мощности ДУП ==========
igor_v 21:bc8c1cec3da6 50 int RI_ref; //e. 5 - value of the reference //r. 5 - значение опоры
igor_v 21:bc8c1cec3da6 51 int RI_scl; //e. 6 - the gain factor (1.15) //r. 6 - коэффициент передачи (1.15)
igor_v 0:8ad47e2b6f00 52
igor_v 21:bc8c1cec3da6 53 //e. =============== parameters of the CPLC regulator ===== //r. =============== параметры контура стабилизации рабочего периметра (СРП) =====
igor_v 21:bc8c1cec3da6 54 int WP_ref; //e. 7 - value of the reference //r. 7 - значение опоры
igor_v 21:bc8c1cec3da6 55 int WP_scl; //e. 8 - the gain factor (1.15) //r. 8 - коэффициент передачи (1.15)
igor_v 21:bc8c1cec3da6 56 int WP_mdy; //e. 9 - value of the reset delay //r. 9 - значение задержки сброса
igor_v 21:bc8c1cec3da6 57 int WP_rup; //e. 10 - upper value of DAC adjustment (appropriate to minimal voltage on the heater) //r. 10 - верхнее значение регулировки ЦАП (соответствует миним. напряжению на нагревателе)
igor_v 21:bc8c1cec3da6 58 int WP_rdw; //e. 11 - lower value of the DAC adjustment (appropriate to maximal voltage on the heater) //r. 11 - верхнее значение регулировки ЦАП (соответствует максим. напряжению на нагревателе)
igor_v 21:bc8c1cec3da6 59
igor_v 21:bc8c1cec3da6 60 //e. =============== parameters of the dither drive regulator of the GLD ==================== //r. =============== параметры контура вибропривода ГЛД ====================
igor_v 21:bc8c1cec3da6 61 int VB_phs; //e. 12 - the phase delay parameter of the dither drive PLL //r. 12 - параметр Phase_зад. СРЧ вибропривода
igor_v 21:bc8c1cec3da6 62 int VB_scl; //e. 13 - the gain factor (1.15) of the dither drive PLL //r. 13 - коэффициент передачи (1.15) СРЧ вибропривода
igor_v 21:bc8c1cec3da6 63 unsigned int VB_N; //e. 14 - divider for dither drive period (defines dither period) //r. 14 - коэфф.деления N вибропривода (период колебаний) ВП
igor_v 21:bc8c1cec3da6 64 unsigned int VB_Nmin; //e. 15 - minimum of the output value of the oscillation period regulator //r. 15 - минимум выходного значения регулятора периода
igor_v 21:bc8c1cec3da6 65 unsigned int VB_Nmax; //e. 16 - maximum of the output value of the oscillation period regulator //r. 16 - максимум выходного значения регулятора периода
igor_v 0:8ad47e2b6f00 66
igor_v 21:bc8c1cec3da6 67 int VB_Fdf_Hi; //e. 17 - adjusted output frequency (H) //r. 17 - заданная частота расщепления (H)
igor_v 21:bc8c1cec3da6 68 unsigned int VB_Fdf_Lo; //e. 18 - (L) (double precision) //r. 18 - (L) (двойная точность)
igor_v 0:8ad47e2b6f00 69
igor_v 21:bc8c1cec3da6 70 int VB_Fsc; //e. 19 - the gain factor of the frequency regulator //r. 19 - коэффициент передачи регулятора частоты расщепления
igor_v 21:bc8c1cec3da6 71 unsigned int VB_Tmin; //e. 20 - the gain factor of the frequency regulator //r. 19 - коэффициент передачи регулятора частоты расщепления
igor_v 21:bc8c1cec3da6 72 unsigned int VB_Tmax; //e. 21 - maximum of the output value of the regulator //r. 21 - максимум выходного значения регулятора Tau
igor_v 21:bc8c1cec3da6 73 unsigned int VB_tau; //e. 22 - pulse width of the dither drive (without noise)//r. 22 - длительность импульса вибропривода (до ошумления)
igor_v 21:bc8c1cec3da6 74 int VBN_Tzd; //e. 23 - adjusted noise period //r. 23 - заданный период ошумления
igor_v 21:bc8c1cec3da6 75 int VBN_Ran; //e. 24 - range of the random component of noise //r. 24 - диапазон случайной составляющей ошумления VBN_Tsl
igor_v 21:bc8c1cec3da6 76 int VBN_k; //e. 25 - adjusted noise constant //r. 25 - заданная константа ошумления
igor_v 21:bc8c1cec3da6 77
igor_v 21:bc8c1cec3da6 78 //e. =============== parameters of processing of accurate data ============= //r. =============== параметры обработки точностной информации =============
igor_v 21:bc8c1cec3da6 79 int PI_Fsc; //_ //e. 26 - the S_ds scale parameter //r. 26 - масштабный коэффициент Sдуп
igor_v 21:bc8c1cec3da6 80 int PI_Fb0; //_ //e. 27 - the B_ds zero shift of the DS //r. 27 - смещение нуля ДУПа Bдуп
igor_v 21:bc8c1cec3da6 81 int PI_scl; //_ //e. 28 - the Scale scale coefficient of the gyro //r. 28 - масштабный коэфф. гироскопа Scale
igor_v 21:bc8c1cec3da6 82 int PI_bia; //_ //e. 29 - the Bias zero shift of the gyro //r. 29 - смещение нуля гироскопа Bias
igor_v 0:8ad47e2b6f00 83
igor_v 21:bc8c1cec3da6 84 //e. =============== coefficients of the temperature correction ================= //r. =============== коэффициенты температурной коррекции =================
igor_v 21:bc8c1cec3da6 85 int PI_a0; //_ // 30
igor_v 21:bc8c1cec3da6 86 int PI_a1; //_ // 31
igor_v 21:bc8c1cec3da6 87 int PI_a2; //_ // 32
igor_v 21:bc8c1cec3da6 88 int PI_a3; //_ // 33
igor_v 21:bc8c1cec3da6 89 int PI_a4; //_ // 34
igor_v 21:bc8c1cec3da6 90 int PI_a5; //_ // 35
igor_v 21:bc8c1cec3da6 91 int PI_a6; //_ // 36
igor_v 21:bc8c1cec3da6 92 int PI_b1; //_ // 37
igor_v 21:bc8c1cec3da6 93 int PI_b2; //_ // 38
igor_v 21:bc8c1cec3da6 94 int PI_b3; //_ // 39
igor_v 21:bc8c1cec3da6 95 int PI_b4; //_ // 40
igor_v 21:bc8c1cec3da6 96 int PI_b5; //_ // 41
igor_v 21:bc8c1cec3da6 97 int PI_b6; //_ // 42
igor_v 0:8ad47e2b6f00 98
igor_v 21:bc8c1cec3da6 99 //e. =============== parameters of normalization of the temperature sensors ============= //r. =============== параметры нормировки датчиков температуры =============
igor_v 0:8ad47e2b6f00 100
igor_v 21:bc8c1cec3da6 101 int Tmp_bias[6]; //_ //e. 43 - an array of shifts of the 0..5 temperature sensors //r. 43 - массив сдвигов температурных датчиков 0..5
igor_v 21:bc8c1cec3da6 102 int Tmp_scal[6]; //_ //e. 49 - an array of the scale coefficients of temperature sensors//r. 49 - массив масштабных к-тов температурных датчиков
igor_v 21:bc8c1cec3da6 103 int WP_reset; //e. 55 - initial position of the CPLC regulator (after reset) //r. 55 - исходное положение регулятора СРП (после сброса)
igor_v 21:bc8c1cec3da6 104
igor_v 21:bc8c1cec3da6 105 //e. ================ gain factor of photodetector channels =========== //r. ================ к-т усиления каналов фотоприемника ===========
igor_v 21:bc8c1cec3da6 106 unsigned int Gain_Ph_A; //e. 56 - initial gain factor of the A channel of photodetector //r. 56 - начальный к-т усиления канала А фотоприемника
igor_v 21:bc8c1cec3da6 107 unsigned int Gain_Ph_B; //e. 57 - initial gain factor of the B channel of photodetector //r. 57 - начальный к-т усиления канала B фотоприемника
igor_v 0:8ad47e2b6f00 108
igor_v 21:bc8c1cec3da6 109 //e. =============== switch of the source of loading GLD variables block === //r. =============== переключатель источника загрузки блока переменных ГЛД (галочка в настороечной программе)
igor_v 21:bc8c1cec3da6 110 int Header_Word; //e. 58 - flash sector validity header //r. 58 - заголовок-ключ к индикатору источника загрузки
igor_v 21:bc8c1cec3da6 111 int LoadFlash_enable; //e. 59 - source loading flag: 1 - load from the flash //r. 59 - признак источника загрузки: 1 - грузиться из flesh
igor_v 21:bc8c1cec3da6 112 //e. 0 - load default parameters (factory) //r. 0 - грузить параметры по умолчанию (заводские)
igor_v 21:bc8c1cec3da6 113 unsigned int Device_SerialNumber; //e. 60 - serial number of the device //r. 60 - серийный номер прибора
igor_v 21:bc8c1cec3da6 114 int Reserved0; //e. 61 - not used
igor_v 21:bc8c1cec3da6 115 TERMO_MODE TermoMode; //e 62 - device operation mode (with thermocompenstion, without it, debug )//r. 62 - режим работы прибора (с термокомпенсацией, без нее или отладка)
igor_v 21:bc8c1cec3da6 116 //e. addition for the piecewise-linear termocorrection //r. добавление для кусочно-линейной термокоррекции
igor_v 21:bc8c1cec3da6 117 int TemperInt[TERMO_FUNC_SIZE]; //e. 63
igor_v 21:bc8c1cec3da6 118 float TermoFunc[TERMO_FUNC_SIZE]; //e. 77
igor_v 21:bc8c1cec3da6 119 int WP_reset2; //e. 91 - voltages of CPLC regulator reset at cooling //r. xx - напряжения обнуления контура СРП при охлаждении
igor_v 21:bc8c1cec3da6 120 //e. parameters setting termocompensation parameters in dynamics (at heating and cooling) //r. параметры, задающие параметры термокомпенсации в динамике (при нагреве и охлаждении)
igor_v 21:bc8c1cec3da6 121 float Reserved1; //e. 92 - not used
igor_v 21:bc8c1cec3da6 122 float Reserved2; //e. 93 - not used
igor_v 21:bc8c1cec3da6 123 int K_vb_tu; //e. 94 - slope of dependence of the VB_N division factor from temperature (as though Hz/degree, but in relative units ) //r. крутизна зависимости коэффициента деления VB_N от температуры (как бы Гц/градус, но в у.е.)
igor_v 21:bc8c1cec3da6 124 int TemperNormal; //e. 95 -temperature for which the VB_N division factor of the dither drive is set //r. температура, для которой задан коэффициент деления вибропривода VB_N
igor_v 21:bc8c1cec3da6 125 int K_WP_rst_heating; //r. 96 - крутизна зависимости напряжения обнуления при нагревании от температуры (как бы вольт/градус, но в у.е. ЦАП и термодатчиков )
igor_v 21:bc8c1cec3da6 126 int K_WP_rst_cooling; //e. 97 - slope of dependence of a reset voltage at cooling from temperature (as though Volt/degree, but in relative units of DAC and temperature sensors) //r. крутизна зависимости напряжения обнуления при охлаждении от температуры (как бы вольт/градус, но в у.е. ЦАП и термодатчиков )
igor_v 21:bc8c1cec3da6 127 int WP_transition_step; //e. 98 - step of change of a heater voltage at resetting //r. шаг изменения напряжения нагревателя при выполнении обнуления
igor_v 21:bc8c1cec3da6 128 int Reserved3; // e. 99 -not used
igor_v 21:bc8c1cec3da6 129 int HF_scl_2; //r. 100 - коэффициент передачи (1.15) контура ГВЧ при обнулении
igor_v 21:bc8c1cec3da6 130 int TemperIntDyn[TERMO_FUNC_SIZE]; //e. 114 -
igor_v 21:bc8c1cec3da6 131 float ThermoHeatDelta[TERMO_FUNC_SIZE]; //e. 128 -
igor_v 21:bc8c1cec3da6 132 int DeltaTempRecalc; //r. 129 - температурный интервал пересчета динамич. компенсации (в у.е.) //e. temperature delta for dynamic thermocompensation recalculation(in relative units)
igor_v 21:bc8c1cec3da6 133 int TemperCoolIntDyn[TERMO_FUNC_SIZE]; // e. 143 -
igor_v 21:bc8c1cec3da6 134 float ThermoCoolDelta[TERMO_FUNC_SIZE]; //e. 157 -
igor_v 21:bc8c1cec3da6 135 } Str;
igor_v 0:8ad47e2b6f00 136 } TDEVICE_BLK;
igor_v 0:8ad47e2b6f00 137
igor_v 0:8ad47e2b6f00 138
igor_v 0:8ad47e2b6f00 139
Kovalev_D 129:406995a91322 140 */
igor_v 0:8ad47e2b6f00 141
igor_v 0:8ad47e2b6f00 142
igor_v 0:8ad47e2b6f00 143
igor_v 0:8ad47e2b6f00 144
igor_v 0:8ad47e2b6f00 145
igor_v 0:8ad47e2b6f00 146
igor_v 0:8ad47e2b6f00 147
igor_v 21:bc8c1cec3da6 148 //e. ************ end of the BLOCK of VARIABLES, LOADED from FLASH-memory ************ //r. ************ конец блока загружаемых из флэш-памяти параметров ГЛД ************
Kovalev_D 129:406995a91322 149 //e. the BLOCK of VARIABLES, LOADED from FLASH-memory //r. БЛОК ПЕРЕМЕННЫХ, ЗАГРУЖАЕМЫХ из FLASH-памяти
igor_v 0:8ad47e2b6f00 150
igor_v 0:8ad47e2b6f00 151 extern int Device_Mode;
igor_v 0:8ad47e2b6f00 152 extern unsigned Valid_Data;
igor_v 0:8ad47e2b6f00 153
igor_v 0:8ad47e2b6f00 154 extern unsigned ser_num;
igor_v 0:8ad47e2b6f00 155
igor_v 21:bc8c1cec3da6 156 extern int VB_Nmin0; //r. минимум выходного значения регулятора периода для температуры Device_blk.TemperNormal
igor_v 21:bc8c1cec3da6 157 extern int VB_Nmax0; //r. максимум выходного значения регулятора периода для температуры Device_blk.TemperNormal
igor_v 0:8ad47e2b6f00 158
igor_v 0:8ad47e2b6f00 159 extern unsigned BIT_number;
igor_v 21:bc8c1cec3da6 160 extern unsigned Is_BIT;
igor_v 0:8ad47e2b6f00 161
igor_v 21:bc8c1cec3da6 162 extern unsigned start_Rq; //r. запрос на запуск прибора
igor_v 21:bc8c1cec3da6 163 extern unsigned stop_Rq; //r. запрос на останов прибора
igor_v 21:bc8c1cec3da6 164 extern unsigned pulse_Rq; //r. запрос на поджиг лазера
igor_v 21:bc8c1cec3da6 165
igor_v 21:bc8c1cec3da6 166 //r. *** Приборные параметры по умолчанию ***
igor_v 21:bc8c1cec3da6 167 #define DEVICE_SN 1 //r. серийный номер прибора = 01
igor_v 21:bc8c1cec3da6 168 #define My_Addres_const 0 //r. - собственный адрес устройства
igor_v 0:8ad47e2b6f00 169
igor_v 21:bc8c1cec3da6 170 //r. ====== параметры контура ВЧ генератора накачки ===============
igor_v 21:bc8c1cec3da6 171
igor_v 21:bc8c1cec3da6 172 #define HF_REF_CONST 15080 //r. 1 - значение опоры
igor_v 21:bc8c1cec3da6 173 #define HF_SCL_CONST 1 //r. 2 - коэффициент передачи (1.15)
igor_v 21:bc8c1cec3da6 174 #define HF_MIN_CONST -32668 //r. 3 - минимум выходного значения на ЦАПе регулятора (соответствует максим. напряжению на ГВЧ)
igor_v 21:bc8c1cec3da6 175 #define HF_MAX_CONST -17379 //r. 4 - максимум выходного значения на ЦАПе регулятора (соответствует миним. напряжению на ГВЧ)
igor_v 21:bc8c1cec3da6 176 #define HFO_SHIFT 16 //r. число разрядов дробной части в 32-хбитовой переменной hf_reg32
igor_v 21:bc8c1cec3da6 177
igor_v 21:bc8c1cec3da6 178 //r. ====== параметры контура стабилизации рабочего периметра (СРП) =====
igor_v 0:8ad47e2b6f00 179
igor_v 21:bc8c1cec3da6 180 #define WP_REF_CONST 5 //r. 7 - значение опоры
igor_v 21:bc8c1cec3da6 181 #define WP_SCL_CONST 5 //r. 8 - коэффициент передачи (1.15)
igor_v 21:bc8c1cec3da6 182 #define WP_MDY_CONST 30 //r. 9 - значение задержки сброса
igor_v 21:bc8c1cec3da6 183 #define WP_RUP_CONST 31936 //r. 10 - нижнее значение регулировки ЦАП (соответствует миним. напряжению на нагревателе)
igor_v 21:bc8c1cec3da6 184 #define WP_RDW_CONST 11801 //r. 11 - верхнее значение регулировки ЦАП (соответствует максим. напряжению на нагревателе)
igor_v 21:bc8c1cec3da6 185
igor_v 21:bc8c1cec3da6 186
igor_v 21:bc8c1cec3da6 187 //r. =============== параметры контура вибропривода ГЛД ====================
igor_v 0:8ad47e2b6f00 188
igor_v 21:bc8c1cec3da6 189 #define VB_PHS_CONST 4 //r. 12 - параметр Phase_зад. СРЧ вибропривода
igor_v 21:bc8c1cec3da6 190 #define VB_SCL_CONST 1024 //r. 13 - коэффициент передачи (1.15) СРЧ вибропривода
igor_v 21:bc8c1cec3da6 191 #define T_VIB_START 16600 //r. 14 - коэфф.деления N вибропривода (период колебаний) ВП
igor_v 21:bc8c1cec3da6 192 //r. _VB_N начальный период колебаний вибропривода (406Hz-18916, 17067 - 450Hz)
igor_v 21:bc8c1cec3da6 193 #define T_VIB_DELTA 1000 //r. диапазон изменения периода колебаний вибропривода (~ +/- 10 Hz)
igor_v 0:8ad47e2b6f00 194
igor_v 21:bc8c1cec3da6 195 #define VB_NMIN_CONST 12080 //r. 15 - минимум выходного значения регулятора периода
igor_v 21:bc8c1cec3da6 196 #define VB_NMAX_CONST 64000 //r. 16 - максимум выходного значения регулятора периода
igor_v 21:bc8c1cec3da6 197 #define VB_FDF_HI_CONST 3 //r. 17 - заданная частота расщепления (H)
igor_v 21:bc8c1cec3da6 198 #define VB_FDF_LO_CONST 0 //r. 18 - (L) (двойная точность)
igor_v 21:bc8c1cec3da6 199 #define VB_FSC_CONST -2000 //r. 19 - коэффициент передачи регулятора частоты расщепления
igor_v 21:bc8c1cec3da6 200 #define VB_TMIN_CONST 100 //r. 20 - минимум выходного значения регулятора Tau
igor_v 21:bc8c1cec3da6 201 #define VB_TMAX_CONST 10022 //r. 21 - максимум выходного значения регулятора Tau
igor_v 21:bc8c1cec3da6 202 #define L_VIB_START 5120 //r. 22 - длительность импульса вибропривода (до ошумления)
igor_v 21:bc8c1cec3da6 203 //r. _VB_tau начальная длительность импульса вибропривода
igor_v 0:8ad47e2b6f00 204
igor_v 21:bc8c1cec3da6 205 #define VBN_TZD_CONST 500 //r. 23 - заданный период ошумления (константа пользователя)
igor_v 21:bc8c1cec3da6 206 #define VBN_RAN_CONST 400 //r. 24 - диапазон случайной составляющей ошумления VBN_Tsl
igor_v 21:bc8c1cec3da6 207 #define VBN_K_CONST 7000 //r. 25 - заданная константа ошумления (константа пользователя)
igor_v 0:8ad47e2b6f00 208
igor_v 21:bc8c1cec3da6 209 //r. =============== параметры контура регулирования мощности ДУП ==========
igor_v 21:bc8c1cec3da6 210 #define RI_REF_CONST 25600 //r. 5 - значение опоры
igor_v 21:bc8c1cec3da6 211 #define RI_SCL_CONST 0 //r. 6 - коэффициент передачи (1.15)
igor_v 21:bc8c1cec3da6 212
igor_v 21:bc8c1cec3da6 213
igor_v 21:bc8c1cec3da6 214 //r. =============== параметры обработки точностной информации =============
igor_v 21:bc8c1cec3da6 215 #define PI_FSC_CONST 128 //r. 26 - масштабный коэффициент Sдуп
igor_v 21:bc8c1cec3da6 216 #define PI_FB0_CONST 0 //r. 27 - смещение нуля ДУПа Bдуп
igor_v 21:bc8c1cec3da6 217 #define PI_SCL_CONST 256 //r. 28 - масштабный коэфф. гироскопа Scale
igor_v 21:bc8c1cec3da6 218 #define PI_BIA_CONST 0 //r. 29 - смещение нуля гироскопа Bias
igor_v 0:8ad47e2b6f00 219
igor_v 21:bc8c1cec3da6 220 //r. =============== коэффициенты температурной коррекции =================
igor_v 21:bc8c1cec3da6 221 #define PI_A0_CONST 0 // 30
igor_v 21:bc8c1cec3da6 222 #define PI_A1_CONST 0 // 31
igor_v 21:bc8c1cec3da6 223 #define PI_A2_CONST 0 // 32
igor_v 21:bc8c1cec3da6 224 #define PI_A3_CONST 0 // 33
igor_v 21:bc8c1cec3da6 225 #define PI_A4_CONST 0 // 34
igor_v 21:bc8c1cec3da6 226 #define PI_A5_CONST 0 // 35
igor_v 21:bc8c1cec3da6 227 #define PI_A6_CONST 0 // 36
igor_v 21:bc8c1cec3da6 228 #define PI_B1_CONST 0 // 37
igor_v 21:bc8c1cec3da6 229 #define PI_B2_CONST 0 // 38
igor_v 21:bc8c1cec3da6 230 #define PI_B3_CONST 0 // 39
igor_v 21:bc8c1cec3da6 231 #define PI_B4_CONST 0 // 40
igor_v 21:bc8c1cec3da6 232 #define PI_B5_CONST 0 // 41
igor_v 21:bc8c1cec3da6 233 #define PI_B6_CONST 0 // 42
igor_v 0:8ad47e2b6f00 234
igor_v 21:bc8c1cec3da6 235 #define TMP_SCALE 0x4000 // 43 - 54 Tmp_bias[6]; Tmp_scal[6]
igor_v 21:bc8c1cec3da6 236 #define TMP_BIAS 0
igor_v 21:bc8c1cec3da6 237 #define WP_RESET_CONST 7360 // 55
igor_v 21:bc8c1cec3da6 238 #define WP_RESET2_CONST 29216
igor_v 21:bc8c1cec3da6 239 #define WP_TRANS_STEP 32767
igor_v 21:bc8c1cec3da6 240 //r. ================ начальный к-т усиления каналов фотоприемника ===========
igor_v 21:bc8c1cec3da6 241 #define G_PHOTO_STRA 60 // 56
igor_v 21:bc8c1cec3da6 242 #define G_PHOTO_STRB 60 // 57
igor_v 0:8ad47e2b6f00 243
igor_v 21:bc8c1cec3da6 244 //r. =============== переключатель источника загрузки блока переменных ГЛД ===
igor_v 21:bc8c1cec3da6 245 #define HEADER_WORD_CONST 0x55aa //r. 58 - заголовок-ключ к индикатору источника загрузки
igor_v 21:bc8c1cec3da6 246
igor_v 21:bc8c1cec3da6 247 #define DITHER_REG_PERIOD 40 //r. период регулирования виброприода (в периодах вибропривода)
igor_v 0:8ad47e2b6f00 248
igor_v 21:bc8c1cec3da6 249 #define PLC_RESET_THRESHOLD (-3276) //r. соответствует напряжению +1.2 вольта
igor_v 0:8ad47e2b6f00 250
igor_v 21:bc8c1cec3da6 251 //r. мин.допустимая частота расщепления, при кот. данные считаются достоверными
igor_v 21:bc8c1cec3da6 252 #define F_RAS_MIN 10000 //r. минимальная частота расщепления при старте
igor_v 21:bc8c1cec3da6 253 #define F_OUT_MIN (5000>>4) // 5000 Гц / 16
igor_v 21:bc8c1cec3da6 254 #define F_OUT_NORM (70000>>4) // 90000 Гц / 16
igor_v 21:bc8c1cec3da6 255 #define F_OUT_MAX (300000>>4) // 300000 Гц / 16
igor_v 0:8ad47e2b6f00 256
igor_v 0:8ad47e2b6f00 257 #define Set_LightUp LPC_GPIO0->FIOSET = (1<<4) //set light up signal
igor_v 0:8ad47e2b6f00 258 #define Reset_LightUp LPC_GPIO0->FIOCLR = (1<<4) //reset light up signal
igor_v 0:8ad47e2b6f00 259
igor_v 21:bc8c1cec3da6 260 //r. константы для кусочно-линейной термокомпенсации
igor_v 21:bc8c1cec3da6 261 #define TERMO_FUNC_SIZE 14 //r. количество точек табличной функции термокомпенсации
igor_v 21:bc8c1cec3da6 262 #define MAX_ORDER 9 //r. максимальная величина порядка для коэффициентов термокомпенсации
igor_v 21:bc8c1cec3da6 263 #define TSENS_NUMB 4 //r. номер термодатчика, используемого для компенсации
igor_v 0:8ad47e2b6f00 264
igor_v 21:bc8c1cec3da6 265 #define VALID_START_4SEC 3 //r. время после старта, когда температура стала достоверной
igor_v 21:bc8c1cec3da6 266
igor_v 21:bc8c1cec3da6 267 #define N_START_MAX 1 // 4 //r. число попыток запуска прибора
igor_v 0:8ad47e2b6f00 268 #define LIGHT_UP_PULSE_WDTH 5000 //1000 //e. width of light-up pulse = 100 msec
igor_v 0:8ad47e2b6f00 269 #define LIGHT_UP_PAUSE 1000 //e. pause after light-up = 100 msec
igor_v 0:8ad47e2b6f00 270 #define LIGHT_UP_POLLING 10000 //e. time of waiting laser generation = 1 sec
igor_v 0:8ad47e2b6f00 271
igor_v 21:bc8c1cec3da6 272 // Status word errors bits
igor_v 0:8ad47e2b6f00 273 #define OUT_FREQ_ERROR 0x8000
igor_v 0:8ad47e2b6f00 274 #define DITH_FREQ_ERROR 0x4000
igor_v 0:8ad47e2b6f00 275 #define HFO_VOLT_ERROR 0x2000
igor_v 0:8ad47e2b6f00 276 #define THERMO_RANGE_ERROR 0x1000
igor_v 0:8ad47e2b6f00 277 #define THERMO_DIFF_ERROR 0x0800
igor_v 0:8ad47e2b6f00 278
igor_v 0:8ad47e2b6f00 279 #define TS_MIN -2500 // minimal temperature for our thermal sensors
igor_v 0:8ad47e2b6f00 280 #define TS_MAX +13000 // maximal temperature for our thermal sensors
igor_v 0:8ad47e2b6f00 281 #define TS_DIFF_MAX 1300 // maximal difference between 2 thermal sensors
igor_v 0:8ad47e2b6f00 282
igor_v 0:8ad47e2b6f00 283 #define HFO_NEG_MIN 8738 // -4.5 V
igor_v 0:8ad47e2b6f00 284 #define HFO_NEG_MAX 25122 // -10.5 V
igor_v 0:8ad47e2b6f00 285 #define HFO_POZ_MIN -32221 // +10.5 V
igor_v 0:8ad47e2b6f00 286 #define HFO_POZ_MAX -15837 // +4.5 V
igor_v 0:8ad47e2b6f00 287
igor_v 0:8ad47e2b6f00 288 //e. ================ bits of the main register (_RgConA) of GLD control ==============
igor_v 21:bc8c1cec3da6 289 //r. ================ биты основного регистра управления GLD (_RgConA) ===============
igor_v 21:bc8c1cec3da6 290 //e. ================ (bits of the status register) ============================
igor_v 21:bc8c1cec3da6 291 //r. ================ (они же - биты регистра состояния) ============================
igor_v 21:bc8c1cec3da6 292 #define LASER_ON 0x0001 //r. вкл./выкл. генерацию лазера
igor_v 21:bc8c1cec3da6 293 #define HF_REG_ON 0x0002 //r. вкл./выкл. контур ГВЧ
igor_v 21:bc8c1cec3da6 294 #define RI_REG_ON 0x0004 //r. вкл./выкл. контур мощности ДУП
igor_v 21:bc8c1cec3da6 295 #define WP_REG_ON 0x0008 //r. маска вкл./выкл. контура СРП
igor_v 21:bc8c1cec3da6 296 #define WP_SIN_ON 0x0010 //r. вкл./выкл. поисковый сигнал СРП
igor_v 21:bc8c1cec3da6 297 #define VB_TAU_ON 0x0020 //r. вкл./выкл. контур амплитуды виброривода
igor_v 21:bc8c1cec3da6 298 #define VB_FREQ_ON 0x0040 //r. вкл./выкл. контур частоты вибропривода
igor_v 21:bc8c1cec3da6 299 #define GLD_ON 0x0080 //r. вкл./выкл. весь ГЛД
igor_v 0:8ad47e2b6f00 300
igor_v 21:bc8c1cec3da6 301 // Status word errors bits
igor_v 0:8ad47e2b6f00 302 #define OUT_FREQ_ERROR 0x8000
igor_v 0:8ad47e2b6f00 303 #define DITH_FREQ_ERROR 0x4000
igor_v 0:8ad47e2b6f00 304 #define HFO_VOLT_ERROR 0x2000
igor_v 0:8ad47e2b6f00 305 #define THERMO_RANGE_ERROR 0x1000
igor_v 0:8ad47e2b6f00 306 #define THERMO_DIFF_ERROR 0x0800
igor_v 0:8ad47e2b6f00 307
igor_v 0:8ad47e2b6f00 308 #define loop_is_closed(loop_bit) ((RgConA & (loop_bit)) == loop_bit)
igor_v 0:8ad47e2b6f00 309 #define close_loop(loop_bit) RgConA |= loop_bit
igor_v 0:8ad47e2b6f00 310 #define open_loop(loop_bit) RgConA &= ~(loop_bit)
igor_v 21:bc8c1cec3da6 311 //r. выключить все контура регулирования
igor_v 21:bc8c1cec3da6 312 #define open_all_loops() RgConA = 0
igor_v 0:8ad47e2b6f00 313 #define close_all_loops() RgConA = 0xFFFF
igor_v 0:8ad47e2b6f00 314
igor_v 21:bc8c1cec3da6 315 extern unsigned SRgR; //r.системного регистра режима платы ADSP
igor_v 0:8ad47e2b6f00 316
Kovalev_D 112:4a96133a1311 317 //extern unsigned RgConA; //r. основной регистр управления устройства
Kovalev_D 112:4a96133a1311 318 //extern unsigned RgConB; //r. дополнительный регистр управления
igor_v 21:bc8c1cec3da6 319 //extern unsigned Copy_e5_RgR; //r. копия регистра режима платы E5
igor_v 21:bc8c1cec3da6 320 //extern unsigned Copy_e5_RgRA; //r. копия дополнительного регистра режима E5
igor_v 0:8ad47e2b6f00 321
igor_v 0:8ad47e2b6f00 322 void contrl_GLD(void);
igor_v 0:8ad47e2b6f00 323 #endif
igor_v 0:8ad47e2b6f00 324
igor_v 0:8ad47e2b6f00 325
igor_v 21:bc8c1cec3da6 326