First revision of tactile mouse code

Revision:
0:f254a3cfe0f6
diff -r 000000000000 -r f254a3cfe0f6 stepper.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stepper.cpp	Mon Apr 08 16:57:36 2019 +0000
@@ -0,0 +1,209 @@
+#include "mbed.h"
+#include "tactile_mouse.hpp"
+#include "stepper.hpp"
+
+void M1downstep1(double delay){
+    MotorA1=0;
+    MotorA2=1;
+    MotorB1=0;
+    MotorB2=1;
+    wait(0.000001);
+    step = 1;
+    wait(0.000001);
+    step=0;
+    wait(delay);
+    }
+
+void M1downstep2(double delay){
+    MotorA1=0;
+    MotorA2=1;
+    MotorB1=1;
+    MotorB2=0;
+    wait(0.000001);
+    step = 1;
+    wait(0.000001);
+    step=0;
+    wait(delay);
+    }
+
+void M1downstep3(double delay){
+    MotorA1=1;
+    MotorA2=0;
+    MotorB1=1;
+    MotorB2=0;
+    wait(0.000001);
+    step = 1;
+    wait(0.000001);
+    step=0;
+    wait(delay);
+    }
+
+void M1downstep4(double delay){
+    MotorA1=1;
+    MotorA2=0;
+    MotorB1=0;
+    MotorB2=1;
+    wait(0.000001);
+    step = 1;
+    wait(0.000001);
+    step=0;
+    wait(delay);
+    }
+
+void M1upstep1(double delay){
+    MotorA1=1;
+    MotorA2=0;
+    MotorB1=0;
+    MotorB2=1;
+    wait(0.000001);
+    step = 1;
+    wait(0.000001);
+    step=0;
+    wait(delay);
+    }
+
+void M1upstep3(double delay){
+    MotorA1=1;
+    MotorA2=0;
+    MotorB1=1;
+    MotorB2=0;
+    wait(0.000001);
+    step = 1;
+    wait(0.000001);
+    step=0;
+    wait(delay);
+    }
+
+void M1upstep5(double delay){
+    MotorA1=0;
+    MotorA2=1;
+    MotorB1=1;
+    MotorB2=0;
+    wait(0.000001);
+    step = 1;
+    wait(0.000001);
+    step=0;
+    wait(delay);
+    }
+
+void M1upstep7(double delay){
+    MotorA1=0;
+    MotorA2=1;
+    MotorB1=0;
+    MotorB2=1;
+    wait(0.000001);
+    step = 1;
+    wait(0.000001);
+    step=0;
+    wait(delay);
+    }
+    
+    
+void M1stop(double delay){
+    MotorA1=0;
+    MotorA2=0;
+    MotorB1=0;
+    MotorB2=0;
+    wait(0.00001);
+    step = 1;
+    wait(0.00001);
+    step=0;
+    }
+    
+//Extend and retract functions take time delay in S
+void M1down(double delay){
+    M1upstep7(delay);
+    M1upstep5(delay);
+    M1upstep3(delay);
+    M1upstep1(delay);
+    M1stop(0);
+}//Steps are different - sequence actually turns out to be the same as the up sequence!
+    
+void M1up(double delay){
+    M1upstep1(delay);
+    M1upstep3(delay);
+    M1upstep5(delay);
+    M1upstep7(delay);
+    M1stop(0);
+}
+
+    
+    
+void selectMotor(int x, int y){
+    switch (x){
+        case 0: BOARD_MUXA=0;
+                BOARD_MUXB=0;
+                BOARD_MUXC=0;
+                break;
+        case 1: BOARD_MUXA=1;
+                BOARD_MUXB=0;
+                BOARD_MUXC=0;
+                break;
+        case 2: BOARD_MUXA=0;
+                BOARD_MUXB=1;
+                BOARD_MUXC=0;
+                break;
+        case 3: BOARD_MUXA=1;
+                BOARD_MUXB=1;
+                BOARD_MUXC=0;
+                break;
+        case 4: BOARD_MUXA=0;
+                BOARD_MUXB=0;
+                BOARD_MUXC=1;
+                break;
+        case 5: BOARD_MUXA=1;
+                BOARD_MUXB=0;
+                BOARD_MUXC=1;
+                break;
+        case 6: BOARD_MUXA=0;
+                BOARD_MUXB=1;
+                BOARD_MUXC=1;
+                break;
+        case 7: BOARD_MUXA=1;
+                BOARD_MUXB=1;
+                BOARD_MUXC=1;
+                break;
+        default:BOARD_MUXA=0;
+                BOARD_MUXB=0;
+                BOARD_MUXC=0;
+                break;
+    }
+    switch (y){
+        case 0: MUXA=0;
+                MUXB=0;
+                MUXC=0;
+                break;
+        case 1: MUXA=1;
+                MUXB=0;
+                MUXC=0;
+                break;
+        case 2: MUXA=0;
+                MUXB=1;
+                MUXC=0;
+                break;
+        case 3: MUXA=1;
+                MUXB=1;
+                MUXC=0;
+                break;
+        case 4: MUXA=0;
+                MUXB=0;
+                MUXC=1;
+                break;
+        case 5: MUXA=1;
+                MUXB=0;
+                MUXC=1;
+                break;
+        case 6: MUXA=0;
+                MUXB=1;
+                MUXC=1;
+                break;
+        case 7: MUXA=1;
+                MUXB=1;
+                MUXC=1;
+                break;
+        default:MUXA=0;
+                MUXB=0;
+                MUXC=0;
+                break;
+    }
+}
\ No newline at end of file