Romain Ame / Mbed 2 deprecated Timer71pt

Dependencies:   RoboClaw mbed

Fork of Timer by ARES

Files at this revision

API Documentation at this revision

Comitter:
IceTeam
Date:
Thu May 05 18:17:08 2016 +0000
Parent:
80:cd4960dfa47e
Child:
82:07e13071dd7b
Commit message:
Programme de test;

Changed in this revision

entete.h 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
tests.cpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/entete.h	Thu May 05 18:17:08 2016 +0000
@@ -0,0 +1,43 @@
+#ifndef FONCTIONS_H
+#define FONCTIONS_H
+
+#include "RoboClaw/RoboClaw.h"
+#include "mbed.h"
+
+extern BusOut drapeau;
+extern RoboClaw roboclaw;
+extern AnalogIn Rcapt1;
+extern int RvalRcapt1;
+extern AnalogIn Rcapt2;
+extern int RvalRcapt2;
+extern AnalogIn Rcapt3;
+extern int RvalRcapt3;
+extern int Ravance;
+extern DigitalIn start;
+
+// Fonctions main.cpp
+void Sharps();
+void GotoThet (float timer, int signe);
+void GotoDist (float timer);
+
+// Fonctions test.cpp
+void wait_start();
+void TestDist3(float start, float pas);
+void TestThet3(float start, float pas);
+void compareThet(float start);
+
+#define ADR 0x80
+#define accel_angle 12000
+#define vitesse_angle 10000
+#define deccel_angle 12000
+
+#define accel_dista 12000
+#define vitesse_dista 12000
+#define deccel_dista 12000
+
+#define waiting_time 1
+#define R_SEUIL_SHARP 0.3
+#define GAUCHE 1
+#define DROITE -1
+
+#endif
\ No newline at end of file
--- a/main.cpp	Thu May 05 16:01:55 2016 +0000
+++ b/main.cpp	Thu May 05 18:17:08 2016 +0000
@@ -1,18 +1,6 @@
-#include "RoboClaw/RoboClaw.h"
-#include "mbed.h"
-
-#define ADR 0x80
-#define accel_angle 12000
-#define vitesse_angle 10000
-#define deccel_angle 12000
+#include "entete.h"
 
-#define accel_dista 12000
-#define vitesse_dista 12000
-#define deccel_dista 12000
-
-void Sharps();
 BusOut drapeau (PC_8, PC_6, PC_5);
-
 RoboClaw roboclaw(ADR, 460800, PA_11, PA_12);
 AnalogIn Rcapt1(PA_4);
 int RvalRcapt1 = 0;
@@ -20,62 +8,16 @@
 int RvalRcapt2 = 0;
 AnalogIn Rcapt3(PC_1);
 int RvalRcapt3 = 0;
-
 int Ravance = 1;
-#define R_SEUIL_SHARP 0.3
+DigitalIn start(PB_7);
 
-void GotoDist(float timer) {
-    Timer t;
-    t.reset();
-    roboclaw.SpeedAccelM1M2(accel_dista, vitesse_dista, vitesse_dista);
-    t.start();
-    
-    while (t.read() < timer) {
-        if (Ravance != 1) {
-            roboclaw.ForwardM1(0);
-            roboclaw.ForwardM2(0);
-            t.stop();
-            while (Ravance != 1);
-            t.start();
-        }
-    }
-    
-    roboclaw.ForwardM1(0);
-    roboclaw.ForwardM2(0);
-    t.stop();
-    t.reset();
-}
-
-void GotoThet (float timer) {
-    Timer t;
-    t.reset();
-    t.start();
-    roboclaw.SpeedAccelM1M2(accel_dista, vitesse_dista, -vitesse_dista);
-    
-    while (t.read() < timer) {
-        if (Ravance != 1) {
-            roboclaw.ForwardM1(0);
-            roboclaw.ForwardM2(0);
-            t.stop();
-            while (Ravance != 1);
-            t.start();
-        }
-    }
-    
-    roboclaw.ForwardM1(0);
-    roboclaw.ForwardM2(0);
-    
-    t.stop();
-    t.reset();
-}
 /* Debut du programme */
 int main(void)
 {
     Ticker ticker;
     ticker.attach(&Sharps, 0.01);
     
-    GotoDist(7);
-    GotoThet(7);
+    TestDist3(1,1);
     
     while(1);
 }
@@ -105,4 +47,76 @@
         drapeau = 1;
     else 
         drapeau = 2;
+}
+
+void GotoDist(float timer) {
+    Timer t;
+    
+    roboclaw.SpeedAccelM1(accel_dista, vitesse_dista);
+    roboclaw.SpeedAccelM2(accel_dista, vitesse_dista);
+    
+    t.reset();
+    t.start();
+    
+    while (t.read() < timer) {
+        if (Ravance != 1) {
+            roboclaw.ForwardM1(0);
+            roboclaw.ForwardM2(0);
+            t.stop();
+            while (Ravance != 1);
+            roboclaw.SpeedAccelM1(accel_dista, vitesse_dista);
+            roboclaw.SpeedAccelM2(accel_dista, vitesse_dista);
+            t.start();
+        }
+    }
+    
+    roboclaw.ForwardM1(0);
+    roboclaw.ForwardM2(0);
+    
+    t.stop();
+    t.reset();
+    
+    wait(waiting_time);
+}
+
+void GotoThet (float timer, int signe) {
+    Timer t;
+    
+    if (signe < 0) {
+        roboclaw.SpeedAccelM1(accel_dista, vitesse_dista);
+        roboclaw.SpeedAccelM2(-accel_dista, -vitesse_dista);
+    }
+    else {
+        roboclaw.SpeedAccelM1(-accel_dista, -vitesse_dista);
+        roboclaw.SpeedAccelM2(accel_dista, vitesse_dista);
+    }
+    
+    t.reset();
+    t.start();
+    
+    while (t.read() < timer) {
+        if (Ravance != 1) {
+            roboclaw.ForwardM1(0);
+            roboclaw.ForwardM2(0);
+            t.stop();
+            while (Ravance != 1);
+            t.start();
+        }
+        if (signe < 0) {
+            roboclaw.SpeedAccelM1(accel_dista, vitesse_dista);
+            roboclaw.SpeedAccelM2(-accel_dista, -vitesse_dista);
+        }
+        else {
+            roboclaw.SpeedAccelM1(-accel_dista, -vitesse_dista);
+            roboclaw.SpeedAccelM2(accel_dista, vitesse_dista);
+        }
+    }
+    
+    roboclaw.ForwardM1(0);
+    roboclaw.ForwardM2(0);
+    
+    t.stop();
+    t.reset();
+    
+    wait(waiting_time);
 }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests.cpp	Thu May 05 18:17:08 2016 +0000
@@ -0,0 +1,28 @@
+#include "entete.h"
+
+void wait_start() {
+    while (start == 1);
+    while (start == 0);
+}
+
+void TestDist3(float start, float pas) {
+    GotoDist(start);
+    wait_start();
+    GotoDist(start + pas);
+    wait_start();
+    GotoDist(start + 2 * pas);    
+}  
+
+void TestThet3(float start, float pas) {
+    GotoThet(start, GAUCHE);
+    wait_start();
+    GotoThet(start + pas, GAUCHE);
+    wait_start();
+    GotoThet(start + 2 * pas, GAUCHE);    
+}  
+
+void compareThet(float start) {
+    GotoThet(start, DROITE);
+    wait_start();
+    GotoThet(start, GAUCHE);    
+}
\ No newline at end of file