Bonjour à tous !
Je reviens encore une fois vous embeter avec un probleme qui parait simple (pour certains en tout cas) sauf pour moi !
commençons par ce qui fonctionne, ça sera sans doute le plus rapide

Alors actuellement, j'envois d'une carte mega à une carte uno un "int" (les cartes sont reliées avec les pins Rx et Tx croisées).
voici "une partie" du code qui fonctionne actuellement:
// COTE TRANSMISSION SUR CARTE MEGA
void setup() {
Serial1.begin(115200);
pinMode(2, INPUT); //Entrée état carte UNO
}
void loop() {
// divers calculs pour "val" que l'on doit envoyer
Serial1.flush();
Serial1.write(val & 0xFF);
Serial1.write((val >> 8) & 0xFF);
while(digitalRead(2));// attend LOW. (UNO a bien reçu et va TRAITER)
while (!digitalRead(2));// attendre HIGH. (UNO a fini)
}
//COTE RECEPTION SUR CARTE UNO
void setup() {
Serial.begin(115200);
pinMode(3, OUTPUT); //Sortie état carte
digitalWrite(3, HIGH); //Carte prête
}
void loop() {
while (Serial.available() <2 );
int val = (Serial.read() + (Serial.read() << 8 ));
digitalWrite(3, LOW); delay(10); //confirme à la MEGA(pin2) qu'on a bien reçu
//
//
// JE FAIS CE QUE J'AI A FAIRE AVEC "val"
//
//
digitalWrite(3, HIGH); //DIS A LA MEGA QUE L'OPERATION EST TERMINEE
}
je reçois bien mon "int", et je bloque le deroulement sur la MEGA tant que la UNO n'a pas fini (je sais ça fait dresser les poils de certains d'attendre mais cela me va bien.
mon problème est maintenant d'envoyer un "int" supplémentaire dans la meme sequence, c'est à dire que la UNO attendra d'avoir reçu les 2 "int" avant de traiter.
Je précise que le 1° "int" variera entre -10000 et +10000 et le 2° de 1 à 100.
J'ai bien parcouru les topics qui parlent de chaine à envoyer, mais ça me met la chair de poule rien que d'y penser..
voila donc si quelqu'un pourrait m'éclairer en m'expliquant bien comment procéder, et si on pourrait eventuellement supprimer le dialogue par E/S pour confirmer et le remplacer par la transmission série..
l'envoi d'infos n'est vraiment pas mon fort, et le traitement de chaines non plus !!
merci d'avance..