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
main.cpp
- Committer:
- JordanO
- Date:
- 2019-10-02
- Revision:
- 10:ad2da21a102c
- Parent:
- 9:cb88b16a97d5
- Child:
- 11:32deb48774f7
File content as of revision 10:ad2da21a102c:
//Libraries #include "mbed.h" #include "FastPWM.h" #include "HIDScope.h" #include "MODSERIAL.h" #include "QEI.h" //Objects //LED DigitalOut ledb(LED_BLUE); // ledb=true & ledb=1 is led off!! DigitalOut ledg(LED_GREEN); DigitalOut ledr(LED_RED); //Motors //Sensors //Buttons InterruptIn button2(SW2); //button on the side of the reset button InterruptIn button3(SW3); //button on the side opposite of the reset button //Variables enum States {MovementIdle, CalibrationIdle, Demo, Startup, CalibrationPhysical, CalibrationEMG, Move, TiltCup, FailState}; States CurrentState; volatile char ledcolor; //r is red, b is blue, g is green, t is bluegreen, p is purple //Tickers Ticker Main_Ticker; Ticker Tick_Blinky;//used for the blinking of the leds //Led FLicker void FlipLED(void) { switch(ledcolor) { case 'r': ledr =! ledr; ledg = true; ledb = true; break; case 'b': ledr = true; ledg = true; ledb =! ledb; break; case 'g': ledr = true; ledg =! ledg; ledb = true; case 't': ledr = true; ledg =! ledg; ledb =! ledb; break; case 'p': ledr =! ledr; ledg = true; ledb =! ledb; break; } } void Run_Demo(void) { pc.prinf("Starting Demo ...\r\n") } void Run_MovementIdle(void) { pc.prinf("Starting Idle ...\r\n") } void Run_CalibrationIdle(void) { pc.prinf("Starting Calibration Idle ...\r\n") } void Run_Startup(void) { pc.prinf("Starting Startup ...\r\n") } void Run_CalibrationPhysical(void) { pc.prinf("Starting Calibration Physical ... \r\n") } void Run_CalibrationEMG(void) { pc.prinf("Starting Calibration EMG ... \r\n") } void Run_Move(void) { } void Run_TiltCup(void) { } void Run_FailState(void) { } //State Machine void StateMachine(void) { //Turn off all LEDs ledr = true; ledg = true; ledb = true; switch(CurrentState) { case Demo: Run_Demo; ledcolor='t'; break; case MovementIdle: Run_MovementIdle; ledcolor='b'; break; case CalibrationIdle: Run_CalibrationIdle; ledcolor='b'; break; case Startup: Run_Startup; ledcolor='b'; break; case CalibrationPhysical: Run_CalibrationPhysical; ledcolor='g'; break; case CalibrationEMG: Run_CalibrationEMG; ledcolor='g'; break; case Move: Run_Move; ledcolor='p'; break; case TiltCup: Run_TiltCup; ledcolor='t'; break; case FailState: Run_FailState; ledcolor='r'; break; } } //Main Loop void mainloop() { StateMachine(); } int main() { //Initialize Tick_Blinky.attach(FlipLED,1); CurrentState = Startup; Main_Ticker.attach(mainloop,2); while(true) { } }