forkd

Dependencies:   mbed

Fork of LG2 by Dmitry Kovalev

Revision:
222:7de7b3bf3a1d
Parent:
220:04c54405b82d
Child:
225:f8fee6c586cc
--- a/vibro.h	Mon Oct 23 05:31:10 2017 +0000
+++ b/vibro.h	Mon Nov 20 13:06:31 2017 +0000
@@ -26,7 +26,8 @@
 #define  PRate2      0x82
 #define  PRate3      0x83 
 #define  PRate7      0x87  
-   
+#define  PRate5K	 0x94
+#define  Rate5K  	 0x14
  
 ////////////////////////////////////////////////////////
 ////Дефайны для декодирования запроса параметров Rate///
@@ -126,155 +127,160 @@
 //unsigned int B_Delta_EventEXT;// вывод параметров типа Rate по внешней защелке.(надо чтоб от одного влага было, как Event_500Hz)
 
 typedef struct _Gyro {
-	   unsigned int ShowMod2;
-	   int Debag; 
-	   int Debag2; 
-	   unsigned int UARTFlag; 
-	   unsigned int PLC_Start; 
-	   unsigned int LG_Type; 
-	   unsigned int	LogPLC;														// 1
-	   unsigned int	Log;
-	   unsigned int	LogMod;														// 2
-	   unsigned int PLC_Phase;
-	   int PLC_Gain;	
-	   unsigned int	PLC_Lern; 													// 3 обратный таймер для поиска максимальной амплитуды при работе без модулятора
-	   int	PLC_Eror; 
-	   int	PLC_Eror_Rate; 	
-	   int	PLC_Eror_count;
-	   int  PLC_regul;
-	   unsigned int ModAmp;   													// 4 амплитуда модулятора
-	   unsigned int ShiftMod;   
+	   
 	   
-	   unsigned int FlashMod; 													// 5 0-ничего не делать, 1 - запись во Flash, 2 чтение из Flash.
-	   unsigned int ModeOut;													// 6 переменная для выбора варианта вывода параметров типа Rate.
-	  
-	   unsigned int Rate1_Event;	   												// 7 событие 1с для вывода параметров Rate 1
-	   unsigned int Rate3_Event;
-	   unsigned int Reper_Event;												// 8 событие для вывода набора параметров типа Rate по меандру.
-	   unsigned int Event_500Hz;
-	   unsigned int EvenRate7;
-	
-	
-	   int DAC_current_Work;											//3
-       int DAC_current_Start;                         					//4 стартовый ток накачки?
-	   int HFO_ref; 
-	   int HFO_Min;
-	   int HFO_Max;
-	   unsigned int HFO_Gain;
-	   unsigned int RgConA;														// 9 регистр управления ГЛД
-	   unsigned int RgConB;														//10 регистр управления ГЛД
-	   unsigned int RgConMod;
-
-	   unsigned int Gain_Sin;													//11 коиф усиления синуса.
-	   unsigned int Gain_Cos;													//12 коиф усиления косинуса.
-	   unsigned int FrqPhase;
-	   unsigned int FrqPhaseEror;
-	   unsigned int Frq;      													//13 Непосредственное значение частоты для таймера.
-	   unsigned int FrqHZ;     													//14 Частота в Гц.
-	   unsigned int FrqHZmin;													//15 Мин значение частоты ВП
-	   unsigned int FrqHZmax;  													//16 Мах  значение частоты ВП
-	   unsigned int FrqChengSpeed;												//17 скорость регулировки  частоты ВП
-	   unsigned int L_vibro;	
-	   
-	   unsigned int VibroFrqRegulF;												//18 флаг регулировки частоты ВП
-	   unsigned int VibroAMPRegulF;												//19 флаг регулировки амплитуды ВП
-	   unsigned int VibroNoiseF;												//20 флаг ошумления амплитуды ВП
-	   unsigned int VibroOutF;  												//21 флаг изменения состояния ножек вибро.
-	   unsigned int LowVibroFlag;
-	   unsigned int ClrVFlag; 
-	    
-	   unsigned int Amp;														//22 значение амплитуды вибропривода в попугаях (Gyro.Amp = (0%--100%) << 16)
-	   unsigned int AmpPer;														//23 Амплитуда в процентах Gyro.AmpPer = Gyro.Amp>>16	;
-	   unsigned int AmpT;     													//24 значение тиков после которых происходит смена амплитуды ошумления ( rand() % Gyro.AmpTD+Gyro.AmpMin)(частота ошумления)
-	   unsigned int AmpMin;														//25 минимальное  значение AmpT(частота ошумления);
-	   unsigned int AmpTD;														//26 диапозон частоты ошумления(частота ошумления);
-	  
-	   unsigned int AmpPerMin; 													//27 ограничение минимальной  амплитуды ВП
-	   unsigned int AmpPerMax; 													//28 ограничение максимальной амплитуды ВП
-	   unsigned int AmpSpeed;  													//29 коиффициент сорости регулировки амплитуды
-	   unsigned int AmpTarget; 													//30 целевая амплитуда ВП к которой стремится регулировка.
-	   unsigned int AmpPerDel;													//31 значение для расчета амплитуды (дельта амплитуды) на сколько будет отличаться в працентах 1 амплитуда от второй при ошумлении, мин знач : AmpPer, мах знач : AmpPer+AmpPerDel; (в процентах)
-	   unsigned int AmpN1;    													//32 левая граница импулься ВП
-	   unsigned int AmpN2;    													//33 правая граница импулься ВП
-	   unsigned int F_ras;														//34 частота расщипления 
-	   unsigned int F_rasAdd;		 	     
-	   int		    MaxAmp;            										    //35 амплитуда Пик-Пик расчтитанная по востановленному синусу. 
+		   unsigned int TimeToJump;  	                     						            	//5
+		   unsigned int JumpDelta; 
+		   
+		   unsigned int ShowMod2;
+		   int Debag; 
+		   int Debag2; 
+		   unsigned int UARTFlag; 
+		   unsigned int PLC_Start; 
+		   unsigned int LG_Type; 
+		   unsigned int	LogPLC;														// 1
+		   unsigned int	Log;
+		   unsigned int	LogMod;														// 2
+		   unsigned int PLC_Phase;
+		   int PLC_Gain;	
+		   unsigned int	PLC_Lern; 													// 3 обратный таймер для поиска максимальной амплитуды при работе без модулятора
+		   int	PLC_Eror; 
+		   int	PLC_Eror_Rate; 	
+		   int	PLC_Eror_count;
+		   int  PLC_regul;
+		   unsigned int ModAmp;   													// 4 амплитуда модулятора
+		   unsigned int ShiftMod;   
+		   
+		   unsigned int FlashMod; 													// 5 0-ничего не делать, 1 - запись во Flash, 2 чтение из Flash.
+		   unsigned int ModeOut;													// 6 переменная для выбора варианта вывода параметров типа Rate.
+		  
+		   unsigned int Rate1_Event;	   												// 7 событие 1с для вывода параметров Rate 1
+		   unsigned int Rate3_Event;
+		   unsigned int Reper_Event;												// 8 событие для вывода набора параметров типа Rate по меандру.
+		   unsigned int Event_500Hz;
+		   unsigned int EvenRate7;
+		   unsigned int EvenRate5K;
+		
+		   int DAC_current_Work;											//3
+	       int DAC_current_Start;                         					//4 стартовый ток накачки?
+		   int HFO_ref; 
+		   int HFO_Min;
+		   int HFO_Max;
+		   unsigned int HFO_Gain;
+		   unsigned int RgConA;														// 9 регистр управления ГЛД
+		   unsigned int RgConB;														//10 регистр управления ГЛД
+		   unsigned int RgConMod;
 	
-	//ЭНКОДЕР
-	   int CaunPlus;															//36 счетчик +
-	   int CaunMin;	
-	   															                //37 счетчик -  
-	   int CaunPlusRateAdd;															//36 счетчик +
-	   int CaunMinRateAdd;
-	   int CaunPlusRate;															//36 счетчик +
-	   int CaunMinRate;
-	   
-	   int CaunPlusReperAdd;															//36 счетчик +
-	   int CaunMinReperAdd;
-	   int CaunPlusReper;															//36 счетчик +
-	   int CaunMinReper;
-	// данные АЦП
-	   unsigned int TermoNKU;													//38
-	   unsigned int Termo;														//39 значение АЦП
-	   unsigned int DeltaT;														//40
-	    int In1;														//41
-	    int In2;														//42
-	   int Tmp_OffsetT4;  												        //47
-	   int Tmp_OffsetT5;  
-	   float Tmp_scaleT4;  														//53      	 				
-       float Tmp_scaleT5;       	 											//54
-	
-	   unsigned int ADF_Accum;													//43 Значенее амплитудного детектора Временное
-	   unsigned int ADS_Accum;
-	   unsigned int IN1_Accum;		
-	   unsigned int IN2_Accum;	
-	   unsigned int DacIn;											            //44 Значенее амплитудного детектора Временное
-	   unsigned int ADS_AccumTermLM;                                            //45
-	   unsigned int TermLM;														//46
-	   unsigned int ADF_Count;	
-	   unsigned int ADM_Count;													//47 Значенее времени накопления данных
-	   unsigned int ADS_Count;													//48 Значенее времени накопления данных
-	   unsigned int AD_Fast;													//49 Значенее амплитудного детектора		сдвинутое на 16 бит
-	   unsigned int AD_Slow;													//50 Значенее амплитудного детектора		сдвинутое на 16 бит
-	   unsigned int ADF_NewData;												//51 есть данные после фильтрации в быстром фильтре		
-	   unsigned int ADS_NewData;												//52 -----------/----------/----------/--------
-	 
-	 
-	   int DownTreshold;  																//27
-	   int HighTreshold;  	
-	   int PLCDelay;  	
-	   int ResetLevelCool; 																//105
-   	   int ResetLevelHeat; 			
-	 
-	 
-	   int PLC_Error2Mode; 														//53 счетчик, не ноль когдав двух модовом регулировка без модулятора(для просмотра мод)
-	
-	   unsigned int CMD_In;														//54 входящая команда
-	   unsigned int SOC_Out;													//55
-	   unsigned int My_Addres;													//56 адрес прибора
-	   unsigned int DropDelayGLD;												//57 задержка для мультидропа (дискрета 100кГц)
-	   
-	   unsigned int GLD_Serial;													//58 серийный номер прибора
-	   unsigned int CRC;														//59 контрольная сумма посылки
-	   unsigned int Firmware_Version; 											//60 версия программы
-	   unsigned int RsErrLine;         											//61 регистр ошибок передачи.
-	    
-	   int CuruAngle;	
-	   int CuruAngle32;																//62 текущеий угол.
-	   int CuruAngle64;
-	   int CuruAngle96;
-	   int CuruAngle128;
-	   int OldCuruAngle;														//63 старый угол
-	   int CuruAngleLog;
-	   int	Cnt_Dif;															//64 приращение угла между прошлым и текушим приращением за тик виброподвеса (32 тика)
-	    
-	   unsigned int PinReg;     												//65          bit4             bit3                  bit 2                 bit1                 bit0
-	   unsigned int PinRegOld;  												//66  || светодиод || состояние поджига  || состояние подсветки || состояние вибро 2 || состояние вибро 1 ||
-	
-	   unsigned int Discharg;   												//67 последовательность бит харрактеризующая форму сигнала поджига.
-	   unsigned int BackLight; 													//68 последовательность бит харрактеризующая форму сигнала подсветки.
-       unsigned int LaserOn;
-	   unsigned int EXT_Latch;													//69
+		   unsigned int Gain_Sin;													//11 коиф усиления синуса.
+		   unsigned int Gain_Cos;													//12 коиф усиления косинуса.
+		   unsigned int FrqPhase;
+		   unsigned int FrqPhaseEror;
+		   unsigned int Frq;      													//13 Непосредственное значение частоты для таймера.
+		   unsigned int FrqHZ;     													//14 Частота в Гц.
+		   unsigned int FrqHZmin;													//15 Мин значение частоты ВП
+		   unsigned int FrqHZmax;  													//16 Мах  значение частоты ВП
+		   unsigned int FrqChengSpeed;												//17 скорость регулировки  частоты ВП
+		   unsigned int L_vibro;	
+		   
+		   unsigned int VibroFrqRegulF;												//18 флаг регулировки частоты ВП
+		   unsigned int VibroAMPRegulF;												//19 флаг регулировки амплитуды ВП
+		   unsigned int VibroNoiseF;												//20 флаг ошумления амплитуды ВП
+		   unsigned int VibroOutF;  												//21 флаг изменения состояния ножек вибро.
+		   unsigned int LowVibroFlag;
+		   unsigned int ClrVFlag; 
+		    
+		   unsigned int Amp;														//22 значение амплитуды вибропривода в попугаях (Gyro.Amp = (0%--100%) << 16)
+		   unsigned int AmpPer;														//23 Амплитуда в процентах Gyro.AmpPer = Gyro.Amp>>16	;
+		   unsigned int AmpT;     													//24 значение тиков после которых происходит смена амплитуды ошумления ( rand() % Gyro.AmpTD+Gyro.AmpMin)(частота ошумления)
+		   unsigned int AmpMin;														//25 минимальное  значение AmpT(частота ошумления);
+		   unsigned int AmpTD;														//26 диапозон частоты ошумления(частота ошумления);
+		  
+		   unsigned int AmpPerMin; 													//27 ограничение минимальной  амплитуды ВП
+		   unsigned int AmpPerMax; 													//28 ограничение максимальной амплитуды ВП
+		   unsigned int AmpSpeed;  													//29 коиффициент сорости регулировки амплитуды
+		   unsigned int AmpTarget; 													//30 целевая амплитуда ВП к которой стремится регулировка.
+		   unsigned int AmpPerDel;													//31 значение для расчета амплитуды (дельта амплитуды) на сколько будет отличаться в працентах 1 амплитуда от второй при ошумлении, мин знач : AmpPer, мах знач : AmpPer+AmpPerDel; (в процентах)
+		   unsigned int AmpN1;    													//32 левая граница импулься ВП
+		   unsigned int AmpN2;    													//33 правая граница импулься ВП
+		   unsigned int F_ras;														//34 частота расщипления 
+		   unsigned int F_rasAdd;		 	     
+		   int		    MaxAmp;            										    //35 амплитуда Пик-Пик расчтитанная по востановленному синусу. 
+		
+		//ЭНКОДЕР
+		   int CaunPlus;															//36 счетчик +
+		   int CaunMin;	
+		   															                //37 счетчик -  
+		   int CaunPlusRateAdd;															//36 счетчик +
+		   int CaunMinRateAdd;
+		   int CaunPlusRate;															//36 счетчик +
+		   int CaunMinRate;
+		   
+		   int CaunPlusReperAdd;															//36 счетчик +
+		   int CaunMinReperAdd;
+		   int CaunPlusReper;															//36 счетчик +
+		   int CaunMinReper;
+		// данные АЦП
+		   unsigned int TermoNKU;													//38
+		   unsigned int Termo;														//39 значение АЦП
+		   unsigned int DeltaT;														//40
+		    int In1;														//41
+		    int In2;														//42
+		   int Tmp_OffsetT4;  												        //47
+		   int Tmp_OffsetT5;  
+		   float Tmp_scaleT4;  														//53      	 				
+	       float Tmp_scaleT5;       	 											//54
+		
+		   unsigned int ADF_Accum;													//43 Значенее амплитудного детектора Временное
+		   unsigned int ADS_Accum;
+		   unsigned int IN1_Accum;		
+		   unsigned int IN2_Accum;	
+		   unsigned int DacIn;											            //44 Значенее амплитудного детектора Временное
+		   unsigned int ADS_AccumTermLM;                                            //45
+		   unsigned int TermLM;														//46
+		   unsigned int ADF_Count;	
+		   unsigned int ADM_Count;													//47 Значенее времени накопления данных
+		   unsigned int ADS_Count;													//48 Значенее времени накопления данных
+		   unsigned int AD_Fast;													//49 Значенее амплитудного детектора		сдвинутое на 16 бит
+		   unsigned int AD_Slow;													//50 Значенее амплитудного детектора		сдвинутое на 16 бит
+		   unsigned int ADF_NewData;												//51 есть данные после фильтрации в быстром фильтре		
+		   unsigned int ADS_NewData;												//52 -----------/----------/----------/--------
+		 
+		 
+		   int DownTreshold;  																//27
+		   int HighTreshold;  	
+		   int PLCDelay;  	
+		   int ResetLevelCool; 																//105
+	   	   int ResetLevelHeat; 			
+		 
+		 
+		   int PLC_Error2Mode; 														//53 счетчик, не ноль когдав двух модовом регулировка без модулятора(для просмотра мод)
+		
+		   unsigned int CMD_In;														//54 входящая команда
+		   unsigned int SOC_Out;													//55
+		   unsigned int My_Addres;													//56 адрес прибора
+		   unsigned int DropDelayGLD;												//57 задержка для мультидропа (дискрета 100кГц)
+		   
+		   unsigned int GLD_Serial;													//58 серийный номер прибора
+		   unsigned int CRC;														//59 контрольная сумма посылки
+		   unsigned int Firmware_Version; 											//60 версия программы
+		   unsigned int RsErrLine;         											//61 регистр ошибок передачи.
+		    
+		   int CuruAngle;	
+		   int CuruAngle32;																//62 текущеий угол.
+		   int CuruAngle64;
+		   int CuruAngle96;
+		   int CuruAngle128;
+		   int OldCuruAngle;														//63 старый угол
+		   int CuruAngleLog;
+		   int	Cnt_Dif;															//64 приращение угла между прошлым и текушим приращением за тик виброподвеса (32 тика)
+		    
+		   unsigned int PinReg;     												//65          bit4             bit3                  bit 2                 bit1                 bit0
+		   unsigned int PinRegOld;  												//66  || светодиод || состояние поджига  || состояние подсветки || состояние вибро 2 || состояние вибро 1 ||
+		
+		   unsigned int Discharg;   												//67 последовательность бит харрактеризующая форму сигнала поджига.
+		   unsigned int BackLight; 													//68 последовательность бит харрактеризующая форму сигнала подсветки.
+	       unsigned int LaserOn;
+		   unsigned int EXT_Latch;													//69
 } GyroT, *Gyro_p;
 extern GyroT Gyro;
 
@@ -287,8 +293,8 @@
        					unsigned int DAC_current_Work;							//3    HFO_MIN
                         unsigned int DAC_current_Start;                         //4    HFO_MAX
 
-						unsigned int FlashMod;  								//5
-unsigned int a4;  		        								     			//6
+unsigned int TimeToJump;  	                     						            	//5
+unsigned int JumpDelta;  		        								     			//6
 
 unsigned int PLC_Phase;         												//7
 int PLC_Gain;															//8
@@ -415,7 +421,7 @@
 unsigned int a85; 																//112
 unsigned int a86;  																//113
 unsigned int a87; 																//114
-unsigned int a88;  																//115
+unsigned int FlashMod;  														//115
 unsigned int a89; 																//116
 
 unsigned int TSHeat0;  															//117