diff --git a/Asser_Moteurs.c b/Asser_Moteurs.c index eccce28..ae8bcca 100644 --- a/Asser_Moteurs.c +++ b/Asser_Moteurs.c @@ -1,4 +1,5 @@ #include "QEI.h" +#include "Moteurs.h" /*** C'est ici que ce fait la conversion en mm * ***/ @@ -26,7 +27,16 @@ void AsserMoteur_setConsigne_mm_s(enum t_moteur moteur, double _consigne_mm_s){ } double AsserMoteur_getVitesse_mm_s(enum t_moteur moteur){ - return (double) QEI_get(moteur) * (double)IMPULSION_PAR_MM; + enum QEI_name_t qei; + switch (moteur) + { + case MOTEUR_A: qei = QEI_A_NAME; break; + case MOTEUR_B: qei = QEI_B_NAME; break; + case MOTEUR_C: qei = QEI_C_NAME; break; + + default: break; + } + return (double) QEI_get(qei) / (double)IMPULSION_PAR_MM; } void AsserMoteur_Gestion(int step_ms){ diff --git a/QEI.c b/QEI.c index 233da1d..30cf071 100644 --- a/QEI.c +++ b/QEI.c @@ -54,18 +54,18 @@ void QEI_update(){ } -int QEI_get(enum t_moteur moteur){ - switch (moteur) +int QEI_get(enum QEI_name_t qei){ + switch (qei) { - case MOTEUR_A: + case QEI_A_NAME: return QEI_A.value; break; - case MOTEUR_B: + case QEI_B_NAME: return QEI_B.value; break; - case MOTEUR_C: + case QEI_C_NAME: return QEI_C.value; break; diff --git a/QEI.h b/QEI.h index 8814079..d800e55 100644 --- a/QEI.h +++ b/QEI.h @@ -1,12 +1,16 @@ -#include "Moteurs.h" - struct QEI_t{ int value; int delta; }; +enum QEI_name_t{ + QEI_A_NAME=0, + QEI_B_NAME=1, + QEI_C_NAME=2 +}; + extern struct QEI_t QEI_A, QEI_B, QEI_C; void QEI_update(void); void QEI_init(void); -int QEI_get(enum t_moteur moteur); \ No newline at end of file +int QEI_get(enum QEI_name_t qei); \ No newline at end of file diff --git a/test.c b/test.c index 769c0fd..9a10f43 100644 --- a/test.c +++ b/test.c @@ -7,6 +7,7 @@ #include "Temps.h" #include "spi_nb.h" #include "Servomoteur.h" +#include "Moteurs.h" #include "QEI.h" const uint LED_PIN = 25;