Gast
#198827
Hi, für ein Projekt (Schrittmotorsteuerung via Parallelport) benötige ich ein fixes Zeitintervall. Das erste Problem ist, das Zeitintervall soll nicht durch andere Anwendungen gestört werden, da bei kleinsten Zeitverzögerungen der Schrittmotor mit dem Steuerprotokoll desynchronisiert, was zu einem zusätzlichen Drehmomentverlust führt, evlt. kann es sogar zum abrupten Stillstand führen, besonders bei höheren Umdrehungszahlen (z.B. 250 - 1000 U/min) Das zweite Problem ist, das Programm soll unter WIN98SE laufen. Ich habe mir folgendes gedacht: ich lasse z.B. den PIT-Baustein des PC ab einem fixen Startwert laufen, hat der Timer zuende gezählt soll über ein Hardware-Interrupt mein Programm aufgerufen werden, welches dann den nächsten Schaltimpuls für den Schrittmotortreiber erzeugt. Besonders wichtig ist hier der Startwert, über ihn kann die Geschwindigkeit des Motors eingestellt werden... Das Programm schaltet also den nächsten Impuls, und schreibt in den PIT erneut einen Startwert, worauf es die Kontrolle an andere Windows-Programme abgibt. Soweit so gut. Die Frage ist jetzt, funktioniert das? Soweit ich weiß hat ein PC mindestens einen PIT, häufig sogar zwei. Falls zwei vorhanden sind: kann ich den sogenannten "Fail-Safe-Timer", also den zweiten PIT, für mein Vorhaben mißbrauchen? D.h. der Fail-Safe-Timer ruft über Hardware-Interrupt mein im Speicher residentes Programm auf, welches den nächsten Impuls an den Parallelport schickt (und vorher kurz auch schaut, ob evtl. ein Abbruch durch den USER erfolgt ist), dann wieder den nächsten Startwert in den PIT schreibt, und mit IRET wieder die Kontrolle an die Windows-Programme abgibt. Wenn das alles so möglich ist, wie führe ich das mit wenig Programmieraufwand durch? Gibts dazu irgendwo Tipps? Kann ruhig "dreckig" sein, es ist ja klar daß ich die Windows-Zeitscheibe umgehen möchte um eine Art REAL-TIME-Programmierung zu bekommen. Habe allerdings bis jetzt noch kein TSR programmiert. Möchte das Ganze mit Delphi bzw. TASM schreiben, möglichst straightforward ohne groß DLLs oder anderen Kram. Soweit ich weiß erlaubt WIN98SE noch Portzugriffe auf z.B. PIT und Printer-Port oder stimmt das nicht? Sonst verzichte ich evtl. auf Windows-GUI und mache es im "MS-DOS-MODE" Für alle Anregungen vielen Dank, Grüße, Dierk