Ausgabe in Controlregister Parallelport
Verfasst: 10.01.2005 12:17
Was mache ich falsch!
ich versuche in das Controlregister des Parallelports zu schreiben. Aber irgendwas mache ich falsch. Hier ist Code:
;---------------Deklaration der Variabeln ---------------------------------------
PortNumD.l = $378 ; PortNummer des Datenregisters
PortNumS.l = $379 ; PortNummer des Statusregisters
PortNumC.l = $37A ; PortNummer des Controlregisters
Samples = 0
j = 1
;----------------------------------check library io.dll -------------------------
LibOpen.l = OpenLibrary(1,"io.dll")
If LibOpen = 0
End
EndIf
;---------------------------------open function io.dll--------------------------
CallFunction(1,"PortOut", PortNumC,%0000) ; write to port 37ah
Text$ = InputRequester("Number of samples!", "Integerzahl", "")
Samples =Val(Text$)
Repeat
CallFunction(1,"PortOut", PortNumC,%0000) ; write 0 to port
37ah "Strobe = 0"
Ergebnis.b= CallFunction(1,"PortIn", PortNumC)
INC j
Until j >= Samples
Wenn ich nun %0001 in das Register oder aber auch %0011 schreibe und anschließend den reingeschriebenen Wert wieder auslese, steht immer 3 drin. Ich weiß, dass die Bits des Controlregisters teilweise invertiert sind.
Hier sind die Infos zum Port: http://members.tripod.com/~Malzev/radiodoc/printer.htm
Was mache ich denn falsch?
Ich benutze die io.dll unter folgendem Link: http://www.geekhideout.com/iodll.shtml
ich versuche in das Controlregister des Parallelports zu schreiben. Aber irgendwas mache ich falsch. Hier ist Code:
;---------------Deklaration der Variabeln ---------------------------------------
PortNumD.l = $378 ; PortNummer des Datenregisters
PortNumS.l = $379 ; PortNummer des Statusregisters
PortNumC.l = $37A ; PortNummer des Controlregisters
Samples = 0
j = 1
;----------------------------------check library io.dll -------------------------
LibOpen.l = OpenLibrary(1,"io.dll")
If LibOpen = 0
End
EndIf
;---------------------------------open function io.dll--------------------------
CallFunction(1,"PortOut", PortNumC,%0000) ; write to port 37ah
Text$ = InputRequester("Number of samples!", "Integerzahl", "")
Samples =Val(Text$)
Repeat
CallFunction(1,"PortOut", PortNumC,%0000) ; write 0 to port
37ah "Strobe = 0"
Ergebnis.b= CallFunction(1,"PortIn", PortNumC)
INC j
Until j >= Samples
Wenn ich nun %0001 in das Register oder aber auch %0011 schreibe und anschließend den reingeschriebenen Wert wieder auslese, steht immer 3 drin. Ich weiß, dass die Bits des Controlregisters teilweise invertiert sind.
Hier sind die Infos zum Port: http://members.tripod.com/~Malzev/radiodoc/printer.htm
Was mache ich denn falsch?
Ich benutze die io.dll unter folgendem Link: http://www.geekhideout.com/iodll.shtml