first publish

Dependencies:   MPU9150_DMP MotorControl QuaternionMath SimpleIOMacros mbed

Fork of cool_step_new by Cool-step

Files at this revision

API Documentation at this revision

Comitter:
heuristics
Date:
Tue May 26 10:22:47 2015 +0000
Parent:
21:c5f88a11eac5
Child:
23:b79faf58d4a1
Commit message:
asdasd

Changed in this revision

MotorControl.lib Show annotated file Show diff for this revision Revisions of this file
SimpleIOMacros.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/MotorControl.lib	Wed May 20 13:04:01 2015 +0000
+++ b/MotorControl.lib	Tue May 26 10:22:47 2015 +0000
@@ -1,1 +1,1 @@
-http://developer.mbed.org/teams/Cool-step/code/MotorControl/#0eaadc35e60d
+http://developer.mbed.org/teams/Cool-step/code/MotorControl/#5df3b4a9a368
--- a/SimpleIOMacros.lib	Wed May 20 13:04:01 2015 +0000
+++ b/SimpleIOMacros.lib	Tue May 26 10:22:47 2015 +0000
@@ -1,1 +1,1 @@
-http://developer.mbed.org/teams/Cool-step/code/SimpleIOMacros/#689740485c9a
+http://developer.mbed.org/teams/Cool-step/code/SimpleIOMacros/#7111b02ebd38
--- a/main.cpp	Wed May 20 13:04:01 2015 +0000
+++ b/main.cpp	Tue May 26 10:22:47 2015 +0000
@@ -12,6 +12,7 @@
 DigitalOut led3(P2_8);
 AnalogIn hallSensor(P0_26);
 int pulsesMotor2=0,pulsesMotor1=0;
+int int_time=0,bint_time=0;
 //InterruptIn hall1_(P0_5), hall2_(P0_4);
 
 
@@ -86,19 +87,20 @@
     imu.initialiseDMP();
 
     timer.start();
+    timer2.start();
 
     //motor2.setVelocity(0.7);
     imu.setFifoReset(true);
     imu.setDMPEnabled(true);
 
     Quaternion q1;
-    motor1.setAngle(-60);
-    motor2.setAngle(-60);
-    wait_ms(5000);
+    wait_ms(500);
     motor1.setAngle(0);
     
     motor2.setAngle(0);
     initCaptures();
+    motor1.setAngle(0);
+    motor2.setAngle(0);
     
     
     while(1) {
@@ -149,8 +151,9 @@
             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: %.2f m2: %.2f ",motor1.getAngle(),motor2.getAngle());
-            debug.printf("dt1: %f dt2: %f \r\n ",motor1.get_dt(),motor2.get_dt());
-           /* if(motor1.isRunning()) {
+            debug.printf("dt1: %f dt2: %f ",motor1.get_dt(),motor2.get_dt());
+            debug.printf("Direction: %d Int Time: %d  \r\n ",bint_time,int_time);
+           /* if(!motor1.isRunning()) {
                 if(motor1.getAngle()>30) {
                     motor1.setAngle(0);
                 }
@@ -158,7 +161,7 @@
                     motor1.setAngle(60);
                 }
             }
-            if(motor2.isRunning()) {
+            if(!motor2.isRunning()) {
                 if(motor2.getAngle()>30) {
                     motor2.setAngle(0);
                 }
@@ -214,14 +217,18 @@
 
 void TIMER2_IRQHandler(void)
 {
+         //   timer2.reset();
     int bitB = (LPC_GPIO0->FIOPIN>>5) & 0x1;
     if(bitB) {
         pulsesMotor2--;
+        int_time=0;
     } else {
         pulsesMotor2++;
+        int_time=1;
     }
 
     LPC_TIM2->IR |= 0x10;
+    //bint_time=timer2.read_us();
 }
 
 void TIMER0_IRQHandler(void)
@@ -238,6 +245,7 @@
 
 void initCaptures(void)
 {
+    NVIC_SetPriority (TIMER3_IRQn, 6);
     LPC_PINCON->PINSEL0  |= 0x00000300; // set P0.4 to CAP2.0
     LPC_SC->PCONP |= (1 << 22);         // Timer2 power on
     // init Timer 2 (cap2.0)
@@ -247,18 +255,20 @@
     LPC_TIM2->PC = 0;                   // clear prescale counter
     LPC_TIM2->PR = 0;                   // clear prescale register
     LPC_TIM2->CCR |= 0x5;       // enable cap2.0 rising capture; interrupt on cap2.0
+    NVIC_SetPriority (TIMER2_IRQn, 5);
     LPC_TIM2->TCR = (1 << 0);          // start Timer2
     NVIC_EnableIRQ(TIMER2_IRQn);
 
     LPC_PINCON->PINSEL3  |= 0x00300000; // set P1.26 to CAP0.0
     LPC_SC->PCONP |= (1 << 1);         // Timer0 power on
-    // init Timer 2 (cap0.0)
+    // init Timer 0 (cap0.0)
     LPC_TIM0->IR = 0x10;          // clear interrupt register
     NVIC_SetVector(TIMER0_IRQn, uint32_t(TIMER0_IRQHandler));
     LPC_TIM0->TC = 0;                   // clear timer counter
     LPC_TIM0->PC = 0;                   // clear prescale counter
     LPC_TIM0->PR = 0;                   // clear prescale register
     LPC_TIM0->CCR |= 0x5;       // enable cap0.0 rising capture; interrupt on cap0.0
+    NVIC_SetPriority (TIMER0_IRQn, 5);
     LPC_TIM0->TCR = (1 << 0);          // start Timer0
     NVIC_EnableIRQ(TIMER0_IRQn);