Dmitry Kovalev
/
LGfiltr
forkd
Fork of LGstaandart by
Diff: MTimer.c
- Revision:
- 201:76f4123bf22a
- Parent:
- 197:7a05523bf588
- Child:
- 202:c03b7b128e11
diff -r 7a05523bf588 -r 76f4123bf22a MTimer.c --- a/MTimer.c Wed Oct 19 10:55:05 2016 +0000 +++ b/MTimer.c Wed Nov 02 14:05:24 2016 +0000 @@ -10,7 +10,7 @@ unsigned int CountV64=0; unsigned int CountV31=0; unsigned int CountV255=0; -unsigned int f; +unsigned int f,f1; int loop=0; ///////////////////////////////////////////////////// @@ -22,13 +22,16 @@ void Event_1Hz(void)// событие раз в 1 Гц { int i,t; if (Event1Hz) - { + { + + Gyro.Rate1_Event = 1; Event1Hz--; Time1Hz++; Discharg (); BackLight(); - } + // LoopOff + } } ///////////////////////////////////////////////////// ///////////////////// 1kHz ////////////////////////// @@ -39,31 +42,42 @@ { Event1K --; Time1K++;//первый ++ работает каждые 125 (event100kHz)второй был в 100 кГц - + if(Gyro.Start) Gyro.Start--; + if (Time1K == 1000) { + LoopOn Time1K = 0; Event1Hz ++; + LoopOff } + } } void Event_500Hz(void)// событие раз в 500 Гц { if(Event500Hz) - { Event500Hz--; + {// LoopOn + Event500Hz--; Gyro.Event_500Hz=1;// Event 500Гц выдачи данных для постройки графика управления вибро + // LoopOff } } -void Event_250Hz(void)// событие раз в 500 Гц +void Event_250Hz(void)// событие раз в 200 Гц(модулятор) { if(Event250Hz) - { - Event250Hz--; - Gyro.EventMOD=1;// Event 500Гц выдачи данных для постройки графика управления вибро + { // LoopOn + Event250Hz--; + /* sprintf((Time),"%d %d %d %d %d\r\n",Gyro.AD_Slow, Gyro.CuruAngle, Gyro.Termo, ADCDIF>>9, Spi.DAC_B);//выдаем в терминал для постройки граффика регулировки периметра. + Gyro.CuruAngle=0; + WriteCon(Time);*/ + // Gyro.EventMOD=1;// + // LoopOff } } + /**/ ///////////////////////////////////////////////////// ///////////////////// 100kHz ////////////////////////// ///////////////////////////////////////////////////// @@ -71,12 +85,13 @@ { if (Event100K) { - + // LoopOn Event100K --; if (OutBufCon1Count)OutBufCon1Count--; // обратный отсчет для управления ногой и формирование задержки на выдачу PinCheng(); // чтение регистра состояния выводов(вибро, полсветка, поджиг, LED) и управление выводами. + // LoopOff } } ///////////////////////////////////////////////////// @@ -128,7 +143,7 @@ ////////////////////////////////////////////////////////////////////// unsigned int Init_TIM2 (void) { - LPC_TIM2->MR0 = 257; + LPC_TIM2->MR0 = 81; LPC_TIM2->MCR = 3; /* Interrupt and Reset on MR0 */ NVIC_EnableIRQ(TIMER2_IRQn); return 1; @@ -139,19 +154,34 @@ ////////////////////////////////////////////////////////////////////// void enable_timer2(void) { + LPC_TIM2->TCR = 1; LPC_TIM2->TCR = 0x01; } +unsigned int Init_TIM0 (void) +{ + LPC_TIM0->MR0 =180; + LPC_TIM0->MCR = 3; + NVIC_EnableIRQ(TIMER0_IRQn); + return 1; +} + +void enable_timer0(void) +{ + //LPC_SC->PCONP |= (1<<23); + LPC_TIM0->TCR = 1; + LPC_TIM0->TCR = 0x01; + +} ////////////////////////////////////////////////////////////////////// /////////////////////////прерывание таймера 1////////////////////////// ////////////////////////////////////////////////////////////////////// __irq void TIMER1_IRQHandler (void)//13.27 kHz { // LoopOn - ResetCS(ADC); //prepare ADC for sampling + ResetCS(ADC); //prepare ADC for sampling SetDAC(DAC); - CountV255++; // инкремент счеттчика CountV255 &= 0xff; // ОБРЕЗАНИЕ СЧЕТЧИКА CountV64 = CountV255 & 0x3f; @@ -175,31 +205,43 @@ /////////////////////////прерывание таймера 2////////////////////////// /////////////////////////////////////////////////////////////////////// __irq void TIMER2_IRQHandler (void) -{ +{ // LoopOn LPC_TIM2->IR = 1; - Global_Time++; + Global_Time++; if(Time_UART) Time_UART--; - Time_vibro++; - Gyro.VibroOutF=1; + Time_vibro++; + Gyro.VibroOutF=1; Event100K ++; Time500Hz++; Time100K++; Time250Hz++; - if (Time100K == 100) - { - Time100K = 0; + if (Time100K >299) + { //LoopOn + Time100K -=299; Event1K ++; - + // LoopOff + } + if (Time500Hz > 599) + { // LoopOn + Time500Hz -= 599; + Event500Hz ++; + // LoopOff } - if (Time500Hz > 200) - { - Time500Hz -= 200; - Event500Hz ++; - + if (Time250Hz > 1198) + { //LoopOn + Time250Hz -=1198; + Event250Hz ++; + // LoopOff } - if (Time250Hz > 400) - { - Time250Hz -= 400; - Event250Hz ++; - } + //LoopOff + + + +} +__irq void TIMER0_IRQHandler (void) +{ + + LPC_TIM0->IR = 1; + //Time_vibro++; + // Gyro.VibroOutF=1; } \ No newline at end of file