Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

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 Martin, > > > Hallo Zusammen, > > > > Ich versuche eine Handvoll long und int im > > Segment 1 zu speichern. Damit ich mich auf Dauer nicht > > mit den Adressen vertuhe soll es eine Universalroutine richten. > > > > Ich kann auch erfolgreich wüste Zahlen aus dem Flash lesen, > > aber mein Schreibversuch ändert nichts. > > Ich gehe davon aus, daß flash.hex in Segment 3 geladen wurde, > da lesen möglich ist? > > Wichtig beim Umgang mit dem Flash ist, daß nicht übermäßig gelöscht wird. > Nach dem Löschen eines Flash-Segements macht es keinen Sinn, anschließend > auszulesen, da gelöscht. ;-) > Für Werte, die oft geändert werden sollen, wäre ein I²C-Bus-EEprom besser. > > Bitte verwende im Forum die code-Tags für C2-Quellcode. > > > > Ich hoffe, dass ich irgendeinen dummen Fehler gemacht habe. > > writeLong antwortet mit 0. > > Du wertest den Rückgabewert des Schreibzugriffs auch nicht aus. > > <code> function rw_long (long wert) returns long > { > if ask == 1 > wert= flash.readLong(segment, addr); > else > flash.writeLong(segment, addr, wert); > // Rückgabewert der Schreibaktion wird nicht ausgewertet, > // somit: woher soll der Wert "0" kommen? > > addr = addr + 4; // wird immer gleich hochgezählt > return wert; > // wert ist hat nach dem Schreiben denselben wert, wie übergeben > } > </code> > > > Die funktion saveload erscheint mir wenig sinnvoll: > <code> > function saveload() > { > long wert; > > segment=1; > addr=2; > if ask == 0 // wer nicht fragt, will was schreiben! > { > flash.DelSeg (segment); > lcdext.print(" del "); > } > > wert=Arm.hebel; > Arm.hebel = rw_long (wert); > > wert=Stiel.hebel; > Stiel.hebel = rw_long (wert); > > ... > } > </code> > Das Löschen sollte wirklich nur im Einzelfall erfolgen. > Wenn die Variable "ask" versehentlich auf 0 bleibt, vernichtest Du > sehr schnell das Flashsegment. > Die Anzahl an Löschzyklen ist auf 100.000 begrenzt! > Nutze getrennte Funktionen/Routinen für das Schreiben und Lesen. > Stelle sicher, daß es niemals zu Endlosschleifen beim Löschen kommen kann. > Wenn es sich um Konfigurationsdaten handelt, die im Flash gespeichert > werden sollen, nutze feste Adressen für die Speicherstellen. > Sind es Werte, die sich oft ändern, z.B. Positionsdaten von Schrittmotoren, > so nutze bitte ein I²C-Bus-EEProm statt Flash. > > > Grüße, > André H.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB