Robot2025/Cerveau/Com_actionneur.ino

40 lines
1.1 KiB
C++

#include "Com_actionneur.h"
#include <Arduino.h>
#include <HardwareSerial.h>
int Actionneur_scan(struct com_actionneur_t * com_actionneur){
return Actionneur_scan(com_actionneur, true);
}
/// @brief Commande l'actionneur
int Actionneur_scan(struct com_actionneur_t * com_actionneur, bool continuous_try){
unsigned char tampon[4];
//(Adresse I2c, Adresse dans le registre, tampon, longueur de donnée)
error = I2C_lire_registre(I2C_SLAVE_actionneur, 0, tampon, 2);
while(error !=0 && continuous_try){
affiche_erreur("Actionneur_scan", "Erreur I2C");
error = I2C_lire_registre(I2C_SLAVE_actionneur, 0, tampon, 2);
}
Serial.printf(">r0:%d\n>r1:%d\n", tampon[0], tampon[1]);
com_actionneur->action_terminee = tampon[1];
com_actionneur->demande_action = tampon[0];
return error;
}
int Actionneur_send(struct com_actionneur_t * com_actionneur){
unsigned char tampon[1];
tampon[0] = com_actionneur->demande_action;
error = I2C_ecrire_registre(I2C_SLAVE_actionneur, 0, tampon, 1);
if (error !=0){
affiche_erreur("Actionneur_send", "Erreur I2C");
while(1);
}
return error;
}