Schrittmotorsteuerung STM32 Timer nutzen oder nicht?

OP #2601474
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.
Dieses habe ich evtl. auch vor: Ich möchte einen Schrittmotor (IAI 
Linearmotor) der eine Schrittmotor-Steuerung von Nanotec (SMCi 35) hat, 
mit einem uC ansteuern. Was würdest du da empfehlen? Gibt es gute 
Codebeispiele? Oder könntest du mir deinen Code zeigen?

Danke

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.