![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
forkd
Fork of LG2 by
Diff: main.c
- Revision:
- 114:5cc38a53d8a7
- Parent:
- 113:8be429494918
- Child:
- 116:66f1f0ff2dab
--- a/main.c Mon Apr 04 14:48:14 2016 +0000 +++ b/main.c Tue Apr 05 02:44:26 2016 +0000 @@ -251,7 +251,9 @@ } // Read_CMD(); - +//ДИМА== посмотри пожалуйста нармално ли работуют все таймеры аппаратные и програмные, то есть нет ли где затыком по времени +// с помошью ссветодиода например помаргай в разные временна, почему в режиме "рейт" передача от гироскопа идет с разной частотой +// попробуй сделать "рейт M4" посмотри в протоколе как вклбчается и на кокой скорости работает Event_1Hz(); Event_1KHz(); Event_100KHz(); @@ -262,13 +264,13 @@ if (Spi.ADC_NewData == 1) // был приход новых данных по ацп сдесь сделать обработку информации и подготовку для выдачи делается 1 раз за вибро { -// можно хапихнкть в функцию +// можно апихнкть в функцию Spi.ADC_NewData = 0; Gyro.Termo = Spi.ADC1; Gyro.In1 = Spi.ADC2; Gyro.In2 = Spi.ADC3; Gyro.DeltaT = Spi.ADC4; - TempA = 0x7fff - Spi.ADC5; // перевернем знак + TempA = (0x7fff - Spi.ADC5) << 1; // перевернем знак и умножим на два (бало 32000...0 стало 0 ...64000) Gyro.ADF_Accum += TempA; Gyro.ADS_Accum += TempA; @@ -297,45 +299,41 @@ if (Gyro.ADF_NewData == 1) // был приход новых данных После быстрого фильтра AD { Gyro.ADF_NewData = 0; - + }// можно запихнкть в функцию + + if (Gyro.ADS_NewData == 1) // был приход новых данных После Медленного фильтра AD + { + Gyro.ADS_NewData = 0; + PlcRegul();//Расчет }// можно запихнкть в функцию - if (Gyro.ADS_NewData == 1) // был приход новых данных После Медленного фильтра AD - { - Gyro.ADS_NewData = 0; - }// можно запихнкть в функцию - - if(Spi.PLC_NewData == 32) - { - Spi.PLC_NewData = 0; - PlcRegul();//выдача в ЦАПы - } - - if(Gyro.VibroFrqRegulF == 1) + if(Gyro.VibroFrqRegulF == 1) //Регулеровка частоты виброподвеса { Gyro.VibroFrqRegulF = 0; VibroFrqRegul(); } - if(Gyro.VibroAMPRegulF == 1) + + if(Gyro.VibroAMPRegulF == 1) //Регулеровка Амплитуды виброподвеса { Gyro.VibroAMPRegulF = 0; VibroAMPRegul(); } - if(Gyro.VibroNoiseF == 1) + if(Gyro.VibroNoiseF == 1) //регулеровка ошумления, наверно нужно объеденить с регулеровкой ампитуды { Gyro.VibroNoiseF = 0; CalcAmpN(); } - - if(Gyro.VibroOutF== 1) + if(Gyro.VibroOutF== 1) // установка ног в регисторе тоже подумать , зачем отделный флаг? наверно { Gyro.VibroOutF = 0; VibroOut(); //Чтение ADS_SPI } + + }//while } //main