Joshua Brown
/
TactileMouse
First revision of tactile mouse code
stepper.cpp
- Committer:
- JPB515
- Date:
- 2019-04-08
- Revision:
- 0:f254a3cfe0f6
File content as of revision 0:f254a3cfe0f6:
#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; } }