Go Down

Topic: there is an error in my code but I don't know where? (Read 1 time) previous topic - next topic

may14

here is the error:
sketch_mar01a.ino: In function 'void loop()':
sketch_mar01a.ino:77:6: error: expected primary-expression before ')' token
Erreur lors de la compilation.

an my code is:


// Pins
int pot = A0;     // broche du potentionmètre
int mes =0;       // variable mesurée : potentionmètre
int pot1 = A1;    // broche du potentionmètre
int mes1 =0;      // variable mesurée : potentionmètre
int pot2 = A2;    // broche du potentionmètre
int mes2 =0;      // variable mesurée : potentionmètre
int redPin = 3;   // Red LED,   connected to digital pin
int grnPin = 5;   // Green LED, connected to digital pin
int bluPin = 6;   // Blue LED,  connected to digital pin
unsigned char LED_Set  = 7;

// Color arrays
int black[3]  = { 0, 0, 0 };
int white[3]  = { 100, 100, 100 };
int red[3]    = { 100, 0, 0 };
int green[3]  = { 0, 100, 0 };
int blue[3]   = { 0, 0, 100 };
int yellow[3] = { 40, 95, 0 };
int dimWhite[3] = { 30, 30, 30 };

// Set initial color
int redVal = black[0];
int grnVal = black[1];
int bluVal = black[2];

int wait = 5;      // 10ms internal crossFade delay; increase for slower fades
int hold = 0;       // Optional hold when a color is complete, before the next crossFade
int DEBUG = 1;      // DEBUG counter; if set to 1, will write values back via serial
int loopCount = 60; // How often should DEBUG report?
int repeat = 3;     // How many times should we loop before stopping? (0 for no stop)
int j = 0;          // Loop counter for repeat

// Initialize color variables
int prevR = redVal;
int prevG = grnVal;
int prevB = bluVal;


// Set up the LED outputs
void setup()
{
  pinMode(LED_Set, INPUT);
  pinMode(redPin, OUTPUT);   // sets the pins as output
  pinMode(grnPin, OUTPUT);   
  pinMode(bluPin, OUTPUT);

  if (DEBUG) {           // If we want to see values for debugging...
    Serial.begin(9600);  // ...set up the serial ouput
  }
}

// Main program: list the order of crossfades
void loop()
{
    if(digitalRead(LED_Set)){
       while(!digitalRead(LED_Set)){
         
  crossFade(red);
  crossFade(green);
  crossFade(blue);
  crossFade(yellow);

  if (repeat) { // Do we loop a finite number of times?
    j += 1;
    if (j >= repeat) { // Are we there yet?
      exit(j);         // If so, stop.
    }
  }
         
                                   }
                            }
else(); {
 
  mes = analogRead(pot); // mesure de la postion du potentiomètre
  mes = map (mes,0,1023,0,255); // péréquation de la valeur mesurée avec une valeur pour la LED R
  analogWrite(redPin,mes); // génère une impulsion sur la broche de largeur mes => la luminosité R=f(mes)
  delay(10); // attente pour lecture dans le moniteur serie
 
  mes1 = analogRead(pot1); // mesure de la postion du potentiomètre
  mes1 = map (mes1,0,1023,0,255); // péréquation de la valeur mesurée avec une valeur pour la LED R
  analogWrite(grnPin,mes1); // génère une impulsion sur la broche de largeur mes => la luminosité R=f(mes)
  delay(10); // attente pour lecture dans le moniteur serie
 
  mes2 = analogRead(pot2); // mesure de la postion du potentiomètre
  mes2 = map (mes2,0,1023,0,255); // péréquation de la valeur mesurée avec une valeur pour la LED R
  analogWrite(bluPin,mes2); // génère une impulsion sur la broche de largeur mes => la luminosité R=f(mes)
  delay(10); // attente pour lecture dans le moniteur serie

}
}
 
  int calculateStep(int prevValue, int endValue) {
  int step = endValue - prevValue; // What's the overall gap?
  if (step) {                      // If its non-zero,
    step = 1020/step;              //   divide by 1020
  }
  return step;
}

int calculateVal(int step, int val, int i) {

  if ((step) && i % step == 0) { // If step is non-zero and its time to change a value,
    if (step > 0) {              //   increment the value if step is positive...
      val += 1;           
    }
    else if (step < 0) {         //   ...or decrement it if step is negative
      val -= 1;
    }
  }
  // Defensive driving: make sure val stays in the range 0-255
  if (val > 255) {
    val = 255;
  }
  else if (val < 0) {
    val = 0;
  }
  return val;
}



void crossFade(int color[3]) {
  // Convert to 0-255
  int R = (color[0] * 255) / 100;
  int G = (color[1] * 255) / 100;
  int B = (color[2] * 255) / 100;

  int stepR = calculateStep(prevR, R);
  int stepG = calculateStep(prevG, G);
  int stepB = calculateStep(prevB, B);

  for (int i = 0; i <= 1020; i++) {
    redVal = calculateVal(stepR, redVal, i);
    grnVal = calculateVal(stepG, grnVal, i);
    bluVal = calculateVal(stepB, bluVal, i);

    analogWrite(redPin, redVal);   // Write current values to LED pins
    analogWrite(grnPin, grnVal);     
    analogWrite(bluPin, bluVal);

    delay(wait); // Pause for 'wait' milliseconds before resuming the loop

    if (DEBUG) { // If we want serial output, print it at the
      if (i == 0 or i % loopCount == 0) { // beginning, and every loopCount times
        Serial.print("Loop/RGB: #");
        Serial.print(i);
        Serial.print(" | ");
        Serial.print(redVal);
        Serial.print(" / ");
        Serial.print(grnVal);
        Serial.print(" / "); 
        Serial.println(bluVal);
      }
      DEBUG += 1;
    }
  }
  // Update current values for next loop
  prevR = redVal;
  prevG = grnVal;
  prevB = bluVal;
  delay(hold); // Pause for optional 'wait' milliseconds before resuming the loop
}


it would be awesome if you could help me !

AWOL

Code: [Select]
else(); {

Please use code tags when posting code.

maddi

as AWOL wrote   
else(); { 
is the error, try
else {
 

 


Go Up