Hallo, ich habe mit einem c#-Programm byteweise auf eine SDcard eine Reihe von bytes geschrieben. Diese sind wirklich auf der Karte gespeichert, habe ich verifiziert. Jedoch
mit dataFile.read(my_buffer, 16); sind sie alle auf Null.
Woran kann es liegen?
[code]
// SD-Test
#include <SPI.h>
#include <SD.h>
File root;
const int chipSelect = 3;
byte SDstate = 0; //SD not init
/*struct stc_set{
// Header
byte Format; // bit 0: 0=32 oder 1=128
// bit1/2: 00= freies Muster,01=Bild,10=Schrift,11= …
// bit3: 0= keine Wiederholung, 1=Wiederholung
byte Anzahl;// Musterlänge (bei Wiederholung=1 >> da Weben wird beendet durch Pultbedienung)
byte reserve[14];
long Muster[1024]; // 1024x32bit (unten =0, oben=1)
//oder je nach Format bit 0
//long Muster[1024x4]; // 1024x128bit (unten =0, oben=1)
};
stc_set *pak;*/
File SendFile;
byte my_buffer[16];
//-------------------------------------------
void setup() {
Serial.begin(9600,SERIAL_8N2);
pinMode(chipSelect, OUTPUT); // change this to 53 on a mega // don't follow this!!
digitalWrite(chipSelect, HIGH); // Add this line
Serial.println("Initializing SD card...");
for(int n = 0;n<10;n++){
delay(100);
if (!SD.begin(chipSelect)) {
Serial.println("initialization failed!");
}
else{
SDstate = 1; //SD initialised
}
}
if(SDstate == 1){
Serial.println("initialization done.");
root = SD.open("/");
}
File dataFile = SD.open("Test.txt");
if (dataFile) {
dataFile.seek(0);
while (dataFile.available()>=16) {
dataFile.read(my_buffer, 16);
}
dataFile.close();
}
for(int n = 0; n < 16; n++){
Serial.print((byte) my_buffer[n]);
}
}
//-------------------------------------------
void loop() {
// put your main code here, to run repeatedly:
}
[/code]