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.
Lesezeichen