[Programmation] problème erreur arduino " exit status 1 expected '}' before 'else' "
Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

problème erreur arduino " exit status 1 expected '}' before 'else' "



  1. #1
    invitea98ab839

    problème erreur arduino " exit status 1 expected '}' before 'else' "


    ------

    boujour j'ai développer un code pour une machine de réanimation un prototype,
    mais j'obtient cette erreur " exit status 1
    expected '}' before 'else' " voici mon code
    Code:
    const int IE=10;
    int ie=1.2;
    int marche = 9;
    int valeurvt=500;
    int valeurfr=10;
    int course=67;
    #include <Servo.h>
    #include "LiquidCrystal.h"
    LiquidCrystal lcd(6,7,12,11,4,5);
    
    Servo moteur;
    
    void setup() {
       attachInterrupt( 0, incrementVT, RISING );
       attachInterrupt( 1, incrementFR, RISING );
        moteur.attach(8);
      pinMode (IE, INPUT);
     
      lcd.begin(16, 2);
      lcd.print("****TDS****");
      delay(1000);
      Serial.begin(9600);
    }
    
    void loop() {
    
      if (digitalRead(marche)==0)// départ cycle
      {
        lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("on");
     ////////
     if (digitalRead(IE)==0)
     {
     ie=1.2;
      if (valeurvt==500);
      {
        course = 67;
        float cycle= 60000/valeurfr;
        float i=cycle/(1+ie);
        float e= cycle -i;
        float tempsI=i/course;
        float tempsE=e/course;
      }
     
       else if (valeurvt==600)
       {
        course = 130;
        float cycle= 60000/valeurfr;
        float i=cycle/(1+ie);
        float e= cycle -i;
        float tempsI=i/course;
        float tempsE=e/course;
       }
       else  (valeurvt==700)
        {
        course = 180;
        float cycle= 60000/valeurfr;
        float i=cycle/(1+ie);
        float e= cycle -i;
        float tempsI=i/course;
        float tempsE=e/course;
       }
      }
      ////////////
       else (digitalRead(IE)==1)
     {
     ie=1.3;
      if (valeurvt==500);
      {course = 67;
        float cycle= 60000/valeurfr;
        float i=cycle/(1+ie);
        float e= cycle -i;
        float tempsI=i/course;
        float tempsE=e/course;
      }
       else if (valeurvt==600){
        course = 130;
        float cycle= 60000/valeurfr;
        float i=cycle/(1+ie);
        float e= cycle -i;
        float tempsI=i/course;
        float tempsE=e/course;
       }
       else (valeurvt==700)
        { course = 180;
        float cycle= 60000/valeurfr;
        float i=cycle/(1+ie);
        float e= cycle -i;
        float tempsI=i/course;
        float tempsE=e/course;
       }
      }
     
     
       lcd.setCursor(4,0);
      lcd.print("VT=");
      lcd.setCursor(7,0);
      lcd.print(valuervt/1000);
      lcd.print("L");
      lcd.setCursor(0,1);
      lcd.print("IE=");
      lcd.setCursor(3,1);
      lcd.print(ie);
      lcd.print("%");
      lcd.setCursor(7,1);
      lcd.print("Fr=");
      lcd.setCursor(11,1);
      lcd.print(valeurfr);
      for (int position = 0; position <= course; position++) {
        moteur.write(position);
        delay(tempsI);
      }
     
     
      for (int position = course; position >= 0; position--) {
        moteur.write(position);
        delay(tempsE);
      }
     
    }
      else {
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("off");
          delay(100);
           }
    }
    
    void incrementVT() {
      valeurvt = valeurvt + 500;
      if( valeurvt > 700 ) {
         valeurvt = 500;
      }
    }
    void incrementFR() {
      valeurfr = valeurfr + 1;
      if( valeurfr > 10 ) {
         valeurfr = 0;
      }
    }
    une idée !!
    cordialement

    -----

  2. #2
    gienas
    Modérateur

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Bonjour sakloub et tout le groupe

    Citation Envoyé par sakloub Voir le message
    ...
    expected '}' before 'else' " voici mon code ...
    On peut supposer que cette erreur sort lors de la compilation, en précisant la ligne à laquelle elle se produit.

    Il doit s’agir d’un mauvais appairage des accolades ouvrantes et fermantes.

    Le else arriverait avant que la fonction précédente ne soit fermée.

  3. #3
    invite5637435c

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Il manque la parenthèse fermante du premier if apparemment.
    Qui devrait donc survenir avant le else suivant ce if.

  4. #4
    invite5637435c

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Le code est une assiette de "spaghetti" il aurait mieux valut employer des switch case...

  5. A voir en vidéo sur Futura
  6. #5
    Seb.26

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Code:
    int ie=1.2;
    -> c'est sensé faire quoi ??!!!
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  7. #6
    Seb.26

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Et pour ton problème de build :
    Code:
    }
      ////////////
       else (digitalRead(IE)==1)
     {
    -> tu dois vouloir faire un "else if" je pense ...

    ... mais comme "digitalRead(IE)" ne peut renvoyer que 0 ou 1, un "else" suffira
    Dernière modification par Seb.26 ; 02/04/2020 à 09h53.
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  8. #7
    umfred

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    pour résumé, il doit manquer des if, des accolades; bref prends le temps de vérifier tes indentations pour trouver les erreurs (et le compilateur, comme dit plus haut, doit t'indiquer la ligne de l'erreur qu'il t'indique, donc le problème se situe en principe au dessus ou sur cette ligne.

  9. #8
    polo974

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    à mon avis:
    valeurvt = valeurvt + 500;

    devrait être:
    valeurvt += 100;

    entre autre...
    Jusqu'ici tout va bien...

  10. #9
    jiherve

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Bonjour
    Même analyse que Hulk.
    Une habitude à prendre d'urgence : INDENTER!!!
    tab de deux espace minimum cela aide à lire le code lorsque celui ci l'est par un visualisateur lambda et pas un éditeur ad hoc.
    JR
    l'électronique c'est pas du vaudou!

  11. #10
    Seb.26

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Citation Envoyé par polo974 Voir le message
    à mon avis:
    valeurvt = valeurvt + 500;

    devrait être:
    valeurvt += 100;

    entre autre...
    je ne pense pas, non ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  12. #11
    invite5637435c

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Je n'ai pas regardé la pertinence du contenu du code mais ce qui est certain c'est que
    expected '}' before 'else'


    designe le fait qu'il manque une accolade et précisément à cet endroit:

    Code:
    void loop()
    {
    
    
    if (digitalRead(marche)==0)// départ cycle
     {
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("on");
    .....
    .....
    else  (valeurvt==700)
        {
        course = 180;
        float cycle= 60000/valeurfr;
        float i=cycle/(1+ie);
        float e= cycle -i;
        float tempsI=i/course;
        float tempsE=e/course;
       }
      }
     }  <----- accolade manquante
      ////////////
       else (digitalRead(IE)==1)
     {
     ie=1.3;
      if (valeurvt==500);
      {course = 67;
        float cycle= 60000/valeurfr;
    
    ....
    .....
    Il faut donc commencer par éliminer cette erreur, ensuite il pourra avancer sur la mise au point de son code.

  13. #12
    invitef86a6203

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Programme truffé d'Erreur !
    (trop nombreuse pour détailler)

    Maintenant ça compile OK!
    Quand à la validité du code...


    Je n'ai pas mis le switch ,
    il n y a que 3 cas , c est d'ailleurs étonnant ou suspect !
    On devrait sans doute tester des fourchettes entre 2 valeurs.

    du genre;
    if ( ( valeurvt >= 500) && (valeurvt < 600))
    etc...

    Je vous laisse décider.

    Code:
    #include <Servo.h>
    #include "LiquidCrystal.h"
    
    void incrementVT();
    void incrementFR();
    
    
    float tempsI;
    float tempsR;
    
    
    const int IE = 10;
    int ie = 1.2;
    int marche = 9;
    int valeurvt = 500;
    int valeurfr = 10;
    int course = 67;
    LiquidCrystal lcd(6, 7, 12, 11, 4, 5);
    
    Servo moteur;
    
    void setup() {
      attachInterrupt( 0, incrementVT, RISING );
      attachInterrupt( 1, incrementFR, RISING );
      moteur.attach(8);
      pinMode (IE, INPUT);
    
      lcd.begin(16, 2);
      lcd.print("****TDS****");
      delay(1000);
      Serial.begin(9600);
    }
    
    void loop() {
      float cycle;
      float i;
      float e;
      int position ;
    
      if (digitalRead(marche) == 0) // départ cycle
      {
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("on");
        //
        if (digitalRead(IE) == 0) IE0();
        else   IE1() ;
    
        lcd.setCursor(4, 0);
        lcd.print("VT=");
        lcd.setCursor(7, 0);
        lcd.print(valeurvt / 1000);
        lcd.print("L");
        lcd.setCursor(0, 1);
        lcd.print("IE=");
        lcd.setCursor(3, 1);
        lcd.print(ie);
        lcd.print("%");
        lcd.setCursor(7, 1);
        lcd.print("Fr=");
        lcd.setCursor(11, 1);
        lcd.print(valeurfr);
    
        // ouvre
        for (position = 0; position <= course; position++) {
          moteur.write(position);
          delay(tempsI);
        }
        // ferme
        for (position = course; position >= 0; position--) {
          moteur.write(position);
          delay(tempsR);
        }
    
      }
      else { // Mode OFF
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("off");
        delay(100);
      }
    }
    
    
    
    void IE1() {
      int ie;
      ie = 1.2;
      if (valeurvt == 500)
      {
        course = 67;
        cycle = 60000 / valeurfr;
        i = cycle / (1 + ie);
        e = cycle - i;
        tempsI = i / course;
        tempsE = e / course;
      }
    
      if (valeurvt == 600)
      {
        course = 130;
        cycle = 60000 / valeurfr;
        i = cycle / (1 + ie);
        e = cycle - i;
        tempsI = i / course;
        tempsE = e / course;
      }
      if (valeurvt == 700)
      {
        course = 180;
        cycle = 60000 / valeurfr;
        i = cycle / (1 + ie);
        e = cycle - i;
        tempsI = i / course;
        tempsE = e / course;
      }
    
    }
    void IE0()
    {
      int ie;
    
      ie = 1.3;
      if (valeurvt == 500) {
        course = 67;
        cycle = 60000 / valeurfr;
        i = cycle / (1 + ie);
        e = cycle - i;
        tempsI = i / course;
        tempsE = e / course;
      }
      if (valeurvt == 600) {
        course = 130;
        cycle = 60000 / valeurfr;
        i = cycle / (1 + ie);
        e = cycle - i;
        tempsI = i / course;
        tempsE = e / course;
      }
      if (valeurvt == 700)
      { course = 180;
        cycle = 60000 / valeurfr;
        i = cycle / (1 + ie);
        e = cycle - i;
        tempsI = i / course;
        tempsE = e / course;
      }
    }
    
    void incrementVT() {
      valeurvt = valeurvt + 500;
      if ( valeurvt > 700 ) {
        valeurvt = 500;
      }
    }
    void incrementFR() {
      valeurfr = valeurfr + 1;
      if ( valeurfr > 10 ) {
        valeurfr = 0;
      }
    }

  14. #13
    invitef86a6203

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Il y a eu un raté dans la copie du code , ça a copié une version intermédiaire.

    je remet le bon !



    Code:
    #include <Servo.h>
    #include "LiquidCrystal.h"
    
    void incrementVT();
    void incrementFR();
    
    
    float   cycle;
    float   i;
    float   e;
    float tempsI;
    float tempsE;
    
    
    const int IE = 10;
    int ie = 1.2;
    int marche = 9;
    int valeurvt = 500;
    int valeurfr = 10;
    int course = 67;
    LiquidCrystal lcd(6, 7, 12, 11, 4, 5);
    
    Servo moteur;
    
    void setup() {
      attachInterrupt( 0, incrementVT, RISING );
      attachInterrupt( 1, incrementFR, RISING );
      moteur.attach(8);
      pinMode (IE, INPUT);
    
      lcd.begin(16, 2);
      lcd.print("****TDS****");
      delay(1000);
      Serial.begin(9600);
    }
    
    void loop() {
      float cycle;
      float i;
      float e;
      int position ;
    
      if (digitalRead(marche) == 0) // départ cycle
      {
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("on");
        //
        if (digitalRead(IE) == 0) IE0();
        else   IE1() ;
    
        lcd.setCursor(4, 0);
        lcd.print("VT=");
        lcd.setCursor(7, 0);
        lcd.print(valeurvt / 1000);
        lcd.print("L");
        lcd.setCursor(0, 1);
        lcd.print("IE=");
        lcd.setCursor(3, 1);
        lcd.print(ie);
        lcd.print("%");
        lcd.setCursor(7, 1);
        lcd.print("Fr=");
        lcd.setCursor(11, 1);
        lcd.print(valeurfr);
    
        // ouvre
        for (position = 0; position <= course; position++) {
          moteur.write(position);
          delay(tempsI);
        }
        // ferme
        for (position = course; position >= 0; position--) {
          moteur.write(position);
          delay(tempsE);
        }
    
      }
      else { // Mode OFF
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("off");
        delay(100);
      }
    }
    
    
    
    void IE1() {
      int ie;
      ie = 1.2;
      if (valeurvt == 500)
      {
        course = 67;
        cycle = 60000 / valeurfr;
        i = cycle / (1 + ie);
        e = cycle - i;
        tempsI = i / course;
        tempsE = e / course;
      }
    
      if (valeurvt == 600)
      {
        course = 130;
        cycle = 60000 / valeurfr;
        i = cycle / (1 + ie);
        e = cycle - i;
        tempsI = i / course;
        tempsE = e / course;
      }
      if (valeurvt == 700)
      {
        course = 180;
        cycle = 60000 / valeurfr;
        i = cycle / (1 + ie);
        e = cycle - i;
        tempsI = i / course;
        tempsE = e / course;
      }
    
    }
    void IE0()
    {
      int ie;
    
      ie = 1.3;
      if (valeurvt == 500) {
        course = 67;
        cycle = 60000 / valeurfr;
        i = cycle / (1 + ie);
        e = cycle - i;
        tempsI = i / course;
        tempsE = e / course;
      }
      if (valeurvt == 600) {
        course = 130;
        cycle = 60000 / valeurfr;
        i = cycle / (1 + ie);
        e = cycle - i;
        tempsI = i / course;
        tempsE = e / course;
      }
      if (valeurvt == 700)
      { course = 180;
        cycle = 60000 / valeurfr;
        i = cycle / (1 + ie);
        e = cycle - i;
        tempsI = i / course;
        tempsE = e / course;
      }
    }
    
    void incrementVT() {
      valeurvt = valeurvt + 500;
      if ( valeurvt > 700 ) {
        valeurvt = 500;
      }
    }
    void incrementFR() {
      valeurfr = valeurfr + 1;
      if ( valeurfr > 10 ) {
        valeurfr = 0;
      }
    }

  15. #14
    polo974

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Citation Envoyé par Seb.26 Voir le message
    je ne pense pas, non ...
    Regarde bien le code (de la même fonction et l'usage de la variable).
    Jusqu'ici tout va bien...

  16. #15
    Seb.26

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Citation Envoyé par HULK28 Voir le message
    Je n'ai pas regardé la pertinence du contenu du code mais ce qui est certain c'est que ... [...] ...
    Et pourtant ... ... moi j'en suis pas sûr du tout ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  17. #16
    Seb.26

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Citation Envoyé par polo974 Voir le message
    Regarde bien le code (de la même fonction et l'usage de la variable).
    -> je pensais à une erreur de frappe ( 500 -> 100 ) et que tu voulais juste lui faire mettre un x+=n plutôt qu'un x=x+n ... ... j'ai pas regardé si le 100 est plus pertinent que le 500 ... ( my bad si c'est le cas )
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  18. #17
    invite5637435c

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Citation Envoyé par Seb.26 Voir le message
    Et pourtant ... ... moi j'en suis pas sûr du tout ...
    Oui mais comme je te l'ai dit je n'ai pas regardé, s'agissant d'arduino...

  19. #18
    invitef86a6203

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Notre ami sakloub faisant le mort ...
    L œuvre de bienfaisance semble tombé à l'eau.


    ça me parait faux;
    valeurvt = valeurvt + 500;
    Parce qu'on passe jamais par 600 ou 700 !

    C est surement ça;
    valeurvt = valeurvt + 100;

    Pourquoi incrémenter de 100 ?
    Mystère...

  20. #19
    invite5637435c

    Re : problème erreur arduino " exit status 1 expected '}' before 'else' "

    Citation Envoyé par freepicbasic Voir le message
    Pourquoi incrémenter de 100 ?
    Mystère...
    Faut dire vu la tonne de commentaires dans le code...
    Du grand art.
    j'ai développer un code pour une machine de réanimation
    J'espère ne pas avoir à être réanimé un jour par un arduino...

Discussions similaires

  1. error: ld returned 1 exit status
    Par invite71dcc7ad dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 08/03/2019, 08h23
  2. Où sont passés les nombres "entiers" "EXIT"? et autres "bizarreries"
    Par Pernelle dans le forum Mathématiques du collège et du lycée
    Réponses: 35
    Dernier message: 20/08/2016, 07h16
  3. comment se fournir en graines de variétés authentiques dites "anciennes" (donc exit les F1)
    Par invitee4fa6f42 dans le forum Environnement, développement durable et écologie
    Réponses: 6
    Dernier message: 30/09/2011, 07h26
  4. programme "status.msi"
    Par invite34db64a9 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 2
    Dernier message: 06/07/2009, 15h52
  5. programme "status.msi"
    Par invite34db64a9 dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 1
    Dernier message: 29/06/2009, 00h22
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...