ajout module_mouvement
Dependencies: mbed xbee_lib ADXL345_I2C IMUfilter ITG3200 Motor RangeFinder Servo mbos PID
Fork of Labo_TRSE_Drone by
main.cpp@6:0e3d95e9885e, 2013-03-20 (annotated)
- Committer:
- Gaetan
- Date:
- Wed Mar 20 11:01:06 2013 +0000
- Revision:
- 6:0e3d95e9885e
- Parent:
- 5:58b31dbee84d
- Child:
- 8:d37c4e566cbf
Ajout des librairies xbee_lib + mbos
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Gaetan | 6:0e3d95e9885e | 1 | /*#include "mbed.h" |
Gaetan | 6:0e3d95e9885e | 2 | #include "mbos.h" |
NicolasH | 0:8d93a5e4e4ab | 3 | |
NicolasH | 0:8d93a5e4e4ab | 4 | DigitalOut myled(LED1); |
NicolasH | 0:8d93a5e4e4ab | 5 | |
NicolasH | 0:8d93a5e4e4ab | 6 | int main() { |
NicolasH | 0:8d93a5e4e4ab | 7 | while(1) { |
NicolasH | 0:8d93a5e4e4ab | 8 | myled = 1; |
NicolasH | 0:8d93a5e4e4ab | 9 | wait(0.2); |
NicolasH | 0:8d93a5e4e4ab | 10 | myled = 0; |
NicolasH | 0:8d93a5e4e4ab | 11 | wait(0.2); |
NicolasH | 0:8d93a5e4e4ab | 12 | } |
Gaetan | 6:0e3d95e9885e | 13 | }*/ |
Gaetan | 6:0e3d95e9885e | 14 | #include "mbed.h" |
Gaetan | 6:0e3d95e9885e | 15 | #include "mbos.h" |
Gaetan | 6:0e3d95e9885e | 16 | |
Gaetan | 6:0e3d95e9885e | 17 | #define TASK1_ID 1 // Id for task 1 (idle task is 0) |
Gaetan | 6:0e3d95e9885e | 18 | #define TASK1_PRIO 50 // priority for task 1 |
Gaetan | 6:0e3d95e9885e | 19 | #define TASK1_STACK_SZ 32 // stack size for task 1 in words |
Gaetan | 6:0e3d95e9885e | 20 | #define TASK2_ID 2 // Id for task 2 |
Gaetan | 6:0e3d95e9885e | 21 | #define TASK2_PRIO 60 // priority for task 2 |
Gaetan | 6:0e3d95e9885e | 22 | #define TASK2_STACK_SZ 32 // stack size for task 2 in words |
Gaetan | 6:0e3d95e9885e | 23 | #define TIMER0_ID 0 // Id for timer 0 |
Gaetan | 6:0e3d95e9885e | 24 | #define TIMER0_PERIOD 1000 // Time period in milliseconds |
Gaetan | 6:0e3d95e9885e | 25 | #define TIMER0_EVENT 1 // Event flag (1 << 0) |
Gaetan | 6:0e3d95e9885e | 26 | #define T1_TO_T2_EVENT 2 // Event flag (1 << 1) |
Gaetan | 6:0e3d95e9885e | 27 | |
Gaetan | 6:0e3d95e9885e | 28 | void task1(void); // task function prototypes |
Gaetan | 6:0e3d95e9885e | 29 | void task2(void); |
Gaetan | 6:0e3d95e9885e | 30 | |
Gaetan | 6:0e3d95e9885e | 31 | DigitalOut led1(LED1); |
Gaetan | 6:0e3d95e9885e | 32 | DigitalOut led2(LED2); |
Gaetan | 6:0e3d95e9885e | 33 | mbos os(2, 1); // Instantiate mbos with 2 tasks & 1 timer |
Gaetan | 6:0e3d95e9885e | 34 | |
Gaetan | 6:0e3d95e9885e | 35 | int main(void) |
Gaetan | 6:0e3d95e9885e | 36 | { |
Gaetan | 6:0e3d95e9885e | 37 | // Configure tasks and timers |
Gaetan | 6:0e3d95e9885e | 38 | os.CreateTask(TASK1_ID, TASK1_PRIO, TASK1_STACK_SZ, task1); |
Gaetan | 6:0e3d95e9885e | 39 | os.CreateTask(TASK2_ID, TASK2_PRIO, TASK2_STACK_SZ, task2); |
Gaetan | 6:0e3d95e9885e | 40 | os.CreateTimer(TIMER0_ID, TIMER0_EVENT, TASK1_ID); |
Gaetan | 6:0e3d95e9885e | 41 | // Start mbos |
Gaetan | 6:0e3d95e9885e | 42 | os.Start(); |
Gaetan | 6:0e3d95e9885e | 43 | // never return! |
NicolasH | 0:8d93a5e4e4ab | 44 | } |
Gaetan | 6:0e3d95e9885e | 45 | |
Gaetan | 6:0e3d95e9885e | 46 | void task1(void) |
Gaetan | 6:0e3d95e9885e | 47 | { |
Gaetan | 6:0e3d95e9885e | 48 | os.SetTimer(TIMER0_ID, TIMER0_PERIOD, TIMER0_PERIOD); |
Gaetan | 6:0e3d95e9885e | 49 | while(1){ |
Gaetan | 6:0e3d95e9885e | 50 | os.WaitEvent(TIMER0_EVENT); |
Gaetan | 6:0e3d95e9885e | 51 | led1 = !led1; |
Gaetan | 6:0e3d95e9885e | 52 | os.SetEvent(T1_TO_T2_EVENT, TASK2_ID); |
Gaetan | 6:0e3d95e9885e | 53 | } |
Gaetan | 6:0e3d95e9885e | 54 | } |
Gaetan | 6:0e3d95e9885e | 55 | |
Gaetan | 6:0e3d95e9885e | 56 | void task2(void) |
Gaetan | 6:0e3d95e9885e | 57 | { |
Gaetan | 6:0e3d95e9885e | 58 | while(1){ |
Gaetan | 6:0e3d95e9885e | 59 | os.WaitEvent(T1_TO_T2_EVENT); |
Gaetan | 6:0e3d95e9885e | 60 | led2 = 1; |
Gaetan | 6:0e3d95e9885e | 61 | wait_ms(100); |
Gaetan | 6:0e3d95e9885e | 62 | led2 = 0; |
Gaetan | 6:0e3d95e9885e | 63 | } |
Gaetan | 6:0e3d95e9885e | 64 | } |
Gaetan | 6:0e3d95e9885e | 65 | /*@endcode |
Gaetan | 6:0e3d95e9885e | 66 | */ |