Hallo alle zusammen,
Ich hoffe Ihr könnt mir eine Empfehlung für mein Problem geben.
Ich bin dabei einen Schrittmotor mit einem STM32 anzusteuern.
Das hat soweit auch geklappt. Auch das implementieren der Rampen war
erfolgreich (Auf Basis der AVR-Appnote).
Momentan nutze ich den Interrupt eines Timers (Systick) als Zeitbasis
und setze den Pin je nach verstrichenem Zeitintervall dt (Software-PWM):
1 | switch(motorState)
|
2 | {
|
3 | case MOVING:
|
4 | {
|
5 | if((lastTime+dt) < currentTime)
|
6 | { doStep();}
|
7 | }
|
8 | }
|
Jedoch weiss ich nicht ob die Implementierung über einen Timer mit
PWM-Ausgang besser wäre, der beim Interrupt direkt den Pin ansteuert und
dessen Frequenz entsprechend der Geschwindigkeit angepasst wird. Dieses
Anpassen würde in den Rampen ja bei (fast) jedem Schritt stattfinden.