INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
String an Sub routine übergeben
10.03.2014, 09:54
Beitrag #1
String an Sub routine übergeben
Hallo, ich habe fogendes Problem:
Mein Programmcode:
#include <SD.h>

char FileName[] = "data.txt";

File myFile;

void setup() {
..
// intitalize SD card
Serial.print("Initializing SD card...");
pinMode(10, OUTPUT);
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}

void loop
{
String Str;
int i1, i2, i3.....
.
.
Str = String(i1)+';'+ String(i2)+';'+String(i3)...

SaveDataToSD(Str);
.
.
}

/**************************************************/
/* SaveData to SD card */
/**************************************************/
void SaveDataToSD(String TS){
// write to SD
myFile = SD.open(FileName, FILE_WRITE);

if (!myFile) {
// if the file didn't open, print an error:
Serial.println("error opening File");
}
else { // Write to SD
myFile.println(TS);
myFile.close
}

Bei dieser Variante liefert SD.open immer False.
Übergebe ich kein Argument oder nur einen kurzen Text, so gibt es auch keine Probleme.
Wo ist der Haken?

Gruß
Student
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.03.2014, 07:57
Beitrag #2
RE: String an Sub routine übergeben
Hallo Student,

mach mal zum Test aus
Code:
char FileName[] = "data.txt";
Code:
char * FileName = "data.txt";

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2014, 15:33
Beitrag #3
RE: String an Sub routine übergeben
(12.03.2014 07:57)rkuehle schrieb:  Hallo Student,

mach mal zum Test aus
Code:
char FileName[] = "data.txt";
Code:
char * FileName = "data.txt";

Grüße Ricardo

Hallo Ricardo,
die Änderungen brachten nicht den erhofften Erfolg.
Ich vermute, der Fehler wird durch den ÜbergabeString erzeugt.
Wird ein langer Stringer übergeben, dann liefert ..open = false.
z. B. timeStr = String(";TimeStamp:;");
timeStr = timeStr + RTC.year;
timeStr = timeStr +';';
timeStr = timeStr + RTC.month;
timeStr = timeStr +';';
timeStr = timeStr + RTC.day ;
timeStr = timeStr +';';
timeStr = timeStr + String(RTC.hour);
timeStr = timeStr +':';
timeStr = timeStr + RTC.minute;
timeStr = timeStr +':';
timeStr = timeStr + RTC.second;
SaveToSD(timeStr);

Bei kurzen Strings läuft es durch.
Ich werde wahrscheinlich alles auf Char pointer umstellen müssen.
Gibt es dazu Beispiele?
Gruß
Student
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2014, 16:17
Beitrag #4
RE: String an Sub routine übergeben
Moin,

ich denke es liegt eher an der Zusammensetzung des Strings timeStr.
Du packst bei diesem String immer ';' rein. Das geht mit Sicherheit schief. Versuch das mal auf deinem (win) - Pc . Dürfte auch nicht funktionieren.

Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Lora uint8_t Potiwerte übergeben gandalf7588 1 125 08.04.2018 13:23
Letzter Beitrag: Tommy56
  Serieller string zwischenspeichern und wieder ausgeben. Matt 15 778 03.03.2018 20:23
Letzter Beitrag: Tommy56
  byte´s zu einem String zusammenfassen ? Franz54 18 1.069 31.01.2018 10:10
Letzter Beitrag: MicroBahner
  Arrays of String in C Diskusguppy 3 365 16.12.2017 10:12
Letzter Beitrag: Diskusguppy
  String nach Byte Array in ASCII-Codierung nexus1212 7 894 05.11.2017 14:36
Letzter Beitrag: Tommy56
  Daten per PHP an MYSQL übergeben ArduM0 4 947 09.08.2017 19:52
Letzter Beitrag: Bitklopfer
  String vergleichen georg01 15 1.848 18.07.2017 20:35
Letzter Beitrag: Tommy56
  String.charAt() ardun 3 638 02.07.2017 15:28
Letzter Beitrag: Tommy56
  Aus char string machen metzgefa 1 714 06.05.2017 15:15
Letzter Beitrag: Tommy56
  String übergeben oOSpikeOo 9 1.480 28.03.2017 19:47
Letzter Beitrag: georg01

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste