Projet_S5 / Mbed 2 deprecated Repo_Noeud_Mobile_refactor

Dependencies:   mbed-rtos mbed

Fork of Repo_Noeud_Mobile by Projet_S5

Committer:
llarose
Date:
Thu Mar 05 19:04:27 2015 +0000
Revision:
3:a77d02cb5694
Parent:
1:601d2922ff06
Child:
5:2b539028e5a9
Child:
16:982409595a7a
CountDown, Cibles

Who changed what in which revision?

UserRevisionLine numberNew contents of line
llarose 1:601d2922ff06 1 /* S5 Projet - Conception d'un systeme embarque reseaute
llarose 1:601d2922ff06 2 * main.cpp
llarose 1:601d2922ff06 3 *
llarose 1:601d2922ff06 4 * @author Equipe de projet 2
llarose 1:601d2922ff06 5 *
llarose 1:601d2922ff06 6 */
llarose 1:601d2922ff06 7 #include "mbed.h"
llarose 1:601d2922ff06 8 #include "rtos.h"
llarose 1:601d2922ff06 9 #include "FlexSensor.h"
llarose 1:601d2922ff06 10 #include "CountDown.h"
llarose 3:a77d02cb5694 11 #include "Cible.h"
llarose 1:601d2922ff06 12
llarose 1:601d2922ff06 13 #define GO 0x01
llarose 1:601d2922ff06 14
llarose 1:601d2922ff06 15 enum GameMode { GUNNER, RPS, AirGuitar};
llarose 1:601d2922ff06 16
llarose 1:601d2922ff06 17 //PROTOTYPES DE FONCTION
llarose 1:601d2922ff06 18 void gunner(void const* args);
llarose 1:601d2922ff06 19 void rps(void const* args);
llarose 1:601d2922ff06 20 void airGuitar(void const* args);
llarose 1:601d2922ff06 21
llarose 1:601d2922ff06 22 FlexSensor index(DIGITAL, p15); // flex sensor 1.
llarose 1:601d2922ff06 23 FlexSensor majeur(DIGITAL, p16); // flex sensor 2.
llarose 1:601d2922ff06 24 FlexSensor annulaire(DIGITAL, p17); // flex sensor 3.
llarose 1:601d2922ff06 25 CountDown countDown;
llarose 1:601d2922ff06 26
llarose 1:601d2922ff06 27 Thread* gunner_thread_ptr = NULL;
llarose 1:601d2922ff06 28 Thread* rps_thread_ptr = NULL;
llarose 1:601d2922ff06 29 Thread* airguitar_thread_ptr = NULL;
llarose 1:601d2922ff06 30
llarose 1:601d2922ff06 31 int main(void const* args)
llarose 1:601d2922ff06 32 {
llarose 3:a77d02cb5694 33 GameMode mode(GUNNER);
llarose 1:601d2922ff06 34 switch(mode)
llarose 1:601d2922ff06 35 {
llarose 1:601d2922ff06 36 case GUNNER:
llarose 1:601d2922ff06 37 gunner_thread_ptr = new Thread(gunner);
llarose 1:601d2922ff06 38 break;
llarose 1:601d2922ff06 39 case RPS:
llarose 1:601d2922ff06 40 rps_thread_ptr = new Thread(rps);
llarose 1:601d2922ff06 41 break;
llarose 1:601d2922ff06 42 case AirGuitar:
llarose 1:601d2922ff06 43 airguitar_thread_ptr = new Thread(airGuitar);
llarose 1:601d2922ff06 44 break;
llarose 1:601d2922ff06 45 default:
llarose 1:601d2922ff06 46 break;
llarose 1:601d2922ff06 47 }
llarose 1:601d2922ff06 48 }
llarose 1:601d2922ff06 49
llarose 1:601d2922ff06 50 void gunner(void const* args)
llarose 1:601d2922ff06 51 {
llarose 1:601d2922ff06 52 // local variables
llarose 3:a77d02cb5694 53 Cible* cible = new Cible();
llarose 3:a77d02cb5694 54 countDown.run();
llarose 1:601d2922ff06 55
llarose 1:601d2922ff06 56 while(true)
llarose 1:601d2922ff06 57 {
llarose 3:a77d02cb5694 58 // Thread::signal_wait(GO);
llarose 3:a77d02cb5694 59 cible->reset();
llarose 3:a77d02cb5694 60 int target = rand() % 3;
llarose 3:a77d02cb5694 61
llarose 3:a77d02cb5694 62 cible->set(target);
llarose 3:a77d02cb5694 63 countDown.run();
llarose 1:601d2922ff06 64 }
llarose 1:601d2922ff06 65 }
llarose 1:601d2922ff06 66
llarose 1:601d2922ff06 67 void rps(void const* args)
llarose 1:601d2922ff06 68 {
llarose 1:601d2922ff06 69 // local variables
llarose 1:601d2922ff06 70
llarose 1:601d2922ff06 71 while(true)
llarose 1:601d2922ff06 72 {
llarose 1:601d2922ff06 73 Thread::signal_wait(GO);
llarose 1:601d2922ff06 74 // code...
llarose 1:601d2922ff06 75 }
llarose 1:601d2922ff06 76 }
llarose 1:601d2922ff06 77
llarose 1:601d2922ff06 78 void airGuitar(void const* args)
llarose 1:601d2922ff06 79 {
llarose 1:601d2922ff06 80 // local variables
llarose 1:601d2922ff06 81
llarose 1:601d2922ff06 82 while(true)
llarose 1:601d2922ff06 83 {
llarose 1:601d2922ff06 84 Thread::signal_wait(GO);
llarose 1:601d2922ff06 85 // code...
llarose 1:601d2922ff06 86 }
llarose 1:601d2922ff06 87 }
llarose 1:601d2922ff06 88
llarose 1:601d2922ff06 89