Task 4.1.1 Solution

Committer:
noutram
Date:
Thu Jul 13 14:52:15 2017 +0000
Revision:
1:f83fd411c279
Parent:
0:248dad7a0a29
updated for mbed-os 5.5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
noutram 0:248dad7a0a29 1 #include "mbed.h"
noutram 0:248dad7a0a29 2
noutram 0:248dad7a0a29 3 #define kRED 4
noutram 0:248dad7a0a29 4 #define kYELLOW 2
noutram 0:248dad7a0a29 5 #define kGREEN 1
noutram 0:248dad7a0a29 6
noutram 0:248dad7a0a29 7 //Global objects
noutram 0:248dad7a0a29 8 BusOut binaryOutput(D5, D6, D7); //Outputs as an integer
noutram 0:248dad7a0a29 9
noutram 0:248dad7a0a29 10 DigitalIn SW1(D3);
noutram 0:248dad7a0a29 11 DigitalIn SW2(D4);
noutram 0:248dad7a0a29 12
noutram 0:248dad7a0a29 13 AnalogIn AIN(A0);
noutram 0:248dad7a0a29 14 float fVin = 0.0;
noutram 0:248dad7a0a29 15
noutram 0:248dad7a0a29 16 //Main function
noutram 0:248dad7a0a29 17 int main() {
noutram 0:248dad7a0a29 18
noutram 0:248dad7a0a29 19
noutram 0:248dad7a0a29 20 while(1) {
noutram 0:248dad7a0a29 21
noutram 0:248dad7a0a29 22 //Read ADC
noutram 0:248dad7a0a29 23 fVin = AIN;
noutram 0:248dad7a0a29 24
noutram 0:248dad7a0a29 25 //Write to terminal
noutram 0:248dad7a0a29 26 printf("Analog input = %6.4f\n", fVin); //3 decimal places, fieldwidth=5
noutram 0:248dad7a0a29 27
noutram 0:248dad7a0a29 28 if (fVin < 0.5f) {
noutram 0:248dad7a0a29 29 binaryOutput = kGREEN;
noutram 0:248dad7a0a29 30 } else {
noutram 0:248dad7a0a29 31 binaryOutput = kRED;
noutram 0:248dad7a0a29 32 }
noutram 0:248dad7a0a29 33
noutram 0:248dad7a0a29 34 //Wait
noutram 0:248dad7a0a29 35 wait(0.5);
noutram 0:248dad7a0a29 36
noutram 0:248dad7a0a29 37 } //end while(1)
noutram 0:248dad7a0a29 38 } //end main