Forum: Mikrocontroller und Digitale Elektronik Warum spuckt die IDE einen Fehler beim kompilieren aus?


von Fabian W. (prog_fab)


Lesenswert?

Moin Moin,

ich möchte den Wert eines DS18B20 Temperatursensors auf meinem OLED 
Display ausgeben lassen, allerdings ist die IDE andauernd am meckern und 
ich verstehe es einfach nicht... Wäre cool, wenn mir da jemand helfen 
könnte. Bin halt relativ neu auf dem Gebiet und dementsprechend noch 
nicht so fit. Bei den Fehlermeldungen habe ich einfach nur meinen echten 
Namen rausgelöscht. Datenschutz undso ;)

Hier mein Code:
1
#include <SPI.h>
2
#include <Wire.h>
3
#include <Adafruit_GFX.h>
4
#include <Adafruit_SH1106.h>
5
#include <OneWire.h>
6
#include <DallasTemperature.h>
7
8
#define OLED_RESET 4
9
Adafruit_SH1106 display(OLED_RESET);
10
11
#define ONE_WIRE_BUS 2
12
13
OneWire ourWire(ONE_WIRE_BUS);
14
DallasTemperature sensors(&ourWire);
15
16
void setup()   {                
17
18
  //I2C Adresse Initialisieren
19
  display.begin(SH1106_SWITCHCAPVCC, 0x3C);
20
  
21
  //Dallas Library Initialisieren
22
  sensors.begin();
23
}
24
25
#define DRAW_DELAY 118
26
#define D_NUM 47
27
28
void loop(){
29
  sensors.requestTemperatures(); //Temperatur abfragen
30
  
31
  display.clearDisplay();
32
  
33
  display.setTextColor(WHITE); // Textfarbe setzen
34
  
35
  display.setTextSize(2.5); // Textgroesse setzen
36
  
37
  display.setCursor(1,1); // Textstartposition einstellen
38
  display.println("Oil:"); // Text anzeigen
39
  display.setCursor(1,20);
40
  display.println(sensors.getTempCByIndex(0) );
41
  
42
  display.setCursor(1,49);
43
  display.println("Water:");
44
  
45
  display.setCursor(1,25);
46
  display.println("OilP.:");
47
  
48
  display.display();
49
  delay(8000);
50
  display.clearDisplay();
51
52
}

Hier die Fehlermeldungen:

Arduino: 1.8.5 (Windows 7), Board: "Arduino/Genuino Uno"

In file included from 
C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a_BACKUP.ino:5:0:

C:\Users\Documents\Arduino\libraries\Adafruit_SH1106-master/Adafruit_SH1 
106.h:141:7:  error: redefinition of 'class Adafruit_SH1106'

 class Adafruit_SH1106 : public Adafruit_GFX {

       ^

In file included from 
C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a.ino:5:0:

C:\Users\Documents\Arduino\libraries\Adafruit_SH1106-master/Adafruit_SH1 
106.h:141:7:  error: previous definition of 'class Adafruit_SH1106'

 class Adafruit_SH1106 : public Adafruit_GFX {

       ^

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a_BACKUP.ino:8:24: error: redefinition 
of 'Adafruit_SH1106 display'

 Adafruit_SH1106 display(OLED_RESET);

                        ^

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a.ino:10:17: note: 'Adafruit_SH1106 
display' previously declared here

 Adafruit_SH1106 display(OLED_RESET);

                 ^

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a_BACKUP.ino: In function 'void 
setup()':

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a_BACKUP.ino:10:6: error: redefinition 
of 'void setup()'

 void setup()   {

      ^

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a.ino:17:6: note: 'void setup()' 
previously defined here

 void setup()   {

      ^

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a_BACKUP.ino: In function 'void loop()':

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a_BACKUP.ino:24:6: error: redefinition 
of 'void loop()'

 void loop() {

      ^

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a.ino:29:6: note: 'void loop()' 
previously defined here

 void loop(){

      ^

exit status 1
Fehler beim Kompilieren für das Board Arduino/Genuino Uno.

: Verschoben durch User
von Sven B. (scummos)


Lesenswert?

Sieht aus, als würde dem genannten Header ein Include-Guard fehlen (das 
#ifndef FOO_H #define FOO_H ... #endif).

von W.S. (Gast)


Lesenswert?

Fabian W. schrieb:
> allerdings ist die IDE andauernd am meckern und
> ich verstehe es einfach nicht...

Kannst du lesen? Insbesondere das:
"error: redefinition of 'class Adafruit_SH1106'"

Das ist doch einfach zu lesen und zu verstehen: du hast 
"Adafruit_SH1106" zweimal in verschiedenen Quelldateien definiert. 
Nämlich in:

a) sketch_may21a_BACKUP.ino
und
b) Adafruit_SH1106.h

So, jetzt überlege dir erstmal, was denn davon eigentlich der Mumpitz 
ist.

W.S.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.