Engine control program with 3 engines Needs to make a case for each simultaneous engine setting, because of the WAIT after each number of bits have been sent.
Dependencies: mbed-rtos mbed PinDetect
Fork of FinalMotorControl by
Diff: main.cpp
- Revision:
- 29:00f839aad30e
- Parent:
- 28:dac262b7ab32
- Child:
- 30:fac5b5624fe3
--- a/main.cpp Thu Jun 02 07:53:41 2016 +0000 +++ b/main.cpp Thu Jul 07 08:53:21 2016 +0000 @@ -47,6 +47,7 @@ static bool e2 = true; static bool e3 = true; static bool rest = false; +static int i = 0; static int steps1 = 0; static int steps2 = 0; @@ -481,9 +482,9 @@ { e1 = false; - speed = 2000; + speed = 1000; Thread::wait(1000); - int stepsToCenter = 242; + int stepsToCenter = i/2; while (stepsToCenter >= 0) { @@ -505,9 +506,9 @@ e1 = false; //m_cmd = 'x'; - speed = 2000; + speed = 1000; Thread::wait(1000); - int stepsToCenter = 242; + int stepsToCenter = i/2; while (stepsToCenter >= 0) { @@ -525,9 +526,9 @@ { e2 = false; //m_cmd = 'x'; - speed = 2000; + speed = 1000; Thread::wait(1000); - int stepsToCenter = 242; + int stepsToCenter = i/2; while (stepsToCenter >= 0) { @@ -547,9 +548,9 @@ { e2 = false; //m_cmd = 'x'; - speed = 2000; + speed = 1000; Thread::wait(1000); - int stepsToCenter = 242; + int stepsToCenter = i/2; while (stepsToCenter >= 0) { @@ -570,9 +571,9 @@ { e3 = false; //m_cmd = 'x'; - speed = 2500; + speed = 1000; Thread::wait(1000); - int stepsToCenter = 200; + int stepsToCenter = i/2; while (stepsToCenter >= 0) { @@ -593,9 +594,9 @@ { e3 = false; //m_cmd = 'x'; - speed = 2000; + speed = 1000; Thread::wait(1000); - int stepsToCenter = 280; + int stepsToCenter = i/2; while (stepsToCenter >= 0) { @@ -634,15 +635,26 @@ while (true) { - +/* while(bootStep1 >= 0) { bootStep1--; stepEngine1Right(); - } + } */ stepEngine1Left(); if (e1 == false) { + e1 = true; + while(true) + { + + stepEngine1Right(); + i++; + if(e1 == false) + break; + + } + Thread::wait(1000); break; }//end if @@ -658,17 +670,27 @@ while (true) { - speed = 2000; - while(bootStep2 >= 0) + speed = 1000; + /* while(bootStep2 >= 0) { bootStep2--; stepEngine2Right(); - } + } */ stepEngine2Left(); if (e2 == false) { + e2 = true; + while(true) + { + + stepEngine2Right(); + i++; + if(e2 == false) + break; + + } Thread::wait(1000); break; @@ -682,17 +704,27 @@ while (true) { //speed = 2000; - while(bootStep3 >= 0) + /* while(bootStep3 >= 0) { bootStep3--; stepEngine3Right(); - } + } */ stepEngine3Left(); if (e3 == false) { + e3 = true; + while(true) + { + + stepEngine3Right(); + i++; + if(e3 == false) + break; + + } //pc.printf("HALLO"); - m_cmd = "z"; + m_cmd = 'z'; Thread::wait(1000); break; }//end if @@ -706,12 +738,12 @@ if(SW==1) { //put engines to sleep - m_cmd ="z"; + m_cmd ='z'; } //set the speed. Higher = slower - speed = 2000; + speed = 1000; //speed = 1500; switch (m_cmd) @@ -901,8 +933,6 @@ } - - //Thread::wait(10); //pc.printf("%d", steps2);