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:

Parallel Port

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Volker Alexander



Anmeldungsdatum: 01.12.2009
Beiträge: 3

BeitragVerfasst am: 01.12.2009, 07:36    Titel: Parallel Port Antworten mit Zitat

Hallo,
I bin neu, sozusagen brandneu bei FreeBASIC :) da ich es bislang noch nie benutzt habe.

Die wichtigste Frage für mich ist:
Kann ich mit FreeBASIC unter WinXP binäre Daten an bestimmte Parallel-Port-Pins senden und gleichzeitig von anderen Pins lesen?

Z.B.: Data Pins 0 bis 3 sollen output sein, um mit einem externen Gerät zu kommunizieren, 4 bis 7 sollen input sein, um feedback zu lesen. Und dann schreibt und liest man Einsen und Nullen mit FreeBASIC unter WinXP an den und vom Parallel-Port...

Vielen Dank im voraus,
Volker Alexander
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 01.12.2009, 09:59    Titel: Re: Parallel Port Antworten mit Zitat

Volker Alexander hat Folgendes geschrieben:
Hallo,
I bin neu,

Bist Du Österreicher? zwinkern
Zitat:

sozusagen brandneu bei FreeBASIC lächeln da ich es bislang noch nie benutzt habe.

Willkommen im Club!
Zitat:

Die wichtigste Frage für mich ist:
Kann ich mit FreeBASIC unter WinXP binäre Daten an bestimmte Parallel-Port-Pins senden und gleichzeitig von anderen Pins lesen?

Gleichzeitig geht das schon mal gar nichts. Im Computer mußt Du alles schön der Reihe nach programmieren.
Zu Deiner Frage: WinXP erlaubt keinen direkten Zugriff auf Portleitungen. Dazu brauchst Du einen Treiber. Empfehlen würde ich hier "Userport.exe" oder "Inpout32.dll". Mit denen muß man natürlich umgehen können.

Irgendwo habe ich mal gelesen, daß bei FreeBasic beim Compilieren automatisch ein solcher Treiber hinzugefügt wird, aber man muß das Programm unter Admin-Rechten ausführen.

Genaueres hier: http://forum.qbasic.at/viewtopic.php?t=5104
_________________
Und die Grundgebihr is aa scho drin- DOS is jo nett.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Volker Alexander



Anmeldungsdatum: 01.12.2009
Beiträge: 3

BeitragVerfasst am: 01.12.2009, 23:18    Titel: Antworten mit Zitat

Hallo,
erst mal vielen Dank an Elektronix.
Zitat:

Gleichzeitig geht das schon mal gar nichts. Im Computer mußt Du alles schön der Reihe nach programmieren.

Das ist mir schon klar, ich habe das früher ja schon gemacht, hatte damals aber noch keinen PC.
Deine Antwort ist zwar sehr nett, aber leider auch ein bißchen vage und hilft mir nicht so recht weiter. Der Link weist auf den qb-Teil des Forums hin.
Bestimmt haben das schon sehr viele Leute vor mir gemacht. Ich suche etwas Konkretes zur Frage nach einem aufgeteilten Port. Ich würde gern den Port halbieren und einen Teil im output mode und den anderen im input mode betreiben. Möglichst (nahezu) zeitgleich, zumindest aber so, daß ich nicht dauernd die Datenrichtung mit open neu definieren muß.
Greetz,
Volker Alexander
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 03.12.2009, 19:23    Titel: Antworten mit Zitat

ok, verstehe.
Folgendes: Das Datenregister hat die Basisadresse des Ports, das Statusregister (5 Bits Input) hat Basisadresse + 1, das Control-Register (4 Bits output) Basisadresse + 2. Die übrigen Bits, die da zum ganzen Byte fehlen, werden vom Computer für weitere Zwecke genutzt und sollten nicht vom User/Programmierer verändert werden.
Es versteht sich, daß Du kein Register geteilt als Input- und Output-Schnittstelle gleichzeitig nutzen kannst. Du kannst die Control- und Statusleitungen für Ein- und Ausgaben verwenden, dann haste halt verschiedene Adressen.
Es ist also nicht möglich, ein ganzes Register als Output und ein weiteres ganzes Register als Input zu nutzen. Entweder, Du nutzt das Statusregister mit nur einem Halbbyte als Input und baust davor einen Multiplexer, oder Du schaltest Die Datenleitungen um.

Die Datenleitungen lassen sich bidirektional verwenden, aber nur im ECP/EPP-Modus- der wird im BIOS eingestellt- und nur als ganzes Byte. Dann kommen aber noch andere Register an anderen Adressen hinzu, in denen die Leitungen auf Input oder Output umgestellt werden können.
Meiner Meinung nach ist das die sinnvollste Methode. Empfehlen würde ich, vor die Dateneingänge 3-State-Bustreiber zu setzen, die Du dann mit den Control-Leitungen steuern kannst.

Informiere Dich darüber gründlich, bevor Du was kaputt machst!

http://www.sebastianlueth.de/index.php?page=Vortraege/Druckerschnittstelle

http://www.dstrom.de/ds/a0001.htm (mit Programmbeispiel in C)
http://members.inode.at/anton.zechner/az/Parallel.htm (Mit Programmbeispielen in C)
http://www.coding-board.de/board/showthread.php?t=27509 (Über die IRQs des LPT)

Wie gesagt- Unter WinXP nur unter der Voraussetzung, daß Du den Treiber (Userport.exe oder inpout32.dll) installiert hast.
_________________
Und die Grundgebihr is aa scho drin- DOS is jo nett.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Volker Alexander



Anmeldungsdatum: 01.12.2009
Beiträge: 3

BeitragVerfasst am: 05.12.2009, 15:42    Titel: Antworten mit Zitat

Hi Elektronix,
das war genau, was ich wissen wollte! Vielen und herzlichen Dank! Also, da es offensichtlich möglich ist, mithilfe von FreeBASIC einen input- und einen outpt-Multiplexer gleichzeitig zu betreiben, hast du mich mit deiner Antwort zum FreeBASIC-User gemacht :)))
Ich wünsche dir ein wunderschönes Wochenende,
Volker Alexander
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. 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