Hi!
PWM ist Pulsweitenmodulation, die Frequenz ist immer gleich, aber eben die Pulsweite ist unterschiedlich. Ich kenne den L297 nicht, aber ich denke mal das Teil arbeitet mit einem Clock Eingang, von dessen FREQUENZ es abhängt wie schnell der Motor dreht. Mit PWM kann man also nur eine einzige Geschwindigkeit stellen. Du kannst aber einfach die Timer von nem mega16/32 benutzen um irgendeinen Port an und aus zu toggeln. Und die Frequenz der Timer kannst du ja wie du willst aussuchen. Außerdem kannst du ganz einfach die Schritte mitzählen indem du in den Timer-Interrupt eine Variable hochzählst.
So mache ich das und es funktioniert. Ich kann so mit Timer0 und mit Timer1 jeweils einen Schrittmotor steuern. Aber vielleicht gibts ja noch elegantere Möglichkeiten...
Viel Erfolg,
William