From 5b2edfcfd136ce4c64b79795dc400338a262972e Mon Sep 17 00:00:00 2001 From: Samuel Date: Wed, 22 Jul 2026 22:01:00 +0200 Subject: [PATCH] Correction rotation + ajout fonction PWM dans AsserMoteur --- Asser_Moteurs.c | 24 ++++++++++++++++++++++++ Asser_Moteurs.h | 5 ++++- Deplacement.h | 1 + Plateforme.h | 2 +- Readme.md | 2 +- Rotation.c | 7 +++---- 6 files changed, 34 insertions(+), 7 deletions(-) diff --git a/Asser_Moteurs.c b/Asser_Moteurs.c index 220b487..b593110 100644 --- a/Asser_Moteurs.c +++ b/Asser_Moteurs.c @@ -1,5 +1,6 @@ #include #include "Asser_Moteurs.h" +#include "Moteurs.h" #include "Plateforme.h" #define NB_MOTEURS 2 @@ -18,6 +19,29 @@ void AsserMoteur_Init(){ } } + +/// @brief Défini une commande PMW pour le moteur indiqué. +/// @param moteur : Moteur à commande +/// @param vitesse : Vitesse entre -32767 et 32767 +void AsserMoteur_commande_PWM(enum t_moteur moteur, int16_t commande_PWM){ + Moteur_SetVitesse(moteur, commande_PWM); + asser_actif[moteur] = 0; +} + +void AsserMoteur_moteur_off(enum t_moteur moteur){ + Moteur_SetVitesse(moteur, 0); + asser_actif[moteur] = 0; +} + +void AsserMoteur_moteurs_off(){ + for(enum t_moteur moteur=MOTEUR_A; moteur 0){ rotation_angle_sens = 1; @@ -41,13 +41,12 @@ void rotation_set_vitesse(float vitesse_rad_s){ enum etat_trajet_t rotation_gestion(float pas_de_temps_s){ struct position_t position = Localisation_get(); rotation_vitesse_rad_s = Rotation_calcul_vitesse(position.angle_radian, pas_de_temps_s); + rotation_set_vitesse(rotation_vitesse_rad_s); if (rotation_angle_sens == 1 ){ - rotation_set_vitesse(rotation_vitesse_rad_s); if (position.angle_radian > rotation_angle_cible){ return TRAJET_TERMINE; } - }else{ if (position.angle_radian < rotation_angle_cible){ return TRAJET_TERMINE;