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 LG by
Revision 122:fbacb932a30b, committed 2016-04-07
- Comitter:
- Kovalev_D
- Date:
- Thu Apr 07 16:45:25 2016 +0000
- Parent:
- 121:bbae560cdd43
- Child:
- 123:6dd1df6230e9
- Commit message:
- ???? 115 . ???? ?????? 921600 ????? (????????? ??? ?????????)
Changed in this revision
--- 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;
--- a/MTimer.c Thu Apr 07 10:44:23 2016 +0000
+++ b/MTimer.c Thu Apr 07 16:45:25 2016 +0000
@@ -35,15 +35,15 @@
if (Event1Hz)
{
-
+
- Event1Hz--;
- Time1Hz++;
+ Event1Hz--;
+ Time1Hz++;
Discharg ();
BackLight ();
- if(Rate_Flag)CMD_Rate();
+ if(Rate_Flag == 1) CMD_Rate();
}
}
/////////////////////////////////////////////////////
--- a/SPI.c Thu Apr 07 10:44:23 2016 +0000 +++ b/SPI.c Thu Apr 07 16:45:25 2016 +0000 @@ -99,6 +99,11 @@ // Spi.DAC_B = (Gyro.PLC_Regul + 0x1fffffff)/65536; } +else Spi.DAC_B += 16; + + + + Gyro.PLC_Old = PLC_In; }
--- a/main.c Thu Apr 07 10:44:23 2016 +0000
+++ b/main.c Thu Apr 07 16:45:25 2016 +0000
@@ -58,8 +58,8 @@
UART_InitSet (0, 921600, 0x03); // надо проверить, мож чо с ногам
-// UART_InitSet (1, 921600, 0x03);
- UART_InitSet (1, 38400, 0x03);
+// UART_InitSet (1, 992600, 0x03);
+ UART_InitSet (1, 115200, 0x03);
////////////
//DAC_ADC_Exchange_Init(); // инициализация обмена АЦП и ЦАП.
@@ -264,6 +264,7 @@
Event_Vibro();
+ if((Rate2VibFlag==1) && (Rate_Flag==2))CMD_Rate2();//набор rate2 выдается по выставлению (логической)ноги в 1.
--- a/vibro.c Thu Apr 07 10:44:23 2016 +0000
+++ b/vibro.c Thu Apr 07 16:45:25 2016 +0000
@@ -4,7 +4,7 @@
volatile unsigned int Cheng_AMP_Flag=0;
int reper=0;
-
+int Rate2VibFlag;
void Discharg ()//проверка битового поля поджига и установка значения бита поджига
{
if (Gyro.Discharg)
@@ -28,13 +28,15 @@
-/*if(Rate_Flag==2)CMD_Rate2(void);*/
+
void VibroOut(void) // выставка ног вибро
{
if(CountV31>=16) {//первая нога вибро
// левая граница вЫкл вибро 1 > Time_vibro <ПРАВАЯ граница вЫкл вибро 1
if((Time_vibro>Gyro.AmpN1) && (Time_vibro<Gyro.AmpN2)) {
+
+
Gyro.PinReg &= ~PinRegBit_1V;//установить в регистре PinReg бит "вибро 1" в "0"
} else {
Gyro.PinReg |= PinRegBit_1V;//установить в регистре PinReg бит "вибро 1" в "1"
@@ -42,7 +44,8 @@
} else {//вторая нога вибро
if((Time_vibro>Gyro.AmpN1)&&(Time_vibro<Gyro.AmpN2)) {
- Gyro.PinReg &= ~PinRegBit_2V; /*LoopOff*////установить в регистре PinReg бит "вибро 2" в "0"
+
+ Gyro.PinReg &= ~PinRegBit_2V; /*LoopOff*////установить в регистре PinReg бит "вибро 2" в "0"
} else {
Gyro.PinReg |= PinRegBit_2V;//установить в регистре PinReg бит "вибро 2" в "1"
}
@@ -119,7 +122,6 @@
switch(CountV31) {
case 0:
-
Time_vibro=0;
Gyro.VibroNoiseF=1;
@@ -129,6 +131,7 @@
case 16:
Time_vibro=0;
Gyro.VibroFrqRegulF=1;
+ Rate2VibFlag=1;
break;
case 24:
--- a/vibro.h Thu Apr 07 10:44:23 2016 +0000
+++ b/vibro.h Thu Apr 07 16:45:25 2016 +0000
@@ -18,8 +18,12 @@
extern int tempAMP;
typedef struct _Gyro {
-
-
+
+ unsigned int OutMode;
+ #define Rate1 0x1<<0
+ #define Rate2 0x1<<1
+ #define Delta500 0x1<<2
+ #define DeltaEXT 0x1<<3
unsigned int RgConA;
unsigned int RgConB;
@@ -141,7 +145,7 @@
extern unsigned int amp;
-
+extern int Rate2VibFlag;
extern void cheng(void);
extern void Noise(void);
extern void VibroOut(void);
