hello

Dependencies:   X_NUCLEO_IHM01A1

Fork of HelloWorld_IHM01A1_2Motors_mbedOS by ST

Files at this revision

API Documentation at this revision

Comitter:
gianlucamgf
Date:
Wed Mar 28 14:52:12 2018 +0000
Parent:
31:f203b17d5534
Commit message:
Hello Team this is the botton program

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Fri Jul 14 15:33:04 2017 +0000
+++ b/main.cpp	Wed Mar 28 14:52:12 2018 +0000
@@ -52,12 +52,12 @@
 /* Definitions ---------------------------------------------------------------*/
 
 /* Number of steps. */
-#define STEPS 3200
+#define STEPS 100
 
 /* Delay in milliseconds. */
-#define DELAY_1 2000
-#define DELAY_2 6000
-#define DELAY_3 8000
+#define DELAY_1 100
+#define DELAY_2 3000
+#define DELAY_3 4000
 
 /* Speed in pps (Pulses Per Second).
    In Full Step mode: 1 pps = 1 step/s).
@@ -68,6 +68,8 @@
 
 /* Variables -----------------------------------------------------------------*/
 
+DigitalIn mybutton(USER_BUTTON);
+bool x=true;
 /* Motor Control Component. */
 L6474 *motor1;
 L6474 *motor2;
@@ -95,210 +97,64 @@
     /* Printing to the console. */
     printf("Motor Control Application Example for 2 Motors\r\n\n");
 
-
-    /*----- Moving. -----*/
-
-    /* Printing to the console. */
-    printf("--> Moving forward: M1 %d steps, M2 %d steps.\r\n", STEPS >> 1, STEPS);
+    /*----- Moving F. -----*/
+    while(true) {
+        if (mybutton == 0) // Button is pressed
+                {
+                 x=!x;
+                 printf("x =%d", x);
+                }
+        if (x==true) // Button is pressed
+            {
+            /* Printing to the console. */
+            printf("--> Moving forward: M1 %d steps, M2 %d steps.\r\n", STEPS >> 1, STEPS);
 
-    /* Moving N steps in the forward direction. */
-    motor1->move(StepperMotor::FWD, STEPS >> 1);
-    motor2->move(StepperMotor::FWD, STEPS);
-
-    /* Waiting while the motor is active. */
-    motor1->wait_while_active();
-    motor2->wait_while_active();
+            /* Moving N steps in the forward direction. */
+            motor1->move(StepperMotor::FWD, STEPS >> 1);
+            motor2->move(StepperMotor::FWD, STEPS >> 1);
 
-    /* Getting current position. */
-    int position1 = motor1->get_position();
-    int position2 = motor2->get_position();
+            /* Waiting while the motor is active. */
+            motor1->wait_while_active();
+            motor2->wait_while_active();
+
+            /* Getting current position. */
+            int position1 = motor1->get_position();
+            int position2 = motor2->get_position();
     
-    /* Printing to the console. */
-    printf("    Position: M1 %d, M2 %d.\r\n", position1, position2);
+            /* Printing to the console. */
+            printf("    Position: M1 %d, M2 %d.\r\n", position1, position2);
 
-    /* Waiting 2 seconds. */
-    wait_ms(DELAY_1);
-
+            /* Waiting 2 seconds. */
+            wait_ms(DELAY_1);
+            }
+        if (x==false) // Button is pressed
+            {
+            /*----- Moving B. -----*/
     
-    /*----- Moving. -----*/
-    
-    /* Printing to the console. */
-    printf("--> Moving backward: M1 %d steps, M2 %d steps.\r\n", STEPS >> 1, STEPS);
+            /* Printing to the console. */
+
+            printf("--> Moving backward: M1 %d steps, M2 %d steps.\r\n", STEPS >> 1, STEPS);
 
     
-    /* Moving N steps in the backward direction. */
-    motor1->move(StepperMotor::BWD, STEPS >> 1);
-    motor2->move(StepperMotor::BWD, STEPS);
-    
-    /* Waiting while the motor is active. */
-    motor1->wait_while_active();
-    motor2->wait_while_active();
-
-    /* Getting current position. */
-    position1 = motor1->get_position();
-    position2 = motor2->get_position();
-    
-    /* Printing to the console. */
-    printf("    Position: M1 %d, M2 %d.\r\n", position1, position2);
-    printf("--> Setting Home.\r\n");
-
-    /* Setting the current position to be the home position. */
-    motor1->set_home();
-    motor2->set_home();
-
-    /* Waiting 2 seconds. */
-    wait_ms(DELAY_1);
-
-
-    /*----- Going to a specified position. -----*/
-
-    /* Printing to the console. */
-    printf("--> Going to position: M1 %d, M2 %d.\r\n", STEPS, STEPS >> 1);
-    
-    /* Requesting to go to a specified position. */
-    motor1->go_to(STEPS);
-    motor2->go_to(STEPS >> 1);
+            /* Moving N steps in the backward direction. */
+            motor1->move(StepperMotor::BWD, STEPS >> 1);
+            motor2->move(StepperMotor::BWD, STEPS >> 1);
     
-    /* Waiting while the motor is active. */
-    motor1->wait_while_active();
-    motor2->wait_while_active();
-
-    /* Getting current position. */
-    position1 = motor1->get_position();
-    position2 = motor2->get_position();
-    
-    /* Printing to the console. */
-    printf("    Position: M1 %d, M2 %d.\r\n", position1, position2);
-    
-    /* Waiting 2 seconds. */
-    wait_ms(DELAY_1);
-
-    
-    /*----- Going Home. -----*/
+            /* Waiting while the motor is active. */
+            motor1->wait_while_active();
+            motor2->wait_while_active();
 
-    /* Printing to the console. */
-    printf("--> Going Home.\r\n");
-    
-    /* Requesting to go to home. */
-    motor1->go_home();
-    motor2->go_home();
+            /* Getting current position. */
+            int position1 = motor1->get_position();
+            int position2 = motor2->get_position();
     
-    /* Waiting while the motor is active. */
-    motor1->wait_while_active();
-    motor2->wait_while_active();
-
-    /* Getting current position. */
-    position1 = motor1->get_position();
-    position2 = motor2->get_position();
-
-    /* Printing to the console. */
-    printf("    Position: M1 %d, M2 %d.\r\n", position1, position2);
-
-    /* Waiting 2 seconds. */
-    wait_ms(DELAY_1);
+            /* Printing to the console. */
+            printf("    Position: M1 %d, M2 %d.\r\n", position1, position2);
+            printf("--> Setting Home.\r\n");
 
 
-    /*----- Running. -----*/
-
-    /* Printing to the console. */
-    printf("--> M1 running backward, M2 running forward.\r\n");
-
-    /* Requesting to run backward. */
-    motor1->run(StepperMotor::BWD);
-    motor2->run(StepperMotor::FWD);
-
-    /* Waiting until delay has expired. */
-    wait_ms(DELAY_2);
-
-    /* Getting current speed. */
-    int speed1 = motor1->get_speed();
-    int speed2 = motor2->get_speed();
-
-    /* Printing to the console. */
-    printf("    Speed: M1 %d, M2 %d.\r\n", speed1, speed2);
-
-    /*----- Increasing the speed while running. -----*/
-
-    /* Printing to the console. */
-    printf("--> Increasing the speed while running.\r\n");
-
-    /* Increasing the speed. */
-    motor1->set_max_speed(SPEED_1);
-    motor2->set_max_speed(SPEED_1);
-
-    /* Waiting until delay has expired. */
-    wait_ms(DELAY_2);
-
-    /* Getting current speed. */
-    speed1 = motor1->get_speed();
-    speed2 = motor2->get_speed();
-
-    /* Printing to the console. */
-    printf("    Speed: M1 %d, M2 %d.\r\n", speed1, speed2);
-
-
-    /*----- Decreasing the speed while running. -----*/
-
-    /* Printing to the console. */
-    printf("--> Decreasing the speed while running.\r\n");
-
-    /* Decreasing the speed. */
-    motor1->set_max_speed(SPEED_2);
-    motor2->set_max_speed(SPEED_2);
-
-    /* Waiting until delay has expired. */
-    wait_ms(DELAY_3);
-
-    /* Getting current speed. */
-    speed1 = motor1->get_speed();
-    speed2 = motor2->get_speed();
-
-    /* Printing to the console. */
-    printf("    Speed: M1 %d, M2 %d.\r\n", speed1, speed2);
-
-
-    /*----- Requiring hard-stop while running. -----*/
-
-    /* Printing to the console. */
-    printf("--> Requiring hard-stop while running.\r\n");
-
-    /* Requesting to immediatly stop. */
-    motor1->hard_stop();
-    motor2->hard_stop();
-
-    /* Waiting while the motor is active. */
-    motor1->wait_while_active();
-    motor2->wait_while_active();
-
-    /* Waiting 2 seconds. */
-    wait_ms(DELAY_1);
-
-
-    /*----- Infinite Loop. -----*/
-
-    /* Printing to the console. */
-    printf("--> Infinite Loop...\r\n");
-
-    /* Setting the current position to be the home position. */
-    motor1->set_home();
-    motor2->set_home();
-
-    /* Infinite Loop. */
-    while(true) {
-        /* Requesting to go to a specified position. */
-        motor1->go_to(STEPS >> 1);
-        motor2->go_to(- (STEPS >> 1));
-
-        /* Waiting while the motor is active. */
-        motor1->wait_while_active();
-        motor2->wait_while_active();
-
-        /* Requesting to go to a specified position. */
-        motor1->go_to(- (STEPS >> 1));
-        motor2->go_to(STEPS >> 1);
-
-        /* Waiting while the motor is active. */
-        motor1->wait_while_active();
-        motor2->wait_while_active();
+            /* Waiting 2 seconds. */
+            wait_ms(DELAY_1);
+            }
     }
 }