Hallo Forum Gemeinde und Bastler
da ich nicht das erreicht habe was ich wollte von meinen Bastler "Freund/de" möchte ich euch um einen Rat oder Tipps mich freuen.
Also mein Anliegen was ich gerne Möchte folgendes:
habe eine Platine mit
---------------------------------------------------------------------------------------------
3x PCF8574AP
1x Für LCD - Adresse (&H70)
1x Für TASTEN (P0-P3) Schreib Adresse (&H72) Lese Adresse (&H73)
1x Für LED`S (P0-P3) Schreib Adresse (&H74) Lese Adresse (&H75)
---------------------------------------------------------------------------------------------Hier die Platine:
Nu Möchte ich gerne wenn:
Ich die Taste P.0 Drücke das die LED P.0 Angeht, drücke ich die taste P.0 nochmal das die LED P.0 Wieder ausgeht....
Und die anderen drei gerne so hätte:
Wenn ich die taste P.1 Drücke leuchtet die LED P.1, beim loslassen Wieder ausgeht...
So ich stelle den Code hier mal rein verleicht kann mir einer mir mehr dazu sagen oder auch Tipps geben.
Hier der code:
CodeBox BascomAVR
Mit Freundlichen Grüßen
Thorsten Sch.
da ich nicht das erreicht habe was ich wollte von meinen Bastler "Freund/de" möchte ich euch um einen Rat oder Tipps mich freuen.
Also mein Anliegen was ich gerne Möchte folgendes:
habe eine Platine mit
---------------------------------------------------------------------------------------------
3x PCF8574AP
1x Für LCD - Adresse (&H70)
1x Für TASTEN (P0-P3) Schreib Adresse (&H72) Lese Adresse (&H73)
1x Für LED`S (P0-P3) Schreib Adresse (&H74) Lese Adresse (&H75)
---------------------------------------------------------------------------------------------Hier die Platine:
Nu Möchte ich gerne wenn:
Ich die Taste P.0 Drücke das die LED P.0 Angeht, drücke ich die taste P.0 nochmal das die LED P.0 Wieder ausgeht....
Und die anderen drei gerne so hätte:
Wenn ich die taste P.1 Drücke leuchtet die LED P.1, beim loslassen Wieder ausgeht...
So ich stelle den Code hier mal rein verleicht kann mir einer mir mehr dazu sagen oder auch Tipps geben.
Hier der code:
CodeBox BascomAVR
$lib "Lcd_i2c.lib" $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config I2cdelay = 15 'delay von 5=20µs=50kHz,10=10µs=100kHz;5=5µs=200KHz Config Scl = Portc.5 'I2C SCL Pin Config Sda = Portc.4 'I2C SDA Pin Const Pcf8574_lcd = &H70 Const Pcf8574_taster_schreibadresse = &B01110010 '&H72 - Taster ( Out ) Const Pcf8574_taster_leseadresse = &B01110011 '&H73 - Taster ( In ) Const Pcf8574_led_schreibadresse = &B01110100 '&H74 - LED ( Out ) Const Pcf8574_led_leseadresse = &B01110101 '&H75 - LED ( In ) I2cinit Waitms 100 'sollte auch immer sein. 'sind die Variablen der IC Puffer Dim Taste As Byte Dim Led As Byte Do Gosub Programm1 'liest den Pufferinhalt aller 8 Eingänge soll soll es ja sein Gosub Programm2 'schreibt in Puffer alle Ausgänge für LED Loop Programm1: I2cstart I2cwbyte Pcf8574_taster_leseadresse I2cwbyte &B11111111 'IC für Tasten auf Eingang schalten. I2crbyte Taste , Nack 'Byte in Variable speichern I2cstop 'alle Taster toggeln 'Toggle Taste Return 'Tasten Abrage beendet ab zu LED Anzeige(spring in Do auf Programm2) '******************************************* Programm2: I2cstart I2cwbyte Pcf8574_led_schreibadresse 'IC2 Adresse des PCF8574 I2cwbyte &B00000000 'IC für LED auf Eingang schalten 'Hier kommen erst die Entscheidungen in Abhängigkeit der Taster 'für Abfrage Taste einmal drüchen L und nochmals drücken H Toggle Taste.0 If Taste.0 = 0 Then Led.0 = 1 ' hier wird Byte LED auf Binär 11111110 gesetzt I2cwbyte Led 'Byte Variable senden 'hier ohne toggeln If Taste.1 = 0 Then Led.1 = 0 I2cwbyte Led 'Byte Variable senden If Taste.2 = 0 Then Led.2 = 0 I2cwbyte Led 'Byte Variable senden If Taste.3 = 0 Then Led.3 = 0 I2cwbyte Led 'Byte Variable senden If Taste.4 = 0 Then Led.4 = 0 I2cwbyte Led 'Byte Variable senden I2cstop Return
Mit Freundlichen Grüßen
Thorsten Sch.