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> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > Hallo zusammen, > > > > ich suche verzweifelt eine ausgereifte I2C-Keyboard-Lib für eine 4x4 Matrix-Tastatur am PFC8574 (in cc) > > > > für mein C-Control Pro 128er-Projektboard. > > > > Im Web ist nichts zu finden, ausser für die C-Control 2 (in c2). Hier habe ich allerdings erhebliche Probleme > > (C-Programmierung ist nicht meine Welt) den c2-Dialekt in den cc-Dialekt für den Pro abzuwandeln. > > > > Wer kann mich bitte mit einer funktionierenden Lib unterstützen? > > > > Meinen Dank und Grüsse > > > > Ralf > > Hierbei die Code: > > '---------------------------------------------------------------------------------- > '----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- > '---------------------------------------------------------------------------------- > 'Projektname: I²C_BUS_TASTATUR_198356.cprj > 'Benötigte Libs´s: IntFunc_lib.cc > 'Routinen: I²C_BUS_TASTATUR_198356.cbas > 'Autor: UlliS > 'Datum: 19.11.2007 > 'Funktion: Auslesen der I²C-BUS Tastatur Best.-Nr.:198356 > 'Neue Funktionen: Ausgabe auf LCD des Tasten Codes > 'Notitz: > '---------------------------------------------------------------------------------- > > #define PCF8574_W &H4E > #define PCF8574_R &H4F > > Dim Zeile1(9) As Char > Dim Zeile2(9) As Char > Dim Taste, Spalte, Zeile As Byte > Dim Ausgabe, Key(18) As Char > > > Sub main() > > 'Init > I2C_Init(I2C_100kHz) 'I2C Bit Rate: 100 kHz > LCD_start() 'LCD Init > I2C_KeyInt() 'Key Init > Ausgabe = 0x20 'Ausgabe vorbelegen > > > 'Info Text > Zeile1 = "I2C-BUS" > LCD_Locate(1,1) : LCD_WriteText(Zeile1) > Zeile2 = "Tastatur" > LCD_Locate(2,1) : LCD_WriteText(Zeile2) > AbsDelay(2500) > LCD_ClearLCD() > > > 'Tastatur einlesen > Do While (1) > Read_I2C_Taste() > LCD_Locate(1,1) : LCD_WriteText(Zeile1) > Zeile2 = "Key: " > LCD_Locate(2,1) : LCD_WriteText(Zeile2) > LCD_Locate(2,6) : LCD_WriteChar(Ausgabe) > End While > > > End Sub > > '----------------------------------------------------------------------- > ' Key Map > '----------------------------------------------------------------------- > Sub I2C_KeyInt() > Key = "159C260D37*A48#B" > End Sub > > '----------------------------------------------------------------------- > ' Tasten lesen > '----------------------------------------------------------------------- > Sub Read_I2C_Taste() > Spalte = 0xE0 > TastCode(Spalte) > Spalte = 0xD0 > TastCode(Spalte) > Spalte = 0xB0 > TastCode(Spalte) > Spalte = 0x70 > TastCode(Spalte) > End Sub > > '----------------------------------------------------------------------- > ' Tasten Code > '----------------------------------------------------------------------- > Sub TastCode(Spalt As Byte) As Byte > > Select Case Spalte > Case 0x70 > Zeile = 12 > Case 0xB0 > Zeile = 8 > Case 0xD0 > Zeile = 4 > Case 0xE0 > Zeile = 0 > End Case > > I2C_Start() > I2C_Write(0x4E) '0100 1110, Schrijfadres voor PCF8574 A3=1 A2=1 A1=1 > I2C_Write(Spalte + 0x0F) > I2C_Start() > I2C_Write(0x4F) '0100 1111, leesadres voor PCF8574 A3=1 A2=1 A1=1 > Taste = I2C_Read_NACK() > I2C_Stop() > > If (Taste=Spalte + 0x0E) Then > Ausgabe = Key(Zeile) > End If > > If (Taste=Spalte + 0x0D) Then > Ausgabe = Key(Zeile+1) > End If > > If (Taste=Spalte + 0x0B) Then > Ausgabe = Key(Zeile+2) > End If > > If (Taste=Spalte + 0x07) Then > Ausgabe = Key(Zeile+3) > End If > > Return Ausgabe > > End Sub > > Mit freundlichen grüss > Kees