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 :

Probleme de compilation pour un grand debutant


Sujet :

Arduino

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Probleme de compilation pour un grand debutant
    Bonjour,
    Je me lance dans la programmation d arduino et la conception de projets. Dit autrement, je debute.
    J ai commance a ecrire un bout de code et, à la compilation, j ai des erreurs. Mon inexperience fait que je suis incapable pour le moment de v oir ou ca peche ... d'ou ce post.

    Premiere difficulté, trouver les balises pour inclure mon code ...
    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
    //Chargement bibliotheque
    #include <Scheduler.h>
     
    //Initialisation des constantes commut1 a commut6
    const int Commut1 = 1;
    const int Commut2 = 2;
    const int Commut3 = 3;
    const int Commut4 = 4;
    const int Commut5 = 5;
    const int Commut6 = 6;
     
    // Initialisation constante capteur piste
    const int CaptPist = 7;
     
    //Initialisation constante LED signalisation
    const int Led = 8;
     
    //Initialisation constante relais bypass de la commande au guidon
    const int RelayBypass = 9;
     
    //Initialisation constante relais pulse
    const int RelayPulse = 10;
     
    void setup()
    {
      //Affectation des entrées commutateur
      pinMode(Commut1, INPUT);
      pinMode(Commut2, INPUT);
      pinMode(Commut3, INPUT);  
      pinMode(Commut4, INPUT);
      pinMode(Commut5, INPUT);
      pinMode(Commut6, INPUT);
      //Affectation capteur piste
      pinMode(CaptPist, INPUT);
      //Affectation LED
      pinMode(Led, OUTPUT);
      //Affectation relais
      pinMode(RelayBypass, OUTPUT);
      pinMode(RelayPulse, OUTPUT);
      //Initialisation comm serie
      Serial.begin(9600);
      //Initialisation compteur de boucle
     
      //Initialisation etats commut
     
      //Initialisation Nbre de boucle
     
      //Demarrage boucle secondaire
      Scheduler.startLoop(loop2);
    }
     
    void loop()
    //Boucle principale
    //Gestion capteur piste (I.L.S.)
    {
     
     
     
     
     
     
    yield()
    }
     
    void loop2()
    //Boucle secondaire
    //Gestion commutateur
    {
      //Lecture de l etat des entrees Commut1 à 6
      etatCommut1 = digitalRead(commut1);
      etatCommut2 = digitalRead(commut2); 
      etatCommut3 = digitalRead(commut3);
      etatCommut4 = digitalRead(commut4);
      etatCommut5 = digitalRead(commut5);
      etatCommut6 = digitalRead(commut6);
      if (commut6 == HIGH)
      {
        byte Boucle = 5;
        FonctionCligno(5);
        digitalWrite(RelayBypass, HIGH);
      }
     
      if (commut5 == HIGH)
      {
        byte Boucle = 4;
        FonctionCligno(4);
        digitalWrite(RelayBypass, HIGH);
      }
      if (commut4 == HIGH)
      {
        byte Boucle = 3;
        FonctionCligno(3);
        digitalWrite(RelayBypass, HIGH);
      }
      if (commut3 == HIGH)
      {
        byte Boucle = 2;
        FonctionCligno(2);
        digitalWrite(RelayBypass, HIGH);
      }
      if (commut2 == HIGH)
      {
        byte Boucle = 1;
        FonctionCligno(1);
        digitalWrite(RelayBypass, HIGH);
      }
      if (commut1 == HIGH)
      {
        digitalWrite(RelayBypass, LOW);
        digitalWrite(Led, LOW);
      }
     
     
     
    yield()
    }
     
    void FonctionCligno(int repetition)
    {
      int i; //initialisation de la variable d'incrémentation
      for (i=0, i<repetition, i++)
      {
        digitalWrite(Led, HIGH);
        delay(500);
        digitalWrite(Led, LOW);
        delay(500);
      }
    }
    Les pro de developpement veront tout de suite qu'il y a des trous dans la raquette ...
    En fait, je n'ai pas encore tout saisi.

    Voici les codes d'erreur :

    Arduino : 1.8.9 (Windows Vista), Carte : "Arduino/Genuino Uno"

    ATTENTION : la bibliothèque Scheduler prétend être exécutable sur la (ou les) architecture(s) (sam, samd) et peut être incompatible avec votre carte actuelle qui s'exécute sur (avr).
    G:\dri\Prog pic\Arduino\Chrono CBR 1000\Chrono\Chrono.ino: In function 'void loop()':

    Chrono:64:1: error: expected ';' before '}' token

    }

    ^

    G:\dri\Prog pic\Arduino\Chrono CBR 1000\Chrono\Chrono.ino: In function 'void loop2()':

    Chrono:71:3: error: 'etatCommut1' was not declared in this scope

    etatCommut1 = digitalRead(commut1);

    ^

    Chrono:71:29: error: 'commut1' was not declared in this scope

    etatCommut1 = digitalRead(commut1);

    ^

    Chrono:72:3: error: 'etatCommut2' was not declared in this scope

    etatCommut2 = digitalRead(commut2);

    ^

    Chrono:72:29: error: 'commut2' was not declared in this scope

    etatCommut2 = digitalRead(commut2);

    ^

    Chrono:73:3: error: 'etatCommut3' was not declared in this scope

    etatCommut3 = digitalRead(commut3);

    ^

    Chrono:73:29: error: 'commut3' was not declared in this scope

    etatCommut3 = digitalRead(commut3);

    ^

    Chrono:74:3: error: 'etatCommut4' was not declared in this scope

    etatCommut4 = digitalRead(commut4);

    ^

    Chrono:74:29: error: 'commut4' was not declared in this scope

    etatCommut4 = digitalRead(commut4);

    ^

    Chrono:75:3: error: 'etatCommut5' was not declared in this scope

    etatCommut5 = digitalRead(commut5);

    ^

    Chrono:75:29: error: 'commut5' was not declared in this scope

    etatCommut5 = digitalRead(commut5);

    ^

    Chrono:76:3: error: 'etatCommut6' was not declared in this scope

    etatCommut6 = digitalRead(commut6);

    ^

    Chrono:76:29: error: 'commut6' was not declared in this scope

    etatCommut6 = digitalRead(commut6);

    ^

    G:\dri\Prog pic\Arduino\Chrono CBR 1000\Chrono\Chrono.ino:79:10: warning: unused variable 'Boucle' [-Wunused-variable]

    byte Boucle = 5;

    ^

    G:\dri\Prog pic\Arduino\Chrono CBR 1000\Chrono\Chrono.ino:86:10: warning: unused variable 'Boucle' [-Wunused-variable]

    byte Boucle = 4;

    ^

    G:\dri\Prog pic\Arduino\Chrono CBR 1000\Chrono\Chrono.ino:92:10: warning: unused variable 'Boucle' [-Wunused-variable]

    byte Boucle = 3;

    ^

    G:\dri\Prog pic\Arduino\Chrono CBR 1000\Chrono\Chrono.ino:98:10: warning: unused variable 'Boucle' [-Wunused-variable]

    byte Boucle = 2;

    ^

    G:\dri\Prog pic\Arduino\Chrono CBR 1000\Chrono\Chrono.ino:104:10: warning: unused variable 'Boucle' [-Wunused-variable]

    byte Boucle = 1;

    ^

    Chrono:117:1: error: expected ';' before '}' token

    }

    ^

    G:\dri\Prog pic\Arduino\Chrono CBR 1000\Chrono\Chrono.ino: In function 'void FonctionCligno(int)':

    G:\dri\Prog pic\Arduino\Chrono CBR 1000\Chrono\Chrono.ino:122:14: warning: right operand of comma operator has no effect [-Wunused-value]

    for (i=0, i<repetition, i++)

    ^

    Chrono:122:30: error: expected ';' before ')' token

    for (i=0, i<repetition, i++)

    ^

    Chrono:129:1: error: expected primary-expression before '}' token

    }

    ^

    Chrono:129:1: error: expected ';' before '}' token

    Chrono:129:1: error: expected primary-expression before '}' token

    Chrono:129:1: error: expected ')' before '}' token

    Chrono:129:1: error: expected primary-expression before '}' token

    exit status 1
    expected ';' before '}' token

    Ce rapport pourrait être plus détaillé avec
    l'option "Afficher les résultats détaillés de la compilation"
    activée dans Fichier -> Préférences.

    Je suis a votre disposition pour vous communiquer toute info qui vous sera utille et/ou necessaire pour m'aider !

    Au plaisir de vous lire,

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Bonjour,

    quatre choses :
    - qu'est-ce que Scheduler.h ? As-tu un lien décrivant cette bibliothèque ?
    - qu'est-ce qu'est cette fonction yield() (tu as oublié un ";" après son appel) ?
    - tu as oublié de déclarer tes variables etatCommutX .
    - tu as déclaré des variables CommutX or tu utilises commutX. Le C++ est sensible à la casse.

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Avant toute chose, merci d'avoir pris le temps de regarder mon post !

    Citation Envoyé par Auteur Voir le message
    Bonjour,

    quatre choses :
    - qu'est-ce que Scheduler.h ? As-tu un lien décrivant cette bibliothèque ?
    - qu'est-ce qu'est cette fonction yield() (tu as oublié un ";" après son appel) ?
    - tu as oublié de déclarer tes variables etatCommutX .
    - tu as déclaré des variables CommutX or tu utilises commutX. Le C++ est sensible à la casse.
    Point par point :
    - Scheduler.h ... En fait je souhaite avoir deux routines qui se deroulent en même temps (genre de multitache) pour separer les fonctions "ihm" de la fonction "comptage"
    - yield() (trouve sur internet) ce serait pour passer justement d'une routine a l'autre
    - pour les declarations, je prends note !

    Je corrige deja ca ....

    Encore merci !

  4. #4
    Modérateur

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

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonjour

    La deuxième ligne de message d'erreur est claire (du moins pour moi)
    ATTENTION : la bibliothèque Scheduler prétend être exécutable sur la (ou les) architecture(s) (sam, samd) et peut être incompatible avec votre carte actuelle qui s'exécute sur (avr).
    La bibliothèque Scheduler n'est pas prévue pour tourner sur les Arduino UNO, Nano, Mega et quelques autres qui sont sur architecture AVR ce qui est apparemment ton cas.

    Car sans OS, pas de gestion multitâche magique, c'est à toi de l'implémenter!

    Pour le faire j'ai déjà donné quelques réponses sur le forum:
    - Deux programmes simultanés
    - Débutant demandant de l'aide
    - Simuler une touche "Enter" sur un keypad 4x4

    Tu n'as qu'une seule fonction loop(); à disposition, mais tu peux conserver la factorisation. C'est juste que les fonctions ou procédure servant à séparer les différentes fonctionnalités doivent être appelées par loop(); ou les interruptions des timer mais c'est un autre niveau quand on maitrise le déroulement temporelle d'un programme embarqué.

    Bonne suite

    Delias

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Encore une fois, merci de votre participation !
    A ce que je vois, j'ai encore plein de choses a apprendre sur ces petites bestioles que sont les Arduino !

Discussions similaires

  1. [Python 3.X] Help pour un grand debutant
    Par Cyrion81 dans le forum Général Python
    Réponses: 3
    Dernier message: 17/02/2019, 19h54
  2. probleme à la compilation pour lien externe
    Par Nono Sto dans le forum Débuter
    Réponses: 1
    Dernier message: 21/01/2018, 20h13
  3. [DEBUTANT][VSC++ 6.0]probleme de compilation
    Par magnus2005 dans le forum Visual C++
    Réponses: 6
    Dernier message: 27/02/2007, 09h01
  4. probleme pour gros naz debutant sur delphi...
    Par clem1313 dans le forum Débuter
    Réponses: 1
    Dernier message: 25/02/2006, 13h39
  5. [Debutant] Probleme de compilation d'applet dans Eclipse
    Par nhollevilleTaf dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 22/07/2005, 12h21

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