Änderung der Ausgabe auf OLED Display mit Tasterdruck

Hallo Zusammen,

mein erster Versuch hier, bin vom Arduino fasziniert aber noch Anfänger.
Ok, was habe ich vor, ich möchte mit Hilfe von 4 Tastern jeweils eine Relaisgruppe aktivieren.
Jeder druck auf eine der 4 Tasten soll die anderen 3 ausschalten und erst dann das entsprechende Relais
aktivieren. So das immer und absolut eine Relaisgruppe aktiv ist und zu keinem Zeitpunkt eine 2te.
Das habe ih fertig und funktioniert auch ganz wunderbar.
Nun möchte ich erreichen, das auf einem kleinen OLED Display die jeweils gewählte Relaisgruppe angezeigt wird und da habe ich mein Problem.
Für alle 4 Taster bekomme ich beim Codecheck die Meldung 'displaywrite' was not declared in this scope.
Sicher fehlt mir irgendwas im Bereich bevor die Loop startet.
Mag sich jemand den Code ansehen, und mir sagen was fehlt oder falsch ist?

//4pushswitch with OLEDoutput

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2


#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif



int buttonstate1 = 0;
int buttonstate2 = 0;
int buttonstate3 = 0;
int buttonstate4 = 0;
int amp1 = 6; //digital output pin6
int amp2 = 7; //digital output pin7
int amp3 = 8; //digital output pin8
int amp4 = 9; //digital output pin9

String ampdisplay;

void setup()

{
Serial.begin(9600);

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 128x32)
  display.clearDisplay();  
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.println("No Amp!");
  display.println("Push Btn!");
  display.display();


  pinMode(amp1, OUTPUT);
  pinMode(amp2, OUTPUT);
  pinMode(amp3, OUTPUT);
  pinMode(amp4, OUTPUT);

  pinMode (2, INPUT); //Taster 1
  pinMode (3, INPUT); //Taster 2
  pinMode (4, INPUT); //Taster 3
  pinMode (5, INPUT); //Taster 4
  digitalWrite(amp1,HIGH); //Relais abgefallen
  digitalWrite(amp2,HIGH); //Relais abgefallen
  digitalWrite(amp3,HIGH); //Relais abgefallen
  digitalWrite(amp4,HIGH); //Relais abgefallen
  ampdisplay = String("No Amp!");

}

void loop()

{
  

  
buttonstate1 = digitalRead(2); //Taste 1 einlesen
buttonstate2 = digitalRead(3); //Taste 2 einlesen 
buttonstate3 = digitalRead(4); //Taste 3 einlesen
buttonstate4 = digitalRead(5); //Taste 4 einlesen


if (buttonstate1 == HIGH) {
 
    {
     digitalWrite(amp4, HIGH); //amp4 ausschalten
     digitalWrite(amp3, HIGH); //amp3 ausschalten
     digitalWrite(amp2, HIGH); //amp2 ausschalten 
     delay(300);
     digitalWrite(amp1, LOW); //amp1 einschalten
     Serial.println("AMP1 eingeschaltet");//Serielle Debugmeldung
     ampdisplay=String("Amp 1");
     displaywrite (ampdisplay);
     exit;
    }
}
if (buttonstate2 == HIGH) {
 
    {
     digitalWrite(amp4, HIGH); //amp4 ausschalten
     digitalWrite(amp3, HIGH); //amp3 ausschalten
     digitalWrite(amp1, HIGH); //amp1 ausschalten 
     delay(300);
     digitalWrite(amp2, LOW); //amp1 einschalten
     Serial.println("AMP2 eingeschaltet");//Serielle Debugmeldung
     ampdisplay=String("Amp 2");
     displaywrite (ampdisplay);
     exit;
    }
}    
if (buttonstate3 == HIGH) {
 
    {
     digitalWrite(amp4, HIGH); //amp4 ausschalten
     digitalWrite(amp2, HIGH); //amp3 ausschalten
     digitalWrite(amp1, HIGH); //amp4 ausschalten 
     delay(300);
     digitalWrite(amp3, LOW); //amp1 einschalten
     Serial.println("AMP3 eingeschaltet");//Serielle Debugmeldung
     ampdisplay=String("Amp 3");
     displaywrite (ampdisplay);
     exit;
    }
 }   
if (buttonstate4 == HIGH) {
 
    {
     digitalWrite(amp3, HIGH); //amp3 ausschalten
     digitalWrite(amp2, HIGH); //amp2 ausschalten
     digitalWrite(amp1, HIGH); //amp1 ausschalten 
     delay(300);
     digitalWrite(amp4, LOW); //amp4 einschalten
     Serial.println("AMP4 eingeschaltet");//Serielle Debugmeldung
     ampdisplay=String("Amp 4");
     displaywrite (ampdisplay);
     exit;
    }    
  } 
}

Ich hab schon etliches an Zeit mit suchen verbracht, aber nix passendes gefunden.

vielen Dank im voraus,

OlTan

Die Fehlermeldung ist doch klar definiert, displaywrite ist hier Schuld. Du schreibst im Code ja immer display.begin, display.clearDisplay, display.printlln und schließlich auch display.display jeweils mit einem PUNKT. Woher kommt jetzt deine Idee, einen Anweisung displaywrite neu erfinden zu müssen?

display.write(' '); schreibt ein Zeichen auf das Display, das willst Du nicht.

ampdisplay = String("Amp 4");
display.println(ampdisplay);
display.display();

Sollte tun, was Du möchtest, verwendet aber unnötigerweise String.

display.println("Amp 4");
display.display();

Die kürzere Variante.

Vielen Dank für die Info's und die Mühe.
Hab sen Sketch jetzt umgeschrieben,
ohne string und mit display.println.
Jetzt läuft das kompillieren durch und ich kann den
Code auf das Board laden.
Nach dem Start zeigt das Display "Push Btn! und no Amp",
sowie am Anfang definiert. leider ändert sich die Anzeige nicht,
wenn einer der Taster betätigt wird, woran mag das liegen?
Die Grundfunktion, umschalten der Ausgänge funktioniert sehr gut,
aber display.println scheint nicht ausgeführt zu werden.
Hier nochmal der aktuelle Code:

//4pushswitch with OLEDoutput

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2


#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif



int buttonstate1 = 0;
int buttonstate2 = 0;
int buttonstate3 = 0;
int buttonstate4 = 0;
int amp1 = 6; //digital output pin6
int amp2 = 7; //digital output pin7
int amp3 = 8; //digital output pin8
int amp4 = 9; //digital output pin9

void setup()

{
Serial.begin(9600);

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 128x32)
  display.clearDisplay();  
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.println("Push Btn!");
  display.display();


  pinMode(amp1, OUTPUT);
  pinMode(amp2, OUTPUT);
  pinMode(amp3, OUTPUT);
  pinMode(amp4, OUTPUT);

  pinMode (2, INPUT); //Taster 1
  pinMode (3, INPUT); //Taster 2
  pinMode (4, INPUT); //Taster 3
  pinMode (5, INPUT); //Taster 4
  digitalWrite(amp1,HIGH); //Relais abgefallen
  digitalWrite(amp2,HIGH); //Relais abgefallen
  digitalWrite(amp3,HIGH); //Relais abgefallen
  digitalWrite(amp4,HIGH); //Relais abgefallen
  display.println("no Amp");
  display.display();

}

void loop()

{
  

  
buttonstate1 = digitalRead(2); //Taste 1 einlesen
buttonstate2 = digitalRead(3); //Taste 2 einlesen 
buttonstate3 = digitalRead(4); //Taste 3 einlesen
buttonstate4 = digitalRead(5); //Taste 4 einlesen


if (buttonstate1 == HIGH) {
 
    {
     digitalWrite(amp4, HIGH); //amp4 ausschalten
     digitalWrite(amp3, HIGH); //amp3 ausschalten
     digitalWrite(amp2, HIGH); //amp2 ausschalten 
     delay(300);
     digitalWrite(amp1, LOW); //amp1 einschalten
     Serial.println("AMP1 eingeschaltet");//Serielle Debugmeldung
     display.println("Amp 1");
     display.display();
     exit;
    }
}
if (buttonstate2 == HIGH) {
 
    {
     digitalWrite(amp4, HIGH); //amp4 ausschalten
     digitalWrite(amp3, HIGH); //amp3 ausschalten
     digitalWrite(amp1, HIGH); //amp1 ausschalten 
     delay(300);
     digitalWrite(amp2, LOW); //amp1 einschalten
     Serial.println("AMP2 eingeschaltet");//Serielle Debugmeldung
     display.println("Amp 2");
     display.display();
     exit;
    }
}    
if (buttonstate3 == HIGH) {
 
    {
     digitalWrite(amp4, HIGH); //amp4 ausschalten
     digitalWrite(amp2, HIGH); //amp3 ausschalten
     digitalWrite(amp1, HIGH); //amp4 ausschalten 
     delay(300);
     digitalWrite(amp3, LOW); //amp1 einschalten
     Serial.println("AMP3 eingeschaltet");//Serielle Debugmeldung
     display.println("Amp 3");
     display.display();
     exit;
    }
 }   
if (buttonstate4 == HIGH) {
 
    {
     digitalWrite(amp3, HIGH); //amp3 ausschalten
     digitalWrite(amp2, HIGH); //amp2 ausschalten
     digitalWrite(amp1, HIGH); //amp1 ausschalten 
     delay(300);
     digitalWrite(amp4, LOW); //amp4 einschalten
     Serial.println("AMP4 eingeschaltet");//Serielle Debugmeldung
     display.println("Amp 4");
     display.display();
     exit;
    }    
  } 
}

Gruß OlTan

Du solltest Dich mal schlau machen, was exit; bewirkt.

Gruß Tommy

Wenn Du die Bedingungen mittels else logisch verbindest, schaffst Du eine von Dir vermutlich beabsichtigte Priorisierung. Also exit raus, else rein.

Tommy56:
Du solltest Dich mal schlau machen, was exit; bewirkt.

Das sagt schon der Compiler:
warning: statement has no effect [-Wunused-value]

Frage ist eher, was da beabsichtigt ist?

Teile des Codes habe ich aus anderen Beispielen, dort war das exit in der Auswertung des Taster enthalten.
Ich denke, das Exit hier dafür sorgt die Loop zu verlassen und von vorne anzufangen.
Aber bevor das passiert müste doch "display.println("Amp 1");" ausgeführt werden, und der Disply Inhalt bis zum nächsten Druck auf eine der 4 Tasten erhalten werden, für die Outpupin's funktioniert das so.

Habt Ihr ein Beipiel für die logische Verknüpfung mit "else"?
Es ist für mich noch nicht so einfach das zu durchschauen.
Der Compiler gibt bei der aktuellen Version des Sketch keine Fehlermeldung aus.

michael_x:
Frage ist eher, was da beabsichtigt ist?

Insgesamt ist beabsichtigt, mit 4 Tastern vier Relais zu schalten, wobei immer nur eins aktiv sein darf und auf dem OLED soll das aktuell aktive Relais angezeigt werden, hier mit der bezichnung amp1 bis 4

Gruß OlTan

OlTan:
Aber bevor das passiert müste doch "display.println("Amp 1");" ausgeführt werden, ...

Das passiert auch, aber unterhalb des sichtbaren Bereichs.

Bei Dir fehlt das Löschen des Inhalts und die Neupositionierung des Cursors:

  if (buttonstate1 == HIGH) {
    digitalWrite(amp4, HIGH); //amp4 ausschalten
    digitalWrite(amp3, HIGH); //amp3 ausschalten
    digitalWrite(amp2, HIGH); //amp2 ausschalten
    delay(300);
    digitalWrite(amp1, LOW); //amp1 einschalten
    Serial.println("AMP1 eingeschaltet");//Serielle Debugmeldung
    display.clearDisplay();    // zusätzlich
    display.setCursor(0, 0);   // zusätzlich
    display.println("Amp 1");
    display.display();
  } 
  else if (buttonstate2 == HIGH) {
...
  }
  else if (buttonstate3 == HIGH) {
...
  }
  else if (buttonstate4 == HIGH) {
...
  }

So sieht man was auf der Anzeige, habe ich probiert.

Besten Dank dafür, so funktioniert das sehr gut!!
Jetzt muss nur noch etwas an der Ausrichtung gebastelt werden.
Das Oled hat ja oben eine gelbe Zeile und im unteren Bereich dann eine blauen Bereich.
Zurzeit ist die Ausgabe 2farbig.
Ist eine Frage der Cursorpositioniereung, denke ich.

Gruß OlTan

OlTan:
Besten Dank dafür, so funktioniert das sehr gut!!

Bitte gerne :slight_smile:

Im Prinzip ist jetzt alles fertig und sieht so aus wie ich es gerne hätte, aber:
Zum Start wird im OLED No Amp angezeigt, hier der Codeausschnitt:

{
Serial.begin(9600);

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 128x32)
  display.clearDisplay();  
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(7,0);
  display.setTextSize(1);
  display.println("Luminary Amp switch");
  display.setCursor(20, 12);
  display.setTextSize(2);
  display.println("No Amp");
  display.display();

Blöderweise wird No Amp aber nicht nur einmal angezeigt, sondern in der Zeile darunter nochmal.
Besonders gut zusehen, wenn die Textgrösse auf 1 gestellt wird, warum ist da so.
Mit Textgrösse 2 und der entsprechenden Cursorposition, wandert die 2te Anzeige weit genug nach unten, aber die Spitze vom A ist immer noch zusehen.
Es ist doch bestimmt möglich das "No Amp" nur einmal angezeigt wird?
Bei den Ausgaben für die Ausgänge wird das korrekt angezeigt.

Hier nochmal der aktuelle Stand komplett:

//4pushswitch with OLEDoutput

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2


#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif



int buttonstate1 = 0;
int buttonstate2 = 0;
int buttonstate3 = 0;
int buttonstate4 = 0;
int amp1 = 6; //digital output pin6
int amp2 = 7; //digital output pin7
int amp3 = 8; //digital output pin8
int amp4 = 9; //digital output pin9

void setup()

{
Serial.begin(9600);

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 128x32)
  display.clearDisplay();  
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(7,0);
  display.setTextSize(1);
  display.println("Luminary Amp switch");
  display.setCursor(20, 12);
  display.setTextSize(2);
  display.println("No Amp");
  display.display();


  pinMode(amp1, OUTPUT);
  pinMode(amp2, OUTPUT);
  pinMode(amp3, OUTPUT);
  pinMode(amp4, OUTPUT);

  pinMode (2, INPUT); //Taster 1
  pinMode (3, INPUT); //Taster 2
  pinMode (4, INPUT); //Taster 3
  pinMode (5, INPUT); //Taster 4
  digitalWrite(amp1,HIGH); //Relais abgefallen
  digitalWrite(amp2,HIGH); //Relais abgefallen
  digitalWrite(amp3,HIGH); //Relais abgefallen
  digitalWrite(amp4,HIGH); //Relais abgefallen
  display.println("no Amp");
  display.display();

}

void loop()

{
  
buttonstate1 = digitalRead(2); //Taste 1 einlesen
buttonstate2 = digitalRead(3); //Taste 2 einlesen 
buttonstate3 = digitalRead(4); //Taste 3 einlesen
buttonstate4 = digitalRead(5); //Taste 4 einlesen


if (buttonstate1 == HIGH) {
 
    {
     digitalWrite(amp4, HIGH); //amp4 ausschalten
     digitalWrite(amp3, HIGH); //amp3 ausschalten
     digitalWrite(amp2, HIGH); //amp2 ausschalten 
     delay(300);
     digitalWrite(amp1, LOW); //amp1 einschalten
     Serial.println("AMP1 eingeschaltet");//Serielle Debugmeldung
     display.clearDisplay();    // zusätzlich
     display.setCursor(7,0);
     display.setTextSize(1);
     display.println("Luminary Amp switch");
     display.setTextSize(2);
     display.setCursor(7,9);   // zusätzlich
     display.println("Ausgang 1");
     display.display();
    }
}
else if (buttonstate2 == HIGH) {
 
    {
     digitalWrite(amp4, HIGH); //amp4 ausschalten
     digitalWrite(amp3, HIGH); //amp3 ausschalten
     digitalWrite(amp1, HIGH); //amp1 ausschalten 
     delay(300);
     digitalWrite(amp2, LOW); //amp1 einschalten
     Serial.println("AMP2 eingeschaltet");//Serielle Debugmeldung
     display.clearDisplay();    // zusätzlich
     display.setCursor(7,0);
     display.setTextSize(1);
     display.println("Luminary Amp switch");
     display.setTextSize(2);
     display.setCursor(7,9);   // zusätzlich
     display.println("Ausgang 2");
     display.display();
    }
}    
else if (buttonstate3 == HIGH) {
 
    {
     digitalWrite(amp4, HIGH); //amp4 ausschalten
     digitalWrite(amp2, HIGH); //amp3 ausschalten
     digitalWrite(amp1, HIGH); //amp4 ausschalten 
     delay(300);
     digitalWrite(amp3, LOW); //amp1 einschalten
     Serial.println("AMP3 eingeschaltet");//Serielle Debugmeldung
     display.clearDisplay();    // zusätzlich
     display.setCursor(7,0);
     display.setTextSize(1);
     display.println("Luminary Amp switch");
     display.setTextSize(2);
     display.setCursor(7,9);   // zusätzlich
     display.println("Ausgang 3");
     display.display();
    }
 }   
else if (buttonstate4 == HIGH) {
 
    {
     digitalWrite(amp3, HIGH); //amp3 ausschalten
     digitalWrite(amp2, HIGH); //amp2 ausschalten
     digitalWrite(amp1, HIGH); //amp1 ausschalten 
     delay(300);
     digitalWrite(amp4, LOW); //amp4 einschalten
     Serial.println("AMP4 eingeschaltet");//Serielle Debugmeldung
     display.clearDisplay();    // zusätzlich
     display.setCursor(7,0);
     display.setTextSize(1);
     display.println("Luminary Amp switch");
     display.setTextSize(2);
     display.setCursor(7,9);   // zusätzlich
     display.println("Ausgang 4");
     display.display();
    }    
  } 
}

Hier noch ein Bild der Anzeige.

OlTan:
Im Prinzip ist jetzt alles fertig und sieht so aus wie ich es gerne hätte, aber:
Zum Start wird im OLED No Amp angezeigt, hier der Codeausschnitt:

Blöderweise wird No Amp aber nicht nur einmal angezeigt, sondern in der Zeile darunter nochmal.
Besonders gut zusehen, wenn die Textgrösse auf 1 gestellt wird, warum ist da so.
Mit Textgrösse 2 und der entsprechenden Cursorposition, wandert die 2te Anzeige weit genug nach unten, aber die Spitze vom A ist immer noch zusehen.
Es ist doch bestimmt möglich das "No Amp" nur einmal angezeigt wird?
Bei den Ausgaben für die Ausgänge wird das korrekt angezeigt.

Hier nochmal der aktuelle Stand komplett:

setup(){  //etwas zusammengefasst von mir

display.setCursor(20, 12);
  display.setTextSize(2);
  display.println("No Amp");
  display.display();
...
  display.println("no Amp");
  display.display();
}

Wenn Du es nur einmal haben willst, warum hast du es dann so programmiert, dass es 2 mal ausgegeben wird?

:fearful: ;D Oh mann da war ich betriebsblind, Danke!

Gruß OlTan

Heyho....
Auf dem Bild sieht die Anzeige etwas unstimmig aus, es fehlt jede 2. Zeile. Scheinbar hast Du eine Displayhöhe von 32 Pixeln anstatt 64 einprogrammiert.

In der Tat, wird das Display mit 32 Zeilen initialisiert, gekauft habe ich das Display mal als 128*64 Version.
Stelle ich das init auf 64 Zeilen um, wird das Display nicht mehr initialisiert, es bleibt die letzte Anzeige aus
dem vorherigen Sketch stehen.
Verwendet habe ich den Code aus der Adafruit_SSD1306.h Bibliothek.
Hier der Codeausschnitt der dafür zuständig ist:

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);


#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2


int buttonstate1 = 0;
int buttonstate2 = 0;
int buttonstate3 = 0;
int buttonstate4 = 0;
int buttonstate5 = 0;
int amp1 = 6; //digital output pin6
int amp2 = 7; //digital output pin7
int amp3 = 8; //digital output pin8
int amp4 = 9; //digital output pin9
int noamp = 11; //digital output pin11
void setup()

{
Serial.begin(9600);

  display.begin(SSD1306_SWITCHCAPVCC, 0x3D);  // initialize with the I2C addr 0x3D (for the 128x64)
  display.clearDisplay();  
  display.setTextSize(2);
  display.setTextColor(WHITE);

Entscheiden ist wohl ob bei display.begin 0x3D oder 0x3C steht, D für 64 Zeilen und C für 32 Zeilen.
Lade ich die Beispiele aus der Bibliothek für 64 oder 32 Zeilen, so funktioniert auch hier nur das 32 Zeilen
Sketch.
Also entweder kann mein Display nur 32 Zeilen, oder an dem Init für 64 Zeilen stimmt was nicht. >:(

Gruß OlTan

OlTan:
Entscheiden ist wohl ob bei display.begin 0x3D oder 0x3C steht, D für 64 Zeilen und C für 32 Zeilen.

Man könnte den Kommentar tatsächlich so interpretieren und für Displays von Adafruit könnte das auch so gelten, aber generell ist das nur die I2C-Adresse.

Entscheiden ist wohl ob bei display.begin 0x3D oder 0x3C steht, D für 64 Zeilen und C für 32 Zeilen.

-->Das kann ich so nicht bestätigen. Die 128x64 Zeilen-OLEDs, die ich habe, haben die Adresse 3C. Wenn Du 64 einstellst, und sich das Display damit auch ansteuern lässt.... Du aber ebenfalls nur 32 Zeilen bekommst.... dann sind wohl die Leiterbahnen im Glas halbseitig durchbrochen. Damit habe ich schon 2 Displays halb futsch bekommen....wenn sie wenigstens gar nicht mehr funktionieren würden xD

So sollte es aussehen:

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.setTextSize(2);
  display.println("Push Btn!");
  display.setTextSize(3);
  display.println("No Amp");
  display.display();

Die I2C-Adresse hat nichts mit der Auflösung zu tun.