Hallo
Ich habe das RN-Controll und das RN-KEY LCD über I2C Bus in Betrieb. Nun Feile ich an dem Programmcode der es mir zuläßt das ich die Volle Anzahl der Möglichen Zeichen auf dem Display darstellen kann sprich 4*20 Zeichen. Ich schaffe es nicht über 38 oder 40 Zeichen hinaus warum auch immer sobald ich mehr Zeichen habe zeigt das Display gar nichts mehr an
Hier ist das Bascom Programm was ich habe vieleicht entdeckt jemand ja den Fehler oder kann mich darüber aufklären warum das der Zeichenanzahl immer nicht geht :
Code:' ------------- Hier die üblichen RN-Control Anweisungen -------------- $regfile = "m32def.dat" Dim I As Integer Dim N As Integer Dim Ton As Integer $crystal = 16000000 'Quarzfrequenz $baud = 9600 $hwstack = 32 $framesize = 32 $swstack = 32 Config Scl = Portc.0 'Ports fuer IIC-Bus Config Sda = Portc.1 Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung Config Pina.7 = Input 'Für Tastenabfrage Porta.7 = 1 'Pullup Widerstand ein Const Ref = 5 / 1023 'Für Batteriespannungsberechnung Dim Taste As Byte Dim Volt As Single ' ------------- Ende der üblichen RN-Control Anweisungen -------------- 'Hauptprogramm LCD Ansteuern Declare Sub Rnlcd_cursor(byval Spalte As Byte , Byval Zeile As Byte) Declare Sub Rnlcd_clr() Declare Sub Rnlcd(byval Text As String) Const Rnkeylcd_slaveid_write = &H40 'I2C SlaveAdresse Const Rnkeylcd_slaveid_read = &H41 Dim Stemp As String * 100 Wait 1 'Warte bis LCD bereit, falls gleicheitig Spannung eingeschaltet wird I2cinit Stemp = Chr(12) 'Löscht LCD Rnlcd_clr Rnlcd_cursor 4 , 1 Rnlcd "Willkommen im" Rnlcd_cursor 4 , 2 Rnlcd "Roboternetz" Rnlcd_cursor 4 , 3 Rnlcd "Roboternetz" Rnlcd_cursor 4 , 4 Rnlcd "38Z" End 'Die speziellen I2C Befehle für das Board RN.KeyLCD: Sub Rnlcd_cursor(byval Spalte As Byte , Byval Zeile As Byte) Local Befehle As String * 4 Befehle = Chr(27) + Chr(79) + Chr(spalte) + Chr(zeile) I2csend Rnkeylcd_slaveid_write , Befehle , 4 End Sub Sub Rnlcd_clr() Local Befehle As String * 2 Befehle = Chr(12) I2csend Rnkeylcd_slaveid_write , Befehle , 1 End Sub Sub Rnlcd(byval Text As String) 'Eine Art Print Befehl Local Le As Word Le = Len(text) I2csend Rnkeylcd_slaveid_write , Text , Le End Sub 'LCD Testprogramm ENDE
Lesezeichen