Hallo,
aufgrund von Speichplatzproblemen in meinem Flash-Speicher, wollte ich ein paar Strings ins interne EEPROM auslagern.
Leider sind die Werte die ich aus dem EEPROM auslese leer. Also Strings-Variablen sind leer und Byte-Variablen kommen als 255 zurück.
Ich benutze:
-Bascom AVR (Version kann ich gerade nicht nachschauen...)
-Atmega8-16PU mit 16Mhz
-Programmer Mysmartusb MK2
-internes EEPROM
die .eep Datei wird erzeugt.
Kann es sein das Bascom die Datei nicht automatisch mit auf dem MC brennt?
Wann ja, wie bekomme ich mit Bascom die .eep Datei ins EEPROM geschrieben?
Liegt es evtl. an meinem Programmer und Bascom?
Hier mal ein kleines Testprogramm, das sollte doch nach BASCOM-Hilfe eigendlich so funktionieren, oder?
Danke für eure HilfeCode:$regfile = "m8def.Dat" $crystal = 16000000 $baud = 19200 $hwstack = 100 $swstack = 100 $framesize = 100 Dim B As Byte $eeprom '$EEPROMHEX Link: Data 1 , 2 , 3 $data Wait 10 Print "Start" Readeeprom B , Link Print B Readeeprom B Print B Readeeprom B Print B End
mfG
Mario
Schaut ruhig mal auf meiner Homepage vorbei :
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Hast Du denn den Programmspeicher irgendwann nochmal geflasht, nachdem Du die Daten ins EEPROM geschrieben hast? Wenn ja, könnte Dein Problem damit zu tun haben: Viele Programmer (bzw. deren Softwares) sind nämlich so konfiguriert, dass sie vor dem Flashen einen "Chip Erase"-Befehl senden, um den Controller erstmal "plattzumachen", bevor die neue Datei in den Programmspeicher gebrannt wird.
Wenn das Fusebit EESAVE nicht gesetzt ist (und das ist beim Mega8 der Auslieferungszustand), betrifft dieses Löschen auch den EEPROM-Speicher. Verhindern kann man das durch setzen des EESAVE-Fusebits ("preserve EEPROM through the Chip Erase cycle") - dann wird das EEPROM beim Flashen nicht mehr gelöscht. Diese Einstellung ist eigentlich unerlässlich, wenn man Daten im EEPROM hat, aber noch ein wenig mit dem eigentlichen Programm hin- und herexperimentiert...
Hallo Kampi, hallo Sauerbruch!
Danke für eure Antworten.
Also ich habs gefunden, es geht auch in BASCOM. Habs mal Dokumentiert (siehe Anhang).
Die EEP Datei wurde nicht ins EEPROM geschrieben, da ich die Option nicht eingestellt hatte. Ich werde aber die Daten über "manuel Program" in den MC laden und dann den EESAVE-Fusbit setzen (Danke an Sauerbruch für den Hinweis ).
Das war's schon, tausend Dank...
mfG
Mario
Lesezeichen