fork

Dependencies:   mbed

Fork of LG by igor Apu

pin.c

Committer:
Kovalev_D
Date:
2017-09-27
Revision:
219:2d3475d0dd1b
Parent:
218:b4067cac75c0

File content as of revision 219:2d3475d0dd1b:

#include "Global.h"
int Try=0,TimeDischarg=0;
int Light=0;
void PinCheng(void)
{
//================ блок управления ногой поджига======================
    if((Gyro.PinReg & PinRegBitD) != (Gyro.PinRegOld & PinRegBitD)) {//если текушее состояние бита поджига в регистре ног отличается от предыдущего то:
        if(Gyro.PinReg & PinRegBitD) LightUpON else LightUpOFF//если бита поджига еденица то включить поджиг если 0 отключить
            }

//============= блок управления  подсветкой======================
    if((Gyro.PinReg & PinRegBitL) != (Gyro.PinRegOld & PinRegBitL)) {
        if(Gyro.PinReg & PinRegBitL) BackLightON else BackLightOFF
            }
/*
//============= блок управления вибро нога 1======================
    if((Gyro.PinReg & PinRegBit_1V) != (Gyro.PinRegOld & PinRegBit_1V)) {
        if(Gyro.PinReg & PinRegBit_1V) ClrV1 else SetV1
            }

//============= блок управления вибро нога 2======================
    if((Gyro.PinReg & PinRegBit_2V) != (Gyro.PinRegOld & PinRegBit_2V)) {
        if(Gyro.PinReg & PinRegBit_2V) ClrV2  else SetV2
            }
       */    
            
if((Gyro.PinReg & PinRegBitTXE) != (Gyro.PinRegOld & PinRegBitTXE)) {
        if(Gyro.PinReg & PinRegBitTXE) TXOn else TXOff
            }
       Gyro.PinRegOld = Gyro.PinReg; //сохранение текущего регистра как старого для следующего такта сравнения.
}


void Discharg ()//проверка битового поля поджига  и  установка значения бита поджига
{   
   /* sprintf((Time),"%d %d\r\n",Gyro.RgConA, Gyro.RgConB);
    WriteCon(Time);  */
      
     if (Gyro.Discharg)
      {   
          if(Gyro.LG_Type==1) {/*Spi.DAC_A=(unsigned int)(26000);*/}//Spi.DAC_A = (unsigned int)(32767-(GyroP.Str.DAC_current_Work>>1));
          else Spi.DAC_A =(((int)(GyroP.Str.DAC_current_Start*0.98+0x7fff)  & 0xffff));
          
          Gyro.Discharg = Gyro.Discharg >> 1;
          if(!Gyro.LaserOn)
          {
          Gyro.RgConA = 0x0000;
          Gyro.RgConB = 0x0000;
          }
         //Проверка здвигового поля(последовательности) поджига
         //если последний бит 1 то установить бит поджига в еденицу, иначе в 0;
          if (Gyro.Discharg & 0x1) Gyro.PinReg |= PinRegBitD; 
          else Gyro.PinReg &= ~PinRegBitD;
      }
      else if(TimeDischarg<3)
      {
       TimeDischarg++;
         if(TimeDischarg==1)
         {
                if (Spi.ADC5>30000)
                  { 
                  if (Try<10)
                     {  
                      Spi.DAC_A-=300;
                      Gyro.Discharg =  StartDischarg  << ShiftStart0;
                      Gyro.BackLight = StartBackLight << ShiftStart0;
                      TimeDischarg=0;
                      Try++;
                     }
                  }                 
                 else
                  { 
                    if(!Gyro.LaserOn)
                    {
                    Gyro.LaserOn=1;
                    if(Gyro.LG_Type==1)   Gyro.RgConA = 0xff;
                    else Gyro.RgConA = 0xfd;
                    Gyro.RgConB = 0x4;
                    }
                    TimeDischarg=5;
                    Try=0;
                 if(Gyro.LG_Type==1){}// Spi.DAC_A = (unsigned int)(32767-(GyroP.Str.DAC_current_Work>>1));
                 else  Spi.DAC_A = ((((int)(GyroP.Str.DAC_current_Work+0x7fff)  & 0xffff)+22544)*0.65);
                  }
          } 
       } 
}
void BackLight ()
{
     if (Gyro.BackLight) 
      {   Gyro.BackLight = Gyro.BackLight >> 1;
         //Проверка здвигового поля(последовательности) подсветки
         //если последний бит в битовом поле 1 то установить бит подсветки в еденицу, иначе в 0;
         if (Gyro.BackLight & 0x1) Gyro.PinReg |= PinRegBitL; else Gyro.PinReg &= ~PinRegBitL;       
      } 
}