Hallo Leute,
und zwar habe ich folgendes Problem / bzw. Denkfehler.
Ich hab eine Datei auf die SD Karte gepackt namens 0.
Diese Datei fängt an mit dem Inhalt:
1111111101000000
Nun möchte ich mit hilfe von Holger Klabuntes SD libarys von der
SD-Karte lesen.
1 | switch(GetDriveInformation())
|
2 | {
|
3 | case 1: //ALL is Working
|
4 | SDstatus=F_OK;
|
5 | break;
|
6 | case 2:
|
7 | imageL[0][1][0]=0; //FAT-Type nicht erkannt
|
8 | break;
|
9 | case 3:
|
10 | imageL[0][2][0]=0; //CF gives no answer
|
11 | break;
|
12 | case 4:
|
13 | imageL[0][3][0]=0; // no response from card return CMD0_TIMEOUT;
|
14 | break;
|
15 | default:
|
16 | imageL[0][8][0]=0; //other errors
|
17 | }
|
18 |
|
19 | if(SDstatus==F_OK)
|
20 | {
|
21 |
|
22 | unsigned char buffer[2];
|
23 | unsigned int readbytes;
|
24 |
|
25 | switch(Fopen("0", F_READ)) //Datei Öffnen
|
26 | {
|
27 | case F_OK: //Öffnen erfolgreich
|
28 | readbytes=Fread(buffer,2); // Achte auf das & vor by !
|
29 | imageR[0][0][0]=readbytes; //Anzahl von Bytes
|
30 | break;
|
31 | case F_ERROR:
|
32 | imageR[0][1][0]=0; //Datei kann nicht geöffnet werden
|
33 | break;
|
34 | }
|
35 |
|
36 | bufnr=1;
|
37 | if(buffer[bufnr]&0b00000001)
|
38 | imageR[0][0][1]=0;
|
39 | if(buffer[bufnr]&0b00000010)
|
40 | imageR[0][1][1]=0;
|
41 | if(buffer[bufnr]&0b00000100)
|
42 | imageR[0][2][1]=0;
|
43 | if(buffer[bufnr]&0b00001000)
|
44 | imageR[0][3][1]=0;
|
45 | if(buffer[bufnr]&0b00010000)
|
46 | imageR[0][4][1]=0;
|
47 | if(buffer[bufnr]&0b00100000)
|
48 | imageR[0][5][1]=0;
|
49 | if(buffer[bufnr]&0b01000000)
|
50 | imageR[0][6][1]=0;
|
51 | if(buffer[bufnr]&0b10000000)
|
52 | imageR[0][7][1]=7;
|
Allerdings liefert mir die Datei als Ausgabe für
buffer[0] den wert 0b0010000 und für
buffer[1] den wert 0b0100100
buffer[0] sollte meienr überlegung nach 0b11111111
und buffer[1] 0b01000000 auswerfen.
Habe ich irgentwo einen Denkfehler, beim lesen oder schreiben der Daten
in die Datei?
PS. imageR ist für mich nur eine Ausgabe auf RGB Leds (kein display
vorhanden)