Code pour la coupe 2026 - ajout de l'inversion de trajectoire (non utilisé à la coupe)

This commit is contained in:
Samuel 2026-05-18 11:19:18 +02:00
parent a37f6fb18f
commit 898dd0a153
5 changed files with 22 additions and 2 deletions

View File

@ -140,6 +140,7 @@ Les adresses en **gras** sont celles pour lesquelles des `#define` existent qui
| 0x5F | RW | Flottant 32 bits | Acceleration trajectoire |
| 0x60 | RW | Flottant 32 bits | Acceleration trajectoire |
| 0x61 | RW | Flottant 32 bits | Acceleration trajectoire |
| **0x62** | RW | uint8_t | Commande inversion trajectoire |
| **0x80** | R | flottant 32 bits | Position X en mm |
| 0x81 | R | flottant 32 bits | Position X en mm |
| 0x82 | R | flottant 32 bits | Position X en mm |

17
main.c
View File

@ -77,7 +77,7 @@ void main(void)
Trajet_init(get_identifiant());
//i2c_maitre_init();
Servomoteur_Init();
//Servomoteur_Init();
communication_init();
@ -118,7 +118,8 @@ void main(void)
enum etat_trajet_t etat_trajet=TRAJET_EN_COURS;
struct trajectoire_t trajectoire;
uint8_t mode=0;
Trajet_config(TRAJECT_CONFIG_STD);
//Trajet_config(TRAJECT_CONFIG_STD);
Trajet_config(600, 300);
while(1){
@ -153,6 +154,8 @@ void main(void)
mise_a_jour_vitesse_robot = false;
mise_a_jour_trajectoire = false;
mise_a_jour_config_trajet = false;
mise_a_jour_cde_inv_traj = false;
// Copie des données dans la mémoire d'échange
// Et actualisation des variables "mise_a_jour_..."
@ -214,6 +217,16 @@ void main(void)
Trajet_config(msg_propulsion_config_trajet.vitesse_mm_s, msg_propulsion_config_trajet.acceleration_mm_ss);
}
if(mise_a_jour_cde_inv_traj){
uint8_t cde_inv_traj;
get_données_reçues(&cde_inv_traj, sizeof(cde_inv_traj), REG_PROPULSION_CDE_INV_TRAJ);
if(cde_inv_traj == 1){
Trajet_inverse();
cde_inv_traj = 0;
mise_données_dans_échange(&cde_inv_traj, sizeof(cde_inv_traj), REG_PROPULSION_CDE_INV_TRAJ);
}
}
}

View File

@ -12,6 +12,7 @@ bool mise_a_jour_vitesse_roues = false;
bool mise_a_jour_vitesse_robot = false;
bool mise_a_jour_trajectoire = false;
bool mise_a_jour_config_trajet = false;
bool mise_a_jour_cde_inv_traj = false;
void get_données_reçues(uint8_t * dst, unsigned int taille, unsigned int registre){
memcpy(dst, &(memoire_echange[registre]), taille);
@ -46,6 +47,9 @@ void écriture_données(unsigned int adresse, uint8_t donnée){
}else if(adresse <= 0x61){
// Trajet config
mise_a_jour_config_trajet = true;
}else if(adresse <= 0x62){
// Trajet config
mise_a_jour_cde_inv_traj = true;
}else {
// Hors mémoire
return;

View File

@ -14,3 +14,4 @@ extern bool mise_a_jour_vitesse_roues;
extern bool mise_a_jour_vitesse_robot;
extern bool mise_a_jour_trajectoire;
extern bool mise_a_jour_config_trajet;
extern bool mise_a_jour_cde_inv_traj;

View File

@ -12,6 +12,7 @@
#define REG_PROPULSION_VITESSE_ROBOT 0x1A
#define REG_PROPULSION_TRAJECTOIRE 0x22
#define REG_PROPULSION_CONFIG_TRAJET 0x5A
#define REG_PROPULSION_CDE_INV_TRAJ 0x62
#define REG_PROPULSION_ABSCISSE 0x8C
#define REG_PROPULSION_POSITION_CONSIGNE 0x90
#define REG_PROPULSION_VITESSE_ROUES_lecture 0x98