Meßgerät mit parallel Port auslesen
-
Danke für Deine Antwort!
Diesen Beitrag habe ich natürlich auch schon gefunden.Hat mir allerdings noch nicht allzuviel geholfen.
Bei "meiner" Schaltung mit dem AD-Wandler sind ja nur bestimmte Pins verkabelt.
Wie kann ich die den mit ReadFile() auslesen?Gruß mjac
-
Vielleicht mit GetCommState & Co. (oder ist das nur für die serielle Schnittstelle
)
vielleicht auch interessant: http://c-plusplus.net/forum/viewtopic.php?t=47362
-
müsste unter win95 nicht sogar so was in der art
unsigned char* data;
data=0x378;bin mir da jetzt zwar nicht so sicher, aber was solls...
vielleicht kannst du aber auch den asm quellcode vom visual studio benutzen:
page ,132 title inp - input from ports ;*** ;inp.asm - _inp, _inpw and _inpd routines ; ; Copyright (c) 1993-1997, Microsoft Corporation. All rights reserved. ; ;Purpose: ; Defines the read-from-a-port functions: _inp(), _inpw() and inpd(). ; ;******************************************************************************* .xlist include cruntime.inc .list page ;*** ;int _inp(port) - read byte from port ;unsigned short _inpw(port) - read word from port ;unsigned long _inpd(port) - read dword from port ; ;Purpose: ; Read single byte/word/dword from the specified port. ; ;Entry: ; unsigned short port - port to read from ; ;Exit: ; returns value read. ; ;Uses: ; EAX, EDX ; ;Exceptions: ; ;******************************************************************************* CODESEG public _inp, _inpw, _inpd _inp proc xor eax,eax mov dx,word ptr [esp + 4] in al,dx ret _inp endp _inpw proc mov dx,word ptr [esp + 4] in ax,dx ret _inpw endp _inpd proc mov dx,word ptr [esp + 4] in eax,dx ret _inpd endp end
-
Hallo,
danke für Eure Antworten!!
Habe mit der Inpout32.dll
wahrscheinlich die für mich kompfortabelste und einfachste Metode gfunden.
Wenn ich dann auch noch richtig bei den zu sendenden Bits und Bytes durchsehe, müßte ich mein Problem in den Griff bekommen
Nochmal Danke
Gruß majac
-
hallo,
was schreibst du denn fuer ein schoenes programm? mich wuerde es interessieren. hatte sowas auch schon mal vor.gruss
msp
-
Um ehrlich zu sein schreibe noch nicht gezielt an einem "Meßprogramm". Das soll natürlich einmal das Ziel sein, doch bin ich erst mal dabei herauszufinden wie ich die Meßwerte (Bits) in den PC bringe.
Das Verarbeiten der eingelesenen Bits sollte dann nicht mehr so schwer sein.Mit der Inpout32.dll und dem Tutorial von Frank Steinberg geht das einlesen der Bits recht komfortalbel und einfach.
Leider will mein Dev-C++ Compiler nicht so richtig mit dem Treiber "kooperieren"!
Momentan muß ich also auf eine Autorenversion von MS Visual C++ zurückgreifen.
Diese bringt allerdings bei jedem Start eines Programmes einen Hinweis auf eben diese Autorenversion.Also erst einmal ein Kompromiss!Wenn mir jemand sagen könnte,wie ich Programme die auf die Inpout32.dll zugreifen sollen, auch mit anderen Compilern zum laufen bringe,wäre das wunderbar!
Gruß majac
-
Hallo,
habe wenig Ahnung von WinAPI, habe mir aber mal schnell Deine Schaltung angesehen und frage mich wieso Du die paralle Schnittstelle verwendest, aber einen seriellen A/D-Wandler. Ähnliche Bauteile gibts ja auch mit paralleler Datenausgabe. Währe wohl etwas schneller, oder kommts bei Deiner Anwendung nicht darauf an?
MfG Neo
-
hehe das hab ich mich auch gefragt, aber er wird wohl nen grund dafür haben ...
vielleicht war ihm ja der max232 zu teuer
-
Ich verwende die parallele Schnittstelle schlicht und ergreifend deshalb, weil:
1. Sie auch in der Schaltung genuzt wird.
2. Ich eben gerade ein altes Kabel mit 25-poligen Stecker hatte
3. Weil ich mich ohne irgendwelchen Vorkentnisse in dieses Problem gestürzt habeKann sein, das die serielle Schnittstelle besser für solche "Experimente" geeignet ist (interne Absicherung usw.) aber funktionieren tut es trotzdem!
Wußte ehrlich gesagt nicht mal, das der verwendete A/D-Wandler ein speziell serieller ist!Naja stand ja auch nicht in der Bauanleitung
.
Funktionieren tut es aber trotzdem und auf Geschwindigkeit kommt es nicht so an.
Wenn ich einen tieferen Einblick in die Thematik bekommen habe,werde ich sicherlich auch ander Varianten testen.Gruß majac
-
Wollte Dich nicht kritisieren, war nur ein Vorschlag. Ich würde wahrscheinlich auch die parallele Schnittstelle verwenden, allerdings einen AD-Wandler mit 8 Datenleitungen. Dann müssteste Du beim lesen nicht erst 8 mal lesen und dann Deinen Messwert daraus bastelt, sondern hättest mit einmal lesen gleich den Messwert. Wäre einfacher, ist aber nicht notwendig.
Wenn Dir nur ums probieren geht kannst Du ja mal verschiedene Versionen testen.
-
Hab mich auch nicht kritisiert gefühlt
!
Und den AD-Wandler mit 8 Datenleitungen werd ich vielleicht auch mal ausprobieren.Habe mir jetzt auch ein (sehr) kleines Spannungsmessprogramm geschrieben und es funktionert auch.Den AD-Wandler hab ich noch mit einem 5V Spannungsregler ausgestattet und erhalte nun recht genaue Werte (5/255=0.02V).
Gruß majac