evolution

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
avnisha
Date:
Sat Feb 01 18:55:02 2014 +0000
Child:
1:02e0c04d84d3
Commit message:
evolution

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Feb 01 18:55:02 2014 +0000
@@ -0,0 +1,286 @@
+#include "mbed.h"
+
+
+/*
+led1: flash brief one per second, EVERY second.
+led2: On at t = 2 and off at t = 5
+led3: On at t = 3 and off at t = 6
+*/
+
+#define ONE
+
+#ifdef ONE
+ 
+DigitalOut led1(LED1);
+ 
+int main() {
+    while(1) {
+        led1 = 1;
+        wait(0.2);
+        led1 = 0;
+        wait(0.2);
+    }
+}
+
+#endif
+
+#ifdef TWO
+ 
+Timeout to1;
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+ 
+void cb1(void) { 
+    led2 = 1;
+    wait(3);
+    led2 = 0;
+}
+ 
+int main() {
+ 
+    to1.attach(&cb1, 2);
+ 
+    while(1) {
+        led1 = 1;
+        wait(0.05);
+        led1 = 0;
+        wait(0.95);
+    }
+}
+
+#endif
+#ifdef THREE
+ 
+Timeout to1;
+Timeout to2;
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+ 
+void cb1(void) { 
+    led2 = 1;
+    wait(3);
+    led2 = 0;
+}
+ 
+void cb2(void) { 
+    led3 = 1;
+    wait(3);
+    led3 = 0;
+}
+ 
+int main() {
+ 
+    to1.attach(&cb1, 2);
+    to2.attach(&cb2, 3);
+ 
+    while(1) {
+        led1 = 1;
+        wait(0.05);
+        led1 = 0;
+        wait(0.95);
+    }
+}
+#endif
+
+#ifdef FOUR
+
+ 
+Timeout to1;
+Timeout to2;
+DigitalOut led1(LED1);
+DigitalOut to1_led(LED2);
+DigitalOut to2_led(LED3);
+ 
+bool to1triggered = false;
+bool to2triggered = false;
+ 
+void cb1(void) { 
+    to1triggered = true;
+}
+ 
+void to1handle(void) {
+    if (to1_led == 0) {
+        to1_led = 1;
+        to1.detach();
+        to1.attach(&cb1, 3);
+    }
+    else {
+        to1_led = 0;
+        to1.detach();            
+    } 
+}
+#endif
+
+#ifdef FIVE
+ 
+void cb2(void) { 
+    to2triggered = true;    
+}
+ 
+void to2handle(void) {
+    if (to2_led == 0) {
+        to2_led = 1;
+        to2.detach();
+        to2.attach(&cb2, 3);
+    }
+    else {
+        to2_led = 0;
+        to2.detach();            
+    } 
+}
+ 
+ 
+int main() {
+ 
+    to1.attach(&cb1, 2);
+    to2.attach(&cb2, 3);
+ 
+    while(1) {
+    
+        if (to1triggered) {
+            to1triggered = false;
+            to1handle();
+        }
+    
+        if (to2triggered) {
+            to2triggered = false;
+            to2handle();
+        }
+    
+        led1 = 1;
+        wait(0.05);
+        led1 = 0;
+        wait(0.95);
+    }
+}
+
+#endif
+
+#ifdef SIX
+
+#include "mbed.h"
+ 
+Ticker  tled1on;
+Timeout tled1off;
+Timeout to1;
+Timeout to2;
+DigitalOut led1(LED1);
+DigitalOut to1_led(LED2);
+DigitalOut to2_led(LED3);
+ 
+void cb1(void) { 
+    if (to1_led == 0) {
+        to1_led = 1;
+    }
+    else {
+        to1_led = 0;
+    }
+    // Reschedule a new event.
+    to1.detach();
+    to1.attach(&cb1, 3);
+}
+ 
+void cb2(void) {
+    if (to2_led == 0) {
+        to2_led = 1;
+    }
+    else {
+        to2_led = 0;
+    }
+    // Reschedule a new event.
+    to2.detach();
+    to2.attach(&cb2, 3); 
+}
+ 
+void tled1off_cb(void) {
+    led1 = 0;
+}
+ 
+void tled1on_cb(void) {
+    led1 = 1;
+    tled1off.detach();
+    tled1off.attach(&tled1off_cb, 0.05);
+}
+ 
+int main() {
+ 
+    led1 = 1;
+    tled1off.attach(&tled1on_cb, 0.05);
+    tled1on.attach(&tled1on_cb, 1);
+    to1.attach(&cb1, 2);
+    to2.attach(&cb2, 3);
+ 
+    while(1) {
+        // Calculate PI here as we have so much time :)
+        // It's like riding a bike with no hands, who's
+        // steering?! :)
+    }
+}
+
+#endif
+
+#ifdef SEVEN
+ 
+Ticker  tled1on;
+Timeout tled1off;
+Timeout to1;
+Timeout to2;
+DigitalOut led1(LED1);
+DigitalOut to1_led(LED2);
+DigitalOut to2_led(LED3);
+ 
+void cb1(void) { 
+    if (to1_led == 0) {
+        to1_led = 1;
+    }
+    else {
+        to1_led = 0;
+    }
+    
+    printf("hello\n");                      // BAD IDEA !!!!
+    
+    // Reschedule a new event.
+    to1.detach();
+    to1.attach(&cb1, 3);
+}
+ 
+void cb2(void) {
+    if (to2_led == 0) {
+        to2_led = 1;
+    }
+    else {
+        to2_led = 0;
+    }
+    // Reschedule a new event.
+    to2.detach();
+    to2.attach(&cb2, 3); 
+}
+ 
+void tled1off_cb(void) {
+    led1 = 0;
+}
+ 
+void tled1on_cb(void) {
+    led1 = 1;
+    tled1off.detach();
+    tled1off.attach(&tled1off_cb, 0.05);
+}
+ 
+int main() {
+ 
+    led1 = 1;
+    tled1off.attach(&tled1on_cb, 0.05);
+    tled1on.attach(&tled1on_cb, 1);
+    to1.attach(&cb1, 2);
+    to2.attach(&cb2, 3);
+ 
+    while(1) {
+        // Calculate PI here as we have so much time :)
+        // It's like riding a bike with no hands, who's
+        // steering?! :)
+    }
+}
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sat Feb 01 18:55:02 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/a9913a65894f
\ No newline at end of file