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@7:af0c16ae48d7, 2019-10-01 (annotated)
- Committer:
- Rieks
- Date:
- Tue Oct 01 13:31:36 2019 +0000
- Revision:
- 7:af0c16ae48d7
- Parent:
- 6:41b02057fc2c
- Child:
- 8:ccd58f78b5cb
ledcolor variable added;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Rieks | 6:41b02057fc2c | 1 | //includes |
Rieks | 6:41b02057fc2c | 2 | #include "mbed.h" |
Rieks | 6:41b02057fc2c | 3 | //objects and variables |
Rieks | 6:41b02057fc2c | 4 | DigitalOut ledb(LED_BLUE); // ledb=true is led off!! |
Rieks | 6:41b02057fc2c | 5 | DigitalOut ledg(LED_GREEN); |
Rieks | 6:41b02057fc2c | 6 | DigitalOut ledr(LED_RED); |
JornD | 5:77929f5f1f32 | 7 | enum States {MovementIdle, CalibrationIdle, Demo, Startup, CalibrationPhysical, Move, TiltCup, FailState}; |
JornD | 2:6d026d5655c5 | 8 | States CurrentState; |
Rieks | 7:af0c16ae48d7 | 9 | char ledcolor; //r is red, b is blue, g is green, t is bluegreen, p is purple |
Rieks | 7:af0c16ae48d7 | 10 | Ticker Tick_Blinky;//used for the blinking of the leds |
JornD | 1:a5c1140f464a | 11 | |
JornD | 2:6d026d5655c5 | 12 | void Run_Demo(void) |
JornD | 2:6d026d5655c5 | 13 | { |
Rieks | 6:41b02057fc2c | 14 | ledg=false; |
Rieks | 6:41b02057fc2c | 15 | ledr=true; |
Rieks | 6:41b02057fc2c | 16 | ledb=true;//only turns on the green light |
JornD | 5:77929f5f1f32 | 17 | |
Rieks | 7:af0c16ae48d7 | 18 | Tick_Blinky.attach() |
Rieks | 7:af0c16ae48d7 | 19 | |
JornD | 5:77929f5f1f32 | 20 | } |
JornD | 2:6d026d5655c5 | 21 | |
JornD | 5:77929f5f1f32 | 22 | void Run_MovementIdle(void) |
JornD | 5:77929f5f1f32 | 23 | { |
JornD | 5:77929f5f1f32 | 24 | |
JornD | 5:77929f5f1f32 | 25 | } |
JornD | 5:77929f5f1f32 | 26 | |
JornD | 5:77929f5f1f32 | 27 | void Run_CalibrationIdle(void) |
JornD | 5:77929f5f1f32 | 28 | { |
JornD | 5:77929f5f1f32 | 29 | |
JornD | 5:77929f5f1f32 | 30 | } |
JornD | 5:77929f5f1f32 | 31 | |
JornD | 5:77929f5f1f32 | 32 | void Run_Startup(void) |
JornD | 5:77929f5f1f32 | 33 | { |
JornD | 5:77929f5f1f32 | 34 | |
JornD | 2:6d026d5655c5 | 35 | } |
JornD | 2:6d026d5655c5 | 36 | |
JornD | 5:77929f5f1f32 | 37 | void Run_CalibrationPhysical(void) |
JornD | 2:6d026d5655c5 | 38 | { |
JornD | 5:77929f5f1f32 | 39 | |
JornD | 5:77929f5f1f32 | 40 | } |
JornD | 2:6d026d5655c5 | 41 | |
JornD | 5:77929f5f1f32 | 42 | void Run_CalibrationEMG(void) |
JornD | 5:77929f5f1f32 | 43 | { |
JornD | 5:77929f5f1f32 | 44 | |
JornD | 2:6d026d5655c5 | 45 | } |
JornD | 2:6d026d5655c5 | 46 | |
JornD | 5:77929f5f1f32 | 47 | void Run_Move(void) |
JornD | 5:77929f5f1f32 | 48 | { |
JornD | 5:77929f5f1f32 | 49 | |
JornD | 5:77929f5f1f32 | 50 | } |
JornD | 5:77929f5f1f32 | 51 | |
JornD | 5:77929f5f1f32 | 52 | void Run_TiltCup(void) |
JornD | 5:77929f5f1f32 | 53 | { |
JornD | 5:77929f5f1f32 | 54 | |
JornD | 5:77929f5f1f32 | 55 | } |
JornD | 5:77929f5f1f32 | 56 | |
JornD | 5:77929f5f1f32 | 57 | void Run_FailState(void) |
Rieks | 6:41b02057fc2c | 58 | { |
Rieks | 7:af0c16ae48d7 | 59 | |
JornD | 5:77929f5f1f32 | 60 | } |
JornD | 5:77929f5f1f32 | 61 | |
JornD | 5:77929f5f1f32 | 62 | //State Machine |
JornD | 2:6d026d5655c5 | 63 | void StateMachine(void) |
JornD | 2:6d026d5655c5 | 64 | { |
JornD | 2:6d026d5655c5 | 65 | switch(CurrentState) |
JornD | 2:6d026d5655c5 | 66 | { |
JornD | 2:6d026d5655c5 | 67 | case Demo: |
JornD | 2:6d026d5655c5 | 68 | Run_Demo; |
Rieks | 7:af0c16ae48d7 | 69 | ledcolor='t'; |
JornD | 2:6d026d5655c5 | 70 | break; |
JornD | 5:77929f5f1f32 | 71 | case MovementIdle: |
Rieks | 6:41b02057fc2c | 72 | Run_MovementIdle; |
Rieks | 7:af0c16ae48d7 | 73 | ledcolor='b'; |
JornD | 5:77929f5f1f32 | 74 | break; |
JornD | 5:77929f5f1f32 | 75 | case CalibrationIdle: |
JornD | 5:77929f5f1f32 | 76 | Run_CalibrationIdle; |
Rieks | 7:af0c16ae48d7 | 77 | ledcolor='b'; |
JornD | 5:77929f5f1f32 | 78 | break; |
JornD | 5:77929f5f1f32 | 79 | case Startup; |
Rieks | 6:41b02057fc2c | 80 | Run_Startup; |
Rieks | 7:af0c16ae48d7 | 81 | ledcolor='b'; |
JornD | 5:77929f5f1f32 | 82 | break; |
JornD | 5:77929f5f1f32 | 83 | case CalibrationPhysical: |
JornD | 5:77929f5f1f32 | 84 | Run_CalibrationPhysical; |
Rieks | 7:af0c16ae48d7 | 85 | ledcolor='g'; |
JornD | 5:77929f5f1f32 | 86 | break; |
JornD | 5:77929f5f1f32 | 87 | case CalibrationEMG: |
JornD | 5:77929f5f1f32 | 88 | Run_CalibrationEMG; |
Rieks | 7:af0c16ae48d7 | 89 | ledcolor='g'; |
JornD | 5:77929f5f1f32 | 90 | break; |
JornD | 5:77929f5f1f32 | 91 | case Move: |
JornD | 5:77929f5f1f32 | 92 | Run_Move; |
Rieks | 7:af0c16ae48d7 | 93 | ledcolor='p'; |
JornD | 5:77929f5f1f32 | 94 | break; |
JornD | 5:77929f5f1f32 | 95 | case TiltCup: |
JornD | 5:77929f5f1f32 | 96 | Run_TiltCup; |
Rieks | 7:af0c16ae48d7 | 97 | ledcolor='t'; |
JornD | 5:77929f5f1f32 | 98 | break; |
JornD | 5:77929f5f1f32 | 99 | case FailState: |
JornD | 5:77929f5f1f32 | 100 | Run_FailState; |
Rieks | 7:af0c16ae48d7 | 101 | ledcolor='r'; |
JornD | 2:6d026d5655c5 | 102 | break; |
JornD | 2:6d026d5655c5 | 103 | } |
JornD | 2:6d026d5655c5 | 104 | } |
JornD | 1:a5c1140f464a | 105 | |
JornD | 5:77929f5f1f32 | 106 | //Main Loop |
JornD | 1:a5c1140f464a | 107 | int main() |
Rieks | 6:41b02057fc2c | 108 | { ledb=true; |
Rieks | 6:41b02057fc2c | 109 | ledr=true; |
Rieks | 6:41b02057fc2c | 110 | ledg=true;//turn off all leds |
JornD | 5:77929f5f1f32 | 111 | CurrentState = Startup; |
JornD | 1:a5c1140f464a | 112 | while(true) |
JornD | 1:a5c1140f464a | 113 | { |
JornD | 1:a5c1140f464a | 114 | |
JornD | 1:a5c1140f464a | 115 | } |
JornD | 1:a5c1140f464a | 116 | } |