diff --git a/main.c b/main.c index 95458b9..d3597d0 100644 --- a/main.c +++ b/main.c @@ -17,8 +17,52 @@ void stdio_usb_out_chars(const char *buf, int length); #define NB_MORCEAUX 100 absolute_time_t envoie_nb_char(int nb_char); +uint8_t memoire_echange[200]; char chaine_envoie[10000]; +bool mise_a_jour_position = false; +bool mise_a_jour_mode = false; +bool mise_a_jour_pwm = false; +bool mise_a_jour_vitesse_roues = false; +bool mise_a_jour_vitesse_robot = false; +bool mise_a_jour_trajectoire = false; + + +void écriture_données(unsigned int adresse, uint8_t donnée){ + if( adresse <= 11){ + // Position du robot + mise_a_jour_position = true; + }else if(adresse <= 12){ + // Read only + + }else if(adresse <= 13){ + // Mode + mise_a_jour_mode = true; + }else if(adresse <= 17){ + // PWM moteur + mise_a_jour_pwm = true; + }else if(adresse <= 25){ + // Vitesse roues + mise_a_jour_vitesse_roues = true; + }else if(adresse <= 33){ + // Vitesse robot + mise_a_jour_vitesse_robot = true; + }else if(adresse <= 86){ + // Trajectoire + mise_a_jour_trajectoire = true; + }else if(adresse >86){ + // Hors mémoire + printf("adresse = %d\n", adresse); + return; + } + + memoire_echange[adresse] = donnée; + + +} + + + void envoie_donnees(char * donnees, uint16_t length){ @@ -134,14 +178,40 @@ void main(void) // données[1]: id de la carte // données[2]: 1er registre // données[3 à tailles_données -1]: valeurs - memcpy(&message_applicatif, message.donnees, message.taille_donnees); + printf("id_carte:%c %d\n", message_applicatif.id_carte, message_applicatif.id_carte); + + if(message_applicatif.id_carte == 'P'){ + + mise_a_jour_position = false; + mise_a_jour_mode = false; + mise_a_jour_pwm = false; + mise_a_jour_vitesse_roues = false; + mise_a_jour_vitesse_robot = false; + mise_a_jour_trajectoire = false; + // Copie des données dans la mémoire d'échange + + for (int num_octet=0; num_octet