Aktuelle Zeit: 12.12.2018 17:59

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Input mit inpout32.dll abfragen!
BeitragVerfasst: 17.02.2009 12:05 
Offline

Registriert: 21.10.2006 04:23
Hallo,

ich möchte die ersten 4 Bit des des LPT auf 1 setzen und Taster dazwischen schalten um die die anderen 4 Bit des LPT abzufragen.
Wenn der Taster gedrückt wird soll also eine Aktion ausgeführt werden.

Setzen Datenleitung mit der DLL und dem Befehl Out(%00000001) ist kein Problem aber wie frage ich ab? Mit INP() bekomme ich immer eine 0 .

Ist das so überhaupt möglich ? Die Ausgangsspannung ist ca. 3,8 Volt ist das vielleicht nicht genug um als 1 erkannt zu werden?

Darf man die Datenkanäle so überhaupt kurzschliessen?

Für anworten wäre ich euch wie immer dankbar.

Viele Grüße Iron2006

_________________
PB 4.02


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 18.02.2009 15:20 
Offline

Registriert: 21.10.2006 04:23
Ups, das ist wohl doch bei der Hardware besser aufgehoben. Vielleicht kann das ja noch jemand verschieben.

Gruß Iron 2006

_________________
PB 4.02


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Input mit inpout32.dll abfragen!
BeitragVerfasst: 26.02.2009 03:08 
Offline

Registriert: 14.09.2008 22:01
Wohnort: Geiziger Süddeutscher
Ist die LPT Adresse bekannt? Wie ist der Port im BIOS definiert, als Standard, als ECP oder als EPP? Der Standard Port kann von den Daten nicht lesen, aber es geht über Error, SelectIn, PE, ACK und Busy.

Code:
; Centronics Schnittstelle
;
; Signalname | LPT-Pin | BitNr | Portname
; --------------------------------------------
; Data0      |    2    |   0   |  DatenPort
; Data1      |    3    |   1   |  DatenPort
; Data2      |    4    |   2   |  DatenPort
; Data3      |    5    |   3   |  DatenPort
; Data4      |    6    |   4   |  DatenPort
; Data5      |    7    |   5   |  DatenPort
; Data6      |    8    |   6   |  DatenPort
; Data7      |    9    |   7   |  DatenPort
; --------------------------------------------
; Err        |   15    |   3   | -InputPort
; SelectIn   |   13    |   4   |  InputPort
; PE         |   12    |   5   |  InputPort
; Ack        |   10    |   6   | -InputPort
; Busy       |   11    |   7   |  InputPort
; --------------------------------------------
; Strobe     |    1    |   0   | -KontrollPort
; AutoFed    |   14    |   1   | -KontrollPort
; InitPrnt   |   16    |   2   | -KontrollPort
; Select     |   17    |   3   | -KontrollPort
; OutEnable  |         |   5   | +KontrollPort
; --------------------------------------------
; GND        |  18-25  |   -   | Masse
; --------------------------------------------
;
; Basisadressen (default): LPT1=$378, LPT2=$278, LPT3=$3BC
; Die Adresse des InputPort ist immer Basisadresse + 1
; Die Adresse die KontrollPort ist immer Basisadresse + 2
; Signale mit vorgestelltem - Minuszeichen sind invertiert
; OutEnable ist optional (+). Falls vorhanden, muss dieses
; Bit auf 0 gesetzt werden, um Signale auszugeben.

Global port=$378                       ; $378, $278, $3BC

If OpenLibrary(0, "inpout32.dll") = 0
  MessageRequester("Fehler","Die inpout32.dll konnte nicht geladen werden")
  End
EndIf

kon = 1
CallFunction(0, "Out32", port+2, kon)  ; Druckerport aktivieren

dat = $1F                              ; Die untersten 5 Bits auf 1
CallFunction(0, "Out32", port, dat)    ; Daten Ausgeben

; von D0 ... D4 jeweils einen Widerstand 1,2k auf Err ... Busy
; dann jeweils von Err ... Busy einen Taster oder ähnliches auf GND schalten

If OpenConsole()
  Repeat
    ; Exor, da manche Bits invertiert sind
    Ergebnis = CallFunction(0, "Inp32", port+1) ! $16
    PrintN(Str(Ergebnis))

    Delay(200)
    a$ = Inkey()
  Until a$ = Chr(27) ; Warten bis Escape gedrückt
  CloseConsole()
EndIf


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 26.02.2009 19:12 
Offline

Registriert: 21.10.2006 04:23
Hallo smiley46,

vielen Dank für die Antwort mit den Input-Port´s klappt das Schalten sehr gut! :allright:
Mein Fehler war das ich immer versuchen wollte D5 bis D7 einen Input einzulesen.

Viele Grüße Iron2006

_________________
PB 4.02


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Input mit inpout32.dll abfragen!
BeitragVerfasst: 05.11.2010 20:20 
Offline

Registriert: 05.11.2010 20:13
Könntest du vielleicht nochmal erläutern wie genau du das realisiert hast?

Ich habe gerade mit dem sehr interessanten Thema Steuerung über LPT Port angefangen, und schon erste Erfolge mit Pure Basic und LED's erzielt, jetzt will ich aber mehr :D

Wie bekomme ich es hin, dass mir der Rechner nen Data Port abfragt, und augibt ob der nun high oder low is? So das ich aufgrund dessen, irgendeine if bedingung (gibts doch bestimmt auch bei pure basic, wenns das auch in basic gab ^^) schreiben kann.

Vielen Dank schonmal im vorraus


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye