Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed X_NUCLEO_IHM03A1_for
Diff: main.cpp
- 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;