Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@0:67f1965f904d, 2019-11-21 (annotated)
- Committer:
- callumhoffie
- Date:
- Thu Nov 21 16:33:23 2019 +0000
- Revision:
- 0:67f1965f904d
- Child:
- 1:fb4ff3d2b5d0
working code to check button press at every light change and act on it by making it all red for 10 seconds at the end of the sequence
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| callumhoffie | 0:67f1965f904d | 1 | //Amalgamation of Project_Test_1 and Project_Test_2_switch codes to check viability of a simple 1/2 switch light interface. |
| callumhoffie | 0:67f1965f904d | 2 | //Expansion of Project_Test_1 protocol to include three more pins and two more traffic light circuits. |
| callumhoffie | 0:67f1965f904d | 3 | |
| callumhoffie | 0:67f1965f904d | 4 | |
| callumhoffie | 0:67f1965f904d | 5 | |
| callumhoffie | 0:67f1965f904d | 6 | #include "mbed.h" |
| callumhoffie | 0:67f1965f904d | 7 | DigitalOut red1(p21); //Assign digital output value of red1 to mbed pin p21 |
| callumhoffie | 0:67f1965f904d | 8 | DigitalOut yellow1(p22); //Assign digital output value of yellow1 to mbed pin p22 |
| callumhoffie | 0:67f1965f904d | 9 | DigitalOut green1(p23); //Assign digital output value of green1 to mbed pin p23 |
| callumhoffie | 0:67f1965f904d | 10 | DigitalOut red2(p24); //Assign digital output value of red2 to mbed pin p24 |
| callumhoffie | 0:67f1965f904d | 11 | DigitalOut yellow2(p25); //Assign digital output value of yellow2 to mbed pin p25 |
| callumhoffie | 0:67f1965f904d | 12 | DigitalOut green2(p27); //Assign digital output value of green2 to mbed pin p26 |
| callumhoffie | 0:67f1965f904d | 13 | DigitalIn switchInput(p15); |
| callumhoffie | 0:67f1965f904d | 14 | |
| callumhoffie | 0:67f1965f904d | 15 | |
| callumhoffie | 0:67f1965f904d | 16 | int main() { |
| callumhoffie | 0:67f1965f904d | 17 | int x = 0; |
| callumhoffie | 0:67f1965f904d | 18 | while(1) { //Repeat indefinitely |
| callumhoffie | 0:67f1965f904d | 19 | // read the input state only once in the while loop |
| callumhoffie | 0:67f1965f904d | 20 | if(switchInput.read() == 0) { |
| callumhoffie | 0:67f1965f904d | 21 | red1 = 1; //Turn on red1 |
| callumhoffie | 0:67f1965f904d | 22 | red2 = 1; //Turn on red2 |
| callumhoffie | 0:67f1965f904d | 23 | wait(3); //Wait 3 seconds |
| callumhoffie | 0:67f1965f904d | 24 | if(switchInput.read() == 1){ |
| callumhoffie | 0:67f1965f904d | 25 | x = 1; |
| callumhoffie | 0:67f1965f904d | 26 | } |
| callumhoffie | 0:67f1965f904d | 27 | yellow1 = 1; //Turn on yellow1 |
| callumhoffie | 0:67f1965f904d | 28 | wait(1); //Wait 1 second |
| callumhoffie | 0:67f1965f904d | 29 | if(switchInput.read() == 1){ |
| callumhoffie | 0:67f1965f904d | 30 | x = 1; |
| callumhoffie | 0:67f1965f904d | 31 | } |
| callumhoffie | 0:67f1965f904d | 32 | red1 = 0; //Turn off red1 |
| callumhoffie | 0:67f1965f904d | 33 | yellow1 = 0; //Turn off yellow1 |
| callumhoffie | 0:67f1965f904d | 34 | green1 = 1; //Turn on green1 |
| callumhoffie | 0:67f1965f904d | 35 | wait(3); //Wait 3 seconds |
| callumhoffie | 0:67f1965f904d | 36 | if(switchInput.read() == 1){ |
| callumhoffie | 0:67f1965f904d | 37 | x = 1; |
| callumhoffie | 0:67f1965f904d | 38 | } |
| callumhoffie | 0:67f1965f904d | 39 | green1 = 0; //Turn off green1 |
| callumhoffie | 0:67f1965f904d | 40 | yellow1 = 1; //Turn on yellow1 |
| callumhoffie | 0:67f1965f904d | 41 | wait(1); //Wait 1 second |
| callumhoffie | 0:67f1965f904d | 42 | if(switchInput.read() == 1){ |
| callumhoffie | 0:67f1965f904d | 43 | x = 1; |
| callumhoffie | 0:67f1965f904d | 44 | } |
| callumhoffie | 0:67f1965f904d | 45 | yellow1 = 0; //Turn off yellow1 |
| callumhoffie | 0:67f1965f904d | 46 | red1 = 1; //Turn on red1 |
| callumhoffie | 0:67f1965f904d | 47 | wait(3); //Wait 3 seconds |
| callumhoffie | 0:67f1965f904d | 48 | if(switchInput.read() == 1){ |
| callumhoffie | 0:67f1965f904d | 49 | x = 1; |
| callumhoffie | 0:67f1965f904d | 50 | } |
| callumhoffie | 0:67f1965f904d | 51 | yellow2 = 1; //Turn on yellow2 |
| callumhoffie | 0:67f1965f904d | 52 | wait(1); //Wait 1 second |
| callumhoffie | 0:67f1965f904d | 53 | if(switchInput.read() == 1){ |
| callumhoffie | 0:67f1965f904d | 54 | x = 1; |
| callumhoffie | 0:67f1965f904d | 55 | } |
| callumhoffie | 0:67f1965f904d | 56 | red2 = 0; //Turn off red2 |
| callumhoffie | 0:67f1965f904d | 57 | yellow2=0; //Turn off yellow2 |
| callumhoffie | 0:67f1965f904d | 58 | green2=1; //Turn on green2 |
| callumhoffie | 0:67f1965f904d | 59 | wait(3); //Wait 3 seconds |
| callumhoffie | 0:67f1965f904d | 60 | if(switchInput.read() == 1){ |
| callumhoffie | 0:67f1965f904d | 61 | x = 1; |
| callumhoffie | 0:67f1965f904d | 62 | } |
| callumhoffie | 0:67f1965f904d | 63 | green2 = 0; //Turn off green2 |
| callumhoffie | 0:67f1965f904d | 64 | yellow2=1; //Turn on yellow2 |
| callumhoffie | 0:67f1965f904d | 65 | wait(1); //Wait 1 second |
| callumhoffie | 0:67f1965f904d | 66 | if(switchInput.read() == 1){ |
| callumhoffie | 0:67f1965f904d | 67 | x = 1; |
| callumhoffie | 0:67f1965f904d | 68 | } |
| callumhoffie | 0:67f1965f904d | 69 | yellow2=0; //Turn off yellow2 |
| callumhoffie | 0:67f1965f904d | 70 | if(x == 1) { |
| callumhoffie | 0:67f1965f904d | 71 | red1 = 1; |
| callumhoffie | 0:67f1965f904d | 72 | red2 = 1; |
| callumhoffie | 0:67f1965f904d | 73 | yellow1 = 0; |
| callumhoffie | 0:67f1965f904d | 74 | yellow2 = 0; |
| callumhoffie | 0:67f1965f904d | 75 | green1= 0; |
| callumhoffie | 0:67f1965f904d | 76 | green2 = 0; |
| callumhoffie | 0:67f1965f904d | 77 | wait(10); |
| callumhoffie | 0:67f1965f904d | 78 | x = 0; |
| callumhoffie | 0:67f1965f904d | 79 | } |
| callumhoffie | 0:67f1965f904d | 80 | } |
| callumhoffie | 0:67f1965f904d | 81 | } |
| callumhoffie | 0:67f1965f904d | 82 | } //End of statement |