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@1:fb4ff3d2b5d0, 2019-11-22 (annotated)
- Committer:
- cgoodger
- Date:
- Fri Nov 22 22:41:49 2019 +0000
- Revision:
- 1:fb4ff3d2b5d0
- Parent:
- 0:67f1965f904d
Annotated Test_9 code
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| cgoodger | 1:fb4ff3d2b5d0 | 1 | //Amalgamation of Project_Test_1 and Project_Test_2_switch codes to check viability of a simple 1/2 switch light interface. |
| cgoodger | 1:fb4ff3d2b5d0 | 2 | //Expansion of Project_Test_1 protocol to include three more pins and two more traffic light circuits. |
| cgoodger | 1:fb4ff3d2b5d0 | 3 | //Project_Test_8_Switchtest2 amalgamated to provide switch command to light circuit |
| cgoodger | 1:fb4ff3d2b5d0 | 4 | //the code checks if the value of X has changed from 0 to 1 at the end of the code turning all lights to red for 10 seconds before- |
| cgoodger | 1:fb4ff3d2b5d0 | 5 | //returning the value of X to 0 to continue the normal lights sequence. X remains 0 unless button is pressed. |
| cgoodger | 1:fb4ff3d2b5d0 | 6 | //Normal light sequence being that the lights cycle through a red, yellow, green loop at prespecified time intervals. |
| cgoodger | 1:fb4ff3d2b5d0 | 7 | //Lights act in opposite pairs to reduce pin number and to cimpify code. |
| callumhoffie | 0:67f1965f904d | 8 | |
| callumhoffie | 0:67f1965f904d | 9 | |
| cgoodger | 1:fb4ff3d2b5d0 | 10 | #include "mbed.h" //load mbed library |
| cgoodger | 1:fb4ff3d2b5d0 | 11 | DigitalOut red1(p21); //Assign digital output value of red1 to mbed pin p21 |
| cgoodger | 1:fb4ff3d2b5d0 | 12 | DigitalOut yellow1(p22); //Assign digital output value of yellow1 to mbed pin p22 |
| cgoodger | 1:fb4ff3d2b5d0 | 13 | DigitalOut green1(p23); //Assign digital output value of green1 to mbed pin p23 |
| cgoodger | 1:fb4ff3d2b5d0 | 14 | DigitalOut red2(p24); //Assign digital output value of red2 to mbed pin p24 |
| cgoodger | 1:fb4ff3d2b5d0 | 15 | DigitalOut yellow2(p25); //Assign digital output value of yellow2 to mbed pin p25 |
| cgoodger | 1:fb4ff3d2b5d0 | 16 | DigitalOut green2(p27); //Assign digital output value of green2 to mbed pin p26 |
| cgoodger | 1:fb4ff3d2b5d0 | 17 | DigitalIn switchInput(p15); //Assign digital input value to p15 pin |
| callumhoffie | 0:67f1965f904d | 18 | |
| callumhoffie | 0:67f1965f904d | 19 | |
| callumhoffie | 0:67f1965f904d | 20 | int main() { |
| callumhoffie | 0:67f1965f904d | 21 | int x = 0; |
| cgoodger | 1:fb4ff3d2b5d0 | 22 | while(1) { //Repeat indefinitely |
| cgoodger | 1:fb4ff3d2b5d0 | 23 | |
| cgoodger | 1:fb4ff3d2b5d0 | 24 | if(switchInput.read() == 0) { //Read the input state only once in the while loop |
| cgoodger | 1:fb4ff3d2b5d0 | 25 | red1 = 1; //Turn on red1 |
| cgoodger | 1:fb4ff3d2b5d0 | 26 | red2 = 1; //Turn on red2 |
| cgoodger | 1:fb4ff3d2b5d0 | 27 | wait(3); //Wait 3 seconds |
| cgoodger | 1:fb4ff3d2b5d0 | 28 | if(switchInput.read() == 1){ //Check condition of varibale X |
| callumhoffie | 0:67f1965f904d | 29 | x = 1; |
| callumhoffie | 0:67f1965f904d | 30 | } |
| cgoodger | 1:fb4ff3d2b5d0 | 31 | yellow1 = 1; //Turn on yellow1 |
| cgoodger | 1:fb4ff3d2b5d0 | 32 | wait(1); //Wait 1 second |
| cgoodger | 1:fb4ff3d2b5d0 | 33 | if(switchInput.read() == 1){ //Check condition of variable X |
| callumhoffie | 0:67f1965f904d | 34 | x = 1; |
| callumhoffie | 0:67f1965f904d | 35 | } |
| cgoodger | 1:fb4ff3d2b5d0 | 36 | red1 = 0; //Turn off red1 |
| cgoodger | 1:fb4ff3d2b5d0 | 37 | yellow1 = 0; //Turn off yellow1 |
| cgoodger | 1:fb4ff3d2b5d0 | 38 | green1 = 1; //Turn on green1 |
| cgoodger | 1:fb4ff3d2b5d0 | 39 | wait(3); //Wait 3 seconds |
| cgoodger | 1:fb4ff3d2b5d0 | 40 | if(switchInput.read() == 1){ //Check condition of variable X |
| callumhoffie | 0:67f1965f904d | 41 | x = 1; |
| callumhoffie | 0:67f1965f904d | 42 | } |
| cgoodger | 1:fb4ff3d2b5d0 | 43 | green1 = 0; //Turn off green1 |
| cgoodger | 1:fb4ff3d2b5d0 | 44 | yellow1 = 1; //Turn on yellow1 |
| cgoodger | 1:fb4ff3d2b5d0 | 45 | wait(1); //Wait 1 second |
| cgoodger | 1:fb4ff3d2b5d0 | 46 | if(switchInput.read() == 1){ //Check condition of varible X |
| callumhoffie | 0:67f1965f904d | 47 | x = 1; |
| callumhoffie | 0:67f1965f904d | 48 | } |
| cgoodger | 1:fb4ff3d2b5d0 | 49 | yellow1 = 0; //Turn off yellow1 |
| cgoodger | 1:fb4ff3d2b5d0 | 50 | red1 = 1; //Turn on red1 |
| cgoodger | 1:fb4ff3d2b5d0 | 51 | wait(3); //Wait 3 seconds |
| cgoodger | 1:fb4ff3d2b5d0 | 52 | if(switchInput.read() == 1){ //Check condition of variable X |
| callumhoffie | 0:67f1965f904d | 53 | x = 1; |
| callumhoffie | 0:67f1965f904d | 54 | } |
| cgoodger | 1:fb4ff3d2b5d0 | 55 | yellow2 = 1; //Turn on yellow2 |
| cgoodger | 1:fb4ff3d2b5d0 | 56 | wait(1); //Wait 1 second |
| cgoodger | 1:fb4ff3d2b5d0 | 57 | if(switchInput.read() == 1){ //Check condition of variable X |
| callumhoffie | 0:67f1965f904d | 58 | x = 1; |
| callumhoffie | 0:67f1965f904d | 59 | } |
| cgoodger | 1:fb4ff3d2b5d0 | 60 | red2 = 0; //Turn off red2 |
| cgoodger | 1:fb4ff3d2b5d0 | 61 | yellow2=0; //Turn off yellow2 |
| cgoodger | 1:fb4ff3d2b5d0 | 62 | green2=1; //Turn on green2 |
| cgoodger | 1:fb4ff3d2b5d0 | 63 | wait(3); //Wait 3 seconds |
| cgoodger | 1:fb4ff3d2b5d0 | 64 | if(switchInput.read() == 1){ //Check condition of variable X |
| callumhoffie | 0:67f1965f904d | 65 | x = 1; |
| callumhoffie | 0:67f1965f904d | 66 | } |
| cgoodger | 1:fb4ff3d2b5d0 | 67 | green2 = 0; //Turn off green2 |
| cgoodger | 1:fb4ff3d2b5d0 | 68 | yellow2=1; //Turn on yellow2 |
| cgoodger | 1:fb4ff3d2b5d0 | 69 | wait(1); //Wait 1 second |
| cgoodger | 1:fb4ff3d2b5d0 | 70 | if(switchInput.read() == 1){ //Check condition of variable X |
| callumhoffie | 0:67f1965f904d | 71 | x = 1; |
| callumhoffie | 0:67f1965f904d | 72 | } |
| cgoodger | 1:fb4ff3d2b5d0 | 73 | yellow2=0; //Turn off yellow2 |
| cgoodger | 1:fb4ff3d2b5d0 | 74 | if(x == 1) { //Check condition of varibale X |
| cgoodger | 1:fb4ff3d2b5d0 | 75 | red1 = 1; //Turn on red1 |
| cgoodger | 1:fb4ff3d2b5d0 | 76 | red2 = 1; //Turn on red2 |
| cgoodger | 1:fb4ff3d2b5d0 | 77 | yellow1 = 0; //Turn off yellow1 |
| cgoodger | 1:fb4ff3d2b5d0 | 78 | yellow2 = 0; //Turn off yellow2 |
| cgoodger | 1:fb4ff3d2b5d0 | 79 | green1= 0; //Turn off green1 |
| cgoodger | 1:fb4ff3d2b5d0 | 80 | green2 = 0; //Turn off green2 |
| cgoodger | 1:fb4ff3d2b5d0 | 81 | wait(10); //Wait 10 seconds with red1&2 in on condition |
| cgoodger | 1:fb4ff3d2b5d0 | 82 | x = 0; //Return conditoion of variable X to 0 |
| callumhoffie | 0:67f1965f904d | 83 | } |
| callumhoffie | 0:67f1965f904d | 84 | } |
| callumhoffie | 0:67f1965f904d | 85 | } |
| cgoodger | 1:fb4ff3d2b5d0 | 86 | } //End of statement |