Hiermit wird ganz sicher nicht auf Position 1 der neueste Eintrag abgespeichert, sondern an der Stelle Pointer. Das ganze ist ein Ringspeicher, genauso wie ich den gemacht hätte.Code:If Pointer = 31 Then Pointer = 0 Incr Pointer Eepointer = Pointer Call Gettime Codestring = Folge + Bcd(day) + Bcd(month) + Bcd(h) + Bcd(m) Ecodestring(pointer) = Codestring
Schreiben scheint also klar zu sein. Lesen geht wohl so:
Warum an diesen Stellen gelesen wird, verstehe ich nicht. Hast du das programmiert? Weißt du, warum dies so ist?Code:If Richtung = 0 Then Incr Position 'Position ist die aktuelle Lese position (z.B. 17) If Richtung = 1 Then Decr Position If Position = 31 Then Position = 1 'max 30, darüber wieder bei 1 If Position = 0 Then Position = 30 'min 1, darunter wieder 30 If Position = 255 Then Position = 30 'Sinn ist mir nicht klar Pointer = Eepointer 'EEPointer ist die letzte SchreibPosition (z.B. 25) Sprung = Pointer - Position 'Sprung = 25 - 17 = 8 Sprung = Sprung + 1 'Sprung = 9 If Sprung >= 0 Then Stelle = Pointer 'Stelle = 25 Stelle = Stelle - Position 'Stelle = 25 - 17 = 8 Stelle = Stelle + 1 'Stelle = 9 Else Stelle = Pointer 'angenommen Pointer war 5 Stelle = Stelle - Position 'Stelle = 5 - 17 = -12 Stelle = Stelle + 31 'Stelle = -12 + 31 = 19 End If Codestring = Ecodestring(stelle) 'in einem Fall liest er bei 9, im anderen bei 19







Zitieren

Lesezeichen