Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arduino :exêcted primary-expression before'='token

Sujet résolu
30 décembre 2019 à 21:19:07

Bonjour, j'ai fais une fonction qui permet de comparer deux distance et quand je compile, je reçois cette erreur "exected primary-expression before'='token" et je voulais savoir comment je pourrais règler cette erreur:

voici la fonction:

bool moveServo(Servo servo){

  servo.write(180);
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
  duration = pulseIn(ECHO, HIGH);
  distance1 = duration*0.034/2;
  delay(500);
  servo.write(0);
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
  duration = pulseIn(ECHO, HIGH);
  distance2 = duration*0.034/2; //VOICI LA LIGNE QUI A UNE ERREUR
  
  if(distance1 > distance2){
    return true;
  }
  else if(!distance1 > distance2){
    return false;
  }
}

Merci pour votre aide!

  • Partager sur Facebook
  • Partager sur Twitter
31 décembre 2019 à 11:25:06

Bonjour,

en compilant le code ci-dessous je n'ai aucune erreur :

#include <Servo.h>
int TRIG, ECHO, duration, distance1, distance2;

bool moveServo(Servo servo){
 
  servo.write(180);
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
  duration = pulseIn(ECHO, HIGH);
  distance1 = duration*0.034/2;
  delay(500);
  servo.write(0);
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
  duration = pulseIn(ECHO, HIGH);
  distance2 = duration*0.034/2; //VOICI LA LIGNE QUI A UNE ERREUR
   
  if(distance1 > distance2){
    return true;
  }
  else if(!distance1 > distance2){
    return false;
  }
}

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}



  • Partager sur Facebook
  • Partager sur Twitter
31 décembre 2019 à 17:24:44

clgbzh a écrit:

Bonjour,

en compilant le code ci-dessous je n'ai aucune erreur :

#include <Servo.h>
int TRIG, ECHO, duration, distance1, distance2;

bool moveServo(Servo servo){
 
  servo.write(180);
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
  duration = pulseIn(ECHO, HIGH);
  distance1 = duration*0.034/2;
  delay(500);
  servo.write(0);
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
  duration = pulseIn(ECHO, HIGH);
  distance2 = duration*0.034/2; //VOICI LA LIGNE QUI A UNE ERREUR
   
  if(distance1 > distance2){
    return true;
  }
  else if(!distance1 > distance2){
    return false;
  }
}

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}



Étrange, mais j'ai toujours une erreur a cette ligne. Tu crois que ce probleme vient de quoi?

  • Partager sur Facebook
  • Partager sur Twitter
31 décembre 2019 à 17:51:48

le problème est peut-être dans une autre partie du code.
  • Partager sur Facebook
  • Partager sur Twitter
31 décembre 2019 à 20:33:08

clgbzh a écrit:

le problème est peut-être dans une autre partie du code.


Salut, j'ai trouvé l'erreur, le problème c'était que la variable distance 2 était un define!
  • Partager sur Facebook
  • Partager sur Twitter