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?
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
Nein den kannte ich noch nicht. Ich finde das aber nicht gerade einfach zu verstehen abgesehen, davon dass dort doch noch eine Division stattfindet oder nicht?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.