ich habe ein kleines Problem mit dem auslesen der einzelnen Bits. Aus einem WORD möchte ich die einzelnen Bits auslesen und in einem ARRAY schreiben. Leider kommt immer die Fehlermeldung das eine ganze Zahl erwartet wird. Hier ist mein Vorschlag:
i:=0;
WHILE(i<5) DO
DataBit[i]:=wInput.i;i:=i+1;
END_WHILE
Wieso funktioniert es nicht, bei einer Variablen als Anhang von wInput, es funktioniert bei einer Zahl, z.B. wInput.1? Ansonsten fällt mir nur die Standartlösung ein, wo jedes Feldelement einzeln einem Bit zugeordnet wir (DataBit[2]:=wInput.2; => ist aber ein mega Schreibaufwand).
dani hat geschrieben:
Hallo,
ich habe ein kleines Problem mit dem auslesen der einzelnen Bits. Aus einem WORD möchte ich die einzelnen Bits auslesen und in einem ARRAY schreiben. Leider kommt immer die Fehlermeldung das eine ganze Zahl erwartet wird. Hier ist mein Vorschlag:
i:=0;
WHILE(i<5) DO
DataBit[i]:=wInput.i;
i:=i+1;
END_WHILE
Wieso funktioniert es nicht, bei einer Variablen als Anhang von wInput, es funktioniert bei einer Zahl, z.B. wInput.1? Ansonsten fällt mir nur die Standartlösung ein, wo jedes Feldelement einzeln einem Bit zugeordnet wir (DataBit[2]:=wInput.2; => ist aber ein mega Schreibaufwand).
Ich hoffe ihr könnt mir helfen.
Gruß Dani
Originally created by: dani
Hallo,
ich habe ein kleines Problem mit dem auslesen der einzelnen Bits. Aus einem WORD möchte ich die einzelnen Bits auslesen und in einem ARRAY schreiben. Leider kommt immer die Fehlermeldung das eine ganze Zahl erwartet wird. Hier ist mein Vorschlag:
i:=0;
WHILE(i<5) DO
END_WHILE
Wieso funktioniert es nicht, bei einer Variablen als Anhang von wInput, es funktioniert bei einer Zahl, z.B. wInput.1? Ansonsten fällt mir nur die Standartlösung ein, wo jedes Feldelement einzeln einem Bit zugeordnet wir (DataBit[2]:=wInput.2; => ist aber ein mega Schreibaufwand).
Ich hoffe ihr könnt mir helfen.
Gruß Dani
Related
Talk.ru: 2
Originally created by: Bernhard Werner
Hallo Dani,
Die Fehlermeldung will sagen, dass ein Konstanter Wert erwartet wird und
keine Variable.
w.i ist eben rein von der Syntax der Zugriff auf eine Komponente und nicht auf ein Bit.
Eine arithmetische Lösung Deines Problems wäre:
DataBit[i] := BOOL_TO_DWORD(SHR(SHL(wInput, 31 - i), 31));
(oder eben Schreibarbeit)
Gruss,
Bernhard
Related
Talk.ru: 2