Beginner Problem with error code:

#define LED1 13
#define LED2 12
#define TASTER 2
int delay100 = 100;

enum FlashState {OFF, MONO, ALTERNATE, AMERICAN, NUM_FLASHSTATE}; 
// entspricht    0     1        2         3            4  

FlashState mode; // globale Variable zum Blinkerzustand

FlashState AllOff (int led1, int led2) {
  // Schaltet alle LEDs dauerhaft aus.
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  return OFF;
}

FlashState MonoFlash (int led1, int led2) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
delay(100);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
delay(100);
return MONO;
}

FlashState AltFlash (int led1, int led2) {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
delay(100);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(100);
}

FlashState AmiFlash (int led1, int led2, unsigned long del) {
digitalWrite(led1, HIGH);
delay(del/4);
digitalWrite(led1, LOW);
delay(del/2);
digitalWrite(led1, HIGH);
delay(del/4 );
digitalWrite(led1, LOW);
delay(del/2);
digitalWrite(led1, HIGH);
delay(del/4);
digitalWrite(led1, LOW);
delay(del/2);
digitalWrite(led2, HIGH);
delay(del/4);
digitalWrite(led2, LOW);
delay(del/2);
digitalWrite(led2, HIGH);
delay(del/4);
digitalWrite(led2, LOW);
delay(del/2);
digitalWrite(led2, HIGH);
delay(del/4);
digitalWrite(led2, LOW);
delay(del/2);
}


void setup() {
  // put your setup code here, to run once:
  //Iitialisierung der Ein- und Ausgänge
  
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(TASTER, INPUT);

  mode = AllOff(LED1, LED2);
  mode = MonoFlash(LED1, LED2);
  mode = AltFlash(LED1, LED2);
  mode = AmiFlash(LED1, LED2, delay100);
}


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

  // Ist der Taster gedrückt, dann schalte einen Zustand weiter
  // Auf OFF folgt MONO
  // Auf MONO folgt ALTERNATE
  // Auf ALTERNATE folgt AMERICAN
  // Auf AMERICAN folgt OFF
  // ++mode %= 4; // Bitte entschlüsseln!!!!!!!

digitalRead(TASTER);




  switch (mode) {
    case OFF: AllOff(LED1, LED2);
              break;
    case MONO:  
              break;
    case ALTERNATE:
              break;
    case AMERICAN:
              break;
    default:          
  }
}

Output:
C:\Users\erse\AppData\Local\Temp.arduinoIDE-unsaved2023121-15436-2rb437.pfi3t\sketch_feb21a\sketch_feb21a.ino: In function 'void loop()':

C:\Users\erse\AppData\Local\Temp.arduinoIDE-unsaved2023121-15436-2rb437.pfi3t\sketch_feb21a\sketch_feb21a.ino:112:3: error: expected primary-expression before '}' token
}
^

exit status 1

Compilation error: expected primary-expression before '}' token

I don't know the problem, just so you know this project is in an unfinished state so there may be some stuff missing in terms of functionality

does default: need a break?

I don't know, does it?

ask the computer (try it and find out)

well I did that, it just still gives me the same error message.

the same error? it doesn't for me

but there are 2 other errors because not all your functions have a return statement

/* Header
 *  Author: Eric Seibel
    Date: 21.02.2023
    Name: Flasher-ProSeries Multi Mode
    Description: Allows for multiple Flash modes and detects when the Button is pressed 
 */

#define LED1 13
#define LED2 12
#define TASTER 2

int delay100 = 100;
int TasterZaehler = 0;
int TasterStatus = 0;
int VorherigerTasterStatus = 0;

enum FlashState {OFF, MONO, ALTERNATE, AMERICAN, NUM_FLASHSTATE}; 
// entspricht    0     1        2         3            4  

FlashState mode; // globale Variable zum Blinkerzustand
int modus = 0;

FlashState AllOff (int led1, int led2) {
  // Schaltet alle LEDs dauerhaft aus.
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  return OFF;
}

FlashState MonoFlash (int led1, int led2) {
  // Lässt die LEDs gleichzeitig blinken
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  delay(100);
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  delay(100);
  return MONO;
}

FlashState AltFlash (int led1, int led2) {
  // Lässt die LEDs wechsel blinken
  digitalWrite(led1, HIGH);
  digitalWrite(led2, LOW);
  delay(100);
  digitalWrite(led1, LOW);
  digitalWrite(led2, HIGH);
  delay(100);
  return ALTERNATE;
}

FlashState AmiFlash (int led1, int led2, unsigned long del) {
  // Lässt die LEDs im AmiStyle blinken
  digitalWrite(led1, HIGH);
  delay(del/4);
  digitalWrite(led1, LOW);
  delay(del/2);
  digitalWrite(led1, HIGH);
  delay(del/4 );
  digitalWrite(led1, LOW);
  delay(del/2);
  digitalWrite(led1, HIGH);
  delay(del/4);
  digitalWrite(led1, LOW);
  delay(del/2);
  digitalWrite(led2, HIGH);
  delay(del/4);
  digitalWrite(led2, LOW);
  delay(del/2);
  digitalWrite(led2, HIGH);
  delay(del/4);
  digitalWrite(led2, LOW);
  delay(del/2);
  digitalWrite(led2, HIGH);
  delay(del/4);
  digitalWrite(led2, LOW);
  delay(del/2);
  return AMERICAN;
}


void setup() {
  // put your setup code here, to run once:
  //Iitialisierung der Ein- und Ausgänge
  
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(TASTER, INPUT);

  mode = AllOff(LED1, LED2);
  mode = MonoFlash(LED1, LED2);
  mode = AltFlash(LED1, LED2);
  mode = AmiFlash(LED1, LED2, delay100);
}


void loop() {
  // ++mode %= 4; // Bitte entschlüsseln!!!!!!!

  TasterStatus = digitalRead(TASTER);
  modus = mode;
  // compare the buttonState to its previous state
  if (TasterStatus != VorherigerTasterStatus) {
    // if the state has changed, increment the counter
    if (TasterStatus == HIGH) {
      // if the current state is HIGH then the button went from off to on:
      ++modus %= 4;
      TasterZaehler++;
      Serial.println("Veränderung");
      Serial.print("Wie oft der Taster gedrückt wurde: ");
      Serial.println(TasterZaehler);
    } else {
      // if the current state is LOW then the button went from on to off:
      Serial.println("Unverändert");
    }
    // Delay a little bit to avoid bouncing
    delay(50);
  }
  // save the current state as the last state, for next time through the loop
  VorherigerTasterStatus = TasterStatus;


  switch (mode) {
    case OFF: AllOff(LED1, LED2);
              break;
    case MONO: MonoFlash(LED1, LED2); 
              break;
    case ALTERNATE: AltFlash(LED1, LED2);
              break;
    case AMERICAN: AmiFlash(LED1, LED2, delay100);
              
    default:          
  }
}

This is my updated code, still gives me the original error code

you can ignore the whole taster thing added, i think

where did you add the break;?

Oh, I just added it. I'm sorry, I deleted the break of AmiFlash instead of adding one behind default. It works now! Thank you

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.