Hi, das geht viel einfacher.
Du musst zunächst mit Deinen Tastern den Port auf Gnd schalten (nicht auf 5Volt!). Wenn nicht gedrückt ist, dann wird der Port automatisch auf 5V gezogen und damit als "On" erkannt (also logisch gerade verkehrt herum).
Die Zustände der Relais werden schon im Byte "STATION_IO" als Bit-Zustände gespeichert. Die Tastenzustände müssen mit Not einfach invertiert werden und dem Relais-Bits zugewiesen werden. Fertig!
Schau Dir auch die Definition hier an, dass ist einfacher und führt nicht zu weiteren Kuddelmuddel:
define REL4 ref STATION_IO at bit[8]
Code:define LIGHT as port[16] define BPORT1 as byteport[1] import "...\LIB\SHOW_BINARY.BAS" import "...\LIB\PULLUP1_ENABLE.BAS" define ADC8 ad[8] define SDA as port[9] define SCL as port[10] define EXTPORT as byteport[4] define STATION_IO as byte define REL1 ref STATION_IO at bit[5] define REL2 ref STATION_IO at bit[6] define REL3 ref STATION_IO at bit[7] define REL4 ref STATION_IO at bit[8] define Taster1 as Port[1] ' Taster auf GND define Taster2 as Port[2] ' Taster auf GND define Taster3 as Port[3] ' Taster auf GND define Taster4 as Port[4] ' Taster auf GND PULLUP1_ENABLE() LIGHT=off LCD.INIT SDA=on SCL=on STATION_IO=OFF #HAUPTSCHLEIFE REL1=Not(Taster1) REL2=Not(Taster2) REL3=Not(Taster3) REL4=Not(Taster4) EXTPORT=STATION_IO ' Auf Byteport schreiben LCD.POS 1,1 LCD.PRINT "BINARY: " SHOW_BINARY(BPORT1) goto HAUPTSCHLEIFE







Zitieren

Lesezeichen