CodevisionAVR string aus eeprom lesen

Gast #171188
Lesenswert?
• ▲
▼
Hey,

ich weiß nicht ob ich es nicht finde oder geht es nicht.

Ich habe in meinem Mega32 Konfigurationsdaten im EEPROM abgelegt. Diese
kann ich auch fast alle ohne Probleme lesen. Nur bekomme ich mit dem
Befehl: sprintf(dest, "%s", EE_src) keine Daten aus dem EEPROM. Muss
ich etwa selber eine Kopierfunktion schreiben?

Koopi
Gast #171190
Lesenswert?
• ▲
▼
Hallo Kai,

ich kann alle Datentypen bis auf strings aus dem EEPROM mit sprintf
holen. Ich bekomme auch keine Fehlermeldung, sondern einfach keine
definierten Werte. Auch stehen die Daten eindeutig ab der
angesprochenen Stelle im EEPROM.

Koopi
Gast #171191
Lesenswert?
• ▲
▼
Wie ist der String definiert?
Ist der String null terminiert?

's' - the function argument is a pointer to a null terminated char
string located in SRAM;

d.h. der Pointer selbst muß im RAM stehen, der wiederum auf ein oder
mehrere Element im EEPROM zeigt.

ich würds mal so probieren:

eeprom char text1[]={"Hello World",0};
char * text2 = text1;
Gast #171192
Lesenswert?
• ▲
▼
@smartie,

wenn dann so:

eeprom char text1[]={ "Hello World", 0 };
char eeprom * text2 = text1;

oder noch besser:

eeprom char text1[]={ "Hello World" };
char eeprom * text2 = text1;

Übrigens sind beide Strings nullterminiert.

Aber der indirekte Zugriff über den Pointer nützt auch nichts.

Wieso bekommt man eigentlich hin und wieder Beispiele die schon beim
kompilieren zu Fehlermeldungen führen? Hat der Autor keine Ahnung? Aber
warum meldet er sich dann?

Koopi
Gast #171195
Lesenswert?
• ▲
▼
"Wieso bekommt man eigentlich hin und wieder Beispiele die schon beim
kompilieren zu Fehlermeldungen führen? Hat der Autor keine Ahnung?
Aber
warum meldet er sich dann?"

Hier sagt jeder was nach bestem Wissen und Gewissen, kostenlos und
freiwillig, z.T. sogar mit eigenen online-Kosten verbunden, aus Freude
an der Sache. Das ist eigentlich mehr, als man im "normalen" Leben
erwarten kann. Erwartest du, dass jemand, der eine Idee zu deinem
Problem hat (ob die nun richtig oder falsch ist, ist erstmal völlig
irrelevant) sich auch noch erstmal hinsetzt und dieses auf 100%
Richtigkeit testet? Die Anregungen aufzunehmen, auf Verwertbarkeit und
Richtigkeit zu testen, evtl. an die eigene spezielle Situation
anzupassen ist Aufgabe des Fragestellers, in dem Falle also deine.
Keinesfalls ermächtigt dich eine vielleicht falsche Antwort,
herablassend zu sein. Bei einer 0190-3,99€/min-Hotline hat man einen
gewissen Anspruch auf sachliche Richtigkeit - hier nicht.
Soweit meine Meinung.
Gast #171196
Lesenswert?
• ▲
▼
"Hier sagt jeder was nach bestem Wissen"

aber ohne Wissen ist es nicht nur sinnlos, sondern für Anfänger als
Fragende zum Teil sehr verwirrend. Also sollte man zumindest inhaltlich
auf gestellte Fragen eingehen können. Syntaxfehler sind unwichtig.

Ansonsten ist es richtig was Du sagst.
Wir sollten vielleicht auch wieder zu meinem Problem zurück kommen.

Koopi

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.