Dmitry Kovalev
/
LGstaandart
forkd
Fork of LG2 by
Diff: Command.c
- Revision:
- 191:40028201ddad
- Parent:
- 190:289514f730ee
- Child:
- 192:d32c8cf7bcd9
diff -r 289514f730ee -r 40028201ddad Command.c --- a/Command.c Tue Aug 23 14:03:16 2016 +0000 +++ b/Command.c Mon Aug 29 11:58:52 2016 +0000 @@ -71,6 +71,15 @@ WriteCon(Time); } ///////////////end flah and boot/////////// + void M_RateA(void) + { + switch(Gyro.ModeOut) { + case 1: if(Gyro.Rate1_Event == 1) CMD_Rate(); break; + case 2: if(Gyro.Rate2_Event == 1) CMD_Rate2(); break; + case 3: if(Gyro.Delta500_Event == 1) CMD_Delta_500Hz(); break; + case 4: if(Gyro.EXT_Latch == 1) CMD_Delta_Ext(); break; + } + } void CMD_M_Param_R(void) { @@ -132,7 +141,7 @@ BuffTemp[ 0] = Gyro.SOC_Out; BuffTemp[ 1] = Gyro.My_Addres; - Temp = Gyro.CuruAngle; + Temp = Gyro.CuruAngle>>5; Gyro.CuruAngle = 0; BuffTemp[ 2] =(Temp >> 8) & 0xff;//старший байт разности счетчиков @@ -292,7 +301,7 @@ Gyro.EXT_Latch=0; BuffTemp[ 0] = Gyro.SOC_Out; BuffTemp[ 1] = Gyro.My_Addres; - Temp = Gyro.CuruAngle; + Temp = Gyro.CuruAngle>>5; Gyro.CuruAngle = 0; BuffTemp[ 2] =(Temp >> 8) & 0xff;//старший байт разности счетчиков @@ -458,7 +467,7 @@ { Gyro.Rate1_Event=0; unsigned int Temp; - + unsigned int OldCuruAngle; Gyro.Firmware_Version=0xff; /// промежуточная затычка @@ -472,10 +481,19 @@ BuffTemp[ 4] =(Gyro.CaunMin >> 8) & 0xff;//старший байт счетчика -. BuffTemp[ 5] =(Gyro.CaunMin >> 0) & 0xff;//младший байт счетчика -. - -Temp = Gyro.CuruAngle; -Gyro.CuruAngle = 0; -//Temp = Gyro.AD_Fast >> 16; + +Temp=Gyro.CuruAngle; //(0,28/с) + + // 8 байт + 4 байта от прошлых измерений + /* Gyro.CuruAngle = Gyro.CuruAngle + OldCuruAngle; //(72 град/с) + OldCuruAngle=Gyro.CuruAngle & 0xff; //сохраняем 4 байта для след измирений + Temp=Gyro.CuruAngle>>8; */ //приводим к форме вывода + + //(9 град/с) +/*OldCuruAngle=Gyro.CuruAngle & 0x1f; //сохраняем 5 бит для след измирений + Temp=Gyro.CuruAngle>>5; */ //приводим к форме вывода + Gyro.CuruAngle = 0; + BuffTemp[ 6] =(Temp >> 8) & 0xff;//старший байт разности счетчиков BuffTemp[ 7] =(Temp >> 0) & 0xff;//младший байт разности счетчиков @@ -972,7 +990,7 @@ if (Time[0] == 'F') { // выдача технологическая sprintf(Time,"\r\n"); WriteCon(Time); - sprintf((Time)," Gyro.Termo = <%07d> Spi.ADC1 = <%07d> Spi.ADC1_Accum = <%07d>",Spi.ADC4,Spi.ADC4,Spi.ADC4_Accum ); + sprintf((Time)," Gyro.CuruAngle = <%015d>", Gyro.CuruAngle); WriteCon(Time); } if (Time[0] == 'q') { // внешняя защелка @@ -987,7 +1005,7 @@ if (Time[0] == '2') { // выдача технологическая sprintf(Time,"\r\n"); WriteCon(Time); - for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ", Buff_8Point[i]); + for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ", Buff_32Point[CountV31]); WriteCon(Time); } if (Time[0] == '3') { // выдача технологическая @@ -999,10 +1017,28 @@ if (Time[0] == '4') { // выдача технологическая sprintf(Time,"\r\n"); WriteCon(Time); - for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%05d> ", Buff_16PointD[i]); + for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%07d> ", Buff_16PointD[i]); + WriteCon(Time); + sprintf(Time,"\r\n"); + WriteCon(Time); + sprintf(Time,"\r\n"); + WriteCon(Time); + for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%07d> ", Buff_32Point[i]); + WriteCon(Time); + sprintf(Time,"\r\n"); + WriteCon(Time); + sprintf(Time,"\r\n"); + WriteCon(Time); + for (int i = 0; i < 32; i++ )sprintf((Time + i * 9)," <%07d> ", Buff_Restored_sin[i]); + WriteCon(Time); + sprintf(Time,"\r\n"); + WriteCon(Time); + sprintf(Time,"\r\n"); + WriteCon(Time); + sprintf(Time,"\r\n"); WriteCon(Time); } - if (Time[0] == 'z'){ // выдача технологическая + if (Time[0] == 'z'){ // выдача технологичес6кая sprintf(Time,"\r\n"); WriteCon(Time); for (int i = 0; i < 32; i++ ) @@ -1020,7 +1056,7 @@ if (Time[0] == '7') { // выдача технологическая sprintf(Time,"\r\n"); WriteCon(Time); - for (int i = 0; i < 32; i++ )sprintf((Time + i * 10)," <%07d> ",Buff_AMP64P[i]-(Buff_AMP[i])); + for (int i = 0; i < 32; i++ )sprintf((Time + i * 10)," <%05d> ", Buff_16PointD[CountV31] - Buff_32Point[CountV31]); WriteCon(Time); } if (Time[0] == '9') { // выдача технологическая @@ -1079,7 +1115,7 @@ if((Gyro.LogHZ == 1)&&(Gyro.Event_500Hz==1)) //Запись для Ориджина. { Gyro.Event_500Hz=0; - sprintf((Time),"%d \r\n",LPC_TIM1->MR0); + sprintf((Time),"%d \r\n",Gyro.MaxAmp); WriteCon(Time); }