Projet Drone de surveillance du labo TRSE (INGESUP)
Dependencies: mbed PID ADXL345 Camera_LS_Y201 ITG3200 RangeFinder mbos xbee_lib Motor Servo
Diff: main.cpp
- Revision:
- 34:4466839f5bb7
- Parent:
- 33:f85d47baaeb4
- Child:
- 35:95cb34636703
--- a/main.cpp Sat Apr 27 11:29:23 2013 +0000 +++ b/main.cpp Wed Mar 19 09:18:53 2014 +0000 @@ -21,25 +21,27 @@ #include "mbed.h" #include "mbos.h" #include "Module_Communication.h" +#include "Module_Mouvement.h" #include "os.h" -void task1(void); // task function prototypes -void task2(void); +//void task1(void); // task function prototypes +//void task2(void); -DigitalOut led1(LED1); +/*DigitalOut led1(LED1); DigitalOut led2(LED2); -DigitalOut led3(LED3); -mbos os(2, 2); // Instantiate mbos with 7 tasks & 7 timer +DigitalOut led3(LED3);*/ +mbos os(3, 2); // Instantiate mbos with 7 tasks & 7 timer int main(void) { - + //exemple d'utilisation du système d'exploitation : // 1 création des tâches - os.CreateTask(TASK_COM, TASK_COM_PRIO, TASK_COM_STACK_SZ, task1); - os.CreateTask(TASK_DETEC, TASK_DETEC_PRIO, TASK_DETEC_STACK_SZ, task2); + os.CreateTask(TASK_COM, TASK_COM_PRIO, TASK_COM_STACK_SZ, moduleCommunicationReception); + os.CreateTask(TASK_MOUV, TASK_MOUV_PRIO, TASK_MOUV_STACK_SZ, ModuleMouvement_Task); + os.CreateTask(TASK_ENVOI, TASK_ENVOI_PRIO, TASK_ENVOI_STACK_SZ, moduleCommunicationEnvoi); /*os.CreateTask(TASK_MOUV, TASK_MOUV_PRIO, TASK_MOUV_STACK_SZ, task1); os.CreateTask(TASK_TRAJ, TASK_TRAJ_PRIO, TASK_TRAJ_STACK_SZ, task2); os.CreateTask(TASK_BATT, TASK_BATT_PRIO, TASK_BATT_STACK_SZ, task1); @@ -47,7 +49,7 @@ os.CreateTask(TASK_ARRET_URGENT, TASK_ARRET_URGENT_PRIO, TASK_ARRET_URGENT_STACK_SZ, task1);*/ os.CreateTimer(TIMER_COM_ID, TASK_COM, TIMER_EVENT); - os.CreateTimer(TIMER_DETEC_ID, TASK_DETEC, TIMER_EVENT); + os.CreateTimer(TIMER_MOUV_ID, TASK_MOUV, TIMER_EVENT); /*os.CreateTimer(TIMER_MOUV_ID, TIMER_MOUV_PERIOD, TIMER_MOUV_EVENT); os.CreateTimer(TIMER_BATT_ID, TIMER_BATT_PERIOD, TIMER_BATT_EVENT); os.CreateTimer(TIMER_VIDEO_ID, TIMER_VIDEO_PERIOD, TIMER_VIDEO_EVENT); @@ -70,7 +72,7 @@ * */ -void task1(void) +/*void task1(void) { os.SetTimer(TIMER_COM_ID, TIMER_COM_PERIOD, TIMER_COM_PERIOD); while(1){ @@ -78,13 +80,13 @@ led1 = !led1; os.SetEvent(COMMUNICATION_EVENT, TASK_DETEC); } -} +}*/ -void task2(void) +/*void task2(void) { os.SetTimer(TIMER_DETEC_ID, TIMER_DETEC_PERIOD, TIMER_DETEC_PERIOD); while(1){ - os.WaitEvent(TIMER_EVENT | COMMUNICATION_EVENT); //Attention : la methode WaitEvent réinitialise les évènements à 0 + os.WaitEvent(TIMER_EVENT | COMMUNICATION_EVENT); //Attention : la methode WaitEvent réinitialise les évènements à 0*/ /*switch(os.GetEvent()){ // Avec un switch on ne traite qu'un seul évènement reçu. Il y a risque de ne pas traiter tous les évènements reçus. case TIMER_EVENT: led2 = !led2; @@ -95,7 +97,7 @@ }*/ //Le Test de chaque flag d'évènement permet de tous les traiter. Au maximum, une tâche peut ainsi traiter 8 évènement, correspondant à chaque flag d'un octet - if(os.GetEvent() & TIMER_EVENT) led2 = !led2; + /*if(os.GetEvent() & TIMER_EVENT) led2 = !led2; if(os.GetEvent() & COMMUNICATION_EVENT) led3 = !led3; } -} +}*/