Corrected header file include guards.

Dependencies:   FiniteStateMachine HipControl Knee LinearBlend1 LocalFileSystem_Read dataComm hapticFeedback initExoVars mbed Blend_Generator Brad_poly_gait Gait_Generator MM_gait Encoders IMUdriver

Fork of Motion Control by HEL's Angels

Committer:
mzling
Date:
Thu Mar 12 20:59:08 2015 +0000
Revision:
15:3596b7ca1c20
Parent:
14:8929f5a9837c
Child:
16:e69f063a2068
Printing dataIn

Who changed what in which revision?

UserRevisionLine numberNew contents of line
perr1940 0:d38d627c922f 1 /**************************************
perr1940 0:d38d627c922f 2 This is the main file for the "RyanEXO" control software.
perr1940 0:d38d627c922f 3 This sets up the main control loop that operates at a 1kHz frequency
perr1940 0:d38d627c922f 4 and controls the flow of the rest of the software
perr1940 0:d38d627c922f 5
perr1940 0:d38d627c922f 6 The configuration for the exo system that this software runs:
perr1940 0:d38d627c922f 7 amplifiers: 2 Copley Controls 10A digital amplifiers
perr1940 0:d38d627c922f 8 sensors: 2 Austria Microsystems 12 bit magnetic encoders, handled by encoders.h
perr1940 0:d38d627c922f 9 motors: 2 maxon EC90 DC brushless motors, handled by HipMotorControl.h (called in FSM.h)
perr1940 0:d38d627c922f 10 Knees: wrap spring clutch controlled by Firgelli PQ12P linear actuators, controlled in linearActuatorControl.h
cashdollar 3:9719ad064a2c 11 **************************************/
perr1940 0:d38d627c922f 12
perr1940 0:d38d627c922f 13 #include "mbed.h"
perr1940 0:d38d627c922f 14 #include "initExoVars.h"
perr1940 0:d38d627c922f 15 #include "FSM.h"
perr1940 2:89b78367d173 16 #include "dataBedComm.h"
mzling 13:c588cb388240 17 #include "dataComm.h"
mzling 13:c588cb388240 18
mzling 13:c588cb388240 19 dataComm *dc = new dataComm();
mzling 13:c588cb388240 20 short int dataIn[32];
mzling 13:c588cb388240 21 short int dataOut[]={0xFF,30,31,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xFE};
cashdollar 3:9719ad064a2c 22
mzling 15:3596b7ca1c20 23 union short_or_char {
mzling 15:3596b7ca1c20 24 char c[2];
mzling 15:3596b7ca1c20 25 short s;
mzling 15:3596b7ca1c20 26 } short_or_char;
mzling 15:3596b7ca1c20 27
mzling 15:3596b7ca1c20 28 //short_or_char soc;
mzling 15:3596b7ca1c20 29
mzling 15:3596b7ca1c20 30
perr1940 0:d38d627c922f 31 ///////////////////////////////////////////////////////////////////////////
cashdollar 3:9719ad064a2c 32
cashdollar 3:9719ad064a2c 33 // periodicFcns runs at the start of every control loop cycle
cashdollar 3:9719ad064a2c 34 // It initiates communication with dataBed, checks for errors/safety, and starts the FSM
perr1940 0:d38d627c922f 35 void periodicFcns()
perr1940 0:d38d627c922f 36 {
mzling 15:3596b7ca1c20 37
perr1940 2:89b78367d173 38 dataOut[1]=encoder_L.readRaw();
cashdollar 5:498c9bfc56f0 39 dataOut[2]=fsm.error();
mzling 13:c588cb388240 40 int* ptr=(int*)dataIn;
mzling 14:8929f5a9837c 41 ptr=sendData((int*)dataOut, 21, (int*)dataIn);
mzling 15:3596b7ca1c20 42 //dc->process_write((char*)dataIn,21);
mzling 15:3596b7ca1c20 43
mzling 15:3596b7ca1c20 44 dc->process_write(dataIn, 21);
cashdollar 3:9719ad064a2c 45
perr1940 7:d44555be84b7 46 //pc.printf("%d, %d, %d, %d,", dataIn[0], dataIn[1], dataIn[2], dataIn[3]);
cashdollar 3:9719ad064a2c 47
cashdollar 3:9719ad064a2c 48 // Run state change/analysis in FSM
mzling 15:3596b7ca1c20 49 //int exoState=fsm.state(dataIn[1]);
cashdollar 3:9719ad064a2c 50
perr1940 0:d38d627c922f 51 }
perr1940 0:d38d627c922f 52
perr1940 0:d38d627c922f 53 int main()
perr1940 0:d38d627c922f 54 {
cashdollar 5:498c9bfc56f0 55 pc.printf("\r\nExoStart \r\n");
perr1940 0:d38d627c922f 56 initializeExoIOs();
cashdollar 5:498c9bfc56f0 57 pc.printf("Test\r\n"); // keep for debugging compile errors
perr1940 2:89b78367d173 58
perr1940 0:d38d627c922f 59 pc.printf("Starting exo...\n\r");
cashdollar 5:498c9bfc56f0 60
perr1940 0:d38d627c922f 61 //If desired, a startup sound can be played. This function is defined in the DatabedCode, because it will command a sound to be played once it detects a heartbeat from ControlBed
perr1940 0:d38d627c922f 62 wait(2);
cashdollar 5:498c9bfc56f0 63
perr1940 0:d38d627c922f 64 Ticker doControl;
mzling 14:8929f5a9837c 65 dataBedSPI.format(16,0);
perr1940 0:d38d627c922f 66 doControl.attach(&periodicFcns, SAMPLE_TIME);
perr1940 0:d38d627c922f 67
perr1940 0:d38d627c922f 68 while (1);
perr1940 0:d38d627c922f 69 }