Variablen beim Starten von SD Karte einlesen

Gast #1996149
Lesenswert?

Hallo,

ich möchte von der SD Karte strings einlesen und in Variablen speichern.
Auf der SD Karte gibt es Sprachdateien in Textformat.
Z.B.

Deutsch.txt mit Inhalt

Einschalten
Ausschalten
.
.
.

Englisch.txt

switch on
switch off
.
.
.

Beim Einschalten des Mikrocontrollers wird die im Setup stehende Datei 
gelesen, also z.B. Deutsch.txt.
Jetzt sollen die Variablen mit den strings geladen werden.
Wie stellt man das in C am besten an?

Einfach ein array mit
1
char Texte[40][30];

ist sicher nicht die richtige Lösung.
Ich verwende einen AVR32UC3A1512.

Gruß Michael
#1996286
Lesenswert?

Zunächst brauchst du erstmal Funktionen um überhaupt auf das Dateisystem 
der SD-Karte zugreifen zu können. Dann kannst du die Datei ja 
zeilenweise in deine Variable einlesen.

Soweit ich weiß, gibt es im Software-Framework von Atmel schon fast 
alles, was du brauchst.

MfG
Marius
Gast #1996307
Lesenswert?

Hallo,

das läuft schon alles, mir ist nur noch nicht klar wie ich die strings 
ablege.
Die strings haben ja unterschiedliche Länge und es ist bestimmt falsch 
ein array mit fester Länge dafür zu benutzen.
#1997460
Lesenswert?

Michael schrieb:

> Die strings haben ja unterschiedliche Länge und es ist bestimmt falsch
> ein array mit fester Länge dafür zu benutzen.

Im Allgmeinen hättest du recht.
Auf einem kleinen µC hingegen ist das die vernünftigste Lösung. Dort 
willst du nämlich um dynamische Speicherallokierung einen Bogen machen, 
wie der Teufel ums Weihwasser.
Wenn überhaupt, dann reserviert man ein fixes char Array und teilt sich 
das zur Laufzeit selber ein, wie man es braucht. Aber dann hat man 
natürlich zwar auch all die Probleme, die man auch bei komplett 
dynamischer Allokierung hätte (was tun, wenn der Speicher zu Ende ist), 
allerdings in einer etwas abgemilderter Form. Zumindest wird dann der 
Rest des Programmes noch sauber laufen und nicht gleich wegen 
Speichermangel abschmieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren