Forum: Mikrocontroller und Digitale Elektronik CodevisionAVR string aus eeprom lesen


von Koopi (Gast)


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

von Kai Markus Tegtmeier (Gast)


Lesenswert?

Hallo!

Wie äußert es sich denn, daß Du keine Daten aus dem EEPROM bekommst?
Falsche Ausgabe oder Fehlermeldung beim Compilieren?

Greetz
KMT

von Koopi (Gast)


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

von smartie (Gast)


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;

von Koopi (Gast)


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

von crazy horse (Gast)


Lesenswert?

du bist ja ein ganz netter... :-(

von Koopi (Gast)


Lesenswert?

@crasy horse,

mag sein, aber ich möchte es wirklich einmal wissen.

Koopi

von crazy horse (Gast)


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.

von Koopi (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.