Go Down

Topic: [Résolu][Code] erreur de compilation Débutant LED (Read 597 times) previous topic - next topic

Mar 01, 2013, 01:40 pm Last Edit: Mar 02, 2013, 09:51 am by torquemada Reason: 1
Bonjour à tous,
Voici un code en principe assez simple(qui allume des LED), modifié d'un excellent tutoriel, et qui ne compile pas avec un message sybillin.
message d'erreur:
core.a (main.cpp.o);In function 'main';
c:\users\unknown\documents\Arduino\Logiciel\arduino-1.0.3\hardware\arduino
\cores\arduino/main.cpp:14: undefined reference to 'loop'

J'ai pensé à une mauvaise installation du logiciel arduino mais il compile bien les autres sketches.
Si c'est une erreur de syntaxe je ne l'ai pas trouvé (celà promet pour l'avenir) :)
Merci de m'avoir consacré de votre temps




Quote

const int LED[3]={2,3,4};
int vitesse=20;


void setup(){
for(int i=0;i<4;i++){
 pinMode(LED,OUTPUT);
}
}
void Loop(){
 for (int numLED=0;numLED<4;numLED++) {
   allumeLED(numLED);
   delay (vitesse);
 }
 for (int numLED=0;numLED<4;numLED++){
   allumeLED(4-numLED);
   delay(vitesse);
 }
}
 //fonction allumeLED*
 void allumeLED(int numLEDIn){
 for (int i=0;i<4;i++){
   if(i==numLEDIn){
     digitalWrite(LED,HIGH);
     
   }
 else {
   digitalWrite(LED,LOW);
  }
 }
}

 


Désolé il ya des indices qui ne semblent pas passer en copier coller.

il faut lire
ligne 5           pinMode(LED,OUTPUT);
et à la fin
digitalWrite(LED,HIGH);
digitalWrite(LED,LOW);

68tjs

Les fonctions setup() et loop() sont intégrées dans un fichier main.cpp. Tu ne le vois pas parce que l'IDE le fait pour toi.
Voila l'explication de la reférence à main.cpp.

Ensuite je sais pas si c'est la seule raison mais il y a  au moins un problème ici :
const int LED[3]={2,3,4};
LED[3] défini un tableau de 4 valeurs : en programmation on commence à 0, la  4ème valeur n'est pas définie.

Et cette 4 éme valeur tu cherche à l'appeler ici :
for (int i=0 ; i<4 ; i++) {
  pinMode(LED,OUTPUT);
}

Je vois déjà 2 erreurs (mais il peut y en avoir d'autres)
1) Comme tu n'a que 3 valeurs de définies il faut i<3 et non pas i<4 -> le "0" doit être pris en compte.
2) LED est un tableau de constante, on appelle une valeur du tableau en spécifiant son rang  -> LED[0] ou LED[3] et dans une boucle on écrit LED[ i ].
Corrige déjà ces petites erreurs cela devrait aller mieux.

Hello,

Vu l'erreur et ton code tu as un soucis à cette ligne :

Code: [Select]
void Loop(){

C'est loop et non Loop ;)

Le code est sensible à la casse ;)

c'est la bonne réponse loop à la place de Loop
Merci à tous

Go Up