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 Thomas, > > > > ich habe ein 4x20-Display am I²C-Bus und möchte dieses mit Hilfe der Funktion print2() benutzen. > > Mir ist nun jedoch aufgefallen, dass diese Funktion nur max. 30 Zeichen ausgibt. > > > > Kann ich die for-Schleife von bisher > > for i=0 ... s[31]-1 > > auf Folgendes ändern? > > for i=0 ... s[41]-1 > > > > Der Grund für diese Änderung ist, dass ich so für die Ausgabe aller 4 Zeilen nur ein- oder zweimal > > diese Funktion aufrufen müsste (statt 4mal). und somit ein wenig mehr Geschwindigkeit im > > Programm Programm herauskitzeln könnte. > > Ich glaube, Du bringst hier einiges ducheinander ! > Die Funktionen pcflcd.print() und pcflcd.print2() sind nur zur Ausgabe von Strings gedacht. > Ein String kann maximal 30 Zeichen fassen und kein einziges mehr !! > Das liegt an dem festen Aufbau eines Strings: > Byte 0 bis Byte 29 : Daten = Zeichen > Byte 30 : Immer 0 > Byte 31 : Anzahl der (benutzten) Zeichen im String > > In pcflcd.print2() wird genau dieses 31te Byte für die For-Schleife benutzt, damit diese "weiß", > wieviele Zeichen gesendet werden müssen. > Wenn Du die Funktion änderst, funktioniert Sie überhauptnichtmehr, da es dann zu Zugriffen > auf undefinierte Bereiche, bzw. Bereich anderere Variabeln im RAM kommt ! > Wenn Du unbedingt mehr als 30 Zeichen am Stück ausgeben willst, mußt Du statt > Strings Bytearrays und die Funktion pcflcd.printlength() verwenden. > Aber einen Geschwindigkeitsvorteil wird es Dir nicht bringen. Eher das Gegenteil. > Denn Du verplemperst sicher mehr Zeit mit dem Zusammensetzen der Strings, als > es an Gewinn bringt. > Denn, wenn Du statt 4x einen String nur zwei zum LCD-sendest, sparst Du sage und schreibe > ganze 2 Byte Traffic am Bus. Dem entgegen stehen 320 übertragene Datenbytes am Bus. > Kurz: Mit vier Strings werden 324Byte übertragen, mit zwei Strings 322 Byte. > Das wäre nichteinmal ein Prozent Unterschied. > Für das Zusammensetzen der Stings benötigst Du jedoch sicher ein vielfaches an Zeit ! > > Aber zur Info: > Es ist meinerseits bereits ein ASM-Treiber zu pcflcd.c2 geplant, welcher eine große > Beschleunigung bringen wird, egal, ob nun ein Zeichen oder ein String geschrieben wird. > > MfG André H.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB