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 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.