AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Parellelport-Tutorial
Tutorial durchsuchen
Ansicht
Themen-Optionen

Parellelport-Tutorial

Ein Tutorial von Matze · begonnen am 15. Jun 2006 · letzter Beitrag vom 5. Okt 2006
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Matze
Matze
Registriert seit: 7. Jul 2003
Dieses Tutorial wird unter der freundlichen Genehmigung von Martin Vogel hier veröffentlicht. Ich habe es in die BBCode-Fassung gebracht, da ein Word-Dokument hier nicht unbedingt geeignet war. Kleinere Dinge wurden von mir angepasst und Syntax-Fehler behoben.

Das Tutorial und die Grafiken stammen von Martin Vogel. Leider funktioniert der Code nicht unter Windows 2000/XP, da diese Windows-Versionen keine direkten Port-Zugriffe gestatten.

__________________________________________________ _________


Vorwort

Seit langer Zeit suche ich nach einer schnellen Datenerfassung per PC. Ein USB Experimentierplatinchen von Conrad ist zwar leicht zu integrieren und lässt eine kleine Steuerung für eine Eisenbahn zu, aber soll's denn etwas einfaches und schnelles sein, dann fällt mir nur der Druckerport ein. Nix gegen Mikro-Controler, aber da hab ich noch keine Erfahrung mit und ich kann den Aufwand nicht abschätzen, um zum Ergebnis zu gelangen. Da ich auch das Problem habe, dass meine Anwendung nur bis Win98 taugt, (dann braucht's Treiber) , hab ich mich entschlossen, einen alten PC herzunehmen, ihn zu vernetzen und dann die Experimente halt auf dem "Billigteil" durchzuführen.
Also, ich hätt da schon Lust, ein wenig Elektronikpraxis und auch Programmiertechnik zu vermitteln. Wobei letzteres, der Informatiker möge es mir nachsehen, nicht auf einem Studium an der Uni basiert, sondern auf autodidaktische Fleißarbeit gründet. Da sind dann schon mal kleine formelle Ausrutscher möglich. An solchen Stellen bin ich dankbar für Hinweise.
Aber nun zum eigentlichen Thema. Auf der Suche nach brauchbaren Treibern für NT, XP oder 2000 hab ich die vielen Probleme beim Zugriff auf den Parallelport zu lesen bekommen und habe mich entschlossen, sowohl bei Hard- als auch bei Softwarefragen zu helfen. Allerdings. Wer von mir einen "vernünftigen" Treiber erwartet, Fehlanzeige. Im Moment bin ich nicht in der Lage, weder von der Software als auch vom Wissen her, dieses anzubieten. Daher verweise ich immer bei solchen "Experimenten" mit der Hardware, nehmt einen alten PC mit Win95 oder 98. Da gibt’s dieses Problem nicht und ihr lauft auch nicht Gefahr, euren neuesten PC zu erden.
Treiber wie IOPort , IO.Dll oder ähnliche haben scheinbar ein paar Nachteile, die den Experten die Nackenhaare zu Berge stehen lassen..... , allerdings weiß ich nicht, was gegen diesen Einsatz spricht,
wo die meisten doch sowieso keine professionellen Programme schreiben, bzw. dies auch aufgrund ihrer Lizenz nicht können. Und was ich privat mit meinem Blechdiener anfange....
Egal, ich wollt halt das mal kurz erwähnen, damit man mir nicht gleich mein Zusammengeschriebenes um die Ohren haut....
Dieser Text soll ja auch nur einen kleinen Einblick in die elektrischen Vorgänge und Hintergründe geben, ohne gleich mit der gesamten Bandbreite zu verwirren. Ich hoffe, doch verständlich geblieben zu sein und euch nachvollziehbare Hinweise gegeben zu haben. Falls nicht, fragt nach, aber erwartet nicht immer gleich eine Antwort, da ich nebenbei noch'n bisschen arbeiten muss.....
 
runger
 
#21
  Alt 27. Sep 2006, 05:33
Hallo Matze,

toll gemacht.
ich habe dein Tutorial überflogen und mir ist einiges aufgefallen:

1.) dein Code ( soweit ich gesehen hab ) funktioniert unter W2k und WinXP nicht. Direkte Portzugriffe sind dort nicht erlaubt.

2.) Wer mit high und low und ähnlichem nicht umgehen kann, dem unterstelle ich mal. dass er von E-Technik nicht viel Ahnung hat. Es ist nicht ganz ungefährlich für den PC und die paralelle Schnittstelle wenn dort manipuliert und eventuell Kurzschlüsse eingebaut werden.

3.) Um die Signale, die aus der patalellen Schnittstelle herauskommen nutzen zu können musst du sie speichern. Die Schaltung muss also insoweit erweitert werden, dass zwischen Port und ULN noch ein SN745LS374 dazwischenzuschalten ist. Da die Signale am Port nicht statisch anliegen ist auch noch das Strobe Signal zu nutzen.

Fazit:
Ich glaube nicht, dass sich der PC an dieser Stelle zum Basteln eignet. Ein Mikrocontroller, wie z.B. den Elektor "Basiskurs Mikrocontroller" ist dafür erheblich besser geeignet.
Die ganzen Experimente, die du hier vorschlägst scheitern ausserdem an den im Punkt 1 genannren Problemen.
Kommt mir jetzt bitte keiner mit IO.DLL, das ist noch grösserer Pfusch.

Rainer
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#22
  Alt 27. Sep 2006, 06:27
Hallo Rainer,

nur um es nochmals zu erwähnen, das Tutorial stammt von Matrin Vogel und nicht von mir. Ich habe es lediglich in die BBCode-Fassung gebracht. Und richtig, unter Windows 2000/XP funktioniert das leider nicht. Ich habe auch noch nicht herausbekommen, wie man dies ohne Treiber bewerkstelligen kann.
  Mit Zitat antworten Zitat
oldmax
 
#23
  Alt 1. Okt 2006, 11:55
Hi Rainer
Kurz, bevor mir mein Tutorial zerpflückt wird:
Schön, das dir so einiges aufgefallen ist ( steht ja schließlich alles im Tutorial ) und auch schön, das du die bessere Variante mit dem Microcontroler kennst. Dieses Tutorial wendet sich an Bastler, die noch einen alten PC rumsterhen haben, und dessen Verkauf nix bringt. Bastler, die noch ein wenig verstehen wollen, wie Dinge fnktionieren und wie man diverse Bauteile verschalten muß. Also, ich freu mich schon auf dein Tutorial, denn ich würde gern mit einem Microcontroler meine nächsten Versuche starten....
Also, ich brauche ein paar Ausgänge für Relais und ein paar Eingänge, vielleicht lichtempfindlich, so mit LDR...
Ach ja, es sollte schon so schnell wie möglich sein, Realtime wär nicht schlecht. Also, nicht unbedingt Polling, Interruptgesteuert wäre super.
Ok, ich will aufhören provokativ zu sein, aber immer wieder lese ich was für ein Pfusch die IO.DLL und ihresgleichen doch sind. Bisher habe ich jedoch von keinem einzigen "Nörgler" auch nur einen Ansatz gesehen, ein Vorgehen zu beschreiben, wie man unter Nutzung der WinApi den Port freigibt oder nutzt.
Ach ja, immer dran denken, ich schreibe nicht für Profis, sondern für die Delphi-Programmierer, die Spaß mit ihrer Entwicklung haben wollen und sich in den Kopf setzen, ihre Eisenbahn zu steuern, ihre Wohnung zu überwachen oder einfach nur ein paar LED's zum Leuchten zu bringen.
@Matze
Danke, das du so geduldig bist und nochmals Danke, für deine Klasse Arbeit, mein Tutorial hier hineinzustellen.
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#24
  Alt 2. Okt 2006, 23:47
Hallo oldmax,

ich bin kein Nörgler. Trotzdem gebe ich hier mal eine Alternative zur IO.Dll. Schau doch mal hier, damit bekommt man dann auch die Möglichkeit Interrupts auszuwerten. Polling ist dann nur noch Vergangenheit.

Gruss
Thorsten
  Mit Zitat antworten Zitat
oldmax
 
#25
  Alt 4. Okt 2006, 18:16
Hi Thorsten
Nun ja, dein Hinweis ist schön, für alle, die professionelle Programme verkaufen und eine "sauberen" Schnittstelle programmieren wollen. Ich habe in meinem Tutorial darauf verwiesen: "benutzt einen alten Rechner", der für ein paar Euro noch zu bekommen ist und bastelt damit, was das Herz begehrt. Shareware ist, um es mal rechtlich auszusprechen, keine "billige" Lösung und 99$ sprechen für sich. Auch Porttreiber anderer Hersteller bewegen sich um die 100 € Marke und wenn's für Entwicklersysteme sein soll, wird's richtig teuer. Aber für den interessierten Bastler, da genügt doch ein Win95 oder Win98 und dort lassen sich ohne Probleme direkt über ASM-Befehle die Ports ansprechen. Na ja, die Versorgungsspannung für die Relais und die paar IC's ist auch im alten Rechner in ausreichender Stromstärke verfügbar, also kann man nach Herzenslust LED's blinken lassen oder was auch immer steuern. Wenn es dann mit der "Spielerei" vorbei ist, dann kommen auch prof. Programme zum Zuge und Microcontroler und RS232 und USB und und und.....
Dabei ist bei geschickter Programmierung nur der Peripheriezugriff anders, das Programm selbst kann nach wie vor benutzt werden.
Daher habe ich auch ein wenig auf die Verarbeitung der Bit's hingewiesen. Welche haben sich verändert, welche sind High, welche Low.

Also, wenn mich einer fragt, kann ich mit dem LPT-Port auch was anderes als Drucker bedienen, so bekommt er die Antwort "Ja". Noch ist der Port nicht tot und noch kann er für simple Peripheriezugriffe auf eine billige und einfache Weise genutzt werden. Und mal ehrlich, macht es nicht auch ein wenig mehr Spaß, die Züge einer alten analogen Eisenbahn mit einem Computer zu steuern und dann auch noch sagen zu können: "Das ist mein Programm, was das tut ?"
Und meine Äußerung über die Nörgler, hmm, da bleib ich erst mal dabei: "Auf IO.DLL schimpfen und Oh Weh Oh Schreck rufen, dazu brauchts nicht viel............"
@ all
Ich will ehrlich sein, wenn mein privater PC eine Bastelstunde vor sich hat und ich zum Erfolg IO.DLL oder ähnliche DLL benötige, dann werden sie hineingeladen.....
Ich mach das ja nicht beim Kunden ! Also, ich empfehle nicht, professionelle Software mit einer Steuerung über LPT-Port zu vertreiben, aber wer Erfahrungen machen möchte und seinen privaten PC dafür einsetzt, der "darf" jedes funktionierende Mittel einsetzen. Wenn mir einer sagt, ich möchte über den Port LED's zum Leuchten bekommen, dann sag ich nicht, der LPT ist tot, nimm einen Microcontroler.........
Wenn einer fragt, ich möchte eine Steuerung realisieren, welche Bausteine eignen sich am besten, dann ist es falsch, den LPT-Port zu favorisieren. Ich glaub, das war jetzt deutlich genug.
Also, belächelt meinetwegen den Wunsch, den Parallelport zu vergewaltigen, aber zerredet nicht ein solches Tutorial.
Gruß oldmax
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#26
  Alt 4. Okt 2006, 19:25
Hallo oldmax,

sorry das ich was gesagt habe. Ich wollte nur auf deinen Einwand eingehen, das man doch mal einen Vorschlag machen soll wie es besser geht. Das du dann gleich so reagierst, wenn man mal einen Vorschlag macht. Meine Güte. Außerdem ging es ja auch um eine Möglichkeit mal nicht zu pollen. Naja, wie auch immer, mir ist es völlig egal was andere da so machen.

Entschuldigung das ich was gesagt habe, kommt bestimmt nicht mehr vor.
  Mit Zitat antworten Zitat
oldmax
 
#27
  Alt 5. Okt 2006, 05:39
Hi omata
Du brauchst dich nicht entschuldigen, dein Posting war schon ok und wenn es einem Suchenden auf die Sprünge hilft, hat es doch seinen Sinn erfüllt. Ich habe überhaupt kein Problem mit ergänzenden Hinweisen und Hilfen.
Die "Schelte", wenn ich's mal ungeschönt so nennen darf, geht an andere Adressen, und ich glaub, diese haben auch verstanden, was ich meine.
Ich denke, wir sollten nun das Thema schließen.
Gruß oldmax
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz