Hallo NG!
Ich versuche mich gerade ein bisschen in I2C, da ich ein LC-Display (DSM-0822A mit PCF8576) geschenkt bekam, das sich nur über den 2-Wire-Bus ansteuern lässt.
Arne Rossius hat ja auf seiner Homepage schon ein Beispiel - nur leider hat mein PC keine serielle Schnittstelle mehr frei und der Parallelport hat es mir einfach angetan...
Deswegen habe ich mein Glück probiert und selbst etwas in Richtung I2C-Ansteuerung geschrieben. Es ist wieder so, wie es sein muss: Der PC werkelt zwar herum, am LCD tut sich hingegen nichts.
Wahrscheinlich steckt wieder einmal der Teufel im Detail - deshalb habe ich einen Auszug aus dem Modul hochgeladen:
IMO ist die Ausgabe vom I2C Low- und High-Bit richtig - beim Start- und Stoppbit bin ich mir nicht so ganz sicher. Spätestens in der Funktion Init() müsste/sollte/könnte der Fehler stecken. Zum Testen des LCDs wird einfach mal "wild" in den Speicher geschrieben...
Dabei habe ich mich ein wenig an
Die Wait-Befehle lassen die Funktion x ms schlafen, damit der Controller die Daten abarbeiten kann. (Die Werte sind momentan noch prophylaktisch etwas hoch gesetzt, da das ACK-Bit vom LCD nicht ausgelesen wird)
Ich hoffe, ihr findet meinen Fehler :)
TIA
Chris