Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
oiermann
Anmeldungsdatum: 28.12.2005 Beiträge: 90 Wohnort: Leutkirch
|
Verfasst am: 13.12.2006, 19:57 Titel: LPT-Port einlesen |
|
|
Ich habe ja schon die ein und andere Relaiskarte für den LPT-Port gebaut, aber nun hab ich im Bios gesehen, dass ich den auf bidirektional stellen kann. Also müsste ich doch auch an D0-D7 einlesen können, oder?
Und wenn ja, dann mit INP(&h378) oder? Und was muss ich an D0-D7 anlegen und das messen zu können? _________________ Ich bin keine Signatur, ich putz hier nur |
|
Nach oben |
|
|
Kai Bareis
Anmeldungsdatum: 10.09.2004 Beiträge: 545 Wohnort: Baden Würtemberg
|
Verfasst am: 13.12.2006, 20:33 Titel: |
|
|
Eingelesen wird das dann wie von dir gesagt über INP(Basisadresse zB &h378). Um einzelne Pins abzufragen ist eine AND Verknüpfung sehr hilfreich zB If (INP(888) and 128) = 128 then ....
Man kann übrigens auch noch andere 5 Eingänge des LPT abfragen. Dazu solltest du mal auf www.franksteinberg.de nachschauen
Und zu den Eingangssignalen WICHTIG! nur 0V/5Volt den sonst ist nicht nur die Schnittstelle defekt unter umständen sogar das ganze Mainboard. Am besten noch einen ich sag jetzt mal so ca 1Kohm wenn möglich auch größer dadurch ist die gefahr etwas durch Kurzschlüsse kaputt zu machen kleiner. _________________ MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht! |
|
Nach oben |
|
|
oiermann
Anmeldungsdatum: 28.12.2005 Beiträge: 90 Wohnort: Leutkirch
|
Verfasst am: 14.12.2006, 16:56 Titel: |
|
|
Ja, das mit den fünf anderen kenne ich. BUSY, PAPER OUT usw., vielen dank, dank werd' ich das gleich mal ausprobieren
//EDIT: Also irgendwie tut sich da nichts. Das ist mein kleiner Test-Code:
Code: |
10 INPUT wert
20 IF wert = 6666 THEN GOTO 50
30 OUT (&h378), wert
40 GOTO 10
50 a = INP (&h378)
60 LOCATE 5,1 : PRINT a
70 GOTO 50
|
sieht so aus, Am Anfang kann ich einstellen ob alle an sind oder aus sind. Sobald ich dann 6666 eingebe, zeigt er mir den aktuellen Zustand an. Aber nur den, den ich vorher eingestellt habe. Wenn ich auf 0 gestellt habe, An z.B. D3 (4) 5V mit 1KWiderstand anlege, ändert sich nichts.
//EDIT2:
Code: |
a = 0
OUT (888), 0
10 IF (INP(888) and 128) = 128 then PRINT "haha", a
a = a +1
GOTO 10
|
das hier tut auch nicht.... _________________ Ich bin keine Signatur, ich putz hier nur |
|
Nach oben |
|
|
max06
Anmeldungsdatum: 05.12.2004 Beiträge: 390 Wohnort: Augsburg
|
Verfasst am: 14.12.2006, 18:08 Titel: |
|
|
Ich glaube, mal etwas von INP(889) gehört zu haben... aber ob das stimmt?
Wenn nicht, Kommentar bitte einfach löschen/ignorieren/usw...
Grüße
Florian |
|
Nach oben |
|
|
Kai Bareis
Anmeldungsdatum: 10.09.2004 Beiträge: 545 Wohnort: Baden Würtemberg
|
Verfasst am: 14.12.2006, 18:09 Titel: |
|
|
hm ansonsten probiere es mal ohne Widerstand oder anderes Einstellungen im Bios ich meine das es eigneltich funktionieren sollte.
Zum Code sag ich jetzt nur soviel bei Qbasic brauch man keine Zeilennummern mehr wenn man das "Böse" goto nicht nimmt _________________ MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht! |
|
Nach oben |
|
|
oiermann
Anmeldungsdatum: 28.12.2005 Beiträge: 90 Wohnort: Leutkirch
|
Verfasst am: 14.12.2006, 20:01 Titel: |
|
|
Kai Bareis hat Folgendes geschrieben: | hm ansonsten probiere es mal ohne Widerstand oder anderes Einstellungen im Bios ich meine das es eigneltich funktionieren sollte.
Zum Code sag ich jetzt nur soviel bei Qbasic brauch man keine Zeilennummern mehr wenn man das "Böse" goto nicht nimmt |
Hmmm ist auf Bi-Direktional, aber mal ECP/EPP usw testen. Und ich nehm sonst auch kein GOTO, nur bei solchen kurzen Testdingern. SUBs rocken _________________ Ich bin keine Signatur, ich putz hier nur |
|
Nach oben |
|
|
oiermann
Anmeldungsdatum: 28.12.2005 Beiträge: 90 Wohnort: Leutkirch
|
Verfasst am: 14.12.2006, 20:03 Titel: |
|
|
max61989 hat Folgendes geschrieben: | Ich glaube, mal etwas von INP(889) gehört zu haben... aber ob das stimmt?
Wenn nicht, Kommentar bitte einfach löschen/ignorieren/usw...
Grüße
Florian |
889 sind die Signale wie BUSY, PAPER OUT, ACK usw... aber da muss man GND anlegen, am besten mit Widerstand. _________________ Ich bin keine Signatur, ich putz hier nur |
|
Nach oben |
|
|
Apokalypsos
Anmeldungsdatum: 17.01.2007 Beiträge: 1
|
Verfasst am: 17.01.2007, 17:39 Titel: |
|
|
Also generell sind die Funktion INP(speicheradresse) und der Befehl OUT speicheradresse, Byte (beide dez) schon richtig. Allerdings:
1. Der Port unterscheidet sich von PC zu PC. Man schaut ihn an, indem man im Geräte-Manager des Systems beim LPT-Port unter Treiber die Hex-Zahlen der Speicheradressen nimmt, diese in DezZahlen umrechnet (oder, glaub ich, ein & vor die Hexzahl setzt) und dann testet. 888 (dez) funktioniert bei vielen PCs für den out der acht programmierbaren leitungen, 889 als in-port für die statusleitungen. einfach ausprobieren.
2. und das ist ärgerlich: Unter Windows XP oder ME darf man ohne Treiber nicht auf den Druckerport zugreifen. Das heißt, der Befehl funktioniert faktisch nicht. Ich suche selber noch nach einer Lösung für dieses Problem, ich werd was posten wenn ich was finde...
edit: man kann das problem mit dem freeware-programm userport beheben. |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1874 Wohnort: D59192
|
Verfasst am: 18.01.2007, 09:51 Titel: |
|
|
Hi Apokalypsos,
du hast es gut gemeint, dir aber die Vorgeschichte hier nicht richtig durchgelesen.
Die Portadresse und Anweisungen den PP zu lesen waren bekannt, auch die Schwierigkeiten unter XP und NT (ME gehört in die Entwicklungsreihe 95/98/ME, Ports können direkt angesprochen werden).
Hier geht es darum den PP bidirektional zu betreiben, also auf den Datenleitungen D0-D7 Werte auszugeben und einzulesen.
@oiermann
Versuch mal vor jedem Inp(888) mit out(888),255 alle Datenleitungen auf "1" zu setzen (und blos nicht ohne Widerstand gegen 0(Gnd) schalten). Ich habe gelesen nur so könne man bei einigen Ports den "1" Pegel einlesen. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
|