fork

Dependencies:   mbed

Fork of LG by igor Apu

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?

UserRevisionLine numberNew 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