State machine with EMG functions and parameters

Dependencies:   biquadFilter FastPWM HIDScope MODSERIAL mbed

Fork of StateMachine by Tommie Verouden

Committer:
tverouden
Date:
Wed Oct 31 11:21:16 2018 +0000
Revision:
2:d70795e4e0bf
Parent:
1:d5ff787228fa
Child:
3:9c63fc5f157e
PC-communication now working;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tverouden 0:c0c35b95765f 1 // ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ PREPARATION ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
tverouden 0:c0c35b95765f 2 // Libraries
tverouden 0:c0c35b95765f 3 #include "mbed.h"
tverouden 2:d70795e4e0bf 4 #include "BiQuad.h"
tverouden 0:c0c35b95765f 5 #include "FastPWM.h"
tverouden 0:c0c35b95765f 6 #include "HIDScope.h"
tverouden 0:c0c35b95765f 7 #include "MODSERIAL.h"
tverouden 0:c0c35b95765f 8
tverouden 0:c0c35b95765f 9 // Inputs & outputs
tverouden 0:c0c35b95765f 10 DigitalOut redled(LED_RED,1); // red LED K64F
tverouden 0:c0c35b95765f 11 DigitalOut greenled(LED_GREEN,1); // green LED K64F
tverouden 0:c0c35b95765f 12 DigitalOut blueled(LED_BLUE,1); // blue LED K64F
tverouden 0:c0c35b95765f 13 InterruptIn buttonbio1(D0); // button 1 BioRobotics shield
tverouden 0:c0c35b95765f 14 InterruptIn buttonbio2(D1); // button 2 BioRobotics shield
tverouden 0:c0c35b95765f 15 InterruptIn buttonK64F(SW3); // button on K64F
tverouden 0:c0c35b95765f 16 InterruptIn emergencybutton(SW2); // emergency button on K64F
tverouden 0:c0c35b95765f 17
tverouden 0:c0c35b95765f 18 // Define & initialise state machine
tverouden 0:c0c35b95765f 19 enum states { waiting, calibratingMotors, calibratingEMGx, calibratingEMGy,
tverouden 2:d70795e4e0bf 20 homing, operating, flipping, failure, demo
tverouden 2:d70795e4e0bf 21 };
tverouden 0:c0c35b95765f 22 states currentState = waiting; // start in waiting mode
tverouden 2:d70795e4e0bf 23 bool changeState = true; // initialise the first state
tverouden 2:d70795e4e0bf 24
tverouden 2:d70795e4e0bf 25 // ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ STATE MACHINE ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
tverouden 2:d70795e4e0bf 26
tverouden 2:d70795e4e0bf 27 // ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ MAIN LOOP ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
tverouden 2:d70795e4e0bf 28
tverouden 2:d70795e4e0bf 29 int main() {
tverouden 2:d70795e4e0bf 30 // ============================== PC-COMMUNICATION =============================
tverouden 2:d70795e4e0bf 31 bool externalPC = true;
tverouden 2:d70795e4e0bf 32 if (externalPC) {
tverouden 2:d70795e4e0bf 33 MODSERIAL pc(USBTX, USBRX); // communication with pc
tverouden 2:d70795e4e0bf 34 }
tverouden 2:d70795e4e0bf 35 // ==================================== LOOP ===================================
tverouden 2:d70795e4e0bf 36 while (true) { // loop forever
tverouden 2:d70795e4e0bf 37
tverouden 2:d70795e4e0bf 38 }
tverouden 2:d70795e4e0bf 39 }