Und - zack! - habe ich wieder ein Problem. :-\
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
//#include "splash.h"
Adafruit_SSD1306 display;// = Adafruit_SSD1306(128, 64, &Wire, -1, 800000);
void setup(){
Serial.begin(115200);
Wire.begin(4, 5);
byte addr = 0;
for(byte i = 0x3C;i <= 0x3D;i++){
Wire.beginTransmission(i);
if(Wire.endTransmission() == 0){
addr = i;
break;
}
}
Serial.println(addr);
if(addr){
display = Adafruit_SSD1306(128, 64, &Wire, -1, 800000);
}
else{
display = Adafruit_SSD1306(128, 64, &SPI, -1, SS, 800000);
}
}
void loop(){/* ... */}
Dieses ESP8266-Programm soll herausfinden, ob das Display über SPI oder I²C angeschlossen ist. Oder besser gesagt: Wenn es kein I²C-Gerät an den Adressen 0x3C oder 0x3D vorfindet, "glaubt" es, dass das Display über SPI verbunden ist. Ferner soll es dann im loop Zeug auf dem Display ausgeben, das funktioniert und ist daher egal.
Mein Problem: Wenn ich das Programm kompiliere, kommt diese Fehlermeldung, die Zeile 25 betreffend:
exit status 1
use of deleted function 'Adafruit_SSD1306& Adafruit_SSD1306::operator=(const Adafruit_SSD1306&)'
Wieso funktioniert das nicht? Es hat doch auch funktioniert, als ich direkt bei der "display"-Deklarierung dieses " = Adafruit_SSD1306(128, 64, &Wire, -1, 800000)" hingeschrieben habe (siehe Auskommentiertes in Zeile 7). Kann mir da jemand helfen?