Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed QEI HIDScope biquadFilter MODSERIAL FastPWM
Diff: main.cpp
- Revision:
- 13:f90e31c6af2b
- Parent:
- 12:d13ce121a781
- Child:
- 14:1a695fc45fc6
diff -r d13ce121a781 -r f90e31c6af2b main.cpp --- a/main.cpp Thu Oct 03 07:35:27 2019 +0000 +++ b/main.cpp Thu Oct 03 08:23:16 2019 +0000 @@ -26,6 +26,7 @@ States CurrentState; volatile char ledcolor; //r is red, b is blue, g is green, t is bluegreen, p is purple + volatile int errorCode; @@ -39,33 +40,39 @@ //Led FLicker void FlipLED(void) { + pc.printf("FLIPLED \r\n"); switch(ledcolor) { case 'r': - ledr =! ledr; + ledr = !ledr; ledg = true; ledb = true; break; case 'b': ledr = true; ledg = true; - ledb =! ledb; + ledb = !ledb; break; case 'g': ledr = true; - ledg =! ledg; + ledg = !ledg; ledb = true; + break; case 't': ledr = true; - ledg =! ledg; - ledb =! ledb; + ledg = !ledg; + ledb = !ledb; break; case 'p': - ledr =! ledr; + ledr = !ledr; ledg = true; - ledb =! ledb; + ledb = !ledb; break; + default: + errorCode = 1; + pc.printf("Error 1: Color not defined"); } + pc.printf("Color %c \r\n",ledcolor); } void Run_StateChangerButton1() @@ -100,14 +107,15 @@ { switch(CurrentState) { - case CalibrationIdle: - CurrentState = Demo; - case MovementIdle: - CurrentState = Move; - break; - case TiltCup: - CurrentState = MovementIdle; - break; + case CalibrationIdle: + CurrentState = Demo; + break; + case MovementIdle: + CurrentState = Move; + break; + case TiltCup: + CurrentState = MovementIdle; + break; } } @@ -134,7 +142,7 @@ void Run_CalibrationPhysical(void) { pc.printf("Starting Calibration Physical ... \r\n"); - wait(2); + wait(1); CurrentState = CalibrationIdle; } @@ -146,7 +154,7 @@ void Run_Move(void) { - pc.printf("Starting Calibration Move ... \r\n"); + pc.printf("Starting Move ... \r\n"); } void Run_TiltCup(void) @@ -163,27 +171,23 @@ //State Machine void StateMachine(void) { - //Turn off all LEDs - ledr = true; - ledg = true; - ledb = true; - + //Turn off all LEDs switch(CurrentState) { case Demo: - ledcolor='g'; + ledcolor='t'; Run_Demo(); break; case MovementIdle: - ledcolor='g'; + ledcolor='b'; Run_MovementIdle(); break; case CalibrationIdle: - ledcolor='g'; + ledcolor='b'; Run_CalibrationIdle(); break; case Startup: - ledcolor='g'; + ledcolor='b'; Run_Startup(); break; case CalibrationPhysical: @@ -203,7 +207,7 @@ Run_TiltCup(); break; case FailState: - ledcolor='t'; + ledcolor='r'; Run_FailState(); break; default: @@ -221,18 +225,25 @@ int main() { //Initialize - + ledr = true; + //ledr.write(.4); + ledg = true; + //ledg.write(.4); + ledb = true; + //ledb.write(.4); pc.baud(115200); - Tick_Blinky.attach(FlipLED,1); CurrentState = Startup; - Main_Ticker.attach(mainloop,2); button1.mode(PullUp); button1.rise(Run_StateChangerButton1); button2.mode(PullUp); button2.rise(Run_StateChangerButton2); + //Tickers + Main_Ticker.attach(mainloop,2); + Tick_Blinky.attach(FlipLED,.5); + while(true) {