fork

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
87:7e575d26d6d0
Parent:
86:398da56ef751
Child:
88:b5c1d9d338d1
--- a/Global.c	Thu Mar 24 08:20:43 2016 +0000
+++ b/Global.c	Thu Mar 24 09:16:55 2016 +0000
@@ -49,6 +49,8 @@
     Gyro.Discharg = StartDischarg;
     Gyro.BackLight = StartBackLight;
  	*/
+ 	
+ 	
   	/////////////////////////////////////////////////////
  	////////инициализация цап (р0.26 цап выход)//////////
  	//////////////////середина шкалы/////////////////////
@@ -81,13 +83,45 @@
     Cur_QEI=0; 
     Last_QEI=0;
     /////////////////////////////////////////////////////
-    /////////////////////////////////////////////////////
-   
+    /////////////инициализация энкодера//////////////////
+    ///////////////////////////////////////////////////// 
+    LPC_SC->PCONP |= (1<<18);//0x00040000;		включение квадратурного энкодера.
+    LPC_SC->PCLKSEL1 |= 0x00000001;	   // выбор частоты для кв.э. CLK=100MHz
+    LPC_PINCON->PINSEL3 &= ~0x4100;
+    LPC_PINCON->PINSEL3 |= 0x4100;	  //P1.20, p1.23 установить как входы кв.э
+    LPC_PINCON->PINMODE3 |= 0x3C300;	  //P1.20, p1.23, p1.24 ??are pulled-down??(притянуть к питанию)????
 
+    LPC_QEI->MAXPOS = MAX_QEI_CNT;	//LPC_QEI->"регистор максимального положения" = 2147483646
+    LPC_QEI->FILTER = 2;		   // фильтр( ?? )
+    LPC_QEI->CON = 0xF;				//сбросить в ноль все счетчики кв.э. (скорость, направление, позицию и тд)
+    LPC_QEI->CONF = (0<<2) |(0<<1);	//Quadrature inputs, no inverting,only A pulses are counted
+
+    LPC_QEI->CLR = 0x1fff; 			 //r. сбросить все прерывания
+    LPC_QEI->IEC = 0x1fff;			 //r. запретить прерывание при изменении направления
+
+    NVIC_SetPriority(QEI_IRQn, 0);
+    NVIC_EnableIRQ(QEI_IRQn);
+   //////////////////////////////////////////////////////
+   //////////////////////////////////////////////////////
+
+    
+    
     /////////////////////////////////////////////////////
     /////////////обнуление переменых для/////////////////
     ///////////расчета значений буферов ВП///////////////
     /////////////////////////////////////////////////////
+    
+    
+    /////////////инициализация переменных в структ вибро/////////////////
+    Gyro.FrqHZ=449;
+    Gyro.Frq = Gyro.FrqHZ<<16;
+    Gyro.AmpPer=20;
+    Gyro.AmpPerDel=10;
+    Gyro.Amp  = 10*65535;
+    Gyro.AmpMin =10;// минимальное  значение AmpT;
+    Gyro.AmpTD =30;// максимальное значение AmpT; (AmpT частота ошумления)
+    //////////////////////////////////////////////////////////////////////
+    
     CuruAngle 		= 0;
     Pulse_8Point 	= 0;
     Pulse_16Point 	= 0;
@@ -136,18 +170,89 @@
     //////////////////////////////////////////////////// 
 
 
+   
+   
+   
 
- 
-
+  	/////////////////////////////////////////////////////
+ 	/////////////////инициализация ног///////////////////
+ 	/////////////////////////////////////////////////////
+    Gyro.PinRegOld  = 0xffffffff;
+    Gyro.PinReg     = 0;        // всЁ выключенно
+    PinCheng(); 
+   
+   
+    /////////////////////////////////////////////////////
+    //////////////отладочный светодиод///////////////////                          
+    /////////////////////////////////////////////////////
+    LPC_PINCON->PINSEL0 = (0x00<<28);         // а нужно, ведь по умолчаниб у них 0 функция. попробоввать без них потом убрать
+    LPC_PINCON->PINMODE0 = (0x3<<28);
+    LPC_GPIO1->FIODIR   |= (1<<30);
+    /////////////////////////////////////////////////////
+    /////////////////////////////////////////////////////
+     
+     
+    /////////////////////////////////////////////////////
+    ////////////////управление уартом////////////////////                          
+    /////////////////////////////////////////////////////
+    LPC_GPIO2->FIODIR   |= (1<<7);                          
+    /////////////////////////////////////////////////////
+    /////////////////////////////////////////////////////
+              
+             
+               
+    /////////////////////////////////////////////////////
+    ////////////////?????????????????////////////////////                          
+    /////////////////////////////////////////////////////           
+    LPC_PINCON->PINSEL0 &= ~(3<<8);       //e. P0.4 is GPIO pin (запись ( 00 ) в 9:8 бит PISEL0    выбор P0.4 как GPIO)
+    LPC_PINCON->PINMODE0 |= (3<<8);       //e. P0.4 is GPIO pin (запись ( 11 ) в 9:8 бит PINMODE0  "для включения подтягивающего резистора")
+    LPC_GPIO0->FIODIR   |= (1<<4);      //e. P0.4 is output   (запись ( 1 ) в  5  бит FIODIR    выбор P0.4 как выход)
+    /////////////////////////////////////////////////////
+    /////////////////////////////////////////////////////
     
+    
+    
+    /////////////////////////////////////////////////////
+    /////////////////////вибро 1/////////////////////////                          
+    /////////////////////////////////////////////////////
+    LPC_PINCON->PINSEL3   = (0x00<<18);       //e. P1.25 is GPIO pin
+    LPC_PINCON->PINMODE3 |= (3<<18);      //e. P1.25  (включениe подтягивающего резистора")
+    LPC_GPIO1->FIODIR    |= (1<<25);        //e. P0.5 is output   (запись ( 1 ) в  5  бит FIODIR    выбор P0.5 как выход)
+    LPC_GPIO1->FIOCLR    |= (1<<25);
+	//////////////////////////////////////////////////////
+	/////////////////////вибро 2/////////////////////////                          
+    /////////////////////////////////////////////////////
+    LPC_PINCON->PINSEL3   = (0x00<<24);       //e. P1.28 is GPIO pin
+    LPC_PINCON->PINMODE3 |= (3<<24);      //e. P1.28 is GPIO pin (запись ( 11 ) в бит PINMODE0  "для включения подтягивающего резистора")
+    LPC_GPIO1->FIODIR    |= (1<<28);        //e. P1.28 is output   (запись ( 1 ) в  5  бит FIODIR    выбор P0.5 как выход)
+    LPC_GPIO1->FIOCLR    |= (1<<28);
+    /////////////////////////////////////////////////////
+    /////////////////////////////////////////////////////
+    
+    
+    
+    /////////////////////////////////////////////////////
+    /////////////инициализация подсветки/////////////////                          
+    /////////////////////////////////////////////////////
+    LPC_PINCON->PINSEL2   = (0x00<<24);     //e. P2.12 is GPIO pin
+    LPC_PINCON->PINMODE3 |= (3<<24);      //e. P1.28 is GPIO pin (запись ( 11 ) в бит PINMODE0  "для включения подтягивающего резистора")
+    LPC_GPIO2->FIODIR    |= (1<<12);        //e. P1.28 is output   (запись ( 1 ) в  5  бит FIODIR    выбор P0.5 как выход)
+    LPC_GPIO2->FIOCLR    |= (1<<12);
+	///////////////////////////////////////////////////////
+   	///////////////////////////////////////////////////////
+   	
+   	
+   	
+   	
+   	
+    ///////////////////////////////////////////////////////  
     ///////////////////////////////////////////////////////
-    Init_Pin();
-    init_Vibro();
     init_timer(TIME_INTERVAL ); //Timer 1: CCLK / 7812 = 12800.819Hz; Vibro: Timer1/32 = 400.025Hz; 10ms???
     enable_timer1();
     Init_TIM2();				//Timer 2: CCLK / 4 / 250 = 100kHz
     enable_timer2();
-
+    
+    LPC_GPIO0->FIOCLR = (1<<5);/////////////??????????????????????????
 }
 
 void ButtonLightUP(void)				// включение аоджига и подсветки