-         

Ergebnis 1 bis 10 von 10

Thema: Speichern im EEProm

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    25.11.2005
    Beiträge
    9

    Speichern im EEProm

    Anzeige

    Hallo,

    ich habe mal eine Frage zum EEProm des Mega8 (gilt sicher auch für andere Mega's).

    Bisher nutze ich immer das folgende Programm zum Speichern und Lesen im EEprom:


    $regfile = "m8def.dat"
    $crystal = 7372800
    $baud = 9600


    Dim Speicher1 As String * 10
    Dim Ausgabe As String * 10

    Speicher1 = "320"

    Writeeeprom Speicher1 , &H10


    Readeeprom Ausgabe , &H10

    Print Ausgabe

    End

    Das Programm funktioniert auch soweit.

    Jetzt möchte ich den Wert, der hier über das Programm in das EEProm geschrieben wird, manuell über Ponyprog einspielen.
    Mein erstes Problem, beim Auslesen des EEProm über Ponyprog zeigt mir dieses, nach Ausführung des Programms, keinen Inhalt im EEprom an. Wieso?
    Und noch ein, für mich ganz neues Thema:
    Wie kann ich einen Wert, wie hier im Beispiel, an eine bestimmte Speicherstelle im EEProm bringen?

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    Also bei mir funktioniert das soweit. Bist du sicher, dass der µC das speichert? und dass du PonyProg richtig "deutest"? In PP ist der EEP immer unten (scrollen!) im Fenster, erkennt man an der unterschiedlichen Text-Farbe.
    Ansonsten reichts ein Textfile mit dem entsprechenden Inhalt zu machen. Die kann man dann in den µC laden.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    25.11.2005
    Beiträge
    9
    Hey super,

    ich habe tatsächlich Ponyprog falsch verstanden. Ich dachte man muss das EEProm separat auslesen!

    Danke stafan_z

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    25.11.2005
    Beiträge
    9
    jetzt habe ich gleich noch ne Frage!

    Kann ich in Bascom eigentlich direkt den EEProm Speicher im Programm belegen?
    Wie?

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Im Bascom-Programmer gibts die Registerkarte "EEPROM", da lassen sich ebenfalls Werte per Hand bzw. aus ner Textdatei einlesen und dann übertragen.
    Nur aufpassen: Manchmal gibts bei den µC bzw. im Programmer die Funktion, dass der EEPROM beim Aufspielen eines Programms gelöscht wird. Also diese vorher evtl abschalten.

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    Ja, man kann Variablen auch als EEP definieren, man kann sie aber nicht als reguläre Variablen benutzen!

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    25.11.2005
    Beiträge
    9
    oje, jetzt bin ich völlig verwirrt.
    Ich versuche einfach mal zu beschreiben was ich machen möchte. Vielleicht hat ja jemand ein Rezept für mich.

    Ich möchte beim Programmieren eines Mega8 einen Zeitwert als Variable vorgeben.
    Dieser Zeitwert wird im Laufe des Programms öfter verändert bzw. im Programm verwendet.
    Nach einem Reset soll das Programm immer auf den letzten Wert zugreifen.
    Mein Ziel war es, den Zeitwert im EEProm schon bei der Programmierung zu hinterlegen und im Verlauf des Programms immer wieder an zu passen.

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    naja, soferns möglich ist, beim Programmstart irgend einen beliebigen Wert zwischen 0-255 (wenns ne Byte-Variable ist) zu verwenden, würd ich beim Start gleich direkt die Variable nehmen (also egal was da grad gespeichert ist). Diese dann in ne normale Variable kopieren und diese normale dann im Programm verwenden.

    Speichern würd ich die Variable nur manuell; also eine Art "Shutdown" einbauen, bei dem die Variable dann in die im EEPROM gespeichert wird.

    Also z.B.
    Code:
    DIM EWert as ERAM Byte
    DIM Wert as Byte
    
    'Wert laden:
    Wert = EWert
    
    ...'Hauptprogramm
    
    'Wert speichern:
    EWert = Wert

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    Das wurde hier im Forum schon öfters diskutiert. Im Prinzip nutzt man die BrownOutDetection um festzustellen, wenn der µC ausgemacht wird. Dann speichert man schnell den Wert ins EEP und bei Start muss mans einmal auslesen, fertig.

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    09.05.2007
    Beiträge
    202
    Hallo Klaus,

    du willst das Eeprom von Bascom gleich mit Startwerten beschreiben lassen? Wenn du an deinen Code folgendes anfügst, werden die Bytes 2, 2, 25 u. s. w. beim Compilieren in die EEP-Datei geschrieben und mit an den Controller übertragen:

    Code:
    Dta:
    $eeprom
    Data 2 , 2 , 25 , 90 , 3 , 3 , 5 , 15 , 20
    $data
    Wenn du größere Werte oder Strings speichern willst, müssen die entsprechend gekennzeichnet werden.
    Gruß, Stefan

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •