Forigo / Mbed 2 deprecated FORIGO_Modula_V7_3_VdcStep_DICEMBRE2020

Dependencies:   mbed X_NUCLEO_IHM03A1_for

Revision:
35:3165f4c1c7bf
Parent:
34:eb04f4f41dfd
Child:
36:896cd03314f1
--- a/main.cpp	Wed Mar 11 09:35:36 2020 +0000
+++ b/main.cpp	Wed Apr 22 07:37:41 2020 +0000
@@ -86,17 +86,21 @@
 //********************************************************************************************************************
 //********************************************************************************************************************
 #include "main.hpp"
-/* Helper header files. */
-#include "DevSPI.h"
-/* Component specific header files. */
-#include "PowerStep01.h"
+#if defined(runner)
+    /* Helper header files. */
+    #include "DevSPI.h"
+    /* Component specific header files. */
+    #include "PowerStep01.h"
+#endif
 #include "timeandtick.hpp"
 #include "canbus.hpp"
 #include "watchdog.h"
 #include "iodefinition.hpp"
 #include "parameters.hpp"
 #include "variables.hpp"
-#include "powerstep.hpp"
+#if defined(runner)
+    #include "powerstep.hpp"
+#endif
 //********************************************************************************************************************
 //********************************************************************************************************************
 #if defined(runnerTos)
@@ -117,6 +121,7 @@
  *         To disable it:
  *           + motor->DisbleFlagIRQ();
  */
+#if defined(runner)
 void my_flag_irq_handler(void)
 {
     /* Set ISR flag. */
@@ -168,7 +173,7 @@
     /* Reset ISR flag. */
     motor->isrFlag = FALSE;
 }
-
+#endif
 /**
  * @brief  This is an example of error handler.
  * @param[in] error Number of the error
@@ -385,27 +390,31 @@
 {
     if (TBmotorDirecti==TBreverse) {
         TBmotorDirecti=TBforward;
-        #if !defined(runner)
-            #if defined(Zucca)
-                motor->step_clock_mode_enable(StepperMotor::BWD);
-            #else
-                motor->step_clock_mode_enable(StepperMotor::FWD);
+        #if !defined(oldStepperDriver)
+            #if !defined(runner)
+                #if defined(Zucca)
+                    motor->step_clock_mode_enable(StepperMotor::BWD);
+                #else
+                    motor->step_clock_mode_enable(StepperMotor::FWD);
+                #endif
             #endif
-        #endif
-        #if defined(provaStepper)
-            motor->run(StepperMotor::FWD,150.0f);
+            #if defined(provaStepper)
+                motor->run(StepperMotor::FWD,150.0f);
+            #endif
         #endif
     } else {
         TBmotorDirecti=TBreverse;
-        #if !defined(runner)
-            #if defined(Zucca)
-                motor->step_clock_mode_enable(StepperMotor::FWD);
-            #else
-                motor->step_clock_mode_enable(StepperMotor::BWD);
+        #if !defined(oldStepperDriver)
+            #if !defined(runner)
+                #if defined(Zucca)
+                    motor->step_clock_mode_enable(StepperMotor::FWD);
+                #else
+                    motor->step_clock_mode_enable(StepperMotor::BWD);
+                #endif
             #endif
-        #endif
-        #if defined(provaStepper)
-            motor->run(StepperMotor::BWD,100.0f);
+            #if defined(provaStepper)
+                motor->run(StepperMotor::BWD,100.0f);
+            #endif
         #endif
     }
     #if defined(pcSerial)
@@ -503,10 +512,14 @@
                         #endif
                     #endif
                     if (TBper != NULL) {
-                        #if defined(Zucca)
-                            motor->step_clock_mode_enable(StepperMotor::BWD);
-                        #else
-                            motor->step_clock_mode_enable(StepperMotor::FWD);
+                        #if !defined(oldStepperDriver)
+                            #if defined(runner)
+                                #if defined(Zucca)
+                                    motor->step_clock_mode_enable(StepperMotor::BWD);
+                                #else
+                                    motor->step_clock_mode_enable(StepperMotor::FWD);
+                                #endif
+                            #endif
                         #endif
                         TBticker.attach_us(&step_TBPulseOut,TBper);  // clock time are milliseconds and attach seed motor stepper controls
                     }
@@ -522,7 +535,11 @@
                             pc.printf("A1\n");
                         #endif
                     #endif
-                    motor->soft_hiz();
+                    #if !defined(oldStepperDriver)
+                        #if defined(runner)
+                            motor->soft_hiz();
+                        #endif
+                    #endif
                 }
                 oldPeriodoTB=TBper;
             }
@@ -685,10 +702,14 @@
         #else
             if (TBperiod >= (250.0f*2.0f)) {
                 if (TBperiod != NULL) {
-                    #if defined(Zucca)
-                        motor->step_clock_mode_enable(StepperMotor::BWD);
-                    #else
-                        motor->step_clock_mode_enable(StepperMotor::FWD);
+                    #if !defined(oldstepperDriver)
+                        #if defined(runner)
+                            #if defined(Zucca)
+                                motor->step_clock_mode_enable(StepperMotor::BWD);
+                            #else
+                                motor->step_clock_mode_enable(StepperMotor::FWD);
+                            #endif
+                        #endif
                     #endif
                     TBticker.attach_us(&step_TBPulseOut,TBperiod/2.0f);  // clock time are milliseconds and attach seed motor stepper controls
                 }
@@ -710,10 +731,12 @@
                 motor->run(StepperMotor::FWD,50.0f);
             #endif
         #else
-            #if defined(Zucca)
-                motor->step_clock_mode_enable(StepperMotor::BWD);
-            #else
-                motor->step_clock_mode_enable(StepperMotor::FWD);
+            #if !defined(oldStepperDriver)
+                #if defined(Zucca)
+                    motor->step_clock_mode_enable(StepperMotor::BWD);
+                #else
+                    motor->step_clock_mode_enable(StepperMotor::FWD);
+                #endif
             #endif
             TBticker.attach_us(&step_TBPulseOut,1000.0f);  // clock time are milliseconds and attach seed motor stepper controls
         #endif
@@ -734,7 +757,9 @@
                 pc.printf("A2\n");
             #endif
         #endif
-        motor->soft_hiz();
+        #if !defined(oldStepperDriver)
+            motor->soft_hiz();
+        #endif
         cicloTbinCorso = 0;
         stopCicloTB=0;
         loadDaCanInCorso=0;
@@ -1532,24 +1557,26 @@
     /* Initializing SPI bus. */
     // dev_spi(mosi,miso,sclk)
     // D11= PA7; D12= PA6; D13= PA5
-    DevSPI dev_spi(D11, D12, D13);
-    dev_spi.frequency(5000000);
+    #if defined(runner)
+        DevSPI dev_spi(D11, D12, D13);
+        dev_spi.frequency(5000000);
     
-    /* Initializing Motor Control Component. */
-    // powerstep01( flag, busy,stby, stck, cs, dev_spi)
-    // motor = new PowerStep01(D2, D4, D8, D9, D10, dev_spi); // linea standard per IHM03A1
-    motor = new PowerStep01(PA_8, PC_7, PC_4, PB_3, PB_6, dev_spi); // linea per scheda seminatrice V7
-    if (motor->init(&init) != COMPONENT_OK) {
-        exit(EXIT_FAILURE);
-    }
-
-    /* Attaching and enabling an interrupt handler. */
-    motor->attach_flag_irq(&my_flag_irq_handler);
-    motor->enable_flag_irq();
-    //motor->disable_flag_irq();
-
-    /* Attaching an error handler */
-    //motor->attach_error_handler(&my_error_handler);
+        /* Initializing Motor Control Component. */
+        // powerstep01( flag, busy,stby, stck, cs, dev_spi)
+        // motor = new PowerStep01(D2, D4, D8, D9, D10, dev_spi); // linea standard per IHM03A1
+        motor = new PowerStep01(PA_8, PC_7, PC_4, PB_3, PB_6, dev_spi); // linea per scheda seminatrice V7
+        if (motor->init(&init) != COMPONENT_OK) {
+            exit(EXIT_FAILURE);
+        }
+    
+        /* Attaching and enabling an interrupt handler. */
+        motor->attach_flag_irq(&my_flag_irq_handler);
+        motor->enable_flag_irq();
+        //motor->disable_flag_irq();
+    
+        /* Attaching an error handler */
+        //motor->attach_error_handler(&my_error_handler);
+    #endif
     wait(1.0f);
     for (int a=0; a<5; a++) {
         mediaSpeed[a]=0;
@@ -1641,25 +1668,27 @@
         //TBticker.attach(&step_TBPulseOut,0.0005f);  // clock time are seconds and attach seed motor stepper controls
         TATicker.attach(&invertiLo,3.0f);
     #else
-        // definire il pin di clock che è PB_3
-        motor->set_home();
-        motor->go_to(50);
-        motor->wait_while_active();
-        #if !defined(runner)
-            #if defined(Zucca)
-                motor->step_clock_mode_enable(StepperMotor::BWD);
-            #else
-                motor->step_clock_mode_enable(StepperMotor::FWD);
+        #if !defined(oldStepperDriver)
+            // definire il pin di clock che è PB_3
+            motor->set_home();
+            motor->go_to(50);
+            motor->wait_while_active();
+            #if !defined(runner)
+                #if defined(Zucca)
+                    motor->step_clock_mode_enable(StepperMotor::BWD);
+                #else
+                    motor->step_clock_mode_enable(StepperMotor::FWD);
+                #endif
             #endif
-        #endif
-        #if defined(pcSerial)
-            #if defined(loStop)
-                pc.printf("A3\n");
+            #if defined(pcSerial)
+                #if defined(loStop)
+                    pc.printf("A3\n");
+                #endif
             #endif
+            motor->soft_hiz();
+            // attiva l'out per il controllo dello stepper in stepClockMode
+            DigitalOut TBmotorStepOut(PB_3);                // PowerStep01 Step Input
         #endif
-        motor->soft_hiz();
-        // attiva l'out per il controllo dello stepper in stepClockMode
-        DigitalOut TBmotorStepOut(PB_3);                // PowerStep01 Step Input
     #endif // end prova stepper
 
     wd.Configure(2.0);  //watchdog set at xx seconds
@@ -1779,20 +1808,35 @@
                     oldSimStepper=true;
                     simStepSpeed= ((double)speedStepp*180.45f)/50.0f;
                     if (oldSimStepSpeed!=simStepSpeed){
-                        motor->run(StepperMotor::FWD,simStepSpeed);
+                        #if defined(runner)
+                            motor->run(StepperMotor::FWD,simStepSpeed);
+                        #endif
+                        #if defined(oldStepperDriver)
+                            TBticker.attach_us(&step_TBPulseOut,simStepSpeed/2.0f);  // clock time are milliseconds and attach seed motor stepper controls
+                        #endif
                         oldSimStepSpeed=simStepSpeed;
                     }
                 }else{
                     if (oldSimStepper==true){
                         oldSimStepper=false;
-                        motor->soft_hiz();
+                        #if defined(runner)
+                            motor->soft_hiz();
+                        #endif
+                        #if defined(oldStepperDriver)
+                            TBticker.detach();
+                        #endif
                         oldSimStepSpeed=0.0f;
                     }
                 }   
             }else{
                 if (oldSimStepper==true){
                     oldSimStepper=false;
-                    motor->soft_hiz();
+                    #if defined(runner)
+                        motor->soft_hiz();
+                    #endif
+                    #if defined(oldStepperDriver)
+                        TBticker.detach();
+                    #endif
                     oldSimStepSpeed=0.0f;
                 }
             }   
@@ -2037,10 +2081,12 @@
                                     motor->run(StepperMotor::FWD);
                                 #endif
                             #else
-                                #if defined(Zucca)
-                                    motor->step_clock_mode_enable(StepperMotor::FWD);
-                                #else
-                                    motor->step_clock_mode_enable(StepperMotor::FWD);
+                                #if !defined(oldStepperDriver)
+                                    #if defined(Zucca)
+                                        motor->step_clock_mode_enable(StepperMotor::FWD);
+                                    #else
+                                        motor->step_clock_mode_enable(StepperMotor::FWD);
+                                    #endif
                                 #endif
                             #endif
                         }
@@ -2076,10 +2122,12 @@
                                     motor->run(StepperMotor::BWD);
                                 #endif
                             #else
-                                #if defined(Zucca)
-                                    motor->step_clock_mode_enable(StepperMotor::FWD);
-                                #else
-                                    motor->step_clock_mode_enable(StepperMotor::BWD);
+                                #if !defined(oldStepperDriver)
+                                    #if defined(Zucca)
+                                        motor->step_clock_mode_enable(StepperMotor::FWD);
+                                    #else
+                                        motor->step_clock_mode_enable(StepperMotor::BWD);
+                                    #endif
                                 #endif
                             #endif
                         }
@@ -2433,11 +2481,13 @@
                         syncroCheck=0;
                         lockStart=1;
                         periodo = TBperiod;
-                        #if !defined(runner)
-                            #if defined(Zucca)
-                                motor->step_clock_mode_enable(StepperMotor::BWD);
-                            #else
-                                motor->step_clock_mode_enable(StepperMotor::FWD);
+                        #if !defined(oldStepperDriver)
+                            #if !defined(runner)
+                                #if defined(Zucca)
+                                    motor->step_clock_mode_enable(StepperMotor::BWD);
+                                #else
+                                    motor->step_clock_mode_enable(StepperMotor::FWD);
+                                #endif
                             #endif
                         #endif
                         if (aspettaStart==0) {
@@ -2464,7 +2514,11 @@
                             #if !defined(runner)
                                 TBticker.detach();
                             #endif
-                            motor->soft_hiz();
+                            #if !defined(oldStepperDriver)
+                                #if defined(runner)
+                                    motor->soft_hiz();
+                                #endif
+                            #endif
                         }
                     }
                 } else { // fine ciclo fuori da low speed
@@ -2546,8 +2600,13 @@
                         #endif
                     #endif
                     if(simStepper==0){
-                        motor->soft_hiz();
-                        motor->set_home();
+                        #if defined(runner)
+                            motor->soft_hiz();
+                            motor->set_home();
+                        #endif
+                        #if defined(oldStepperDriver)
+                            TBticker.detach();
+                        #endif
                     }
                     cntSpeedError=0;    
                     timeIntraPick=0.0f;