j

Dependencies:   Encoder HIDScope mbed

Fork of Motor_component_testing by Bart Arendshorst

Revision:
4:71ada7709c46
Parent:
3:c6b8499a9021
Child:
5:a0f300785c3d
--- a/main.cpp	Mon Oct 27 12:13:24 2014 +0000
+++ b/main.cpp	Mon Oct 27 12:45:01 2014 +0000
@@ -12,6 +12,7 @@
 #define PWM2_min_50 0.519 /*aanpassen! Klopt nog niet met koppelstuk*/
 /*Definieren om de hoeveel seconden er gegevens naar de HID-scope gestuurd worden.*/
 #define TSAMP 0.005
+#define I_LIMIT 1.
 
 Encoder motor1(PTD3,PTD1);
 Encoder motor2(PTD5, PTD0); 
@@ -21,13 +22,19 @@
 DigitalOut motordir2(M2_DIR); 
 DigitalOut LED(LED_GREEN);
 
+void clamp(float * in, float min, float max);
 volatile bool looptimerflag;
 int PWM1_percentage = 1;
 int PWM2_percentage = 1; 
+int aantal_rotaties = 100;
+int aantalcr = 960;
+int beginpos_motor1;
+int beginpos_motor1_new; 
+int beginpos_motor2;
 float PWM1 = ((1-PWM1_min_30)/100)*PWM1_percentage + PWM1_min_30; 
 float PWM2 = ((1-PWM2_min_50)/100)*PWM2_percentage + PWM1_min_30;
 
-HIDScope scope(3);
+HIDScope scope(4);
 
 //Ticker tick;
 /*void PWMc()
@@ -48,25 +55,25 @@
 int main() {
     //tick.attach(&PWMc, 5);
     
-    pwm_motor1.period_us(100);
-    pwm_motor2.period_us(100);
-    pwm_motor1.write(PWM1);
-    pwm_motor2.write(PWM2);  
+    beginpos_motor1 = motor1.getPosition();
+    beginpos_motor1_new = beginpos_motor1; 
+    beginpos_motor2 = motor2.getPosition();
+    
+    Ticker looptimer; // looptimer = variabele van het type ticker(niet int of float), Daarmee is looptimer een classe. Omdat een classe is heeft het methods oftewel functies, zoals attach. Setlooptimerflag is een functie 
+    looptimer.attach(setlooptimerflag,TSAMP); // attach betekend het koppelen van een functie aan een classe.   
     LED = 0;
     motordir1 = 0;
     motordir2 = 0; 
     
-    Ticker looptimer; // looptimer = variabele van het type ticker(niet int of float), Daarmee is looptimer een classe. Omdat een classe is heeft het methods oftewel functies, zoals attach. Setlooptimerflag is een functie 
-    looptimer.attach(setlooptimerflag,TSAMP); // attach betekend het koppelen van een functie aan een classe. 
-    while(true) { 
-            
-            //wait(3);
-            //pwm_motor1.write(0.4);
+    while(beginpos_motor1 + aantal_rotaties*aantalcr >= beginpos_motor1_new) {
+    pwm_motor1.period_us(100);
+    pwm_motor2.period_us(100);
+    pwm_motor1.write(PWM1);
+    pwm_motor2.write(PWM2);
+    beginpos_motor1_new = motor1.getPosition(); 
+    
+    //while(true) { 
             LED = 1;
-            //wait(1);
-            //PWM = PWM + 0.05; 
-          
-            //pwm_motor1.pulsewidth_us(50);
             while(!looptimerflag) //Hierdoor zeg je eigenlijk tegen je systeem; voer dit script uit na elke TSAMP s. 
             {
             /*do nothing*/  //Zolang dit waar is, doe je niets. 
@@ -79,4 +86,21 @@
         scope.set(3, motor2.getSpeed());  
         scope.send();
         }
-}
+        
+        pwm_motor1.period_us(100);
+        pwm_motor2.period_us(100);
+        pwm_motor1.write(0);
+        pwm_motor2.write(0);
+        
+        LED = 0; 
+        while(!looptimerflag) //Hierdoor zeg je eigenlijk tegen je systeem; voer dit script uit na elke TSAMP s. 
+            {
+            /*do nothing*/  //Zolang dit waar is, doe je niets. 
+            }
+        looptimerflag = false; //clear flag
+        scope.set(0, motor1.getPosition());
+        scope.set(1, motor1.getSpeed());
+        scope.set(2, motor2.getPosition());
+        scope.set(3, motor2.getSpeed());  
+        scope.send();
+}
\ No newline at end of file