TRR2018 omar

Dependencies:   mbed

Fork of biniou by TRR 2018

stateMachines.cpp

Committer:
GaspardD
Date:
2018-08-23
Revision:
3:03ea98f5b2e4
Parent:
2:fd0ffe46a87d
Child:
8:1d8c3ca5e508

File content as of revision 3:03ea98f5b2e4:

#include <stdint.h>

#define MODE_SUIVI_MUR_DROIT 1
#define MODE_SUIVI_MUR_GAUCHE 2
#define MODE_COURSE 4

#define DRIFT_ENABLED 1
#define DRIFT_OFF 1

#define NB_ECHANTILLONS_IR 3
#define NB_ECHANTILLONS_US 3
#define NB_CAPTEURS_VECTORISATION 3

static int mode_courant = MODE_COURSE; // mettre en define pour la compilation ? ou régler via télécommande ?

int fifo_dists_ir[NB_CAPTEURS_VECTORISATION][NB_ECHANTILLONS_IR];//buffer tournant des mesures sur lesquelles ont fait une moyenne
int dist_obstacle_us[NB_ECHANTILLONS_US];//buffer tournant
int index_fifo_ir = 0;//pour géreer le buffer tournant
int index_fifo_us = 0;
int position = 0;
int vitesse = 0;

//change en mode course uniquement 1 réglage de PID par SECTION
typedef enum{
    ARRET,
    LIGNE_DROITE,//PID ligne
    CHICANE_D,//PID murs
    CHICANE_G,
    EPINGLE_D,//PID epingle
    EPINGLE_G,
    ARRIVEE
}SECTION_ST;


typedef eneum
{
    MURS_ABSENTS,
    MUR_G_OK,
    MUR_D_OK,
    MUR_GD_OK
}MUR_ST

typedef eneum
{
    RISQUE_COLLISION,
    EVITEMENT_D,
    EVITEMENT_G,
    FREINAGE_URG,
    CLEAR
}OBSTACLE_ST
    
void murs_init();
void murs_update();
void murs_output();

void obstacle_init();
void obstacle_update();
void obstacle_output();

void section_init();
void section_update();
void section_output();