Projet Drone de surveillance du labo TRSE (INGESUP)

Dependencies:   mbed PID ADXL345 Camera_LS_Y201 ITG3200 RangeFinder mbos xbee_lib Motor Servo

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?

UserRevisionLine numberNew 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 */