Bonjour,
J'utilise un arduino Micro (donc la même puce que le leonardo) et je voulais réaliser un timeOut sur ma communication série en utilisant la bibliothèque TimerOne.
Je pensais qu'il n'y avait pas trop de soucis niveau implémentation mais lorsque j'attache l'interruption du timer il rentre tout de suite dans ma fonction callback alors que j'ai mis un timer de 5 secondes (5000000µs).
Est ce que quelqu'un a déjà utilisé cette bibliothèque avec le leonardo et qui pourrait m'aiguiller.
Voici mon code :
void setup()
{
/*timer*/
Timer1.initialize(5000000);
Timer1.attachInterrupt(timeOutCom);
Timer1.stop();
digitalWrite(LED_BUILTIN, LOW);
}
void loop()
{
if (Serial.available()>0)
{
receptionData();
}
}
void receptionData()
{
byte bufferReception[200];
int octetRecu = Serial.readBytes(bufferReception,Serial.available());
if (bufferReception[0]==97 && bufferReception[1]==122 && bufferReception[2]==109)
{
Serial.print("OK");
compute = false;
/*timer*/
Timer1.setPeriod(50000000);
Timer1.start();
}
}
void timeOutCom()
{
digitalWrite(LED_BUILTIN, HIGH);
Timer1.stop();
compute = true;
}
Merci par avance.
Tom