INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> Hallo zusammen, > > ich benutze die C-Control 1 V2.0 und würde an ihr gerne die I2C Tastatur anschließen. > Das Problem ist nun, das wenn ich das Beispielprogramm PCF8574_Tastatur_2.bas (siehe unten) verwende und dies Cmpilieren möchte kann er hiermit: define EXTPORT byteport[10] nicht anfangen. hallo liegt am Compiler lade diesen neu herunter hanns Wenn ich den byteport auf 0 oder 1 setzte funktioniert es. Aber dann stimmt ja der Adressbereich der Tastatur nich. Denn die Adresse ist 70 > > Weiß vielleicht jemand Rat??? > > Markus > > > 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII > 'IIIIIIIIIIIIIII DEMO ZUR C-CONTROL M 2.0 / M 1.2 IIIIIIIIIIII > 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII > '(by DIE HARD 01.05) > ' > ' ANWENDUNG: IIC-BUS TASTATUR (19 83 56) MIT PCF8574 - DECODIERUNG - > '----------------------------------------------------------------------- > ' Sie sehen hier die Anwendung der C-Control mit einer PCF8574 > ' Porterweiterung für eine Matrix-Tastatur (als Zubehör 198356 erhältlich) > > ' Der PCF8574 befindet sich auf dem IIC-BUS TASTATUR MODUL. > ' Er wird in diesm Beispiel als EXTENDED PORT angesprochen, > ' welche vom Betriebssystem unterstützt werden und recht einfach > ' zu benutzen sind. > '----------------------------------------------------------------------- > ' Der Aufruf von GOSUB GET_MATRIX_KEY decodiert die 4x4 Matrix der Tastatur > ' und liefert in der Variablen KEY den Tastencode der Matrix-Tastatur zurück > ' Das Programm zeigt am LCD den Tastencode 0 bis 9 für die jeweiligen Ziffern > ' und die Codes 11 bis 16 für Funktionstasten. > ' Beachten Sie dass die PCF8574 jeweils auf unterschiedlichen Adressen > ' laufen müssen, wenn weitere externe Ports in Betrieb sind. > '------------------------------------------------------------------------ > ' In diesem Beispiel ligt der PCF8574 auf Byteport[10], alle Adress-Jumper > ' sind abgezogen. > ' > ' PCF 8574 ADR 0 Ports 17 - 24 BYTEPORT 3 > ' PCF 8574 ADR 1 Ports 25 - 32 BYTEPORT 4 > ' PCF 8574 ADR 2 Ports 33 - 40 BYTEPORT 5 > ' PCF 8574 ADR 3 Ports 41 - 48 BYTEPORT 6 > ' PCF 8574 ADR 4 Ports 49 - 56 BYTEPORT 7 > ' PCF 8574 ADR 5 Ports 57 - 64 BYTEPORT 8 > ' PCF 8574 ADR 6 Ports 65 - 72 BYTEPORT 9 > ' PCF 8574 ADR 7 Ports 73 - 80 BYTEPORT 10 > > ' PCF 8574A ADR 0 Ports 81 - 88 BYTEPORT 11 > ' PCF 8574A ADR 1 Ports 89 - 96 BYTEPORT 12 > ' PCF 8574A ADR 2 Ports 97 - 104 BYTEPORT 13 > ' PCF 8574A ADR 3 Ports 105 - 112 BYTEPORT 14 > ' PCF 8574A ADR 4 Ports 113 - 120 BYTEPORT 15 > ' PCF 8574A ADR 5 Ports 121 - 128 BYTEPORT 16 > ' PCF 8574A ADR 6 Ports 129 - 136 BYTEPORT 17 > ' PCF 8574A ADR 7 Ports 137 - 144 BYTEPORT 18 > '---------------------------------------------------------------------------- > ' Achtung, ganz wichtig: > ' Die Ports müssen als Ausgang initialisiert werden bevor der IIC-Bus > ' benutzt wird: SDA=on:SCL=on > ' Achten Sie unbedingt darauf, dass das LCD initialisiert ist, wenn es > ' angesteckt ist (auch wenn sie es nicht benutzen). > ' Es teilt sich einen Teil seines Busses mit dem IIC-BUS > ' print"#ON_LCD#"; > ' print"#INIT#"; > ' print"#OFF#"; > '-------------------------------------------------------------------------- > ' Sie können SDA und SCL natürlich auch auf andere Digitalports legen, > ' wenn Ihre Anwendung das erfordert. > '-------------------------------------------------------------------------- > '-------------------------- > '------ I/O PORTS --------- > '-------------------------- > '--- IIC INTERFACE ------- > define SDA port[9] > define SCL port[10] > '---- PROGRAMM ------------ > define LAMP port[16] > define EXTPORT byteport[10] > '-------------------------- > '------ SYSTEM MEMORY ----- > '-------------------------- > '---- MATRIX DECODER ------ > define OFFSET byte[5] > define KEY byte[6] > define VALUE byte[7] > > > > > > print"#ON_LCD#";"#INIT#"; > LAMP=off > SDA=on:SCL=on > > '------------------------------------------------ > '--- MAIN LOOP DISPLAY KEYCODE -- > '------------------------------------------------ > > #LOOP > gosub GET_MATRIX_KEY > print"#L101#";"KEYCODE: ";KEY;" "; > pause 5 > goto LOOP > > '------------------------------------------------ > '--- TASTATURDECODER PCF8574 - 4x4 MATRIX -- > '------------------------------------------------- > #GET_MATRIX_KEY > '--------- DECODE COLUMN 1 1-5-9-C -- > EXTPORT=&B11101111 > gosub DEC > if KEY<>255 then goto EXIT > '--------- DECODE COLUMN 2 2-6-0-D -- > EXTPORT=&B11011111 > gosub DEC > if KEY<>255 then goto EXIT > '--------- DECODE COLUMN 3 3-7-A-E -- > EXTPORT=&B10111111 > gosub DEC > if KEY<>255 then goto EXIT > '--------- DECODE COLUMN 2 4-8-B-F -- > EXTPORT=&B01111111 > gosub DEC > #EXIT > RETURN > '------------------------------------------------- > '--------------- DECODE COL ---------------------- > '------------------------------------------------- > #DEC > KEY=255:VALUE=EXTPORT > if (VALUE and &HF0) = &B11100000 then OFFSET=0 > VALUE=VALUE and &H0F > if VALUE=&B00001110 then KEY=1+OFFSET > if VALUE=&B00001101 then KEY=5+OFFSET > if VALUE=&B00001011 then KEY=9+OFFSET > if VALUE=&B00000111 then KEY=13+OFFSET > IF KEY=10 THEN KEY=0 > OFFSET=OFFSET+1 > RETURN |
Antwort schreiben |