Forum: Compiler & IDEs String aus FLASH auf SD Karte speichern


von Martin (Gast)


Lesenswert?

Hi,

ich versuche gerade einen String aus dem Flash auf einen SD-Karte zu 
speichern. Leider kommt nichts lesbares an.
1
//global
2
const char text[] PROGMEM = "Hallo Welt!";
3
4
5
//local
6
char c;
7
const char* addr;
8
9
10
Fopen(FileNameSD,F_WRITE);
11
12
addr = text;
13
while( ( c = pgm_read_byte( addr++ ) ) != '\0' ) {
14
   Fwrite( c, 1 );
15
}
16
17
Fclose();

Als der String noch im Datenspeicher stand, funktionierte es problemlos.
1
char text[] = "Hallo Welt!";
2
3
.
4
.
5
.
6
7
Fwrite( text, strlen(text) );


Jemand einen Idee, woran es liegen könnten?


Gruß
Martin

von Hc Z. (mizch)


Lesenswert?

Ich kenne Dein Fwrite nicht.  Aber Dir fällt schon auf, dass Du im 
funktionierenden
1
Fwrite( text, strlen(text) );
einen Pointer als erstes Argument übergibst, aber in
1
  char c;
2
  [..]
3
  Fwrite( c, 1 );
ein char?  Da sollte doch eine Warnung kommen und es ist keine gute 
Idee, die zu ignorieren.

Die einfachste Lösung wäre, &c zu übergeben.

von Martin (Gast)


Lesenswert?

1
 unsigned int Fwrite(unsigned char *buf, unsigned int count);

von Holger Klabunde.

Die Warnung kommt aber in beiden Fällen.

von Martin (Gast)


Lesenswert?

Den Pointer zu übergeben funktioniert. Danke.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.