Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

LPT-Port einlesen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
oiermann



Anmeldungsdatum: 28.12.2005
Beiträge: 90
Wohnort: Leutkirch

BeitragVerfasst am: 13.12.2006, 19:57    Titel: LPT-Port einlesen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Kai Bareis



Anmeldungsdatum: 10.09.2004
Beiträge: 545
Wohnort: Baden Würtemberg

BeitragVerfasst am: 13.12.2006, 20:33    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
oiermann



Anmeldungsdatum: 28.12.2005
Beiträge: 90
Wohnort: Leutkirch

BeitragVerfasst am: 14.12.2006, 16:56    Titel: Antworten mit Zitat

Ja, das mit den fünf anderen kenne ich. BUSY, PAPER OUT usw., vielen dank, dank werd' ich das gleich mal ausprobieren lächeln

//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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
max06



Anmeldungsdatum: 05.12.2004
Beiträge: 390
Wohnort: Augsburg

BeitragVerfasst am: 14.12.2006, 18:08    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kai Bareis



Anmeldungsdatum: 10.09.2004
Beiträge: 545
Wohnort: Baden Würtemberg

BeitragVerfasst am: 14.12.2006, 18:09    Titel: Antworten mit Zitat

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 lächeln
_________________
MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
oiermann



Anmeldungsdatum: 28.12.2005
Beiträge: 90
Wohnort: Leutkirch

BeitragVerfasst am: 14.12.2006, 20:01    Titel: Antworten mit Zitat

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 lächeln


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 Zunge rausstrecken
_________________
Ich bin keine Signatur, ich putz hier nur
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
oiermann



Anmeldungsdatum: 28.12.2005
Beiträge: 90
Wohnort: Leutkirch

BeitragVerfasst am: 14.12.2006, 20:03    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Apokalypsos



Anmeldungsdatum: 17.01.2007
Beiträge: 1

BeitragVerfasst am: 17.01.2007, 17:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 18.01.2007, 09:51    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz