Pages: [1]   Go Down
Author Topic: Text wird doppelt auf MicroSD Card gespeichert  (Read 723 times)
0 Members and 1 Guest are viewing this topic.
Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

ich melde mich auch mal nach etwas längerer Zeit wieder zu Wort.
Und zwar würde ich gerne ein paar Daten auf die MicroSD Card auf meinem Ethernet shield ablegen !
Erstmal habe ich ein Beispiel aus der SD library ausprobiert !
Und zwar folgendes (ReadWrite):
Code:
#include <SD.h>

File myFile;

void setup()
{
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.print("Initializing SD card...");
  // On the Ethernet Shield, CS is pin 4. It's set as an output by default.
  // Note that even if it's not used as the CS pin, the hardware SS pin
  // (10 on most Arduino boards, 53 on the Mega) must be left as an output
  // or the SD library functions will not work.
   pinMode(10, OUTPUT);
  
  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");
  
  // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
  myFile = SD.open("test.txt", FILE_WRITE);
  
  // if the file opened okay, write to it:
  if (myFile) {
    Serial.print("Writing to test.txt...");
    myFile.println("testing 1, 2, 3.");
    // close the file:
    myFile.close();
    Serial.println("done.");
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
  
  // re-open the file for reading:
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");
    
    // read from the file until there's nothing else in it:
    while (myFile.available()) {
        Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
}

void loop()
{
    // nothing happens after setup
}

An sich funktioniert alles, aber der Text (testing 1, 2, 3.) wird in dem Text dokument zweimal hintereinander gespeichert !?
Also nicht nur
Quote
testing 1, 2, 3.
, sondern
Quote
testing 1, 2, 3.
testing 1, 2, 3.
Woran liegt das ? Habe ich irgendetwas übersehen?

Grüße
Lorenz
« Last Edit: December 15, 2012, 03:45:40 pm by lgrube96 » Logged

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 266
Posts: 21653
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

2 mal gespeichert oder 2 mal am Terminal ausgedruckt?
Grüße Uwe
Logged

Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Beides !
Logged

Germany S-H
Offline Offline
Faraday Member
**
Karma: 146
Posts: 3039
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Woran liegt das ? Habe ich irgendetwas übersehen?

Hast Du die SD-Karte in einen Kartenleser am PC getan und nachgeschaut?

Entsprechend dem Code wird der Text:

- Einmal in die Datei geschrieben und über Serial ausgegeben.
- Einmal aus der Datei gelesen und über Serial ausgegeben.

D.h. im seriellen Monitor erscheint der Text zweimal: Einmal beim Schreiben und einmal beim Lesen aus der Datei. Aber in der Datei sollte er nur einmal enthalten sein.


Logged

Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ja die MicroSD Card habe ich bereits mit einem externen Lesegerät ausgelesen !
Aber dort wird in dem Text Dokument (TEXT) der "Text" (testing 1, 2, 3.) doppelt untereinander gespeichert !

Ich habe hier noch mal das aus dem seriellen Monitor:
Code:
Initializing SD card...initialization done.
Writing to test.txt...done.
test.txt:
testing 1, 2, 3.
testing 1, 2, 3.

Und auf der SD Card wird folgendes gespeichert (hatte ich ja schon oben):
Quote
testing 1, 2, 3.
testing 1, 2, 3.

Ich weiß absolut nicht woran das liegen kann, bleibt mir bisher unerklärlich ?!

Grüße
Lorenz
Logged

Germany
Offline Offline
Faraday Member
**
Karma: 59
Posts: 3056
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Und wie oft ist der Test schon gelaufen ?
Logged

Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich habe das immer nur einmal ausprobiert, also den seriell monitor geöffnet, dann wurde ja dieser Text auf der Karte gespeichert. Anschließend habe ich dann die SD card in das Lesegerät getan und geguckt was gespeichert wurde. Zum Schluss habe ich die Datei dann wieder entfernt !
Ich hoffe mal das ich die Frage von dir richtig verstanden habe...!
Logged

Germany
Offline Offline
Faraday Member
**
Karma: 59
Posts: 3056
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich hoffe mal das ich die Frage von dir richtig verstanden habe...!
Ja, hast du wohl smiley-wink
Mehr als "kann nur ein saublöder Fehler sein" ist mir nicht eingefallen.

Ahem, steck die Karte erst rein, wenn der SerialMonitor schon läuft und gemeckert hat dass die Initilaisierung nicht geht,  und drück dann nur einmal Reset smiley-wink 
Logged

Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gut smiley-wink
Jawohl ! Es funktioniert ! Vielen vielen Dank ! smiley
Hätte nie gedacht das das der Fehler ist !
Aber warum ist das so "umständlich" gemacht ?

Grüße
Lorenz
Logged

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 266
Posts: 21653
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Der Sketch läuft los, wenn der Arduino Strom bekommt und schreibt auf die SD.
Dann wenn Du den Serial Monitor öffnest dann resetiert der Arduino und schreibt nochmal af die SD.
Als Kontrolle drücke nach dem öffnen des Monitors  1 mal auf die Resettaste des Arduino. So müßtest Du 3 mal den Text auf der SD-Karte haben.

Der seriele Monitor resetiert den Arduino damit der Sketch von Anfang an startet.

Grüße Uwe
« Last Edit: December 16, 2012, 07:18:17 am by uwefed » Logged

Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Achso ist das ! Was neues dazu gelernt smiley-wink Wusste ich vorher noch gar nicht :/
Ja stimmt, da wird der "Text" 3 mal hintereinander gespeichert !

Nochmal vielen Dank an alle !

Grüße
Lorenz
Logged

Pages: [1]   Go Up
Jump to: