Operation Mode State Machine plus homing for StateMachinePTR

Dependencies:   MODSERIAL QEI biquadFilter mbed

Fork of Controller by Sven van Wincoop

Files at this revision

API Documentation at this revision

Comitter:
Roooos
Date:
Thu Nov 01 10:10:54 2018 +0000
Parent:
15:97311058e012
Commit message:
aangepast op StateMachinePTR, werkende en met Homing

Changed in this revision

OperationMode.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 97311058e012 -r 1c8a8643260f OperationMode.cpp
--- a/OperationMode.cpp	Thu Nov 01 09:38:25 2018 +0000
+++ b/OperationMode.cpp	Thu Nov 01 10:10:54 2018 +0000
@@ -25,40 +25,47 @@
 DigitalOut LedRed(LED_RED);
 DigitalOut LedBlue(LED_BLUE);
 
-double PositionRef=0;
+double q1Ref=0;
 double q2Ref =0;
 
 
+
+
 //Define substates Operation Mode
 
 enum States {OPWait, OPSet, OPState1, OPState2, OPState3, OPState4, OPHoming};
 States CurrentOperationState;
 
+void SetMotorsOff()
+{
+    PwmPin = 0;
+    PwmPin2 = 0;
+}
 //State Machine for OperationMode
 void OperationStateMachine()
 {
     switch (CurrentOperationState) {
         case OPWait:
-            if (EMGBoolLeft == true) {    //When Left Biceps are contracted, initiate chain to flip the page
+            if (BUT1 == false) {    //When Left Biceps are contracted, initiate chain to flip the page
                 CurrentOperationState = OPState1;
                 TimerLoop.reset();
             }
-            if (BUTSW3 == false) {  //When sw3 is pressed, go to homing for Operation Mode
+            if (BUT2 == false) {  //When sw3 is pressed, go to homing for Operation Mode
                 CurrentOperationState = OPSet;
                 TimerLoop.reset();
             }
             break;
-            
+
         case OPSet:                 // Set new homing for Operation Mode and go back to waiting mode
             if (q2Ref  > -0.733*(6.380)) {
                 q2Ref  -= 0.0005*(6.380);
-                }
+            }
             if (q2Ref  < -0.733*(6.380) && TimerLoop > 2) {
                 CurrentOperationState = OPWait;
                 TimerLoop.reset();
-                }
+            }
             break;
-                
+
         case OPState1:                      // First step of chain to flip the page
             if (q1Ref < 0.48*(6.380)) { //counts/8400 *2 because encoder X2 -> X4
                 q1Ref += 0.0005*(6.380);
@@ -68,7 +75,7 @@
                 TimerLoop.reset();
             }
             break;
-            
+
         case OPState2:                      //Second step of chain to flip the page
             if (q2Ref  > -1.133*(6.380)) {
                 q2Ref  -= 0.0005*(6.380);
@@ -78,7 +85,7 @@
                 TimerLoop.reset();
             }
             break;
-            
+
         case OPState3:                  //Third step of chain to flip the page
             if (q1Ref > -0.15*(6.380)) {
                 q1Ref -= 0.0005*(6.380);
@@ -91,7 +98,7 @@
                 TimerLoop.reset();
             }
             break;
-            
+
         case OPState4:                          //Fourth step of chain to flip the page
             if (q2Ref  > -2.133*(6.380)) {
                 q2Ref  -= 0.005*(6.380);
@@ -101,7 +108,7 @@
                 CurrentOperationState = OPHoming;
             }
             break;
-            
+
         case OPHoming:                          //Go back to Home for Operation Mode and back to Waiting
             if (q1Ref < 0) {
                 q1Ref += 0.003*(6.380);
@@ -115,9 +122,24 @@
             break;
     }
 }
-
-
-
+//Homing 
+/*
+if (q1Ref >= 0) {
+                q1Ref -= 0.001*(6.380);
+            }
+            if (q1Ref <= 0) {
+                q1Ref += 0.001*(6.380);
+            }
+            if (q2Ref >= 0) {
+                q2Ref -= 0.001*(6.380);
+            }
+            if (q2Ref <= 0) {
+                q2Ref += 0.001*(6.380);
+            }
+            if ((-0.01*(6.380) < q1Ref < 0.01*(6.380)) && (-0.01*(6.380) < q1Ref < 0.01*(6.380))) {
+                SetMotorsOff();
+            }
+*/
 
 //-----------------------------------------------------------------------------
 //The double-functions