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
Code:
'----------------------------------------------------------
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?