fork

Dependencies:   mbed

Fork of LG by igor Apu

vibro.h

Committer:
Kovalev_D
Date:
2016-04-04
Revision:
112:4a96133a1311
Parent:
111:8ee1ef722ba7
Child:
113:8be429494918

File content as of revision 112:4a96133a1311:

#ifndef VIBRO_H
#define VIBRO_H

#define ClrV1  LPC_GPIO1->FIOSET=(1<<25);
#define SetV1  LPC_GPIO1->FIOCLR = (1<<25);

#define TXOn  LPC_GPIO2->FIOSET=(1<<7);
#define TXOff LPC_GPIO2->FIOCLR = (1<<7);

#define  ClrV2 LPC_GPIO1->FIOSET = (1<<28);
#define  SetV2 LPC_GPIO1->FIOCLR = (1<<28);

#define  LoopOn  LPC_GPIO1->FIOSET  = (1<<30);
#define  LoopOff LPC_GPIO1->FIOCLR  = (1<<30);
#define  StartV1  0
#define  StartV2 15
#define  TIME_INTERVAL	(7812)

extern int tempAMP;
typedef struct _Gyro {


   unsigned int RgConA;
   unsigned int RgConB;

   unsigned int Gain_A;
   unsigned int Gain_B;

    unsigned int Frq;       // Непосредственное значение частоты для таймера.
    unsigned int FrqHZ;     // Частота в Гц.
    
    unsigned int VibroFrqRegulF;//флаг регулировки частоты ВП
    unsigned int VibroAMPRegulF;//флаг регулировки амплитуды ВП
    unsigned int VibroNoiseF;//флаг ошумления амплитуды ВП
    unsigned int VibroOutF;
    
    unsigned int Amp;
    unsigned int AmpT;     // значение тиков после которых происходит смена амплитуды ошумления ( rand() % Gyro.AmpTD+Gyro.AmpMin)
    unsigned int AmpMin;   // минимальное  значение AmpT(частота ошумления);
    unsigned int AmpTD;    // максимальное значение AmpT(частота ошумления);
    unsigned int AmpPer;   // Амплитуда в процентах;
    unsigned int AmpPerDel;// значение для расчета амплитуды(дельта амплитуды), мин знач : AmpPer-AmpPerDel, мах знач : AmpPer+AmpPerDel; (в процентах)
    unsigned int AmpN1;    // левая граница импулься ВП
    unsigned int AmpN2;    // равая граница импулься ВП
    int	MaxAmp;            // амплитуда Пик-Пик расчтитанная по востановленному синусу. 
//ЭНКОДЕР
    int CaunPlus;//
    int CaunMin;//    
// данные АЦП
    unsigned int Termo1;	// значение АЦП
    unsigned int Termo2;
    unsigned int Termo3;
    unsigned int Termo4;
//пятый ацп, он же амплитудный детектор "AD". есть два фильтра быстрый "Fast" и медленный "Slow"
    unsigned int ADF_Accum;			//Значенее амплитудного детектора Временное
    unsigned int ADS_Accum;			//Значенее амплитудного детектора Временное

    unsigned int ADF_Count;			//Значенее времени накопления данных
   	unsigned int ADS_Count;			//Значенее времени накопления данных

    unsigned int AD_Fast;			//Значенее амплитудного детектора		сдвинутое на 16 бит
    unsigned int AD_Slow;			//Значенее амплитудного детектора		сдвинутое на 16 бит

    unsigned int ADF_NewData;		// есть данные после фильтрации в быстром фильтре		
    unsigned int ADS_NewData;		//-----------/----------/----------/--------
    
//контур регулеровки Периметра    "PLC"
   



//Контур регулеровки накачки (если нужно, например ГВЧ)

    
    
    
    
    unsigned int CMD_In;
    unsigned int SOC_Out;
    unsigned int My_Addres;
    unsigned int GLD_Serial;
    unsigned int CRC;
    unsigned int Firmware_Version;
    unsigned int RsErrLine;




    
    int 		CuruAngle ;
    int 		OldCuruAngle ;
    int 		Num;
    int 		Cnt_Pls;
    int 		Cnt_Mns;
    int 		Cnt_Dif;

    unsigned int F_ras;

    unsigned int ras;
  
  
#define FrqOff  Gyro.RgConA &= ~AFRQ; //установить бит светодиода в "0"
#define FrqON   Gyro.RgConA |=  AFRQ;   //установить бит светодиода в "1"

#define HFOOFF  Gyro.RgConA &= ~AHFO; //установить бит светодиода в "0"
#define HFOON   Gyro.RgConA |= AHFO;   //установить бит светодиода в "1"

#define PlcOFF  Gyro.RgConA &= ~APLC; //установить бит светодиода в "0"
#define PlcON   Gyro.RgConA |= APLC;   //установить бит светодиода в "1"
  
#define  AFRQ 	(1<<0)
#define  AHFO  	(1<<1)
#define  APLC  	(1<<2)    
    
    unsigned int PinReg;     //          bit5             bit4                  bit 3                 bit1                 bit0
    unsigned int PinRegOld;  //    || светодиод || состояние поджига  || состояние подсветки || состояние вибро 2 || состояние вибро 1 ||
#define LedOFF  Gyro.PinReg &= ~PinRegBitLED; //установить бит светодиода в "0"
#define LedON   Gyro.PinReg |= PinRegBitLED;   //установить бит светодиода в "1"


#define  PinRegBitTXE  	(1<<5)
#define  PinRegBitLED  	(1<<4)
#define  PinRegBitD  	(1<<3)
#define  PinRegBitL  	(1<<2)
#define  PinRegBit_2V  	(1<<1)
#define  PinRegBit_1V  	(1<<0)
	unsigned int Discharg;   //   последовательность бит харрактеризующая форму сигнала поджига.
#define  StartDischarg        0x00000055
    unsigned int BackLight;  //   последовательность бит харрактеризующая форму сигнала подсветки.
#define  StartBackLight        0x00000055



} GyroT, *Gyro_p;
extern GyroT Gyro;






extern unsigned int amp;

extern void cheng(void);
extern void Noise(void);
extern void VibroOut(void);
extern void Discharg (void);
extern void BackLight (void);
extern unsigned int FrecTp;
extern int Pulse_midl;
extern struct VIBRO Vib;
extern int PulseHalf;
extern int CuruAngle;
extern unsigned int FrecTemp;
#endif