Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of LG2 by
CntrlGLD.h@129:406995a91322, 2016-04-12 (annotated)
- Committer:
- Kovalev_D
- Date:
- Tue Apr 12 11:10:49 2016 +0000
- Revision:
- 129:406995a91322
- Parent:
- 112:4a96133a1311
?????? ? ?????? ??????????
Who changed what in which revision?
User | Revision | Line number | New 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 |