Dmitry Kovalev
/
LG2
fork
Fork of LG by
Diff: MTimer.c
- Revision:
- 197:7a05523bf588
- Parent:
- 196:f76dbc081e63
- Child:
- 200:1df682165694
- Child:
- 201:76f4123bf22a
- Child:
- 203:3a6615de9581
diff -r f76dbc081e63 -r 7a05523bf588 MTimer.c --- a/MTimer.c Fri Sep 23 05:34:50 2016 +0000 +++ b/MTimer.c Wed Oct 19 10:55:05 2016 +0000 @@ -7,12 +7,10 @@ #include "SPI.h" #include "InputOutput.h" - - -//unsigned int CountV=0; -//unsigned int CountVf=0 ; +unsigned int CountV64=0; unsigned int CountV31=0; -unsigned int CountV255=0,f ; +unsigned int CountV255=0; +unsigned int f; int loop=0; ///////////////////////////////////////////////////// @@ -34,8 +32,7 @@ } ///////////////////////////////////////////////////// ///////////////////// 1kHz ////////////////////////// -/////////////////////////////////////////////////////LoopOn LPC_GPIO1->FIOSET = (1<<30); -//#define LoopOff LPC_GPIO1->FIOCLR = (1<<30); +///////////////////////////////////////////////////// void Event_1KHz(void)// событие раз в 1 кГц { if (Event1K) @@ -53,12 +50,18 @@ void Event_500Hz(void)// событие раз в 500 Гц { if(Event500Hz) + { Event500Hz--; + Gyro.Event_500Hz=1;// Event 500Гц выдачи данных для постройки графика управления вибро + } +} + + +void Event_250Hz(void)// событие раз в 500 Гц +{ + if(Event250Hz) { - Event500Hz--; - //Gyro.Delta500_Event=1; - Gyro.Event_500Hz=1;// Event 500Гц выдачи данных для постройки графика управления вибро - //Gyro.Delta_Bins_Event500=1; - //Gyro.B_Delta_Event500=1; + Event250Hz--; + Gyro.EventMOD=1;// Event 500Гц выдачи данных для постройки графика управления вибро } } ///////////////////////////////////////////////////// @@ -68,24 +71,12 @@ { if (Event100K) { + Event100K --; - Time500Hz++; - + if (OutBufCon1Count)OutBufCon1Count--; // обратный отсчет для управления ногой и формирование задержки на выдачу PinCheng(); // чтение регистра состояния выводов(вибро, полсветка, поджиг, LED) и управление выводами. - - Time100K++; - if (Time100K == 100) - { - Time100K = 0; - Event1K ++; - } - if (Time500Hz > 200) - { - Time500Hz -= 200; - Event500Hz ++; - } } } ///////////////////////////////////////////////////// @@ -143,8 +134,6 @@ return 1; } - - ////////////////////////////////////////////////////////////////////// /////////////////////////включение таймера 2////////////////////////// ////////////////////////////////////////////////////////////////////// @@ -159,41 +148,58 @@ /////////////////////////прерывание таймера 1////////////////////////// ////////////////////////////////////////////////////////////////////// __irq void TIMER1_IRQHandler (void)//13.27 kHz -{ +{ // LoopOn ResetCS(ADC); //prepare ADC for sampling SetDAC(DAC); CountV255++; // инкремент счеттчика CountV255 &= 0xff; // ОБРЕЗАНИЕ СЧЕТЧИКА - CountV31 =CountV255 & 0x1f; // малый счетчик - + CountV64 = CountV255 & 0x3f; + CountV31 = CountV255 & 0x1f; // малый счетчик + D_QEI(); //чтение данных по счетчику cheng(); // выставление флагов в 32 тактном цикле. SetCS(ADC); //start ADC sampling ResetDAC(DAC); - SPI_Exchange(); //Чтение ADS_SPI + SPI_Exchange(); //Чтение ADC_SPI LPC_TIM1->IR = 1; + // LoopOff + } - - - - - /////////////////////////////////////////////////////////////////////// /////////////////////////прерывание таймера 2////////////////////////// /////////////////////////////////////////////////////////////////////// __irq void TIMER2_IRQHandler (void) -{ +{ LPC_TIM2->IR = 1; Global_Time++; if(Time_UART) Time_UART--; Time_vibro++; Gyro.VibroOutF=1; Event100K ++; - + Time500Hz++; + Time100K++; + Time250Hz++; + if (Time100K == 100) + { + Time100K = 0; + Event1K ++; + + } + if (Time500Hz > 200) + { + Time500Hz -= 200; + Event500Hz ++; + + } + if (Time250Hz > 400) + { + Time250Hz -= 400; + Event250Hz ++; + } } \ No newline at end of file