Traffic lights
Now I'm having trouble with 'WHILEs' and 'IFs':
#include "mbed.h"
DigitalOut red(LED4);
DigitalOut yellow(LED3);
DigitalOut green(LED2);
DigitalOut w(LED1);
bool Peds;
int main() {
Peds = rand();
while(1){
while(Peds == 1) {
w = 1;
if(red == 1) {
wait(7.5);
w = 0;
Peds = rand();
}
}
while(1) {
red = 1;
wait(12.3);
red = 0;
yellow = 1;
wait(0.5);
yellow = 0;
green = 1;
wait(20.3);
green = 0;
}
}
} Works in thery... I will (probably) make a text based version in c++.
1 comment
You need to log in to post a comment

C (C++) is a case-sensitive language so you need to remember that. E.g. it's "int", not "Int", and you have both "Peds" and "peds". Another gotcha coming from Pascal is that assignment is '=' and comparison is '=='.
rand() doesn't take a parameter in C. If you need a random 0 or 1, you can get it as the remainder of the value returned by rand(), e.g. "peds = rand()%1". The "%" operator is equivalent to "mod" in Pascal.
Hope you'll make it work!