Dmitry Kovalev
/
LG2
fork
Fork of LG by
Diff: Command.c
- Revision:
- 122:fbacb932a30b
- Parent:
- 121:bbae560cdd43
- Child:
- 124:9ae09249f842
--- a/Command.c Thu Apr 07 10:44:23 2016 +0000 +++ b/Command.c Thu Apr 07 16:45:25 2016 +0000 @@ -23,8 +23,8 @@ }*/ void CMD_Maintenance(void) { - Rate_Flag=0; - BuffTemp[0] = Gyro.SOC_Out; + + BuffTemp[0] = Gyro.SOC_Out; BuffTemp[1] = Gyro .My_Addres; BuffTemp[2] = Gyro .Firmware_Version; BuffTemp[3] = Gyro .GLD_Serial; @@ -34,10 +34,25 @@ WriteConN (BuffTemp,8); } +void CMD_Rate3(void) +{ + unsigned int Temp; + BuffTemp[ 0] = Gyro.SOC_Out; + BuffTemp[ 1] = Gyro.My_Addres; + Temp=0x00; + BuffTemp[ 2] =(Temp >> 8) & 0xff;// + BuffTemp[ 3] =(Temp >> 0) & 0xff;// + Temp=0x00; + BuffTemp[ 4] =(Temp >> 8) & 0xff;// + BuffTemp[ 5] =(Temp >> 0) & 0xff;// + + Check(BuffTemp, 44); + WriteConN (BuffTemp,44); +} void CMD_Rate2(void) { - + Rate2VibFlag=0; BuffTemp[ 0] = Gyro.SOC_Out; BuffTemp[ 1] = Gyro.My_Addres; @@ -48,80 +63,20 @@ BuffTemp[ 4] =(Gyro.CaunMin >> 8) & 0xff;//старший байт счетчика -. BuffTemp[ 5] =(Gyro.CaunMin >> 0) & 0xff;//младший байт счетчика -. - Check(BuffTemp, 44); - WriteConN (BuffTemp,44); + + + + Check(BuffTemp, 8); + WriteConN (BuffTemp,8); } void CMD_Rate(void) { unsigned int Temp; - - unsigned int Cnt_PlsL , Cnt_PlsH; // Счетчик +. - unsigned int Cnt_MnsL , Cnt_MnsH; // Счетчик -. - unsigned int Cnt_DifL , Cnt_DifH; // Разность счетчиков. - unsigned int F_rasL , F_rasH; // Частота расщепления. - - unsigned int HF_regL , HF_regH; // Выход регулятора ГВЧ. - unsigned int HF_difL , HF_difH; // Сигнал ошибки регулячтора ГВЧ. - - unsigned int WP_regL , WP_regH; - - unsigned int ADC1L, ADC2L, ADC3L, ADC4L, ADC5L; - unsigned int ADC1H, ADC2H, ADC3H, ADC4H, ADC5H; - - Gyro.Firmware_Version=0xff; /// промежуточная затычка - - - - - Cnt_PlsH = ( Gyro.Cnt_Pls>>8) TakeByte; - Cnt_PlsL = Gyro.Cnt_Pls TakeByte; - Gyro.Cnt_Pls= 0; - - Cnt_MnsH = ( Gyro.Cnt_Mns>>8) TakeByte; - Cnt_MnsL = Gyro.Cnt_Mns TakeByte; - Gyro.Cnt_Mns=0; - - Cnt_DifH = ( Dif_QEI>>8) TakeByte; - Cnt_DifL = ( Dif_QEI ) TakeByte; - - //Spi.DAC_A - F_rasH = ( Gyro.F_ras>>8 ) TakeByte; - F_rasL = ( Gyro.F_ras ) TakeByte; - - HF_regL = ( Spi.DAC_A ) TakeByte; - HF_regH = ( Spi.DAC_A>>8 ) TakeByte; - - WP_regH = ( Spi.DAC_A>>8 ) TakeByte; - WP_regL = ( Spi.DAC_A ) TakeByte; - - ADC1H = ( Spi.ADC1>>8 ) TakeByte; - ADC1L = ( Spi.ADC1 ) TakeByte; - - ADC2H = ( Spi.ADC2>>8 ) TakeByte; - ADC2L = ( Spi.ADC2 ) TakeByte; - - ADC3H = ( Spi.ADC3>>8 ) TakeByte; - ADC3L = ( Spi.ADC3 ) TakeByte; - - ADC4H = ( Spi.ADC4>>8 ) TakeByte; - ADC4L = ( Spi.ADC4 ) TakeByte; - - ADC5H = ( Spi.ADC5>>8 ) TakeByte; - ADC5L = ( Spi.ADC5 ) TakeByte; - - WP_regH = ( Spi.DAC_B>>8 ) TakeByte; - WP_regL = ( Spi.DAC_B ) TakeByte; - - HF_regH=0xff; - HF_regL=0xff; - - HF_difH=0xff; - HF_difL=0xff; - + BuffTemp[ 0] = Gyro.SOC_Out; BuffTemp[ 1] = Gyro.My_Addres; @@ -141,15 +96,14 @@ BuffTemp[ 7] =(Temp >> 0) & 0xff;//младший байт разности счетчиков - - - BuffTemp[ 8] = F_rasH;//расщипление частота - BuffTemp[ 9] = F_rasL;// + Temp = Gyro.F_ras; + BuffTemp[ 8] = (Temp >> 8) & 0xff;//расщипление частота + BuffTemp[ 9] = (Temp >> 0) & 0xff;// BuffTemp[10] = (Temp >> 8) & 0xff;//выход регулятора гвч; - BuffTemp[11] = (Temp >> 0) & 0xff;; + BuffTemp[11] = (Temp >> 0) & 0xff; -Temp = (Gyro.AD_Slow >> 16)- 0x7fff;; +Temp = (Gyro.AD_Slow >> 16)- 0x7fff; BuffTemp[12]=(Temp >> 8) & 0xff;//// BuffTemp[13]=(Temp >> 0) & 0xff;//// @@ -396,7 +350,6 @@ break; case 0xDD://m_rate - lengf=6; CRC_N=44; break; @@ -486,9 +439,9 @@ { ReadCon1(BuffTemp); switch(Gyro.CMD_In) { - Rate_Flag=0; + Rate_Flag=0; case 0x99: - Rate_Flag=0; + Rate_Flag=0; CMD_Maintenance(); break; @@ -501,12 +454,14 @@ CMD_M_Stymul(); break; case 0xDD: - TempParam = BuffTemp[3]; - Rate_Flag=0; - if (TempParam==3) Rate_Flag=3; - else if(TempParam==2) Rate_Flag=2; - else Rate_Flag=1; - break; + Rate_Flag=0; + TempParam=(BuffTemp[3]) & 0x9f; + if (TempParam == 0x01) { Rate_Flag=0; CMD_Rate(); WriteCon("Rate11");} + else if (TempParam == 0x02) { Rate_Flag=0; CMD_Rate2(); WriteCon("Rate21");} + else if (TempParam == 0x81) { Rate_Flag=1; WriteCon("Rate12");} + else if (TempParam == 0x82) { Rate_Flag=2; Rate2VibFlag==0; WriteCon("Rate22");} + + break; case 0xE4: CMD_M_vib(); break;