PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : c-control. fehler im basic?



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?

23.08.2004, 19:05
Welche C-Control ist das ? Die M 2.0?
Oder die alte?

DIE HARD

LostInSpace
23.08.2004, 19:18
5 oder 6 jahre alt

Dirk
23.08.2004, 21:28
Hallo "LostInSpace",

ändere doch probehalber 'mal ...

if (E1 AND ( 1 shl i)) = (Eingang AND 1 shl i) then next i
in

if (E1 AND ( 1 shl i)) = (Eingang AND (1 shl i)) then next i

Ich hab's aber nicht probiert! 8-[

Gruß Dirk

LostInSpace
23.08.2004, 22:14
@dirk

ich hatte den falschen source gepostet. im original ist es natuerlich so geklammert, wie du es geschrieben hast.

auszug aus der mainloop

if e1 <> Eingang gosub SendChangedPorts

ich glaube, es ist ein fehler im basic. ich habe das programm auf die funktion und mainloop reduziert (keine anderen software-fehler mehr moeglich).

Tappi
23.08.2004, 23:20
Hallo,

poste doch mal die BASIC Tokens. Vielleicht kann ich was damit anfangen.

LostInSpace
24.08.2004, 16:17
hust,
wo liegen die tokens denn? ich benutze die win ide v1.33

kleiner nachtrag.
wenn ich die shl anweisung durch eine variable ersetze, sind die ergebnisse noch skuriler.

Tappi
24.08.2004, 16:21
Durch den Compiler wird eine DAT Datei erzeugt. In der Befinden sich die Tokens.