Hallo Mikrocontroller-Freunde, ich verwende die Bibliothek AVR_FAT32 auf einem Arduino Uno. Ich möchte nun während eine Datei zum lesen geöffnet ist, und auch schon von ihr gelesen wurde, eine zweite Datei zum lesen öffnen. Da die Bibliothek kein File-Handle oder sowas hat, weiß ich nicht, wie ich das machen kann. Es müssten doch Informationen zum Status der ersten Datei erhalten bleiben, während die zweite Datei geöffnet und gelesen wird. Hat jemand von euch eine Lösung dazu? Vielen Dank im Voraus. Grüße Reinhard
Reinhard schrieb: > Hat jemand von euch eine Lösung dazu? Funktionsfähiges (nachvollziehbares) Beispiel posten und zeigen was nicht geht, dann kann man schauen ob und wie es eine Lösung gibt. So einfach ist das.
Nachtrag: nachvollziehbares Beispiel so reduzieren dass es keinen unnötigen Ballast enthält.
Hallo, also wenn das diese lib ist: http://www.mikrocontroller.net/attachment/116369/AVR-mmc-0.6.4.zip scheint das nicht vorgesehen zu sein. Alle Dateioperationen arbeiten da doch mit dem einen "struct File_t file; // wichtige dateibezogene daten/variablen" struct in der file.c, schätze aus Speichergründen. Das müsstest du wohl selber einbauen. Oder sowas wie FatFs nutzen und evtl. die Hardware Ansteuerung aus dieser lib verwenden. Aber hab auch nur n kurzen Blick in die file.c geworfen. Viel Erfolg!
Hallo Wastl, die Antwort von Christian fand ich gut. Danke Christian.
Hallo zusammen, ich bin dabei, die lib von Elm-Chan zu kompilieren. Ich arbeite mit Atmel Studio 6, und ein Arduino Uno R3 ist mein Ziel. Obwohl ich im ffconf.h FF_USE_LFN ausgeschaltet habe mit #define FF_USE_LFN 0 bekomme ich diese Fehlermeldungen: Error 1 undefined reference to `ff_oem2uni' D:\Arduino Projekte\Musterprojekt_FatFs\Release\ff.c 1 1 Musterproj_FatFs Error 2 undefined reference to `ff_wtoupper' D:\Arduino Projekte\Musterprojekt_FatFs\Release\ff.c 1 1 Musterproj_FatFs Error 3 undefined reference to `ff_wtoupper' D:\Arduino Projekte\Musterprojekt_FatFs\Release\ff.c 1 1 Musterproj_FatFs Error 4 undefined reference to `ff_wtoupper' D:\Arduino Projekte\Musterprojekt_FatFs\Release\ff.c 1 1 Musterproj_FatFs Error 5 undefined reference to `ff_uni2oem' D:\Arduino Projekte\Musterprojekt_FatFs\Release\ff.c 1 1 Musterproj_FatFs Error 6 undefined reference to `ff_uni2oem' D:\Arduino Projekte\Musterprojekt_FatFs\Release\ff.c 1 1 Musterproj_FatFs Wer hat eine Idee und kann helfen? Grüße Reinhard
Hallo, sieht fast so aus als fehlt die ffunicode.c in deinem Projekt. Schaue auch nochmal genau in die ffconf.h evtl da noch was vergessen ein/aus zu schalten? Du findest aber auch zig examples zu FatFs im Netz wo man sich funktionierende configs angucken kann. Das wird schon! :)
Hallo Christian, vielen Dank für deine Antwort. Stimmt, die ffunicode_avr.c habe ich in meinem Projekt nicht drin. Mit gutem Grund: denn die beginnt mit #if FF_USE_LFN != 0 wird also nicht gebraucht. Und was mich stutzig macht: mit #define FF_USE_LFN 0 werden auch alle Stellen im Code nicht gebraucht, die ff_oem2uni, ff_wtoupper oder ff_uni2oem aufrufen. Kann es sein, dass die ffconf.h 'zu spät' eingebunden wird?
Reinhard schrieb: > ich bin dabei, die lib von Elm-Chan zu kompilieren. > Ich arbeite mit Atmel Studio 6, und ein Arduino Uno R3 ist mein Ziel. Na so ein Zufall. Beitrag "Re: Fatfs Code funktioniert nicht"
Gerade mal geschaut: Es gibt wohl eine Arduino lib FatFs, wo die Elm-Chan lib schon auf den Arduino getrimmt wurde. Ohne Garantie, da ich das nie getestet habe! Ich kenn nur die Elm-chan lib selbst, die hervorragend programmiert ist.
Fanke Falk, das sieht sehr gut aus :-)) Ich baue damit mal mein vorhandenes Projekt um. Viele Grüße Reinhard
Hallo Andreas, danke für den Tipp. Ich werde das auch mal ausprobieren. Viele Grüße Reinhard
Reinhard schrieb: > Hallo Christian, > vielen Dank für deine Antwort. > Stimmt, die ffunicode_avr.c habe ich in meinem Projekt nicht drin. > Mit gutem Grund: > denn die beginnt mit > #if FF_USE_LFN != 0 > wird also nicht gebraucht. > > Und was mich stutzig macht: > mit #define FF_USE_LFN 0 > werden auch alle Stellen im Code nicht gebraucht, die ff_oem2uni, > ff_wtoupper oder ff_uni2oem aufrufen. > > Kann es sein, dass die ffconf.h 'zu spät' eingebunden wird? Ok das ist etwas merkwürdig wenn ff_use_lfn 0 ist. Tritt das Problem auch auf wenn du die fatfs internen String functions ausschaltest also #define FF_USE_STRFUNC 0 setzt? ... also ich hab es gerade eben selbst mal mit einem meiner Projekte probiert, ist zwar eine andere Plattform (rp-pico, vs code, platform.io, pico-sdk), da nutze ich die ganz normale R0.15 Version von FatFs und wenn ich da: #define FF_USE_LFN 0 und entsprechend auch: #define FF_FS_EXFAT 0 #define FF_LBA64 0 setze compiliert das einwandfrei.
:
Bearbeitet durch User
Christian schrieb: > Reinhard schrieb: > Ok das ist etwas merkwürdig wenn ff_use_lfn 0 ist. Tritt das Problem > auch auf wenn du die fatfs internen String functions ausschaltest also > #define FF_USE_STRFUNC 0 setzt? Ja, #define FF_USE_STRFUNC 0 ist eingestellt gewesen, und dann treten die Fehler auch auf. Ich habe auch keine Idee, warum die bedingte Programmierung nicht greift. Bin jetzt auf die Lib von Falk gegangen. siehe oben: Beitrag "Re: Fatfs Code funktioniert nicht" Nach einigen Anpassungen an meine Hardware funzt das gut.
Ich habe aber noch keine zweite Datei gleichzeitig geöffnet, bin ich noch nicht zu gekommen. Da habe ich aber keine Bedenken, weil die beiden f_open verschiedene structs benutzen für das File. Grüße Reinhard
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.