Hi,
C Beispiel habe ich zwar keine parat, mag es nicht so sehr, aber ich hab das gleiche jetzt noch mal in Bascom gemacht:
Es klappt wunderbar, bei 60 Zeichen sind es genau 3 Zeilen. Der Fehler muss wohl in deiner C-Libary liegen. Ich glaube die C-Libary nutzt noch immer SOFTWARE I2C Emulation und ClockStretching wird glaube auch nicht berücksichtigt. Du solltest mal schaun ob´s nicht modernere Libary gibt, Bascom hat das jetzt schon jahrelang.Code:'################################################### 'rnkeylcd_i2c_test5.bas 'Beispiel: zu RN-KeyLCD 'LCD und Matrixtastaturboard RN-KeyLCD wird per I2C angesteuert 'robotikhardware.de '################################################### ' ' ------------- Hier die üblichen RN-Control Anweisungen -------------- $regfile = "m32def.dat" $hwstack = 32 $framesize = 32 $swstack = 32 $crystal = 16000000 'Quarzfrequenz $baud = 9600 Config Scl = Portc.0 'Ports fuer IIC-Bus Config Sda = Portc.1 ' ------------- Ende der üblichen RN-Control Anweisungen -------------- 'Hauptprogramm Const Rnkeylcd_slaveid_write = &H40 'I2C SlaveAdresse Const Rnkeylcd_slaveid_read = &H41 Dim Z As Integer Dim S As Byte Wait 1 'Warte bis LCD bereit I2cinit I2cstart I2cwbyte Rnkeylcd_slaveid_write S = "a" For Z = 1 To 60 I2cwbyte S Next Z I2cstop End
Vielleicht ist aber auch die Schleife einfach zu schnell, versuchs mal mit einer winzigen Pause in der Schleife.
Gruß Frank







Zitieren

Lesezeichen