Hlimi Omar
/
biniou
TRR2018 omar
Fork of biniou by
stateMachines.cpp
- Committer:
- GaspardD
- Date:
- 2018-09-08
- Revision:
- 9:747fd4a80225
- Parent:
- 8:1d8c3ca5e508
- Child:
- 10:5bf1e6af26c0
File content as of revision 9:747fd4a80225:
#include "states_m.h" #define NB_ECHANTILLONS_IR 4 #define NB_ECHANTILLONS_LIDAR 4 #define CORRECTEUR_P 1; #define CORRECTEUR_I 0; #define CORRECTEUR_D 0; static int mode_courant = ; // mettre en define pour la compilation ? ou régler via télécommande ? uint16_t dist_murGF[NB_ECHANTILLONS_IR];//buffer tournant ir avant gauche pour moyenne uint16_t dist_murGL[NB_ECHANTILLONS_IR];//buffer tournant ir coté gauche pour moyenne uint16_t dist_murDF[NB_ECHANTILLONS_IR];//buffer tournant ir avant droit pour moyenne uint16_t dist_murDL[NB_ECHANTILLONS_IR];//buffer tournant ir coté droit pour moyenne int dist_obstacle_lidar[NB_ECHANTILLONS_LIDAR];//buffer tournant int index_fifo_ir = 0;//pour géreer le buffer tournant int index_fifo_lidar = 0; int tachy_cmps; //Capteurs AnalogIn anaGF(A0);//capteur ir avant gauche 45 deg AnalogIn anaGL(A1);//capteur ir coté gauche AnalogIn anaDF(A2);//capteur ir avant droit 45deg AnalogIn anaDL(A3);//capteur ir coté droit AnalogIn anaDlvvG(A4);//capteur ir avant droit 10 deg AnalogIn anaDlvvD(A5);//capteur ir coté droit 10 deg AnalogIn anaDlvvFront(A6);//capteur ir avant Serial device(A4,A5); // tx, rx capteur longue portée Ticker TIMX(TIMX);//compteur de tours Digital InterruptSW(D0);//interrupt feu DLVV int lidarStrength; int lidarDist; //Etats SECTION_ST st_CurrentSection; OBSTACLE_ST st_obstacleDet; MUR_ST st_murs; THROTTLE_ST st_thro; //time monitoring Timer temps;// temps.start()/stop()/sec: read()/ms: read_ms()/µs: read_us() //########## INIT STATES MACHINES ########## void murs_init(void) { st_murs=MUR_GD_OK; return; } void obstacle_init(void) { st_obstacleDet=LONG_RANGE_CLEAR; return; } void section_init(void) { temps.reset(); temps.start(); st_CurrentSection=ARRET; return; } void throttle_init(void) { st_thro = AT_SPEED; return; } //########## UPDATE STATES ########## void murs_update(void) { MUR_ST st_tmp_murs; dist_murGF=anaGF.read_u16(); dist_murGL=anaGL.read_u16(); dist_murDF=anaDF.read_u16(); dist_murDL=anaDL.read_u16(); if(1) { st_tmp_murs = MUR_GD_OK; }else { st_tmp_murs = MURS_ABSENTS; } st_murs = st_tmp_murs; return; } void obstacle_update(void) { return; } void section_update(void) { return; } void throttle_update(void) { return; } //########## OUTPUT STATES ########## void murs_output(void) { return; } void obstacle_output(void) { return; } void section_output(void) { return; } void throttle_output(void) { return; }