Hallo Stephan,
solltest Du den Wert des Porteingangs so abfragen
Delphi-Quellcode:
case Port of
LPT_DataRegister : Begin
IF Value AND $01 = $01 then result:=1;
IF Value AND $02 = $02 then result:=2;
IF Value AND $04 = $04 then result:=3;
IF Value AND $08 = $08 then result:=4;
IF Value AND $16 = $16 then result:=5;
IF Value AND $32 = $32 then result:=6;
IF Value AND $64 = $64 then result:=7;
IF Value AND $128 = $128 then result:=8
else result:= 0;
bekommst Du als Resultat immer nur das höchstwertig gesetzte Bit zurückgegeben.
Beispiel
Value = 10010000b
Dann erfolgt bei Value AND $16 => result := 5
und bei Value AND $128 => result := 8
Die Information von Bit4 geht also verloren
Möchtest Du die Anzahl der gesetzten Bits wissen, solltest Du Result inkrementieren, ansonsten bleibt Dir nur die Übergabe des binären Wertes oder die Zuweisung an acht einzelnen Variabelen oder an ein Array oder eine Struktur.
MfG.
Uwe
[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
MfG. Uwe
Nichts hält länger, als ein gutes Provisorium !