Oha, mit Phasen einzeln ansteuern, das ist ja eklig...ein Glück, das nehmen einem die Schrittmotorcontroller normalerweise ab. Wie ist denn eigentlich der Schrittmotor an den AVR angeschlossen? Über Tranistoren oder H-Brücken?
Am Einfachsten wäre es wohl, am Anfang einfach nur Config Portb=Output anzugeben, da kannst nix falsch machen.
Hast zwar Spaghetticode vom Feinsten, aber an sich sollte es eigentlich funktionieren (jedenfalls, wenn du immer schön Portb schreibst). Du kannst das auch ein wenig abkürzen, indem du das in einen Befehl packst:
würde beispielsweise Portb.2 und Portb.3 auf High schalten, den Rest von Portb auf Low.Code:Portb=&B0001100
Warum steht die Schrittsequenz eigentlich doppelt da? Wird doch eh wiederholt...
Ich seh gerade, dass da die Pins vertauscht wurden. Der Motor macht also immer 4 Schritte vor und wieder 4 Schritte zurück...
Ansonsten les dich mal ein wenig hier ein, da gibts viele gute Tipps zu Bascom (guck ich auch oft nochmal rein):
http://halvar.at/elektronik/kleiner_bascom_avr_kurs/
Lesezeichen