forkd

Dependencies:   mbed

Fork of LG2 by Dmitry Kovalev

Committer:
Kovalev_D
Date:
Wed Feb 03 10:44:42 2016 +0300
Revision:
23:12e6183f04d4
[thyz

Who changed what in which revision?

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