fork

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Kovalev_D
Date:
Fri Apr 08 14:20:35 2016 +0000
Revision:
124:9ae09249f842
Parent:
122:fbacb932a30b
Child:
127:6a7472d67804
Delta500Hz Delta_ext

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 107:4d178bcc9d8a 19 extern int tempAMP;
igor_v 33:341521841d3a 20 typedef struct _Gyro {
Kovalev_D 122:fbacb932a30b 21
Kovalev_D 124:9ae09249f842 22 unsigned int ModeOut;
Kovalev_D 124:9ae09249f842 23 unsigned int Rate1_Flag;
Kovalev_D 124:9ae09249f842 24 unsigned int Rate1_Event;
Kovalev_D 124:9ae09249f842 25 unsigned int Rate2_Flag;
Kovalev_D 124:9ae09249f842 26 unsigned int Rate2_Event;
Kovalev_D 124:9ae09249f842 27 #define Rate1 0x01
Kovalev_D 124:9ae09249f842 28 #define Rate2 0x02
Kovalev_D 124:9ae09249f842 29 #define PRate1 0x81
Kovalev_D 124:9ae09249f842 30 #define PRate2 0x82
Kovalev_D 124:9ae09249f842 31
Kovalev_D 124:9ae09249f842 32
Kovalev_D 124:9ae09249f842 33 unsigned int DeltaEXT_Event;
Kovalev_D 124:9ae09249f842 34 unsigned int Delta500_Event;
Kovalev_D 124:9ae09249f842 35 #define Delta_500 0x0
Kovalev_D 124:9ae09249f842 36 #define PDelta_500 0x80
Kovalev_D 124:9ae09249f842 37 #define Delta_EXT 0x10
Kovalev_D 124:9ae09249f842 38 #define PDelta_EXT 0x90
Kovalev_D 85:0466ee8cdfc8 39 unsigned int RgConA;
Kovalev_D 85:0466ee8cdfc8 40 unsigned int RgConB;
Kovalev_D 26:52ce5953a5c2 41
Kovalev_D 103:e96f08947def 42 unsigned int Gain_A;
Kovalev_D 103:e96f08947def 43 unsigned int Gain_B;
Kovalev_D 26:52ce5953a5c2 44
igor_v 37:bdd52117b56e 45 unsigned int Frq; // Непосредственное значение частоты для таймера.
igor_v 37:bdd52117b56e 46 unsigned int FrqHZ; // Частота в Гц.
Kovalev_D 85:0466ee8cdfc8 47
Kovalev_D 112:4a96133a1311 48 unsigned int VibroFrqRegulF;//флаг регулировки частоты ВП
Kovalev_D 112:4a96133a1311 49 unsigned int VibroAMPRegulF;//флаг регулировки амплитуды ВП
Kovalev_D 112:4a96133a1311 50 unsigned int VibroNoiseF;//флаг ошумления амплитуды ВП
Kovalev_D 112:4a96133a1311 51 unsigned int VibroOutF;
Kovalev_D 85:0466ee8cdfc8 52
Kovalev_D 26:52ce5953a5c2 53 unsigned int Amp;
Kovalev_D 85:0466ee8cdfc8 54 unsigned int AmpT; // значение тиков после которых происходит смена амплитуды ошумления ( rand() % Gyro.AmpTD+Gyro.AmpMin)
Kovalev_D 85:0466ee8cdfc8 55 unsigned int AmpMin; // минимальное значение AmpT(частота ошумления);
Kovalev_D 85:0466ee8cdfc8 56 unsigned int AmpTD; // максимальное значение AmpT(частота ошумления);
Kovalev_D 85:0466ee8cdfc8 57 unsigned int AmpPer; // Амплитуда в процентах;
Kovalev_D 112:4a96133a1311 58 unsigned int AmpPerDel;// значение для расчета амплитуды(дельта амплитуды), мин знач : AmpPer-AmpPerDel, мах знач : AmpPer+AmpPerDel; (в процентах)
Kovalev_D 112:4a96133a1311 59 unsigned int AmpN1; // левая граница импулься ВП
Kovalev_D 112:4a96133a1311 60 unsigned int AmpN2; // равая граница импулься ВП
Kovalev_D 112:4a96133a1311 61 int MaxAmp; // амплитуда Пик-Пик расчтитанная по востановленному синусу.
Kovalev_D 112:4a96133a1311 62 //ЭНКОДЕР
Kovalev_D 112:4a96133a1311 63 int CaunPlus;//
Kovalev_D 112:4a96133a1311 64 int CaunMin;//
igor_v 110:6406b7ac0442 65 // данные АЦП
Kovalev_D 113:8be429494918 66 unsigned int Termo; // значение АЦП
Kovalev_D 113:8be429494918 67 unsigned int DeltaT;
Kovalev_D 113:8be429494918 68 unsigned int In1;
Kovalev_D 113:8be429494918 69 unsigned int In2;
igor_v 111:8ee1ef722ba7 70 //пятый ацп, он же амплитудный детектор "AD". есть два фильтра быстрый "Fast" и медленный "Slow"
igor_v 111:8ee1ef722ba7 71 unsigned int ADF_Accum; //Значенее амплитудного детектора Временное
igor_v 111:8ee1ef722ba7 72 unsigned int ADS_Accum; //Значенее амплитудного детектора Временное
igor_v 110:6406b7ac0442 73
igor_v 110:6406b7ac0442 74 unsigned int ADF_Count; //Значенее времени накопления данных
igor_v 111:8ee1ef722ba7 75 unsigned int ADS_Count; //Значенее времени накопления данных
igor_v 110:6406b7ac0442 76
igor_v 110:6406b7ac0442 77 unsigned int AD_Fast; //Значенее амплитудного детектора сдвинутое на 16 бит
igor_v 110:6406b7ac0442 78 unsigned int AD_Slow; //Значенее амплитудного детектора сдвинутое на 16 бит
igor_v 110:6406b7ac0442 79
igor_v 111:8ee1ef722ba7 80 unsigned int ADF_NewData; // есть данные после фильтрации в быстром фильтре
igor_v 111:8ee1ef722ba7 81 unsigned int ADS_NewData; //-----------/----------/----------/--------
igor_v 110:6406b7ac0442 82
igor_v 111:8ee1ef722ba7 83 //контур регулеровки Периметра "PLC"
Kovalev_D 116:66f1f0ff2dab 84 int PLC_Delta;
Kovalev_D 116:66f1f0ff2dab 85 int PLC_Old;
Kovalev_D 116:66f1f0ff2dab 86 int PLC_Znak;
Kovalev_D 116:66f1f0ff2dab 87 int PLC_Regul;
igor_v 110:6406b7ac0442 88
igor_v 111:8ee1ef722ba7 89 //Контур регулеровки накачки (если нужно, например ГВЧ)
igor_v 110:6406b7ac0442 90
igor_v 111:8ee1ef722ba7 91
igor_v 111:8ee1ef722ba7 92
igor_v 111:8ee1ef722ba7 93
igor_v 111:8ee1ef722ba7 94
Kovalev_D 26:52ce5953a5c2 95 unsigned int CMD_In;
Kovalev_D 26:52ce5953a5c2 96 unsigned int SOC_Out;
Kovalev_D 26:52ce5953a5c2 97 unsigned int My_Addres;
Kovalev_D 26:52ce5953a5c2 98 unsigned int GLD_Serial;
Kovalev_D 26:52ce5953a5c2 99 unsigned int CRC;
Kovalev_D 26:52ce5953a5c2 100 unsigned int Firmware_Version;
Kovalev_D 26:52ce5953a5c2 101 unsigned int RsErrLine;
Kovalev_D 26:52ce5953a5c2 102
igor_v 110:6406b7ac0442 103
igor_v 110:6406b7ac0442 104
igor_v 110:6406b7ac0442 105
Kovalev_D 106:250ddd8629c6 106
igor_v 111:8ee1ef722ba7 107 int CuruAngle ;
igor_v 111:8ee1ef722ba7 108 int OldCuruAngle ;
igor_v 111:8ee1ef722ba7 109 int Num;
igor_v 111:8ee1ef722ba7 110 int Cnt_Pls;
igor_v 111:8ee1ef722ba7 111 int Cnt_Mns;
igor_v 111:8ee1ef722ba7 112 int Cnt_Dif;
Kovalev_D 108:030cdde08314 113
Kovalev_D 26:52ce5953a5c2 114 unsigned int F_ras;
Kovalev_D 108:030cdde08314 115
igor_v 110:6406b7ac0442 116 unsigned int ras;
Kovalev_D 104:ab1cb4ff56b2 117
Kovalev_D 104:ab1cb4ff56b2 118
Kovalev_D 104:ab1cb4ff56b2 119 #define FrqOff Gyro.RgConA &= ~AFRQ; //установить бит светодиода в "0"
Kovalev_D 104:ab1cb4ff56b2 120 #define FrqON Gyro.RgConA |= AFRQ; //установить бит светодиода в "1"
Kovalev_D 104:ab1cb4ff56b2 121
Kovalev_D 104:ab1cb4ff56b2 122 #define HFOOFF Gyro.RgConA &= ~AHFO; //установить бит светодиода в "0"
Kovalev_D 104:ab1cb4ff56b2 123 #define HFOON Gyro.RgConA |= AHFO; //установить бит светодиода в "1"
Kovalev_D 104:ab1cb4ff56b2 124
Kovalev_D 104:ab1cb4ff56b2 125 #define PlcOFF Gyro.RgConA &= ~APLC; //установить бит светодиода в "0"
Kovalev_D 104:ab1cb4ff56b2 126 #define PlcON Gyro.RgConA |= APLC; //установить бит светодиода в "1"
Kovalev_D 104:ab1cb4ff56b2 127
Kovalev_D 104:ab1cb4ff56b2 128 #define AFRQ (1<<0)
Kovalev_D 104:ab1cb4ff56b2 129 #define AHFO (1<<1)
Kovalev_D 104:ab1cb4ff56b2 130 #define APLC (1<<2)
Kovalev_D 85:0466ee8cdfc8 131
Kovalev_D 28:1c9acd3b224d 132 unsigned int PinReg; // bit5 bit4 bit 3 bit1 bit0
Kovalev_D 28:1c9acd3b224d 133 unsigned int PinRegOld; // || светодиод || состояние поджига || состояние подсветки || состояние вибро 2 || состояние вибро 1 ||
Kovalev_D 40:8a6494f61326 134 #define LedOFF Gyro.PinReg &= ~PinRegBitLED; //установить бит светодиода в "0"
igor_v 48:8697dfe679b9 135 #define LedON Gyro.PinReg |= PinRegBitLED; //установить бит светодиода в "1"
Kovalev_D 40:8a6494f61326 136
Kovalev_D 104:ab1cb4ff56b2 137
igor_v 48:8697dfe679b9 138 #define PinRegBitTXE (1<<5)
igor_v 48:8697dfe679b9 139 #define PinRegBitLED (1<<4)
igor_v 48:8697dfe679b9 140 #define PinRegBitD (1<<3)
igor_v 48:8697dfe679b9 141 #define PinRegBitL (1<<2)
igor_v 48:8697dfe679b9 142 #define PinRegBit_2V (1<<1)
igor_v 48:8697dfe679b9 143 #define PinRegBit_1V (1<<0)
igor_v 110:6406b7ac0442 144 unsigned int Discharg; // последовательность бит харрактеризующая форму сигнала поджига.
igor_v 48:8697dfe679b9 145 #define StartDischarg 0x00000055
Kovalev_D 40:8a6494f61326 146 unsigned int BackLight; // последовательность бит харрактеризующая форму сигнала подсветки.
igor_v 48:8697dfe679b9 147 #define StartBackLight 0x00000055
igor_v 110:6406b7ac0442 148
igor_v 110:6406b7ac0442 149
igor_v 110:6406b7ac0442 150
igor_v 33:341521841d3a 151 } GyroT, *Gyro_p;
igor_v 30:17c84ed091b3 152 extern GyroT Gyro;
Kovalev_D 28:1c9acd3b224d 153
Kovalev_D 28:1c9acd3b224d 154
Kovalev_D 26:52ce5953a5c2 155
Kovalev_D 28:1c9acd3b224d 156
Kovalev_D 28:1c9acd3b224d 157
Kovalev_D 28:1c9acd3b224d 158
Kovalev_D 107:4d178bcc9d8a 159 extern unsigned int amp;
Kovalev_D 122:fbacb932a30b 160 extern int Rate2VibFlag;
igor_v 0:8ad47e2b6f00 161 extern void cheng(void);
igor_v 0:8ad47e2b6f00 162 extern void Noise(void);
igor_v 0:8ad47e2b6f00 163 extern void VibroOut(void);
Kovalev_D 89:a0d344db227e 164 extern void Discharg (void);
Kovalev_D 89:a0d344db227e 165 extern void BackLight (void);
Kovalev_D 98:95b8e79f13e1 166 extern unsigned int FrecTp;
Kovalev_D 98:95b8e79f13e1 167 extern int Pulse_midl;
igor_v 0:8ad47e2b6f00 168 extern struct VIBRO Vib;
igor_v 0:8ad47e2b6f00 169 extern int PulseHalf;
igor_v 30:17c84ed091b3 170 extern int CuruAngle;
igor_v 0:8ad47e2b6f00 171 extern unsigned int FrecTemp;
igor_v 0:8ad47e2b6f00 172 #endif
igor_v 0:8ad47e2b6f00 173