Hallo,
kurz zu mir: Ich bin neu hier und Anfänger! Bislang "spielte" ich nur auf einem Testboard mit Mega8 und LCD.

Ich hab mich nun dran gemacht ein Projekt nachzubauen. Die Hardware läuft prima und auch die Software (Bascom) funktioniert überraschend gut.
Im Programm sollen knapp 30 Datensätze im ERAM des Mega8 gespeichert werden. Ein Datensatz besteht aus einer 13-stelligen Zahl welche einen fünfstelligen Code (Folge), Datum und Uhrzeit beinhaltet.

Schreiben funktioniert absolut ohne Probleme, lesen mach nach ein paar Minuten Laufzeit Probleme. Dort werden die Zahlen eines Datensatzes quer durchgemischt ausgelesen, aber nur bei einigen Datensätzen. Sprich der Großteil bleibt OK.

Definition:
Code:
Dim Eepointer As Eram Byte
Dim Pointer As Byte
Dim Codestring As String * 13
Dim Ecodestring(30) As Eram String * 13
Dim Zeitlcd As String * 11
Dim Folgelcd As String * 16
Dim Codedat As String * 4
Dim Codetime As String * 4
Dim Codeuhr As String * 8
Schreiben:
Code:
Pointer = Eepointer
If Pointer = 50 Then Pointer = 0
Incr Pointer
Eepointer = Pointer
Codestring = Folge + Bcd(day) + Bcd(month) + Bcd(h) + Bcd(m)
Ecodestring(pointer) = Codestring
Lesen:
Code:
If Richtung = 0 Then Incr Position
If Richtung = 1 Then Decr Position
If Position = 31 Then Position = 1
If Position = 0 Then Position = 30
If Position = 255 Then Position = 30
Pointer = Eepointer
Sprung = Pointer - Position
Sprung = Sprung + 1
If Sprung >= 0 Then
    Stelle = Pointer
    Stelle = Stelle - Position
    Stelle = Stelle + 1
  Else
    Stelle = Pointer
    Stelle = Stelle - Position
    Stelle = Stelle + 31
End If
Codestring = Ecodestring(stelle)
Codeuhr = Right(codestring , 8)
Codedat = Left(codeuhr , 4)
Codetime = Right(codeuhr , 4)
Zeitlcd = Left(codedat , 2) + "/" + Right(codedat , 2) + " " + Left(codetime , 2) + ":" + Right(codetime , 2)
Folge = Left(codestring , 5)
Im Hintergrund läuft ein PCF8583P welcher Datum und Uhrzeit über I2C bereitstellt.

Kann man anhand dieser Codeschnipsel einen Fehler feststellen oder braucht ihr mehr? Kann gerne auch den gesamten Code reinstellen.

Gruß
Andy