31.01.2006, 14:41
Hallo zusammen,
ich versuche gerade über einen counter-ausgang eine Freuqenzrampe auszugeben, um damit mal einen schrittmotor anzusteuern. D.H die Frequenz soll von zB 50 auf 1500 Hz hochlaufen, dann x Pulse mit 1500 Hz ausgeben, und dann wieder (mit delta 50 Hz) runterlaufen. Funktioniert auch soweit, allerdings braucht das drum rum zu viel Zeit, so dass die Pausen zwischen 2 Pulsen nicht mehr die halbe Periodendauer sind.
Gibts nen Trick das schneller zu machen?
Hier mein Vorgehen:
Die Gesamte Anzahl der zu fahrenden Schritte sowie die Schrittanzahl für die Beschleunigungs-bzw Bremsrampe sind berechnet. IN einer großen Schleife (bis Anzahl gesamtschritte) soll nun die Frequenz ausgegeben werden. D.h. für i = 1 bis Anzahl schritte der Rampe ist F = F+i*50. Wäre es hier zB schneller das mit einem shift register zu machen?? (F = F+50??)
wenn dann i > anzahl der Rampenschritte ist, aber kleiner als (gesamtschritte minus Rampenschritte) dann f= const, sonst f =f-i*50, wobei i bei minus1 startet und per shift register immer eins erhöht wird.
ansonsten sind da eben einige Plus/minus/mal/geteilt sowie lokale wie globlae Variablen drin.
Also, wenns (allgemeine) Tips zum schneller machen eines codes gibt: nur her damit, ich freue mich!
danke schon mal,
sina
ich versuche gerade über einen counter-ausgang eine Freuqenzrampe auszugeben, um damit mal einen schrittmotor anzusteuern. D.H die Frequenz soll von zB 50 auf 1500 Hz hochlaufen, dann x Pulse mit 1500 Hz ausgeben, und dann wieder (mit delta 50 Hz) runterlaufen. Funktioniert auch soweit, allerdings braucht das drum rum zu viel Zeit, so dass die Pausen zwischen 2 Pulsen nicht mehr die halbe Periodendauer sind.
Gibts nen Trick das schneller zu machen?
Hier mein Vorgehen:
Die Gesamte Anzahl der zu fahrenden Schritte sowie die Schrittanzahl für die Beschleunigungs-bzw Bremsrampe sind berechnet. IN einer großen Schleife (bis Anzahl gesamtschritte) soll nun die Frequenz ausgegeben werden. D.h. für i = 1 bis Anzahl schritte der Rampe ist F = F+i*50. Wäre es hier zB schneller das mit einem shift register zu machen?? (F = F+50??)
wenn dann i > anzahl der Rampenschritte ist, aber kleiner als (gesamtschritte minus Rampenschritte) dann f= const, sonst f =f-i*50, wobei i bei minus1 startet und per shift register immer eins erhöht wird.
ansonsten sind da eben einige Plus/minus/mal/geteilt sowie lokale wie globlae Variablen drin.
Also, wenns (allgemeine) Tips zum schneller machen eines codes gibt: nur her damit, ich freue mich!
danke schon mal,
sina