-         
Ergebnis 1 bis 6 von 6

Thema: String ins Eeprom speichern

  1. #1

    String ins Eeprom speichern

    Anzeige

    Haollo Foren Mitglieder
    Ich bin neu hier und schon seit Wochen am suchen nach einer Lösung für mein Problem, kann einer von euch mir vieleicht dabei helfen?

    Ich versuche einen String über die Com 1 zu Empfangen und diesen dann ins Eprom abzuspeichern. Dieser Wert soll dann irgend wann wieder ausgelesen werden und etwas schalten (Portd.1=1) oder so.

    Also der String wird richtig im Sram abgespeichert, aber so bald er im Eeprom
    geschoben wird fehlt die Hälfte.

    Siehe Anhang (Bild vom Bascom Simulator)

    Ich hoffe ich habe es so beschrieben damit Ihr was damit Anfangen könnt.

    Danke für eure Hilfe und einen Guten Rutsch in neue Jahr.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken string.gif  

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Sieht man nicht so gut in der Gif
    Kann es sein, das in dem String &H00 enthalten sind ?
    dann wird Bascom das als Endekennzeichen nehmen und auf den Rest pfeifen
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Hi PicNick

    Ein Frohes neues Jahr und danke für deine Antwort.
    Wenn Du die Gif Datei mit einem Browser öffnest dann einfach nochmal ins Bild klicken dann wirds größer.

    Ja Du hast recht es sind sogar 4 mal &H00 enthalten. Kann man das irgendwie abschalten ich brauche den String komplett. Gibt es die möglichkeit diesen String *14 irgenwie anders zu speicheren als einzelene Bytes die man dann wieder zusammen setzt so das man sie Speichern kann.
    Ein Beispielcode wäre da sehr hilfreich.
    (edit)
    Ich habe mir schon öfter deinen Beitrag im Wicki
    https://www.roboternetz.de/wissen/in...ings_und_Bytes
    angeschaut doch ich werde sowas wie "String*14 > einzelne Byte's " brauchen.Denn nach dieser meine Hürde muß ich dann noch mehr mit diesem Input machen.

    Gruß Gerd

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

    du kannst ja mittels Overlay ein Bytearray definieren was über dem String liegt. Somit kannst du mit einer Schleife die einzelnen Bytes ins Eeprom schieben:

    Code:
    Dim Teststring As String * 14
    Dim Testarray(15) As Byte At Teststring Overlay
    Gruß, Stefan

  5. #5
    Hallo StevieL

    Vielen Danke für dein Antwort (an so einem Tag )
    An sowas hatte ich auch schon mal gedacht aber mit disem Code bekomme ich gar keinen Empang:

    Code Anfang:
    Code:
    $sim
    $regfile = "m32def.dat"
    $crystal = 8000000
    $baud = 9600
    $framesize = 32                                             ' die Größe des Frames
    $swstack = 32                                               ' die Größe des Software-stacks
    $hwstack = 32                                               ' die Größe des Hardware-Stacks
    
    'Dies ist ein Code von der Rowald Seite
    
    
    Dim S As String * 14 At &H60
    Dim B(15) As Byte At &H60 Overlay
    Dim n As Byte
    
    On URXC OnRxD
    Enable URXC
    Enable Interrupts
    
    Main:
     If n > 13 Then
        Print s
        n = 0
      End If
    Goto Main
    
    OnRxD:
      Incr n
      b(n) = UDR
    Return
    Code ende'

    Seltsam ist das ich nur duch den Befehl "Inputbin S" einen String Empfange und dann auch Speichern kann.

    Code Anfang:
    Code:
    $sim
    $regfile = "m32def.dat"
    $crystal = 8000000
    $baud = 9600
    $framesize = 32                                             ' die Größe des Frames
    $swstack = 32                                               ' die Größe des Software-stacks
    $hwstack = 32                                               ' die Größe des Hardware-Stacks
    
    Dim S As String * 14 At &H60
    
    do
    Inputbin S
    
    Printbin S
    Loop
    Code ende'

    Ich komme da irgenwie überhaupt nicht weiter. Ich habe versucht den String als einzelne Byte' s zu Empfangen aber auch da klappte das nur mit dem ersten Byte und dannach war alles nur im Speicher FF FF FF FF
    Ich bin der Meinung da liegt mein Hund begraben oder ??

    Gruß Gerd

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

    dein ursprünglicher Code hat ja funktioniert, oder? Dann sollte das ja mit dem Abändern des Writeeeprom funktionieren:


    Code:
    dim i as byte, address as byte
    
    For I = 1 To 15
    Address = &H1F + I
    Writeeeprom Testarray(i) , Address
    Next
    Gruß, Stefan

Berechtigungen

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