Jorn Dokter / Mbed 2 deprecated TEB_branch2

Dependencies:   mbed QEI HIDScope biquadFilter MODSERIAL FastPWM

Committer:
JornD
Date:
Tue Oct 01 13:56:14 2019 +0000
Revision:
8:ccd58f78b5cb
Parent:
7:af0c16ae48d7
Child:
9:cb88b16a97d5
Added colour coding to States, added Blink ticker and mainloop

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JornD 8:ccd58f78b5cb 1 //Libraries
Rieks 6:41b02057fc2c 2 #include "mbed.h"
JornD 8:ccd58f78b5cb 3
Rieks 6:41b02057fc2c 4 //objects and variables
Rieks 6:41b02057fc2c 5 DigitalOut ledb(LED_BLUE); // ledb=true is led off!!
Rieks 6:41b02057fc2c 6 DigitalOut ledg(LED_GREEN);
Rieks 6:41b02057fc2c 7 DigitalOut ledr(LED_RED);
JornD 8:ccd58f78b5cb 8
JornD 5:77929f5f1f32 9 enum States {MovementIdle, CalibrationIdle, Demo, Startup, CalibrationPhysical, Move, TiltCup, FailState};
JornD 2:6d026d5655c5 10 States CurrentState;
JornD 8:ccd58f78b5cb 11
Rieks 7:af0c16ae48d7 12 char ledcolor; //r is red, b is blue, g is green, t is bluegreen, p is purple
Rieks 7:af0c16ae48d7 13 Ticker Tick_Blinky;//used for the blinking of the leds
JornD 1:a5c1140f464a 14
JornD 8:ccd58f78b5cb 15 //Led FLicker
JornD 8:ccd58f78b5cb 16 void FlipLED(void)
JornD 8:ccd58f78b5cb 17 {
JornD 8:ccd58f78b5cb 18 switch(ledcolor)
JornD 8:ccd58f78b5cb 19 {
JornD 8:ccd58f78b5cb 20 case 'r':
JornD 8:ccd58f78b5cb 21 ledr =! ledr;
JornD 8:ccd58f78b5cb 22 ledg = true;
JornD 8:ccd58f78b5cb 23 ledb = true;
JornD 8:ccd58f78b5cb 24 break;
JornD 8:ccd58f78b5cb 25 case 'b':
JornD 8:ccd58f78b5cb 26 ledr = true;
JornD 8:ccd58f78b5cb 27 ledg = true;
JornD 8:ccd58f78b5cb 28 ledb =! ledb;
JornD 8:ccd58f78b5cb 29 break;
JornD 8:ccd58f78b5cb 30 case 'g':
JornD 8:ccd58f78b5cb 31 ledr = true;
JornD 8:ccd58f78b5cb 32 ledg =! ledg;
JornD 8:ccd58f78b5cb 33 ledb = true;
JornD 8:ccd58f78b5cb 34 case 't':
JornD 8:ccd58f78b5cb 35 ledr = true;
JornD 8:ccd58f78b5cb 36 ledg =! ledg;
JornD 8:ccd58f78b5cb 37 ledb =! ledb;
JornD 8:ccd58f78b5cb 38 break;
JornD 8:ccd58f78b5cb 39 case 'p':
JornD 8:ccd58f78b5cb 40 ledr =! ledr;
JornD 8:ccd58f78b5cb 41 ledg = true;
JornD 8:ccd58f78b5cb 42 ledb =! ledb;
JornD 8:ccd58f78b5cb 43 break;
JornD 8:ccd58f78b5cb 44 }
JornD 8:ccd58f78b5cb 45 }
JornD 8:ccd58f78b5cb 46
JornD 2:6d026d5655c5 47 void Run_Demo(void)
JornD 2:6d026d5655c5 48 {
Rieks 7:af0c16ae48d7 49
JornD 5:77929f5f1f32 50 }
JornD 2:6d026d5655c5 51
JornD 5:77929f5f1f32 52 void Run_MovementIdle(void)
JornD 5:77929f5f1f32 53 {
JornD 5:77929f5f1f32 54
JornD 5:77929f5f1f32 55 }
JornD 5:77929f5f1f32 56
JornD 5:77929f5f1f32 57 void Run_CalibrationIdle(void)
JornD 5:77929f5f1f32 58 {
JornD 5:77929f5f1f32 59
JornD 5:77929f5f1f32 60 }
JornD 5:77929f5f1f32 61
JornD 5:77929f5f1f32 62 void Run_Startup(void)
JornD 5:77929f5f1f32 63 {
JornD 5:77929f5f1f32 64
JornD 2:6d026d5655c5 65 }
JornD 2:6d026d5655c5 66
JornD 5:77929f5f1f32 67 void Run_CalibrationPhysical(void)
JornD 2:6d026d5655c5 68 {
JornD 5:77929f5f1f32 69
JornD 5:77929f5f1f32 70 }
JornD 2:6d026d5655c5 71
JornD 5:77929f5f1f32 72 void Run_CalibrationEMG(void)
JornD 5:77929f5f1f32 73 {
JornD 5:77929f5f1f32 74
JornD 2:6d026d5655c5 75 }
JornD 2:6d026d5655c5 76
JornD 5:77929f5f1f32 77 void Run_Move(void)
JornD 5:77929f5f1f32 78 {
JornD 5:77929f5f1f32 79
JornD 5:77929f5f1f32 80 }
JornD 5:77929f5f1f32 81
JornD 5:77929f5f1f32 82 void Run_TiltCup(void)
JornD 5:77929f5f1f32 83 {
JornD 5:77929f5f1f32 84
JornD 5:77929f5f1f32 85 }
JornD 5:77929f5f1f32 86
JornD 5:77929f5f1f32 87 void Run_FailState(void)
Rieks 6:41b02057fc2c 88 {
Rieks 7:af0c16ae48d7 89
JornD 5:77929f5f1f32 90 }
JornD 5:77929f5f1f32 91
JornD 5:77929f5f1f32 92 //State Machine
JornD 2:6d026d5655c5 93 void StateMachine(void)
JornD 2:6d026d5655c5 94 {
JornD 8:ccd58f78b5cb 95 //Turn off all LEDs
JornD 8:ccd58f78b5cb 96 ledr = true;
JornD 8:ccd58f78b5cb 97 ledg = true;
JornD 8:ccd58f78b5cb 98 ledb = true;
JornD 8:ccd58f78b5cb 99
JornD 2:6d026d5655c5 100 switch(CurrentState)
JornD 2:6d026d5655c5 101 {
JornD 2:6d026d5655c5 102 case Demo:
JornD 2:6d026d5655c5 103 Run_Demo;
Rieks 7:af0c16ae48d7 104 ledcolor='t';
JornD 2:6d026d5655c5 105 break;
JornD 5:77929f5f1f32 106 case MovementIdle:
Rieks 6:41b02057fc2c 107 Run_MovementIdle;
Rieks 7:af0c16ae48d7 108 ledcolor='b';
JornD 5:77929f5f1f32 109 break;
JornD 5:77929f5f1f32 110 case CalibrationIdle:
JornD 5:77929f5f1f32 111 Run_CalibrationIdle;
Rieks 7:af0c16ae48d7 112 ledcolor='b';
JornD 5:77929f5f1f32 113 break;
JornD 5:77929f5f1f32 114 case Startup;
Rieks 6:41b02057fc2c 115 Run_Startup;
Rieks 7:af0c16ae48d7 116 ledcolor='b';
JornD 5:77929f5f1f32 117 break;
JornD 5:77929f5f1f32 118 case CalibrationPhysical:
JornD 5:77929f5f1f32 119 Run_CalibrationPhysical;
Rieks 7:af0c16ae48d7 120 ledcolor='g';
JornD 5:77929f5f1f32 121 break;
JornD 5:77929f5f1f32 122 case CalibrationEMG:
JornD 5:77929f5f1f32 123 Run_CalibrationEMG;
Rieks 7:af0c16ae48d7 124 ledcolor='g';
JornD 5:77929f5f1f32 125 break;
JornD 5:77929f5f1f32 126 case Move:
JornD 5:77929f5f1f32 127 Run_Move;
Rieks 7:af0c16ae48d7 128 ledcolor='p';
JornD 5:77929f5f1f32 129 break;
JornD 5:77929f5f1f32 130 case TiltCup:
JornD 5:77929f5f1f32 131 Run_TiltCup;
Rieks 7:af0c16ae48d7 132 ledcolor='t';
JornD 5:77929f5f1f32 133 break;
JornD 5:77929f5f1f32 134 case FailState:
JornD 5:77929f5f1f32 135 Run_FailState;
Rieks 7:af0c16ae48d7 136 ledcolor='r';
JornD 2:6d026d5655c5 137 break;
JornD 2:6d026d5655c5 138 }
JornD 2:6d026d5655c5 139 }
JornD 1:a5c1140f464a 140
JornD 5:77929f5f1f32 141 //Main Loop
JornD 8:ccd58f78b5cb 142 void mainloop()
JornD 8:ccd58f78b5cb 143 {
JornD 8:ccd58f78b5cb 144 Statemachine();
JornD 8:ccd58f78b5cb 145 }
JornD 8:ccd58f78b5cb 146
JornD 1:a5c1140f464a 147 int main()
JornD 8:ccd58f78b5cb 148 {
JornD 8:ccd58f78b5cb 149 //Initialize
JornD 8:ccd58f78b5cb 150
JornD 8:ccd58f78b5cb 151 Tick_Blinky.attach(FlipLED,1);
JornD 5:77929f5f1f32 152 CurrentState = Startup;
JornD 8:ccd58f78b5cb 153
JornD 1:a5c1140f464a 154 while(true)
JornD 1:a5c1140f464a 155 {
JornD 8:ccd58f78b5cb 156
JornD 1:a5c1140f464a 157 }
JornD 1:a5c1140f464a 158 }