Hallo Habe die libs von Roland Regel und kann die sd card im fat 16 lesen aber nicht schreiben struct partition_struct* partition = partition_open(sd_raw_read, sd_raw_read_interval, sd_raw_write, sd_raw_write_interval, 0 ); if(!partition) { /* If the partition did not open, assume the storage device * is a "superfloppy", i.e. has no MBR. */ partition = partition_open(sd_raw_read, sd_raw_read_interval, sd_raw_write, sd_raw_write_interval, -1 ); if(!partition) { uart_puts_p(PSTR("opening partition failed\n")); return(0); } else { uart_puts_p(PSTR("opening partition OK\n")); } } struct fat16_fs_struct* fs = fat16_open(partition); if(!fs) { uart_puts_p(PSTR("opening filesystem failed\n")); } else { uart_puts_p(PSTR("opening filesystem OK\n")); } /* open root directory */ struct fat16_dir_entry_struct directory; fat16_get_dir_entry_of_path(fs, "/", &directory); struct fat16_dir_struct* dd = fat16_open_dir(fs, &directory); if(!dd) { uart_puts_p(PSTR("opening root directory failed\n")); } else { uart_puts_p(PSTR("opening root directory OK\n")); } struct fat16_dir_entry_struct dir_entry; while(fat16_read_dir(dd, &dir_entry)) { uint8_t spaces = sizeof(dir_entry.long_name) - strlen(dir_entry.long_name) + 4; uart_puts(dir_entry.long_name); uart_putc(dir_entry.attributes & FAT16_ATTRIB_DIR ? '/' : ' '); while(spaces--) uart_putc(' '); uart_putdw_dec(dir_entry.file_size); uart_putc('\n'); } struct fat16_dir_entry_struct file_entry; if(!fat16_create_file(dd,"test.txt", &file_entry)) { uart_puts_p(PSTR("error creating file: ")); uart_putc('\n'); } else { uart_puts_p(PSTR("ok creating file: ")); uart_putc('\n'); } } ales ergebnis kommt ok creating file. aber auf der sd ist nichts drauf.
blöde frage, aber muss man ja auch ausgrenzen: Ist die Karte schreibgeschützt? Also ich meine hardware-mäßig?
Hallo nein karte ist nichtt schreibgeschützt. Ist die definition des dateinamens so wie oben koreckt??? Liegt es daran??? Den ich bekomme keinen Fehler zurückgeliefert. Kann er den dateinamen nicht auswerten und legt einen leeren dateinamen an denn sieht man ja nicht. Danke
Schau mal im Headerfile nach. Da gibt es m.W. einen Schalter für read-only.
hallo also wenn du das meinst #define FAT16_WRITE_SUPPORT 1 ist auf eins. wat nun?? gibt es noch andere gute fat16 implementationen??? danke
Ich finde das hier ist ganz brauchbar: http://elm-chan.org/fsw/ff/00index_e.html Kann sogar FAT32. Läuft auf meinem ARM7 ohne Probleme. Zu anderen uCs kann ich nichts sagen.
mir ist aufgefallen wenn ich die obige funktion 2 mal aufrufe schreibt er die test.txt warum???? wenn ich die test.txt ins / verzeichniss mit dem pc schreibe und nur einmal die funktion aufrufe dann kommt kein fehler das die datei schon vorhanden ist erst wenn ich die obige funktion wieder zweimal aufrufe ist schon komisch..
Habe noch herausgefunden das ich ein Verzeichniss ertsellen kann wenn ich darin eine datei erzeugen will kommt kein fehler aber ich sehe diese datei nicht und das blöde ist ich kann das verzeichniss am pc nicht löschen da es nicht leer ist da muß doch was sein aber wo???? Danke
Habe noch eins gefunden aber ich begreife nicht warum es so ist. ich muß nach dem ich die Partition schließe die Partition noch mal öffnen und schleißen danach ist die datei auf der SD card. wenn ich die Partition nicht nochmal öffne dann wird die datei nicht erzeugt. warum weiß ich nicht???? Aber so gehts erstmal. 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.