Arduino: SD-Funktionen in Datei auslagern

OP #4923517
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)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren