der beispielcode waere sicher interessant. mal sehen wie viel komplizirter es als unter dos ist
Für Delphi gibts da ein paar kleine Probleme: eine direkte I/O-Procedure gibt es nicht und das Sicherheitskonzept von Win NT (XP, 2000) verbietet Anwendungen den Zugriff auf die Schnittstellen, das dürfen nur Treiber. Die Lösung: eine DLL. auf http://batronix.com/elektronik/know-...mmierung.shtml gibts ausführliche Erklärungen und nen Link dazu.
Der Parallelport hat 8 Datenausgänge, 4 Steuerungsausgänge und 5 Statuseingänge, d.h. insgesamt 12 bit out und 5 bit in. Wichtig ist, das Bios auf "Output only" zu stellen. Die 8 Datenleitungen können auch als Eingänge benutzt werden, dazu einfach auf "Bidirectional" bzw "Normal" stellen. ECP und EPP sind für den Anfang eher ungeeignet.
-----------------------------------------------------------------------------------
ACHTUNG!
Unbedingt ein Treiber-IC zwischen den Parport und deine Schaltung packen! Die TTL-Ausgänge des PCs verkraften nur sehr geringe Ströme, daher nie zu hoch belasten oder gar kurzschließen! Außerdem ist ein Potenzialausgleich der beiden Massen nötig, Batteriebetrieb ist da wohl sicherer. Als Eingang verwendete Leitungen liegen standardmäßig auf "high" und müssen nur ggf. mit GND verbunden werden, sie sollten nicht mit Fremdspannungen in Berührung kommen.
mfG
cht
PS: Wenn du nen Beispielcode für die DLL haben willst, sag Bescheid! Ich hab hier noch son selbstgemachtes I/O-Prog rumliegen.
der beispielcode waere sicher interessant. mal sehen wie viel komplizirter es als unter dos ist
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen daraus nicht abgeleitet werden.
Besonders VDE und die geltenden Gesetze beachten sowie einen gesunden Menschenverstand walten lassen!
Okay jetzt kommts (Ich hoffe ihr habt Delphi).
Sry dass ich so lange gebraucht habe, aber ich hatte noch mehr zu tun (bedankt euch bei meinem Geschichtslehrer...), und Code einrücken und Auskommentieren braucht auch seine Zeit.
Cooles Prog nett gemacht, läuft wunderbar, danke.
Hab noch ne frage, kann man die Ausgänge/Eingänge siehe:
http://www.dotnet-magazin.de/itr/onl...nodeid,31.html
auch als eingänge benutzen??? was muss man umstellen??
@cht hast du auch ein Programm für die Serielle SChnittstelle parat(für Delphi)?? geht das überhaupt??
Die Ausgänge kann man ganz einfach als Eingänge benutzen indem man ganz dreist von ihrer Adresse liest: Inp32($37. Man sollte den Parport vorher im Bios auf Bidirectional stellen. Die serielle Schnittstelle funktioniert ja von der Datenübertragung her grundlegend anders, aber es geht auch. Wenn du nur ein paar Leitungen auf H oder L setzen willst, ist es ähnlich wie bei der parallelen (mehr dazu bei google...),wenn du richtig daten schicken willst, verhält sich der com-port unter windows lustigerweise wie eine Datei (!), das ist im Windows-SDK (bei Delphi prof und enterprise mitgeliefert) beschrieben. Ich arbeite noch an so einem Prog, ich will damit das USART meines mega16 mit dem PC verbinden. Mal sehn...
mfG
cht
ich vergaß: keine Fremdspannungen an Eingänge anlegen! open=1, GND=0, d.h. für 1 einfach gar nicht verbinden. Alles andere mögen Druckerports nicht besonders, und neue Mainboards sind teuer...
Hat jemand auch ein Programm für Linux?
Victor Negoescu
nur als root ausführbar.
setzt alle pins für 4 sekunden auf high.
Code:#include <stdio.h> #include <unistd.h> #include <sys/ioctl.h> #include <asm/io.h> int main (int argc, char** argv) { if (ioperm(0x378,1,1)) { printf("kann port nicht oeffnen"); return -1; } outb(255,0x378); sleep(4); outb(0,0x378); return 0; }
Also bis jetzt war das mit der Fremdspannung kein Problem, hab nen infrarotempfänger mit Digitalem Ausgang dran angeschlossen. Das mit dem Nix anschließen oder null setzen ist nicht Einfach, da bräuchte man dann ja ein RElais oder so, um wirklich garncihts anzuschließen.
Ne NPN Transe tuts auch. Emitter an GND, Kollektor an Druckerport, Basis über Widerstand an den (invertierten) Datenpegel.
Tadaaaa!
mfG
cht
Lesezeichen