Dmitry Kovalev
/
LGstaandart
forkd
Fork of LG2 by
pin.c
- Committer:
- Kovalev_D
- Date:
- 2018-01-05
- Revision:
- 227:2774b56bfab0
- Parent:
- 218:b4067cac75c0
File content as of revision 227:2774b56bfab0:
#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; } }