Task 3.4.3

Dependencies:   mbed

Committer:
noutram
Date:
Thu Sep 24 12:27:02 2015 +0000
Revision:
0:d6ac5c9a58b9
Initial version 24-09-2015

Who changed what in which revision?

UserRevisionLine numberNew contents of line
noutram 0:d6ac5c9a58b9 1 #include "mbed.h"
noutram 0:d6ac5c9a58b9 2
noutram 0:d6ac5c9a58b9 3 //Global objects
noutram 0:d6ac5c9a58b9 4 BusOut binaryOutput(D5, D6, D7);
noutram 0:d6ac5c9a58b9 5 DigitalIn SW1(D4);
noutram 0:d6ac5c9a58b9 6
noutram 0:d6ac5c9a58b9 7 //Function prototypes
noutram 0:d6ac5c9a58b9 8 void waitForButtonPress();
noutram 0:d6ac5c9a58b9 9
noutram 0:d6ac5c9a58b9 10 //Main function
noutram 0:d6ac5c9a58b9 11 int main() {
noutram 0:d6ac5c9a58b9 12
noutram 0:d6ac5c9a58b9 13 //Create a variable to hold the bit pattern
noutram 0:d6ac5c9a58b9 14 unsigned int u;
noutram 0:d6ac5c9a58b9 15
noutram 0:d6ac5c9a58b9 16 //Flash LED's to indicate the code is running
noutram 0:d6ac5c9a58b9 17 binaryOutput = 7;
noutram 0:d6ac5c9a58b9 18 wait(0.5);
noutram 0:d6ac5c9a58b9 19 binaryOutput = 0;
noutram 0:d6ac5c9a58b9 20
noutram 0:d6ac5c9a58b9 21 while(1) {
noutram 0:d6ac5c9a58b9 22
noutram 0:d6ac5c9a58b9 23 u = 0; //Set initial value 0
noutram 0:d6ac5c9a58b9 24 binaryOutput = u; //Show binary on LED's
noutram 0:d6ac5c9a58b9 25 waitForButtonPress(); //Call function
noutram 0:d6ac5c9a58b9 26
noutram 0:d6ac5c9a58b9 27 //Use & to toggle bit 0
noutram 0:d6ac5c9a58b9 28 u = u ^ 1; //XOR with binary 001
noutram 0:d6ac5c9a58b9 29 binaryOutput = u;
noutram 0:d6ac5c9a58b9 30 waitForButtonPress();
noutram 0:d6ac5c9a58b9 31
noutram 0:d6ac5c9a58b9 32 //Toggle bit 1
noutram 0:d6ac5c9a58b9 33 //WRITE CODE HERE
noutram 0:d6ac5c9a58b9 34 binaryOutput = u;
noutram 0:d6ac5c9a58b9 35 waitForButtonPress();
noutram 0:d6ac5c9a58b9 36
noutram 0:d6ac5c9a58b9 37
noutram 0:d6ac5c9a58b9 38 //Toggle bit 2
noutram 0:d6ac5c9a58b9 39 //WRITE CODE HERE
noutram 0:d6ac5c9a58b9 40 binaryOutput = u;
noutram 0:d6ac5c9a58b9 41 waitForButtonPress();
noutram 0:d6ac5c9a58b9 42
noutram 0:d6ac5c9a58b9 43 //Toggle bits 0 and 2
noutram 0:d6ac5c9a58b9 44 //WRITE CODE HERE
noutram 0:d6ac5c9a58b9 45 binaryOutput = u;
noutram 0:d6ac5c9a58b9 46 waitForButtonPress();
noutram 0:d6ac5c9a58b9 47
noutram 0:d6ac5c9a58b9 48 //Toggle all bits
noutram 0:d6ac5c9a58b9 49 //WRITE CODE HERE
noutram 0:d6ac5c9a58b9 50 binaryOutput = u;
noutram 0:d6ac5c9a58b9 51 waitForButtonPress();
noutram 0:d6ac5c9a58b9 52
noutram 0:d6ac5c9a58b9 53 //Toggle all bits
noutram 0:d6ac5c9a58b9 54 //WRITE CODE HERE
noutram 0:d6ac5c9a58b9 55 binaryOutput = u;
noutram 0:d6ac5c9a58b9 56 waitForButtonPress();
noutram 0:d6ac5c9a58b9 57
noutram 0:d6ac5c9a58b9 58 } //end while(1)
noutram 0:d6ac5c9a58b9 59 } //end main
noutram 0:d6ac5c9a58b9 60
noutram 0:d6ac5c9a58b9 61
noutram 0:d6ac5c9a58b9 62 void waitForButtonPress() {
noutram 0:d6ac5c9a58b9 63 while (SW1 == 0);
noutram 0:d6ac5c9a58b9 64 wait(0.25);
noutram 0:d6ac5c9a58b9 65 while (SW1 == 1);
noutram 0:d6ac5c9a58b9 66 }