Forum: Mikrocontroller und Digitale Elektronik Arduino: SD-Funktionen in Datei auslagern


von Patrick N. (thanekrios)


Lesenswert?

Hallo,

ich möchte gerne Daten von einer SD-Karte einlesen. Dies soll in einer 
ausgelagerten .c Datei geschehen, damit die Hauptdatei schön 
übersichtlich bleibt. Ich bekomme es aber nicht hin. Binde ich 
grundsätzlich falsch ein? Hab auch schon versucht alle Dateien in den 
Sketchordner zu tun hat aber auch nicht geholfen

Fehlermeldung:
1
Arduino: 1.6.5 (Windows 8.1), Platine: "Arduino Uno"
2
3
In file included from userinterface.c:2:0:
4
userinterface.h:5:16: fatal error: SD.h: No such file or directory
5
 #include "SD.h"
6
                ^
7
compilation terminated.
8
Fehler beim Kompilieren.


Mein Code sieht bis jetzt so aus:

Arduinodatei:
1
#include <SoftwareSerial.h>
2
#include "userinterface.h"
3
4
#define MAX_ZUTATEN 18
5
#define MAX_WORTLAENGE 15
6
7
SoftwareSerial bluetooth(5,6); // RX,TX
8
9
char zutaten[MAX_ZUTATEN][MAX_WORTLAENGE];
10
11
12
void setup() {
13
  Serial.begin(9600);
14
  Serial.println("Go:");
15
  bluetooth.begin(9600);
16
17
18
  if(positioneninit())
19
  {
20
    Serial.println("Fehler Initialisierung");
21
  }
22
}
23
24
25
void loop() {
26
27
}

userinterface.h:
1
#ifndef USERINTERFACE_h
2
#define USERINTERFACE_h
3
4
#include "Arduino.h"
5
#include "SD.h"
6
#include "SPI.h"
7
8
#define MAX_ZUTATEN 18
9
#define MAX_WORTLAENGE 15
10
11
//VARIABLENDEKLARATION
12
extern char zutaten[MAX_ZUTATEN][MAX_WORTLAENGE];
13
14
//FUNKTIONEN DEKLARATION
15
int positionsinit(void);
16
17
#endif

userinterface.c
1
#include "Arduino.h"
2
#include "userinterface.h"
3
4
File stream;
5
6
int positionsinit(){
7
8
int i=0; //Zaehler
9
int eingeleseneBytes;
10
int sdpos; //Position auf der SD-Karte
11
int zpos; //Position der Zutat
12
char cbuffer[MAX_WORTLAENGE]; //Einlesebuffer
13
14
// SD-Karte initialisieren
15
  Serial.print("Initializing SD card...");
16
17
  if (!SD.begin(4)) { //4= Chip Select
18
    Serial.println("initialization failed!");
19
    return;
20
  }
21
  Serial.println("initialization done.");
22
23
24
stream = SD.open("test.txt");
25
if (stream) { weiterer CODE
26
}

MfG
Patrick


Edit: wenn ich die Dateien SD.h und SPI.h in die Arduinodatei inklude. 
Kommt folgende Fehlermeldung:
1
userinterface.c: In function 'positionsinit':
2
userinterface.c:14: error: 'Serial' undeclared (first use in this function)
3
   Serial.print("Initializing SD card...");
4
   ^
5
userinterface.c:14:3: note: each undeclared identifier is reported only once for each function it appears in
6
userinterface.c:16: error: 'SD' undeclared (first use in this function)
7
   if (!SD.begin(4)) { //4= Chip Select
8
        ^
9
userinterface.c:23: error: 'stream' undeclared (first use in this function)
10
 stream = SD.open("test.txt");
11
 ^
12
'Serial' undeclared (first use in this function)

: Bearbeitet durch User
von nixwasigenau (Gast)


Lesenswert?

einfach einen neuen TAB (STRG+SHIFT+N) eröffnen - datei wird automatisch 
eingebunden !

von Patrick N. (thanekrios)


Lesenswert?

Besten Dank!

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.