LPT1 Pin-Abfrage

M

major

Guest
Hallo,
ich beabsichtige über LPT1 zu überprüfen ob bei einem Gerät
ausserhalb des Computers eine Verbindung zwischen 2 Leitungen besteht(
z.B. ob ein Relais angezogen ist).
Die Idee war, bei LPT1 Pin 2 über das Relais mit Pin 11 des LPT1 zu
verbinden.
Nun soll, sobald das Relais anzieht, der Kontakt von Pin 2 zu Pin 11
hergestellt sein. Wenn nun das Bit bei Pin 2 gesetzt ist, sollte man
dann bei Pin 11 abfragen können, ob das Realis angezogen ist.

Problem:
Bei QBasic leifert ein INP(379) immer 255 zurück, egal was passiert :(
 
major schrieb:

Problem:
Bei QBasic leifert ein INP(379) immer 255 zurück, egal was passiert :(
Unter welschem Betriebssystem arbeitest du?

Michael
--
Schreibt zusammen, was zusammengehört.
 
"major" <major.home@gmx.de> schrieb:

Die Idee war, bei LPT1 Pin 2 über das Relais mit Pin 11 des LPT1 zu
verbinden.
Warum Pin 11 ("Busy")? Die Pins 18...25 sind GND.

Problem:
Bei QBasic leifert ein INP(379) immer 255 zurück, egal was passiert
:(

Warum 379 und nicht 378?

--
Es gibt keine Neue Rechtschreibung. Es gibt eine Rechtschreibung und
eine neue Schreibweise. Ausserdem hätte ich lieber eine
Mathematikreform, dann wäre das Rechnen nicht so schwer.
 
Hallo major?,

major wrote:

ich beabsichtige über LPT1 zu überprüfen ob bei einem Gerät
ausserhalb des Computers eine Verbindung zwischen 2 Leitungen besteht(
z.B. ob ein Relais angezogen ist).
Wie Michael schon fragte: welches Betriebssystem? Unter Linux muss man
einen kleinen Treiber schreiben, der aber sehr harmlos ist (ca. 10
Zeilen). Unter DOS funktioniert es direkt mit dem Zugrif auf die
IO-Adreese, unter Windows NT/2000/XP musst Du einen Treiber haben. Bei
meinem nächsten Notebook wird das dann wohl garnichts mehr, weil da
keine LPT-Schnittstelle drin ist :).

Gruß, Kurt
--
Kurt Harders
MBTronik - PiN - Präsenz im Netz GITmbH
mailto:news@kurt-harders.de
http://www.mbtronik.de
 
major schrieb:

Hallo,
ich beabsichtige über LPT1 zu überprüfen ob bei einem Gerät
ausserhalb des Computers eine Verbindung zwischen 2 Leitungen besteht(
z.B. ob ein Relais angezogen ist).
Die Idee war, bei LPT1 Pin 2 über das Relais mit Pin 11 des LPT1 zu
verbinden.
Setzt du denn das Datenbit zuvor passend?

Nun soll, sobald das Relais anzieht, der Kontakt von Pin 2 zu Pin 11
hergestellt sein. Wenn nun das Bit bei Pin 2 gesetzt ist, sollte man
dann bei Pin 11 abfragen können, ob das Realis angezogen ist.
ja - im Prinzip geht das so

Problem:
Bei QBasic leifert ein INP(379) immer 255 zurück, egal was passiert :(
wie wäre es mit INP(&H379)? Mit "379" fragst du irgend was anderes ab.

und unter WIN > 98/ME oder 2000 (?), auf jeden Fall bei XP geht das
AFAIK sowieso nicht weil z.B. XP direkte Hardwareadressierung
verbietet.

Unter 98SE geht es - ich nutze es auch für diverse Projekte.


Gruss Wolfgang
--
No reply to "From"! - Keine Antworten an das "From"
Keine privaten Mails! Ich lese die NGs, in denen ich schreibe.
Und wenn es doch sein muss, dann muss das Subjekt das Wort NGANTWORT enthalten.
 
Problem:
Bei QBasic leifert ein INP(379) immer 255 zurück, egal was passiert :(

379 sieht nach Dezimal aus, sollte aber als Hexadezimal angegeben werden.
Weiß jetzt nicht wie es in QBasic ist - aber $379 könnte es dann sein.

Mfg
Thomas Pototschnig
www.oxed.de
 
Andreas Donner schrieb:

Die Idee war, bei LPT1 Pin 2 über das Relais mit Pin 11 des LPT1 zu
verbinden.

Warum Pin 11 ("Busy")? Die Pins 18...25 sind GND.
Weil er damit ein Datenbit zurückschleift und damit eindeutig erkennen
kann ob die zu kontrollierende Verbindung besteht indem er das Datebit
toggelt. Und genau synchron muss "Busy" zurückkommen.

Problem:
Bei QBasic leifert ein INP(379) immer 255 zurück, egal was passiert
:(

Warum 379 und nicht 378?
Weil das Statusregister nun mal eben &H379 ist.

Warum mischt du dich in Sachen ein von denen du offensichtlich kaum
eine Ahnung hast?


Gruss Wolfgang
--
No reply to "From"! - Keine Antworten an das "From"
Keine privaten Mails! Ich lese die NGs, in denen ich schreibe.
Und wenn es doch sein muss, dann muss das Subjekt das Wort NGANTWORT enthalten.
 
Kurt Harders schrieb:

ich beabsichtige über LPT1 zu überprüfen ob bei einem Gerät
ausserhalb des Computers eine Verbindung zwischen 2 Leitungen besteht(
z.B. ob ein Relais angezogen ist).

Wie Michael schon fragte: welches Betriebssystem? Unter Linux muss man
gibt es "qbasic" für Linux?

einen kleinen Treiber schreiben, der aber sehr harmlos ist (ca. 10
Zeilen). Unter DOS funktioniert es direkt mit dem Zugrif auf die
IO-Adreese, unter Windows NT/2000/XP musst Du einen Treiber haben. Bei
ACK


Gruss Wolfgang
--
No reply to "From"! - Keine Antworten an das "From"
Keine privaten Mails! Ich lese die NGs, in denen ich schreibe.
Und wenn es doch sein muss, dann muss das Subjekt das Wort NGANTWORT enthalten.
 
"major" <major.home@gmx.de> schrieb im Newsbeitrag
news:1127033218.911938.104200@f14g2000cwb.googlegroups.com...

Hallo,
ich beabsichtige über LPT1 zu überprüfen ob bei einem Gerät
ausserhalb des Computers eine Verbindung zwischen 2 Leitungen besteht(
z.B. ob ein Relais angezogen ist).
Das hatten wir doch schon vor kurzem. Nimm die serielle Schnittstel und
verbinde einfach RX-TX.

MfG
Falk
 
Thomas Pototschnig schrieb:

Problem:
Bei QBasic leifert ein INP(379) immer 255 zurück, egal was passiert :(

379 sieht nach Dezimal aus, sollte aber als Hexadezimal angegeben werden.
Weiß jetzt nicht wie es in QBasic ist - aber $379 könnte es dann sein.
^^^^

nein! Hex wird mit "&H" gekennzeichnet - hier also "&H379"


Gruss Wolfgang
--
No reply to "From"! - Keine Antworten an das "From"
Keine privaten Mails! Ich lese die NGs, in denen ich schreibe.
Und wenn es doch sein muss, dann muss das Subjekt das Wort NGANTWORT enthalten.
 
Falk Brunner schrieb:

ich beabsichtige über LPT1 zu überprüfen ob bei einem Gerät
ausserhalb des Computers eine Verbindung zwischen 2 Leitungen besteht(
z.B. ob ein Relais angezogen ist).

Das hatten wir doch schon vor kurzem. Nimm die serielle Schnittstel und
verbinde einfach RX-TX.
Und wenn er unbedingt LPT will? - aus welchen Gründen auch immer.

Vielleicht hat er keine CM frei?

Welchen Vorteil bietet dein Vorschlag? Keinen!
Nur viel mehr Programmieraufwand!

<kopfschüttel>

Gruss Wolfgang
--
No reply to "From"! - Keine Antworten an das "From"
Keine privaten Mails! Ich lese die NGs, in denen ich schreibe.
Und wenn es doch sein muss, dann muss das Subjekt das Wort NGANTWORT enthalten.
 
"Wolfgang Gerber" <nichtfuerspam@gmx.de> schrieb im Newsbeitrag
news:dgjfia$efd$1@online.de...

Falk Brunner schrieb:

ich beabsichtige über LPT1 zu überprüfen ob bei einem Gerät
ausserhalb des Computers eine Verbindung zwischen 2 Leitungen besteht(
z.B. ob ein Relais angezogen ist).

Das hatten wir doch schon vor kurzem. Nimm die serielle Schnittstel und
verbinde einfach RX-TX.

Und wenn er unbedingt LPT will? - aus welchen Gründen auch immer.

Vielleicht hat er keine CM frei?

Welchen Vorteil bietet dein Vorschlag? Keinen!
Nur viel mehr Programmieraufwand!

kopfschüttel
Hallo?
Stress?
Ist die Hochrechung der Wahl so nervenaufreibend?

Entspannte Grüsse
Falk
 
Falk Brunner schrieb:

<sinnloses DAU-Vollquoting gelöscht>

Hallo?
Stress?
Ist die Hochrechung der Wahl so nervenaufreibend?
Danke der Nachfrage....

<kopfschüttel>

Gruss Wolfgang
--
No reply to "From"! - Keine Antworten an das "From"
Keine privaten Mails! Ich lese die NGs, in denen ich schreibe.
Und wenn es doch sein muss, dann muss das Subjekt das Wort NGANTWORT enthalten.
 
Hi Wolfgang Gerber

Wie Michael schon fragte: welches Betriebssystem? Unter Linux muss man
gibt es "qbasic" für Linux?
Es gibt bwbasic, yabasic...

--
mit besten Grüßen,

Jonas Stein <news@jonasstein.de>
 
Jonas Stein schrieb:

Wie Michael schon fragte: welches Betriebssystem? Unter Linux muss man
gibt es "qbasic" für Linux?

Es gibt bwbasic, yabasic...
na und? Die Frage war: gibt es "qbasic" für Linux?



Gruss Wolfgang
--
No reply to "From"! - Keine Antworten an das "From"
Keine privaten Mails! Ich lese die NGs, in denen ich schreibe.
Und wenn es doch sein muss, dann muss das Subjekt das Wort NGANTWORT enthalten.
 
Holger Petersen schrieb:

wie wäre es mit INP(&H379)? Mit "379" fragst du irgend was anderes ab.

Der Vollständigkeit halber:

Die Basis-Adresse von 'LPT1' muss nicht immer (hex) 378 sein; 278 und 3BC
sind genauso möglich; von PCI-Karten ganz zu schweigen...
Danke - das ist mir bekannt. Seit über 20 Jahren programmiere ich
Anwendungen dafür <g>.

Die jeweilige Adressen (von ISA-) LPT-Anschluessen werden vom BIOS in der
Memory-Adresse 0:48 beginnend hinterlegt und sollten mit POKE[*] als 16-
Bit Werte auslesbar sein.
Irrtum: "Poke" schreibt, gelesen wird mit "Peek"

Gruss, Holger

[*] Da ich schon lange kein BASIC mehr gemacht habe:
Bitte BASIC-Doku lesen!
Danke - die kenne ich fast auswendig. Habe übrigens mal selbst einen
Basic-Interpreter geschrieben. Für den Z80. Basierend auf dem
Tini-Basic von RDK


Gruss Wolfgang
--
No reply to "From"! - Keine Antworten an das "From"
Keine privaten Mails! Ich lese die NGs, in denen ich schreibe.
Und wenn es doch sein muss, dann muss das Subjekt das Wort NGANTWORT enthalten.
 
Holger Petersen wrote:
Die jeweilige Adressen (von ISA-) LPT-Anschluessen werden vom BIOS in der
Memory-Adresse 0:48 beginnend hinterlegt und sollten mit POKE[*] als 16-
Bit Werte auslesbar sein.

[*] Da ich schon lange kein BASIC mehr gemacht habe:
Bitte BASIC-Doku lesen!
Ich habe auch länger kein Basic gemacht, aber POKE war schreiben
und PEEK war lesen ;-)
 
major wrote:
Hallo,
ich beabsichtige über LPT1 zu überprüfen ob bei einem Gerät
ausserhalb des Computers eine Verbindung zwischen 2 Leitungen besteht(
z.B. ob ein Relais angezogen ist).
Die Idee war, bei LPT1 Pin 2 über das Relais mit Pin 11 des LPT1 zu
verbinden.
Nun soll, sobald das Relais anzieht, der Kontakt von Pin 2 zu Pin 11
hergestellt sein. Wenn nun das Bit bei Pin 2 gesetzt ist, sollte man
dann bei Pin 11 abfragen können, ob das Realis angezogen ist.

Problem:
Bei QBasic leifert ein INP(379) immer 255 zurück, egal was passiert :(
es gibt bei Parallelports einige Dinge zu beachten. Bei der
Beschäftigung mit diesem Thema bin ich auf unzählige Fehler in den
Quellen für die Beschreibung gestoßen. Pin 11 Busy wird manchmal
invertiert angenommen, scheint es aber nicht zu sein. Im File
ecp_reg.pdf von Microsoft scheint es richtig beschrieben zu sein und es
hat bei mir alles funktioniert.

Aber die modernen Parallelports sind schon recht komplex. Ich denke mal,
Du solltest vom ecp-mode in den standard-mode schalten, weil die etliche
modi für high speed Übertragung enthalten, auch bidirektionalen
Datentransfer, DMA und was weiß ich. Ganz so schnell wie USB1.x sind sie
zwar nicht, aber IMHO vergleichsweise sehr einfach zu programmieren und
anzusteuern.

Bei Bedarf könnte ich einen Schnipsel C-Code zeigen, wie man die
Basisadresse erfragt und den Modus auf Standard einstellt. Die
Basisadresse von LPT1 muß nicht unbedingt auf 0x378 liegen, sondern
sonstwo. Bei mir lag sie unter win98se aber immer dort.

Da Du Dein Betriebssystem nicht genannt hast, kann Dir auch keiner
weiterhelfen. Unter winNT/2k/xp geht das so ohne Treiber prinzipiell
nicht, da mußt Du Dir die Doku Deines Compilers durchlesen, den sicher
keiner kennt, weil man sich bei hardwarenaher Programmierung auf C
geeinigt hat.

Ich könnte bei Interesse was in GNU-C für win9x posten, verstehe
allerdings heute mein Programm auch nicht mehr auf Anhieb :).

mfg. Winfried
 
Wolfgang Gerber <nichtfuerspam@gmx.de> writes:


wie wäre es mit INP(&H379)? Mit "379" fragst du irgend was anderes ab.
Der Vollständigkeit halber:

Die Basis-Adresse von 'LPT1' muss nicht immer (hex) 378 sein; 278 und 3BC
sind genauso möglich; von PCI-Karten ganz zu schweigen...

Die jeweilige Adressen (von ISA-) LPT-Anschluessen werden vom BIOS in der
Memory-Adresse 0:48 beginnend hinterlegt und sollten mit POKE[*] als 16-
Bit Werte auslesbar sein.

Gruss, Holger

[*] Da ich schon lange kein BASIC mehr gemacht habe:
Bitte BASIC-Doku lesen!
 
"major" <major.home@gmx.de> schrieb im Newsbeitrag
news:1127033218.911938.104200@f14g2000cwb.googlegroups.com...
Hallo,
ich beabsichtige über LPT1 zu überprüfen ob bei einem Gerät
ausserhalb des Computers eine Verbindung zwischen 2 Leitungen besteht(
z.B. ob ein Relais angezogen ist).
Die Idee war, bei LPT1 Pin 2 über das Relais mit Pin 11 des LPT1 zu
verbinden.
Nun soll, sobald das Relais anzieht, der Kontakt von Pin 2 zu Pin 11
hergestellt sein. Wenn nun das Bit bei Pin 2 gesetzt ist, sollte man
dann bei Pin 11 abfragen können, ob das Realis angezogen ist.

Problem:
Bei QBasic leifert ein INP(379) immer 255 zurück, egal was passiert :(



Unter NT/W2k/XP bitte port95nt.exe installieren. Dann geht der Zugriff.
Gibts hier:
http://www.xess.com/ho07000.html

MIKE
 

Welcome to EDABoard.com

Sponsor

Back
Top