Jorn Dokter / Mbed 2 deprecated TEB_branch2

Dependencies:   mbed QEI HIDScope biquadFilter MODSERIAL FastPWM

Committer:
JornD
Date:
Wed Oct 02 07:41:41 2019 +0000
Revision:
9:cb88b16a97d5
Parent:
8:ccd58f78b5cb
Child:
10:ad2da21a102c
Added mainloop ticker

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