fork

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Kovalev_D
Date:
Wed Feb 10 14:06:57 2016 +0000
Revision:
47:d902ef6f7564
Parent:
42:6fc307c4963e
Child:
49:53277d871197
??????? ???? ?????????? ????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
igor_v 0:8ad47e2b6f00 1 #include "MTimer.h"
igor_v 0:8ad47e2b6f00 2 #include "LPC17xx.h"
igor_v 0:8ad47e2b6f00 3 #include "MTimer.h"
igor_v 0:8ad47e2b6f00 4 #include "vibro.h"
igor_v 0:8ad47e2b6f00 5 #include "QEI.h"
igor_v 0:8ad47e2b6f00 6 #include "Global.h"
igor_v 0:8ad47e2b6f00 7 #include "SPI.h"
igor_v 0:8ad47e2b6f00 8 #include "InputOutput.h"
igor_v 0:8ad47e2b6f00 9 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 10 ////////////////////////////////////////////////////////TIMER1////////////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 11 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 12
igor_v 0:8ad47e2b6f00 13 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 14 /////////////////////инициализация таймера 1 /////////////////////////
igor_v 0:8ad47e2b6f00 15 //////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 16 //unsigned int CountV=0;
igor_v 21:bc8c1cec3da6 17 //unsigned int CountVf=0 ;
igor_v 0:8ad47e2b6f00 18 unsigned int CountV31=0;
igor_v 21:bc8c1cec3da6 19 unsigned int CountV255=0 ;
igor_v 21:bc8c1cec3da6 20 unsigned int CountV64 = 0;
igor_v 21:bc8c1cec3da6 21 unsigned int init_timer (unsigned int TimerInterval )
igor_v 21:bc8c1cec3da6 22 {
igor_v 21:bc8c1cec3da6 23 //start DAC prepearing for writing
igor_v 21:bc8c1cec3da6 24 LPC_TIM1->MR0 = TimerInterval;
igor_v 21:bc8c1cec3da6 25 LPC_TIM1->MCR = 3; /* Interrupt and Reset on MR1 */
igor_v 21:bc8c1cec3da6 26 NVIC_EnableIRQ(TIMER1_IRQn);
igor_v 21:bc8c1cec3da6 27 //LPC_GPIO0->FIOSET |= (1<<5);
igor_v 21:bc8c1cec3da6 28
igor_v 21:bc8c1cec3da6 29 return 0;
igor_v 21:bc8c1cec3da6 30 }
igor_v 21:bc8c1cec3da6 31
igor_v 21:bc8c1cec3da6 32
igor_v 0:8ad47e2b6f00 33 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 34 /////////////////////////включение таймера 1//////////////////////////
igor_v 0:8ad47e2b6f00 35 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 36 void enable_timer1( void )
igor_v 21:bc8c1cec3da6 37 {
igor_v 21:bc8c1cec3da6 38 LPC_TIM1->TCR = 1;
igor_v 21:bc8c1cec3da6 39 return;
igor_v 21:bc8c1cec3da6 40 }
igor_v 21:bc8c1cec3da6 41
igor_v 21:bc8c1cec3da6 42
igor_v 0:8ad47e2b6f00 43 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 44 /////////////////////////прерывание таймера 1//////////////////////////
igor_v 21:bc8c1cec3da6 45 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 46 __irq void TIMER1_IRQHandler (void)
igor_v 21:bc8c1cec3da6 47 {
igor_v 21:bc8c1cec3da6 48 //LoopOn
igor_v 21:bc8c1cec3da6 49
igor_v 21:bc8c1cec3da6 50 // Init_SPI_Exchange();// CS
igor_v 21:bc8c1cec3da6 51 ResetCS(ADC); //prepare ADC for sampling
igor_v 21:bc8c1cec3da6 52 SetDAC(DAC);
igor_v 21:bc8c1cec3da6 53
igor_v 21:bc8c1cec3da6 54 CountV255++;
igor_v 21:bc8c1cec3da6 55 CountV255 &= 0xff;
igor_v 21:bc8c1cec3da6 56 CountV31 =CountV255 & 0x1f;
igor_v 21:bc8c1cec3da6 57 CountV64 = CountV255 & 0x3f;
igor_v 42:6fc307c4963e 58
igor_v 21:bc8c1cec3da6 59 SetCS(ADC); //start ADC sampling
igor_v 21:bc8c1cec3da6 60 ResetDAC(DAC);
igor_v 21:bc8c1cec3da6 61
igor_v 42:6fc307c4963e 62 D_QEI(); //чтение данных по счетчику
igor_v 42:6fc307c4963e 63 cheng(); // расчет вибропривода
igor_v 21:bc8c1cec3da6 64
igor_v 0:8ad47e2b6f00 65 // CuruAngle = CuruAngle + Buff_32Point [CountVf] - 0xffff;
igor_v 21:bc8c1cec3da6 66 CuruAngle = CuruAngle + Buff_32Point [CountV255] - 0xffff;
igor_v 21:bc8c1cec3da6 67
igor_v 42:6fc307c4963e 68 SPI_Exchange(); //Чтение ADS_SPI
igor_v 21:bc8c1cec3da6 69 LPC_TIM1->IR = 1;
igor_v 21:bc8c1cec3da6 70
igor_v 21:bc8c1cec3da6 71 }
igor_v 0:8ad47e2b6f00 72
igor_v 0:8ad47e2b6f00 73
igor_v 0:8ad47e2b6f00 74 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 75 /////////////////////////////////////////////////TIMER2//////////////////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 76 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 77
igor_v 0:8ad47e2b6f00 78 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 79 /////////////////////инициализация таймера 2 /////////////////////////
igor_v 0:8ad47e2b6f00 80 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 81 unsigned int Init_TIM2 (void)
igor_v 21:bc8c1cec3da6 82 {
igor_v 21:bc8c1cec3da6 83 LPC_TIM2->MR0 = 250;
igor_v 21:bc8c1cec3da6 84 LPC_TIM2->MCR = 3; /* Interrupt and Reset on MR0 */
igor_v 21:bc8c1cec3da6 85 NVIC_EnableIRQ(TIMER2_IRQn);
igor_v 21:bc8c1cec3da6 86 return 1;
igor_v 21:bc8c1cec3da6 87 }
igor_v 0:8ad47e2b6f00 88
igor_v 15:f5191a1c3805 89
igor_v 15:f5191a1c3805 90
igor_v 21:bc8c1cec3da6 91 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 92 /////////////////////////включение таймера 2//////////////////////////
igor_v 21:bc8c1cec3da6 93 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 94 void enable_timer2(void)
igor_v 21:bc8c1cec3da6 95 {
igor_v 21:bc8c1cec3da6 96 LPC_TIM2->TCR = 1;
igor_v 21:bc8c1cec3da6 97 LPC_TIM2->TCR = 0x01;
igor_v 21:bc8c1cec3da6 98 }
igor_v 21:bc8c1cec3da6 99
igor_v 21:bc8c1cec3da6 100
igor_v 21:bc8c1cec3da6 101
igor_v 21:bc8c1cec3da6 102 ///////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 103 /////////////////////////прерывание таймера 2//////////////////////////
igor_v 21:bc8c1cec3da6 104 ///////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 105 __irq void TIMER2_IRQHandler (void)
igor_v 21:bc8c1cec3da6 106 {
igor_v 21:bc8c1cec3da6 107 LPC_TIM2->IR = 1;
igor_v 21:bc8c1cec3da6 108
igor_v 21:bc8c1cec3da6 109 Global_Time++;
igor_v 21:bc8c1cec3da6 110
igor_v 21:bc8c1cec3da6 111 Time_UART++;
igor_v 21:bc8c1cec3da6 112
igor_v 21:bc8c1cec3da6 113 Time_vibro++;
igor_v 21:bc8c1cec3da6 114
igor_v 21:bc8c1cec3da6 115 Time_1kHz++;
igor_v 21:bc8c1cec3da6 116
igor_v 21:bc8c1cec3da6 117 VibroOut();
igor_v 21:bc8c1cec3da6 118
Kovalev_D 47:d902ef6f7564 119 Event100K --;
igor_v 21:bc8c1cec3da6 120
igor_v 21:bc8c1cec3da6 121 }