PIC18 Schrittmotor Rampe berechenen

Gast #4460515
Lesenswert?
• ▲
▼
Hallo,
ich bin gerade dabei eine Schrittmotor Steuerung zu Programmieren, 
jedoch ist das auf dem PIC18F46K80 nicht so einfach, da ich keine 
Division geschweige denn Fließkommazahlen zur Verfügung habe 
(Selbstverständlich kann man das auch per Software implementieren, dass 
ist aber nicht so einfach und nicht gerade schnell).
Ich überlege nun gerade wie ich eine Routine implementieren kann, die 
folgende Informationen zur Verfügung hat:
1. Komplette Distanz die zurückgelegt werden soll
2. Bisher zurückgelegte Distanz
Aus diesen beiden Informationen will ich jetzt eine Routine schreiben 
die die zu wartende Zeit errechnet mit Berücksichtigung von 
Beschleunigung und Entschleunigung.
Bisher habe ich sowas mit Tabellen realisiert, jedoch war da auch 
festgelegt wie viele Schritte für die Beschleunigung und Entschleunigung 
gemacht werden.
Jetzt kann das von einem bis 64000 Schritte variieren und die 
Beschleunigung soll nicht linear sondern in etwa aussehen wie ein 
Abschnitt der Cosinus Kurve bzw. eine langsame Beschleunigung und 
Entschleunigung.
Weiß jemand wie ich das in Assembler auf dem PIC realisieren kann?
Gast #4460595
Lesenswert?
• ▲
▼
Osscon schrieb:
> ... die Beschleunigung soll nicht linear sondern in etwa aussehen wie
> ein Abschnitt der Cosinus Kurve bzw. eine langsame Beschleunigung und
> Entschleunigung.

Sag doch einfach ruckfrei.
https://de.wikipedia.org/wiki/Ruck

Die genaue Form des Beschleunigungsanstieges soll man IMHO nicht 
überbewerten.

> jedoch ist das auf dem PIC18F46K80 nicht so einfach, da ich keine
> Division geschweige denn Fließkommazahlen zur Verfügung habe

Das ging 1978 schon auf einem 6502 von Rockwell. In einen PIC18F46K80 
mit seinen 64k Flash wird das doch irgendwie rein zu kriegen sein. Man 
muss die Rechnung nur so anlegen, dass er nicht für jeden Schritt wilde 
Matrizen invertieren muss ;-)

Den Artikel "Generate stepper-motor speed profiles in real time" von 
David Austin kennst du.
http://www.embedded.com/design/mcus-processors-and-socs/4006438/Generate-stepper-motor-speed-profiles-in-real-time

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.