PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warum speichert eeprom nur werte bis 255?



xxrider
18.04.2006, 10:39
1.Bei der ausgabe eines gespeicherten wertes über 255 gibt mir das eeprom nur werte kleiner als 255 aus.
Warum? Die variablen wurden ja als word angegeben!

2.Stimmt eigentlich die Schreib- und Leseadresse, die ja nicht übereinstimmen (rot gekennzeichnet, je low und high-adresse)?



hier der programmtext:

Dim X As Word
Dim A As Word
Dim B As Word
Dim Lese As Word

X = 1000

I2cstart
I2cwbyte &HA0
I2cwbyte 1
I2cwbyte A
I2cwbyte X
I2cstop
Waitms 10

Print "Speichern: " ; X


'--- lesen vom EEprom ----

I2cstart
I2cwbyte &HA0
I2cwbyte 1
I2cwbyte B

I2cstart
I2cwbyte &HA1
I2crbyte Lese , Nack
I2cstop

Print "Lesen: " ; Lese
Waitms 500


End

SprinterSB
18.04.2006, 10:47
Lese ist zwar als Word deklariert, aber du weist ihm nur ein Byte zu (I2crbyte). Und ein Byte hat eben nur 8 Bit...

Rage_Empire
18.04.2006, 11:00
xxryder:

ein word besteht aus 2 byte. somit mußt du es erst zerlegen in 2bytes, welche du dann hintereinander schreiben und lesen mußt.

Bezüglich https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=175777&highlight=#175777

Irgendwie fängst du von vorn an, wie ich das sehe.
Bist du schon zu deiner Problematik weitergekommen? Wenn ich glück hab, kann ich deiner Sache evtl. dieser Woche nachgehen. So wie ich das sehe, arbeitet der Source vom Downloadverzeichnis im Byte-Write Modus und sollte deswegen auch funktionieren.

Datenblatt:
http://www.tranzistoare.ro/datasheets/400/227040_DS.pdf

xxrider
18.04.2006, 15:28
Hallo Rage,

ja da hast du schon recht mit Rückschritt, aber
vielleicht muss ich von vorne anfangen.
Ich bin erstmal umgestiegen auf dieses minimalistische Programm, um das Problem der über 32 byte Beschreibung zu ergründen und bin auf dieses Hindernis gestoßen.
Aber mit diesem Programm kann ich wohl mehr Speicheradressen ansprechen als 32 byte, auf alle Fälle 0-255, das geht.
Wie die Zerlegung der bytes vonstatten geht, weiß ich leider nicht, ich sollte evtl auch hier nicht weiter dran rumbasteln sondern lieber zusehen, wie ich dein Programm zum laufen bringe.
Doch kann ich bisher mit dem "device select- durchführen" nichts anfangen.
Das datasheet habe ich mir schon angesehen, doch komme auch damit nicht klar. Ursache ist wohl - das dürfte feststehen - der page write modus.
Das ist ja schonmal eine Erkenntnis :-)