Task 3.4.3

Fork of Task343 by Nicholas Outram

Committer:
noutram
Date:
Wed Sep 18 12:11:59 2019 +0000
Revision:
2:d28ff9d96111
Parent:
0:d6ac5c9a58b9
2019

Who changed what in which revision?

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