Laurence B
/
State_machine
test
Fork of State_machine by
main.cpp@0:65476dd9173d, 2018-10-22 (annotated)
- Committer:
- R_Schrijver
- Date:
- Mon Oct 22 14:36:33 2018 +0000
- Revision:
- 0:65476dd9173d
- Child:
- 1:fc6a544d77d9
Start of the coding;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
R_Schrijver | 0:65476dd9173d | 1 | #include "mbed.h" |
R_Schrijver | 0:65476dd9173d | 2 | ticker update; |
R_Schrijver | 0:65476dd9173d | 3 | InterruptIn DemoButton(button...); |
R_Schrijver | 0:65476dd9173d | 4 | InterruptIn EMGCalibrationButton(Button...); |
R_Schrijver | 0:65476dd9173d | 5 | InterruptIn MotorCalibration(Button...); |
R_Schrijver | 0:65476dd9173d | 6 | |
R_Schrijver | 0:65476dd9173d | 7 | // Inputs |
R_Schrijver | 0:65476dd9173d | 8 | AnalogIn EMGIn1Biceps(...); |
R_Schrijver | 0:65476dd9173d | 9 | AnalogIn EMGIn1Triceps(...); |
R_Schrijver | 0:65476dd9173d | 10 | AnalogIn EMGIn2Bicepcs(...); |
R_Schrijver | 0:65476dd9173d | 11 | AnalogIn EMGIn2Triceps(...); |
R_Schrijver | 0:65476dd9173d | 12 | |
R_Schrijver | 0:65476dd9173d | 13 | |
R_Schrijver | 0:65476dd9173d | 14 | //Define variables |
R_Schrijver | 0:65476dd9173d | 15 | float xPosition; |
R_Schrijver | 0:65476dd9173d | 16 | float yPosition; |
R_Schrijver | 0:65476dd9173d | 17 | float |
R_Schrijver | 0:65476dd9173d | 18 | |
R_Schrijver | 0:65476dd9173d | 19 | |
R_Schrijver | 0:65476dd9173d | 20 | |
R_Schrijver | 0:65476dd9173d | 21 | |
R_Schrijver | 0:65476dd9173d | 22 | |
R_Schrijver | 0:65476dd9173d | 23 | float TickerFrequency = 1000.0; |
R_Schrijver | 0:65476dd9173d | 24 | enum states {MotorCalibration, EMGCalibration, DemoMode, OperationMode, FailureMode, Reset}; |
R_Schrijver | 0:65476dd9173d | 25 | states state = |
R_Schrijver | 0:65476dd9173d | 26 | // button 1; |
R_Schrijver | 0:65476dd9173d | 27 | // button 2; |
R_Schrijver | 0:65476dd9173d | 28 | |
R_Schrijver | 0:65476dd9173d | 29 | |
R_Schrijver | 0:65476dd9173d | 30 | // function: DetermineState |
R_Schrijver | 0:65476dd9173d | 31 | // Switch statement: in each state functions are executed corresponding to the state |
R_Schrijver | 0:65476dd9173d | 32 | // don't forget the breaks |
R_Schrijver | 0:65476dd9173d | 33 | void DetermineState(){ |
R_Schrijver | 0:65476dd9173d | 34 | switch (state) |
R_Schrijver | 0:65476dd9173d | 35 | { |
R_Schrijver | 0:65476dd9173d | 36 | case MotorCalibration: |
R_Schrijver | 0:65476dd9173d | 37 | // Execute some functions |
R_Schrijver | 0:65476dd9173d | 38 | break; |
R_Schrijver | 0:65476dd9173d | 39 | case EMGCalibration: |
R_Schrijver | 0:65476dd9173d | 40 | break; |
R_Schrijver | 0:65476dd9173d | 41 | case DemoMode: |
R_Schrijver | 0:65476dd9173d | 42 | break; |
R_Schrijver | 0:65476dd9173d | 43 | case OperationMode: |
R_Schrijver | 0:65476dd9173d | 44 | break; |
R_Schrijver | 0:65476dd9173d | 45 | case FailureMode: |
R_Schrijver | 0:65476dd9173d | 46 | break; |
R_Schrijver | 0:65476dd9173d | 47 | case Reset: |
R_Schrijver | 0:65476dd9173d | 48 | break; |
R_Schrijver | 0:65476dd9173d | 49 | default: |
R_Schrijver | 0:65476dd9173d | 50 | } |
R_Schrijver | 0:65476dd9173d | 51 | |
R_Schrijver | 0:65476dd9173d | 52 | int main() |
R_Schrijver | 0:65476dd9173d | 53 | { |
R_Schrijver | 0:65476dd9173d | 54 | // Execute 'Wait' |
R_Schrijver | 0:65476dd9173d | 55 | update.attach(DetermineState, 1.0/ TickerFrequency); |
R_Schrijver | 0:65476dd9173d | 56 | //include interrupt for switching the states with a button |
R_Schrijver | 0:65476dd9173d | 57 | while (true){ |
R_Schrijver | 0:65476dd9173d | 58 | } |
R_Schrijver | 0:65476dd9173d | 59 | } |