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 André, > vielen Dank für deine Überlegungen. > Ein fester Endwert bringt tatsächlich eine Beschleunigung der FOR Schleife. > Ich hatte erwartet, dass der Wert nur einmal berechnet wird. > Die IF Abfrage habe ich auch enfernt. > Nun gelten aber für Startadresse und Endadresse bestimmte Regeln. > Dies ist bei meiner Anwendung kein Problem und bringt einen spürbaren Geschwindigkeitszuwachs. > Ich konnte allerdings keine Unterschied zwischen FOR und WHILE Schleife feststellen. > An der FOR Schleife bin ich wegen der Endadresse 0x7FFF gescheitert (Integer Überlauf). > Eine Longinteger Zählvariable hätte die FOR Schleife bestimmt langsamer gemacht. > eeoutarray (data[i], pagesize) funktioniert bei mir einwandfrei. > Pagewrite benutze ich natürlich. Allerdings bisher nur 32 Byte wegen dem 25C640. > Ich habe nun die Routine geändert, damit die 64 Byte beim 95256 genutzt werden können. > Damit ergeben sich nun folgende Zeiten: > Write: 40s -> 9s -> 5,5s > Verify: 25s -> 2s > > Gruss Detlef > > <code>function write_range32 (byte data[], int startaddr, int endaddr) returns int > { > int i; > int k; > int l; > int len; > int pagesize; > ports.set( cs,1); > ports.set( din,0); > ports.set( clk,0); > pagesize=32; > if (endaddr > 0x2000) > { > pagesize = 64; > } > i = startaddr; > len = endaddr - pagesize + 1; > while (i <= len) > { > // write enable instruction > wr_instruction(opcode_wren); > k = rdsr(rdsr_wel); > if (k == 0) > { > lasterr=0x390000 or i; > return 0; > } > // start write sequence > ports.set (cs,0); > eeout(8, opcode_write); > eeout(16, i); > eeoutarray (data[i], pagesize); > // complete write cycle > ports.set (cs,1); > // write cycle time = 5 ms > for l = 0 ... 5 > { > sleep 1; > // read status register WIP > k = rdsr(rdsr_wip); > if (k == 0) and (l == 0) > { > // beim ersten Mal sollte WIP aktiv sein! > lasterr=0x190000 or i; > return 0; > } > if (k == 0) > { > break; > } > } > if (k != 0) > { > lasterr=0x290000 or i; > return 0; > } > if (i < 0x7FC0) > { > i = i + pagesize; > } > else > { > i = 0x7FFF; > } > } > return -1; > }</code> >
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB