MSP430 - Datein von SD-Karten zeilenweiße auslesen und als Variable speichern

Gast #2360290
Lesenswert?
• ▲
▼
Hallo zusammen,

ich möchte mit meinem MSP430f5529 Dateien (config.txt) zeilenweiße 
auslesen und die jeweiligen Zeilen als Variabe speichern.

Das soll so aussehen (die Werte in Klammer dienen nur der Illustration):

1. Zeile          1        (Modus)
2. Zeile          100      (Intervall)
3. Zeile          Bsp.     (Stelle)

Diese Werte sollen dann als Variable gespeichert werden damit. Über die 
config.txt werden Einstellungen des mC vorgenommen. In meinem Fall der 
Messmodus, der Messintervall und die Messstelle. Die Datei befindet sich 
auf einer SD-Karte.

Da ich mit C noch sehr am Anfang stehe habe ich nun meine Probleme. Die 
Anbindung des MSP an die SD ist schon vorhanden. Ich kann die config.txt 
anzeigen und deren Inhalt lesen. Mein Problem besteht jetzt darin die 
Zeilen getrennt als Variablen anzulegen.

Habe auch schon mit Google nach einigen Beispielen geschaut aber noch 
nichts passendes gefunden.

In einem Beispielprogramm kann wie bereits erwähnt .txt Dateien auf dem 
LCD anzeigen lassen. Das Problem für mich ist einfach wie ich die 
einzelnen Zeilen als Variable speichern kann um diese später im Programm 
zu benutzen.

Im Beispielprogramm läuft die Anzeige der entsprechenden Datei so ab:

void ActiveFile(void)
{
    uint8_t index = 0, position = 0;
    char screen[136];

    //display first screen
    strncpy(screen, buff + index, 136);

                             //we can fit 136 characters on our screen

    Dogs102x6_clearScreen();
    Dogs102x6_stringDraw(0, 0, screen, DOGS102x6_DRAW_NORMAL);

    while (!buttonsPressed)
    {
        position = Wheel_getPosition();
        if ((position == 7) && (buff[index + LINE_SIZE] != 0))

                                       //scroll down, if possible

        {
            index += 17;

                                       //move screen down one line

            strncpy(screen, buff + index, 136);

                          //we can fit 136 characters on our screen

            Dogs102x6_clearScreen();
            Dogs102x6_stringDraw(0, 0, screen, DOGS102x6_DRAW_NORMAL);
            __delay_cycles(1500000);

                                   //delay for user to see scrolling

        }
        else if ((position <= 1) && (index != 0))

                                          //scroll up, if possible

        {
            index -= 17;

                                         //move screen up one line


            strncpy(screen, buff + index, 136);

                              //we can fit 136 characters on our screen

            Dogs102x6_clearScreen();
            Dogs102x6_stringDraw(0, 0, screen, DOGS102x6_DRAW_NORMAL);
            __delay_cycles(1500000);

                                       //delay for user to see scrolling

        }
    }
}


Die Ansteurung des LCDs ist nicht wichtig, auch die Benutzung des 
Rädchens zum Scrollen ist natürlich für mich Uninteressant. Habe jetzt 
ein wenig meine Bücher gewälzt und finde leider nichts über strncpy, 
bzw. wie ich dies zu Behandeln habe. Nun habe ich das hier mal 
geschrieben (das öffnen der Datei fehlt hier noch):

void load();
{
  char Modus[2]
  char Intervall[4]
  char Stelle[60]

  strncpy(Modus, buff + index, 1);
  strncpy(Intervall, buff + index, 4);
  strncpy(Stelle, buff + index, 60);
.................................................
}

Die Frage ist jetzt durch was ich buff + index ersetzen soll und wie ich 
die Werte dann als Variable speichern kann. Die Werte in der 
Eckigenklammer beschreiben mir ja die Länge der einzelnen Zeilen bzw. 
was davon gelesen werden soll oder? Das selbe gilt dann natürlich auch 
für strncpy oder?

Wie gesagt bin noch am Anfang und habe noch einige Probleme wäre 
wirklich sehr net wenn mir jemand ein paar Tipps geben könnte. Auch für 
Buchtipps wäre ich dankbar, habe zwar schon ein paar Bücher aber so 
richtig wohl fühle ich mich mit diesen noch nicht!

Bin für jede Antwort dankbar!

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.