StepPort Treiber Frage

  • 1
  • 2
  • 3
  • Page 2 of 3
Harald_K
 
Avatar
 
Subject:

Re: StepPort Treiber Frage

 · 
Posted: 18.02.2016 - 22:23  ·  #9
ei wie wärs denn dann mit berechneten Rampen??
Attachments
Hoer mal ein Codeschnipsel - aus C in pascal umgestrickt, basierend auf der ATMEL-Applikation von der wir schonmal die Rede hatten im letzen Schrittmotor-Thread:


die Variablen global, das ist schneller im Zugriff
var
r,
ri,
rampe,
rampwert,
rampengrenze,
schlweg : integer;

dly, dly_alt, rest : integer;




procedure fahrenl;
begin
schlweg := schl_max; {zu fahrende Schritte}
ri := 0;
dly_alt := 1543; {Startspeed}
rest := 0;

{Rampe anfahren}
repeat
ri := ri + 1;
dly := dly_alt - (2*dly_alt + rest) div (4* ri +1);
rest := (2 * dly_alt + rest) mod (4 * ri + 1);
rampe := dly - 4;
dly_alt := dly;
step_rechts;
schlweg := schlweg - 1;
for r := 1 to rampe do udelay(1); endfor;
until dly < 41; {so schnell solls werden}
rampwert := ri;

{Fullspeed}
rampe := 40;
repeat
step_rechts;
schlweg := schlweg - 1;
for r := 1 to rampe do udelay(1); endfor;
until schlweg = rampwert;

{bremsen}
repeat
ri := ri - 1;
dly := dly_alt + (2*dly_alt + rest) div (4* ri +1);
rest := (2 * dly_alt + rest) mod (4 * ri + 1);
rampe := dly - 4;
dly_alt := dly;
step_rechts;
schlweg := schlweg - 1;
for r := 1 to rampe do udelay(1); endfor;
until schlweg = 0;

{da - bissel beruhigen lassen}
mdelay(200);
end;


step_rechts macht den Steppuls - andersrum vorher dir umschalten
wenn du 2 Achsen fahren willst, mußt du das halt in einen line-Algorithmus einbauen und die
MaxSpeed entsprechend korrigieren.

läuft auf nem 16MHz mega128
der Speedwert von 40 - also etwa 400us - ergibt sich aus dem Gewicht, daß der Stepper transportieren muß - je schwerer desto langsamer ...

14 kHz wird wohl nur mit Stepper ohne Last gehen, es sei denn du nimmst Achtelschritt oder noch feiner
Filename: code.txt
Filesize: 1.83 KB
Title:
Download counter: 53
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Re: StepPort Treiber Frage

 · 
Posted: 19.02.2016 - 08:30  ·  #10
Guten morgen,

Ganz vielen Dank an Harald_K

Funzt SUPER ! gerade mal kleinen Test gemacht.
RAM ist jetzt ab 0X680 frei :3some:


Gruß Frank
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Re: StepPort Treiber Frage

 · 
Posted: 19.02.2016 - 16:48  ·  #11
@Harald_K

Der erste Test heute morgen war ja schon mal gut, jetzt sitze ich dran und will das auf
alle ecken und kanten testen.


Wie machst du es ? mit der Startspeed ?

schlweg := schl_max; {zu fahrende Schritte}
dly_alt := 1543; {Startspeed}

Wenn ich mit Startspeed hoch zb. 400 eingebe und die Takte (schl_max) zb 100 eingebe
dreht sich nur noch der Stepper ?

Und kann es sein das du hier EndFreq. einsetzt.?
until dly < 41; {so schnell solls werden}




Gruß Frank
Harald_K
 
Avatar
 
Subject:

Re: StepPort Treiber Frage

 · 
Posted: 19.02.2016 - 17:15  ·  #12
du mußt dir halt vorher ein wenig was ausrechnen ...

Schrittzahl die man laufen will: schl_max
Startgeschwindigkeit : dly_alt
Fahrgeschwindigkeit: das sind die 40/41 ... wird die Rampe klein genug, merkt man sich die Schrittzahl bis hierher fürs Bremsen später
rampwert ist der Anfang des Bremsens

vorher mußt du prüfen, ob du genug Schritte hast, um überhaupt von Startspeed auf Vollspeed und wieder auf Startspeed zu kommen - sonst mußt du die Vollspeed anpassen ...

irgendwo in der Formel steckt auch noch die gewünschte Beschleunigung, d.h. wie schnell der Motor hochdrehen soll - das ist glaub ich die 4 in der mul/div-Formel.

Das Abziehen von 4 vom errechneten dlywert für die Rampe berücksichtigt die benötigte Rechenzeit - da mußte je nach CPU-Takt ggf. korrigieren.
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Re: StepPort Treiber Frage

 · 
Posted: 22.02.2016 - 15:26  ·  #13
@Harald_K

Da hast mir aber was gegeben :-) Macht aber Spaß... und das ist das wichtigste,
Habe erstmal ein kleines Delphi Programm geschrieben, bevor ich im Atmel rumwürge.

Musste erstmal alles von C rüber nach Delphi bringen, aber so wie es aussieht, jo
ich denke doch das es noch was wird.
Mal sehen ob ich noch ne kleine PaintBox oder sowas einbaue und mir das mal anzeigen lasse.
(Mit kleinen Steps)

Speed habe ich erstmal auf 200 und wie man im Bild sieht, habe ich eine Rampe
Speed auf min12 so wie in der pdf Datei beschrieben, bekomme ich für jeden Step
den gleichen wert, der sich dann steigert wenn ich mit Speed und ACCEL DECEL höher gehe.



Gruß Frank
Attachments
StepPort Treiber Frage
Filename: Plot.jpg
Filesize: 166.95 KB
Title:
Download counter: 114
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: StepPort Treiber Frage

 · 
Posted: 22.02.2016 - 17:38  ·  #14
Hallo Harald,

Rampen etc. zur Laufzeit berechnen, ist verlockend, bei Voll-Schritt.
Aber wie siehts bei 16mikro Schritten aus. Vollschritt Speed von 5kHz
sollte möglich sein. Das bedeutet bei Mikro Schritten 60kHz Endfrequenz.
Da ist eine CPU recht gut ausgelastet, vor allen Dingen da ja Multiply und
Divide ins Spiel kommt....
Und da sollte dann aber kein Interrupt dazwischen funken :aerger:
Wie gesagt, bei mikro-Schritten...

rolf
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Re: StepPort Treiber Frage

 · 
Posted: 22.02.2016 - 17:57  ·  #15
Jetzt ist meine schöne Seifenblase geplatzt *heul* :angel8: :angel8: :angel8:




Gruß Frank
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: StepPort Treiber Frage

 · 
Posted: 22.02.2016 - 19:30  ·  #16
Hi Frank,

leider OT: Weil ich grad PaintBox gelesen hab, willst nicht noch einen neuen Bitmap-Editor für den AVRCo machen? Einer der beim Mausziehen die überschrittenen Felder ausfüllt, Markieren Copy&Paste, Fill-Funktion, .....

Gruss
Harry
  • 1
  • 2
  • 3
  • Page 2 of 3
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 17 · Cache Hits: 15   141   156 · Page-Gen-Time: 0.043556s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI