-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Parallele Schnittstelle mit QBASIC unter Windows2k proggen??

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    19.12.2005
    Ort
    Wang-Dong-Township
    Alter
    47
    Beiträge
    67

    Parallele Schnittstelle mit QBASIC unter Windows2k proggen??

    Anzeige

    Hi Leute,

    ich habe den Verdacht, dass die parallele Schnittstelle an meinem Rechner defekt ist, da ich über selbige meinen Drucker nicht ansprechen kann. Dagegen über USB läuft der Drucker.

    Um die Funktion des Parallelports zu testen, habe ich mir überlegt, dass ich einfach die verschiedenen Datenleitungen über einen ausreichend großen Vorwiderstand mit LEDs mit der GND-Leitung verbinde, und dann über QBASIC die einzelnen Leitungen ansteuere. Ich hab' da sowas gelesen mit Adresse 0378H oder so ähnlich. Werd mich da nochmal kundig machen.

    Mein Problem ist aber Folgendes: Ich habe das Betriebssystem Windows2000 und in dem Zusammenhang sei es wohl etwas problematisch mit dem Direktzugriff auf irgendwelche Schnittstellen.

    Jetzt meine Frage:
    Hat hier im Forum irgendjemand schonmal sowas gemacht und kann mir vielleicht ein paar Tipps geben, ob es da gewisse Treiber/Zusatzprogramme/.DLLs/... gibt, mit deren Hilfe der Direktzugriff auf die Schnittstelle irgendwie doch unter QBASIC erfolgen kann???

    Außerdem werden Tipps zum Schaltungsaufbau ebenfalls gerne angenommen!

    Erstmal vielen Dank im Voraus

    Gruß, Jan

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.969
    Hallo JayCool!

    Ich habe früher u.a. die paralelle Schnittstelle (LPT1) für verschiedene mit dem Notebook (NB) verbundene Hardware unter DOS in ASM programmiert. Diese kurze ASM Programme waren als Funktionen ins QBasic eigebunden.

    Seit ich von Microsoft gezwungen bin ein Windows XP Betriebsystem zu nutzen, kann ich das nur noch auf dem altem NB machen, weil ich nicht weiss, wie es unter Windows geht. In jedem Fall die Register Adressen und die zugehörigen Bits und Pins sind wie folgt im Code.

    Die restlichen Pins 18-25 sind mit Gnd (Masse) verbunden.

    Es wäre toll, wenn ich wieder auch unter Windows XP mein NB in ASM programmieren könnte.

    MfG
    Code:
    Register      Bit (BX)  und  Pin (PX)      
    
     0378h        B7  B6  B5  B4  B3  B2  B1  B0  -> Outputs
                  P9  P8  P7  P6  P5  P4  P3  P2
    
     0379h        B7  B6  B5  B4  B3              <- Inputs
                  P11 P10 P12 P13 P15
    
     037Ah        B3  B2  B1  B0                  -> Outputs
                  P17 P16 P14 P1

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    19.12.2005
    Ort
    Wang-Dong-Township
    Alter
    47
    Beiträge
    67
    Hi PICture,

    erstmal vielen Dank für Dein Feedback!
    Bei mir dreht es sich nicht um ein kompliziertes Interfacing, sondern nur um einen Test, um zu sehen, ob alle Leitungen noch funktionsfähig sind.

    Da das mit Windows2000 offensichtlich softwaretechnisch ein wenig problematisch ist, habe ich mir überlegt, dass ich einfach eine Windows95-Startdiskette verwende, alles davon lösche, was man nicht unbedingt braucht und ich dann hoffentlich so viel Platz darauf habe, dass das QBASIC mit einem Umfang von Größenordnung 200 kB und das Testprogramm (schätzungsweise 2 - 3 kB) draufpasst. Dann betreibe ich den Rechner einfach testweise mit der Startdiskette. Ich brauch dazu ja keine Festplatte ...

    Was mich interessieren würde:
    Ist auf einer Startdiskette, die mit Windows95 erzeugt wurde, defaultmäßig die parallele Schnittstelle schon zugewiesen und liegt die dann auf Adresse 378h, oder muss man da noch irgendwelche DOS-Kommandos eingeben, um dies zu erledigen? Ich kenn' mich nämlich null mit DOS aus!

    Im Netz habe ich gelesen, dass die Portpins nur sehr geringe Ströme verkraften, d.h. so etwa 2 mA. Da ich den Hardwareaufwand gering halten möchte, würde ich einfach an die Ausgänge ein paar Low-Current LEDs mit jeweils einem Vorwiderstand von 1 kOhm dranhängen.
    Meinst Du, der Widerstand ist ausreichend? Ich weiß nämlich nicht exakt, welche Spannung aus dem Port rauskommt.

    Gruß, Jan

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    10.02.2005
    Beiträge
    231
    also aus dem parallelport kommen 5v raus. und eine led kann der ohne weiteres treiben. die einstellung von deiner drucker port adresse kannst du im bios vornehmen, da kann man meistens 3 adressen aussuchen. was alles auf deiner windows95 startdiskette drauf ist weis ich leider nicht, besorg dir doch einfach ne dos startdiskette und dann läuft das. um einen rechner unter dos zu booten hab ich mir ein komplettes dos auf nem USB stick installiert. einfach mal probieren ob dein bios sowas unterstützt.
    ansonsten google einfach mal ein bsichen ob es nicht auch für win2000 so ein kleines tool gibt wo du die pins des druckerport einzelln ansteuern kannst.
    grüße
    thomas

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    67
    Beiträge
    2.063
    Hallo Jan,
    auf 2 meiner Rechner ist noch Windows 98 drauf und damit kann ich von QBasic aus mit LPRINT die parallele und mit OPEN COMx die serielle Schnittstelle ansprechen. Allerdings habe ich DOS-QBasic und muß dazu auch auf DOS-Ebene runter. Windows 98 sperrt offensichtlich die Hardware nicht im Gegesatz zu dem was nach Windows 98 kommt; da müßte ich mein gesamtes Equipment zum Brennen, Programmieren, Zeichnen, DOS-Eagle, DOS-OrCad in den Mülleimer werfen.
    Die Adressen der Hardware bleiben unverändert, weil die auf dem Board festgelegt sind. Alles nach Windows 98 verhindert aber irgendwie Zugriffe auf diese Adressen.
    Mit der Win95 / 98 oder DOS-Startdiskette zu starten ist eine gute Idee.
    Wenn Du eine DOS 6.x Diskette findest, bleibt dort mehr Platz frei für QBasic und Co.

    Aus dem ParallelPort kommt evtl. nur GND raus, wenn es sich um OpenCollektor-Ausgänge handelt und keine PullUp-Widerstände vorhanden sind. Deshalb würde ich die LowCurrent-Leds mit 1...2,2k Vorwiderstand zwischen Ausgang und +5V anschließen. Dann leuchten die LEDs allerdings bei logisch 0 / Low-Pegel. Das dürfte zum Testen aber keine Rolle spielen.
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  6. #6
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.969
    Hallo JeyCool!

    Genauer gesagt sind die Adressen von Ports im Setup definiert und nur dort können sie geändert werden.

    Den Rest hat der kalledom schon Erklärt.

    Am einfachsten wäre die Windows 95 Installation-/Startdiskette zu kopieren und dann alle ausser in autoexec.bat aufgeführten Dateien zu löschen.

    Danach kannst Du auf die fast leere Diskette den QBasic und Dein Testprogramm kopieren.

    Nach dem booten mit der Diskette, kannst Du durch Eingabe seines Namens und Return beliebiges Program aus der Diskette starten.

    Übrigens, ich habe noch ein ganz altes Programm "Check It" (ca. 400KB). Mit dem kann man die ganze Hardware (ausser CPU und RAM, weil sie inzwischen zu schnell/zu gross für das Programm geworden sind) des PC´s testen.

    Fürs Testen der Ports (COM und LPT) muss man nur zwei einfache Dongle´s anfertigen.

    MfG

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    19.12.2005
    Ort
    Wang-Dong-Township
    Alter
    47
    Beiträge
    67

    74HCT244 kompatibel zu 74LS244

    Hi all of you,

    ich hab' jetzt mal übers Wochenende mein Parallelport-Interface erfolgreich aufgebaut. Bei der Output-Beschaltung (Leitungen 2 - 9 und 1, 14, 16, 17) habe ich aber nicht Low-Current-LEDs genommen (waren mir zu dunkel und ich hatte wegen der Schnittstelle Skrupel, kleinere Widerstände zu verwenden), sondern ich habe die Beschaltung mit Hilfe eines Treiber-ICs (ULN2803) aufgebaut. An jedem Ausgang hängt jeweils eine normale LED mit 1 kOhm Vorwiderstand. Siehe nachfolgende Zeichnung:



    Die Eingangsbeschaltung habe ich zunächst nach Maßgabe von http://ourworld.compuserve.com/homep...wden/page6.htm aufgebaut.
    .

    Mein QBASIC habe ich dann auf eine Windows95-Startdiskette draufgemacht und den PC von Diskette gestartet. Die Ansteuerung lief ohne Probleme!!!

    Was ich nun an dieser Stelle noch fragen wollte: Auf der Seite http://www.southwest.com.au/~jfuller/sio5works.htm gibt es einen Schaltungsvorschlag einer Input-Beschaltung mit Hilfe eines ICs 74LS244 - siehe nachfolgendes Bild.

    Ich habe jedoch in meiner Bastelkiste nur ein IC 74HCT244. Kann ich bedenkenlos den LS-Typ gegen den HCT-Typ austauschen?

    Gruß, Jan
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken input_74ls244.gif   output_uln2803.gif  

  8. #8
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.969
    Hallo JayCool!

    Mit welchen Befehlen lassen sich Eingänge und mit welchen Ausgänge des LPT´s von QBASIC steuern ?

    Du kannst locker, aber nicht bedenkloss den 74LS244 mit 74HCT244 ersetzen, wenn Du alle unbenutzte Eingänge mit Ground b.z.w. +5V verbindest. Die alle unbenutzte Ausgänge kannst Du unbeschaltet lassen.

    Übrigens, Du kannst noch ein Treiber von 74HCT244 für Pin 15 des LPT´s verwenden.

    Viel Spass und Erfolg weiterhin !

    MfG

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    19.12.2005
    Ort
    Wang-Dong-Township
    Alter
    47
    Beiträge
    67
    Hi PICture,

    in QBASIC kann die parallele Schnittstelle angesprochen werden mit Hilfe von

    OUT Port,Data
    INP Port


    OUT schreibt den Wert 'Data' (0-255) in die Speicherstelle 'Port' (Wertebereich 0-65535). INP liest entsprechend den Port.
    Der eingebaute LPT-Port hat normalerweise die Adresse (dez.) 888, 889 und 890.
    Unter 888 sind die Leitungen 2 bis 9 ansprechbar. Unter 890, wenn ich mich recht erinnere, die Leitungen 10 und 12 bis 15. Unter 889 sind 5 Bits, auf die man nur lesend zugreifen kann.
    Ich müsste aber heute abend nochmal genauer in meinen Aufzeichnungen nachsehen, welche Adresse/Bit mit welcher Leitung korrespondiert.
    Oder google halt mal ein wenig!

    Allerdings habe ich bis jetzt das Ganze nur von der Startdiskette aus unter Primitiv-DOS ausprobiert. Versuche unter Windows2000 stehen noch aus!

    Gruß, Jan

  10. #10
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.969
    @JayCool

    Vielen Dank ! Diese Befehle habe ich bisher nicht benutzt, da ich LPT in ASM programmiert habe.

    Die von Dir angegebene Adressen scheinen eine dezimale Darstellung den hexadezimalen zu sein. (378h=888d, 379h=889d und 37Ah=890d)

    Das ist eben das Problem, das ab Windows 2000 kein direkter Zugriff auf die Hardware möglich ist. Mich interesiert das, vor allem, was für ein Treiber dazu benötigt wird.

    Weil ich ASM Programme als Funktionen in QBASIC anbinden kann, könnte ich indirekt in die Hardware angreifen.

    Vielleicht wenn man den QBASIC im DOS Modus ausführt, wird ein benötigter Treiber von WINDOWS schon automatisch installiert ?

    Ich bedanke mich bei Dir im voraus für weitere Informationen !

    MfG

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •