forkd

Dependencies:   mbed

Fork of LG2 by Dmitry Kovalev

Committer:
Kovalev_D
Date:
Wed Feb 03 10:44:42 2016 +0300
Revision:
23:12e6183f04d4
[thyz

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kovalev_D 23:12e6183f04d4 1 #include "Time.h"
Kovalev_D 23:12e6183f04d4 2 #include "lpc17xx.h"
Kovalev_D 23:12e6183f04d4 3 #include "MTimer.h"
Kovalev_D 23:12e6183f04d4 4 #include "vibro.h"
Kovalev_D 23:12e6183f04d4 5 #include "QEI.h"
Kovalev_D 23:12e6183f04d4 6 #include "Global.h"
Kovalev_D 23:12e6183f04d4 7 #include "SPI.h"
Kovalev_D 23:12e6183f04d4 8 #include "InputOutput.h"
Kovalev_D 23:12e6183f04d4 9
Kovalev_D 23:12e6183f04d4 10 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 11 ////////////////////////////////////////////////////////TIMER1////////////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 12 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 13
Kovalev_D 23:12e6183f04d4 14 //////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 15 /////////////////////èíèöèàëèçàöèÿ òàéìåðà 1 /////////////////////////
Kovalev_D 23:12e6183f04d4 16 //////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 17 //unsigned int CountV=0;
Kovalev_D 23:12e6183f04d4 18 //unsigned int CountVf=0 ;
Kovalev_D 23:12e6183f04d4 19 unsigned int CountV31=0;
Kovalev_D 23:12e6183f04d4 20 unsigned int CountV255=0 ;
Kovalev_D 23:12e6183f04d4 21 unsigned int CountV64 = 0;
Kovalev_D 23:12e6183f04d4 22 unsigned int init_timer (unsigned int TimerInterval )
Kovalev_D 23:12e6183f04d4 23 {
Kovalev_D 23:12e6183f04d4 24 //start DAC prepearing for writing
Kovalev_D 23:12e6183f04d4 25 LPC_TIM1->MR0 = TimerInterval;
Kovalev_D 23:12e6183f04d4 26 LPC_TIM1->MCR = 3; /* Interrupt and Reset on MR1 */
Kovalev_D 23:12e6183f04d4 27 NVIC_EnableIRQ(TIMER1_IRQn);
Kovalev_D 23:12e6183f04d4 28 //LPC_GPIO0->FIOSET |= (1<<5);
Kovalev_D 23:12e6183f04d4 29
Kovalev_D 23:12e6183f04d4 30 return 0;
Kovalev_D 23:12e6183f04d4 31 }
Kovalev_D 23:12e6183f04d4 32
Kovalev_D 23:12e6183f04d4 33
Kovalev_D 23:12e6183f04d4 34 //////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 35 /////////////////////////âêëþ÷åíèå òàéìåðà 1//////////////////////////
Kovalev_D 23:12e6183f04d4 36 //////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 37 void enable_timer1( void )
Kovalev_D 23:12e6183f04d4 38 {
Kovalev_D 23:12e6183f04d4 39 LPC_TIM1->TCR = 1;
Kovalev_D 23:12e6183f04d4 40 return;
Kovalev_D 23:12e6183f04d4 41 }
Kovalev_D 23:12e6183f04d4 42
Kovalev_D 23:12e6183f04d4 43
Kovalev_D 23:12e6183f04d4 44 //////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 45 /////////////////////////ïðåðûâàíèå òàéìåðà 1//////////////////////////
Kovalev_D 23:12e6183f04d4 46 //////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 47 __irq void TIMER1_IRQHandler (void)
Kovalev_D 23:12e6183f04d4 48 {
Kovalev_D 23:12e6183f04d4 49 //LoopOn
Kovalev_D 23:12e6183f04d4 50
Kovalev_D 23:12e6183f04d4 51
Kovalev_D 23:12e6183f04d4 52 // Init_SPI_Exchange();// CS
Kovalev_D 23:12e6183f04d4 53 ResetCS(ADC); //prepare ADC for sampling
Kovalev_D 23:12e6183f04d4 54 SetDAC(DAC);
Kovalev_D 23:12e6183f04d4 55
Kovalev_D 23:12e6183f04d4 56 CountV255++;
Kovalev_D 23:12e6183f04d4 57 CountV255 &= 0xff;
Kovalev_D 23:12e6183f04d4 58 CountV31 =CountV255 & 0x1f;
Kovalev_D 23:12e6183f04d4 59 CountV64 = CountV255 & 0x3f;
Kovalev_D 23:12e6183f04d4 60 SetCS(ADC); //start ADC sampling
Kovalev_D 23:12e6183f04d4 61 ResetDAC(DAC);
Kovalev_D 23:12e6183f04d4 62 D_QEI();
Kovalev_D 23:12e6183f04d4 63
Kovalev_D 23:12e6183f04d4 64 cheng();
Kovalev_D 23:12e6183f04d4 65
Kovalev_D 23:12e6183f04d4 66 // CuruAngle = CuruAngle + Buff_32Point [CountVf] - 0xffff;
Kovalev_D 23:12e6183f04d4 67 CuruAngle = CuruAngle + Buff_32Point [CountV255] - 0xffff;
Kovalev_D 23:12e6183f04d4 68
Kovalev_D 23:12e6183f04d4 69 SPI_Exchange(); //×òåíèå ADS_SPI
Kovalev_D 23:12e6183f04d4 70
Kovalev_D 23:12e6183f04d4 71 LPC_TIM1->IR = 1;
Kovalev_D 23:12e6183f04d4 72
Kovalev_D 23:12e6183f04d4 73 }
Kovalev_D 23:12e6183f04d4 74
Kovalev_D 23:12e6183f04d4 75
Kovalev_D 23:12e6183f04d4 76 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 77 /////////////////////////////////////////////////TIMER2//////////////////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 78 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 79
Kovalev_D 23:12e6183f04d4 80 //////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 81 /////////////////////èíèöèàëèçàöèÿ òàéìåðà 2 /////////////////////////
Kovalev_D 23:12e6183f04d4 82 //////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 83 unsigned int Init_TIM2 (void)
Kovalev_D 23:12e6183f04d4 84 {
Kovalev_D 23:12e6183f04d4 85 LPC_TIM2->MR0 = 250;
Kovalev_D 23:12e6183f04d4 86 LPC_TIM2->MCR = 3; /* Interrupt and Reset on MR0 */
Kovalev_D 23:12e6183f04d4 87 NVIC_EnableIRQ(TIMER2_IRQn);
Kovalev_D 23:12e6183f04d4 88 return 1;
Kovalev_D 23:12e6183f04d4 89 }
Kovalev_D 23:12e6183f04d4 90
Kovalev_D 23:12e6183f04d4 91
Kovalev_D 23:12e6183f04d4 92
Kovalev_D 23:12e6183f04d4 93 //////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 94 /////////////////////////âêëþ÷åíèå òàéìåðà 2//////////////////////////
Kovalev_D 23:12e6183f04d4 95 //////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 96 void enable_timer2(void)
Kovalev_D 23:12e6183f04d4 97 {
Kovalev_D 23:12e6183f04d4 98 LPC_TIM2->TCR = 1;
Kovalev_D 23:12e6183f04d4 99 LPC_TIM2->TCR = 0x01;
Kovalev_D 23:12e6183f04d4 100 }
Kovalev_D 23:12e6183f04d4 101
Kovalev_D 23:12e6183f04d4 102
Kovalev_D 23:12e6183f04d4 103
Kovalev_D 23:12e6183f04d4 104 ///////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 105 /////////////////////////ïðåðûâàíèå òàéìåðà 2//////////////////////////
Kovalev_D 23:12e6183f04d4 106 ///////////////////////////////////////////////////////////////////////
Kovalev_D 23:12e6183f04d4 107 __irq void TIMER2_IRQHandler (void)
Kovalev_D 23:12e6183f04d4 108 {
Kovalev_D 23:12e6183f04d4 109 LPC_TIM2->IR = 1;
Kovalev_D 23:12e6183f04d4 110
Kovalev_D 23:12e6183f04d4 111 Global_Time++;
Kovalev_D 23:12e6183f04d4 112
Kovalev_D 23:12e6183f04d4 113 Time_UART++;
Kovalev_D 23:12e6183f04d4 114
Kovalev_D 23:12e6183f04d4 115 Time_vibro++;
Kovalev_D 23:12e6183f04d4 116
Kovalev_D 23:12e6183f04d4 117 Time_1kHz++;
Kovalev_D 23:12e6183f04d4 118
Kovalev_D 23:12e6183f04d4 119 VibroOut();
Kovalev_D 23:12e6183f04d4 120
Kovalev_D 23:12e6183f04d4 121
Kovalev_D 23:12e6183f04d4 122 }