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 Daniel, > > > Wieviele 16Bit Werte kann man in einem Flashsegment > > abspeichern? > > > > Ein Segment ist 64kByte groß. > > 64*1024*8 / 16 = 32768. > > Das würde bedeuten es ist Platz für 32768 16Bit Werte. > > > > Nun kann man aber nur jede gerade bzw. zweite Adresse des > > Flashs benutzen. > > Bedeutet das also man kann nur 16384 16Bit Werte > > in einem Segment ablegen? > > Du machst hier leider einen Denkfehler. > Der Flash wird zwar Wordweise benutzt, jedoch bezieht sich die Adresse immer auf die Byteadresse. > Der ASM-Treiber maskiert automatisch das Bit 0 aus, so daß ein Versuch, z.B. auf > (Byte-)Adresse 3 zu speichern, automatisch dazu führt, daß ab (Byte-)Adresse 2 gespeichet wird. > Deshalb darf man beim Schreiben nur mit geraden Byte-Adressen arbeiten. > Ein Segment hat 64kB, also 65536Byte. > Diese können auch zu 100% genutzt werden. > Nur muß die kleinste zu speichernde Datenmenge aus 2 Byte bestehen, was > z.B. einem Integer entspricht.(Oder einem Bytearray mit zwei Elementen...) > Wie Du die 64kB mit Daten belegst, ist Dir überlassen. > Wenn alles Integerwerte sein sollen, kannst Du natürlich 32768 dieser Werte pro > Segment speichern. > > Um das zu testen, kannst Du das ganze Flash beschreiben und wieder auslesen: > <code> > const Segment=1; > > thread main > {long i; > hwcom.setspeed(8); > hwcom.clr(); > hwcom.print("\12Flash-Test:\13\10"); > hwcom.print("Lösche Flash Segment "); > hwcom.put(Segment+0x30); > hwcom.print(" ... "); > flash.DelSeg(Segment); > hwcom.print("fertig\13\10"); > > for i=0...65534 step 2 > { > flash.writeInt(Segment,i,i shr 1); > if (i%62)==0 {hwcom.print("\13schreibe ... ");hwcom.num(i);} > } > hwcom.print("\13\10fertig\13\10\13\10"); > hwcom.print("Lese Flash:\13\10"); > for i=0...65534 step 2 > { > hwcom.num(i); > hwcom.put(':'); > hwcom.num(flash.readInt(Segment,i)); > hwcom.ret(); > } > > quit 1; > } > </code> > Das Programm kann etwas dauern, da das Speichern von Einzelwerten gegenüber > Arrays deutlich langsamer ist. > Auch die Ausgabe über RS232 bremst gewaltig. > Daher wird beim Schreiben nur alle 31 Durchläufe der Status ausgegeben. > > MfG André H.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB