fork

Dependencies:   mbed

Fork of LG by igor Apu

MTimer.c

Committer:
Diletant
Date:
2016-02-11
Revision:
49:53277d871197
Parent:
47:d902ef6f7564
Child:
88:b5c1d9d338d1

File content as of revision 49:53277d871197:

#include "MTimer.h"
#include "LPC17xx.h"
#include "MTimer.h"
#include "vibro.h"
#include "QEI.h"
#include "Global.h"
#include "SPI.h"
#include "InputOutput.h"
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////TIMER1////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////
/////////////////////инициализация таймера 1 /////////////////////////
//////////////////////////////////////////////////////////////////////
//unsigned int CountV=0;
//unsigned int CountVf=0 ;
unsigned int CountV31=0;
unsigned int CountV255=0 ;
unsigned int CountV64  = 0;
unsigned int init_timer (unsigned int TimerInterval )
{
    //start DAC prepearing for writing
    //Match Register 0
    LPC_TIM1->MR0 = TimerInterval;
    //Match Control Register. The MCR is used to control if an interrupt is generated and if the TC is reset when a Match occurs
    LPC_TIM1->MCR = 3;				/* Interrupt and Reset on MR1 */
    NVIC_EnableIRQ(TIMER1_IRQn);
    //LPC_GPIO0->FIOSET   |= (1<<5);

    return 0;
}


//////////////////////////////////////////////////////////////////////
/////////////////////////включение таймера 1//////////////////////////
//////////////////////////////////////////////////////////////////////
void enable_timer1( void )
{
    LPC_TIM1->TCR = 1;
    return;
}


//////////////////////////////////////////////////////////////////////
/////////////////////////прерывание таймера 1//////////////////////////
//////////////////////////////////////////////////////////////////////
__irq void TIMER1_IRQHandler (void)
{
//LoopOn

    //  Init_SPI_Exchange();// CS
    ResetCS(ADC);					  	 //prepare ADC for sampling
    SetDAC(DAC);

    CountV255++;
    CountV255 &= 0xff;
    CountV31 =CountV255 & 0x1f;
    CountV64 = CountV255 & 0x3f;

    SetCS(ADC);					    		//start ADC sampling
    ResetDAC(DAC);

    D_QEI();								//чтение данных по счетчику
    cheng();								// расчет вибропривода

//			CuruAngle = CuruAngle + Buff_32Point [CountVf] - 0xffff;
    CuruAngle = CuruAngle + Buff_32Point [CountV255] - 0xffff;

    SPI_Exchange(); 				//Чтение ADS_SPI
    LPC_TIM1->IR = 1;

}


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////TIMER2//////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////
/////////////////////инициализация таймера 2 /////////////////////////
//////////////////////////////////////////////////////////////////////
unsigned int Init_TIM2 (void)
{
    LPC_TIM2->MR0 = 250;
    LPC_TIM2->MCR = 3;				/* Interrupt and Reset on MR0 */
    NVIC_EnableIRQ(TIMER2_IRQn);
    return 1;
}



//////////////////////////////////////////////////////////////////////
/////////////////////////включение таймера 2//////////////////////////
//////////////////////////////////////////////////////////////////////
void enable_timer2(void)
{
    LPC_TIM2->TCR = 1;
    LPC_TIM2->TCR = 0x01;
}



///////////////////////////////////////////////////////////////////////
/////////////////////////прерывание таймера 2//////////////////////////
///////////////////////////////////////////////////////////////////////
__irq void TIMER2_IRQHandler (void)
{
    LPC_TIM2->IR = 1;

    Global_Time++;

    Time_UART++;

    Time_vibro++;

    Time_1kHz++;

    VibroOut();

	Event100K --;

}