LostInSpace
23.08.2004, 17:38
hallo,
ich habe gerade ein problem mit meiner c-control, bei dem ich nun wirklich nicht mehr weiter weiss. liegt es am basic, an der hardware oder meiner unfaehigkeit?
folgendes. ich lese den byteport[2[ und pruefe, ob sich an den ports etwas geaendert hat. hierzu wird der port bit weise mit dem alten wert verglichen und aenderungen via rs-232 gesendet. das problem ist nun, das beim letzen for durchlauf (i=7) immer eine aenderung ausgegeben wird. drehe ich ich die for schleife in for i = 7 to 0 step -1, wird immer bei i=0 eine aenderung gemeldet. es wird zwar der richtige wert ausgegeben, aber warum?
ausschnitt
'----------------------------------------------------------
define Eingang byteport[2]
define i byte
define E1 byte
E1 = eingang
' send changes from input-ports
#SendChangedPorts
for i = 0 to 7
if (E1 AND ( 1 shl i)) = (Eingang AND 1 shl i) then next i
cmd = CMD_GET_BIT
b3 = i + 1
b4 = Eingang AND ( 1 shl i)
if b4 > 1 then b4 = 1 ' send 0 or 1 for port value
gosub SendSerBlock
next i
E1 = Eingang
return 'SendChangedPorts
ist das ein fehler im basic?
ich habe gerade ein problem mit meiner c-control, bei dem ich nun wirklich nicht mehr weiter weiss. liegt es am basic, an der hardware oder meiner unfaehigkeit?
folgendes. ich lese den byteport[2[ und pruefe, ob sich an den ports etwas geaendert hat. hierzu wird der port bit weise mit dem alten wert verglichen und aenderungen via rs-232 gesendet. das problem ist nun, das beim letzen for durchlauf (i=7) immer eine aenderung ausgegeben wird. drehe ich ich die for schleife in for i = 7 to 0 step -1, wird immer bei i=0 eine aenderung gemeldet. es wird zwar der richtige wert ausgegeben, aber warum?
ausschnitt
'----------------------------------------------------------
define Eingang byteport[2]
define i byte
define E1 byte
E1 = eingang
' send changes from input-ports
#SendChangedPorts
for i = 0 to 7
if (E1 AND ( 1 shl i)) = (Eingang AND 1 shl i) then next i
cmd = CMD_GET_BIT
b3 = i + 1
b4 = Eingang AND ( 1 shl i)
if b4 > 1 then b4 = 1 ' send 0 or 1 for port value
gosub SendSerBlock
next i
E1 = Eingang
return 'SendChangedPorts
ist das ein fehler im basic?