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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.