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-rtos mbed PinDetect
Fork of FinalMotorControl by
Revision 23:ad08a8eabc24, committed 2016-05-11
- Comitter:
- mjhaugsdal
- Date:
- Wed May 11 18:44:06 2016 +0000
- Parent:
- 22:f6e328f7bd28
- Child:
- 24:24c91a6ae6ba
- Commit message:
- Made seudo code on sync
Changed in this revision
| PinDetect.lib | Show annotated file Show diff for this revision Revisions of this file |
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PinDetect.lib Wed May 11 18:44:06 2016 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/AjK/code/PinDetect/#cb3afc45028b
--- a/main.cpp Thu May 05 09:24:43 2016 +0000
+++ b/main.cpp Wed May 11 18:44:06 2016 +0000
@@ -1,7 +1,9 @@
#include "mbed.h"
#include "rtos.h"
+#include "PinDetect.h"
Serial pc(USBTX, USBRX); // tx, rx
+PinDetect pb(A5);
//Analog Pins
//First engine
@@ -21,9 +23,11 @@
DigitalOut IN12(D11);
-static int fart = 1300;
+static int fart = 1500;
static char m_cmd = 'x';
-
+static bool e1 = true;
+static bool e2 = true;
+static bool e3 = true;
//Methods to set pins to control direction.
void stepAllRight()
@@ -311,6 +315,31 @@
wait_us(fart);
}
+
+void step1()
+{
+ //engine 1
+ IN1=1;
+ IN2=0;
+ IN3=0;
+ IN4=1;
+}
+
+void step2()
+{
+ //engine 1
+ IN1=0;
+ IN2=1;
+ IN3=0;
+ IN4=1;
+}
+
+void wait()
+{
+ wait_us(fart);
+
+}
+
//Method to release all engines.
void stopAll()
{
@@ -358,6 +387,8 @@
+
+
void input(void const *args)
{
while(true)
@@ -368,21 +399,63 @@
}
- Thread::wait(20);
+ Thread::wait(100);
//pc.printf("%d", steps);
+
}
}
+//SPECIFY WHICH BUTTON IS PRESSED. NEED ONE CALLBACK FOR EACH BUTTON.
+void pb_hit_callback (void)
+{
+ m_cmd = 'x';
+ /*
+
+
+ */
+
+
+}
+
+
int main()
{
+ pb.mode(PullUp);
+ pb.attach_deasserted(&pb_hit_callback);
+ pb.setSampleFrequency();
+
//Thread 1 has constant feed from usb
Thread t1(input);
//static char global_direction;
printf("Started");
+
/*
BOOT UP AND SYNCHRONIZE
+ while (true)
+ {
+ should move one engine at a time. If not, alot of work has to be done in if/else statements as well as new engine methods..
+ while(moving bottom part 180 degrees to one side / steps < 0)
+ {
+ step bottom engine in one direction.
+ callback will fire and stop the engine
+ }
+ while(moving middle part 180 degrees to one side / steps < 0)
+ {
+ step middle engine in one direction
+ callback fires and stops the engine
+ }
+ while(moving middle part 180 degrees to one side / steps < 0)
+ {
+ step middle engine in one direction
+ callback fires and stops the engine
+ }
+ //Break the while loop (FALSE)
+ break;
+
+
+ }
*/
@@ -390,6 +463,20 @@
while (true)
{
+
+ if (m_cmd == 't')
+ {
+ int steps = 50;
+ while (steps <= 50)
+ {
+ step1();
+ wait();
+ }
+
+ }
+
+
+
if(m_cmd == 'a')
{
stepAllRight();
@@ -443,41 +530,74 @@
if(m_cmd == '7')
{
- stopE1();
- stepEngine1Left();
+
+ stepEngine3Left();
}
else if (m_cmd == '9')
{
- stopE1();
- stepEngine1Right();
+
+ stepEngine3Right();
}
//ENGINE 2
else if (m_cmd == '4')
{
- stopE2();
+
stepEngine2Left();
}
else if (m_cmd == '6')
{
- stopE2();
+
stepEngine2Right();
}
//ENGINE 3
else if (m_cmd == '1')
{
- stopE3();
- stepEngine3Left();
+
+ stepEngine1Left();
}
else if (m_cmd == '3')
{
- stopE3();
- stepEngine3Right();
+
+ stepEngine1Right();
}
+
+ else if (m_cmd == 'y')
+ {
+ int a = 121;
+ int b = 60;
+ int c = 60;
+
+ while (a >= 0)
+ {
+ stepEngine1Left();
+ a--;
+ }
+ while (b >= 0)
+ {
+ stepEngine2Right();
+ b--;
+ }
+ while (c >= 0)
+ {
+ stepEngine3Left();
+ c--;
+ }
+
+ m_cmd = 'x';
+
+ }
+ /*
+ new_pb = pb;
+ if (new_pb == '1')
+ {
+ m_cmd ='x';
+ }
+ */
