Projet Drone de surveillance du labo TRSE (INGESUP)

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

main.cpp

Committer:
Gaetan
Date:
2013-03-20
Revision:
6:0e3d95e9885e
Parent:
5:58b31dbee84d
Child:
8:d37c4e566cbf

File content as of revision 6:0e3d95e9885e:

/*#include "mbed.h"
#include "mbos.h"

DigitalOut myled(LED1);

int main() {
    while(1) {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
    }
}*/
#include "mbed.h"                    
#include "mbos.h"
 
#define TASK1_ID                1       // Id for task 1 (idle task is 0)
#define TASK1_PRIO              50      // priority for task 1
#define TASK1_STACK_SZ          32      // stack size for task 1 in words 
#define TASK2_ID                2       // Id for task 2 
#define TASK2_PRIO              60      // priority for task 2
#define TASK2_STACK_SZ          32      // stack size for task 2 in words 
#define TIMER0_ID               0       // Id for timer 0
#define TIMER0_PERIOD           1000    // Time period in milliseconds
#define TIMER0_EVENT            1       // Event flag (1 << 0)
#define T1_TO_T2_EVENT          2       // Event flag (1 << 1)

void task1(void);                       // task function prototypes
void task2(void);

DigitalOut led1(LED1);
DigitalOut led2(LED2);
mbos os(2, 1);                          // Instantiate mbos with 2 tasks & 1 timer    

int main(void)
{
   // Configure tasks and timers
   os.CreateTask(TASK1_ID, TASK1_PRIO, TASK1_STACK_SZ, task1);
   os.CreateTask(TASK2_ID, TASK2_PRIO, TASK2_STACK_SZ, task2);
   os.CreateTimer(TIMER0_ID, TIMER0_EVENT, TASK1_ID);
    // Start mbos
   os.Start();
    // never  return!
}

void task1(void)
{
    os.SetTimer(TIMER0_ID, TIMER0_PERIOD, TIMER0_PERIOD);
    while(1){
        os.WaitEvent(TIMER0_EVENT);
        led1 = !led1;
        os.SetEvent(T1_TO_T2_EVENT, TASK2_ID);
    }
}

void task2(void)
{
    while(1){
        os.WaitEvent(T1_TO_T2_EVENT);
        led2 = 1;
        wait_ms(100);
        led2 = 0;
   }
}
/*@endcode
 */