Dependencies: biquadFilter FastPWM HIDScope MODSERIAL mbed
Fork of StateMachine by
main.cpp@2:d70795e4e0bf, 2018-10-31 (annotated)
- 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?
User | Revision | Line number | New 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 | } |