EEPROM-Defaultwerte werden nicht geschrieben (Bascom)

Timo

Neues Mitglied
15. Juli 2008
19
0
0
Sprachen
Hallo,

ich muß Benutzerdaten im ATMEGA16 eigenen EEPROM speichern. Damit diese nach der Programmierung gleich vorhanden sind (Defaultwerte), verwende ich in BASCOM die $EEPROM Direktive

Der Code (auf's nötigste reduziert) sieht so aus
Code:
' -------------------------  µC-Setup ------------------------------------------
   $regfile = "m16def.DAT"
   $crystal = 8e6
   $hwstack = 96
   $swstack = 128
   $framesize = 128
   $baud = 38400
' -------------------------  µC-Setup Ende--------------------------------------

     ' LCD
   Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
   Config Lcd = 20 * 2
   Cursor Off


   Dim Dauerlichtan As Byte
   Dim Schliesszeit As Byten

$eeprom
   Data 0 , 0 , 0 , 0 , 0 , 0 , 0   ' stammt aus einem Versuch, wird aber nicht benötigt
   Eeprom_dauerlichtan:
      Data 60

   Eeprom_schliesszeit:
      Data &H35
$data

   Readeeprom Dauerlichtan , Eeprom_dauerlichtan
   Readeeprom Schliesszeit , Eeprom_schliesszeit

   Cls
   Lcd "Licht " ; Dauerlichtan
   Lowerline
   Lcd "Schliessz " ; Schliesszeit

   End

Lasse ich das Prg auf dem µC laufen, gibt er mir aber nur 255 auf dem LCD aus, heißt beim Schreiben werden die Daten wohl nicht abgelegt.
Mein vollständiges Programm schreibt natürlich auch EEPROM-Daten; die lassen sich bestens auslesen und werden erst nach Neuprogrammierung wieder mit 255 überschrieben.

Mach ich einen Fehler beim Einsatz von $eeprom....$data ????

Timo
 
Hi,

also mit Standard dingen wird das so nicht gehen, wenn du dein EEProm File durch deinen Compiler generieren lässt musst du die natürlich erst mal mit Flashen :)

(z.b. beim AVR Studio hast du ja auch "Programm Flash" Programm EEProm")

Das hat Atmel schon von Anfang an irgendwie gemacht dass sie das getrennt halten.

:)

Nur denk daran wenn du die Def. Werte auch behalten willst (ev. auch Veränderst im laufe der Zeit) die Preserv EEProm Fuse einzuschalten :))

(da hatte es mich mal am Anfang etwas auf den Boden gesetzt *g*)
Autokalibrierung gemacht und die Fuse nicht gesetzt (aber nen Lockbit da dies ein Massenprodukt ist und wir es schon immer wieder hatten dass mal ne "Kopie" unserer Baugruppen am Markt war ..)

Joar um das Lockbit wegzukriegen -> Erase All (jo das Löscht ohne die Fuse auch das EEProm ^^)

..
Somit war meine Kalibrierung irgendwie weg *g*
 
Danke für den Hinweis mit der Preserve EEPROM Fuse. Damit bin ich glücklich, macht ja auch keinen Sinn bei jedem Schreiben die EEPROM-Daten neu zu brennen.
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)