Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MPU9150_DMP MotorControl QuaternionMath SimpleIOMacros mbed
Fork of cool_step_new by
Diff: main.cpp
- Revision:
- 11:ba1a630e56c4
- Parent:
- 10:09dbd00164b9
- Child:
- 12:410ebe8573ce
--- 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
