Danke für deine Ausführung - macht Sinn!

Also mit diesem kleinen Code läuft der Motor schon mal...

Code:
$regfile = "M168def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 9600


'Programmkonfiguration

Config Portb.4 = Output
Config Portc.1 = Output
Config Portb.1 = Output

Config Pind.4 = Input

Puls Alias Portb.1                                          'Pul
Puls = 0

Richtung Alias Portc.1                                      'Dir
Richtung = 1

Freigabe Alias Portb.4                                      'Ena
Freigabe = 1

S1 Alias Pind.4                                             'Taster
S1 = 1

'Hauptprogramm

Do

   If S1 = 0 Then

      Waitms 1
      Puls = 0
      Waitms 1
      Puls = 1

   Else

      Puls = 0

   End If

Loop

End
Den Schrittmotor habe ich parallel an den Treiber angeschlossen. Ansonsten wie im Code zu sehen:

PinB.4 = Freigabe (obwohl der Motor auch ohne diesen Anschluss läuft - warum?)
PinC.1 = Richtung (das klappt mit 1 = Linkslauf / 0 = Rechtslauf)
PinB.1 = Puls (die Frequenz die hier einfach über ein waitms erzeugt wird - hier 2ms => 500Hz => 0.5kHz richtig?)
PinD.4 = Taster S1 (die Frequenz soll erst erzeugt werden wenn Taster gedrückt wird)

Den Treiber habe ich so eingestellt:
Current RMS = 3A
Puls / Schritte = 400
400 Schritte finde ich recht wenig aber bei den anderen Einstellungen läuft er nur sehr viel langsamer - habt ihr irgendwelche Tipps dazu?

...und macht das denn überhaupt Sinn die Frequenz so zu erzeugen oder sollte man da besser eine PWM nutzen?

Der nächste Schritt wäre die Geschwindigkeit über ein Poti zu steuern - aber da hört es jetzt erstmal völlig auf bei mir...

Hab ja frei heute - ich probier mal rum!

Danke für deine Unterstützung i_make_it

- - - Aktualisiert - - -

...ok, hab mal ein wenig mit dem waitms gespielt - den 2. Wert durch 10 geteilt. Bei 400 Schritten läuft der Motor sehr viel schneller...



Wenn ich die Schrittweite am Treiber von 400 auf z.B. 6400 umstelle läuft der Motor entsprechend langsamer. Klar, er muss ja mehr Schritte bei gleicher Frequenz machen. Ok, dachte ich Frequenz nochmals erhöhen - aber bringt nix - Geschwindigkeit bleibt gleich. Wenn man es mit der Frequenz übertreibt z.B. 0,2ms (5kHz) dann steht der Motor und Summt nur laut...



...irgendwelche Ideen wie ich es besser machen könnte?

Greez,
p@

- - - Aktualisiert - - -

...hier mal der Code mit Schalter für Richtungswechsel...

Code:
$regfile = "M168def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 9600


'Programmkonfiguration

Config Portb.4 = Output
Config Portc.1 = Output
Config Portb.1 = Output

Config Pind.4 = Input
Config Pind.5 = Input


Puls Alias Portb.1                                          'Pul
Puls = 0

Richtung Alias Portc.1                                      'Dir
Richtung = 1

Freigabe Alias Portb.4                                      'Ena
Freigabe = 1

T1 Alias Pind.4                                             'Taster zum Frequenzerzeugen
T1 = 1

S1 Alias Pind.5                                             'Schalter zum Richtungswechsel
S1 = 1

'Hauptprogramm

Do

   If T1 = 0 Then

      Waitms 1
      Puls = 0
      Waitms 0.1
      Puls = 1

   Else

      Puls = 0

   End If

   If S1 = 1 Then
   Richtung = 1

   Else

   Richtung = 0

   End If

Loop

End