Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of LG2 by
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 }
Generated on Thu Jul 14 2022 02:34:42 by
1.7.2
