Gast
#1237828
Salu zusammen
Ich habe hier ein ganz komisches Phänomen und bin kurz vor dem
Verzweifeln...
Folgendes: Ich will Daten auf eine SD-Card ablegen. Funktioniert auch
alles, dass heisst, die Daten werden gespeichert. NUR, leider nicht an
der vorher eingestellten Adresse und ich finde zum Teufel einfach nicht
woran es liegt.
Habe eine 1GB Karte von PNY und sonst noch ein paar, aber momentan bin
ich mit der am probieren. Der erste Sektor für Daten ist 519. Also
ergibt sich die Startadresse zum Daten schreiben zu 519*512 = 265728
Dies wir in einer unsigned long Variable abgelegt.
Ich setzte dann einen Char Buffer zusammen, welchen ich am Schluss an
die Karte schicke. (Command zum Schreiben / Block) Der sieht
folgendermassen aus:
temp_buffer[0] = 0x58
temp_buffer[1] = 0x0
temp_buffer[2] = 0x4
temp_buffer[3] = 0xe
temp_buffer[4] = 0x0
temp_buffer[5] = 0xff
0x58 = CMD24 Write Block
Dann kommt die Adresse die eben 265727 sein sollte (40E00 = 265728) und
am Schluss die CRC welche ich nicht benötige. So, der liebe Kerl fängt
nun die Daten bei der Adresse 138240 an zu schreiben. Ich schnall
einfahc nicht wieso??
Hier noch meine Routine wie ich die umrechnung mache zwischen DEZ
Adresse und HEX Adresse.
int i;
char temp_buffer[6];
char temp;
temp_buffer[0] = (cmd);// Schreibe Command an erste Position
for(i = 3; i >= 0; i--)
{
temp = (char)(data >> (8*i)); // Casten der Daten
temp_buffer[4 - i] = (temp); // abfüllen der Daten
}
temp_buffer[5]=(crc); // Schreibe CRC an letzte Position
for(i = 0; i < 6; i++) // Sende Command mittels temp_buffer
sd_spi_send_byte(temp_buffer[i]);
Hat hier vielleicht jemand eine Idee an was das liegen könnte?
Achja, habe noch eine 16MB Karte mit FAT12 formatiert. Nun, dort ist die
Startadresse 28672 und da funktioniert alles tadellos. Daten werden also
an der korrekten Adresse abgelegt. nur wenn die Adresse "grösser" wird,
gibts probleme.
Steh echt auf dem Schlauch. Denke es ist was ganz einfaches, aber komm
einfach nicht drauf. Vielleicht kann mir jemand helfen, wäre echt toll
Gruss Guest