mag niet van hendrik D:
Dependencies: mbed MatrixMath QEI HIDScope Matrix biquadFilter MODSERIAL FastPWM
main.cpp
- Committer:
- Hendrikvg
- Date:
- 2019-09-13
- Revision:
- 6:61618bf71a08
- Parent:
- 5:dc3a076bbb10
- Child:
- 7:d307e31f7391
File content as of revision 6:61618bf71a08:
#include "mbed.h" #include "MODSERIAL.h" MODSERIAL pc(USBTX, USBRX); DigitalOut ledr(LED_RED); DigitalOut ledg(LED_GREEN); DigitalOut ledb(LED_BLUE); Ticker RE; Timer R; Timer G; Timer B; volatile char Command; enum states {red, green, blue}; states CurrentState = red; bool StateChanged = true; void ES() { Command = 'r'; } void CheckCommandFromTerminal(void) { Command = pc.getcNb(); } void StateMachine(void) { switch(CurrentState) { case red: if (StateChanged) { pc.printf("Initiating turning LED red\n\r"); StateChanged= false; ledr = 0; ledg = 1; ledb = 1; R.start(); pc.printf("LED is now red!\n\r"); } if (Command == 'g') { R.stop(); pc.printf("The LED has been red for %f seconds!\n\r", R.read()); CurrentState= green; StateChanged= true; } if (Command == 'b') { R.stop(); pc.printf("The LED has been red for %f seconds!\n\r", R.read()); CurrentState= blue; StateChanged= true; } else {} break; case green: if (StateChanged) { pc.printf("Initiating turning LED green\n\r"); StateChanged= false; ledr = 1; ledg = 0; ledb = 1; G.start(); pc.printf("LED is now green!\n\r"); } if (Command == 'r') { G.stop(); pc.printf("The LED has been green for %f seconds!\n\r", G.read()); CurrentState= red; StateChanged= true; } if (Command == 'b') { G.stop(); pc.printf("The LED has been green for %f seconds!\n\r", G.read()); CurrentState= blue; StateChanged= true; } else {} break; case blue: if (StateChanged) { pc.printf("Initiating turning LED blue\n\r"); StateChanged= false; ledr = 1; ledg = 1; ledb = 0; B.start(); pc.printf("LED is now blue!\n\r"); } if (Command == 'r') { B.stop(); pc.printf("The LED has been blue for %f seconds!\n\r", B.read()); CurrentState= red; StateChanged= true; } if (Command == 'g') { B.stop(); pc.printf("The LED has been blue for %f seconds!\n\r", B.read()); CurrentState= green; StateChanged= true; } else {} break; default: pc.printf("Unknown or unimplemented state reached!\n"); } } int main() { pc.baud(115200); RE.attach(ES,3); while(true) { CheckCommandFromTerminal(); StateMachine(); } }