- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 7 von 7

Thema: String ins EEprom schreiben

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    12.08.2006
    Beiträge
    70

    String ins EEprom schreiben

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    ich mühe mich seit zwei Tagen ab das EEprom zu verstehen. Klappt eigentlich ganz gut, jedenfalls solange es sich um numerische Zahlen handelt. Jetzt habe ich aber versuch auch Strings ins EEprom zu schreiben. Zum Beispiel einfach mal "AAAAA" . Wenn ich das wieder auslese ist zwar auch irgendwo ein A dabei, aber auch jede Menge andere merkwürdige Zeichen.
    Kann mir jemand sagen ob ich mir das zu einfach mache wenn ich versuche "AAAA" mit writeeeprom und readeeprom ins EEprom zu verfrachten und wieder auszulesen?

    Gruß

    Andreas

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.11.2005
    Ort
    QTH: JO43BC
    Alter
    56
    Beiträge
    112
    Moin moin,

    den String zerlegen und die Einzelwerte mittels ASC konvertieren und abspeichern. Wieder auslesen: Die Einzelwerte dann mit CHR konvertieren und als String wieder zusammenfummeln.
    Ich denke so wuerde ich es machen…

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2003
    Ort
    Langen / Hessen
    Alter
    59
    Beiträge
    393
    Hallo Andreas,

    ich habe auch schon mal mit dem EEPROM gearbeitet, bei mir funktionierte es prima mit allen Variablen auch Strings. Wichtig ist nur, dass Du die erste Speicherzelle im EEPROM freilässt und nicht definierst. Du solltest auch festlegen wie lang der String sein soll, also bei max. 7 Zeichen auch 7 Speicherzellen festlegen. Ich will mal schauen ob ich ein bisschen Code in Bascom dazu finde.

    '######### EEPROM DATEN ########
    Dim Alarmnummer As Byte
    Dim Tiefe As String * 4
    Dim Epwert1 As Byte
    Dim Epwert2 As Word
    Dim Epwert3 As String * 4
    Dim Epwert4 As Word

    '---------------- STARTVARIABLEN AUS EEPROM LESEN -------------
    'Readeeprom Alarmnummer , 1
    'Readeeprom Tiefe , 3
    'readeeprom Epwert1 , 8
    'readeeprom Epwert2 , 12
    'readeeprom Epwert3 , 17
    'Readeeprom Epwert4 , 23

    Hoffe es hilft Dir weiter.
    Gruss
    Clemens
    Erfolg kommt NUR im Duden vor Leistung
    Grüße Euer LuK-AS

    Autonome Robotik www.CWNet.de
    Tauchroboter www.T-Bot.de

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    12.08.2006
    Beiträge
    70
    Danke für die Tips, ich werde sie mal ausprobieren.

    Gruß

    Andreas

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    12.08.2006
    Beiträge
    70
    Hmm...., langsam wirds besser mit meinem EEprom aber hier habe ich was wo ich absolut nicht schlau draus werde:

    Ich hab zwei Programme die das selbe machen, nämlich 10 Strings * 1 (AB.....HIJ" ins Eprom Schreinben:

    1. Version mit Writeeprom und Readeeprom:

    $regfile = "m32def.dat"
    $framesize = 42


    $swstack = 32
    $hwstack = 32





    $crystal = 16000000 'Quarzfrequenz
    $baud = 9600


    Dim I As Byte

    I = 1


    Dim Sn1 As String * 1
    Dim Sn2 As String * 1
    Dim Sn3 As String * 1
    Dim Sn4 As String * 1
    Dim Sn5 As String * 1
    Dim Sn6 As String * 1
    Dim Sn7 As String * 1
    Dim Sn8 As String * 1
    Dim Sn9 As String * 1
    Dim Sn10 As String * 1

    Sn1 = "A"
    Sn2 = "B"
    Sn3 = "C"
    Sn4 = "D"
    Sn5 = "E"
    Sn6 = "F"
    Sn7 = "G"
    Sn8 = "H"
    Sn9 = "I"
    Sn10 = "J"


    Writeeeprom Sn1 , I
    I = I + 2
    Writeeeprom Sn2 , I
    I = I + 2
    Writeeeprom Sn3 , I
    I = I + 2
    Writeeeprom Sn4 , I
    I = I + 2
    Writeeeprom Sn5 , I
    I = I + 2
    Writeeeprom Sn6 , I
    I = I + 2
    Writeeeprom Sn7 , I
    I = I + 2
    Writeeeprom Sn8 , I
    I = I + 2
    Writeeeprom Sn9 , I
    I = I + 2
    Writeeeprom Sn10 , I



    Sn1 = "x"
    Sn2 = "x"
    Sn3 = "x"
    Sn4 = "x"
    Sn5 = "x"
    Sn6 = "x"
    Sn7 = "x"
    Sn8 = "x"
    Sn9 = "x"
    Sn10 = "x"



    Waitms 100

    I = 1

    Readeeprom Sn1 , I
    I = I + 2
    Readeeprom Sn2 , I
    I = I + 2
    Readeeprom Sn3 , I
    I = I + 2
    Readeeprom Sn4 , I
    I = I + 2
    Readeeprom Sn5 , 1
    I = I + 2
    Readeeprom Sn6 , I
    I = I + 2
    Readeeprom Sn7 , I
    I = I + 2
    Readeeprom Sn8 , I
    I = I + 2
    Readeeprom Sn9 , I
    I = I + 2
    Readeeprom Sn10 , I


    Print Sn1 ; Sn2 ; Sn3 ; Sn4 ; Sn5 ; Sn6 ; Sn7 ; Sn8 ; Sn9 ; Sn10



    End


    Klappt eigentlich ganz gut, nur leider macht das Programm aus dem "E" beim Lesen immer ein "A" ?????????????????


    2. Version arbeitet mit Dim Variable as eram string *1



    $regfile = "m32def.dat"
    $framesize = 42


    $swstack = 32
    $hwstack = 32





    $crystal = 16000000 'Quarzfrequenz
    $baud = 9600


    Dim I As Byte

    I = 1

    Dim Sn1e As Eram String * 1
    Dim Sn2e As Eram String * 1
    Dim Sn3e As Eram String * 1
    Dim Sn4e As Eram String * 1
    Dim Sn5e As Eram String * 1
    Dim Sn6e As Eram String * 1
    Dim Sn7e As Eram String * 1
    Dim Sn8e As Eram String * 1
    Dim Sn9e As Eram String * 1
    Dim Sn10e As Eram String * 1

    Dim Sn1 As String * 1
    Dim Sn2 As String * 1
    Dim Sn3 As String * 1
    Dim Sn4 As String * 1
    Dim Sn5 As String * 1
    Dim Sn6 As String * 1
    Dim Sn7 As String * 1
    Dim Sn8 As String * 1
    Dim Sn9 As String * 1
    Dim Sn10 As String * 1


    Sn1 = "A"
    Sn2 = "B"
    Sn3 = "C"
    Sn4 = "D"
    Sn5 = "E"
    Sn6 = "F"
    Sn7 = "G"
    Sn8 = "H"
    Sn9 = "I"
    Sn10 = "J"

    Sn1e = Sn1
    Sn2e = Sn2
    Sn3e = Sn3
    Sn4e = Sn4
    Sn5e = Sn5
    Sn6e = Sn6
    Sn7e = Sn7
    Sn8e = Sn8
    Sn9e = Sn9
    Sn10e = Sn10








    Sn1 = "x"
    Sn2 = "x"
    Sn3 = "x"
    Sn4 = "x"
    Sn5 = "x"
    Sn6 = "x"
    Sn7 = "x"
    Sn8 = "x"
    Sn9 = "x"
    Sn10 = "x"


    Sn1 = Sn1e
    Sn2 = Sn2e
    Sn3 = Sn3e
    Sn4 = Sn4e
    Sn5 = Sn5e
    Sn6 = Sn6e
    Sn7 = Sn7e
    Sn8 = Sn8e
    Sn9 = Sn9e
    Sn10 = Sn10e




    Print Sn1 ; Sn2 ; Sn3 ; Sn4 ; Sn5 ; Sn6 ; Sn7 ; Sn8 ; Sn9 ; Sn10



    End


    Bei dieser Version Bleibt das "E" auch ein "E".

    Hat jemand ne Idee wo hier der Bug ist?

    Gruß

    Andreas

  6. #6
    Auch wenn schon 7 Jahre alt. Bin über google drauf gestoßen.

    Readeeprom Sn5 , 1
    I = I + 2
    Readeeprom Sn6 , I
    I = I + 2
    Readeeprom Sn7 , I

    Am Ende von readeeprom sn5 steht 1 anstelle von I

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Ja, dafür hättest den Beitrag nicht ausgraben brauchen. Bascom ist in der Zwischenzeit viel weiter. So viele "einstellige" Strings würde ich auch nicht nehmen. Da bieten sich Bytes wesentlich besser an.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

Berechtigungen

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

LiFePO4 Speicher Test