![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
fork
Fork of LG by
Diff: Global.c
- 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) // включение аоджига и подсветки