evolution

Dependencies:   mbed

Committer:
avnisha
Date:
Sat Feb 01 18:55:02 2014 +0000
Revision:
0:f25a61b099e5
Child:
1:02e0c04d84d3
evolution

Who changed what in which revision?

UserRevisionLine numberNew contents of line
avnisha 0:f25a61b099e5 1 #include "mbed.h"
avnisha 0:f25a61b099e5 2
avnisha 0:f25a61b099e5 3
avnisha 0:f25a61b099e5 4 /*
avnisha 0:f25a61b099e5 5 led1: flash brief one per second, EVERY second.
avnisha 0:f25a61b099e5 6 led2: On at t = 2 and off at t = 5
avnisha 0:f25a61b099e5 7 led3: On at t = 3 and off at t = 6
avnisha 0:f25a61b099e5 8 */
avnisha 0:f25a61b099e5 9
avnisha 0:f25a61b099e5 10 #define ONE
avnisha 0:f25a61b099e5 11
avnisha 0:f25a61b099e5 12 #ifdef ONE
avnisha 0:f25a61b099e5 13
avnisha 0:f25a61b099e5 14 DigitalOut led1(LED1);
avnisha 0:f25a61b099e5 15
avnisha 0:f25a61b099e5 16 int main() {
avnisha 0:f25a61b099e5 17 while(1) {
avnisha 0:f25a61b099e5 18 led1 = 1;
avnisha 0:f25a61b099e5 19 wait(0.2);
avnisha 0:f25a61b099e5 20 led1 = 0;
avnisha 0:f25a61b099e5 21 wait(0.2);
avnisha 0:f25a61b099e5 22 }
avnisha 0:f25a61b099e5 23 }
avnisha 0:f25a61b099e5 24
avnisha 0:f25a61b099e5 25 #endif
avnisha 0:f25a61b099e5 26
avnisha 0:f25a61b099e5 27 #ifdef TWO
avnisha 0:f25a61b099e5 28
avnisha 0:f25a61b099e5 29 Timeout to1;
avnisha 0:f25a61b099e5 30 DigitalOut led1(LED1);
avnisha 0:f25a61b099e5 31 DigitalOut led2(LED2);
avnisha 0:f25a61b099e5 32
avnisha 0:f25a61b099e5 33 void cb1(void) {
avnisha 0:f25a61b099e5 34 led2 = 1;
avnisha 0:f25a61b099e5 35 wait(3);
avnisha 0:f25a61b099e5 36 led2 = 0;
avnisha 0:f25a61b099e5 37 }
avnisha 0:f25a61b099e5 38
avnisha 0:f25a61b099e5 39 int main() {
avnisha 0:f25a61b099e5 40
avnisha 0:f25a61b099e5 41 to1.attach(&cb1, 2);
avnisha 0:f25a61b099e5 42
avnisha 0:f25a61b099e5 43 while(1) {
avnisha 0:f25a61b099e5 44 led1 = 1;
avnisha 0:f25a61b099e5 45 wait(0.05);
avnisha 0:f25a61b099e5 46 led1 = 0;
avnisha 0:f25a61b099e5 47 wait(0.95);
avnisha 0:f25a61b099e5 48 }
avnisha 0:f25a61b099e5 49 }
avnisha 0:f25a61b099e5 50
avnisha 0:f25a61b099e5 51 #endif
avnisha 0:f25a61b099e5 52 #ifdef THREE
avnisha 0:f25a61b099e5 53
avnisha 0:f25a61b099e5 54 Timeout to1;
avnisha 0:f25a61b099e5 55 Timeout to2;
avnisha 0:f25a61b099e5 56 DigitalOut led1(LED1);
avnisha 0:f25a61b099e5 57 DigitalOut led2(LED2);
avnisha 0:f25a61b099e5 58 DigitalOut led3(LED3);
avnisha 0:f25a61b099e5 59
avnisha 0:f25a61b099e5 60 void cb1(void) {
avnisha 0:f25a61b099e5 61 led2 = 1;
avnisha 0:f25a61b099e5 62 wait(3);
avnisha 0:f25a61b099e5 63 led2 = 0;
avnisha 0:f25a61b099e5 64 }
avnisha 0:f25a61b099e5 65
avnisha 0:f25a61b099e5 66 void cb2(void) {
avnisha 0:f25a61b099e5 67 led3 = 1;
avnisha 0:f25a61b099e5 68 wait(3);
avnisha 0:f25a61b099e5 69 led3 = 0;
avnisha 0:f25a61b099e5 70 }
avnisha 0:f25a61b099e5 71
avnisha 0:f25a61b099e5 72 int main() {
avnisha 0:f25a61b099e5 73
avnisha 0:f25a61b099e5 74 to1.attach(&cb1, 2);
avnisha 0:f25a61b099e5 75 to2.attach(&cb2, 3);
avnisha 0:f25a61b099e5 76
avnisha 0:f25a61b099e5 77 while(1) {
avnisha 0:f25a61b099e5 78 led1 = 1;
avnisha 0:f25a61b099e5 79 wait(0.05);
avnisha 0:f25a61b099e5 80 led1 = 0;
avnisha 0:f25a61b099e5 81 wait(0.95);
avnisha 0:f25a61b099e5 82 }
avnisha 0:f25a61b099e5 83 }
avnisha 0:f25a61b099e5 84 #endif
avnisha 0:f25a61b099e5 85
avnisha 0:f25a61b099e5 86 #ifdef FOUR
avnisha 0:f25a61b099e5 87
avnisha 0:f25a61b099e5 88
avnisha 0:f25a61b099e5 89 Timeout to1;
avnisha 0:f25a61b099e5 90 Timeout to2;
avnisha 0:f25a61b099e5 91 DigitalOut led1(LED1);
avnisha 0:f25a61b099e5 92 DigitalOut to1_led(LED2);
avnisha 0:f25a61b099e5 93 DigitalOut to2_led(LED3);
avnisha 0:f25a61b099e5 94
avnisha 0:f25a61b099e5 95 bool to1triggered = false;
avnisha 0:f25a61b099e5 96 bool to2triggered = false;
avnisha 0:f25a61b099e5 97
avnisha 0:f25a61b099e5 98 void cb1(void) {
avnisha 0:f25a61b099e5 99 to1triggered = true;
avnisha 0:f25a61b099e5 100 }
avnisha 0:f25a61b099e5 101
avnisha 0:f25a61b099e5 102 void to1handle(void) {
avnisha 0:f25a61b099e5 103 if (to1_led == 0) {
avnisha 0:f25a61b099e5 104 to1_led = 1;
avnisha 0:f25a61b099e5 105 to1.detach();
avnisha 0:f25a61b099e5 106 to1.attach(&cb1, 3);
avnisha 0:f25a61b099e5 107 }
avnisha 0:f25a61b099e5 108 else {
avnisha 0:f25a61b099e5 109 to1_led = 0;
avnisha 0:f25a61b099e5 110 to1.detach();
avnisha 0:f25a61b099e5 111 }
avnisha 0:f25a61b099e5 112 }
avnisha 0:f25a61b099e5 113 #endif
avnisha 0:f25a61b099e5 114
avnisha 0:f25a61b099e5 115 #ifdef FIVE
avnisha 0:f25a61b099e5 116
avnisha 0:f25a61b099e5 117 void cb2(void) {
avnisha 0:f25a61b099e5 118 to2triggered = true;
avnisha 0:f25a61b099e5 119 }
avnisha 0:f25a61b099e5 120
avnisha 0:f25a61b099e5 121 void to2handle(void) {
avnisha 0:f25a61b099e5 122 if (to2_led == 0) {
avnisha 0:f25a61b099e5 123 to2_led = 1;
avnisha 0:f25a61b099e5 124 to2.detach();
avnisha 0:f25a61b099e5 125 to2.attach(&cb2, 3);
avnisha 0:f25a61b099e5 126 }
avnisha 0:f25a61b099e5 127 else {
avnisha 0:f25a61b099e5 128 to2_led = 0;
avnisha 0:f25a61b099e5 129 to2.detach();
avnisha 0:f25a61b099e5 130 }
avnisha 0:f25a61b099e5 131 }
avnisha 0:f25a61b099e5 132
avnisha 0:f25a61b099e5 133
avnisha 0:f25a61b099e5 134 int main() {
avnisha 0:f25a61b099e5 135
avnisha 0:f25a61b099e5 136 to1.attach(&cb1, 2);
avnisha 0:f25a61b099e5 137 to2.attach(&cb2, 3);
avnisha 0:f25a61b099e5 138
avnisha 0:f25a61b099e5 139 while(1) {
avnisha 0:f25a61b099e5 140
avnisha 0:f25a61b099e5 141 if (to1triggered) {
avnisha 0:f25a61b099e5 142 to1triggered = false;
avnisha 0:f25a61b099e5 143 to1handle();
avnisha 0:f25a61b099e5 144 }
avnisha 0:f25a61b099e5 145
avnisha 0:f25a61b099e5 146 if (to2triggered) {
avnisha 0:f25a61b099e5 147 to2triggered = false;
avnisha 0:f25a61b099e5 148 to2handle();
avnisha 0:f25a61b099e5 149 }
avnisha 0:f25a61b099e5 150
avnisha 0:f25a61b099e5 151 led1 = 1;
avnisha 0:f25a61b099e5 152 wait(0.05);
avnisha 0:f25a61b099e5 153 led1 = 0;
avnisha 0:f25a61b099e5 154 wait(0.95);
avnisha 0:f25a61b099e5 155 }
avnisha 0:f25a61b099e5 156 }
avnisha 0:f25a61b099e5 157
avnisha 0:f25a61b099e5 158 #endif
avnisha 0:f25a61b099e5 159
avnisha 0:f25a61b099e5 160 #ifdef SIX
avnisha 0:f25a61b099e5 161
avnisha 0:f25a61b099e5 162 #include "mbed.h"
avnisha 0:f25a61b099e5 163
avnisha 0:f25a61b099e5 164 Ticker tled1on;
avnisha 0:f25a61b099e5 165 Timeout tled1off;
avnisha 0:f25a61b099e5 166 Timeout to1;
avnisha 0:f25a61b099e5 167 Timeout to2;
avnisha 0:f25a61b099e5 168 DigitalOut led1(LED1);
avnisha 0:f25a61b099e5 169 DigitalOut to1_led(LED2);
avnisha 0:f25a61b099e5 170 DigitalOut to2_led(LED3);
avnisha 0:f25a61b099e5 171
avnisha 0:f25a61b099e5 172 void cb1(void) {
avnisha 0:f25a61b099e5 173 if (to1_led == 0) {
avnisha 0:f25a61b099e5 174 to1_led = 1;
avnisha 0:f25a61b099e5 175 }
avnisha 0:f25a61b099e5 176 else {
avnisha 0:f25a61b099e5 177 to1_led = 0;
avnisha 0:f25a61b099e5 178 }
avnisha 0:f25a61b099e5 179 // Reschedule a new event.
avnisha 0:f25a61b099e5 180 to1.detach();
avnisha 0:f25a61b099e5 181 to1.attach(&cb1, 3);
avnisha 0:f25a61b099e5 182 }
avnisha 0:f25a61b099e5 183
avnisha 0:f25a61b099e5 184 void cb2(void) {
avnisha 0:f25a61b099e5 185 if (to2_led == 0) {
avnisha 0:f25a61b099e5 186 to2_led = 1;
avnisha 0:f25a61b099e5 187 }
avnisha 0:f25a61b099e5 188 else {
avnisha 0:f25a61b099e5 189 to2_led = 0;
avnisha 0:f25a61b099e5 190 }
avnisha 0:f25a61b099e5 191 // Reschedule a new event.
avnisha 0:f25a61b099e5 192 to2.detach();
avnisha 0:f25a61b099e5 193 to2.attach(&cb2, 3);
avnisha 0:f25a61b099e5 194 }
avnisha 0:f25a61b099e5 195
avnisha 0:f25a61b099e5 196 void tled1off_cb(void) {
avnisha 0:f25a61b099e5 197 led1 = 0;
avnisha 0:f25a61b099e5 198 }
avnisha 0:f25a61b099e5 199
avnisha 0:f25a61b099e5 200 void tled1on_cb(void) {
avnisha 0:f25a61b099e5 201 led1 = 1;
avnisha 0:f25a61b099e5 202 tled1off.detach();
avnisha 0:f25a61b099e5 203 tled1off.attach(&tled1off_cb, 0.05);
avnisha 0:f25a61b099e5 204 }
avnisha 0:f25a61b099e5 205
avnisha 0:f25a61b099e5 206 int main() {
avnisha 0:f25a61b099e5 207
avnisha 0:f25a61b099e5 208 led1 = 1;
avnisha 0:f25a61b099e5 209 tled1off.attach(&tled1on_cb, 0.05);
avnisha 0:f25a61b099e5 210 tled1on.attach(&tled1on_cb, 1);
avnisha 0:f25a61b099e5 211 to1.attach(&cb1, 2);
avnisha 0:f25a61b099e5 212 to2.attach(&cb2, 3);
avnisha 0:f25a61b099e5 213
avnisha 0:f25a61b099e5 214 while(1) {
avnisha 0:f25a61b099e5 215 // Calculate PI here as we have so much time :)
avnisha 0:f25a61b099e5 216 // It's like riding a bike with no hands, who's
avnisha 0:f25a61b099e5 217 // steering?! :)
avnisha 0:f25a61b099e5 218 }
avnisha 0:f25a61b099e5 219 }
avnisha 0:f25a61b099e5 220
avnisha 0:f25a61b099e5 221 #endif
avnisha 0:f25a61b099e5 222
avnisha 0:f25a61b099e5 223 #ifdef SEVEN
avnisha 0:f25a61b099e5 224
avnisha 0:f25a61b099e5 225 Ticker tled1on;
avnisha 0:f25a61b099e5 226 Timeout tled1off;
avnisha 0:f25a61b099e5 227 Timeout to1;
avnisha 0:f25a61b099e5 228 Timeout to2;
avnisha 0:f25a61b099e5 229 DigitalOut led1(LED1);
avnisha 0:f25a61b099e5 230 DigitalOut to1_led(LED2);
avnisha 0:f25a61b099e5 231 DigitalOut to2_led(LED3);
avnisha 0:f25a61b099e5 232
avnisha 0:f25a61b099e5 233 void cb1(void) {
avnisha 0:f25a61b099e5 234 if (to1_led == 0) {
avnisha 0:f25a61b099e5 235 to1_led = 1;
avnisha 0:f25a61b099e5 236 }
avnisha 0:f25a61b099e5 237 else {
avnisha 0:f25a61b099e5 238 to1_led = 0;
avnisha 0:f25a61b099e5 239 }
avnisha 0:f25a61b099e5 240
avnisha 0:f25a61b099e5 241 printf("hello\n"); // BAD IDEA !!!!
avnisha 0:f25a61b099e5 242
avnisha 0:f25a61b099e5 243 // Reschedule a new event.
avnisha 0:f25a61b099e5 244 to1.detach();
avnisha 0:f25a61b099e5 245 to1.attach(&cb1, 3);
avnisha 0:f25a61b099e5 246 }
avnisha 0:f25a61b099e5 247
avnisha 0:f25a61b099e5 248 void cb2(void) {
avnisha 0:f25a61b099e5 249 if (to2_led == 0) {
avnisha 0:f25a61b099e5 250 to2_led = 1;
avnisha 0:f25a61b099e5 251 }
avnisha 0:f25a61b099e5 252 else {
avnisha 0:f25a61b099e5 253 to2_led = 0;
avnisha 0:f25a61b099e5 254 }
avnisha 0:f25a61b099e5 255 // Reschedule a new event.
avnisha 0:f25a61b099e5 256 to2.detach();
avnisha 0:f25a61b099e5 257 to2.attach(&cb2, 3);
avnisha 0:f25a61b099e5 258 }
avnisha 0:f25a61b099e5 259
avnisha 0:f25a61b099e5 260 void tled1off_cb(void) {
avnisha 0:f25a61b099e5 261 led1 = 0;
avnisha 0:f25a61b099e5 262 }
avnisha 0:f25a61b099e5 263
avnisha 0:f25a61b099e5 264 void tled1on_cb(void) {
avnisha 0:f25a61b099e5 265 led1 = 1;
avnisha 0:f25a61b099e5 266 tled1off.detach();
avnisha 0:f25a61b099e5 267 tled1off.attach(&tled1off_cb, 0.05);
avnisha 0:f25a61b099e5 268 }
avnisha 0:f25a61b099e5 269
avnisha 0:f25a61b099e5 270 int main() {
avnisha 0:f25a61b099e5 271
avnisha 0:f25a61b099e5 272 led1 = 1;
avnisha 0:f25a61b099e5 273 tled1off.attach(&tled1on_cb, 0.05);
avnisha 0:f25a61b099e5 274 tled1on.attach(&tled1on_cb, 1);
avnisha 0:f25a61b099e5 275 to1.attach(&cb1, 2);
avnisha 0:f25a61b099e5 276 to2.attach(&cb2, 3);
avnisha 0:f25a61b099e5 277
avnisha 0:f25a61b099e5 278 while(1) {
avnisha 0:f25a61b099e5 279 // Calculate PI here as we have so much time :)
avnisha 0:f25a61b099e5 280 // It's like riding a bike with no hands, who's
avnisha 0:f25a61b099e5 281 // steering?! :)
avnisha 0:f25a61b099e5 282 }
avnisha 0:f25a61b099e5 283 }
avnisha 0:f25a61b099e5 284
avnisha 0:f25a61b099e5 285 #endif
avnisha 0:f25a61b099e5 286