Hallo, kann man mit einem AVR, der über einen USB-Port gesteuert wird, unter WinXP sinnvoll einen Parallelport simulieren, um einen Schrittmotor zu steuern? WinXP -> USB -> AVR -> Parallelport -> Schrittmotor Wenn nein, gibt es eine Möglichkeit, den Parallelport unter XP direkt anzusteuern, z.B. per Quickbasic oder C?
Da fällt mir grade was ein: kann man nicht einfach den Rechner irgendwie im "Dos-Modus" booten? Da läuft Quickbasic ja sowieso am besten und ich kann die alten Steppersteuerprogramme von mir direkt verwenden (ev. Zeitanpassung wegen schnellerem System).
Dormann schrieb: > Da fällt mir grade was ein: > > kann man nicht einfach den Rechner irgendwie im "Dos-Modus" booten? > [...] Klaro. Im Zweifelsfalle mit einer Bootdisk. http://www.bootdisk.com/ Volker
Nur wenn man sich einen eigenen Treiber für XP schreibt (in beiden Fällen). Da wirst du dir wohl eigenen Treiber für schreiben müßen (höchstwarscheinlich Kernel) da Windows keine direkten Hardwarezugriffe mehr so einfach unterstützt. Windows behandelt den Parallelport nur noch als Drucker -> Das heißt du kannst ne Datei hinschicken über den entsprechenden Druckertreiber. Es gibt jedoch Tools die als Notlösung funktionieren (wie z.B. GiveIO) und deiner Software den entsprechenden IO Privileg Level verpassen.
Ueber \\\\.\\$VDMLPT1 kann man den Parallelport fast wie unter DOS ansteuern. Allerdinsg habe ich keine offizielle Doku dazu gefunden. Ich verwende es in svn co https://xc3sprog.svn.sourceforge.net/svnroot/xc3sprog xc3sprog und http://winparport.sourceforge.net/ hat auch Infos
Volker Schulz schrieb: >> Da fällt mir grade was ein: >> >> kann man nicht einfach den Rechner irgendwie im "Dos-Modus" booten? >> [...] > > Klaro. Im Zweifelsfalle mit einer Bootdisk. > > http://www.bootdisk.com/ > > Volker Ok, dann werde ich den Weg weiter verfolgen. Damit würden eventuell auftretende Timingprobleme unter Windows von vorne herein wegfallen. Ansonsten Danke auch für die anderen Antworten!
uwe schrieb: > Nur wenn man sich einen eigenen Treiber für XP schreibt (in beiden > Fällen). > Da wirst du dir wohl eigenen Treiber für schreiben müßen > (höchstwarscheinlich Kernel) da Windows keine direkten Hardwarezugriffe > mehr so einfach unterstützt. Windows behandelt den Parallelport nur noch > als Drucker -> Das heißt du kannst ne Datei hinschicken über den > entsprechenden Druckertreiber. > Es gibt jedoch Tools die als Notlösung funktionieren (wie z.B. GiveIO) > und deiner Software den entsprechenden IO Privileg Level verpassen. Blödsinn. Der Druckerport lässt sich selbst unter Win7 direkt ansprechen. Hier Code: http://www.codeproject.com/KB/cs/csppleds.aspx
Stefan Noack schrieb: > Der Druckerport lässt sich selbst unter Win7 direkt über die > inpout32.dll ansprechen. Das ist ein Widerspruch. Direkt bedeutet, wie das Wort schon sagt, die Hardware direkt über die IO-Register anzusprechen. Inpout.dll bildet eine Abstraktionsebene zwischen Hardware und Anwendungsprogramm. Somit kann hier nicht von direktem Ansprechen des Druckerports gesprochen werden.
Stefan Noack schrieb: > [...] > Blödsinn. Der Druckerport lässt sich selbst unter Win7 direkt > ansprechen. Hier Code: http://www.codeproject.com/KB/cs/csppleds.aspx Wenn Du mal genau hinliest, steht da dass es eben nicht geht: "When I was using Windows 98 I could reach the ports with a function which is "outportb". When I upgraded to Windows 2000 this failed because of its kernel. You can not reach the ports directly in NT, 2000 and XP because of their kernel and their printer drivers." Der Autor benutzt einen frei erhaeltlichen Treiber (inpout32.dll), der inportb und outportb zur Verfuegung stellt. Das bringt einem freilich nichts bei bereits fertig compilierten Programmen... Volker
Volker Schulz schrieb: > Stefan Noack schrieb: >> [...] >> Blödsinn. Der Druckerport lässt sich selbst unter Win7 direkt >> ansprechen. Hier Code: http://www.codeproject.com/KB/cs/csppleds.aspx > > Wenn Du mal genau hinliest, steht da dass es eben nicht geht: > > "When I was using Windows 98 I could reach the ports with a function > which is "outportb". When I upgraded to Windows 2000 this failed because > of its kernel. You can not reach the ports directly in NT, 2000 and XP > because of their kernel and their printer drivers." > > Der Autor benutzt einen frei erhaeltlichen Treiber (inpout32.dll), der > inportb und outportb zur Verfuegung stellt. Das bringt einem freilich > nichts bei bereits fertig compilierten Programmen... > > Volker Hm.. Stimmt. Diese Funktion gibt es im Kernel nicht mehr. Andererseits kann man auch einfach ein Handle mit der entsprechenden adresse (0x378) erstellen und munter Daten reinschreiben -- entsprechende Privilegien vorausgesetzt... (nichts anders macht wahrscheinlich die inpout32.dll) Oder man benutzt "CreateFileA" aus kernel32.dll, um die Datei "LPT1:" zu öffnen. Das klappt lustigerweise auch. Man kann dann dort reinschreiben und die Bytes landen 1:1 am Parallelport. Allerdings hat man da keinen direkten Zugriff auf die Steuerleitungen. Aber egal. Der Threadersteller bootet jetzt einfach sein DOS und gut ist :D
Stefan Noack schrieb: > Hm.. Stimmt. Diese Funktion gibt es im Kernel nicht mehr. Andererseits > kann man auch einfach ein Handle mit der entsprechenden adresse (0x378) > erstellen und munter Daten reinschreiben -- entsprechende Privilegien > vorausgesetzt... (nichts anders macht wahrscheinlich die inpout32.dll) Davon gehe ich mal aus. Device Driver laufen im Kernel Mode und duerfen deshalb... ;) > Oder man benutzt "CreateFileA" aus kernel32.dll, um die Datei "LPT1:" zu > öffnen. Das klappt lustigerweise auch. Man kann dann dort reinschreiben > und die Bytes landen 1:1 am Parallelport. Allerdings hat man da keinen > direkten Zugriff auf die Steuerleitungen. Und bekommt im Zweifelsfall auch Timingprobleme. Aber unter DOS sollte das ja dann stabil laufen... ;) Volker
>Und bekommt im Zweifelsfall auch Timingprobleme. Aber unter DOS sollte >das ja dann stabil laufen... ;) Das kann sicher sein. Das Gebilde kommt zum Laufen. Aber in der Regel braucht man bei Schrittmotorensteuerungen Echtzeit-Timing. Das geht verloren. Das trifft aber auch auf den Parallelport unter XP und ff. zu.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.