LCD: Ist I2C deutlich schneller als 4Bit Ansteuerung?

Hey jurs,

jurs:
Ansonsten hängt es wohl auch von der ansteuernden Library ab, wie schnell die Ausgabe ist: Normalerweise kann der LCD-Displaycontroller eine Rückmeldung geben, wann ein übermittelter Befehl vollständig ausgeführt ist und der nächste Befehl an den Controller übermittelt werden kann. Die Liquidcrystal-Library geht aber wohl davon aus, dass der dafür notwendige Rückkanal-Pin am LCD gar nicht angeschlossen ist (was wohl auch gängige Anschlußpraxis ist), sonst würden in der Liquidcrystal-Library nicht überall die delayMicroseconds()-Aufrufe stehen. Die warten einfach so lange, bis das lahmste am Markt verfügbare LCD-Modul mit der Kommandoausführung fertig sein müßte, statt abzufragen, wann der Befehl tatsächlich abgearbeitet ist.

Insbesondere wenn Du das Löschkommando beim LCD-Modul verwendest, schlägt das Delay erheblich zu:

Die Ausgabe über Serial war nur ein Workarround zum Testen. Am Ende will ich ein Standalone Gerät ohne Computer daneben haben.

LCD Löschen verwende ich nicht, ich intitalisiere mit

LiquidCrystal lcd(6,5,4,3,2,7,8);

mache dann einmal

 lcd.setCursor(0, 0);
  lcd.print("Speed     Length");
  lcd.setCursor(-4, 2);
  lcd.print("red  green  blue");

und dann bei jeder festestellten Änderung der AnalogIN Werte das hier

lcd.setCursor(0,1);
  lcd.print("                ");
  lcd.setCursor(0, 1);
  lcd.print(sensor0);
  lcd.setCursor(6, 1);
  lcd.print(sensor1);
  lcd.setCursor(12, 1);
  lcd.print(sensor2);
  lcd.setCursor(-4,3);
  lcd.print("                ");
  lcd.setCursor(-4, 3);
  lcd.print(sensor3);
  lcd.setCursor(2, 3);
  lcd.print(sensor4);
  lcd.setCursor(8, 3);
  lcd.print(sensor5);

Frag mich nicht, warum die unteren 2 Zeilen um 4 Zeichen nach rechts verschoben sind und ich den Cursor auf -4 setzen muss, wenn ich 0 meine...aber so funktioniert es...

Es läuft halt parallel FastSPI und ohne LCD Output ist der Ablauf ca. um den Faktor 10 schneller...

Ist I2C Kommunikation eine Lösung, oder nicht?

Grüße, Helmuth