Sooo, langsam wird es was. Ich habe mir noch einmal das Buch zur Hand genommen und augehend von einem dort beschriebenen Programm das Ganze angepasst.

Wie gesagt nur für X (Yun Z folgen ggf noch am WE

Hier der Code:

Code:
'CNC Stepper.bas
'Stepperdriver
'____________________________________________
'Der Atmega wird zwischen Centronics und L 297 geschaltet, um je Richtung
' Enable (H aktiv) aus dem Takt zu generieren.
'Taklt wird bei Ansteigender Flanke aktiv
$regfile = "m8def.dat"
$crystal = 10000000                                         'Quarz 10 MHz
'


Dim Signalbit As Bit

Dim Zeitx As Word

On Timer0 Ontimer0                                          'Interrupt-Routine für Timer0-Overflow
Config Timer0 = Timer , Prescale = 1024                     'Timer-Takt ist Quarz/1024
Enable Timer0                                               'Timer0-Overflow-Interrupt ein
Enable Interrupts                                           'Interrupts global zulassen


Ddrd = &B11000000                                           'Port D-Pins 0-5 Eingang
Ddrb = &B11111111                                           'Port B Ausgang
Ddrc = &B11111111                                           'Port C Ausgang


Portd.7 = Pind.1                                            'Takt X
Portc.1 = Pind.3                                            'Takt Y
Portc.4 = Pind.5                                            'Takt Z

Do




If Pind.1 = 1 And Portd.7 = 0 Then Zeitx = 0
If Pind.1 = 0 And Portd.7 = 1 Then Zeitx = 0
If Zeitx < 10 Then Portb.0 = 1 Else Portb.0 = 0
If Zeitx > 1000 Then Zeitx = 100

Portc.3 = Pind.0                                            'Richtung X
Portc.0 = Pind.2                                            'Richtung Y
Portd.6 = Pind.4                                            'Richtung Z

Portd.7 = Pind.1

Loop

Ontimer0:
Zeitx = Zeitx + 1                                           'Timer0-Overflow-Interrupt-Routine

Return
Ich setzte einfach bei unterschiedlichem Ein und Ausgang die Zeit auf Null.

Bei Zeit kleiner n (im moment 10) ist Enable auf H.

Damit nicht beim Überlauf Enable auf H geht setze ich einfach bei Zeitx größer 1000 die Zeit wieder auf 100.

Es geht bestimmt auch schöner, aber es klappt.

Nur die Richtugsänderung wird noch nicht durchgereicht. Der Stepper läuft immer in die selbe Richtung. Den Fehler werde ich aber noch finden.

Erst einmal Schluss für Heute

Gruß

Kalle