Go Down

Topic: Communication bi-directionnelle Arduino<-->Windows (Read 405 times) previous topic - next topic

MDZT

J'ai avancé sur ma question, j'ai terminé la lecture du port série (voir ci dessous).
Le code fonctionne mais est il possible de prioriser la communication (serie via l'USB) sur le reste du code qui tourne en boucle ?
La commande attachInterrupt (interruption, fonction, mode) ne concerne que les broche non le port USB !?
Code: [Select]

void ReadSerial()
{
  char SerialInByte;// Variable temporaire pour copier le caractère lu
  SerialInByte = Serial.read();// Lire un caractère (un Byte)
  if(SerialInByte==13)// Si 'retour chariot' traite la commande
  {// Début de boucle IF 'retour chariot'
    ProcessCmd();// traitement de la ou des commande(s)
  }// Fin de boucle IF 'retour chariot'
  else if(SerialInByte==77)// Si 'M' traite la commande
  {// Début de boucle ELSE IF 'M'
    cmdm = String(SerialInByte);
  }// Fin de boucle Si 'M'
  else// sinon, ajouter le caractère à la mémoire tampon
  {// Debut d'ajouter le caractère à la mémoire tampon
    if (cmdm=="M" && SerialInByte!=46)
    {
      cmdmval += String(SerialInByte);
    }
    else if (cmdm=="M" && SerialInByte==46)
    {
      cmdm= String("");
      cmd1= String(".");
    }
    else if (cmd1=="." && SerialInByte!=46)
    {
      cmd1val += String(SerialInByte);
    }
    else if (cmd1=="." && SerialInByte==46)
    {
      cmd1= String("");
      cmd2= String(".");
    }
    else if (cmd2=="." && SerialInByte!=46)
    {
      cmd2val += String(SerialInByte);
    }
    else if (cmd2=="." && SerialInByte==46)
    {
      cmd2= String("");
      cmd3= String(".");
    }
    else if (cmd3=="." && SerialInByte!=46)
    {
      cmd3val += String(SerialInByte);
    }
    else if (cmd3=="." && SerialInByte==46)
    {
      cmd3= String("");
    }
    else
    {
      cmd += String(SerialInByte);
    }
  }// Fin de boucle ELSE 'retour chariot'
}

Go Up