IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Erreur de code: d'où vient la faute?


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2017
    Messages : 41
    Par défaut Erreur de code: d'où vient la faute?
    Bonsoir,

    Dans mon code C++ pour Arduino qui suit, j'ai une erreur qui me génère ce message lors de la compilation: "expected unqualified-id before 'if'"

    L'erreur émane de la ligne 161. Lorsque je supprime "clignotement2" et les lignes qui lui succède, le code refonctionne correctement. D'où vient l'erreur ?

    Le but du code étant de faire clignoter plusieurs LED qui s'allument les unes après les autres après appuie sur des boutons poussoir bien préçis. Tout fonctionne très bien, mais que pour les LED de "clignotement" et "clignotement1".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    #include <Wire.h>
    #include "Adafruit_MCP23017.h"
     
    Adafruit_MCP23017 mcp;
    Adafruit_MCP23017 mcp1;
     
    int etat; 
    int compteur = 0; 
     
    int etat1; 
    int compteur1 = 0; 
     
    bool clignotement = true; 
    const unsigned long Intervaldeclignotement = 150; 
    unsigned long Millisactuel; 
    unsigned long Millisprecedent;
     
     
    bool clignotement1 = true; 
    const unsigned long Intervaldeclignotement1 = 150; 
    unsigned long Millisactuel1; 
    unsigned long Millisprecedent1;
     
    bool clignotement2 = true; 
    const unsigned long Intervaldeclignotement2 = 150; 
    unsigned long Millisactuel2; 
    unsigned long Millisprecedent2;
     
     
    void setup() {
     
     mcp.begin();
     mcp1.begin(1);
     
     mcp.pinMode(0, OUTPUT);
     mcp.pinMode(1, OUTPUT);
     mcp.pinMode(2, OUTPUT);
     mcp.pinMode(3, OUTPUT);
     mcp.pinMode(4, OUTPUT);
     mcp.pinMode(5, OUTPUT);
     mcp.pinMode(6, OUTPUT);
     mcp.pinMode(7, OUTPUT);
     mcp.pinMode(8, OUTPUT);
     mcp.pinMode(9, OUTPUT);
     mcp.pinMode(10,OUTPUT);
     mcp.pinMode(11,OUTPUT);
     mcp.pinMode(12,OUTPUT);
     mcp.pinMode(13,OUTPUT);
     mcp.pinMode(14,OUTPUT);
     
     
    mcp.digitalWrite(1, HIGH);
    mcp.digitalWrite(2, HIGH);
    mcp.digitalWrite(3, HIGH);
    mcp.digitalWrite(4, HIGH);
    mcp.digitalWrite(5, HIGH);
    mcp.digitalWrite(6, HIGH);
    mcp.digitalWrite(7, HIGH);
    mcp.digitalWrite(8, HIGH);
    mcp.digitalWrite(9, HIGH);
    mcp.digitalWrite(10,LOW);
    mcp.digitalWrite(11,LOW);
    mcp.digitalWrite(12,LOW);
    mcp.digitalWrite(13,LOW);
    mcp.digitalWrite(14,LOW);
     
     
    mcp1.pinMode(0,OUTPUT);
    mcp1.pinMode(1,OUTPUT);
    mcp1.pinMode(2,OUTPUT);
    mcp1.pinMode(3,OUTPUT);
    mcp1.pinMode(4,OUTPUT);
    mcp1.pinMode(5,OUTPUT);
    mcp1.pinMode(6,OUTPUT);
    mcp1.pinMode(7,OUTPUT);
     
    mcp1.digitalWrite(0, HIGH);
    mcp1.digitalWrite(1, HIGH);
    mcp1.digitalWrite(2, HIGH);
    mcp1.digitalWrite(3, HIGH);
    mcp1.digitalWrite(4, HIGH);
    mcp1.digitalWrite(5, HIGH);
    mcp1.digitalWrite(6, HIGH);
     
     
     
    mcp1.pinMode(7,INPUT);
    mcp1.pinMode(8,INPUT);
    mcp1.pinMode(9,INPUT);
    mcp1.pinMode(10,INPUT);
    mcp1.pinMode(11,INPUT);
    mcp1.pinMode(12,INPUT);
    mcp1.pinMode(13,INPUT);
    mcp1.pinMode(14,INPUT);
    mcp1.pinMode(15,INPUT);
     
    mcp1.pullUp(7, HIGH);
    mcp1.pullUp(8, HIGH);
    mcp1.pullUp(9, HIGH);
    mcp1.pullUp(10, HIGH);
    mcp1.pullUp(11, HIGH);
    mcp1.pullUp(12, HIGH);
    mcp1.pullUp(13, HIGH);
    mcp1.pullUp(14, HIGH);
    mcp1.pullUp(15, HIGH);
     
    }
     
    void loop() {
     
    etat = mcp.digitalRead(7);
     
      if(etat==LOW) { 
        compteur++; 
      }
     
    etat1 = mcp.digitalRead(8);
     
      if(etat1==LOW) { 
        compteur1++; 
      }
     
     if (clignotement) {
      Millisactuel = millis();
      if ((unsigned long)(Millisactuel - Millisprecedent) >= Intervaldeclignotement) {
       mcp.digitalWrite(9, !mcp.digitalRead(9));
       Millisprecedent = Millisactuel; 
      }
     } else {
      mcp.digitalWrite(9, HIGH);
     }
     
     int lecturebouton = mcp1.digitalRead(7);
     delay(50); 
     
     if (lecturebouton==LOW){
      clignotement=false;
      compteur++;
       }
     
     
     if (clignotement1) {
      Millisactuel1 = millis();
       if (((unsigned long)(Millisactuel1 - Millisprecedent1) >= Intervaldeclignotement1) && (compteur>=1)) {
       mcp.digitalWrite(10, !mcp.digitalRead(10)); 
       Millisprecedent1 = Millisactuel1; 
      }
     } else {
      mcp.digitalWrite(10, HIGH);
     
      }
     
     int lecturebouton1 = mcp1.digitalRead(8);
     delay(50); 
     
     if ((lecturebouton1==LOW) && (compteur>=1))
      clignotement1=false;
      compteur1++;
       }
     
      if (clignotement2) {
      Millisactuel2 = millis();
       if (((unsigned long)(Millisactuel2 - Millisprecedent2) >= Intervaldeclignotement2) && (compteur1>=1)) {
       mcp.digitalWrite(11, !mcp.digitalRead(11)); 
       Millisprecedent2 = Millisactuel2; 
      }
     }
     
     else {
      mcp.digitalWrite(11, HIGH);
     
      }
     
     int lecturebouton2 = mcp1.digitalRead(9);
     delay(50); 
     
     if ((lecturebouton2==LOW) && (compteur>=1))
      clignotement2=false;
       }

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 282
    Par défaut
    Bonsoir

    Il manque une accolade ouvrante à la ligne 156. De ce fait l'accolade fermante en 159 ferme la fonction loop(); ou lieu de fermer le test.
    De ce fait le if qui suit n'est pas dans un bloc de code, où il n'est pas autorisé, d'où l'erreur du complio.

    D'où l'importance d'une indentation lisible, je trouve la tienne pas terrible... (même si elle est relativement bien respectée au long du code)

    Bonne suite

    Delias

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2017
    Messages : 41
    Par défaut
    Delias je tiens à te remercier sincèrement car il s'agissait tout simplement de celà.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur système . Code : 1410 ?
    Par Interruption13h dans le forum C++Builder
    Réponses: 5
    Dernier message: 05/05/2006, 08h59
  2. [Debutant][XSL] Erreur de code programmation
    Par SkyDev dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 14/03/2006, 22h38
  3. Erreur : ce code n'est pas connu
    Par ruman dans le forum VBA Access
    Réponses: 17
    Dernier message: 13/02/2006, 11h37
  4. [MySQL] Erreur dans code php
    Par Badr3am dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 31/01/2006, 22h16
  5. Erreur de code
    Par petdelascar dans le forum C
    Réponses: 7
    Dernier message: 12/12/2005, 08h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo