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)
|