Ich habe zwar noch nie Bascom programmiert, aber ich würde im ersten Schritt mal folgenden Code testen.
Code:
$regfile = "M168def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 9600



'Programmkonfiguration

                                                             ' r16 laden
!STS MCUCSR, R16                                            ' Zweimal wiederholen
!STS MCUCSR, R16

Config Portc = Output

Dim Anzahl_s As Long                                        'Schritte (zähler)

                                                             'Minus an GND oder frei lassen (läuft ohne.. )
Puls Alias Portc.0                                          'Pul
Richtung Alias Portc.1                                      'Dir
Freigabe Alias Portc.2
Freigabe = 0
                                                             'Ena (es gibt noch die Möglichkeit, die Leistung über PWM zu steuern)


'Programmkonfiguration
Do
                                                            'Schleife oder mit Timer
  Puls = 1                                                    'Signal erzeugen

  Waitus 400                                                  'Impulsbreite
  Puls = 0
  Waitus 100                                                  'Abstand zwischen Impulsen
Loop

End
Eventuell die Zeiten größer machen und mit einer LED ansehen ob da ein entsprechendes Rechtecksignal an Portc.0 raus kommt. Ansonsten per Osziloskop prüfen.

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



'Programmkonfiguration

                                                             ' r16 laden
!STS MCUCSR, R16                                            ' Zweimal wiederholen
!STS MCUCSR, R16

Config Portc = Output

Dim Anzahl_s As Long                                        'Schritte (zähler)

                                                             'Minus an GND oder frei lassen (läuft ohne.. )
Puls Alias Portc.0                                          'Pul
Richtung Alias Portc.1                                      'Dir
Freigabe Alias Portc.2
Freigabe = 0
                                                             'Ena (es gibt noch die Möglichkeit, die Leistung über PWM zu steuern)


'Programmkonfiguration
Do
                                                            'Schleife oder mit Timer
  Puls = 1                                                    'Signal erzeugen
  Gosub Schritte                                              'Zählen
  Waitus 400                                                  'Impulsbreite
  Puls = 0
  Waitus 100                                                  'Abstand zwischen Impulsen
Loop

Schritte:
  If Anzahl_s > 400 Then
    
    Anzahl_s = 0
    Waitms 100
  End If
  Anzahl_s = Anzahl_s + 1                                     'Schritte addieren
Return

End
Natürlich mit der korrekten Fassung der DO LOOP Schleife die aus dem ersten Schritt entstehen müsste.
Hier sollte ja nach 400 Pulsen eine Pause entstehen und dann wieder 400 Pulse kommen.
Wenn das klappt. Kann man DIRection und Enable hinzunehmen.
Kommen die Signale alle aus dem Controller, kann man den Motortreiber anschließen.
Dazu dann aber mal bei verschiedenen CNC Threads reinschauen, mit diesem Typ Motortreiber gabs glaube ich schon öfters Probleme. Da kann etwas Nacharbeit erforderlich sein.