Guten Abend,
Code:
(...)
I2cstart
I2cwbyte Lm75slaveread
I2crbyte Lm75high , Ack
I2crbyte Lm75low , Nack
I2cstop
If Lm75high > 127 Then
Temperatur = Lm75high And 127
Temperatur = Not Temperatur
Incr Temperatur
Else
Temperatur = Lm75high
End If
If A <= 250 Then
I2cstart
I2cwbyte Eepromw
I2cwbyte A
I2cwbyte Temperatur
I2cwbyte Lm75low
I2cstop
End If
A = A + 2
(...)
Dass A <= 250 sein muss habe ich durch einfaches trial and error rausgefunden, wenn A 251 wird kommt es zum Überlauf. Später im Programm geb ich das Ergebnis noch per UART aus, deshalb kann ich das sagen und nachvollziehen. Mit Lm75low lese ich die Nachkommastelle aus und speichere sie direkt ins EEPROM, die Umwandlung in den ",5" String erfolgt erst anschließend, nachdem ich die Daten wiederausgelesen hab, tut also nichts zur Sache. Die Anweisung A = A + 2 selbstverständlich deshalb, weil ich zwei Bytes schreibe.
Wie gesagt, das ganze funktioniert einwandfrei, nur steig ich nicht hinter die Datenmenge. Eigentlich könnte mir das solange es funktioniert ja egal sein, nur macht es die ganze Sache nicht mehr berechenbar. Und bei einem späteren 256 Kbit Speicher ist ausprobieren langwierig und nicht gerade der Lebensdauer förderlich....
Grüße
Marc
Lesezeichen