Also es ist so:
Bytes -> je 1Byte
Words -> je 2Byte
Singles -> je 4Bytes
Du kannst aus meinem Source die Variable "eead" nehmen, welche die Adresse für díe nächste Variable Automatisch erechnet, egal ob Single, Word oder Byte.
Also es ist so:
Bytes -> je 1Byte
Words -> je 2Byte
Singles -> je 4Bytes
Du kannst aus meinem Source die Variable "eead" nehmen, welche die Adresse für díe nächste Variable Automatisch erechnet, egal ob Single, Word oder Byte.
Danke , werde noch ein wenig rumprobieren.
Scheint alles ganz gut zu funktionieren.
bis jetzt kommt sich auch mit den Interrupts nix in die Quere...
Wenn ich noch fragen habe weiß ich ja wo ich hilfe finde)
Also danke nochmal
Kein prob. Mußt halt nur aufpassen, daß dir kein langer Interrupt wärend des lesens oder schreibens reinrauscht...ansonsten mußt disable / enable Interrupts einbinden. Brauchste aber im normalfall aber nicht. Was jedoch noch nicht vorhanden ist ist eine Fehlerauswertung und ein Verify. Das könnte man evtl. hier noch erweitern.
Wollte den Source schon im Download-Verzeichnis zu verfügung stellen, jedoch will ich diesen noch etwas ausfeilen.
das mit den interrupts muß ich noch verbessern.
Habe mein Programm jetzt mal so verändert, daß auf knopfdruck von adresse 120 bis 640 in einer-Schritten word-Variablen in den ROM geschrieben werden. gleich danach werden alle wieder ausgelesen...
kommt ein Interrupt dazwischen, sind die Werte der dem Interrupt nachfolgenden ca 100 adressen verkorkst...
Bei disable Interrupts vorher springt mein Programm aber trotzdem in die Timer-Int - Routine des T1 (Sekundenblinker)
naja... mit 20er blöcke gehts. oder ich probier mal die Pagewrite-Variante
Kannst mich ja mal auf dem laufenden halten, was deine Bemühungen angeht.
Bis denne![]()
...und das soll funktionieren? Ein Word besteht aus 2 Bytes.....also in einerschritten überschreibst du jedesmal was. Richtig wären 2er schritte, aber wenn du das über die eead-Variable machst (wie ich schon beschrieben hab) wird die Automatisch um 2 erhöt. Ich benutze oft die EEad-Variable um ganze Datenströme zu speichern und laden.Zitat von lanpc5
Mit Disable Interrupts kann kein Interrupt mehr erfolgen (Du deaktivierst alle Globalen Interrupts damit), da muß dir was anderes reinhauen. Mit dem Simulator ist es hier jedoch schlecht, da dieser keine ext.EEproms simulieren kann.
...und das soll funktionieren? Ein Word besteht aus 2 Bytes.....also in einerschritten überschreibst du jedesmal was.
Hihi... das war ja das eigentlivhe, was mich so gewundert hat...
wenn ich z.B. auf Adresse 320 ein WORD mit Wert z.B. 254 schreibe , danach auf 321 WORD mit zb. 520, sollte beim Auslesen von Adresse 320 was anderes als 254 kommen... aber was liest der aus?...genau, 254...
![]()
Normal wäre ja mit 2er-Schritten, habe aber einfach mal den einer-Schritt probiert... hat mich auch überascht.
(hab auch auf z.B. 430 eine 0 und auf 429 eine 32321 geschrieben... das selbe, haben sich nicht beeinflusst...)
Hi,
sagt mal funktioniert es auch wenn ich zwei 24C256 an den Bus anschließe? Musste ich zum Schreiben/Auslesen dann die letzte Adresse des ersten EEPROMS n+1 nehmen? oder muss da in den Const 24c256 = was anderes stehen?
Weil wenn das gehen würde, wäre das Riesenplatz für nen Datenlogger in meinem Heli![]()
Grüße
Alex
Lesezeichen