motor portion of pinball project for ECE 4180 Final Project

Dependencies:   mbed Servo Motor PinDetect

Revision:
1:f1c96924258d
Parent:
0:7bbc230e00d6
diff -r 7bbc230e00d6 -r f1c96924258d main.cpp
--- a/main.cpp	Tue Nov 23 16:19:19 2010 +0000
+++ b/main.cpp	Tue Apr 30 04:42:11 2019 +0000
@@ -2,12 +2,58 @@
 
 #include "mbed.h"
 #include "Motor.h"
+#include "PinDetect.h"
+#include "Servo.h"
 
-Motor m(p23, p6, p5); // pwm, fwd, rev
+Servo myservo(p21);
+Motor m1(p24, p17, p18); // pwm, fwd, rev
+Motor m2(p25, p19, p20); // pwm, fwd, rev
+PinDetect pb1(p7);
+PinDetect pb2(p8);
+DigitalOut myled(LED1);
+DigitalOut myled2(LED2);
+DigitalOut myled3(LED3);
+DigitalOut myled4(LED4); 
+
+void pb1_hit_callback (void) {
+    myled3 = !myled3;
+    m1.speed(0.5); 
+    wait(0.05);
+    m1.speed(0.0);
+    wait(0.05);
+    m1.speed(-0.5); 
+    wait(0.05);
+    m1.speed(0.0);
+}
+
+void pb2_hit_callback (void) {
+    myled4 = !myled4;
+    m2.speed(0.5); 
+    wait(0.05);
+    m2.speed(0.0);
+    wait(0.05);
+    m2.speed(-0.5); 
+    wait(0.05);
+    m2.speed(0.0);
+}
 
 int main() {
-    for (float s= -1.0; s < 1.0 ; s += 0.01) {
-       m.speed(s); 
-       wait(0.02);
+    // Use internal pullups for pushbutton
+    pb1.mode(PullUp);   
+    pb2.mode(PullUp);  
+    // Delay for initial pullup to take effect
+    wait(.01);
+    // Setup Interrupt callback functions for a pb hit
+    pb1.attach_deasserted(&pb1_hit_callback);
+    pb2.attach_deasserted(&pb2_hit_callback);
+    // Start sampling pb inputs using interrupts
+    pb1.setSampleFrequency();
+    pb2.setSampleFrequency();
+    
+    while (1) {
+        myservo = 0.0;
+        wait(0.5);
+        myservo = -1.0;
+        wait(0.5);
     }
 }