![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
faut que Val répare le truc
main.cpp
- Committer:
- leocle
- Date:
- 2020-03-27
- Revision:
- 0:8762773cddf9
- Child:
- 1:c5e9c436f8d0
File content as of revision 0:8762773cddf9:
/* #include <mbed_events.h> */ #include "mbed.h" #include "AX12.h" DigitalOut alivenessLED(LED1); DigitalOut testLed(LED2); Serial coach(D1, D0); const float rapport_vitesse = 0.019383809*0.026315; const float root3 = 1.7321; AX12 myax12a (PC_4, PC_5, 2); AX12 myax12b (PC_4, PC_5, 3); AX12 myax12c (PC_4, PC_5, 4); int i = 0; char last_read; int indice_a_modifie = 0; char message[50]; char message_vide = 0; float front, lat, rot, T_front, T_lat = 0; /*typedef struct { float front; float lat; float rot ; } dep; typedef struct { float front; float lat; } tire;*/ /* void blinkCallback(void) { alivenessLED = !alivenessLED; }*/ void setup(){ //eventQueue.call_every(500, blinkCallback); coach.baud(115200); myax12a.SetMode(1); myax12b.SetMode(1); myax12c.SetMode(1); } void asser(float Vx, float Vy, float gammaz){ float wa = rapport_vitesse*(Vx + 100 * gammaz); float wb = rapport_vitesse*( -0.5 * Vx - (root3 / 2) * Vy + 100 * gammaz); float wc = rapport_vitesse*( -0.5 * Vx + (root3 / 2) * Vy + 100 * gammaz); myax12a.SetCRSpeed(wa); myax12b.SetCRSpeed(wb); myax12c.SetCRSpeed(wc); } void send_stat(){ coach.printf("%f,%f,%f,%f,%f \n", front, lat, rot, front, lat ); } void mise_a_zero_msg(){ for(i=0;i<50;i++){//On réinitialise la chaîne de caractères message[i] = message_vide;} indice_a_modifie = 0; } void reception_com(){ if (coach.readable()) { last_read = coach.getc(); if (last_read == 'A') { indice_a_modifie = 0; last_read = coach.getc(); while ((last_read != ';')){ message[indice_a_modifie] = last_read; coach.printf("|%i|%s|", indice_a_modifie, message); indice_a_modifie ++; last_read = coach.getc();} message[indice_a_modifie] = last_read; sscanf(message,"%f,%f,%f,%f,%f;", &front, &lat, &rot, &front, &lat ); mise_a_zero_msg(); } if (last_read == 'S') { send_stat(); } }} int main(){ setup(); while (true){ reception_com(); asser(front, lat, rot); } }