Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
fonction.cpp
- Committer:
- terrier_julien
- Date:
- 2022-06-09
- Revision:
- 1:cfb7e4122e21
- Parent:
- 0:c2a70ac44fd7
File content as of revision 1:cfb7e4122e21:
#include "mbed.h" #include "autre.h" #include "header.h" float distance_laser[8] = {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; Timer temps_de_jeux; Timer launch_time; typedef enum {debut,chasse,ctourne_droite,ctourne_gauche,cvire_gauche,cvire_droite,cavance,vise,tire} type_statut; static type_statut statut = debut; void cerveau(void) { float x; if(temps_de_jeux.read() < 88) { switch (statut) { case debut : init_moteur_propulsion(); init_moteur_balle(); avancer(1); prise_avant(0.5); if(distance_laser[2] < 0.05) statut = vise; break; case chasse : //priorité à droite prise_avant(0.5); vire_droite(1); //si la distance détécté par le laser est bon => case adaptée if (test_presence(1)) statut = cvire_gauche; else if (test_presence(2) && test_presence(3)) statut = cavance; else if (test_presence(4)) statut = cvire_droite; break; case cvire_gauche : //trourne fortement à gauche vire_gauche(1); if(test_presence(1)) statut = ctourne_gauche; break; case cvire_droite : //trourne fortement à droite vire_droite(1); if(test_presence(4)) statut = ctourne_droite; break; case cavance : avancer(1); if(!test_presence(2)) statut = ctourne_droite; else if(!test_presence(3)) statut = ctourne_gauche; else if(distance_laser[2] < 0.05) statut = vise; break; case ctourne_droite : //tourne un peu à droite tourner_droite(1); if(test_presence(3)) statut = cavance; else if(distance_laser[2] < 0.05) statut = vise; break; case ctourne_gauche : //tourne un peu à gauche tourner_gauche(1); if(test_presence(2)) statut = cavance; else if(distance_laser[2] < 0.05) statut = vise; break; case vise : stop(); prise_avant(0); //calcule de math etc x = 0.5; //c'est calculé t'inquiète statut = tire; break; case tire : launch_time.reset(); prise_arriere(x); if(launch_time.read() > 0.5 ) statut = chasse; break; } } else { stop(); //creve_ballon(); } } bool test_presence( int num) { //calcule_coord laser(distance_laser[num]); //if ((Xballe < 4000)|| (Xballe > 0) || (Yballe < 4000) || (Yballe > 0)) return 1; //else return 0; }