Dmitry Kovalev
/
LGstaandart
forkd
Fork of LG2 by
Diff: MTimer.c
- Revision:
- 202:c03b7b128e11
- Parent:
- 201:76f4123bf22a
diff -r 76f4123bf22a -r c03b7b128e11 MTimer.c --- a/MTimer.c Wed Nov 02 14:05:24 2016 +0000 +++ b/MTimer.c Fri Nov 18 06:07:37 2016 +0000 @@ -11,8 +11,7 @@ unsigned int CountV31=0; unsigned int CountV255=0; unsigned int f,f1; -int loop=0; - +int Timee=0; ///////////////////////////////////////////////////// /////////////////////EVENT/////////////////////////// ///////////////////////////////////////////////////// @@ -20,17 +19,20 @@ ///////////////////// 1Hz /////////////////////////// ///////////////////////////////////////////////////// void Event_1Hz(void)// событие раз в 1 Гц -{ int i,t; +{ if (Event1Hz) { - - + Event1Hz--; + // BackLightON + Timee++; + switch(Gyro.LogPLC) { case 0: ShowMod(); break; } Gyro.Rate1_Event = 1; - Event1Hz--; + Time1Hz++; Discharg (); BackLight(); - // LoopOff + + // BackLightOFF } } ///////////////////////////////////////////////////// @@ -40,27 +42,25 @@ { if (Event1K) { + Event1K --; Time1K++;//первый ++ работает каждые 125 (event100kHz)второй был в 100 кГц if(Gyro.Start) Gyro.Start--; - - if (Time1K == 1000) + // if(Gyro.Start==6999) AVibON; + if (Time1K > 100) { - LoopOn - Time1K = 0; + Time1K -=100; Event1Hz ++; - LoopOff } - } } void Event_500Hz(void)// событие раз в 500 Гц { if(Event500Hz) - {// LoopOn + {// Event500Hz--; Gyro.Event_500Hz=1;// Event 500Гц выдачи данных для постройки графика управления вибро - // LoopOff + // } } @@ -68,13 +68,12 @@ void Event_250Hz(void)// событие раз в 200 Гц(модулятор) { if(Event250Hz) - { // 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; + /* sprintf((Time),"%d %d %d %d %d\r\n",Gyro.AD_Slow, Gyro.CuruAngle, Gyro.Termo, ADCDIF>>9, Spi.DAC_B); WriteCon(Time);*/ // Gyro.EventMOD=1;// - // LoopOff + // } } /**/ @@ -85,13 +84,14 @@ { if (Event100K) { - // LoopOn + Event100K --; if (OutBufCon1Count)OutBufCon1Count--; // обратный отсчет для управления ногой и формирование задержки на выдачу - - PinCheng(); // чтение регистра состояния выводов(вибро, полсветка, поджиг, LED) и управление выводами. - // LoopOff + Time100K++; + if(Time100K==998){Event1K=1;Time100K-=998;} + // PinCheng(); // чтение регистра состояния выводов(вибро, полсветка, поджиг, LED) и управление выводами. + // } } ///////////////////////////////////////////////////// @@ -142,8 +142,8 @@ /////////////////////инициализация таймера 2 ///////////////////////// ////////////////////////////////////////////////////////////////////// unsigned int Init_TIM2 (void) -{ - LPC_TIM2->MR0 = 81; +{ //LPC_TIM2->MR0 = 259; + LPC_TIM2->MR0 = 159; LPC_TIM2->MCR = 3; /* Interrupt and Reset on MR0 */ NVIC_EnableIRQ(TIMER2_IRQn); return 1; @@ -154,94 +154,122 @@ ////////////////////////////////////////////////////////////////////// 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 +{ // + // BackLightON + ResetCS(ADC); //prepare ADC for sampling SetDAC(DAC); + CountV255++; // инкремент счеттчика CountV255 &= 0xff; // ОБРЕЗАНИЕ СЧЕТЧИКА CountV64 = CountV255 & 0x3f; CountV31 = CountV255 & 0x1f; // малый счетчик + SetCS(ADC); //start ADC sampling + ResetDAC(DAC); + SPI_Exchange(); + D_QEI(); //чтение данных по счетчику cheng(); // выставление флагов в 32 тактном цикле. - SetCS(ADC); //start ADC sampling - ResetDAC(DAC); - SPI_Exchange(); //Чтение ADC_SPI + //Чтение ADC_SPI LPC_TIM1->IR = 1; - // LoopOff - + // + //BackLightOFF } /////////////////////////////////////////////////////////////////////// /////////////////////////прерывание таймера 2////////////////////////// /////////////////////////////////////////////////////////////////////// __irq void TIMER2_IRQHandler (void) -{ // LoopOn +{ // +LoopOn + + Time_vibro++; + + if(CountV31>=16) + {//первая нога вибро + // левая граница вЫкл вибро 1 > Time_vibro <ПРАВАЯ граница вЫкл вибро 1 + if((Time_vibro==Gyro.AmpN1)) + { + SetV1//установить в регистре PinReg бит "вибро 1" в "0" + } + else if(Time_vibro>Gyro.AmpN2) + { + ClrV1 //установить в регистре PinReg бит "вибро 1" в "1" + } + } + else + {//вторая нога вибро + if((Time_vibro==Gyro.AmpN1)) + { + SetV2 //установить в регистре PinReg бит "вибро 2" в "0" + } + else if(Time_vibro>Gyro.AmpN2) + { + ClrV2//установить в регистре PinReg бит "вибро 2" в "1" + } + } + /* +VibroOut(); +PinCheng(); */ + + + LoopOff LPC_TIM2->IR = 1; Global_Time++; if(Time_UART) Time_UART--; - Time_vibro++; + Gyro.VibroOutF=1; Event100K ++; Time500Hz++; - Time100K++; + // Time100K++; Time250Hz++; - if (Time100K >299) - { //LoopOn - Time100K -=299; - Event1K ++; - // LoopOff - } - if (Time500Hz > 599) - { // LoopOn - Time500Hz -= 599; + + /*if (Time500Hz > 200) + { // + Time500Hz -= 200; Event500Hz ++; - // LoopOff + // } if (Time250Hz > 1198) - { //LoopOn + { // Time250Hz -=1198; Event250Hz ++; - // LoopOff - } - //LoopOff + // + }*/ + // - + } -__irq void TIMER0_IRQHandler (void) +/*__irq void TIMER0_IRQHandler (void) { - LPC_TIM0->IR = 1; - //Time_vibro++; - // Gyro.VibroOutF=1; -} \ No newline at end of file +}*/ \ No newline at end of file