40 lines
1.1 KiB
C++
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;
|
|
} |