Dmitry Kovalev / Mbed 2 deprecated LGstaandart

Dependencies:   mbed

Fork of LG2 by Dmitry Kovalev

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers pin.c Source File

pin.c

00001 #include "Global.h"
00002 int Try=0,TimeDischarg=0;
00003 int Light=0;
00004 void PinCheng(void)
00005 {
00006 //================ блок управления ногой поджига======================
00007     if((Gyro.PinReg & PinRegBitD) != (Gyro.PinRegOld & PinRegBitD)) {//если текушее состояние бита поджига в регистре ног отличается от предыдущего то:
00008         if(Gyro.PinReg & PinRegBitD) LightUpON else LightUpOFF//если бита поджига еденица то включить поджиг если 0 отключить
00009             }
00010 
00011 //============= блок управления  подсветкой======================
00012     if((Gyro.PinReg & PinRegBitL) != (Gyro.PinRegOld & PinRegBitL)) {
00013         if(Gyro.PinReg & PinRegBitL) BackLightON else BackLightOFF
00014             }
00015 /*
00016 //============= блок управления вибро нога 1======================
00017     if((Gyro.PinReg & PinRegBit_1V) != (Gyro.PinRegOld & PinRegBit_1V)) {
00018         if(Gyro.PinReg & PinRegBit_1V) ClrV1 else SetV1
00019             }
00020 
00021 //============= блок управления вибро нога 2======================
00022     if((Gyro.PinReg & PinRegBit_2V) != (Gyro.PinRegOld & PinRegBit_2V)) {
00023         if(Gyro.PinReg & PinRegBit_2V) ClrV2  else SetV2
00024             }
00025        */    
00026             
00027 if((Gyro.PinReg & PinRegBitTXE) != (Gyro.PinRegOld & PinRegBitTXE)) {
00028         if(Gyro.PinReg & PinRegBitTXE) TXOn else TXOff
00029             }
00030        Gyro.PinRegOld = Gyro.PinReg; //сохранение текущего регистра как старого для следующего такта сравнения.
00031 }
00032 
00033 
00034 void Discharg ()//проверка битового поля поджига  и  установка значения бита поджига
00035 {   
00036    /* sprintf((Time),"%d %d\r\n",Gyro.RgConA, Gyro.RgConB);
00037     WriteCon(Time);  */
00038       
00039      if (Gyro.Discharg)
00040       {   
00041           if(Gyro.LG_Type==1) {/*Spi.DAC_A=(unsigned int)(26000);*/}//Spi.DAC_A = (unsigned int)(32767-(GyroP.Str.DAC_current_Work>>1));
00042           else Spi.DAC_A =(((int)(GyroP.Str.DAC_current_Start*0.98+0x7fff)  & 0xffff));
00043           
00044           Gyro.Discharg = Gyro.Discharg >> 1;
00045           if(!Gyro.LaserOn)
00046           {
00047           Gyro.RgConA = 0x0000;
00048           Gyro.RgConB = 0x0000;
00049           }
00050          //Проверка здвигового поля(последовательности) поджига
00051          //если последний бит 1 то установить бит поджига в еденицу, иначе в 0;
00052           if (Gyro.Discharg & 0x1) Gyro.PinReg |= PinRegBitD; 
00053           else Gyro.PinReg &= ~PinRegBitD;
00054       }
00055       else if(TimeDischarg<3)
00056       {
00057        TimeDischarg++;
00058          if(TimeDischarg==1)
00059          {
00060                 if (Spi.ADC5>30000)
00061                   { 
00062                   if (Try<10)
00063                      {  
00064                       Spi.DAC_A-=300;
00065                       Gyro.Discharg =  StartDischarg  << ShiftStart0;
00066                       Gyro.BackLight = StartBackLight << ShiftStart0;
00067                       TimeDischarg=0;
00068                       Try++;
00069                      }
00070                   }                 
00071                  else
00072                   { 
00073                     if(!Gyro.LaserOn)
00074                     {
00075                     Gyro.LaserOn=1;
00076                     if(Gyro.LG_Type==1)   Gyro.RgConA = 0xff;
00077                     else Gyro.RgConA = 0xfd;
00078                     Gyro.RgConB = 0x4;
00079                     }
00080                     TimeDischarg=5;
00081                     Try=0;
00082                  if(Gyro.LG_Type==1){}// Spi.DAC_A = (unsigned int)(32767-(GyroP.Str.DAC_current_Work>>1));
00083                  else  Spi.DAC_A = ((((int)(GyroP.Str.DAC_current_Work+0x7fff)  & 0xffff)+22544)*0.65);
00084                   }
00085           } 
00086        } 
00087 }
00088 void BackLight ()
00089 {
00090      if (Gyro.BackLight) 
00091       {   Gyro.BackLight = Gyro.BackLight >> 1;
00092          //Проверка здвигового поля(последовательности) подсветки
00093          //если последний бит в битовом поле 1 то установить бит подсветки в еденицу, иначе в 0;
00094          if (Gyro.BackLight & 0x1) Gyro.PinReg |= PinRegBitL; else Gyro.PinReg &= ~PinRegBitL;       
00095       } 
00096 }