Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Torsten, > > > Ich möchte mit dem Modul flash.c2 von André Werte, die sehr selten geändert werden (Lichtszenen für > > Dimmer, Positionen von einer Leinwand) speichern. > > In der Beschreibung steht, dass man keine einzelnen Werte überschreiben kann, sondern immer > > zuerst den ganzen Bereich löschen musst, weil sonst neue und alte Werte im Flash UND-verknüpft > > werden. > > Meine Frage: Wenn man vor dem Beschreiben einer einzelnen Adresse (ich weiss, mit dem Modul > > bisher(?) noch nicht möglich) Nullen hereinschreibt und anschließend den neuen Wert, müsste das > > doch möglich sein, oder? > > Was spricht prinzipiell dagegen? > > Das geht nicht. Wenn das ginge, wäre schließlich ein Löschen von kompletten Segmenten > fast sinnlos. > > Hier ein paar Grundlagen zu Flash-Speichern: > Eine Speicherzelle ist gelöscht, wenn alle Bits einen Highpegel besitzen, > <u>nicht</u> wenn alle Bits low sind (=0). (Dies gilt für alle Speicher, auch RAM) > Beim Schreiben wird im Flash die Speicherzelle mit den anliegenden Daten UND-verknüpft > und so die nötigen Bits auf 0 gesetzt. (gelöscht). > Ein Setzen der Bits auf 1 ist durch schreiben nicht möglich. Dafür muß eben ein > komplettes Segment - bei der CC2 64kB - gelöscht werden. > Wenn man in eine Speicherzelle erneut hineinschreibt, so werden die neuen Daten mit > den vorhandenen wiederum UND-verknüpft. Sind alle Bits einer Speicherzelle gelöscht, so > erhält man immer den Wert 0, egal was man versucht hineinzuschreiben. > > Kurz: Um das löschen kommt man nicht herum, außer eine UND-Verknüpfung > zwischen vorhanden Wert und neuen Wert würde wieder den neuen Wert ergeben. > (z.B. alter Wert 27(0b11011), neuer Wert 24(0b11000) ergibt UND-verknüpft wieder 24(0b11000)) > > > MfG André H.