Um welchen Schrittmotor handelt sich eigentlich, dabei?
Ich habe bei meinem Schrittmotor (5 Anschlüsse) das ganze so gelöst:
Code:
$regfile = "m32def.dat"
$crystal = 1000000
'KONFIGURATION AUSGÄNGE
Config Portd.0 = Output
Config Portd.1 = Output
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.4 = Output
Config Portb.0 = Output
'KONFIGURATION EINGÄNGE
Config Pinb.1 = Input
'PULLUPS EINSCHALTEN
Portb.1 = 1
'VERGABE ALIAS-ADRESSEN
Led Alias Portd.0
S1 Alias Portd.1
S2 Alias Portd.2
S3 Alias Portd.3
S4 Alias Portd.4
T1 Alias Pinb.1
'KONFIGURATION ENTPRELL-ROUTINE
Config Debounce = 20
'KONFIGURATION TIMER0
Config Timer0 = Timer , Prescale = 8
On Timer0 Timer0_isr
Enable Timer0
Start Timer0
'VARIABLEN
Dim A_schritte As Byte
Dim B_ausgabe As Byte
Dim C_led As Bit
Dim D_timer0 As Byte
Dim E_modus As Byte
Dim F_speicher As Byte
'INTERRUPTS GLOBAL ZULASSEN
Enable Interrupts
'EEPROM AUSLESEN
Readeeprom F_speicher , 5
E_modus = F_speicher
'### HAUPTSCHLEIFE ###
Do
'Taster abfragen
Debounce T1 , 1 , T1_isr , Sub
'Erzeugung Schritte
If E_modus = 0 Then
Select Case A_schritte
Case 1 : B_ausgabe = Lookup(0 , Schritte1)
Case 2 : B_ausgabe = Lookup(1 , Schritte1)
Case 3 : B_ausgabe = Lookup(2 , Schritte1)
Case 4 : B_ausgabe = Lookup(3 , Schritte1)
End Select
Else
E_modus = 1
Select Case A_schritte
Case 1 : B_ausgabe = Lookup(0 , Schritte2)
Case 2 : B_ausgabe = Lookup(1 , Schritte2)
Case 3 : B_ausgabe = Lookup(2 , Schritte2)
Case 4 : B_ausgabe = Lookup(3 , Schritte2)
End Select
End If
'Differenzieren LED
B_ausgabe = B_ausgabe Or C_led
'Ausgabe Schrittfolge & LED
Portd = B_ausgabe
'Abfragen & zurücksetzen A_schritte
If A_schritte = 5 Then A_schritte = 1
'LED bei Modus 1 setzen
If E_modus = 1 Then C_led = 1 Else C_led = 0
Loop
'### SUBS, ISR, TABELLEN ###
Timer0_isr:
Incr A_schritte
Timer0 = D_timer0
Return
T1_isr:
If E_modus = 0 Then E_modus = 1 Else E_modus = 0
F_speicher = E_modus
Writeeeprom F_speicher , 5
Return
End
'Tabellen
Schritte1:
Data &B00000010
Data &B00000100
Data &B00001000
Data &B00010000
Schritte2:
Data &B00000110
Data &B00001100
Data &B00011000
Data &B00010010
Grüße
Thomas
Lesezeichen