Motor is being implemented in this version. Trying to implement catching errors

Dependencies:   mbed Tracker

Revision:
5:dc4cf6cc24b3
Parent:
0:6942f0e2198c
--- a/main.cpp	Tue Nov 29 20:04:34 2016 +0000
+++ b/main.cpp	Tue Feb 07 21:01:20 2017 +0000
@@ -1,11 +1,71 @@
 #include "mbed.h"
-#include "DumpTruck.h"
 
-DigitalOut myled(LED1);
+// Define buttons
+InterruptIn button_red(p5);
+InterruptIn button_green(p6);
+InterruptIn button_blue(p7);
+
+// Define LED colors
+PwmOut led_red(p21);
+PwmOut led_green(p22);
+PwmOut led_blue(p23);
 
+// Interrupt Service Routine to increment the red color
+void inc_red() {
 
-int main() {
-    DumpTruck foo(1);
-    foo.drive();
+    float pwm;
+
+    // Read in current PWM value and increment it
+    pwm = led_red.read();
+    pwm += 0.1f;
+    if (pwm > 1.0f) {
+        pwm = 0.0f;
+    }
+    led_red.write(pwm);
 }
 
+// Interrupt Service Routine to increment the green color
+void inc_green() {
+
+    float pwm;
+
+    // Read in current PWM value and increment it
+    pwm = led_green.read();
+    pwm += 0.1f;
+    if (pwm > 1.0f) {
+        pwm = 0.0f;
+    }
+    led_green.write(pwm);
+}
+
+// Interrupt Service Routine to increment the blue color
+void inc_blue() {
+
+    float pwm;
+
+    // Read in current PWM value and increment it
+    pwm = led_blue.read();
+    pwm += 0.1f;
+    if (pwm > 1.0f) {
+        pwm = 0.0f;
+    }
+    led_blue.write(pwm);
+}
+
+// Main loop
+int main() {
+
+    // Initialize all LED colors as off
+    led_red.write(0.0f);
+    led_green.write(0.0f);
+    led_blue.write(0.0f);
+
+    // Define three interrupts - one for each color
+    button_red.fall(&inc_red);
+    button_green.fall(&inc_green);
+    button_blue.fall(&inc_blue);
+
+    // Do nothing! We wait for an interrupt to happen
+    while(1) {
+    }
+}