Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Direkter Portzugriff mit ZLPORTIO - Komisches Verhalten (https://www.delphipraxis.net/38680-direkter-portzugriff-mit-zlportio-komisches-verhalten.html)

Ruddel0815 22. Jan 2005 18:21


Direkter Portzugriff mit ZLPORTIO - Komisches Verhalten
 
Hallo!

Ich möchte direkt auf die serielle Schnittstelle (am DTR hängt eine LED zur Kontrolle) schreiben. Dazu nutze ich die ZLPORTIO.
Wenn ich nun auf das COM2 Register ($2FC, DTR) schreiben will passiert nicht.
Jetzt der Hammer: Wenn ich QBASIC starte und dort einen OUT (764), 1 mache, geht die LED aus und mein Delphiprogramm funktioniert (LED blinkt).
Auch DLPORTIO funktionierte nicht, wenn QBASIC gestartet wurde geht es aber. Ist schon eine komische Sache.

Könnte mich jemand aufklären, warum es mit gestartetem QBASIC funktioniert und was ich verändern muß, um ein "standalone" Programm zu erstellen? Hat es etwas mit dem SP2 zu tun?

Konfiguration:

Win XP SP2
Delphi 6
ZLPORTIO

PS:
Hatte das gleiche Phämomen mit einem W2K-Rechner mit SP4.

Vielen Dank!

Gruß

Ruddel

Robert Marquardt 22. Jan 2005 18:55

Re: Direkter Portzugriff mit ZLPORTIO - Komisches Verhalten
 
Du machst ja auch Unsinn.
Warum willst du die Ports direkt ansteuern?
Fuer RS232 hat Windows doch Treiber. Man spricht eine serielle Schnittstelle daher
mit CreateFile, ReadFile, WriteFile und DeviceIoControl an wie jeden anderen Treiber auch.
Es gibt haufenweise Komponenten fuer die Ansteuerung von RS232.

QBasic ist ein 16 Bit DOS Programm und erhaelt eine DOS Box, in der all die
Ports virtualisiert sind. Da die Funktion im 32 Bit Windows Treiber liegt,
wird dieser vermutlich in einen Kompatibilitaetsmodus geschaltet.

Ruddel0815 22. Jan 2005 19:22

Re: Direkter Portzugriff mit ZLPORTIO - Komisches Verhalten
 
Hallo Robert!

Danke für Deine schnelle Antwort!

Ich denke nicht, dass ich einen direkt Portzugriff mit einer anderen Komponente als einen Treiber (wie IO.DLL, ZLPORTIO, DLPORTIO) machen kann, oder irre ich mich da?

Hintergrund: Ich will über die COM-Schnittstelle bzw. einem Schieberegister Zustände einlesen (Bewegungsmelder) bzw. Relais schalten.

Kann man das wirklich mit einer RS232 Komponente machen?

Gruß

Ruddel

Robert Marquardt 23. Jan 2005 05:06

Re: Direkter Portzugriff mit ZLPORTIO - Komisches Verhalten
 
Ich persoenlich haenge nicht der direkten Schnittstellenkontrolle an.
Wo es ums Timing geht sollte man Windows ohne IO Hardware nicht verwenden.
Es ist einfach nicht praezise genug. Eine IO-Karte ist da besser geeignet.

Ich wuerde z. B. den IOWarrior benutzen (http://www.codemercs.com).
Das liegt daran das ich die Delphi-Software dazu geschrieben habe.
Es gibt besonders bei den IO-Karten aber sehr viele Alternativen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:54 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