Donc si je comprend bien vos réponse la lecture sur un port série est toujours une fonction bloquante ??
j'ai essaye d'autre façon de faire la lecture et même problème !!!
par example ceci:
void setup() {
Serial.begin(9600);
pinMode(13,OUTPUT);
digitalWrite(13,LOW);
}
String serialCommand;
char serialLetter;
void loop()
{
serialCommand = "";
// Boucle infinie (que l'on quitte lorsque l'on appuis sur la touche ENTER)
for (;;) {
// Si la com reçoit quelque chose, on lit le caractère et on le traite
// Note : sinon, on ne fait rien (donc on reste dans la boucle infinie)
if ( Serial.available() > 0 ) {
// Lecture
serialLetter = Serial.read();
// Si c'est la touche ENTER, on quitte la boucle infinie
if ( serialLetter == '\r' || serialLetter == '\n' ) {
break;
}
// Si la boucle n'a pas été quitté, c'est que ce n'est pas la touche ENTER
// Donc on ajoute le caractère à la string
serialCommand += serialLetter;
}
}
// Dès que l'on arrive ici, c'est que la touche ENTER a été utilisée
// Donc on va traiter la chaine reçue
if ( serialCommand == "MDP" ) {
digitalWrite(13, HIGH);
}
if( serialCommand == "Reset" ) {
digitalWrite(13, LOW);
}
// Fin du traitement,
// Fin de la fonction loop
// => c'est reparti pour un tour
}
ça sa fonctionne nikel mais si je duplique le code d'une manière a y ajouter le second port cela deviens lent et aléatoire !!! a part la boucle je ne voie pas ce qui bloque le µP.
Sans doute que je ne comprend pas ce que vous me dite part Bloquant !!!