first publish
Dependencies: MPU9150_DMP MotorControl QuaternionMath SimpleIOMacros mbed
Fork of cool_step by
Diff: main.cpp
- Revision:
- 11:ba1a630e56c4
- Parent:
- 10:09dbd00164b9
- Child:
- 12:410ebe8573ce
diff -r 09dbd00164b9 -r ba1a630e56c4 main.cpp --- a/main.cpp Wed May 13 11:55:50 2015 +0000 +++ b/main.cpp Wed May 13 12:25:02 2015 +0000 @@ -13,12 +13,12 @@ AnalogIn hallSensor(P0_26); volatile int pulses_ = 0; -InterruptIn hall1_(P0_5), hall2_(P0_4); +//InterruptIn hall1_(P0_5), hall2_(P0_4); //Hallsensor hall1(P1_26, P1_27); //Hallsensor hall2(P0_4, P0_5); -Motor motor1(P2_0, P2_1); -//Motor motor2(P2_2, P2_3, &pulses_); +//Motor motor1(P2_0, P2_1,&hall1); +//Motor motor2(P2_2, P2_3, &hall2); MPU9150 imu(P0_28, P0_27, P2_13); @@ -45,23 +45,7 @@ } int main() { - //Workout what the current state is. - int h1 = hall1_.read(); - int h2 = hall2_.read(); - // int h3 = hall3_.read(); - - // Set the PullUp Resistor - hall1_.mode(PullUp); - hall2_.mode(PullUp); - //hall3_.mode(PullUp); - - //set interrupts on only hall 1-3 rise and fall. - hall1_.rise(&deneme); - hall1_.fall(&deneme); - hall2_.rise(&deneme); - hall2_.fall(&deneme); - //hall3_.rise(this, &deneme); - // hall3_.fall(this, &deneme); + RN42.baud(9600); debug.baud(115200); // InitTimer0(); @@ -135,99 +119,10 @@ Vector3 vector_x(1,0,0),vector_y(0,1,0),vector_z(0,0,1); Vector3 pry=q1.getEulerAngles(); debug.printf("p: %f r: %f y: %f ",pry.x/PI*180,pry.y/PI*180,pry.z/PI*180); - /* debug.printf("m1: %d m2: %d \r\n ",motor1.getPulses(),motor2.getPulses()); - motor1.setVelocity(pry.x/90); - motor2.setVelocity(pry.x/90);*/ + debug.printf("m1: %d m2: %d \r\n ",motor2.getPulses(),motor2.getPulses()); + //motor1.setVelocity(pry.x/90); + motor2.setVelocity(pry.x/90); } } } - -/*///////////////////////////////////////////////////////////////////////////////////////////////////////// -// TIMER0 / CAPTURE0[0] -///////////////////////////////////////////////////////////////////////////////////////////////////////// - - int prevState_=0; - int currState_=0; -void TIMER0_IRQHandler __irq (void){ - int h1 = (LPC_GPIO1->FIOPIN>>26) & 0x1; - int h2 = (LPC_GPIO1->FIOPIN>>27) & 0x1; - //2-bit state. - currState_ = (h1 << 2) | (h2 << 1); - - if ((prevState_ == 0x0) && (currState_ == 0x2)) { - pulses_++; - prevState_ = currState_; - return; - } else if (prevState_ == 0x0 && currState_ == 0x1) { - pulses_--; - prevState_ = currState_; - return; - } - - if ((prevState_ == 0x2) && (currState_ == 0x3)) { - pulses_++; - prevState_ = currState_; - return; - } else if (prevState_ == 0x2 && currState_ == 0x0) { - pulses_--; - prevState_ = currState_; - return; - } - if ((prevState_ == 0x1) && (currState_ == 0x0)) { - pulses_++; - prevState_ = currState_; - return; - } else if (prevState_ == 0x1 && currState_ == 0x3) { - pulses_--; - prevState_ = currState_; - return; - } - - if ((prevState_ == 0x3) && (currState_ == 0x1)) { - pulses_++; - prevState_ = currState_; - return; - } else if (prevState_ == 0x3 && currState_ == 0x2) { - pulses_--; - prevState_ = currState_; - return; - } - - prevState_ = currState_; - if( LPC_TIM0->IR & 0x10 ) { - LPC_TIM0->IR = 0x10; // Clear MATx interrupt include DMA request - } - if( LPC_TIM0->IR & 0x20 ) { - LPC_TIM0->IR = 0x20; // Clear MATx interrupt include DMA request - } - -} - -void InitTimer0(void) -{ - //hold timer0 in reset - LPC_TIM0->TCR=2; - - //timer0 power on - LPC_SC->PCONP |= (0x01<<1); - - //cap0.0 cap0.1 pin input - LPC_PINCON->PINSEL3 &= ~((0x3<<20)|(0x3<<22)); - LPC_PINCON->PINSEL3 |= (0x3<<20)|(0x3<<22); - - //capture interrupts clear - LPC_TIM0->IR = 0x30; // Clear MATx interrupt include DMA request - - - //timer0 pid de kullanildigindan prescaler iptal. counter frekansi 18m olmali. - //LPC_TIM0->PR = pclk/1000000; // set prescaler to get 1 M counts/sec - - //Capture 0 and 1 on rising edge, interrupt enable. - LPC_TIM0->CCR = 0x3f;//(0x1<<0) | (0x1<<1) | (0x1<<2) | (0x1<<3) | (0x1<<4) |( 0x1<<5); - - NVIC_EnableIRQ(TIMER0_IRQn); - - //start timer0 - LPC_TIM0->TCR=1; -}*/ \ No newline at end of file