Hi
Irgendwie klappt das hier alles nicht.
Was passieren soll?
Wenn ein Taster am DigiPort1 geschaltet wird, soll Relais1 geschaltet werden.
Wenn ein Taster am DigiPort2 geschaltet wird, soll Relais2 geschaltet werden.
usw.
Außerdem werden die Zustände die die Relais haben sollen gespeichert, damit immer alle ansind die an sein sollen.
Aber er schaltet nicht.
Hier mal der Code, etwas abgekürzt.
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[3]
define REL1 as bit [21]
define REL2 as bit [22]
define REL3 as bit [23]
define REL4 as bit [24]
define _REL1 as word
define _REL2 as word
define _REL3 as word
define _REL4 as word
PULLUP1_ENABLE()
LIGHT=off
LCD.INIT
SDA=on
SCL=on
_REL1=-1
_REL2=-1
_REL3=-1
_REL4=-1
#HAUPTSCHLEIFE
if _REL1 = 1 then
REL1=ON
else
REL1=OFF
end if
if _REL2 = 1 then
REL2=ON
else
REL2=OFF
end if
if _REL3 = 1 then
REL3=ON
else
REL3=OFF
end if
if _REL4 = 1 then
REL4=ON
else
REL4=OFF
end if
STATION_IO=OFF
EXTPORT=STATION_IO
LCD.POS 1,1
LCD.PRINT "BINARY: "
SHOW_BINARY(BPORT1)
'----------------
if (BPORT1 = 11111110b) then
goto r1
end if
if (BPORT1 = 11111101b) then
goto r2
end if
if (BPORT1 = 11111011b) then
goto r3
end if
if (BPORT1 = 11110111b) then
goto r4
end if
if (BPORT1 = 11101111b) then
goto r1
end if
if (BPORT1 = 11011111b) then
goto r2
end if
if (BPORT1 = 10111111b) then
goto r3
end if
if (BPORT1 = 01111111b) then
goto r4
end if
goto HAUPTSCHLEIFE
#r1
Do
Loop Until BPORT1 <> 11111110b
PAUSE 25
LCD.POS 2,1
LCD.PRINT "REL1"
if _REL1=1 then
REL1=ON
end if
if _REL1=-1 then
REL1=OFF
end if
_REL1= _REL1 * -1
goto HAUPTSCHLEIFE
Hat jemand ne Idee, von mir aus aus wie mans komplett neu und besser macht.
Lesezeichen