forkd

Dependencies:   mbed

Fork of LGstaandart by Dmitry Kovalev

pin.c

Committer:
Kovalev_D
Date:
2017-02-07
Revision:
208:19150d2b528f
Parent:
205:775d54fdf646
Child:
209:224e7331a061

File content as of revision 208:19150d2b528f:

#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)
      {   
          Spi.DAC_A = GyroP.Str.DAC_current_Start;
          Gyro.Discharg = Gyro.Discharg >> 1;
          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>25000)
                  { 
                  if (Try<10)
                     {  
                      Gyro.Discharg =  StartDischarg  << ShiftStart0;
                      Gyro.BackLight = StartBackLight << ShiftStart0;
                      TimeDischarg=0;
                      Try++;
                     }
                  }
                 else
                  { 
                    Spi.DAC_A = GyroP.Str.DAC_current_Work;
                    Gyro.LaserOn=1;
                    Gyro.RgConA = 0xffff;
                    Gyro.RgConB = 0xffff;
                    TimeDischarg=5;
                    Try=0;
                  }
          } 
       } 
       else
       {
          /* if(Spi.ADC5>30000) { Gyro.LaserOn=0;  Gyro.RgConA = 0x0;  Gyro.RgConB = 0x0;}
           else 
                {  
                  //Gyro.RgConA = 0xffff;
                 // Gyro.RgConB = 0xffff;
                  Gyro.LaserOn=1;
                  Try=0;
                }*/
       }   
}
void BackLight ()
{
     if (Gyro.BackLight) 
      {   Gyro.BackLight = Gyro.BackLight >> 1;
         //Проверка здвигового поля(последовательности) подсветки
         //если последний бит в битовом поле 1 то установить бит подсветки в еденицу, иначе в 0;
         if (Gyro.BackLight & 0x1) Gyro.PinReg |= PinRegBitL; else Gyro.PinReg &= ~PinRegBitL;       
      } 
}