Dmitry Kovalev
/
LGstaandart
forkd
Fork of LG2 by
vibro.h@207:d1ce992f5d17, 2017-01-13 (annotated)
- Committer:
- Kovalev_D
- Date:
- Fri Jan 13 08:27:28 2017 +0000
- Revision:
- 207:d1ce992f5d17
- Parent:
- 206:00341a03e05c
- Child:
- 208:19150d2b528f
4566
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
igor_v | 0:8ad47e2b6f00 | 1 | #ifndef VIBRO_H |
igor_v | 0:8ad47e2b6f00 | 2 | #define VIBRO_H |
igor_v | 0:8ad47e2b6f00 | 3 | |
igor_v | 21:bc8c1cec3da6 | 4 | #define ClrV1 LPC_GPIO1->FIOSET=(1<<25); |
Kovalev_D | 87:7e575d26d6d0 | 5 | #define SetV1 LPC_GPIO1->FIOCLR = (1<<25); |
igor_v | 1:f2adcae3d304 | 6 | |
Kovalev_D | 47:d902ef6f7564 | 7 | #define TXOn LPC_GPIO2->FIOSET=(1<<7); |
Kovalev_D | 47:d902ef6f7564 | 8 | #define TXOff LPC_GPIO2->FIOCLR = (1<<7); |
Kovalev_D | 47:d902ef6f7564 | 9 | |
igor_v | 21:bc8c1cec3da6 | 10 | #define ClrV2 LPC_GPIO1->FIOSET = (1<<28); |
igor_v | 21:bc8c1cec3da6 | 11 | #define SetV2 LPC_GPIO1->FIOCLR = (1<<28); |
igor_v | 0:8ad47e2b6f00 | 12 | |
Kovalev_D | 26:52ce5953a5c2 | 13 | #define LoopOn LPC_GPIO1->FIOSET = (1<<30); |
Kovalev_D | 26:52ce5953a5c2 | 14 | #define LoopOff LPC_GPIO1->FIOCLR = (1<<30); |
Kovalev_D | 26:52ce5953a5c2 | 15 | #define StartV1 0 |
Kovalev_D | 26:52ce5953a5c2 | 16 | #define StartV2 15 |
igor_v | 0:8ad47e2b6f00 | 17 | #define TIME_INTERVAL (7812) |
igor_v | 0:8ad47e2b6f00 | 18 | |
Kovalev_D | 205:775d54fdf646 | 19 | |
Kovalev_D | 205:775d54fdf646 | 20 | #define Rate1 0x01 |
Kovalev_D | 205:775d54fdf646 | 21 | #define Rate2 0x02 |
Kovalev_D | 205:775d54fdf646 | 22 | #define PRate1 0x81 |
Kovalev_D | 205:775d54fdf646 | 23 | #define PRate2 0x82 |
Kovalev_D | 139:1716152517aa | 24 | |
Kovalev_D | 205:775d54fdf646 | 25 | |
Kovalev_D | 205:775d54fdf646 | 26 | //////////////////////////////////////////////////////// |
Kovalev_D | 205:775d54fdf646 | 27 | ////Дефайны для декодирования запроса параметров Rate/// |
Kovalev_D | 205:775d54fdf646 | 28 | //////////////////////////////////////////////////////// |
Kovalev_D | 162:44e4ded32c6a | 29 | #define Delta_500 0x10 |
Kovalev_D | 162:44e4ded32c6a | 30 | #define PDelta_500 0x90 |
Kovalev_D | 162:44e4ded32c6a | 31 | #define Delta_EXT 0x0 |
Kovalev_D | 162:44e4ded32c6a | 32 | #define PDelta_EXT 0x80 |
Kovalev_D | 193:a0fe8bfc97e4 | 33 | #define Delta_Bins 0x0 |
Kovalev_D | 193:a0fe8bfc97e4 | 34 | #define PDelta_Bins 0x1 |
Kovalev_D | 193:a0fe8bfc97e4 | 35 | |
Kovalev_D | 193:a0fe8bfc97e4 | 36 | |
Kovalev_D | 193:a0fe8bfc97e4 | 37 | #define PB_Delta_EXT 0x9 |
Kovalev_D | 193:a0fe8bfc97e4 | 38 | #define B_Delta_EXT 0x1 |
Kovalev_D | 193:a0fe8bfc97e4 | 39 | #define PB_Delta_INT 0x8 |
Kovalev_D | 193:a0fe8bfc97e4 | 40 | #define B_Delta_INT 0x0 |
Kovalev_D | 205:775d54fdf646 | 41 | /////////////////////////////////////////////////////////// |
Kovalev_D | 104:ab1cb4ff56b2 | 42 | |
Kovalev_D | 171:d227a6045305 | 43 | #define FrqOFF Gyro.RgConA &= ~AFRQ; //установить контур регулировки частоты в "0" |
Kovalev_D | 171:d227a6045305 | 44 | #define FrqON Gyro.RgConA |= AFRQ; //установить контур регулировки частоты в "1" |
Kovalev_D | 104:ab1cb4ff56b2 | 45 | |
Kovalev_D | 171:d227a6045305 | 46 | |
Kovalev_D | 171:d227a6045305 | 47 | #define AVibOFF Gyro.RgConA &= ~AVBT; //установить контур регулировки частоты в "0" |
Kovalev_D | 171:d227a6045305 | 48 | #define AVibON Gyro.RgConA |= AVBT; //установить контур регулировки частоты в "1" |
Kovalev_D | 171:d227a6045305 | 49 | |
Kovalev_D | 171:d227a6045305 | 50 | #define HFOOFF Gyro.RgConA &= ~AHFO; //установить контур накачки в "0" |
Kovalev_D | 171:d227a6045305 | 51 | #define HFOON Gyro.RgConA |= AHFO; //установить контур накачки в "1" |
Kovalev_D | 104:ab1cb4ff56b2 | 52 | |
Kovalev_D | 171:d227a6045305 | 53 | #define PlcOFF Gyro.RgConA &= ~APLC; //установить контур регулировки периметра в "0" |
Kovalev_D | 171:d227a6045305 | 54 | #define PlcON Gyro.RgConA |= APLC; //установить контур регулировки периметра в "1" |
Kovalev_D | 104:ab1cb4ff56b2 | 55 | |
Kovalev_D | 171:d227a6045305 | 56 | #define AFRQ (1<<6) |
Kovalev_D | 171:d227a6045305 | 57 | #define AVBT (1<<5) |
Kovalev_D | 171:d227a6045305 | 58 | #define APLC (1<<3) |
Kovalev_D | 104:ab1cb4ff56b2 | 59 | #define AHFO (1<<1) |
Kovalev_D | 171:d227a6045305 | 60 | |
Kovalev_D | 85:0466ee8cdfc8 | 61 | |
Kovalev_D | 40:8a6494f61326 | 62 | #define LedOFF Gyro.PinReg &= ~PinRegBitLED; //установить бит светодиода в "0" |
igor_v | 48:8697dfe679b9 | 63 | #define LedON Gyro.PinReg |= PinRegBitLED; //установить бит светодиода в "1" |
Kovalev_D | 40:8a6494f61326 | 64 | |
Kovalev_D | 205:775d54fdf646 | 65 | #define StartBackLight 0x00000333 |
Kovalev_D | 205:775d54fdf646 | 66 | #define StartDischarg 0x00000222 |
Kovalev_D | 104:ab1cb4ff56b2 | 67 | |
igor_v | 48:8697dfe679b9 | 68 | #define PinRegBitTXE (1<<5) |
igor_v | 48:8697dfe679b9 | 69 | #define PinRegBitLED (1<<4) |
igor_v | 48:8697dfe679b9 | 70 | #define PinRegBitD (1<<3) |
igor_v | 48:8697dfe679b9 | 71 | #define PinRegBitL (1<<2) |
igor_v | 48:8697dfe679b9 | 72 | #define PinRegBit_2V (1<<1) |
igor_v | 48:8697dfe679b9 | 73 | #define PinRegBit_1V (1<<0) |
igor_v | 110:6406b7ac0442 | 74 | |
Kovalev_D | 188:4c523cc373cc | 75 | #define ShiftStart0 0x1 |
Kovalev_D | 188:4c523cc373cc | 76 | #define ShiftStart1 0x1 |
Kovalev_D | 188:4c523cc373cc | 77 | #define ShiftStart2 0x2 |
Kovalev_D | 188:4c523cc373cc | 78 | #define ShiftStart3 0x3 |
igor_v | 110:6406b7ac0442 | 79 | |
Kovalev_D | 205:775d54fdf646 | 80 | #define DropDelayGLD_0 50 |
Kovalev_D | 205:775d54fdf646 | 81 | #define DropDelayGLD_1 50 |
Kovalev_D | 205:775d54fdf646 | 82 | #define DropDelayGLD_2 65 |
Kovalev_D | 205:775d54fdf646 | 83 | #define DropDelayGLD_3 80 |
Kovalev_D | 26:52ce5953a5c2 | 84 | |
Kovalev_D | 28:1c9acd3b224d | 85 | |
Kovalev_D | 205:775d54fdf646 | 86 | extern int tempAMP; |
Kovalev_D | 129:406995a91322 | 87 | |
Kovalev_D | 205:775d54fdf646 | 88 | //int qei; |
Kovalev_D | 205:775d54fdf646 | 89 | //int QEIznak1,QEIznak2; |
Kovalev_D | 205:775d54fdf646 | 90 | //unsigned int StrayHZ; //помеха |
Kovalev_D | 205:775d54fdf646 | 91 | //unsigned int StrayHZ_flag; |
Kovalev_D | 205:775d54fdf646 | 92 | //int flag; |
Kovalev_D | 205:775d54fdf646 | 93 | //unsigned int StrayPLC_Pls; //помеха + |
Kovalev_D | 205:775d54fdf646 | 94 | //int StrayPLC_Mns; //помеха - |
Kovalev_D | 205:775d54fdf646 | 95 | //unsigned int StrayPLC_2Mode; |
Kovalev_D | 205:775d54fdf646 | 96 | //unsigned int StrayPLC_flag; |
Kovalev_D | 205:775d54fdf646 | 97 | //unsigned int ModJump; |
Kovalev_D | 205:775d54fdf646 | 98 | //unsigned int TimJump; |
Kovalev_D | 205:775d54fdf646 | 99 | //unsigned int flagGph_W; |
Kovalev_D | 205:775d54fdf646 | 100 | //unsigned int Test_time; |
Kovalev_D | 205:775d54fdf646 | 101 | //unsigned int Test_time1; |
Kovalev_D | 205:775d54fdf646 | 102 | //unsigned int Rate1_Flag; |
Kovalev_D | 205:775d54fdf646 | 103 | //unsigned int Rate2_Flag; |
Kovalev_D | 205:775d54fdf646 | 104 | //int AmpSC;//переменная для других ошумлений |
Kovalev_D | 205:775d54fdf646 | 105 | //unsigned int Delta500_Event; |
Kovalev_D | 205:775d54fdf646 | 106 | //unsigned int Delta_Bins_Event500; |
Kovalev_D | 205:775d54fdf646 | 107 | //unsigned int B_Delta_Event500; |
Kovalev_D | 205:775d54fdf646 | 108 | //float Ktermo; |
Kovalev_D | 205:775d54fdf646 | 109 | //unsigned int EventMOD; |
Kovalev_D | 205:775d54fdf646 | 110 | //контур регулеровки Периметра "PLC" - без модулятора |
Kovalev_D | 205:775d54fdf646 | 111 | //int PLC_Delta; // разница между старым и новым показаниями |
Kovalev_D | 205:775d54fdf646 | 112 | //int PLC_DeltaADD; // разница между старым и новым показаниями с учетом знака управляешего напряжения АЦП |
Kovalev_D | 205:775d54fdf646 | 113 | //int PLC_Old; |
Kovalev_D | 205:775d54fdf646 | 114 | //int PLC_ADC_DOld; |
Kovalev_D | 205:775d54fdf646 | 115 | //int PlC_MaxD; // разница между максимальной и текущей амплитудами. |
Kovalev_D | 205:775d54fdf646 | 116 | //int PLC_Regul; |
Kovalev_D | 205:775d54fdf646 | 117 | //int Num; |
Kovalev_D | 205:775d54fdf646 | 118 | //int StopCuruAngle; |
Kovalev_D | 205:775d54fdf646 | 119 | //unsigned int DeltaEXT_Event; // вывод параметров типа Rate по внешней защелке. |
Kovalev_D | 205:775d54fdf646 | 120 | //unsigned int B_Delta_EventEXT;// вывод параметров типа Rate по внешней защелке.(надо чтоб от одного влага было, как Event_500Hz) |
Kovalev_D | 129:406995a91322 | 121 | |
Kovalev_D | 205:775d54fdf646 | 122 | typedef struct _Gyro { |
Kovalev_D | 205:775d54fdf646 | 123 | unsigned int LogPLC; // 1 |
Kovalev_D | 205:775d54fdf646 | 124 | unsigned int Log; // 2 |
Kovalev_D | 205:775d54fdf646 | 125 | |
Kovalev_D | 205:775d54fdf646 | 126 | unsigned int PLC_Lern; // 3 обратный таймер для поиска максимальной амплитуды при работе без модулятора |
Kovalev_D | 205:775d54fdf646 | 127 | unsigned int ModAmp; // 4 амплитуда модулятора |
Kovalev_D | 205:775d54fdf646 | 128 | |
Kovalev_D | 205:775d54fdf646 | 129 | unsigned int FlashMod; // 5 0-ничего не делать, 1 - запись во Flash, 2 чтение из Flash. |
Kovalev_D | 205:775d54fdf646 | 130 | unsigned int ModeOut; // 6 переменная для выбора варианта вывода параметров типа Rate. |
Kovalev_D | 205:775d54fdf646 | 131 | |
Kovalev_D | 205:775d54fdf646 | 132 | unsigned int Rate1_Event; // 7 событие 1с для вывода параметров Rate 1 |
Kovalev_D | 205:775d54fdf646 | 133 | unsigned int Reper_Event; // 8 событие для вывода набора параметров типа Rate по меандру. |
Kovalev_D | 205:775d54fdf646 | 134 | unsigned int Event_500Hz; |
Kovalev_D | 205:775d54fdf646 | 135 | |
Kovalev_D | 205:775d54fdf646 | 136 | unsigned int RgConA; // 9 регистр управления ГЛД |
Kovalev_D | 205:775d54fdf646 | 137 | unsigned int RgConB; //10 регистр управления ГЛД |
Kovalev_D | 129:406995a91322 | 138 | |
Kovalev_D | 205:775d54fdf646 | 139 | unsigned int Gain_Sin; //11 коиф усиления синуса. |
Kovalev_D | 205:775d54fdf646 | 140 | unsigned int Gain_Cos; //12 коиф усиления косинуса. |
Kovalev_D | 205:775d54fdf646 | 141 | unsigned int Frq; //13 Непосредственное значение частоты для таймера. |
Kovalev_D | 205:775d54fdf646 | 142 | unsigned int FrqHZ; //14 Частота в Гц. |
Kovalev_D | 205:775d54fdf646 | 143 | unsigned int FrqHZmin; //15 Мин значение частоты ВП |
Kovalev_D | 205:775d54fdf646 | 144 | unsigned int FrqHZmax; //16 Мах значение частоты ВП |
Kovalev_D | 205:775d54fdf646 | 145 | unsigned int FrqChengSpeed; //17 скорость регулировки частоты ВП |
Kovalev_D | 205:775d54fdf646 | 146 | |
Kovalev_D | 205:775d54fdf646 | 147 | unsigned int VibroFrqRegulF; //18 флаг регулировки частоты ВП |
Kovalev_D | 205:775d54fdf646 | 148 | unsigned int VibroAMPRegulF; //19 флаг регулировки амплитуды ВП |
Kovalev_D | 205:775d54fdf646 | 149 | unsigned int VibroNoiseF; //20 флаг ошумления амплитуды ВП |
Kovalev_D | 205:775d54fdf646 | 150 | unsigned int VibroOutF; //21 флаг изменения состояния ножек вибро. |
Kovalev_D | 205:775d54fdf646 | 151 | |
Kovalev_D | 205:775d54fdf646 | 152 | |
Kovalev_D | 205:775d54fdf646 | 153 | unsigned int Amp; //22 значение амплитуды вибропривода в попугаях (Gyro.Amp = (0%--100%) << 16) |
Kovalev_D | 205:775d54fdf646 | 154 | unsigned int AmpPer; //23 Амплитуда в процентах Gyro.AmpPer = Gyro.Amp>>16 ; |
Kovalev_D | 205:775d54fdf646 | 155 | unsigned int AmpT; //24 значение тиков после которых происходит смена амплитуды ошумления ( rand() % Gyro.AmpTD+Gyro.AmpMin)(частота ошумления) |
Kovalev_D | 205:775d54fdf646 | 156 | unsigned int AmpMin; //25 минимальное значение AmpT(частота ошумления); |
Kovalev_D | 205:775d54fdf646 | 157 | unsigned int AmpTD; //26 диапозон частоты ошумления(частота ошумления); |
Kovalev_D | 205:775d54fdf646 | 158 | |
Kovalev_D | 205:775d54fdf646 | 159 | unsigned int AmpPerMin; //27 ограничение минимальной амплитуды ВП |
Kovalev_D | 205:775d54fdf646 | 160 | unsigned int AmpPerMax; //28 ограничение максимальной амплитуды ВП |
Kovalev_D | 205:775d54fdf646 | 161 | unsigned int AmpSpeed; //29 коиффициент сорости регулировки амплитуды |
Kovalev_D | 205:775d54fdf646 | 162 | unsigned int AmpTarget; //30 целевая амплитуда ВП к которой стремится регулировка. |
Kovalev_D | 205:775d54fdf646 | 163 | unsigned int AmpPerDel; //31 значение для расчета амплитуды (дельта амплитуды) на сколько будет отличаться в працентах 1 амплитуда от второй при ошумлении, мин знач : AmpPer, мах знач : AmpPer+AmpPerDel; (в процентах) |
Kovalev_D | 205:775d54fdf646 | 164 | unsigned int AmpN1; //32 левая граница импулься ВП |
Kovalev_D | 205:775d54fdf646 | 165 | unsigned int AmpN2; //33 правая граница импулься ВП |
Kovalev_D | 205:775d54fdf646 | 166 | unsigned int F_ras; //34 частота расщипления (не расчитывается) |
Kovalev_D | 205:775d54fdf646 | 167 | int MaxAmp; //35 амплитуда Пик-Пик расчтитанная по востановленному синусу. |
Kovalev_D | 205:775d54fdf646 | 168 | |
Kovalev_D | 205:775d54fdf646 | 169 | //ЭНКОДЕР |
Kovalev_D | 205:775d54fdf646 | 170 | int CaunPlus; //36 счетчик + |
Kovalev_D | 205:775d54fdf646 | 171 | int CaunMin; //37 счетчик - |
Kovalev_D | 205:775d54fdf646 | 172 | |
Kovalev_D | 205:775d54fdf646 | 173 | // данные АЦП |
Kovalev_D | 205:775d54fdf646 | 174 | unsigned int TermoNKU; //38 |
Kovalev_D | 205:775d54fdf646 | 175 | unsigned int Termo; //39 значение АЦП |
Kovalev_D | 205:775d54fdf646 | 176 | unsigned int DeltaT; //40 |
Kovalev_D | 205:775d54fdf646 | 177 | unsigned int In1; //41 |
Kovalev_D | 205:775d54fdf646 | 178 | unsigned int In2; //42 |
Kovalev_D | 205:775d54fdf646 | 179 | |
Kovalev_D | 205:775d54fdf646 | 180 | //пятый ацп, он же амплитудный детектор "AD". есть два фильтра быстрый "Fast" и медленный "Slow" |
Kovalev_D | 205:775d54fdf646 | 181 | unsigned int ADF_Accum; //43 Значенее амплитудного детектора Временное |
Kovalev_D | 205:775d54fdf646 | 182 | unsigned int ADS_Accum; //44 Значенее амплитудного детектора Временное |
Kovalev_D | 205:775d54fdf646 | 183 | unsigned int ADS_AccumTermLM; //45 |
Kovalev_D | 205:775d54fdf646 | 184 | unsigned int TermLM; //46 |
Kovalev_D | 205:775d54fdf646 | 185 | unsigned int ADF_Count; //47 Значенее времени накопления данных |
Kovalev_D | 205:775d54fdf646 | 186 | unsigned int ADS_Count; //48 Значенее времени накопления данных |
Kovalev_D | 205:775d54fdf646 | 187 | unsigned int AD_Fast; //49 Значенее амплитудного детектора сдвинутое на 16 бит |
Kovalev_D | 205:775d54fdf646 | 188 | unsigned int AD_Slow; //50 Значенее амплитудного детектора сдвинутое на 16 бит |
Kovalev_D | 205:775d54fdf646 | 189 | unsigned int ADF_NewData; //51 есть данные после фильтрации в быстром фильтре |
Kovalev_D | 205:775d54fdf646 | 190 | unsigned int ADS_NewData; //52 -----------/----------/----------/-------- |
Kovalev_D | 205:775d54fdf646 | 191 | |
Kovalev_D | 205:775d54fdf646 | 192 | int PLC_Error2Mode; //53 счетчик, не ноль когдав двух модовом регулировка без модулятора(для просмотра мод) |
Kovalev_D | 205:775d54fdf646 | 193 | |
Kovalev_D | 205:775d54fdf646 | 194 | unsigned int CMD_In; //54 входящая команда |
Kovalev_D | 205:775d54fdf646 | 195 | unsigned int SOC_Out; //55 |
Kovalev_D | 205:775d54fdf646 | 196 | unsigned int My_Addres; //56 адрес прибора |
Kovalev_D | 205:775d54fdf646 | 197 | unsigned int DropDelayGLD; //57 задержка для мультидропа (дискрета 100кГц) |
Kovalev_D | 205:775d54fdf646 | 198 | |
Kovalev_D | 205:775d54fdf646 | 199 | unsigned int GLD_Serial; //58 серийный номер прибора |
Kovalev_D | 205:775d54fdf646 | 200 | unsigned int CRC; //59 контрольная сумма посылки |
Kovalev_D | 205:775d54fdf646 | 201 | unsigned int Firmware_Version; //60 версия программы |
Kovalev_D | 205:775d54fdf646 | 202 | unsigned int RsErrLine; //61 регистр ошибок передачи. |
Kovalev_D | 205:775d54fdf646 | 203 | |
Kovalev_D | 207:d1ce992f5d17 | 204 | int CuruAngle; |
Kovalev_D | 207:d1ce992f5d17 | 205 | int CuruAngle32; //62 текущеий угол. |
Kovalev_D | 205:775d54fdf646 | 206 | int OldCuruAngle; //63 старый угол |
Kovalev_D | 205:775d54fdf646 | 207 | int Cnt_Dif; //64 приращение угла между прошлым и текушим приращением за тик виброподвеса (32 тика) |
Kovalev_D | 205:775d54fdf646 | 208 | |
Kovalev_D | 205:775d54fdf646 | 209 | unsigned int PinReg; //65 bit4 bit3 bit 2 bit1 bit0 |
Kovalev_D | 205:775d54fdf646 | 210 | unsigned int PinRegOld; //66 || светодиод || состояние поджига || состояние подсветки || состояние вибро 2 || состояние вибро 1 || |
Kovalev_D | 205:775d54fdf646 | 211 | |
Kovalev_D | 205:775d54fdf646 | 212 | unsigned int Discharg; //67 последовательность бит харрактеризующая форму сигнала поджига. |
Kovalev_D | 205:775d54fdf646 | 213 | unsigned int BackLight; //68 последовательность бит харрактеризующая форму сигнала подсветки. |
Kovalev_D | 205:775d54fdf646 | 214 | |
Kovalev_D | 205:775d54fdf646 | 215 | unsigned int EXT_Latch; //69 |
Kovalev_D | 205:775d54fdf646 | 216 | } GyroT, *Gyro_p; |
Kovalev_D | 205:775d54fdf646 | 217 | extern GyroT Gyro; |
Kovalev_D | 129:406995a91322 | 218 | |
Kovalev_D | 206:00341a03e05c | 219 | typedef union { |
Kovalev_D | 206:00341a03e05c | 220 | int Array[25]; |
Kovalev_D | 206:00341a03e05c | 221 | struct { |
Kovalev_D | 206:00341a03e05c | 222 | unsigned int GLD_Serial; //0 серийный номер прибора |
Kovalev_D | 206:00341a03e05c | 223 | unsigned int Firmware_Version; //1 версия программы |
Kovalev_D | 206:00341a03e05c | 224 | unsigned int My_Addres; //2 адрес прибора |
Kovalev_D | 206:00341a03e05c | 225 | unsigned int DropDelayGLD; //3 задержка для мультидропа (дискрета 100кГц) |
Kovalev_D | 206:00341a03e05c | 226 | |
Kovalev_D | 206:00341a03e05c | 227 | |
Kovalev_D | 206:00341a03e05c | 228 | unsigned int ModAmp; //4 амплитуда модулятора |
Kovalev_D | 129:406995a91322 | 229 | |
Kovalev_D | 206:00341a03e05c | 230 | unsigned int RgConA; //5 регистр управления ГЛД |
Kovalev_D | 206:00341a03e05c | 231 | unsigned int RgConB; //6 регистр управления ГЛД |
Kovalev_D | 206:00341a03e05c | 232 | |
Kovalev_D | 206:00341a03e05c | 233 | unsigned int Gain_Sin; //7 коиф усиления синуса. |
Kovalev_D | 206:00341a03e05c | 234 | unsigned int Gain_Cos; //8 коиф усиления косинуса. |
Kovalev_D | 206:00341a03e05c | 235 | |
Kovalev_D | 206:00341a03e05c | 236 | unsigned int FrqHZ; //9 Частота в Гц. |
Kovalev_D | 206:00341a03e05c | 237 | unsigned int FrqHZmin; //10 Мин значение частоты ВП |
Kovalev_D | 206:00341a03e05c | 238 | unsigned int FrqHZmax; //11 Мах значение частоты ВП |
Kovalev_D | 206:00341a03e05c | 239 | unsigned int FrqChengSpeed; //12 скорость регулировки частоты ВП |
Kovalev_D | 206:00341a03e05c | 240 | unsigned int AmpPer; //13 начальное значение амплитуды |
Kovalev_D | 206:00341a03e05c | 241 | unsigned int AmpMin; //14 минимальное значение AmpT(частота ошумления); |
Kovalev_D | 206:00341a03e05c | 242 | unsigned int AmpTD; //15 диапозон частоты ошумления(частота ошумления); |
Kovalev_D | 206:00341a03e05c | 243 | unsigned int AmpPerDel; //16 значение для расчета амплитуды (дельта амплитуды) на сколько будет отличаться в працентах 1 амплитуда от второй при ошумлении, мин знач : AmpPer, мах знач : AmpPer+AmpPerDel; (в процентах) |
Kovalev_D | 206:00341a03e05c | 244 | unsigned int AmpPerMin; //17 ограничение минимальной амплитуды ВП |
Kovalev_D | 206:00341a03e05c | 245 | unsigned int AmpPerMax; //18 ограничение максимальной амплитуды ВП |
Kovalev_D | 206:00341a03e05c | 246 | unsigned int AmpSpeed; //19 коиффициент сорости регулировки амплитуды |
Kovalev_D | 206:00341a03e05c | 247 | unsigned int AmpTarget; //20 целевая амплитуда ВП к которой стремится регулировка. |
Kovalev_D | 206:00341a03e05c | 248 | |
Kovalev_D | 206:00341a03e05c | 249 | unsigned int TermoNKU; //21 |
Kovalev_D | 206:00341a03e05c | 250 | |
Kovalev_D | 206:00341a03e05c | 251 | unsigned int wall; //22 |
Kovalev_D | 206:00341a03e05c | 252 | unsigned int ParamMod; //23 |
Kovalev_D | 206:00341a03e05c | 253 | |
Kovalev_D | 206:00341a03e05c | 254 | unsigned int DAC_A; //24 |
Kovalev_D | 206:00341a03e05c | 255 | unsigned int DAC_B; //25 |
Kovalev_D | 206:00341a03e05c | 256 | |
Kovalev_D | 206:00341a03e05c | 257 | //unsigned int PLC_Lern; //3 обратный таймер для поиска максимальной амплитуды при работе без модулятора |
Kovalev_D | 206:00341a03e05c | 258 | //unsigned int Frq; //6 Непосредственное значение частоты для таймера. |
Kovalev_D | 206:00341a03e05c | 259 | } Str; |
Kovalev_D | 206:00341a03e05c | 260 | } GyroParam; |
Kovalev_D | 206:00341a03e05c | 261 | /* |
Kovalev_D | 205:775d54fdf646 | 262 | typedef union { |
Kovalev_D | 205:775d54fdf646 | 263 | int Array[70]; |
Kovalev_D | 205:775d54fdf646 | 264 | struct { |
Kovalev_D | 205:775d54fdf646 | 265 | unsigned int LogPLC; // 1 |
Kovalev_D | 205:775d54fdf646 | 266 | unsigned int Log; // 2 |
Kovalev_D | 205:775d54fdf646 | 267 | |
Kovalev_D | 205:775d54fdf646 | 268 | unsigned int PLC_Lern; // 3 обратный таймер для поиска максимальной амплитуды при работе без модулятора |
Kovalev_D | 205:775d54fdf646 | 269 | unsigned int ModAmp; // 4 амплитуда модулятора |
Kovalev_D | 205:775d54fdf646 | 270 | |
Kovalev_D | 205:775d54fdf646 | 271 | unsigned int FlashMod; // 5 0-ничего не делать, 1 - запись во Flash, 2 чтение из Flash. |
Kovalev_D | 205:775d54fdf646 | 272 | unsigned int ModeOut; // 6 переменная для выбора варианта вывода параметров типа Rate. |
Kovalev_D | 205:775d54fdf646 | 273 | |
Kovalev_D | 205:775d54fdf646 | 274 | unsigned int Rate1_Event; // 7 событие 1с для вывода параметров Rate 1 |
Kovalev_D | 205:775d54fdf646 | 275 | unsigned int Reper_Event; // 8 событие для вывода набора параметров типа Rate по меандру. |
Kovalev_D | 205:775d54fdf646 | 276 | unsigned int Event_500Hz; |
Kovalev_D | 205:775d54fdf646 | 277 | |
Kovalev_D | 205:775d54fdf646 | 278 | unsigned int RgConA; // 9 регистр управления ГЛД |
Kovalev_D | 205:775d54fdf646 | 279 | unsigned int RgConB; //10 регистр управления ГЛД |
Kovalev_D | 129:406995a91322 | 280 | |
Kovalev_D | 205:775d54fdf646 | 281 | unsigned int Gain_Sin; //11 коиф усиления синуса. |
Kovalev_D | 205:775d54fdf646 | 282 | unsigned int Gain_Cos; //12 коиф усиления косинуса. |
Kovalev_D | 205:775d54fdf646 | 283 | unsigned int Frq; //13 Непосредственное значение частоты для таймера. |
Kovalev_D | 205:775d54fdf646 | 284 | unsigned int FrqHZ; //14 Частота в Гц. |
Kovalev_D | 205:775d54fdf646 | 285 | unsigned int FrqHZmin; //15 Мин значение частоты ВП |
Kovalev_D | 205:775d54fdf646 | 286 | unsigned int FrqHZmax; //16 Мах значение частоты ВП |
Kovalev_D | 205:775d54fdf646 | 287 | unsigned int FrqChengSpeed; //17 скорость регулировки частоты ВП |
Kovalev_D | 205:775d54fdf646 | 288 | |
Kovalev_D | 205:775d54fdf646 | 289 | unsigned int VibroFrqRegulF; //18 флаг регулировки частоты ВП |
Kovalev_D | 205:775d54fdf646 | 290 | unsigned int VibroAMPRegulF; //19 флаг регулировки амплитуды ВП |
Kovalev_D | 205:775d54fdf646 | 291 | unsigned int VibroNoiseF; //20 флаг ошумления амплитуды ВП |
Kovalev_D | 205:775d54fdf646 | 292 | unsigned int VibroOutF; //21 флаг изменения состояния ножек вибро. |
Kovalev_D | 205:775d54fdf646 | 293 | |
Kovalev_D | 205:775d54fdf646 | 294 | |
Kovalev_D | 205:775d54fdf646 | 295 | unsigned int Amp; //22 значение амплитуды вибропривода в попугаях (Gyro.Amp = (0%--100%) << 16) |
Kovalev_D | 205:775d54fdf646 | 296 | unsigned int AmpPer; //23 Амплитуда в процентах Gyro.AmpPer = Gyro.Amp>>16 ; |
Kovalev_D | 205:775d54fdf646 | 297 | unsigned int AmpT; //24 значение тиков после которых происходит смена амплитуды ошумления ( rand() % Gyro.AmpTD+Gyro.AmpMin)(частота ошумления) |
Kovalev_D | 205:775d54fdf646 | 298 | unsigned int AmpMin; //25 минимальное значение AmpT(частота ошумления); |
Kovalev_D | 205:775d54fdf646 | 299 | unsigned int AmpTD; //26 диапозон частоты ошумления(частота ошумления); |
Kovalev_D | 205:775d54fdf646 | 300 | |
Kovalev_D | 205:775d54fdf646 | 301 | unsigned int AmpPerMin; //27 ограничение минимальной амплитуды ВП |
Kovalev_D | 205:775d54fdf646 | 302 | unsigned int AmpPerMax; //28 ограничение максимальной амплитуды ВП |
Kovalev_D | 205:775d54fdf646 | 303 | unsigned int AmpSpeed; //29 коиффициент сорости регулировки амплитуды |
Kovalev_D | 205:775d54fdf646 | 304 | unsigned int AmpTarget; //30 целевая амплитуда ВП к которой стремится регулировка. |
Kovalev_D | 205:775d54fdf646 | 305 | unsigned int AmpPerDel; //31 значение для расчета амплитуды (дельта амплитуды) на сколько будет отличаться в працентах 1 амплитуда от второй при ошумлении, мин знач : AmpPer, мах знач : AmpPer+AmpPerDel; (в процентах) |
Kovalev_D | 205:775d54fdf646 | 306 | unsigned int AmpN1; //32 левая граница импулься ВП |
Kovalev_D | 205:775d54fdf646 | 307 | unsigned int AmpN2; //33 правая граница импулься ВП |
Kovalev_D | 205:775d54fdf646 | 308 | unsigned int F_ras; //34 частота расщипления (не расчитывается) |
Kovalev_D | 205:775d54fdf646 | 309 | int MaxAmp; //35 амплитуда Пик-Пик расчтитанная по востановленному синусу. |
Kovalev_D | 205:775d54fdf646 | 310 | |
Kovalev_D | 205:775d54fdf646 | 311 | //ЭНКОДЕР |
Kovalev_D | 205:775d54fdf646 | 312 | int CaunPlus; //36 счетчик + |
Kovalev_D | 205:775d54fdf646 | 313 | int CaunMin; //37 счетчик - |
Kovalev_D | 205:775d54fdf646 | 314 | |
Kovalev_D | 205:775d54fdf646 | 315 | // данные АЦП |
Kovalev_D | 205:775d54fdf646 | 316 | unsigned int TermoNKU; //38 |
Kovalev_D | 205:775d54fdf646 | 317 | unsigned int Termo; //39 значение АЦП |
Kovalev_D | 205:775d54fdf646 | 318 | unsigned int DeltaT; //40 |
Kovalev_D | 205:775d54fdf646 | 319 | unsigned int In1; //41 |
Kovalev_D | 205:775d54fdf646 | 320 | unsigned int In2; //42 |
Kovalev_D | 205:775d54fdf646 | 321 | |
Kovalev_D | 205:775d54fdf646 | 322 | //пятый ацп, он же амплитудный детектор "AD". есть два фильтра быстрый "Fast" и медленный "Slow" |
Kovalev_D | 205:775d54fdf646 | 323 | unsigned int ADF_Accum; //43 Значенее амплитудного детектора Временное |
Kovalev_D | 205:775d54fdf646 | 324 | unsigned int ADS_Accum; //44 Значенее амплитудного детектора Временное |
Kovalev_D | 205:775d54fdf646 | 325 | unsigned int ADS_AccumTermLM; //45 |
Kovalev_D | 205:775d54fdf646 | 326 | unsigned int TermLM; //46 |
Kovalev_D | 205:775d54fdf646 | 327 | unsigned int ADF_Count; //47 Значенее времени накопления данных |
Kovalev_D | 205:775d54fdf646 | 328 | unsigned int ADS_Count; //48 Значенее времени накопления данных |
Kovalev_D | 205:775d54fdf646 | 329 | unsigned int AD_Fast; //49 Значенее амплитудного детектора сдвинутое на 16 бит |
Kovalev_D | 205:775d54fdf646 | 330 | unsigned int AD_Slow; //50 Значенее амплитудного детектора сдвинутое на 16 бит |
Kovalev_D | 205:775d54fdf646 | 331 | unsigned int ADF_NewData; //51 есть данные после фильтрации в быстром фильтре |
Kovalev_D | 205:775d54fdf646 | 332 | unsigned int ADS_NewData; //52 -----------/----------/----------/-------- |
Kovalev_D | 205:775d54fdf646 | 333 | |
Kovalev_D | 205:775d54fdf646 | 334 | int PLC_Error2Mode; //53 счетчик, не ноль когдав двух модовом регулировка без модулятора(для просмотра мод) |
Kovalev_D | 205:775d54fdf646 | 335 | |
Kovalev_D | 205:775d54fdf646 | 336 | unsigned int CMD_In; //54 входящая команда |
Kovalev_D | 205:775d54fdf646 | 337 | unsigned int SOC_Out; //55 |
Kovalev_D | 205:775d54fdf646 | 338 | unsigned int My_Addres; //56 адрес прибора |
Kovalev_D | 205:775d54fdf646 | 339 | unsigned int DropDelayGLD; //57 задержка для мультидропа (дискрета 100кГц) |
Kovalev_D | 205:775d54fdf646 | 340 | |
Kovalev_D | 205:775d54fdf646 | 341 | unsigned int GLD_Serial; //58 серийный номер прибора |
Kovalev_D | 205:775d54fdf646 | 342 | unsigned int CRC; //59 контрольная сумма посылки |
Kovalev_D | 205:775d54fdf646 | 343 | unsigned int Firmware_Version; //60 версия программы |
Kovalev_D | 205:775d54fdf646 | 344 | unsigned int RsErrLine; //61 регистр ошибок передачи. |
Kovalev_D | 205:775d54fdf646 | 345 | |
Kovalev_D | 205:775d54fdf646 | 346 | int CuruAngle; //62 текущеий угол. |
Kovalev_D | 205:775d54fdf646 | 347 | int OldCuruAngle; //63 старый угол |
Kovalev_D | 205:775d54fdf646 | 348 | int Cnt_Dif; //64 приращение угла между прошлым и текушим приращением за тик виброподвеса (32 тика) |
Kovalev_D | 205:775d54fdf646 | 349 | |
Kovalev_D | 205:775d54fdf646 | 350 | unsigned int PinReg; //65 bit4 bit3 bit 2 bit1 bit0 |
Kovalev_D | 205:775d54fdf646 | 351 | unsigned int PinRegOld; //66 || светодиод || состояние поджига || состояние подсветки || состояние вибро 2 || состояние вибро 1 || |
Kovalev_D | 205:775d54fdf646 | 352 | |
Kovalev_D | 205:775d54fdf646 | 353 | unsigned int Discharg; //67 последовательность бит харрактеризующая форму сигнала поджига. |
Kovalev_D | 205:775d54fdf646 | 354 | unsigned int BackLight; //68 последовательность бит харрактеризующая форму сигнала подсветки. |
Kovalev_D | 205:775d54fdf646 | 355 | |
Kovalev_D | 205:775d54fdf646 | 356 | unsigned int EXT_Latch; //69 |
Kovalev_D | 205:775d54fdf646 | 357 | |
Kovalev_D | 205:775d54fdf646 | 358 | unsigned int wall; //70 |
Kovalev_D | 206:00341a03e05c | 359 | unsigned int ParamMod ; //71 |
Kovalev_D | 205:775d54fdf646 | 360 | } Str; |
Kovalev_D | 206:00341a03e05c | 361 | } GyroParam; */ |
Kovalev_D | 129:406995a91322 | 362 | extern GyroParam GyroP; |
Kovalev_D | 28:1c9acd3b224d | 363 | |
Kovalev_D | 191:40028201ddad | 364 | extern void AllRegul (void); |
Kovalev_D | 107:4d178bcc9d8a | 365 | extern unsigned int amp; |
Kovalev_D | 122:fbacb932a30b | 366 | extern int Rate2VibFlag; |
igor_v | 0:8ad47e2b6f00 | 367 | extern void cheng(void); |
Kovalev_D | 192:d32c8cf7bcd9 | 368 | |
igor_v | 0:8ad47e2b6f00 | 369 | extern void VibroOut(void); |
Kovalev_D | 190:289514f730ee | 370 | |
Kovalev_D | 150:29c9f7671bac | 371 | extern void VibroAMPRegul(void); |
Kovalev_D | 150:29c9f7671bac | 372 | extern void VibroFrqRegul(void); |
Kovalev_D | 98:95b8e79f13e1 | 373 | extern unsigned int FrecTp; |
Kovalev_D | 98:95b8e79f13e1 | 374 | extern int Pulse_midl; |
igor_v | 0:8ad47e2b6f00 | 375 | extern struct VIBRO Vib; |
igor_v | 0:8ad47e2b6f00 | 376 | extern int PulseHalf; |
igor_v | 30:17c84ed091b3 | 377 | extern int CuruAngle; |
igor_v | 0:8ad47e2b6f00 | 378 | extern unsigned int FrecTemp; |
igor_v | 0:8ad47e2b6f00 | 379 | #endif |
igor_v | 0:8ad47e2b6f00 | 380 |