University of Plymouth - Stages 1, 2 and 3
/
Task413-FZ429ZI
Updated for the FZ429ZI platform
Fork of Task413 by
main.cpp
- Committer:
- noutram
- Date:
- 2017-07-13
- Revision:
- 1:73d287dc21a3
- Parent:
- 0:87df0368c584
- Child:
- 2:680e5fdd6d4a
File content as of revision 1:73d287dc21a3:
#include "mbed.h" #define kRED (1 << 2) //4 #define kYELLOW (1 << 1) //2 #define kGREEN (1 << 0) //1 //Global objects BusOut binaryOutput(D5, D6, D7); //Outputs as an integer DigitalIn SW1(D3); DigitalIn SW2(D4); AnalogIn AIN(A0); float fVin = 0.0; //Main function int main() { //This represents which state we are in //RED or GREEN int state = 0; while(1) { //Read ADC fVin = AIN; //Write to terminal printf("Analog input = %6.4f\n", fVin); //Now the "state machine" - next state logic switch (state) { //The RED state case 0: //Condition to switch state if (fVin > 0.6f) { state = 1; } break; //The GREEN state case 1: //Condition to switch state if (fVin < 0.4f) { state = 0; } break; default: state = 0; } //Output logic switch (state) { case 0: binaryOutput = kGREEN; break; case 1: binaryOutput = kRED; break; default: binaryOutput = 0; } //Wait wait(0.1); } //end while(1) } //end main