fork

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Kovalev_D
Date:
Thu Apr 13 14:14:45 2017 +0000
Revision:
209:224e7331a061
Parent:
208:19150d2b528f
Child:
211:ac8251b067d2
v2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kovalev_D 28:1c9acd3b224d 1 #include "Global.h"
Kovalev_D 208:19150d2b528f 2 int Try=0,TimeDischarg=0;
Kovalev_D 208:19150d2b528f 3 int Light=0;
Kovalev_D 28:1c9acd3b224d 4 void PinCheng(void)
Kovalev_D 28:1c9acd3b224d 5 {
Kovalev_D 40:8a6494f61326 6 //================ блок управления ногой поджига======================
Kovalev_D 40:8a6494f61326 7 if((Gyro.PinReg & PinRegBitD) != (Gyro.PinRegOld & PinRegBitD)) {//если текушее состояние бита поджига в регистре ног отличается от предыдущего то:
Kovalev_D 40:8a6494f61326 8 if(Gyro.PinReg & PinRegBitD) LightUpON else LightUpOFF//если бита поджига еденица то включить поджиг если 0 отключить
Kovalev_D 40:8a6494f61326 9 }
igor_v 42:6fc307c4963e 10
Kovalev_D 40:8a6494f61326 11 //============= блок управления подсветкой======================
Kovalev_D 40:8a6494f61326 12 if((Gyro.PinReg & PinRegBitL) != (Gyro.PinRegOld & PinRegBitL)) {
Kovalev_D 40:8a6494f61326 13 if(Gyro.PinReg & PinRegBitL) BackLightON else BackLightOFF
Kovalev_D 40:8a6494f61326 14 }
Kovalev_D 203:3a6615de9581 15 /*
Kovalev_D 40:8a6494f61326 16 //============= блок управления вибро нога 1======================
Kovalev_D 40:8a6494f61326 17 if((Gyro.PinReg & PinRegBit_1V) != (Gyro.PinRegOld & PinRegBit_1V)) {
Kovalev_D 47:d902ef6f7564 18 if(Gyro.PinReg & PinRegBit_1V) ClrV1 else SetV1
Kovalev_D 40:8a6494f61326 19 }
igor_v 42:6fc307c4963e 20
Kovalev_D 40:8a6494f61326 21 //============= блок управления вибро нога 2======================
Kovalev_D 40:8a6494f61326 22 if((Gyro.PinReg & PinRegBit_2V) != (Gyro.PinRegOld & PinRegBit_2V)) {
Kovalev_D 47:d902ef6f7564 23 if(Gyro.PinReg & PinRegBit_2V) ClrV2 else SetV2
Kovalev_D 40:8a6494f61326 24 }
Kovalev_D 188:4c523cc373cc 25 */
Kovalev_D 47:d902ef6f7564 26
Kovalev_D 47:d902ef6f7564 27 if((Gyro.PinReg & PinRegBitTXE) != (Gyro.PinRegOld & PinRegBitTXE)) {
Kovalev_D 47:d902ef6f7564 28 if(Gyro.PinReg & PinRegBitTXE) TXOn else TXOff
Kovalev_D 47:d902ef6f7564 29 }
Kovalev_D 190:289514f730ee 30 Gyro.PinRegOld = Gyro.PinReg; //сохранение текущего регистра как старого для следующего такта сравнения.
Kovalev_D 190:289514f730ee 31 }
Kovalev_D 190:289514f730ee 32
Kovalev_D 28:1c9acd3b224d 33
Kovalev_D 190:289514f730ee 34 void Discharg ()//проверка битового поля поджига и установка значения бита поджига
Kovalev_D 208:19150d2b528f 35 {
Kovalev_D 208:19150d2b528f 36 /* sprintf((Time),"%d %d\r\n",Gyro.RgConA, Gyro.RgConB);
Kovalev_D 208:19150d2b528f 37 WriteCon(Time); */
Kovalev_D 208:19150d2b528f 38
Kovalev_D 190:289514f730ee 39 if (Gyro.Discharg)
Kovalev_D 208:19150d2b528f 40 {
Kovalev_D 209:224e7331a061 41 Spi.DAC_A =(((int)(GyroP.Str.DAC_current_Start*0.98+0x7fff) & 0xffff));
Kovalev_D 208:19150d2b528f 42 Gyro.Discharg = Gyro.Discharg >> 1;
Kovalev_D 209:224e7331a061 43 if(!Gyro.LaserOn)
Kovalev_D 209:224e7331a061 44 {
Kovalev_D 208:19150d2b528f 45 Gyro.RgConA = 0x0000;
Kovalev_D 208:19150d2b528f 46 Gyro.RgConB = 0x0000;
Kovalev_D 209:224e7331a061 47 }
Kovalev_D 190:289514f730ee 48 //Проверка здвигового поля(последовательности) поджига
Kovalev_D 190:289514f730ee 49 //если последний бит 1 то установить бит поджига в еденицу, иначе в 0;
Kovalev_D 208:19150d2b528f 50 if (Gyro.Discharg & 0x1) Gyro.PinReg |= PinRegBitD;
Kovalev_D 208:19150d2b528f 51 else Gyro.PinReg &= ~PinRegBitD;
Kovalev_D 190:289514f730ee 52 }
Kovalev_D 208:19150d2b528f 53 else if(TimeDischarg<3)
Kovalev_D 208:19150d2b528f 54 {
Kovalev_D 208:19150d2b528f 55 TimeDischarg++;
Kovalev_D 208:19150d2b528f 56 if(TimeDischarg==1)
Kovalev_D 208:19150d2b528f 57 {
Kovalev_D 208:19150d2b528f 58 if (Spi.ADC5>25000)
Kovalev_D 208:19150d2b528f 59 {
Kovalev_D 208:19150d2b528f 60 if (Try<10)
Kovalev_D 208:19150d2b528f 61 {
Kovalev_D 208:19150d2b528f 62 Gyro.Discharg = StartDischarg << ShiftStart0;
Kovalev_D 208:19150d2b528f 63 Gyro.BackLight = StartBackLight << ShiftStart0;
Kovalev_D 208:19150d2b528f 64 TimeDischarg=0;
Kovalev_D 208:19150d2b528f 65 Try++;
Kovalev_D 208:19150d2b528f 66 }
Kovalev_D 208:19150d2b528f 67 }
Kovalev_D 209:224e7331a061 68
Kovalev_D 209:224e7331a061 69
Kovalev_D 209:224e7331a061 70
Kovalev_D 208:19150d2b528f 71 else
Kovalev_D 208:19150d2b528f 72 {
Kovalev_D 209:224e7331a061 73 //
Kovalev_D 209:224e7331a061 74 if(!Gyro.LaserOn)
Kovalev_D 209:224e7331a061 75 {
Kovalev_D 208:19150d2b528f 76 Gyro.LaserOn=1;
Kovalev_D 209:224e7331a061 77 Gyro.RgConA = 0xfd;
Kovalev_D 209:224e7331a061 78 Gyro.RgConB = 0x4;
Kovalev_D 209:224e7331a061 79 }
Kovalev_D 208:19150d2b528f 80 TimeDischarg=5;
Kovalev_D 208:19150d2b528f 81 Try=0;
Kovalev_D 209:224e7331a061 82 Spi.DAC_A = ((((int)(GyroP.Str.DAC_current_Work+0x7fff) & 0xffff)+22544)*0.65);
Kovalev_D 208:19150d2b528f 83 }
Kovalev_D 208:19150d2b528f 84 }
Kovalev_D 208:19150d2b528f 85 }
Kovalev_D 190:289514f730ee 86 }
Kovalev_D 190:289514f730ee 87 void BackLight ()
Kovalev_D 190:289514f730ee 88 {
Kovalev_D 190:289514f730ee 89 if (Gyro.BackLight)
Kovalev_D 208:19150d2b528f 90 { Gyro.BackLight = Gyro.BackLight >> 1;
Kovalev_D 190:289514f730ee 91 //Проверка здвигового поля(последовательности) подсветки
Kovalev_D 190:289514f730ee 92 //если последний бит в битовом поле 1 то установить бит подсветки в еденицу, иначе в 0;
Kovalev_D 208:19150d2b528f 93 if (Gyro.BackLight & 0x1) Gyro.PinReg |= PinRegBitL; else Gyro.PinReg &= ~PinRegBitL;
Kovalev_D 208:19150d2b528f 94 }
Kovalev_D 28:1c9acd3b224d 95 }