lab part A

Dependencies:   mbed

Committer:
chadlewellyn
Date:
Tue Sep 29 05:16:35 2015 +0000
Revision:
1:3bd9be707222
Parent:
0:f6c9b18d3e04
final ;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chadlewellyn 1:3bd9be707222 1 //This program moves an LED light right and left with two switches
chadlewellyn 1:3bd9be707222 2
chadlewellyn 0:f6c9b18d3e04 3 #include "mbed.h"
chadlewellyn 0:f6c9b18d3e04 4
chadlewellyn 1:3bd9be707222 5 DigitalIn sw1(p16);
chadlewellyn 1:3bd9be707222 6 DigitalIn sw2(p17);
chadlewellyn 0:f6c9b18d3e04 7 BusOut LED(p26, p27, p28, p29, p30);
chadlewellyn 0:f6c9b18d3e04 8
chadlewellyn 0:f6c9b18d3e04 9
chadlewellyn 0:f6c9b18d3e04 10 int main()
chadlewellyn 0:f6c9b18d3e04 11 {
chadlewellyn 1:3bd9be707222 12 int LED_track = 4; //initially light 3rd LED
chadlewellyn 1:3bd9be707222 13 LED.write(LED_track); //assigning LED light to a variable
chadlewellyn 1:3bd9be707222 14 int s1, s2; //switch variables
chadlewellyn 0:f6c9b18d3e04 15
chadlewellyn 1:3bd9be707222 16 while(1) { //while loop
chadlewellyn 1:3bd9be707222 17 s1 = sw1.read(); //reads position of switches and assigns to a variable
chadlewellyn 0:f6c9b18d3e04 18 s2 = sw2.read();
chadlewellyn 0:f6c9b18d3e04 19
chadlewellyn 1:3bd9be707222 20 if (s1 == 1 && s2 == 1) { //both switches are on
chadlewellyn 1:3bd9be707222 21 LED_track = 4; //3rd LED initially lit
chadlewellyn 1:3bd9be707222 22 LED.write(LED_track); //assign LEDs to variable
chadlewellyn 1:3bd9be707222 23 } else if (s1 == 1 && s2 == 0) { //switch 1 is on and switch 2 is off
chadlewellyn 1:3bd9be707222 24 if (LED_track > 1) { //the far right light is not lit
chadlewellyn 1:3bd9be707222 25 LED_track = LED_track / 2; //moves light to the right
chadlewellyn 1:3bd9be707222 26 LED.write(LED_track); //reassign new LED variable
chadlewellyn 1:3bd9be707222 27 wait(0.5); //wait 0.5 seconds
chadlewellyn 0:f6c9b18d3e04 28 } else {
chadlewellyn 1:3bd9be707222 29 LED_track = 16; //after the last light is lit this moves the light to the far left
chadlewellyn 1:3bd9be707222 30 LED.write(LED_track); //reassign new LED variable
chadlewellyn 1:3bd9be707222 31 wait(0.5); //wait 0.5 seconds
chadlewellyn 0:f6c9b18d3e04 32 }
chadlewellyn 1:3bd9be707222 33 } else if (s1 == 0 && s2 ==1) { //switch 1 is off and switch 2 is on
chadlewellyn 1:3bd9be707222 34 if (LED_track < 16) { //far left light is not lit
chadlewellyn 1:3bd9be707222 35 LED_track = LED_track * 2; //moves light to the right
chadlewellyn 1:3bd9be707222 36 LED.write(LED_track); //reassign new LED variable
chadlewellyn 1:3bd9be707222 37 wait(0.5); //wait 0.5 seconds
chadlewellyn 0:f6c9b18d3e04 38 } else {
chadlewellyn 1:3bd9be707222 39 LED_track = 16; //moves the light back to the far right
chadlewellyn 1:3bd9be707222 40 LED.write(LED_track); //reassign new LED variable
chadlewellyn 1:3bd9be707222 41 wait(0.5); //wait 0.5 seconds
chadlewellyn 0:f6c9b18d3e04 42 }
chadlewellyn 1:3bd9be707222 43 } else if (s1 == 0 && s2 ==0) { //switch one is off and switch 2 is off
chadlewellyn 1:3bd9be707222 44 LED_track = 16; //far left LED is lit
chadlewellyn 1:3bd9be707222 45 LED.write(LED_track); //reassign new LED variable
chadlewellyn 0:f6c9b18d3e04 46 }
chadlewellyn 0:f6c9b18d3e04 47
chadlewellyn 0:f6c9b18d3e04 48
chadlewellyn 0:f6c9b18d3e04 49 }
chadlewellyn 0:f6c9b18d3e04 50 }