DP
Dependencies: FastAnalogIn mbed-rtos mbed
threads.h@0:f3b355df6f26, 2015-04-26 (annotated)
- Committer:
- romankrej
- Date:
- Sun Apr 26 13:14:02 2015 +0000
- Revision:
- 0:f3b355df6f26
Diplomova prace 2015
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
romankrej | 0:f3b355df6f26 | 1 | #ifndef _COMMON_H |
romankrej | 0:f3b355df6f26 | 2 | #define _COMMON_H |
romankrej | 0:f3b355df6f26 | 3 | |
romankrej | 0:f3b355df6f26 | 4 | |
romankrej | 0:f3b355df6f26 | 5 | #include "mbed.h" |
romankrej | 0:f3b355df6f26 | 6 | #include "rtos.h" |
romankrej | 0:f3b355df6f26 | 7 | #include "can.h" |
romankrej | 0:f3b355df6f26 | 8 | #include "ultrasonic.h" |
romankrej | 0:f3b355df6f26 | 9 | #include "ledsensor.h" |
romankrej | 0:f3b355df6f26 | 10 | #include "control.h" |
romankrej | 0:f3b355df6f26 | 11 | #include "print.h" |
romankrej | 0:f3b355df6f26 | 12 | |
romankrej | 0:f3b355df6f26 | 13 | /* PROGRAM MODES */ |
romankrej | 0:f3b355df6f26 | 14 | #define WAITING 0x01 |
romankrej | 0:f3b355df6f26 | 15 | #define STARTING 0x02 |
romankrej | 0:f3b355df6f26 | 16 | #define RUNNING 0x03 |
romankrej | 0:f3b355df6f26 | 17 | #define STOP 0x04 |
romankrej | 0:f3b355df6f26 | 18 | |
romankrej | 0:f3b355df6f26 | 19 | |
romankrej | 0:f3b355df6f26 | 20 | #define ULTRA 0 |
romankrej | 0:f3b355df6f26 | 21 | #define LASER 1 |
romankrej | 0:f3b355df6f26 | 22 | |
romankrej | 0:f3b355df6f26 | 23 | |
romankrej | 0:f3b355df6f26 | 24 | #define PID 0 |
romankrej | 0:f3b355df6f26 | 25 | #define ST_FEEDBACK 1 |
romankrej | 0:f3b355df6f26 | 26 | |
romankrej | 0:f3b355df6f26 | 27 | typedef struct states_t { |
romankrej | 0:f3b355df6f26 | 28 | float phi1; |
romankrej | 0:f3b355df6f26 | 29 | float omega1; |
romankrej | 0:f3b355df6f26 | 30 | float phi2; |
romankrej | 0:f3b355df6f26 | 31 | float omega2; |
romankrej | 0:f3b355df6f26 | 32 | float current; |
romankrej | 0:f3b355df6f26 | 33 | } states_t; |
romankrej | 0:f3b355df6f26 | 34 | |
romankrej | 0:f3b355df6f26 | 35 | |
romankrej | 0:f3b355df6f26 | 36 | |
romankrej | 0:f3b355df6f26 | 37 | extern InterruptIn butOff; |
romankrej | 0:f3b355df6f26 | 38 | |
romankrej | 0:f3b355df6f26 | 39 | extern cUltrasonic us100; |
romankrej | 0:f3b355df6f26 | 40 | extern cCan can; |
romankrej | 0:f3b355df6f26 | 41 | extern cPrint pc; |
romankrej | 0:f3b355df6f26 | 42 | extern cLedSensor baumer; |
romankrej | 0:f3b355df6f26 | 43 | extern cControl control; |
romankrej | 0:f3b355df6f26 | 44 | |
romankrej | 0:f3b355df6f26 | 45 | extern float K[4]; |
romankrej | 0:f3b355df6f26 | 46 | extern char first; |
romankrej | 0:f3b355df6f26 | 47 | extern states_t states; |
romankrej | 0:f3b355df6f26 | 48 | extern Mutex mutex1; |
romankrej | 0:f3b355df6f26 | 49 | extern char programMode; |
romankrej | 0:f3b355df6f26 | 50 | extern char stisknut; |
romankrej | 0:f3b355df6f26 | 51 | extern char sensor; |
romankrej | 0:f3b355df6f26 | 52 | extern char controller; |
romankrej | 0:f3b355df6f26 | 53 | |
romankrej | 0:f3b355df6f26 | 54 | |
romankrej | 0:f3b355df6f26 | 55 | void stopProg(); |
romankrej | 0:f3b355df6f26 | 56 | |
romankrej | 0:f3b355df6f26 | 57 | |
romankrej | 0:f3b355df6f26 | 58 | /* |
romankrej | 0:f3b355df6f26 | 59 | * Thread for inicialization |
romankrej | 0:f3b355df6f26 | 60 | */ |
romankrej | 0:f3b355df6f26 | 61 | void initThread(void const *args); |
romankrej | 0:f3b355df6f26 | 62 | |
romankrej | 0:f3b355df6f26 | 63 | /* |
romankrej | 0:f3b355df6f26 | 64 | * Thread for led diodes |
romankrej | 0:f3b355df6f26 | 65 | */ |
romankrej | 0:f3b355df6f26 | 66 | void ledThread(void const *args); |
romankrej | 0:f3b355df6f26 | 67 | |
romankrej | 0:f3b355df6f26 | 68 | /* |
romankrej | 0:f3b355df6f26 | 69 | * Thread for ultrasonic sensor |
romankrej | 0:f3b355df6f26 | 70 | */ |
romankrej | 0:f3b355df6f26 | 71 | void usThread(void const *args); |
romankrej | 0:f3b355df6f26 | 72 | |
romankrej | 0:f3b355df6f26 | 73 | /* |
romankrej | 0:f3b355df6f26 | 74 | * Thread for baumer sensor |
romankrej | 0:f3b355df6f26 | 75 | */ |
romankrej | 0:f3b355df6f26 | 76 | void laserThread(void const *args); |
romankrej | 0:f3b355df6f26 | 77 | |
romankrej | 0:f3b355df6f26 | 78 | /* |
romankrej | 0:f3b355df6f26 | 79 | * Thread for control |
romankrej | 0:f3b355df6f26 | 80 | */ |
romankrej | 0:f3b355df6f26 | 81 | void controlThread(void const *args); |
romankrej | 0:f3b355df6f26 | 82 | |
romankrej | 0:f3b355df6f26 | 83 | /* |
romankrej | 0:f3b355df6f26 | 84 | * Thread for collect data |
romankrej | 0:f3b355df6f26 | 85 | */ |
romankrej | 0:f3b355df6f26 | 86 | void collectThread(void const *args); |
romankrej | 0:f3b355df6f26 | 87 | |
romankrej | 0:f3b355df6f26 | 88 | /* |
romankrej | 0:f3b355df6f26 | 89 | * Thread for sending synchronization |
romankrej | 0:f3b355df6f26 | 90 | */ |
romankrej | 0:f3b355df6f26 | 91 | void syncThread(void const *args); |
romankrej | 0:f3b355df6f26 | 92 | |
romankrej | 0:f3b355df6f26 | 93 | /* |
romankrej | 0:f3b355df6f26 | 94 | * Thread for print results |
romankrej | 0:f3b355df6f26 | 95 | */ |
romankrej | 0:f3b355df6f26 | 96 | void printThread(void const *args); |
romankrej | 0:f3b355df6f26 | 97 | |
romankrej | 0:f3b355df6f26 | 98 | #endif |