DeadDealer
25.01.2005, 01:05
Moin :)
Hab ein großes Problem. hab extra für ein Schulprojekt 5 Platinen angefertigt, um 4 Schrittmotoren anzusteuern. Das klappt auch, aber leider zu langsam. ich hab mit dem Proggi BlitzPlus ein kleines Testprogramm geschrieben, daß mit (eigendlich) unendlicher Geschwindigkeit ein Bit-Signal am Parallelport ausgibt, hier der Code:
Const width=100
Const height=75
Const mode=32
Const window=2
Const ltp1=$378 //Parallelport-Adresse
Graphics width,height,mode,window //Fenster initialisieren
SetBuffer BackBuffer()
While Not KeyDown(1) //wärend ESC nicht gedrückt wird ...
Delay 100 // <--verzögert den Programmdurchlauf in ms
Cls //Screen löschen
wert=1 Xor wert // Wert für das Clock-Signal wechselt bei jedem Programmdurchlauf
Text 10,10,wert //Wert wird als Text ausgegeben
If KeyDown(57) Then
Out32(ltp1,wert+1)
Else
Out32(ltp1,wert)
EndIf
Flip
Wend
das KeyDown(57) ist für den Fall, daß man die Leertaste drückt, dann läuft der Motor in die andere Richtung ;)
Soweit sogut, das klappt alles, aber bei ca. 60 Hz kann ich die Frequenz nicht höher machen, aber auf dem Screen wechselt der Clock-Wert schneller den Zustand. Stelle ich es höher, bleibt es bei der gleichen Umdrehungsgeschwindigkeit des Motors. Das ganze läuft über Delay x. Je niedriger der Wert, desto höher die Frequenz.
Jemand ne Idee, außer über nen 555 IC? Warum macht mein Laptop bei einer bestimmten Clock-Geschwindigkeit schlapp?
P.S.: Hab die L297-298_4A Treiberschaltung von darwin.nuernberg in 4-facher ausführung + eigener entwickelter Interface-Karte, um die Motoren mit dem Parallelport und Strom zu verbinden.
Hab ein großes Problem. hab extra für ein Schulprojekt 5 Platinen angefertigt, um 4 Schrittmotoren anzusteuern. Das klappt auch, aber leider zu langsam. ich hab mit dem Proggi BlitzPlus ein kleines Testprogramm geschrieben, daß mit (eigendlich) unendlicher Geschwindigkeit ein Bit-Signal am Parallelport ausgibt, hier der Code:
Const width=100
Const height=75
Const mode=32
Const window=2
Const ltp1=$378 //Parallelport-Adresse
Graphics width,height,mode,window //Fenster initialisieren
SetBuffer BackBuffer()
While Not KeyDown(1) //wärend ESC nicht gedrückt wird ...
Delay 100 // <--verzögert den Programmdurchlauf in ms
Cls //Screen löschen
wert=1 Xor wert // Wert für das Clock-Signal wechselt bei jedem Programmdurchlauf
Text 10,10,wert //Wert wird als Text ausgegeben
If KeyDown(57) Then
Out32(ltp1,wert+1)
Else
Out32(ltp1,wert)
EndIf
Flip
Wend
das KeyDown(57) ist für den Fall, daß man die Leertaste drückt, dann läuft der Motor in die andere Richtung ;)
Soweit sogut, das klappt alles, aber bei ca. 60 Hz kann ich die Frequenz nicht höher machen, aber auf dem Screen wechselt der Clock-Wert schneller den Zustand. Stelle ich es höher, bleibt es bei der gleichen Umdrehungsgeschwindigkeit des Motors. Das ganze läuft über Delay x. Je niedriger der Wert, desto höher die Frequenz.
Jemand ne Idee, außer über nen 555 IC? Warum macht mein Laptop bei einer bestimmten Clock-Geschwindigkeit schlapp?
P.S.: Hab die L297-298_4A Treiberschaltung von darwin.nuernberg in 4-facher ausführung + eigener entwickelter Interface-Karte, um die Motoren mit dem Parallelport und Strom zu verbinden.